* {
  box-sizing: border-box;
}

/*!
 * Bootstrap Grid v5.3.1 (https://getbootstrap.com/)
 * Copyright 2011-2023 The Bootstrap Authors
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
 */
.container,
.container-fluid,
.container-xl,
.container-sm {
  --bs-gutter-x: 1.5rem;
  --bs-gutter-y: 0;
  width: 100%;
  padding-right: calc(var(--bs-gutter-x) * 0.5);
  padding-left: calc(var(--bs-gutter-x) * 0.5);
  margin-right: auto;
  margin-left: auto;
}

.container {
  max-width: 90%;
}

@media (min-width: 1440px) {
  .container-xl, .container-lg, .container-md, .container-smmd, .container {
    max-width: 1340px;
  }
}
:root {
  --bs-breakpoint-sm: 0;
  --bs-breakpoint-smmd: 500px;
  --bs-breakpoint-md: 768px;
  --bs-breakpoint-lg: 992px;
  --bs-breakpoint-xl: 1440px;
}

.row {
  --bs-gutter-x: 1.5rem;
  --bs-gutter-y: 0;
  display: flex;
  flex-wrap: wrap;
  margin-top: calc(-1 * var(--bs-gutter-y));
  margin-right: calc(-0.5 * var(--bs-gutter-x));
  margin-left: calc(-0.5 * var(--bs-gutter-x));
}
.row > * {
  box-sizing: border-box;
  flex-shrink: 0;
  width: 100%;
  max-width: 100%;
  padding-right: calc(var(--bs-gutter-x) * 0.5);
  padding-left: calc(var(--bs-gutter-x) * 0.5);
  margin-top: var(--bs-gutter-y);
}

.col {
  flex: 1 0 0%;
}

.row-cols-auto > * {
  flex: 0 0 auto;
  width: auto;
}

.row-cols-1 > * {
  flex: 0 0 auto;
  width: 100%;
}

.row-cols-2 > * {
  flex: 0 0 auto;
  width: 50%;
}

.row-cols-3 > * {
  flex: 0 0 auto;
  width: 33.3333333333%;
}

.row-cols-4 > * {
  flex: 0 0 auto;
  width: 25%;
}

.row-cols-5 > * {
  flex: 0 0 auto;
  width: 20%;
}

.row-cols-6 > * {
  flex: 0 0 auto;
  width: 16.6666666667%;
}

.col-auto {
  flex: 0 0 auto;
  width: auto;
}

.col-1 {
  flex: 0 0 auto;
  width: 8.33333333%;
}

.col-2 {
  flex: 0 0 auto;
  width: 16.66666667%;
}

.col-3 {
  flex: 0 0 auto;
  width: 25%;
}

.col-4 {
  flex: 0 0 auto;
  width: 33.33333333%;
}

.col-5 {
  flex: 0 0 auto;
  width: 41.66666667%;
}

.col-6 {
  flex: 0 0 auto;
  width: 50%;
}

.col-7 {
  flex: 0 0 auto;
  width: 58.33333333%;
}

.col-8 {
  flex: 0 0 auto;
  width: 66.66666667%;
}

.col-9 {
  flex: 0 0 auto;
  width: 75%;
}

.col-10 {
  flex: 0 0 auto;
  width: 83.33333333%;
}

.col-11 {
  flex: 0 0 auto;
  width: 91.66666667%;
}

.col-12 {
  flex: 0 0 auto;
  width: 100%;
}

.offset-1 {
  margin-left: 8.33333333%;
}

.offset-2 {
  margin-left: 16.66666667%;
}

.offset-3 {
  margin-left: 25%;
}

.offset-4 {
  margin-left: 33.33333333%;
}

.offset-5 {
  margin-left: 41.66666667%;
}

.offset-6 {
  margin-left: 50%;
}

.offset-7 {
  margin-left: 58.33333333%;
}

.offset-8 {
  margin-left: 66.66666667%;
}

.offset-9 {
  margin-left: 75%;
}

.offset-10 {
  margin-left: 83.33333333%;
}

.offset-11 {
  margin-left: 91.66666667%;
}

.g-0,
.gx-0 {
  --bs-gutter-x: 0;
}

.g-0,
.gy-0 {
  --bs-gutter-y: 0;
}

.g-1,
.gx-1 {
  --bs-gutter-x: 0.25rem;
}

.g-1,
.gy-1 {
  --bs-gutter-y: 0.25rem;
}

.g-2,
.gx-2 {
  --bs-gutter-x: 0.5rem;
}

.g-2,
.gy-2 {
  --bs-gutter-y: 0.5rem;
}

.g-3,
.gx-3 {
  --bs-gutter-x: 1rem;
}

.g-3,
.gy-3 {
  --bs-gutter-y: 1rem;
}

.g-4,
.gx-4 {
  --bs-gutter-x: 1.5rem;
}

.g-4,
.gy-4 {
  --bs-gutter-y: 1.5rem;
}

.g-5,
.gx-5 {
  --bs-gutter-x: 3rem;
}

.g-5,
.gy-5 {
  --bs-gutter-y: 3rem;
}

@media (min-width: 500px) {
  .col-smmd {
    flex: 1 0 0%;
  }
  .row-cols-smmd-auto > * {
    flex: 0 0 auto;
    width: auto;
  }
  .row-cols-smmd-1 > * {
    flex: 0 0 auto;
    width: 100%;
  }
  .row-cols-smmd-2 > * {
    flex: 0 0 auto;
    width: 50%;
  }
  .row-cols-smmd-3 > * {
    flex: 0 0 auto;
    width: 33.3333333333%;
  }
  .row-cols-smmd-4 > * {
    flex: 0 0 auto;
    width: 25%;
  }
  .row-cols-smmd-5 > * {
    flex: 0 0 auto;
    width: 20%;
  }
  .row-cols-smmd-6 > * {
    flex: 0 0 auto;
    width: 16.6666666667%;
  }
  .col-smmd-auto {
    flex: 0 0 auto;
    width: auto;
  }
  .col-smmd-1 {
    flex: 0 0 auto;
    width: 8.33333333%;
  }
  .col-smmd-2 {
    flex: 0 0 auto;
    width: 16.66666667%;
  }
  .col-smmd-3 {
    flex: 0 0 auto;
    width: 25%;
  }
  .col-smmd-4 {
    flex: 0 0 auto;
    width: 33.33333333%;
  }
  .col-smmd-5 {
    flex: 0 0 auto;
    width: 41.66666667%;
  }
  .col-smmd-6 {
    flex: 0 0 auto;
    width: 50%;
  }
  .col-smmd-7 {
    flex: 0 0 auto;
    width: 58.33333333%;
  }
  .col-smmd-8 {
    flex: 0 0 auto;
    width: 66.66666667%;
  }
  .col-smmd-9 {
    flex: 0 0 auto;
    width: 75%;
  }
  .col-smmd-10 {
    flex: 0 0 auto;
    width: 83.33333333%;
  }
  .col-smmd-11 {
    flex: 0 0 auto;
    width: 91.66666667%;
  }
  .col-smmd-12 {
    flex: 0 0 auto;
    width: 100%;
  }
  .offset-smmd-0 {
    margin-left: 0;
  }
  .offset-smmd-1 {
    margin-left: 8.33333333%;
  }
  .offset-smmd-2 {
    margin-left: 16.66666667%;
  }
  .offset-smmd-3 {
    margin-left: 25%;
  }
  .offset-smmd-4 {
    margin-left: 33.33333333%;
  }
  .offset-smmd-5 {
    margin-left: 41.66666667%;
  }
  .offset-smmd-6 {
    margin-left: 50%;
  }
  .offset-smmd-7 {
    margin-left: 58.33333333%;
  }
  .offset-smmd-8 {
    margin-left: 66.66666667%;
  }
  .offset-smmd-9 {
    margin-left: 75%;
  }
  .offset-smmd-10 {
    margin-left: 83.33333333%;
  }
  .offset-smmd-11 {
    margin-left: 91.66666667%;
  }
  .g-smmd-0,
  .gx-smmd-0 {
    --bs-gutter-x: 0;
  }
  .g-smmd-0,
  .gy-smmd-0 {
    --bs-gutter-y: 0;
  }
  .g-smmd-1,
  .gx-smmd-1 {
    --bs-gutter-x: 0.25rem;
  }
  .g-smmd-1,
  .gy-smmd-1 {
    --bs-gutter-y: 0.25rem;
  }
  .g-smmd-2,
  .gx-smmd-2 {
    --bs-gutter-x: 0.5rem;
  }
  .g-smmd-2,
  .gy-smmd-2 {
    --bs-gutter-y: 0.5rem;
  }
  .g-smmd-3,
  .gx-smmd-3 {
    --bs-gutter-x: 1rem;
  }
  .g-smmd-3,
  .gy-smmd-3 {
    --bs-gutter-y: 1rem;
  }
  .g-smmd-4,
  .gx-smmd-4 {
    --bs-gutter-x: 1.5rem;
  }
  .g-smmd-4,
  .gy-smmd-4 {
    --bs-gutter-y: 1.5rem;
  }
  .g-smmd-5,
  .gx-smmd-5 {
    --bs-gutter-x: 3rem;
  }
  .g-smmd-5,
  .gy-smmd-5 {
    --bs-gutter-y: 3rem;
  }
}
@media (min-width: 768px) {
  .col-md {
    flex: 1 0 0%;
  }
  .row-cols-md-auto > * {
    flex: 0 0 auto;
    width: auto;
  }
  .row-cols-md-1 > * {
    flex: 0 0 auto;
    width: 100%;
  }
  .row-cols-md-2 > * {
    flex: 0 0 auto;
    width: 50%;
  }
  .row-cols-md-3 > * {
    flex: 0 0 auto;
    width: 33.3333333333%;
  }
  .row-cols-md-4 > * {
    flex: 0 0 auto;
    width: 25%;
  }
  .row-cols-md-5 > * {
    flex: 0 0 auto;
    width: 20%;
  }
  .row-cols-md-6 > * {
    flex: 0 0 auto;
    width: 16.6666666667%;
  }
  .col-md-auto {
    flex: 0 0 auto;
    width: auto;
  }
  .col-md-1 {
    flex: 0 0 auto;
    width: 8.33333333%;
  }
  .col-md-2 {
    flex: 0 0 auto;
    width: 16.66666667%;
  }
  .col-md-3 {
    flex: 0 0 auto;
    width: 25%;
  }
  .col-md-4 {
    flex: 0 0 auto;
    width: 33.33333333%;
  }
  .col-md-5 {
    flex: 0 0 auto;
    width: 41.66666667%;
  }
  .col-md-6 {
    flex: 0 0 auto;
    width: 50%;
  }
  .col-md-7 {
    flex: 0 0 auto;
    width: 58.33333333%;
  }
  .col-md-8 {
    flex: 0 0 auto;
    width: 66.66666667%;
  }
  .col-md-9 {
    flex: 0 0 auto;
    width: 75%;
  }
  .col-md-10 {
    flex: 0 0 auto;
    width: 83.33333333%;
  }
  .col-md-11 {
    flex: 0 0 auto;
    width: 91.66666667%;
  }
  .col-md-12 {
    flex: 0 0 auto;
    width: 100%;
  }
  .offset-md-0 {
    margin-left: 0;
  }
  .offset-md-1 {
    margin-left: 8.33333333%;
  }
  .offset-md-2 {
    margin-left: 16.66666667%;
  }
  .offset-md-3 {
    margin-left: 25%;
  }
  .offset-md-4 {
    margin-left: 33.33333333%;
  }
  .offset-md-5 {
    margin-left: 41.66666667%;
  }
  .offset-md-6 {
    margin-left: 50%;
  }
  .offset-md-7 {
    margin-left: 58.33333333%;
  }
  .offset-md-8 {
    margin-left: 66.66666667%;
  }
  .offset-md-9 {
    margin-left: 75%;
  }
  .offset-md-10 {
    margin-left: 83.33333333%;
  }
  .offset-md-11 {
    margin-left: 91.66666667%;
  }
  .g-md-0,
  .gx-md-0 {
    --bs-gutter-x: 0;
  }
  .g-md-0,
  .gy-md-0 {
    --bs-gutter-y: 0;
  }
  .g-md-1,
  .gx-md-1 {
    --bs-gutter-x: 0.25rem;
  }
  .g-md-1,
  .gy-md-1 {
    --bs-gutter-y: 0.25rem;
  }
  .g-md-2,
  .gx-md-2 {
    --bs-gutter-x: 0.5rem;
  }
  .g-md-2,
  .gy-md-2 {
    --bs-gutter-y: 0.5rem;
  }
  .g-md-3,
  .gx-md-3 {
    --bs-gutter-x: 1rem;
  }
  .g-md-3,
  .gy-md-3 {
    --bs-gutter-y: 1rem;
  }
  .g-md-4,
  .gx-md-4 {
    --bs-gutter-x: 1.5rem;
  }
  .g-md-4,
  .gy-md-4 {
    --bs-gutter-y: 1.5rem;
  }
  .g-md-5,
  .gx-md-5 {
    --bs-gutter-x: 3rem;
  }
  .g-md-5,
  .gy-md-5 {
    --bs-gutter-y: 3rem;
  }
}
@media (min-width: 992px) {
  .col-lg {
    flex: 1 0 0%;
  }
  .row-cols-lg-auto > * {
    flex: 0 0 auto;
    width: auto;
  }
  .row-cols-lg-1 > * {
    flex: 0 0 auto;
    width: 100%;
  }
  .row-cols-lg-2 > * {
    flex: 0 0 auto;
    width: 50%;
  }
  .row-cols-lg-3 > * {
    flex: 0 0 auto;
    width: 33.3333333333%;
  }
  .row-cols-lg-4 > * {
    flex: 0 0 auto;
    width: 25%;
  }
  .row-cols-lg-5 > * {
    flex: 0 0 auto;
    width: 20%;
  }
  .row-cols-lg-6 > * {
    flex: 0 0 auto;
    width: 16.6666666667%;
  }
  .col-lg-auto {
    flex: 0 0 auto;
    width: auto;
  }
  .col-lg-1 {
    flex: 0 0 auto;
    width: 8.33333333%;
  }
  .col-lg-2 {
    flex: 0 0 auto;
    width: 16.66666667%;
  }
  .col-lg-3 {
    flex: 0 0 auto;
    width: 25%;
  }
  .col-lg-4 {
    flex: 0 0 auto;
    width: 33.33333333%;
  }
  .col-lg-5 {
    flex: 0 0 auto;
    width: 41.66666667%;
  }
  .col-lg-6 {
    flex: 0 0 auto;
    width: 50%;
  }
  .col-lg-7 {
    flex: 0 0 auto;
    width: 58.33333333%;
  }
  .col-lg-8 {
    flex: 0 0 auto;
    width: 66.66666667%;
  }
  .col-lg-9 {
    flex: 0 0 auto;
    width: 75%;
  }
  .col-lg-10 {
    flex: 0 0 auto;
    width: 83.33333333%;
  }
  .col-lg-11 {
    flex: 0 0 auto;
    width: 91.66666667%;
  }
  .col-lg-12 {
    flex: 0 0 auto;
    width: 100%;
  }
  .offset-lg-0 {
    margin-left: 0;
  }
  .offset-lg-1 {
    margin-left: 8.33333333%;
  }
  .offset-lg-2 {
    margin-left: 16.66666667%;
  }
  .offset-lg-3 {
    margin-left: 25%;
  }
  .offset-lg-4 {
    margin-left: 33.33333333%;
  }
  .offset-lg-5 {
    margin-left: 41.66666667%;
  }
  .offset-lg-6 {
    margin-left: 50%;
  }
  .offset-lg-7 {
    margin-left: 58.33333333%;
  }
  .offset-lg-8 {
    margin-left: 66.66666667%;
  }
  .offset-lg-9 {
    margin-left: 75%;
  }
  .offset-lg-10 {
    margin-left: 83.33333333%;
  }
  .offset-lg-11 {
    margin-left: 91.66666667%;
  }
  .g-lg-0,
  .gx-lg-0 {
    --bs-gutter-x: 0;
  }
  .g-lg-0,
  .gy-lg-0 {
    --bs-gutter-y: 0;
  }
  .g-lg-1,
  .gx-lg-1 {
    --bs-gutter-x: 0.25rem;
  }
  .g-lg-1,
  .gy-lg-1 {
    --bs-gutter-y: 0.25rem;
  }
  .g-lg-2,
  .gx-lg-2 {
    --bs-gutter-x: 0.5rem;
  }
  .g-lg-2,
  .gy-lg-2 {
    --bs-gutter-y: 0.5rem;
  }
  .g-lg-3,
  .gx-lg-3 {
    --bs-gutter-x: 1rem;
  }
  .g-lg-3,
  .gy-lg-3 {
    --bs-gutter-y: 1rem;
  }
  .g-lg-4,
  .gx-lg-4 {
    --bs-gutter-x: 1.5rem;
  }
  .g-lg-4,
  .gy-lg-4 {
    --bs-gutter-y: 1.5rem;
  }
  .g-lg-5,
  .gx-lg-5 {
    --bs-gutter-x: 3rem;
  }
  .g-lg-5,
  .gy-lg-5 {
    --bs-gutter-y: 3rem;
  }
}
@media (min-width: 1440px) {
  .col-xl {
    flex: 1 0 0%;
  }
  .row-cols-xl-auto > * {
    flex: 0 0 auto;
    width: auto;
  }
  .row-cols-xl-1 > * {
    flex: 0 0 auto;
    width: 100%;
  }
  .row-cols-xl-2 > * {
    flex: 0 0 auto;
    width: 50%;
  }
  .row-cols-xl-3 > * {
    flex: 0 0 auto;
    width: 33.3333333333%;
  }
  .row-cols-xl-4 > * {
    flex: 0 0 auto;
    width: 25%;
  }
  .row-cols-xl-5 > * {
    flex: 0 0 auto;
    width: 20%;
  }
  .row-cols-xl-6 > * {
    flex: 0 0 auto;
    width: 16.6666666667%;
  }
  .col-xl-auto {
    flex: 0 0 auto;
    width: auto;
  }
  .col-xl-1 {
    flex: 0 0 auto;
    width: 8.33333333%;
  }
  .col-xl-2 {
    flex: 0 0 auto;
    width: 16.66666667%;
  }
  .col-xl-3 {
    flex: 0 0 auto;
    width: 25%;
  }
  .col-xl-4 {
    flex: 0 0 auto;
    width: 33.33333333%;
  }
  .col-xl-5 {
    flex: 0 0 auto;
    width: 41.66666667%;
  }
  .col-xl-6 {
    flex: 0 0 auto;
    width: 50%;
  }
  .col-xl-7 {
    flex: 0 0 auto;
    width: 58.33333333%;
  }
  .col-xl-8 {
    flex: 0 0 auto;
    width: 66.66666667%;
  }
  .col-xl-9 {
    flex: 0 0 auto;
    width: 75%;
  }
  .col-xl-10 {
    flex: 0 0 auto;
    width: 83.33333333%;
  }
  .col-xl-11 {
    flex: 0 0 auto;
    width: 91.66666667%;
  }
  .col-xl-12 {
    flex: 0 0 auto;
    width: 100%;
  }
  .offset-xl-0 {
    margin-left: 0;
  }
  .offset-xl-1 {
    margin-left: 8.33333333%;
  }
  .offset-xl-2 {
    margin-left: 16.66666667%;
  }
  .offset-xl-3 {
    margin-left: 25%;
  }
  .offset-xl-4 {
    margin-left: 33.33333333%;
  }
  .offset-xl-5 {
    margin-left: 41.66666667%;
  }
  .offset-xl-6 {
    margin-left: 50%;
  }
  .offset-xl-7 {
    margin-left: 58.33333333%;
  }
  .offset-xl-8 {
    margin-left: 66.66666667%;
  }
  .offset-xl-9 {
    margin-left: 75%;
  }
  .offset-xl-10 {
    margin-left: 83.33333333%;
  }
  .offset-xl-11 {
    margin-left: 91.66666667%;
  }
  .g-xl-0,
  .gx-xl-0 {
    --bs-gutter-x: 0;
  }
  .g-xl-0,
  .gy-xl-0 {
    --bs-gutter-y: 0;
  }
  .g-xl-1,
  .gx-xl-1 {
    --bs-gutter-x: 0.25rem;
  }
  .g-xl-1,
  .gy-xl-1 {
    --bs-gutter-y: 0.25rem;
  }
  .g-xl-2,
  .gx-xl-2 {
    --bs-gutter-x: 0.5rem;
  }
  .g-xl-2,
  .gy-xl-2 {
    --bs-gutter-y: 0.5rem;
  }
  .g-xl-3,
  .gx-xl-3 {
    --bs-gutter-x: 1rem;
  }
  .g-xl-3,
  .gy-xl-3 {
    --bs-gutter-y: 1rem;
  }
  .g-xl-4,
  .gx-xl-4 {
    --bs-gutter-x: 1.5rem;
  }
  .g-xl-4,
  .gy-xl-4 {
    --bs-gutter-y: 1.5rem;
  }
  .g-xl-5,
  .gx-xl-5 {
    --bs-gutter-x: 3rem;
  }
  .g-xl-5,
  .gy-xl-5 {
    --bs-gutter-y: 3rem;
  }
}
.d-inline {
  display: inline !important;
}

.d-inline-block {
  display: inline-block !important;
}

.d-block {
  display: block !important;
}

.d-grid {
  display: grid !important;
}

.d-inline-grid {
  display: inline-grid !important;
}

.d-table {
  display: table !important;
}

.d-table-row {
  display: table-row !important;
}

.d-table-cell {
  display: table-cell !important;
}

.d-flex {
  display: flex !important;
}

.d-inline-flex {
  display: inline-flex !important;
}

.d-none {
  display: none !important;
}

.flex-fill {
  flex: 1 1 auto !important;
}

.flex-row {
  flex-direction: row !important;
}

.flex-column {
  flex-direction: column !important;
}

.flex-row-reverse {
  flex-direction: row-reverse !important;
}

.flex-column-reverse {
  flex-direction: column-reverse !important;
}

.flex-grow-0 {
  flex-grow: 0 !important;
}

.flex-grow-1 {
  flex-grow: 1 !important;
}

.flex-shrink-0 {
  flex-shrink: 0 !important;
}

.flex-shrink-1 {
  flex-shrink: 1 !important;
}

.flex-wrap {
  flex-wrap: wrap !important;
}

.flex-nowrap {
  flex-wrap: nowrap !important;
}

.flex-wrap-reverse {
  flex-wrap: wrap-reverse !important;
}

.justify-content-start {
  justify-content: flex-start !important;
}

.justify-content-end {
  justify-content: flex-end !important;
}

.justify-content-center {
  justify-content: center !important;
}

.justify-content-between {
  justify-content: space-between !important;
}

.justify-content-around {
  justify-content: space-around !important;
}

.justify-content-evenly {
  justify-content: space-evenly !important;
}

.align-items-start {
  align-items: flex-start !important;
}

.align-items-end {
  align-items: flex-end !important;
}

.align-items-center {
  align-items: center !important;
}

.align-items-baseline {
  align-items: baseline !important;
}

.align-items-stretch {
  align-items: stretch !important;
}

.align-content-start {
  align-content: flex-start !important;
}

.align-content-end {
  align-content: flex-end !important;
}

.align-content-center {
  align-content: center !important;
}

.align-content-between {
  align-content: space-between !important;
}

.align-content-around {
  align-content: space-around !important;
}

.align-content-stretch {
  align-content: stretch !important;
}

.align-self-auto {
  align-self: auto !important;
}

.align-self-start {
  align-self: flex-start !important;
}

.align-self-end {
  align-self: flex-end !important;
}

.align-self-center {
  align-self: center !important;
}

.align-self-baseline {
  align-self: baseline !important;
}

.align-self-stretch {
  align-self: stretch !important;
}

.order-first {
  order: -1 !important;
}

.order-0 {
  order: 0 !important;
}

.order-1 {
  order: 1 !important;
}

.order-2 {
  order: 2 !important;
}

.order-3 {
  order: 3 !important;
}

.order-4 {
  order: 4 !important;
}

.order-5 {
  order: 5 !important;
}

.order-last {
  order: 6 !important;
}

.m-0 {
  margin: 0 !important;
}

.m-1 {
  margin: 0.25rem !important;
}

.m-2 {
  margin: 0.5rem !important;
}

.m-3 {
  margin: 1rem !important;
}

.m-4 {
  margin: 1.5rem !important;
}

.m-5 {
  margin: 3rem !important;
}

.m-auto {
  margin: auto !important;
}

.mx-0 {
  margin-right: 0 !important;
  margin-left: 0 !important;
}

.mx-1 {
  margin-right: 0.25rem !important;
  margin-left: 0.25rem !important;
}

.mx-2 {
  margin-right: 0.5rem !important;
  margin-left: 0.5rem !important;
}

.mx-3 {
  margin-right: 1rem !important;
  margin-left: 1rem !important;
}

.mx-4 {
  margin-right: 1.5rem !important;
  margin-left: 1.5rem !important;
}

.mx-5 {
  margin-right: 3rem !important;
  margin-left: 3rem !important;
}

.mx-auto {
  margin-right: auto !important;
  margin-left: auto !important;
}

.my-0 {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.my-1 {
  margin-top: 0.25rem !important;
  margin-bottom: 0.25rem !important;
}

.my-2 {
  margin-top: 0.5rem !important;
  margin-bottom: 0.5rem !important;
}

.my-3 {
  margin-top: 1rem !important;
  margin-bottom: 1rem !important;
}

.my-4 {
  margin-top: 1.5rem !important;
  margin-bottom: 1.5rem !important;
}

.my-5 {
  margin-top: 3rem !important;
  margin-bottom: 3rem !important;
}

.my-auto {
  margin-top: auto !important;
  margin-bottom: auto !important;
}

.mt-0 {
  margin-top: 0 !important;
}

.mt-1 {
  margin-top: 0.25rem !important;
}

.mt-2 {
  margin-top: 0.5rem !important;
}

.mt-3 {
  margin-top: 1rem !important;
}

.mt-4 {
  margin-top: 1.5rem !important;
}

.mt-5 {
  margin-top: 3rem !important;
}

.mt-auto {
  margin-top: auto !important;
}

.me-0 {
  margin-right: 0 !important;
}

.me-1 {
  margin-right: 0.25rem !important;
}

.me-2 {
  margin-right: 0.5rem !important;
}

.me-3 {
  margin-right: 1rem !important;
}

.me-4 {
  margin-right: 1.5rem !important;
}

.me-5 {
  margin-right: 3rem !important;
}

.me-auto {
  margin-right: auto !important;
}

.mb-0 {
  margin-bottom: 0 !important;
}

.mb-1 {
  margin-bottom: 0.25rem !important;
}

.mb-2 {
  margin-bottom: 0.5rem !important;
}

.mb-3 {
  margin-bottom: 1rem !important;
}

.mb-4 {
  margin-bottom: 1.5rem !important;
}

.mb-5 {
  margin-bottom: 3rem !important;
}

.mb-auto {
  margin-bottom: auto !important;
}

.ms-0 {
  margin-left: 0 !important;
}

.ms-1 {
  margin-left: 0.25rem !important;
}

.ms-2 {
  margin-left: 0.5rem !important;
}

.ms-3 {
  margin-left: 1rem !important;
}

.ms-4 {
  margin-left: 1.5rem !important;
}

.ms-5 {
  margin-left: 3rem !important;
}

.ms-auto {
  margin-left: auto !important;
}

.p-0 {
  padding: 0 !important;
}

.p-1 {
  padding: 0.25rem !important;
}

.p-2 {
  padding: 0.5rem !important;
}

.p-3 {
  padding: 1rem !important;
}

.p-4 {
  padding: 1.5rem !important;
}

.p-5 {
  padding: 3rem !important;
}

.px-0 {
  padding-right: 0 !important;
  padding-left: 0 !important;
}

.px-1 {
  padding-right: 0.25rem !important;
  padding-left: 0.25rem !important;
}

.px-2 {
  padding-right: 0.5rem !important;
  padding-left: 0.5rem !important;
}

.px-3 {
  padding-right: 1rem !important;
  padding-left: 1rem !important;
}

.px-4 {
  padding-right: 1.5rem !important;
  padding-left: 1.5rem !important;
}

.px-5 {
  padding-right: 3rem !important;
  padding-left: 3rem !important;
}

.py-0 {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.py-1 {
  padding-top: 0.25rem !important;
  padding-bottom: 0.25rem !important;
}

.py-2 {
  padding-top: 0.5rem !important;
  padding-bottom: 0.5rem !important;
}

.py-3 {
  padding-top: 1rem !important;
  padding-bottom: 1rem !important;
}

.py-4 {
  padding-top: 1.5rem !important;
  padding-bottom: 1.5rem !important;
}

.py-5 {
  padding-top: 3rem !important;
  padding-bottom: 3rem !important;
}

.pt-0 {
  padding-top: 0 !important;
}

.pt-1 {
  padding-top: 0.25rem !important;
}

.pt-2 {
  padding-top: 0.5rem !important;
}

.pt-3 {
  padding-top: 1rem !important;
}

.pt-4 {
  padding-top: 1.5rem !important;
}

.pt-5 {
  padding-top: 3rem !important;
}

.pe-0 {
  padding-right: 0 !important;
}

.pe-1 {
  padding-right: 0.25rem !important;
}

.pe-2 {
  padding-right: 0.5rem !important;
}

.pe-3 {
  padding-right: 1rem !important;
}

.pe-4 {
  padding-right: 1.5rem !important;
}

.pe-5 {
  padding-right: 3rem !important;
}

.pb-0 {
  padding-bottom: 0 !important;
}

.pb-1 {
  padding-bottom: 0.25rem !important;
}

.pb-2 {
  padding-bottom: 0.5rem !important;
}

.pb-3 {
  padding-bottom: 1rem !important;
}

.pb-4 {
  padding-bottom: 1.5rem !important;
}

.pb-5 {
  padding-bottom: 3rem !important;
}

.ps-0 {
  padding-left: 0 !important;
}

.ps-1 {
  padding-left: 0.25rem !important;
}

.ps-2 {
  padding-left: 0.5rem !important;
}

.ps-3 {
  padding-left: 1rem !important;
}

.ps-4 {
  padding-left: 1.5rem !important;
}

.ps-5 {
  padding-left: 3rem !important;
}

@media (min-width: 500px) {
  .d-smmd-inline {
    display: inline !important;
  }
  .d-smmd-inline-block {
    display: inline-block !important;
  }
  .d-smmd-block {
    display: block !important;
  }
  .d-smmd-grid {
    display: grid !important;
  }
  .d-smmd-inline-grid {
    display: inline-grid !important;
  }
  .d-smmd-table {
    display: table !important;
  }
  .d-smmd-table-row {
    display: table-row !important;
  }
  .d-smmd-table-cell {
    display: table-cell !important;
  }
  .d-smmd-flex {
    display: flex !important;
  }
  .d-smmd-inline-flex {
    display: inline-flex !important;
  }
  .d-smmd-none {
    display: none !important;
  }
  .flex-smmd-fill {
    flex: 1 1 auto !important;
  }
  .flex-smmd-row {
    flex-direction: row !important;
  }
  .flex-smmd-column {
    flex-direction: column !important;
  }
  .flex-smmd-row-reverse {
    flex-direction: row-reverse !important;
  }
  .flex-smmd-column-reverse {
    flex-direction: column-reverse !important;
  }
  .flex-smmd-grow-0 {
    flex-grow: 0 !important;
  }
  .flex-smmd-grow-1 {
    flex-grow: 1 !important;
  }
  .flex-smmd-shrink-0 {
    flex-shrink: 0 !important;
  }
  .flex-smmd-shrink-1 {
    flex-shrink: 1 !important;
  }
  .flex-smmd-wrap {
    flex-wrap: wrap !important;
  }
  .flex-smmd-nowrap {
    flex-wrap: nowrap !important;
  }
  .flex-smmd-wrap-reverse {
    flex-wrap: wrap-reverse !important;
  }
  .justify-content-smmd-start {
    justify-content: flex-start !important;
  }
  .justify-content-smmd-end {
    justify-content: flex-end !important;
  }
  .justify-content-smmd-center {
    justify-content: center !important;
  }
  .justify-content-smmd-between {
    justify-content: space-between !important;
  }
  .justify-content-smmd-around {
    justify-content: space-around !important;
  }
  .justify-content-smmd-evenly {
    justify-content: space-evenly !important;
  }
  .align-items-smmd-start {
    align-items: flex-start !important;
  }
  .align-items-smmd-end {
    align-items: flex-end !important;
  }
  .align-items-smmd-center {
    align-items: center !important;
  }
  .align-items-smmd-baseline {
    align-items: baseline !important;
  }
  .align-items-smmd-stretch {
    align-items: stretch !important;
  }
  .align-content-smmd-start {
    align-content: flex-start !important;
  }
  .align-content-smmd-end {
    align-content: flex-end !important;
  }
  .align-content-smmd-center {
    align-content: center !important;
  }
  .align-content-smmd-between {
    align-content: space-between !important;
  }
  .align-content-smmd-around {
    align-content: space-around !important;
  }
  .align-content-smmd-stretch {
    align-content: stretch !important;
  }
  .align-self-smmd-auto {
    align-self: auto !important;
  }
  .align-self-smmd-start {
    align-self: flex-start !important;
  }
  .align-self-smmd-end {
    align-self: flex-end !important;
  }
  .align-self-smmd-center {
    align-self: center !important;
  }
  .align-self-smmd-baseline {
    align-self: baseline !important;
  }
  .align-self-smmd-stretch {
    align-self: stretch !important;
  }
  .order-smmd-first {
    order: -1 !important;
  }
  .order-smmd-0 {
    order: 0 !important;
  }
  .order-smmd-1 {
    order: 1 !important;
  }
  .order-smmd-2 {
    order: 2 !important;
  }
  .order-smmd-3 {
    order: 3 !important;
  }
  .order-smmd-4 {
    order: 4 !important;
  }
  .order-smmd-5 {
    order: 5 !important;
  }
  .order-smmd-last {
    order: 6 !important;
  }
  .m-smmd-0 {
    margin: 0 !important;
  }
  .m-smmd-1 {
    margin: 0.25rem !important;
  }
  .m-smmd-2 {
    margin: 0.5rem !important;
  }
  .m-smmd-3 {
    margin: 1rem !important;
  }
  .m-smmd-4 {
    margin: 1.5rem !important;
  }
  .m-smmd-5 {
    margin: 3rem !important;
  }
  .m-smmd-auto {
    margin: auto !important;
  }
  .mx-smmd-0 {
    margin-right: 0 !important;
    margin-left: 0 !important;
  }
  .mx-smmd-1 {
    margin-right: 0.25rem !important;
    margin-left: 0.25rem !important;
  }
  .mx-smmd-2 {
    margin-right: 0.5rem !important;
    margin-left: 0.5rem !important;
  }
  .mx-smmd-3 {
    margin-right: 1rem !important;
    margin-left: 1rem !important;
  }
  .mx-smmd-4 {
    margin-right: 1.5rem !important;
    margin-left: 1.5rem !important;
  }
  .mx-smmd-5 {
    margin-right: 3rem !important;
    margin-left: 3rem !important;
  }
  .mx-smmd-auto {
    margin-right: auto !important;
    margin-left: auto !important;
  }
  .my-smmd-0 {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
  .my-smmd-1 {
    margin-top: 0.25rem !important;
    margin-bottom: 0.25rem !important;
  }
  .my-smmd-2 {
    margin-top: 0.5rem !important;
    margin-bottom: 0.5rem !important;
  }
  .my-smmd-3 {
    margin-top: 1rem !important;
    margin-bottom: 1rem !important;
  }
  .my-smmd-4 {
    margin-top: 1.5rem !important;
    margin-bottom: 1.5rem !important;
  }
  .my-smmd-5 {
    margin-top: 3rem !important;
    margin-bottom: 3rem !important;
  }
  .my-smmd-auto {
    margin-top: auto !important;
    margin-bottom: auto !important;
  }
  .mt-smmd-0 {
    margin-top: 0 !important;
  }
  .mt-smmd-1 {
    margin-top: 0.25rem !important;
  }
  .mt-smmd-2 {
    margin-top: 0.5rem !important;
  }
  .mt-smmd-3 {
    margin-top: 1rem !important;
  }
  .mt-smmd-4 {
    margin-top: 1.5rem !important;
  }
  .mt-smmd-5 {
    margin-top: 3rem !important;
  }
  .mt-smmd-auto {
    margin-top: auto !important;
  }
  .me-smmd-0 {
    margin-right: 0 !important;
  }
  .me-smmd-1 {
    margin-right: 0.25rem !important;
  }
  .me-smmd-2 {
    margin-right: 0.5rem !important;
  }
  .me-smmd-3 {
    margin-right: 1rem !important;
  }
  .me-smmd-4 {
    margin-right: 1.5rem !important;
  }
  .me-smmd-5 {
    margin-right: 3rem !important;
  }
  .me-smmd-auto {
    margin-right: auto !important;
  }
  .mb-smmd-0 {
    margin-bottom: 0 !important;
  }
  .mb-smmd-1 {
    margin-bottom: 0.25rem !important;
  }
  .mb-smmd-2 {
    margin-bottom: 0.5rem !important;
  }
  .mb-smmd-3 {
    margin-bottom: 1rem !important;
  }
  .mb-smmd-4 {
    margin-bottom: 1.5rem !important;
  }
  .mb-smmd-5 {
    margin-bottom: 3rem !important;
  }
  .mb-smmd-auto {
    margin-bottom: auto !important;
  }
  .ms-smmd-0 {
    margin-left: 0 !important;
  }
  .ms-smmd-1 {
    margin-left: 0.25rem !important;
  }
  .ms-smmd-2 {
    margin-left: 0.5rem !important;
  }
  .ms-smmd-3 {
    margin-left: 1rem !important;
  }
  .ms-smmd-4 {
    margin-left: 1.5rem !important;
  }
  .ms-smmd-5 {
    margin-left: 3rem !important;
  }
  .ms-smmd-auto {
    margin-left: auto !important;
  }
  .p-smmd-0 {
    padding: 0 !important;
  }
  .p-smmd-1 {
    padding: 0.25rem !important;
  }
  .p-smmd-2 {
    padding: 0.5rem !important;
  }
  .p-smmd-3 {
    padding: 1rem !important;
  }
  .p-smmd-4 {
    padding: 1.5rem !important;
  }
  .p-smmd-5 {
    padding: 3rem !important;
  }
  .px-smmd-0 {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }
  .px-smmd-1 {
    padding-right: 0.25rem !important;
    padding-left: 0.25rem !important;
  }
  .px-smmd-2 {
    padding-right: 0.5rem !important;
    padding-left: 0.5rem !important;
  }
  .px-smmd-3 {
    padding-right: 1rem !important;
    padding-left: 1rem !important;
  }
  .px-smmd-4 {
    padding-right: 1.5rem !important;
    padding-left: 1.5rem !important;
  }
  .px-smmd-5 {
    padding-right: 3rem !important;
    padding-left: 3rem !important;
  }
  .py-smmd-0 {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
  .py-smmd-1 {
    padding-top: 0.25rem !important;
    padding-bottom: 0.25rem !important;
  }
  .py-smmd-2 {
    padding-top: 0.5rem !important;
    padding-bottom: 0.5rem !important;
  }
  .py-smmd-3 {
    padding-top: 1rem !important;
    padding-bottom: 1rem !important;
  }
  .py-smmd-4 {
    padding-top: 1.5rem !important;
    padding-bottom: 1.5rem !important;
  }
  .py-smmd-5 {
    padding-top: 3rem !important;
    padding-bottom: 3rem !important;
  }
  .pt-smmd-0 {
    padding-top: 0 !important;
  }
  .pt-smmd-1 {
    padding-top: 0.25rem !important;
  }
  .pt-smmd-2 {
    padding-top: 0.5rem !important;
  }
  .pt-smmd-3 {
    padding-top: 1rem !important;
  }
  .pt-smmd-4 {
    padding-top: 1.5rem !important;
  }
  .pt-smmd-5 {
    padding-top: 3rem !important;
  }
  .pe-smmd-0 {
    padding-right: 0 !important;
  }
  .pe-smmd-1 {
    padding-right: 0.25rem !important;
  }
  .pe-smmd-2 {
    padding-right: 0.5rem !important;
  }
  .pe-smmd-3 {
    padding-right: 1rem !important;
  }
  .pe-smmd-4 {
    padding-right: 1.5rem !important;
  }
  .pe-smmd-5 {
    padding-right: 3rem !important;
  }
  .pb-smmd-0 {
    padding-bottom: 0 !important;
  }
  .pb-smmd-1 {
    padding-bottom: 0.25rem !important;
  }
  .pb-smmd-2 {
    padding-bottom: 0.5rem !important;
  }
  .pb-smmd-3 {
    padding-bottom: 1rem !important;
  }
  .pb-smmd-4 {
    padding-bottom: 1.5rem !important;
  }
  .pb-smmd-5 {
    padding-bottom: 3rem !important;
  }
  .ps-smmd-0 {
    padding-left: 0 !important;
  }
  .ps-smmd-1 {
    padding-left: 0.25rem !important;
  }
  .ps-smmd-2 {
    padding-left: 0.5rem !important;
  }
  .ps-smmd-3 {
    padding-left: 1rem !important;
  }
  .ps-smmd-4 {
    padding-left: 1.5rem !important;
  }
  .ps-smmd-5 {
    padding-left: 3rem !important;
  }
}
@media (min-width: 768px) {
  .d-md-inline {
    display: inline !important;
  }
  .d-md-inline-block {
    display: inline-block !important;
  }
  .d-md-block {
    display: block !important;
  }
  .d-md-grid {
    display: grid !important;
  }
  .d-md-inline-grid {
    display: inline-grid !important;
  }
  .d-md-table {
    display: table !important;
  }
  .d-md-table-row {
    display: table-row !important;
  }
  .d-md-table-cell {
    display: table-cell !important;
  }
  .d-md-flex {
    display: flex !important;
  }
  .d-md-inline-flex {
    display: inline-flex !important;
  }
  .d-md-none {
    display: none !important;
  }
  .flex-md-fill {
    flex: 1 1 auto !important;
  }
  .flex-md-row {
    flex-direction: row !important;
  }
  .flex-md-column {
    flex-direction: column !important;
  }
  .flex-md-row-reverse {
    flex-direction: row-reverse !important;
  }
  .flex-md-column-reverse {
    flex-direction: column-reverse !important;
  }
  .flex-md-grow-0 {
    flex-grow: 0 !important;
  }
  .flex-md-grow-1 {
    flex-grow: 1 !important;
  }
  .flex-md-shrink-0 {
    flex-shrink: 0 !important;
  }
  .flex-md-shrink-1 {
    flex-shrink: 1 !important;
  }
  .flex-md-wrap {
    flex-wrap: wrap !important;
  }
  .flex-md-nowrap {
    flex-wrap: nowrap !important;
  }
  .flex-md-wrap-reverse {
    flex-wrap: wrap-reverse !important;
  }
  .justify-content-md-start {
    justify-content: flex-start !important;
  }
  .justify-content-md-end {
    justify-content: flex-end !important;
  }
  .justify-content-md-center {
    justify-content: center !important;
  }
  .justify-content-md-between {
    justify-content: space-between !important;
  }
  .justify-content-md-around {
    justify-content: space-around !important;
  }
  .justify-content-md-evenly {
    justify-content: space-evenly !important;
  }
  .align-items-md-start {
    align-items: flex-start !important;
  }
  .align-items-md-end {
    align-items: flex-end !important;
  }
  .align-items-md-center {
    align-items: center !important;
  }
  .align-items-md-baseline {
    align-items: baseline !important;
  }
  .align-items-md-stretch {
    align-items: stretch !important;
  }
  .align-content-md-start {
    align-content: flex-start !important;
  }
  .align-content-md-end {
    align-content: flex-end !important;
  }
  .align-content-md-center {
    align-content: center !important;
  }
  .align-content-md-between {
    align-content: space-between !important;
  }
  .align-content-md-around {
    align-content: space-around !important;
  }
  .align-content-md-stretch {
    align-content: stretch !important;
  }
  .align-self-md-auto {
    align-self: auto !important;
  }
  .align-self-md-start {
    align-self: flex-start !important;
  }
  .align-self-md-end {
    align-self: flex-end !important;
  }
  .align-self-md-center {
    align-self: center !important;
  }
  .align-self-md-baseline {
    align-self: baseline !important;
  }
  .align-self-md-stretch {
    align-self: stretch !important;
  }
  .order-md-first {
    order: -1 !important;
  }
  .order-md-0 {
    order: 0 !important;
  }
  .order-md-1 {
    order: 1 !important;
  }
  .order-md-2 {
    order: 2 !important;
  }
  .order-md-3 {
    order: 3 !important;
  }
  .order-md-4 {
    order: 4 !important;
  }
  .order-md-5 {
    order: 5 !important;
  }
  .order-md-last {
    order: 6 !important;
  }
  .m-md-0 {
    margin: 0 !important;
  }
  .m-md-1 {
    margin: 0.25rem !important;
  }
  .m-md-2 {
    margin: 0.5rem !important;
  }
  .m-md-3 {
    margin: 1rem !important;
  }
  .m-md-4 {
    margin: 1.5rem !important;
  }
  .m-md-5 {
    margin: 3rem !important;
  }
  .m-md-auto {
    margin: auto !important;
  }
  .mx-md-0 {
    margin-right: 0 !important;
    margin-left: 0 !important;
  }
  .mx-md-1 {
    margin-right: 0.25rem !important;
    margin-left: 0.25rem !important;
  }
  .mx-md-2 {
    margin-right: 0.5rem !important;
    margin-left: 0.5rem !important;
  }
  .mx-md-3 {
    margin-right: 1rem !important;
    margin-left: 1rem !important;
  }
  .mx-md-4 {
    margin-right: 1.5rem !important;
    margin-left: 1.5rem !important;
  }
  .mx-md-5 {
    margin-right: 3rem !important;
    margin-left: 3rem !important;
  }
  .mx-md-auto {
    margin-right: auto !important;
    margin-left: auto !important;
  }
  .my-md-0 {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
  .my-md-1 {
    margin-top: 0.25rem !important;
    margin-bottom: 0.25rem !important;
  }
  .my-md-2 {
    margin-top: 0.5rem !important;
    margin-bottom: 0.5rem !important;
  }
  .my-md-3 {
    margin-top: 1rem !important;
    margin-bottom: 1rem !important;
  }
  .my-md-4 {
    margin-top: 1.5rem !important;
    margin-bottom: 1.5rem !important;
  }
  .my-md-5 {
    margin-top: 3rem !important;
    margin-bottom: 3rem !important;
  }
  .my-md-auto {
    margin-top: auto !important;
    margin-bottom: auto !important;
  }
  .mt-md-0 {
    margin-top: 0 !important;
  }
  .mt-md-1 {
    margin-top: 0.25rem !important;
  }
  .mt-md-2 {
    margin-top: 0.5rem !important;
  }
  .mt-md-3 {
    margin-top: 1rem !important;
  }
  .mt-md-4 {
    margin-top: 1.5rem !important;
  }
  .mt-md-5 {
    margin-top: 3rem !important;
  }
  .mt-md-auto {
    margin-top: auto !important;
  }
  .me-md-0 {
    margin-right: 0 !important;
  }
  .me-md-1 {
    margin-right: 0.25rem !important;
  }
  .me-md-2 {
    margin-right: 0.5rem !important;
  }
  .me-md-3 {
    margin-right: 1rem !important;
  }
  .me-md-4 {
    margin-right: 1.5rem !important;
  }
  .me-md-5 {
    margin-right: 3rem !important;
  }
  .me-md-auto {
    margin-right: auto !important;
  }
  .mb-md-0 {
    margin-bottom: 0 !important;
  }
  .mb-md-1 {
    margin-bottom: 0.25rem !important;
  }
  .mb-md-2 {
    margin-bottom: 0.5rem !important;
  }
  .mb-md-3 {
    margin-bottom: 1rem !important;
  }
  .mb-md-4 {
    margin-bottom: 1.5rem !important;
  }
  .mb-md-5 {
    margin-bottom: 3rem !important;
  }
  .mb-md-auto {
    margin-bottom: auto !important;
  }
  .ms-md-0 {
    margin-left: 0 !important;
  }
  .ms-md-1 {
    margin-left: 0.25rem !important;
  }
  .ms-md-2 {
    margin-left: 0.5rem !important;
  }
  .ms-md-3 {
    margin-left: 1rem !important;
  }
  .ms-md-4 {
    margin-left: 1.5rem !important;
  }
  .ms-md-5 {
    margin-left: 3rem !important;
  }
  .ms-md-auto {
    margin-left: auto !important;
  }
  .p-md-0 {
    padding: 0 !important;
  }
  .p-md-1 {
    padding: 0.25rem !important;
  }
  .p-md-2 {
    padding: 0.5rem !important;
  }
  .p-md-3 {
    padding: 1rem !important;
  }
  .p-md-4 {
    padding: 1.5rem !important;
  }
  .p-md-5 {
    padding: 3rem !important;
  }
  .px-md-0 {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }
  .px-md-1 {
    padding-right: 0.25rem !important;
    padding-left: 0.25rem !important;
  }
  .px-md-2 {
    padding-right: 0.5rem !important;
    padding-left: 0.5rem !important;
  }
  .px-md-3 {
    padding-right: 1rem !important;
    padding-left: 1rem !important;
  }
  .px-md-4 {
    padding-right: 1.5rem !important;
    padding-left: 1.5rem !important;
  }
  .px-md-5 {
    padding-right: 3rem !important;
    padding-left: 3rem !important;
  }
  .py-md-0 {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
  .py-md-1 {
    padding-top: 0.25rem !important;
    padding-bottom: 0.25rem !important;
  }
  .py-md-2 {
    padding-top: 0.5rem !important;
    padding-bottom: 0.5rem !important;
  }
  .py-md-3 {
    padding-top: 1rem !important;
    padding-bottom: 1rem !important;
  }
  .py-md-4 {
    padding-top: 1.5rem !important;
    padding-bottom: 1.5rem !important;
  }
  .py-md-5 {
    padding-top: 3rem !important;
    padding-bottom: 3rem !important;
  }
  .pt-md-0 {
    padding-top: 0 !important;
  }
  .pt-md-1 {
    padding-top: 0.25rem !important;
  }
  .pt-md-2 {
    padding-top: 0.5rem !important;
  }
  .pt-md-3 {
    padding-top: 1rem !important;
  }
  .pt-md-4 {
    padding-top: 1.5rem !important;
  }
  .pt-md-5 {
    padding-top: 3rem !important;
  }
  .pe-md-0 {
    padding-right: 0 !important;
  }
  .pe-md-1 {
    padding-right: 0.25rem !important;
  }
  .pe-md-2 {
    padding-right: 0.5rem !important;
  }
  .pe-md-3 {
    padding-right: 1rem !important;
  }
  .pe-md-4 {
    padding-right: 1.5rem !important;
  }
  .pe-md-5 {
    padding-right: 3rem !important;
  }
  .pb-md-0 {
    padding-bottom: 0 !important;
  }
  .pb-md-1 {
    padding-bottom: 0.25rem !important;
  }
  .pb-md-2 {
    padding-bottom: 0.5rem !important;
  }
  .pb-md-3 {
    padding-bottom: 1rem !important;
  }
  .pb-md-4 {
    padding-bottom: 1.5rem !important;
  }
  .pb-md-5 {
    padding-bottom: 3rem !important;
  }
  .ps-md-0 {
    padding-left: 0 !important;
  }
  .ps-md-1 {
    padding-left: 0.25rem !important;
  }
  .ps-md-2 {
    padding-left: 0.5rem !important;
  }
  .ps-md-3 {
    padding-left: 1rem !important;
  }
  .ps-md-4 {
    padding-left: 1.5rem !important;
  }
  .ps-md-5 {
    padding-left: 3rem !important;
  }
}
@media (min-width: 992px) {
  .d-lg-inline {
    display: inline !important;
  }
  .d-lg-inline-block {
    display: inline-block !important;
  }
  .d-lg-block {
    display: block !important;
  }
  .d-lg-grid {
    display: grid !important;
  }
  .d-lg-inline-grid {
    display: inline-grid !important;
  }
  .d-lg-table {
    display: table !important;
  }
  .d-lg-table-row {
    display: table-row !important;
  }
  .d-lg-table-cell {
    display: table-cell !important;
  }
  .d-lg-flex {
    display: flex !important;
  }
  .d-lg-inline-flex {
    display: inline-flex !important;
  }
  .d-lg-none {
    display: none !important;
  }
  .flex-lg-fill {
    flex: 1 1 auto !important;
  }
  .flex-lg-row {
    flex-direction: row !important;
  }
  .flex-lg-column {
    flex-direction: column !important;
  }
  .flex-lg-row-reverse {
    flex-direction: row-reverse !important;
  }
  .flex-lg-column-reverse {
    flex-direction: column-reverse !important;
  }
  .flex-lg-grow-0 {
    flex-grow: 0 !important;
  }
  .flex-lg-grow-1 {
    flex-grow: 1 !important;
  }
  .flex-lg-shrink-0 {
    flex-shrink: 0 !important;
  }
  .flex-lg-shrink-1 {
    flex-shrink: 1 !important;
  }
  .flex-lg-wrap {
    flex-wrap: wrap !important;
  }
  .flex-lg-nowrap {
    flex-wrap: nowrap !important;
  }
  .flex-lg-wrap-reverse {
    flex-wrap: wrap-reverse !important;
  }
  .justify-content-lg-start {
    justify-content: flex-start !important;
  }
  .justify-content-lg-end {
    justify-content: flex-end !important;
  }
  .justify-content-lg-center {
    justify-content: center !important;
  }
  .justify-content-lg-between {
    justify-content: space-between !important;
  }
  .justify-content-lg-around {
    justify-content: space-around !important;
  }
  .justify-content-lg-evenly {
    justify-content: space-evenly !important;
  }
  .align-items-lg-start {
    align-items: flex-start !important;
  }
  .align-items-lg-end {
    align-items: flex-end !important;
  }
  .align-items-lg-center {
    align-items: center !important;
  }
  .align-items-lg-baseline {
    align-items: baseline !important;
  }
  .align-items-lg-stretch {
    align-items: stretch !important;
  }
  .align-content-lg-start {
    align-content: flex-start !important;
  }
  .align-content-lg-end {
    align-content: flex-end !important;
  }
  .align-content-lg-center {
    align-content: center !important;
  }
  .align-content-lg-between {
    align-content: space-between !important;
  }
  .align-content-lg-around {
    align-content: space-around !important;
  }
  .align-content-lg-stretch {
    align-content: stretch !important;
  }
  .align-self-lg-auto {
    align-self: auto !important;
  }
  .align-self-lg-start {
    align-self: flex-start !important;
  }
  .align-self-lg-end {
    align-self: flex-end !important;
  }
  .align-self-lg-center {
    align-self: center !important;
  }
  .align-self-lg-baseline {
    align-self: baseline !important;
  }
  .align-self-lg-stretch {
    align-self: stretch !important;
  }
  .order-lg-first {
    order: -1 !important;
  }
  .order-lg-0 {
    order: 0 !important;
  }
  .order-lg-1 {
    order: 1 !important;
  }
  .order-lg-2 {
    order: 2 !important;
  }
  .order-lg-3 {
    order: 3 !important;
  }
  .order-lg-4 {
    order: 4 !important;
  }
  .order-lg-5 {
    order: 5 !important;
  }
  .order-lg-last {
    order: 6 !important;
  }
  .m-lg-0 {
    margin: 0 !important;
  }
  .m-lg-1 {
    margin: 0.25rem !important;
  }
  .m-lg-2 {
    margin: 0.5rem !important;
  }
  .m-lg-3 {
    margin: 1rem !important;
  }
  .m-lg-4 {
    margin: 1.5rem !important;
  }
  .m-lg-5 {
    margin: 3rem !important;
  }
  .m-lg-auto {
    margin: auto !important;
  }
  .mx-lg-0 {
    margin-right: 0 !important;
    margin-left: 0 !important;
  }
  .mx-lg-1 {
    margin-right: 0.25rem !important;
    margin-left: 0.25rem !important;
  }
  .mx-lg-2 {
    margin-right: 0.5rem !important;
    margin-left: 0.5rem !important;
  }
  .mx-lg-3 {
    margin-right: 1rem !important;
    margin-left: 1rem !important;
  }
  .mx-lg-4 {
    margin-right: 1.5rem !important;
    margin-left: 1.5rem !important;
  }
  .mx-lg-5 {
    margin-right: 3rem !important;
    margin-left: 3rem !important;
  }
  .mx-lg-auto {
    margin-right: auto !important;
    margin-left: auto !important;
  }
  .my-lg-0 {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
  .my-lg-1 {
    margin-top: 0.25rem !important;
    margin-bottom: 0.25rem !important;
  }
  .my-lg-2 {
    margin-top: 0.5rem !important;
    margin-bottom: 0.5rem !important;
  }
  .my-lg-3 {
    margin-top: 1rem !important;
    margin-bottom: 1rem !important;
  }
  .my-lg-4 {
    margin-top: 1.5rem !important;
    margin-bottom: 1.5rem !important;
  }
  .my-lg-5 {
    margin-top: 3rem !important;
    margin-bottom: 3rem !important;
  }
  .my-lg-auto {
    margin-top: auto !important;
    margin-bottom: auto !important;
  }
  .mt-lg-0 {
    margin-top: 0 !important;
  }
  .mt-lg-1 {
    margin-top: 0.25rem !important;
  }
  .mt-lg-2 {
    margin-top: 0.5rem !important;
  }
  .mt-lg-3 {
    margin-top: 1rem !important;
  }
  .mt-lg-4 {
    margin-top: 1.5rem !important;
  }
  .mt-lg-5 {
    margin-top: 3rem !important;
  }
  .mt-lg-auto {
    margin-top: auto !important;
  }
  .me-lg-0 {
    margin-right: 0 !important;
  }
  .me-lg-1 {
    margin-right: 0.25rem !important;
  }
  .me-lg-2 {
    margin-right: 0.5rem !important;
  }
  .me-lg-3 {
    margin-right: 1rem !important;
  }
  .me-lg-4 {
    margin-right: 1.5rem !important;
  }
  .me-lg-5 {
    margin-right: 3rem !important;
  }
  .me-lg-auto {
    margin-right: auto !important;
  }
  .mb-lg-0 {
    margin-bottom: 0 !important;
  }
  .mb-lg-1 {
    margin-bottom: 0.25rem !important;
  }
  .mb-lg-2 {
    margin-bottom: 0.5rem !important;
  }
  .mb-lg-3 {
    margin-bottom: 1rem !important;
  }
  .mb-lg-4 {
    margin-bottom: 1.5rem !important;
  }
  .mb-lg-5 {
    margin-bottom: 3rem !important;
  }
  .mb-lg-auto {
    margin-bottom: auto !important;
  }
  .ms-lg-0 {
    margin-left: 0 !important;
  }
  .ms-lg-1 {
    margin-left: 0.25rem !important;
  }
  .ms-lg-2 {
    margin-left: 0.5rem !important;
  }
  .ms-lg-3 {
    margin-left: 1rem !important;
  }
  .ms-lg-4 {
    margin-left: 1.5rem !important;
  }
  .ms-lg-5 {
    margin-left: 3rem !important;
  }
  .ms-lg-auto {
    margin-left: auto !important;
  }
  .p-lg-0 {
    padding: 0 !important;
  }
  .p-lg-1 {
    padding: 0.25rem !important;
  }
  .p-lg-2 {
    padding: 0.5rem !important;
  }
  .p-lg-3 {
    padding: 1rem !important;
  }
  .p-lg-4 {
    padding: 1.5rem !important;
  }
  .p-lg-5 {
    padding: 3rem !important;
  }
  .px-lg-0 {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }
  .px-lg-1 {
    padding-right: 0.25rem !important;
    padding-left: 0.25rem !important;
  }
  .px-lg-2 {
    padding-right: 0.5rem !important;
    padding-left: 0.5rem !important;
  }
  .px-lg-3 {
    padding-right: 1rem !important;
    padding-left: 1rem !important;
  }
  .px-lg-4 {
    padding-right: 1.5rem !important;
    padding-left: 1.5rem !important;
  }
  .px-lg-5 {
    padding-right: 3rem !important;
    padding-left: 3rem !important;
  }
  .py-lg-0 {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
  .py-lg-1 {
    padding-top: 0.25rem !important;
    padding-bottom: 0.25rem !important;
  }
  .py-lg-2 {
    padding-top: 0.5rem !important;
    padding-bottom: 0.5rem !important;
  }
  .py-lg-3 {
    padding-top: 1rem !important;
    padding-bottom: 1rem !important;
  }
  .py-lg-4 {
    padding-top: 1.5rem !important;
    padding-bottom: 1.5rem !important;
  }
  .py-lg-5 {
    padding-top: 3rem !important;
    padding-bottom: 3rem !important;
  }
  .pt-lg-0 {
    padding-top: 0 !important;
  }
  .pt-lg-1 {
    padding-top: 0.25rem !important;
  }
  .pt-lg-2 {
    padding-top: 0.5rem !important;
  }
  .pt-lg-3 {
    padding-top: 1rem !important;
  }
  .pt-lg-4 {
    padding-top: 1.5rem !important;
  }
  .pt-lg-5 {
    padding-top: 3rem !important;
  }
  .pe-lg-0 {
    padding-right: 0 !important;
  }
  .pe-lg-1 {
    padding-right: 0.25rem !important;
  }
  .pe-lg-2 {
    padding-right: 0.5rem !important;
  }
  .pe-lg-3 {
    padding-right: 1rem !important;
  }
  .pe-lg-4 {
    padding-right: 1.5rem !important;
  }
  .pe-lg-5 {
    padding-right: 3rem !important;
  }
  .pb-lg-0 {
    padding-bottom: 0 !important;
  }
  .pb-lg-1 {
    padding-bottom: 0.25rem !important;
  }
  .pb-lg-2 {
    padding-bottom: 0.5rem !important;
  }
  .pb-lg-3 {
    padding-bottom: 1rem !important;
  }
  .pb-lg-4 {
    padding-bottom: 1.5rem !important;
  }
  .pb-lg-5 {
    padding-bottom: 3rem !important;
  }
  .ps-lg-0 {
    padding-left: 0 !important;
  }
  .ps-lg-1 {
    padding-left: 0.25rem !important;
  }
  .ps-lg-2 {
    padding-left: 0.5rem !important;
  }
  .ps-lg-3 {
    padding-left: 1rem !important;
  }
  .ps-lg-4 {
    padding-left: 1.5rem !important;
  }
  .ps-lg-5 {
    padding-left: 3rem !important;
  }
}
@media (min-width: 1440px) {
  .d-xl-inline {
    display: inline !important;
  }
  .d-xl-inline-block {
    display: inline-block !important;
  }
  .d-xl-block {
    display: block !important;
  }
  .d-xl-grid {
    display: grid !important;
  }
  .d-xl-inline-grid {
    display: inline-grid !important;
  }
  .d-xl-table {
    display: table !important;
  }
  .d-xl-table-row {
    display: table-row !important;
  }
  .d-xl-table-cell {
    display: table-cell !important;
  }
  .d-xl-flex {
    display: flex !important;
  }
  .d-xl-inline-flex {
    display: inline-flex !important;
  }
  .d-xl-none {
    display: none !important;
  }
  .flex-xl-fill {
    flex: 1 1 auto !important;
  }
  .flex-xl-row {
    flex-direction: row !important;
  }
  .flex-xl-column {
    flex-direction: column !important;
  }
  .flex-xl-row-reverse {
    flex-direction: row-reverse !important;
  }
  .flex-xl-column-reverse {
    flex-direction: column-reverse !important;
  }
  .flex-xl-grow-0 {
    flex-grow: 0 !important;
  }
  .flex-xl-grow-1 {
    flex-grow: 1 !important;
  }
  .flex-xl-shrink-0 {
    flex-shrink: 0 !important;
  }
  .flex-xl-shrink-1 {
    flex-shrink: 1 !important;
  }
  .flex-xl-wrap {
    flex-wrap: wrap !important;
  }
  .flex-xl-nowrap {
    flex-wrap: nowrap !important;
  }
  .flex-xl-wrap-reverse {
    flex-wrap: wrap-reverse !important;
  }
  .justify-content-xl-start {
    justify-content: flex-start !important;
  }
  .justify-content-xl-end {
    justify-content: flex-end !important;
  }
  .justify-content-xl-center {
    justify-content: center !important;
  }
  .justify-content-xl-between {
    justify-content: space-between !important;
  }
  .justify-content-xl-around {
    justify-content: space-around !important;
  }
  .justify-content-xl-evenly {
    justify-content: space-evenly !important;
  }
  .align-items-xl-start {
    align-items: flex-start !important;
  }
  .align-items-xl-end {
    align-items: flex-end !important;
  }
  .align-items-xl-center {
    align-items: center !important;
  }
  .align-items-xl-baseline {
    align-items: baseline !important;
  }
  .align-items-xl-stretch {
    align-items: stretch !important;
  }
  .align-content-xl-start {
    align-content: flex-start !important;
  }
  .align-content-xl-end {
    align-content: flex-end !important;
  }
  .align-content-xl-center {
    align-content: center !important;
  }
  .align-content-xl-between {
    align-content: space-between !important;
  }
  .align-content-xl-around {
    align-content: space-around !important;
  }
  .align-content-xl-stretch {
    align-content: stretch !important;
  }
  .align-self-xl-auto {
    align-self: auto !important;
  }
  .align-self-xl-start {
    align-self: flex-start !important;
  }
  .align-self-xl-end {
    align-self: flex-end !important;
  }
  .align-self-xl-center {
    align-self: center !important;
  }
  .align-self-xl-baseline {
    align-self: baseline !important;
  }
  .align-self-xl-stretch {
    align-self: stretch !important;
  }
  .order-xl-first {
    order: -1 !important;
  }
  .order-xl-0 {
    order: 0 !important;
  }
  .order-xl-1 {
    order: 1 !important;
  }
  .order-xl-2 {
    order: 2 !important;
  }
  .order-xl-3 {
    order: 3 !important;
  }
  .order-xl-4 {
    order: 4 !important;
  }
  .order-xl-5 {
    order: 5 !important;
  }
  .order-xl-last {
    order: 6 !important;
  }
  .m-xl-0 {
    margin: 0 !important;
  }
  .m-xl-1 {
    margin: 0.25rem !important;
  }
  .m-xl-2 {
    margin: 0.5rem !important;
  }
  .m-xl-3 {
    margin: 1rem !important;
  }
  .m-xl-4 {
    margin: 1.5rem !important;
  }
  .m-xl-5 {
    margin: 3rem !important;
  }
  .m-xl-auto {
    margin: auto !important;
  }
  .mx-xl-0 {
    margin-right: 0 !important;
    margin-left: 0 !important;
  }
  .mx-xl-1 {
    margin-right: 0.25rem !important;
    margin-left: 0.25rem !important;
  }
  .mx-xl-2 {
    margin-right: 0.5rem !important;
    margin-left: 0.5rem !important;
  }
  .mx-xl-3 {
    margin-right: 1rem !important;
    margin-left: 1rem !important;
  }
  .mx-xl-4 {
    margin-right: 1.5rem !important;
    margin-left: 1.5rem !important;
  }
  .mx-xl-5 {
    margin-right: 3rem !important;
    margin-left: 3rem !important;
  }
  .mx-xl-auto {
    margin-right: auto !important;
    margin-left: auto !important;
  }
  .my-xl-0 {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
  .my-xl-1 {
    margin-top: 0.25rem !important;
    margin-bottom: 0.25rem !important;
  }
  .my-xl-2 {
    margin-top: 0.5rem !important;
    margin-bottom: 0.5rem !important;
  }
  .my-xl-3 {
    margin-top: 1rem !important;
    margin-bottom: 1rem !important;
  }
  .my-xl-4 {
    margin-top: 1.5rem !important;
    margin-bottom: 1.5rem !important;
  }
  .my-xl-5 {
    margin-top: 3rem !important;
    margin-bottom: 3rem !important;
  }
  .my-xl-auto {
    margin-top: auto !important;
    margin-bottom: auto !important;
  }
  .mt-xl-0 {
    margin-top: 0 !important;
  }
  .mt-xl-1 {
    margin-top: 0.25rem !important;
  }
  .mt-xl-2 {
    margin-top: 0.5rem !important;
  }
  .mt-xl-3 {
    margin-top: 1rem !important;
  }
  .mt-xl-4 {
    margin-top: 1.5rem !important;
  }
  .mt-xl-5 {
    margin-top: 3rem !important;
  }
  .mt-xl-auto {
    margin-top: auto !important;
  }
  .me-xl-0 {
    margin-right: 0 !important;
  }
  .me-xl-1 {
    margin-right: 0.25rem !important;
  }
  .me-xl-2 {
    margin-right: 0.5rem !important;
  }
  .me-xl-3 {
    margin-right: 1rem !important;
  }
  .me-xl-4 {
    margin-right: 1.5rem !important;
  }
  .me-xl-5 {
    margin-right: 3rem !important;
  }
  .me-xl-auto {
    margin-right: auto !important;
  }
  .mb-xl-0 {
    margin-bottom: 0 !important;
  }
  .mb-xl-1 {
    margin-bottom: 0.25rem !important;
  }
  .mb-xl-2 {
    margin-bottom: 0.5rem !important;
  }
  .mb-xl-3 {
    margin-bottom: 1rem !important;
  }
  .mb-xl-4 {
    margin-bottom: 1.5rem !important;
  }
  .mb-xl-5 {
    margin-bottom: 3rem !important;
  }
  .mb-xl-auto {
    margin-bottom: auto !important;
  }
  .ms-xl-0 {
    margin-left: 0 !important;
  }
  .ms-xl-1 {
    margin-left: 0.25rem !important;
  }
  .ms-xl-2 {
    margin-left: 0.5rem !important;
  }
  .ms-xl-3 {
    margin-left: 1rem !important;
  }
  .ms-xl-4 {
    margin-left: 1.5rem !important;
  }
  .ms-xl-5 {
    margin-left: 3rem !important;
  }
  .ms-xl-auto {
    margin-left: auto !important;
  }
  .p-xl-0 {
    padding: 0 !important;
  }
  .p-xl-1 {
    padding: 0.25rem !important;
  }
  .p-xl-2 {
    padding: 0.5rem !important;
  }
  .p-xl-3 {
    padding: 1rem !important;
  }
  .p-xl-4 {
    padding: 1.5rem !important;
  }
  .p-xl-5 {
    padding: 3rem !important;
  }
  .px-xl-0 {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }
  .px-xl-1 {
    padding-right: 0.25rem !important;
    padding-left: 0.25rem !important;
  }
  .px-xl-2 {
    padding-right: 0.5rem !important;
    padding-left: 0.5rem !important;
  }
  .px-xl-3 {
    padding-right: 1rem !important;
    padding-left: 1rem !important;
  }
  .px-xl-4 {
    padding-right: 1.5rem !important;
    padding-left: 1.5rem !important;
  }
  .px-xl-5 {
    padding-right: 3rem !important;
    padding-left: 3rem !important;
  }
  .py-xl-0 {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
  .py-xl-1 {
    padding-top: 0.25rem !important;
    padding-bottom: 0.25rem !important;
  }
  .py-xl-2 {
    padding-top: 0.5rem !important;
    padding-bottom: 0.5rem !important;
  }
  .py-xl-3 {
    padding-top: 1rem !important;
    padding-bottom: 1rem !important;
  }
  .py-xl-4 {
    padding-top: 1.5rem !important;
    padding-bottom: 1.5rem !important;
  }
  .py-xl-5 {
    padding-top: 3rem !important;
    padding-bottom: 3rem !important;
  }
  .pt-xl-0 {
    padding-top: 0 !important;
  }
  .pt-xl-1 {
    padding-top: 0.25rem !important;
  }
  .pt-xl-2 {
    padding-top: 0.5rem !important;
  }
  .pt-xl-3 {
    padding-top: 1rem !important;
  }
  .pt-xl-4 {
    padding-top: 1.5rem !important;
  }
  .pt-xl-5 {
    padding-top: 3rem !important;
  }
  .pe-xl-0 {
    padding-right: 0 !important;
  }
  .pe-xl-1 {
    padding-right: 0.25rem !important;
  }
  .pe-xl-2 {
    padding-right: 0.5rem !important;
  }
  .pe-xl-3 {
    padding-right: 1rem !important;
  }
  .pe-xl-4 {
    padding-right: 1.5rem !important;
  }
  .pe-xl-5 {
    padding-right: 3rem !important;
  }
  .pb-xl-0 {
    padding-bottom: 0 !important;
  }
  .pb-xl-1 {
    padding-bottom: 0.25rem !important;
  }
  .pb-xl-2 {
    padding-bottom: 0.5rem !important;
  }
  .pb-xl-3 {
    padding-bottom: 1rem !important;
  }
  .pb-xl-4 {
    padding-bottom: 1.5rem !important;
  }
  .pb-xl-5 {
    padding-bottom: 3rem !important;
  }
  .ps-xl-0 {
    padding-left: 0 !important;
  }
  .ps-xl-1 {
    padding-left: 0.25rem !important;
  }
  .ps-xl-2 {
    padding-left: 0.5rem !important;
  }
  .ps-xl-3 {
    padding-left: 1rem !important;
  }
  .ps-xl-4 {
    padding-left: 1.5rem !important;
  }
  .ps-xl-5 {
    padding-left: 3rem !important;
  }
}
@media print {
  .d-print-inline {
    display: inline !important;
  }
  .d-print-inline-block {
    display: inline-block !important;
  }
  .d-print-block {
    display: block !important;
  }
  .d-print-grid {
    display: grid !important;
  }
  .d-print-inline-grid {
    display: inline-grid !important;
  }
  .d-print-table {
    display: table !important;
  }
  .d-print-table-row {
    display: table-row !important;
  }
  .d-print-table-cell {
    display: table-cell !important;
  }
  .d-print-flex {
    display: flex !important;
  }
  .d-print-inline-flex {
    display: inline-flex !important;
  }
  .d-print-none {
    display: none !important;
  }
}
/*loop over all breaking points*/
.mb--50 {
  margin-bottom: 50px !important;
}

.mt--50 {
  margin-top: 50px !important;
}

.p--50 {
  padding: 50px;
}

.pl--50 {
  padding-left: 50px !important;
}

.pr--50 {
  padding-right: 50px !important;
}

.pt--50 {
  padding-top: 50px !important;
}

.pb--50 {
  padding-bottom: 50px !important;
}

.mb--70 {
  margin-bottom: 70px !important;
}

.mt--70 {
  margin-top: 70px !important;
}

.p--70 {
  padding: 70px;
}

.pl--70 {
  padding-left: 70px !important;
}

.pr--70 {
  padding-right: 70px !important;
}

.pt--70 {
  padding-top: 70px !important;
}

.pb--70 {
  padding-bottom: 70px !important;
}

.mb--100 {
  margin-bottom: 100px !important;
}

.mt--100 {
  margin-top: 100px !important;
}

.p--100 {
  padding: 100px;
}

.pl--100 {
  padding-left: 100px !important;
}

.pr--100 {
  padding-right: 100px !important;
}

.pt--100 {
  padding-top: 100px !important;
}

.pb--100 {
  padding-bottom: 100px !important;
}

.mb--150 {
  margin-bottom: 150px !important;
}

.mt--150 {
  margin-top: 150px !important;
}

.p--150 {
  padding: 150px;
}

.pl--150 {
  padding-left: 150px !important;
}

.pr--150 {
  padding-right: 150px !important;
}

.pt--150 {
  padding-top: 150px !important;
}

.pb--150 {
  padding-bottom: 150px !important;
}

.bg-base {
  background-color: #26282a;
}

.bg-primary {
  background-color: #e56956;
}

.bg-secondary {
  background-color: #dda879;
}

.bg-third {
  background-color: #495867;
}

.bg-four {
  background-color: #fcf6f2;
}

.bg-five {
  background-color: #fef9f8;
}

.bg-six {
  background-color: #fff0e3;
}

.bg-white {
  background-color: #fff;
}

.bg-grey {
  background-color: rgba(233, 233, 233, 0.5);
}

.bg-greyDark {
  background-color: #c9c9c9;
}

.bg-danger {
  background-color: #ee3c3c;
}

.bg-dangerNegative {
  background-color: #f09797;
}

.bg-cover {
  background-size: cover;
}

.bg-center-right {
  background-position: center right !important;
}

.bg-center-left {
  background-position: center left !important;
}

.bg-center-center {
  background-position: center center !important;
}

.bg-top-left {
  background-position: top left !important;
}

.bg-top-right {
  background-position: top right !important;
}

.bg-bottom-right {
  background-position: bottom right !important;
}

.bg-bottom-left {
  background-position: bottom left !important;
}

.loading {
  position: relative;
}
.loading:after {
  content: "";
  display: block;
  height: 100%;
  width: 100%;
  top: 0;
  left: 0;
  position: absolute;
  background-color: white;
  opacity: 0.5;
}
.loading:after {
  content: "";
  display: block;
  height: 100%;
  width: 100%;
  top: 0;
  left: 0;
  position: absolute;
  background-image: url("data:image/svg+xml,%3Csvg width='38' height='38' viewBox='0 0 38 38' xmlns='http://www.w3.org/2000/svg' stroke='%23aaa'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg transform='translate(1 1)' stroke-width='2'%3E%3Ccircle stroke-opacity='.5' cx='18' cy='18' r='18'/%3E%3Cpath d='M36 18c0-9.94-8.06-18-18-18'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 18 18' to='360 18 18' dur='1s' repeatCount='indefinite'/%3E%3C/path%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  background-position: center center;
  background-size: 50px;
  background-repeat: no-repeat;
}

.w-100 {
  width: 100%;
}

.h-100 {
  height: 100%;
}

.h-auto {
  height: auto !important;
}

.center-absolute-horizontal {
  left: 50%;
  transform: translateX(-50%);
}

.position-absolute {
  position: absolute;
}

.position-relative {
  position: relative;
}

.overflow-hidden {
  overflow: hidden;
}

.home #animation_calemi,
.home #animation_jewelry {
  display: none;
}
.home .animation #main_logo {
  opacity: 0;
  animation: logo 2s ease-in-out 6s forwards;
}
@keyframes logo {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.home .animation #animation_calemi {
  stroke-dasharray: 2147.6;
  stroke-dashoffset: 2147.6;
  animation: calemi 6s linear forwards;
  fill: transparent;
  display: block;
}
@keyframes calemi {
  0% {
    stroke-dashoffset: 2147.6;
    fill: transparent;
  }
  40% {
    stroke-dashoffset: 0;
    fill: transparent;
  }
  67% {
    stroke-dashoffset: 0;
    fill: white;
    opacity: 1;
  }
  90% {
    stroke-dashoffset: 0;
    fill: white;
    opacity: 1;
  }
  100% {
    opacity: 0;
    stroke-dashoffset: 0;
    fill: white;
  }
}
.home .animation #animation_jewelry {
  opacity: 0;
  animation: jewelry 3s ease-in-out 3s forwards;
  display: block;
}
@keyframes jewelry {
  0% {
    opacity: 0;
  }
  80% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

.search-submit {
  position: absolute;
  right: 0;
  top: 0;
  width: 48px;
}

.searchwp-live-search-results {
  background-color: #fff0e3;
  border-radius: 0;
  columns: white;
  max-height: 70vh;
  height: 70vh;
  border: 1px solid white;
  box-shadow: none;
}
.searchwp-live-search-results .searchwp-live-search-result {
  border-bottom: 1px solid white;
  flex-wrap: nowrap;
}
.searchwp-live-search-results .searchwp-live-search-result:last-child {
  border-bottom: none;
}
.searchwp-live-search-results .searchwp-live-search-result .searchwp-live-search-result--img img {
  width: 70px;
  height: 70px;
  object-fit: cover;
}
.searchwp-live-search-results .searchwp-live-search-result .searchwp-live-search-result--info {
  align-items: center;
  display: flex;
}
.searchwp-live-search-results .searchwp-live-search-result .searchwp-live-search-result--info h4 {
  font-size: 16px;
  line-height: 20px;
}
.searchwp-live-search-results .searchwp-live-search-result .searchwp-live-search-result--title {
  margin: 0;
}
.searchwp-live-search-results .searchwp-live-search-result .searchwp-live-search-result--ecommerce {
  display: flex;
  justify-content: center;
  align-items: center;
}

/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS and IE text size adjust after device orientation change,
 *    without disabling user zoom.
 */
html {
  font-family: sans-serif; /* 1 */
  -ms-text-size-adjust: 100%; /* 2 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/**
 * Remove default margin.
 */
body {
  margin: 0;
}

/* HTML5 display definitions
   ========================================================================== */
/**
 * Correct `block` display not defined for any HTML5 element in IE 8/9.
 * Correct `block` display not defined for `details` or `summary` in IE 10/11
 * and Firefox.
 * Correct `block` display not defined for `main` in IE 11.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
main,
menu,
nav,
section,
summary {
  display: block;
}

/**
 * 1. Correct `inline-block` display not defined in IE 8/9.
 * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
 */
audio,
canvas,
progress,
video {
  display: inline-block; /* 1 */
  vertical-align: baseline; /* 2 */
}

/**
 * Prevent modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */
audio:not([controls]) {
  display: none;
  height: 0;
}

/**
 * Address `[hidden]` styling not present in IE 8/9/10.
 * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
 */
[hidden],
template {
  display: none;
}

/* Links
   ========================================================================== */
/**
 * Remove the gray background color from active links in IE 10.
 */
a {
  background-color: transparent;
}

/**
 * Improve readability of focused elements when they are also in an
 * active/hover state.
 */
a:active,
a:hover {
  outline: 0;
}

/* Text-level semantics
   ========================================================================== */
/**
 * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
 */
abbr[title] {
  border-bottom: 1px dotted;
}

/**
 * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
 */
b,
strong {
  font-weight: bold;
}

/**
 * Address styling not present in Safari and Chrome.
 */
dfn {
  font-style: italic;
}

/**
 * Address variable `h1` font-size and margin within `section` and `article`
 * contexts in Firefox 4+, Safari, and Chrome.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/**
 * Address styling not present in IE 8/9.
 */
mark {
  background: #ff0;
  color: #000;
}

/**
 * Address inconsistent and variable font size in all browsers.
 */
small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` affecting `line-height` in all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sup {
  top: -0.5em;
}

sub {
  bottom: -0.25em;
}

/* Embedded content
   ========================================================================== */
/**
 * Remove border when inside `a` element in IE 8/9/10.
 */
img {
  border: 0;
}

/**
 * Correct overflow not hidden in IE 9/10/11.
 */
svg:not(:root) {
  overflow: hidden;
}

/* Grouping content
   ========================================================================== */
/**
 * Address margin not present in IE 8/9 and Safari.
 */
figure {
  margin: 1em 40px;
}

/**
 * Address differences between Firefox and other browsers.
 */
hr {
  box-sizing: content-box;
  height: 0;
}

/**
 * Contain overflow in all browsers.
 */
pre {
  overflow: auto;
}

/**
 * Address odd `em`-unit font size rendering in all browsers.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}

/* Forms
   ========================================================================== */
/**
 * Known limitation: by default, Chrome and Safari on OS X allow very limited
 * styling of `select`, unless a `border` property is set.
 */
/**
 * 1. Correct color not being inherited.
 *    Known issue: affects color of disabled elements.
 * 2. Correct font properties not being inherited.
 * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
 */
button,
input,
optgroup,
select,
textarea {
  color: inherit; /* 1 */
  font: inherit; /* 2 */
  margin: 0; /* 3 */
}

/**
 * Address `overflow` set to `hidden` in IE 8/9/10/11.
 */
button {
  overflow: visible;
}

/**
 * Address inconsistent `text-transform` inheritance for `button` and `select`.
 * All other form control elements do not inherit `text-transform` values.
 * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
 * Correct `select` style inheritance in Firefox.
 */
button,
select {
  text-transform: none;
}

/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *    `input` and others.
 */
button,
html input[type=button],
input[type=reset],
input[type=submit] {
  -webkit-appearance: button; /* 2 */
  cursor: pointer; /* 3 */
}

/**
 * Re-set default cursor for disabled elements.
 */
button[disabled],
html input[disabled] {
  cursor: default;
}

/**
 * Remove inner padding and border in Firefox 4+.
 */
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}

/**
 * Address Firefox 4+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */
input {
  line-height: normal;
}

/**
 * It's recommended that you don't attempt to style these elements.
 * Firefox's implementation doesn't respect box-sizing, padding, or width.
 *
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 */
input[type=checkbox],
input[type=radio] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}

/**
 * Fix the cursor style for Chrome's increment/decrement buttons. For certain
 * `font-size` values of the `input`, it causes the cursor style of the
 * decrement button to change from `default` to `text`.
 */
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
 */
input[type=search] {
  -webkit-appearance: textfield; /* 1 */
  box-sizing: content-box; /* 2 */
}

/**
 * Remove inner padding and search cancel button in Safari and Chrome on OS X.
 * Safari (but not Chrome) clips the cancel button when the search input has
 * padding (and `textfield` appearance).
 */
input[type=search]::-webkit-search-cancel-button,
input[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * Define consistent border, margin, and padding.
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}

/**
 * 1. Correct `color` not being inherited in IE 8/9/10/11.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */
legend {
  border: 0; /* 1 */
  padding: 0; /* 2 */
}

/**
 * Remove default vertical scrollbar in IE 8/9/10/11.
 */
textarea {
  overflow: auto;
}

/**
 * Don't inherit the `font-weight` (applied by a rule above).
 * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
 */
optgroup {
  font-weight: bold;
}

/* Tables
   ========================================================================== */
/**
 * Remove most spacing between table cells.
 */
table {
  border-collapse: collapse;
  border-spacing: 0;
}

td,
th {
  padding: 0;
}

svg,
img {
  max-width: 100%;
  display: block;
  height: auto;
}

iframe {
  max-width: 100%;
}

figure {
  margin: 0px;
}

video {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
}
video#frontpage {
  height: 60vh;
  object-fit: cover;
  object-position: 50% 0;
}
@media (min-width: 1440px) {
  video#frontpage {
    height: auto;
  }
}

.lazy-container {
  position: relative;
}
.lazy-container:after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background-image: url("data:image/svg+xml;base64,PCEtLSBCeSBTYW0gSGVyYmVydCAoQHNoZXJiKSwgZm9yIGV2ZXJ5b25lLiBNb3JlIEAgaHR0cDovL2dvby5nbC83QUp6YkwgLS0+Cjxzdmcgd2lkdGg9IjM4IiBoZWlnaHQ9IjM4IiB2aWV3Qm94PSIwIDAgMzggMzgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjYWFhIj4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMSAxKSIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgPGNpcmNsZSBzdHJva2Utb3BhY2l0eT0iLjUiIGN4PSIxOCIgY3k9IjE4IiByPSIxOCIvPgogICAgICAgICAgICA8cGF0aCBkPSJNMzYgMThjMC05Ljk0LTguMDYtMTgtMTgtMTgiPgogICAgICAgICAgICAgICAgPGFuaW1hdGVUcmFuc2Zvcm0KICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iCiAgICAgICAgICAgICAgICAgICAgdHlwZT0icm90YXRlIgogICAgICAgICAgICAgICAgICAgIGZyb209IjAgMTggMTgiCiAgICAgICAgICAgICAgICAgICAgdG89IjM2MCAxOCAxOCIKICAgICAgICAgICAgICAgICAgICBkdXI9IjFzIgogICAgICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+CiAgICAgICAgICAgIDwvcGF0aD4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 50px;
  background-color: rgba(233, 233, 233, 0.5);
  transition: opacity 1s;
}
.lazy-container.lazy-container--loaded:after {
  opacity: 0;
}
.lazy-container img {
  position: absolute;
  top: 0;
  left: 0;
}
.lazy-container.lazy-container--transparent {
  background-color: transparent;
}

[data-bg] {
  position: relative;
  overflow: hidden;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}
[data-bg]:after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background-image: url("data:image/svg+xml;base64,PCEtLSBCeSBTYW0gSGVyYmVydCAoQHNoZXJiKSwgZm9yIGV2ZXJ5b25lLiBNb3JlIEAgaHR0cDovL2dvby5nbC83QUp6YkwgLS0+Cjxzdmcgd2lkdGg9IjM4IiBoZWlnaHQ9IjM4IiB2aWV3Qm94PSIwIDAgMzggMzgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjYWFhIj4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMSAxKSIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgPGNpcmNsZSBzdHJva2Utb3BhY2l0eT0iLjUiIGN4PSIxOCIgY3k9IjE4IiByPSIxOCIvPgogICAgICAgICAgICA8cGF0aCBkPSJNMzYgMThjMC05Ljk0LTguMDYtMTgtMTgtMTgiPgogICAgICAgICAgICAgICAgPGFuaW1hdGVUcmFuc2Zvcm0KICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iCiAgICAgICAgICAgICAgICAgICAgdHlwZT0icm90YXRlIgogICAgICAgICAgICAgICAgICAgIGZyb209IjAgMTggMTgiCiAgICAgICAgICAgICAgICAgICAgdG89IjM2MCAxOCAxOCIKICAgICAgICAgICAgICAgICAgICBkdXI9IjFzIgogICAgICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+CiAgICAgICAgICAgIDwvcGF0aD4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 30px;
  background-color: rgba(233, 233, 233, 0.5);
  transition: opacity 1s, top 0s linear 1s;
}
[data-bg].lazy--loaded:after {
  opacity: 0;
  top: -1000%;
}

.bg-cover {
  background-size: cover;
}

.js-youtube-video {
  position: relative;
}
.js-youtube-video img,
.js-youtube-video iframe {
  position: absolute;
  top: 0;
  left: 0;
  max-width: 100%;
  opacity: 0;
  transition: opacity 0.5s;
}
.js-youtube-video iframe {
  z-index: 2;
}
.js-youtube-video iframe.loaded {
  opacity: 1;
}

.icon--video:not(.video--revealed) {
  position: relative;
  cursor: pointer;
}
.icon--video:not(.video--revealed):after {
  content: "";
  display: block;
  height: 100%;
  width: 100%;
  top: 0;
  left: 0;
  position: absolute;
  background-image: url('data:image/svg+xml,<svg height="20px" version="1.1" viewBox="0 0 20 20" width="20px" xmlns="http://www.w3.org/2000/svg" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns" xmlns:xlink="http://www.w3.org/1999/xlink"><title/><desc/><defs/><g fill="none" fill-rule="evenodd" id="Page-1" stroke="none" stroke-width="1"><g fill="%23e56956" id="Icons-AV" transform="translate(-126.000000, -85.000000)"><g id="play-circle-fill" transform="translate(126.000000, 85.000000)"><path d="M10,0 C4.5,0 0,4.5 0,10 C0,15.5 4.5,20 10,20 C15.5,20 20,15.5 20,10 C20,4.5 15.5,0 10,0 L10,0 Z M8,14.5 L8,5.5 L14,10 L8,14.5 L8,14.5 Z" id="Shape"/></g></g></g></svg>');
  background-repeat: no-repeat;
  background-size: clamp(30px, 30%, 100px);
  background-position: center center;
  z-index: 2;
}
.icon--video:not(.video--revealed):hover:after {
  opacity: 0.5;
}

.video--reveal {
  position: relative;
}
.video--reveal .video--hidden {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
  object-fit: cover;
  width: 100%;
  height: 100%;
}
.video--reveal .video_cover {
  position: relative;
  z-index: 1;
}
.video--reveal.video--revealed .video_cover {
  z-index: -1;
}

.radius-normal {
  border-radius: 10px;
}

.radius-forms {
  border-radius: 4px;
}

.border-t-base {
  border-top: 1px solid #26282a;
}

.border-b-base {
  border-bottom: 1px solid #26282a;
}

.border-base {
  border: 1px solid #26282a;
}

.border-t-primary {
  border-top: 1px solid #e56956;
}

.border-b-primary {
  border-bottom: 1px solid #e56956;
}

.border-primary {
  border: 1px solid #e56956;
}

.border-t-secondary {
  border-top: 1px solid #dda879;
}

.border-b-secondary {
  border-bottom: 1px solid #dda879;
}

.border-secondary {
  border: 1px solid #dda879;
}

.border-t-third {
  border-top: 1px solid #495867;
}

.border-b-third {
  border-bottom: 1px solid #495867;
}

.border-third {
  border: 1px solid #495867;
}

.border-t-four {
  border-top: 1px solid #fcf6f2;
}

.border-b-four {
  border-bottom: 1px solid #fcf6f2;
}

.border-four {
  border: 1px solid #fcf6f2;
}

.border-t-five {
  border-top: 1px solid #fef9f8;
}

.border-b-five {
  border-bottom: 1px solid #fef9f8;
}

.border-five {
  border: 1px solid #fef9f8;
}

.border-t-six {
  border-top: 1px solid #fff0e3;
}

.border-b-six {
  border-bottom: 1px solid #fff0e3;
}

.border-six {
  border: 1px solid #fff0e3;
}

.border-t-white {
  border-top: 1px solid #fff;
}

.border-b-white {
  border-bottom: 1px solid #fff;
}

.border-white {
  border: 1px solid #fff;
}

.border-t-grey {
  border-top: 1px solid rgba(233, 233, 233, 0.5);
}

.border-b-grey {
  border-bottom: 1px solid rgba(233, 233, 233, 0.5);
}

.border-grey {
  border: 1px solid rgba(233, 233, 233, 0.5);
}

.border-t-greyDark {
  border-top: 1px solid #c9c9c9;
}

.border-b-greyDark {
  border-bottom: 1px solid #c9c9c9;
}

.border-greyDark {
  border: 1px solid #c9c9c9;
}

.border-t-danger {
  border-top: 1px solid #ee3c3c;
}

.border-b-danger {
  border-bottom: 1px solid #ee3c3c;
}

.border-danger {
  border: 1px solid #ee3c3c;
}

.border-t-dangerNegative {
  border-top: 1px solid #f09797;
}

.border-b-dangerNegative {
  border-bottom: 1px solid #f09797;
}

.border-dangerNegative {
  border: 1px solid #f09797;
}

label {
  font-weight: 0.8;
  color: #495867;
}

textarea,
input[type=text],
input[type=search],
input[type=number],
input[type=tel],
input[type=email],
select {
  background-color: transparent;
  height: 50px;
  line-height: 50px;
  border: none;
  padding: 0 15px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  box-shadow: none;
  max-width: 100%;
  box-sizing: border-box;
  border-bottom: 1px solid #26282a;
  color: #26282a;
}
textarea:focus,
input[type=text]:focus,
input[type=search]:focus,
input[type=number]:focus,
input[type=tel]:focus,
input[type=email]:focus,
select:focus {
  background-color: transparent;
  outline: none;
  border-bottom: none;
}

#search textarea,
#search input[type=text],
#search input[type=search],
#search input[type=number],
#search input[type=tel],
#search input[type=email],
#search select {
  border-bottom: 2px solid #e56956;
  color: #e56956;
}

.has-validation-error {
  position: relative;
}
.has-validation-error:is(label) {
  color: #ee3c3c;
}
.has-validation-error input {
  border: 2px solid #ee3c3c;
}
.has-validation-error .validation-error {
  color: #ee3c3c;
  font-size: 16px;
}

textarea {
  height: 300px;
  line-height: 20px;
}

input[type=checkbox] {
  display: none;
}
input[type=checkbox]:checked + label:after {
  opacity: 1;
}
input[type=checkbox] + label {
  position: relative;
}
input[type=checkbox] + label:before {
  content: "";
  height: 0.65em;
  width: 0.65em;
  margin-right: 5px;
  border: 1px solid white;
  border-radius: 2px;
  display: inline-block;
}
input[type=checkbox] + label:after {
  content: "";
  height: 0.35em;
  width: 0.18em;
  display: inline-block;
  position: absolute;
  border-bottom: 2px solid white;
  border-right: 2px solid white;
  left: 0.25em;
  top: 0.27em;
  opacity: 0;
  transition: opacity 0.3s;
  transform: rotate(45deg);
}

.storefront-sorting {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  margin-bottom: 10px;
}
.storefront-sorting .select-wrapper {
  margin: 0;
  position: relative;
}
.storefront-sorting .select-wrapper select {
  border: 1px solid #dda879;
  color: #dda879;
  border-radius: 30px;
  text-align: center;
  font-weight: 400;
  padding-right: 20px;
}
.storefront-sorting .select-wrapper:after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  right: 15px;
  width: 0;
  height: 0;
  pointer-events: none;
  border-top: 5px solid #dda879;
  border-right: 4px solid transparent;
  border-left: 4px solid transparent;
}
.storefront-sorting .woocommerce-result-count {
  color: #dda879;
  font-weight: 700;
  margin-left: auto;
  margin-bottom: 10px;
}
.storefront-sorting .woocommerce-pagination {
  margin-left: auto;
  border: none;
}
.storefront-sorting .woocommerce-pagination .page-numbers li .page-numbers {
  border-radius: 50%;
  background-color: transparent;
  border: 1px solid #dda879;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #dda879;
  font-weight: 400;
}
.storefront-sorting .woocommerce-pagination .page-numbers li .page-numbers.current {
  background-color: #dda879;
  color: white;
  border: 1px solid #dda879;
}
.storefront-sorting .woocommerce-pagination .page-numbers li .page-numbers:hover {
  background-color: #dda879;
  color: white;
  border: 1px solid #dda879;
  opacity: 0.5;
}
.storefront-sorting .woocommerce-pagination .page-numbers li .page-numbers.next, .storefront-sorting .woocommerce-pagination .page-numbers li .page-numbers.prev {
  border: none;
}

body {
  font-family: "Lato";
  font-weight: 300;
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color: #26282a;
}

/*loop over all breaking points*/
@media (min-width: 0) {
  .btn--1 {
    font-size: 20px;
    line-height: 50px;
    height: 50px;
    letter-spacing: 2px;
    padding: 0 1.5em;
  }
}
@media (min-width: 0) {
  .btn--2 {
    font-size: 18px;
    line-height: 40px;
    height: 40px;
    padding: 0 2em;
  }
}
@media (min-width: 0) {
  .btn--3 {
    font-size: 13px;
    line-height: 28px;
    height: 28px;
    padding: 0 2em;
  }
}
@media (min-width: 768px) {
  .btn--1 {
    font-size: 20px;
    line-height: 45px;
    height: 50px;
    padding: 0 2em;
  }
}
@media (min-width: 768px) {
  .btn--2 {
    font-size: 16px;
    line-height: 35px;
    height: 40px;
    padding: 0 1em;
  }
}
.btn {
  display: inline-block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  background-color: #dda879;
  text-align: center;
  transition: background-color 0.3s;
  border: none;
  -moz-appearance: none;
  color: white;
  font-weight: 700;
  text-transform: uppercase;
  border: 2px solid #dda879;
}
@media (min-width: 1440px) {
  .btn {
    display: inline-block;
  }
}
.btn:hover {
  opacity: 0.8;
  color: white;
}
.btn.btn--white {
  color: white;
  background-color: transparent;
  border-color: white;
}
.btn.loading, .btn.btn--loading {
  background-image: url("data:image/svg+xml,%3Csvg width='38' height='38' viewBox='0 0 38 38' xmlns='http://www.w3.org/2000/svg' stroke='%23fff'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg transform='translate(1 1)' stroke-width='2'%3E%3Ccircle stroke-opacity='.5' cx='18' cy='18' r='18'/%3E%3Cpath d='M36 18c0-9.94-8.06-18-18-18'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 18 18' to='360 18 18' dur='1s' repeatCount='indefinite'/%3E%3C/path%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 30px;
  color: transparent !important;
}
.btn.loading:after, .btn.btn--loading:after {
  display: none;
}
.btn.btn--secondary {
  background-color: transparent;
  border: 2px solid #e56956;
  color: #e56956;
}
.btn.btn--grey {
  background-color: transparent;
  border: 2px solid #495867;
  color: #495867;
}
.btn.btn--grey.loading, .btn.btn--grey.btn--loading {
  background-image: url("data:image/svg+xml,%3Csvg width='38' height='38' viewBox='0 0 38 38' xmlns='http://www.w3.org/2000/svg' stroke='%23495867'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg transform='translate(1 1)' stroke-width='2'%3E%3Ccircle stroke-opacity='.5' cx='18' cy='18' r='18'/%3E%3Cpath d='M36 18c0-9.94-8.06-18-18-18'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 18 18' to='360 18 18' dur='1s' repeatCount='indefinite'/%3E%3C/path%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 30px;
  color: transparent !important;
}
.btn.btn--reset {
  height: auto;
  line-height: auto;
  background-color: transparent;
  border: none;
  padding: 0;
}

.added_to_cart {
  display: none;
}

.icon {
  display: inline-block;
  border-radius: 50%;
  width: 30px;
  height: 30px;
  background-color: #c9c9c9;
  border: 2px solid #c9c9c9;
  position: relative;
  background-repeat: no-repeat;
  transition: all 0.3s;
}

.icon-wishlist {
  width: 30px;
}

.icon--search {
  width: 38px;
}
@media (min-width: 768px) {
  .icon--search {
    margin-top: -3px;
  }
}

.icon-micro {
  flex-shrink: 0;
  height: 1em;
  width: 1em;
  display: inline-block;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: contain;
}
.icon-micro.icon-micro--location {
  background-image: url("data:image/svg+xml,%3Csvg width='12' height='15' viewBox='0 0 12 15' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.66672 0C2.54227 0 5.76899e-05 2.54221 5.76899e-05 5.66312C-0.020484 10.2283 5.45139 14.0137 5.66672 14.1667C5.66672 14.1667 11.3539 10.2283 11.3334 5.66667C11.3334 2.54221 8.79118 0 5.66672 0ZM5.66672 8.5C4.10131 8.5 2.83339 7.23208 2.83339 5.66667C2.83339 4.10125 4.10131 2.83333 5.66672 2.83333C7.23214 2.83333 8.50006 4.10125 8.50006 5.66667C8.50006 7.23208 7.23214 8.5 5.66672 8.5Z' fill='%23011E4A'/%3E%3C/svg%3E");
}
.icon-micro.icon-micro--external-link {
  background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='7.8943' cy='7.89462' r='7.25' transform='rotate(-46.8565 7.8943 7.89462)' stroke='%23011E4A' stroke-width='0.5'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M10.3131 4.97401C10.4129 4.97266 10.5092 5.01099 10.5808 5.08058C10.6523 5.15016 10.6933 5.2453 10.6947 5.34505L10.7572 9.85862C10.7586 9.95838 10.7203 10.0546 10.6506 10.1261C10.581 10.1976 10.4858 10.2385 10.386 10.2398C10.2862 10.2412 10.1899 10.2029 10.1183 10.1333C10.0468 10.0637 10.0058 9.96855 10.0044 9.86879L9.95447 6.26321L5.08128 11.3903C5.04677 11.4257 5.00561 11.454 4.96015 11.4736C4.91468 11.4931 4.86581 11.5035 4.81632 11.5042C4.76683 11.5049 4.71769 11.4958 4.6717 11.4775C4.62572 11.4592 4.58379 11.432 4.54831 11.3975C4.51283 11.363 4.48449 11.3218 4.46492 11.2764C4.44535 11.231 4.43492 11.1821 4.43424 11.1327C4.43355 11.0832 4.44262 11.0341 4.46093 10.9882C4.47923 10.9422 4.50642 10.9003 4.54093 10.8649L9.41489 5.73855L5.80679 5.7873C5.70697 5.78865 5.61068 5.75032 5.53912 5.68073C5.46755 5.61115 5.42657 5.51602 5.42519 5.41626C5.42381 5.3165 5.46214 5.2203 5.53175 5.1488C5.60136 5.07731 5.69655 5.03639 5.79637 5.03504L10.3131 4.97401Z' fill='%23011E4A'/%3E%3C/svg%3E");
}
.icon-micro.icon-micro--internal-link {
  background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='7.8943' cy='7.89462' r='7.25' transform='rotate(-46.8565 7.8943 7.89462)' stroke='%23011E4A' stroke-width='0.5'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M10.3131 4.97401C10.4129 4.97266 10.5092 5.01099 10.5808 5.08058C10.6523 5.15016 10.6933 5.2453 10.6947 5.34505L10.7572 9.85862C10.7586 9.95838 10.7203 10.0546 10.6506 10.1261C10.581 10.1976 10.4858 10.2385 10.386 10.2398C10.2862 10.2412 10.1899 10.2029 10.1183 10.1333C10.0468 10.0637 10.0058 9.96855 10.0044 9.86879L9.95447 6.26321L5.08128 11.3903C5.04677 11.4257 5.00561 11.454 4.96015 11.4736C4.91468 11.4931 4.86581 11.5035 4.81632 11.5042C4.76683 11.5049 4.71769 11.4958 4.6717 11.4775C4.62572 11.4592 4.58379 11.432 4.54831 11.3975C4.51283 11.363 4.48449 11.3218 4.46492 11.2764C4.44535 11.231 4.43492 11.1821 4.43424 11.1327C4.43355 11.0832 4.44262 11.0341 4.46093 10.9882C4.47923 10.9422 4.50642 10.9003 4.54093 10.8649L9.41489 5.73855L5.80679 5.7873C5.70697 5.78865 5.61068 5.75032 5.53912 5.68073C5.46755 5.61115 5.42657 5.51602 5.42519 5.41626C5.42381 5.3165 5.46214 5.2203 5.53175 5.1488C5.60136 5.07731 5.69655 5.03639 5.79637 5.03504L10.3131 4.97401Z' fill='%23011E4A'/%3E%3C/svg%3E");
  transform: rotate(45deg);
}
.icon-micro.icon-micro--email {
  background-image: url("data:image/svg+xml,%3Csvg width='13' height='10' viewBox='0 0 13 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.5 2.88V7.96875C12.5 8.48759 12.3015 8.98677 11.9452 9.36389C11.5889 9.74102 11.1018 9.9675 10.5837 9.99688L10.4688 10H2.03125C1.51241 10 1.01323 9.80153 0.636106 9.4452C0.258979 9.08888 0.0324992 8.60175 0.00312507 8.08375L0 7.96875V2.88L6.0325 6.04C6.09961 6.07515 6.17424 6.09351 6.25 6.09351C6.32576 6.09351 6.40039 6.07515 6.4675 6.04L12.5 2.88ZM2.03125 1.47532e-08H10.4688C10.9722 -6.06342e-05 11.4578 0.186872 11.8313 0.524542C12.2047 0.862212 12.4395 1.32655 12.49 1.8275L6.25 5.09625L0.01 1.8275C0.0584521 1.34645 0.276906 0.898448 0.626094 0.564039C0.975281 0.22963 1.4323 0.0307419 1.915 0.00312509L2.03125 1.47532e-08H10.4688H2.03125Z' fill='%23011E4A'/%3E%3C/svg%3E");
}

/* lato-300 - latin_latin-ext */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Lato";
  font-style: normal;
  font-weight: 300;
  src: url("../../src/fonts/lato-v24-latin_latin-ext-300.woff2") format("woff2"), url("../../src/fonts/lato-v24-latin_latin-ext-300.ttf") format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}
/* lato-regular - latin_latin-ext */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Lato";
  font-style: normal;
  font-weight: 400;
  src: url("../../src/fonts/lato-v24-latin_latin-ext-regular.woff2") format("woff2"), url("../../src/fonts/lato-v24-latin_latin-ext-regular.ttf") format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}
/* lato-700 - latin_latin-ext */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Lato";
  font-style: normal;
  font-weight: 700;
  src: url("../../src/fonts/lato-v24-latin_latin-ext-700.woff2") format("woff2"), url("../../src/fonts/lato-v24-latin_latin-ext-700.ttf") format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Bodoni Moda";
  font-style: normal;
  font-weight: 400;
  src: url("../../src/fonts/bodoni-moda-v23-latin_latin-ext-regular.woff2") format("woff2"), url("../../src/fonts/bodoni-moda-v23-latin_latin-ext-regular.ttf") format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}
body {
  line-height: 1.6;
  letter-spacing: 0.5px;
}
@media (min-width: 0) {
  body {
    font-size: 20px;
    line-height: 1.4;
  }
}
@media (min-width: 768px) {
  body {
    font-size: 20px;
  }
}
@media (min-width: 992px) {
  body {
    font-size: 18px;
  }
}

p,
ul {
  margin-top: 0;
  margin-bottom: 30px;
}

h1,
h2,
h3,
h4,
h5,
.h1,
.h2,
h2.wp-block-heading,
.h3,
.h4,
.h5 {
  margin-top: 0;
  font-style: normal;
  font-stretch: normal;
  margin-bottom: 20px;
  color: #26282a;
}

/*loop over all breaking points*/
@media (min-width: 0) {
  .hbig {
    font-size: 8vh;
    letter-spacing: 3px;
  }
}
@media (min-width: 0) {
  .h1 {
    font-size: 50px;
  }
}
@media (min-width: 0) {
  .h2, h2.wp-block-heading {
    font-size: 30px;
  }
}
@media (min-width: 0) {
  .h3 {
    font-size: 32px;
  }
}
@media (min-width: 0) {
  .h4 {
    font-size: 24px;
  }
}
@media (min-width: 0) {
  .hbody {
    font-size: 20px;
    line-height: 1.4;
  }
}
@media (min-width: 0) {
  .hsmall {
    font-size: 16px;
  }
}
@media (min-width: 768px) {
  .h1 {
    font-size: 45px;
  }
}
@media (min-width: 768px) {
  .h2, h2.wp-block-heading {
    font-size: 30px;
  }
}
@media (min-width: 768px) {
  .h3 {
    font-size: 32px;
  }
}
@media (min-width: 768px) {
  .h4 {
    font-size: 24px;
  }
}
@media (min-width: 768px) {
  .hbody {
    font-size: 20px;
  }
}
@media (min-width: 992px) {
  .h1 {
    font-size: 50px;
  }
}
@media (min-width: 992px) {
  .h2, h2.wp-block-heading {
    font-size: 30px;
  }
}
@media (min-width: 992px) {
  .h3 {
    font-size: 23px;
  }
}
@media (min-width: 992px) {
  .h4 {
    font-size: 20px;
  }
}
@media (min-width: 992px) {
  .hbody {
    font-size: 18px;
  }
}
.wysiwyg {
  /*loop over all breaking points*/
}
@media (min-width: 0) {
  .wysiwyg hbig {
    font-size: 8vh;
    letter-spacing: 3px;
  }
}
@media (min-width: 0) {
  .wysiwyg h1 {
    font-size: 50px;
  }
}
@media (min-width: 0) {
  .wysiwyg h2 {
    font-size: 30px;
  }
}
@media (min-width: 0) {
  .wysiwyg h3 {
    font-size: 32px;
  }
}
@media (min-width: 0) {
  .wysiwyg h4 {
    font-size: 24px;
  }
}
@media (min-width: 0) {
  .wysiwyg hbody {
    font-size: 20px;
    line-height: 1.4;
  }
}
@media (min-width: 0) {
  .wysiwyg hsmall {
    font-size: 16px;
  }
}
@media (min-width: 768px) {
  .wysiwyg h1 {
    font-size: 45px;
  }
}
@media (min-width: 768px) {
  .wysiwyg h2 {
    font-size: 30px;
  }
}
@media (min-width: 768px) {
  .wysiwyg h3 {
    font-size: 32px;
  }
}
@media (min-width: 768px) {
  .wysiwyg h4 {
    font-size: 24px;
  }
}
@media (min-width: 768px) {
  .wysiwyg hbody {
    font-size: 20px;
  }
}
@media (min-width: 992px) {
  .wysiwyg h1 {
    font-size: 50px;
  }
}
@media (min-width: 992px) {
  .wysiwyg h2 {
    font-size: 30px;
  }
}
@media (min-width: 992px) {
  .wysiwyg h3 {
    font-size: 23px;
  }
}
@media (min-width: 992px) {
  .wysiwyg h4 {
    font-size: 20px;
  }
}
@media (min-width: 992px) {
  .wysiwyg hbody {
    font-size: 18px;
  }
}

a {
  text-decoration: none;
}

.text-center {
  text-align: center !important;
}

.text-right {
  text-align: right !important;
}

.text-left {
  text-align: left !important;
}

.text-uppercase {
  text-transform: uppercase;
}

.text-underline {
  text-decoration: underline;
}

.strong {
  font-weight: 700;
}

.font-medium {
  font-weight: 400;
}

.font-light {
  font-weight: 300;
}

.font-serif {
  font-family: "Bodoni Moda";
}

.list.list--clear {
  padding: 0;
  margin: 0;
}
.list.list--clear li {
  list-style-type: none;
}

.separator {
  padding-bottom: 25px;
  position: relative;
}
.separator:after {
  content: "";
  display: block;
  height: 2px;
  width: 100px;
  bottom: 0;
  left: 50%;
  position: absolute;
  transform: translateX(-50%);
  background-color: #26282a;
}
.separator.separator--mini:after {
  width: 20px;
}
.separator.separator--left:after {
  left: 0;
  transform: none;
}

.dash {
  position: relative;
}
.dash:before {
  content: "";
  display: block;
  height: 3px;
  width: 20px;
  background-color: #dda879;
}

.text-base {
  color: #26282a !important;
}
.text-base a {
  color: #26282a !important;
}

.text-primary {
  color: #e56956 !important;
}
.text-primary a {
  color: #e56956 !important;
}

.text-secondary {
  color: #dda879 !important;
}
.text-secondary a {
  color: #dda879 !important;
}

.text-third {
  color: #495867 !important;
}
.text-third a {
  color: #495867 !important;
}

.text-four {
  color: #fcf6f2 !important;
}
.text-four a {
  color: #fcf6f2 !important;
}

.text-five {
  color: #fef9f8 !important;
}
.text-five a {
  color: #fef9f8 !important;
}

.text-six {
  color: #fff0e3 !important;
}
.text-six a {
  color: #fff0e3 !important;
}

.text-white {
  color: #fff !important;
}
.text-white a {
  color: #fff !important;
}

.text-grey {
  color: rgba(233, 233, 233, 0.5) !important;
}
.text-grey a {
  color: rgba(233, 233, 233, 0.5) !important;
}

.text-greyDark {
  color: #c9c9c9 !important;
}
.text-greyDark a {
  color: #c9c9c9 !important;
}

.text-danger {
  color: #ee3c3c !important;
}
.text-danger a {
  color: #ee3c3c !important;
}

.text-dangerNegative {
  color: #f09797 !important;
}
.text-dangerNegative a {
  color: #f09797 !important;
}

a {
  color: #26282a;
}
a:hover {
  color: #e56956;
}

h2 + h3 {
  border: none;
  padding: 0;
}

.footer .footer-menu li {
  margin-left: 10px;
}

.post-type-archive-product:not(.paged) .header svg,
.archive.tax-product_cat .header svg,
.page-template-default .header svg {
  transition: all 0.3s;
}
.post-type-archive-product:not(.paged) .header svg path,
.archive.tax-product_cat .header svg path,
.page-template-default .header svg path {
  fill: white;
}

.woocommerce-wishlist .header svg,
.woocommerce-cart .header svg,
.woocommerce-checkout .header svg {
  transition: all 0.3s;
}
.woocommerce-wishlist .header svg path,
.woocommerce-cart .header svg path,
.woocommerce-checkout .header svg path {
  fill: #26282a;
}

.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 2;
  color: white;
  transition: all 0.3s;
  padding: 20px 0 10px;
}
.header a {
  color: white;
}
.header .logo svg {
  opacity: 1;
  max-width: 100px;
  position: relative;
}
@media (min-width: 768px) {
  .header .logo svg {
    max-width: 200px;
  }
}
.header .hamburger svg {
  width: 35px;
}

.scrolled .header {
  color: #26282a;
  padding: 10px 0 0;
}
.scrolled .header a {
  color: #26282a;
}
.scrolled .header svg path {
  fill: #26282a;
}
.scrolled .header .logo svg {
  display: none;
}

.menu-main-container a {
  padding: 0 10px;
}

.calemi-cart-icon {
  position: relative;
  overflow: visible;
  cursor: pointer;
}
.calemi-cart-icon svg {
  width: 25px;
}
.calemi-cart-icon span {
  position: absolute;
  bottom: -5px;
  right: -5px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background-color: #e56956;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 10px;
}

.site-header-cart .widget_shopping_cart {
  right: 0;
  left: inherit;
}

@media (min-width: 768px) {
  .site-header-cart:hover .widget_shopping_cart,
  .site-header-cart.focus .widget_shopping_cart {
    right: 0;
    left: inherit;
  }
  .site-header-cart .widget_shopping_cart {
    display: none;
    min-width: 300px;
  }
}
@media (max-width: 600px) {
  .hamburger {
    display: block;
  }
  .desktop-nav {
    display: none;
  }
}
.sidebar {
  margin: 0;
  width: 100vw;
  height: 100vh;
  transform: translate(100vw);
  position: fixed;
  top: 0;
  right: 0;
  z-index: 12;
  transition: all 0.3s ease-in;
  overflow-y: scroll;
  display: flex;
}
.sidebar.sidebar--half {
  width: 100vw;
  transform: translate(100vw);
}
@media (min-width: 768px) {
  .sidebar.sidebar--half {
    width: 50vw;
    transform: translate(50vw);
  }
}
.sidebar .menu-item-has-children {
  text-align: right;
}
.sidebar .menu-item-has-children > a {
  padding-left: 15px;
  position: relative;
  display: inline-block;
}
.sidebar .menu-item-has-children > a:after {
  content: "";
  display: block;
  height: 0;
  width: 0;
  top: 8px;
  left: 0;
  position: absolute;
  border: 5px solid transparent;
  border-left: 5px solid white;
}
.sidebar .menu-item-has-children .sub-menu {
  padding-top: 0px;
  display: flex;
  flex-direction: column;
  align-items: end;
  max-height: 0;
  overflow: hidden;
  transition: all 0.3s;
}
.sidebar .menu-item-has-children.active > a:after {
  transform: rotate(90deg);
}
.sidebar .menu-item-has-children.active .sub-menu {
  padding-top: 10px;
  max-height: 300px;
}
.sidebar > div {
  flex-grow: 1;
}
.sidebar div > ul {
  margin: 0 0 20px 0;
  padding: 0;
}
.sidebar div > ul li {
  list-style-type: none;
  margin: 5px 0;
}
.sidebar div > ul > li > a {
  font-weight: 700;
}
.sidebar div > ul > li.current_page_item {
  margin-bottom: 10px;
}
.sidebar div > ul > li.current_page_item > a {
  font-weight: 700;
  color: #26282a !important;
}
.sidebar .sidebar__close {
  position: absolute;
  top: 20px;
  right: 20px;
  width: 40px;
  height: 40px;
}

body:after {
  content: "";
  display: none;
  height: 100%;
  width: 100%;
  top: 0;
  left: 0;
  position: fixed;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 1;
}
body.cart-opened:after, body.sidebar-opened:after {
  display: block;
}
body.sidebar-opened {
  overflow: hidden;
}
body.sidebar-opened #sidebar {
  transform: translate(0);
  opacity: 1;
}
body.search-opened {
  overflow: hidden;
}
body.search-opened #search {
  transform: translate(0);
  opacity: 1;
}
body.cart-opened {
  overflow: hidden;
}
body.cart-opened #cart {
  transform: translate(0);
  opacity: 1;
}
body.wishlist-opened {
  overflow: hidden;
}
body.wishlist-opened #wishlist {
  transform: translate(0);
  opacity: 1;
}

.widget_shopping_cart .product_list_widget {
  margin-top: 20px;
}
.widget_shopping_cart .product_list_widget li {
  padding: 10px 2.5em 10px 0;
}
.widget_shopping_cart .product_list_widget li:first-child {
  border-top: 1px solid rgba(0, 0, 0, 0.05);
}
.widget_shopping_cart .product_list_widget li .product-wrapper {
  display: flex;
}
.widget_shopping_cart .product_list_widget li a.remove {
  right: 3px;
  left: inherit;
  width: 1.4em;
}
.widget_shopping_cart .product_list_widget li a.remove:before {
  content: "";
  display: block;
  height: 100%;
  width: 100%;
  top: 0;
  left: 0;
  position: absolute;
  content: "";
  background-image: url('data:image/svg+xml,<%3Fxml version="1.0" %3F><svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg"><rect fill="none" height="256" width="256"/><line fill="none" stroke="%23000" stroke-linecap="round" stroke-linejoin="round" stroke-width="8" x1="216" x2="40" y1="56" y2="56"/><line fill="none" stroke="%23000" stroke-linecap="round" stroke-linejoin="round" stroke-width="8" x1="104" x2="104" y1="104" y2="168"/><line fill="none" stroke="%23000" stroke-linecap="round" stroke-linejoin="round" stroke-width="8" x1="152" x2="152" y1="104" y2="168"/><path d="M200,56V208a8,8,0,0,1-8,8H64a8,8,0,0,1-8-8V56" fill="none" stroke="%23000" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/><path d="M168,56V40a16,16,0,0,0-16-16H104A16,16,0,0,0,88,40V56" fill="none" stroke="%23000" stroke-linecap="round" stroke-linejoin="round" stroke-width="8"/></svg>');
  background-size: 30px;
  background-repeat: no-repeat;
  background-size: contain;
}
.widget_shopping_cart .product_list_widget li img {
  float: none;
  max-width: 70px;
  width: 70px;
  height: 70px;
  object-fit: cover;
}
.widget_shopping_cart .product_list_widget li .quantity {
  font-weight: 300;
}

img:is([sizes=auto i], [sizes^="auto," i]) {
  contain-intrinsic-size: 0 0;
}

html {
  scroll-behavior: smooth;
}

#wrapper {
  transition: all 0.5s;
  min-height: 100vh;
}

body.paged #content, body.page-template-page-text #content, body.woocommerce-cart #content, body.woocommerce-checkout #content, body.single-product #content {
  padding-top: 120px;
}
@media (min-width: 768px) {
  body.paged #content, body.page-template-page-text #content, body.woocommerce-cart #content, body.woocommerce-checkout #content, body.single-product #content {
    padding-top: 200px;
  }
}

.woocommerce-cart,
.woocommerce-checkout {
  background-color: #fcf6f2;
}

.storefront-breadcrumb .col-full {
  margin: 0;
}

.page-description {
  margin: 0 !important;
}

.storefront-full-width-content .woocommerce-products-header {
  padding: 0;
}
.storefront-full-width-content .woocommerce-products-header:empty {
  display: none;
}

.panorama {
  min-height: 100dvh;
  position: relative;
}
@media (max-width: 768px) {
  .panorama .panorama__media {
    height: 100dvh;
  }
  .panorama .panorama__media:before {
    content: "";
    display: block;
    height: 100%;
    width: 100%;
    top: 0;
    left: 0;
    position: absolute;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 2;
  }
  .panorama .panorama__text {
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
  }
}
.panorama .panorama__audio {
  right: 20px;
  position: absolute;
  bottom: 23px;
  z-index: 2;
  background: none;
  padding: 0;
}
@media (min-width: 768px) {
  .panorama .panorama__audio {
    left: 20px;
    right: inherit;
  }
}
.panorama .panorama__audio .loud {
  display: none;
}
.panorama .panorama__audio .muted {
  display: block;
}
.panorama .panorama__audio.active .loud {
  display: block;
}
.panorama .panorama__audio.active .muted {
  display: none;
}
.panorama .panorama__audio svg {
  width: 25px;
}
.panorama .panorama__audio svg path {
  fill: white;
}
.panorama * {
  position: relative;
  z-index: 1;
}
.panorama video {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: cover;
  top: 0;
  left: 0;
}
.panorama.panorama--min {
  min-height: 70vh;
}
.panorama.panorama--shade:before {
  content: "";
  display: block;
  height: 100%;
  width: 100%;
  top: 0;
  left: 0;
  position: absolute;
  background-color: rgba(0, 0, 0, 0.5);
}
.panorama .reveal {
  display: block;
  height: 20vh;
  width: 1px;
  bottom: 0;
  right: 20px;
  position: absolute;
  background-color: white;
}
.panorama .reveal:before {
  content: "scroll";
  font-size: 12px;
  text-transform: uppercase;
  transform: rotate(90deg);
  display: inline-block;
  top: 0;
  left: 0;
  position: absolute;
  z-index: 1;
  color: white;
  transform-origin: top left;
}
.panorama .reveal:after {
  content: "";
  display: block;
  height: 7px;
  width: 7px;
  top: 0;
  left: -3px;
  position: absolute;
  background-color: white;
  border-radius: 50%;
  animation-name: scrolling;
  animation-duration: 2s;
  animation-iteration-count: infinite;
}

@keyframes scrolling {
  0% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(20vh);
  }
}
.section {
  padding-top: 80px;
  padding-bottom: 80px;
  background-color: #fff;
}
.section:nth-child(even) {
  background-color: #fef9f8;
}

.badge {
  position: relative;
  overflow: hidden;
}
.badge:after {
  content: "sold out";
  display: block;
  height: 30px;
  line-height: 30px;
  width: 140px;
  top: 24px;
  left: -32px;
  position: absolute;
  background-color: white;
  transform: rotate(-45deg);
  text-align: center;
  text-transform: uppercase;
  font-weight: 700;
  font-size: 16px;
}

.shadow {
  box-shadow: 0px 0px 24px #ddd;
}

.social svg {
  width: 40px;
  height: 40px;
  fill: #26282a;
  transition: fill 0.3s ease-in-out;
  margin: 0 7px;
}

.storefront-breadcrumb {
  margin: 0;
  padding: 0;
}
.storefront-breadcrumb .col-full {
  padding: 0;
}
.storefront-breadcrumb .woocommerce-breadcrumb a:first-of-type:before {
  display: none;
}

.mosaic img {
  display: inline-block;
  position: relative;
}
.mosaic .image1 {
  max-width: 55%;
  z-index: 2;
}
.mosaic .image2 {
  max-width: 43%;
  margin-left: 1%;
  vertical-align: top;
  margin-top: 10%;
  z-index: 1;
}
.mosaic .image3 {
  margin-top: -10%;
  z-index: 3;
}

.yith-wcwl-wishlistexistsbrowse .feedback {
  display: block;
}
.yith-wcwl-wishlistexistsbrowse a:not(.add_to_wishlist) {
  display: block;
  text-decoration: underline;
}

a.single_add_to_wishlist {
  display: flex;
}

.yith-wcwl-add-to-wishlist .yith-wcwl-add-button {
  align-items: start;
}

.modal {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  opacity: 0;
  z-index: -100;
  justify-content: center;
  align-items: center;
  background-color: rgba(0, 0, 0, 0.7);
  transition: opacity 0.5s;
  display: flex;
}
.modal.modal--table .modal__inner {
  max-width: 90%;
}
.modal.modal--loading .modal__inner:after {
  opacity: 1;
  z-index: 1;
}
.modal.modal--opened {
  z-index: 100;
  opacity: 1;
}
.modal.modal--opened .modal__inner {
  opacity: 1;
  transform: translateY(0);
  transition: all 0.5s ease-in-out 0.5s;
}
.modal .modal__inner {
  opacity: 0;
  position: relative;
  z-index: 1;
  max-width: 900px;
  max-height: 90%;
  width: 90%;
  height: 90%;
  background-color: white;
  display: flex;
  justify-content: space-between;
  border-radius: 2px;
  transform: translateY(-200px);
}
.modal .modal__inner:after {
  transition: opacity 0.3s;
  z-index: -1;
  content: "";
  display: block;
  height: 100%;
  width: 100%;
  top: 0;
  left: 0;
  position: absolute;
  opacity: 0;
  background-color: white;
  background-image: url("../../src/img/loader.svg");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 40px;
}
.modal .modal__inner .modal__content {
  width: 100%;
  height: 100%;
}
.modal .modal__close-btn {
  width: 20px;
  height: 20px;
  position: absolute;
  top: 0px;
  right: -30px;
  cursor: pointer;
  background-image: url("../../src/img/btn-close.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  -moz-appearance: none;
  border: none;
  background-color: transparent;
}
.modal.modal--user .modal__inner {
  max-width: 400px;
  max-height: 350px;
  background-color: #f4f4f4;
}
.modal.modal--user .modal__inner .form-user-modal {
  padding: 15px;
}
.modal.modal--user .modal__inner select,
.modal.modal--user .modal__inner input[type=text],
.modal.modal--user .modal__inner input[type=password],
.modal.modal--user .modal__inner input[type=email],
.modal.modal--user .modal__inner input[type=number] {
  background-color: white;
  color: black;
  height: 44px;
  border: none;
  border: 1px solid #d6d6d6;
  border-radius: 2px;
  outline: none;
  width: 100%;
  margin-bottom: 8px;
}

.swiper-wrapper--equal-slides {
  justify-content: stretch;
  align-items: stretch;
}
.swiper-wrapper--equal-slides .swiper-slide {
  min-height: 100%;
  height: auto;
}

.swiper-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
}

.swiper-pagination-bullet {
  height: 16px;
  width: 16px;
  border-radius: 50%;
  margin: 0 3px;
  border: 1px solid #c9c9c9;
  transition: all 0.3s;
}
.swiper-pagination-bullet.swiper-pagination-bullet-active {
  background-color: #c9c9c9;
  opacity: 1;
  width: 30px;
  border-radius: 8px;
}

.swiper-pagination-lock {
  opacity: 0;
}

.js-swiper-gallery-navigation .swiper-slide {
  opacity: 0.5;
  transition: opacity 0.3s;
}
.js-swiper-gallery-navigation .swiper-slide-thumb-active {
  opacity: 1;
}

.gallery-navigation__item {
  transform: scale(0.8);
  transition: all 0.3s;
}
.gallery-navigation__item.gallery-navigation__item--active {
  transform: scale(1);
}

.tabs .tab__nav-item {
  border-top-left-radius: 7px;
  border-top-right-radius: 7px;
  display: inline-block;
  padding: 10px 20px;
}
.tabs .tab__nav-item.active {
  font-weight: 500;
}
.tabs .tabs__content {
  padding: 20px 0;
}
.tabs .tabs__content-item {
  display: none;
}
.tabs .tabs__content-item.tab__nav-item--opened {
  display: block;
}

.js-consent {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  padding: 15px;
  background-color: rgba(0, 0, 0, 0.7);
  opacity: 0;
  z-index: -1;
  transition: opacity 0.3s ease-in-out;
}
.js-consent.js-consent--active {
  opacity: 1;
  z-index: 20;
}

.accordion {
  list-style-type: none;
  margin: 0;
  padding: 0;
  color: #26282a;
}
.accordion .accordion__item {
  border-top: 1px solid #c9c9c9;
}
.accordion .accordion__item:last-child {
  border-bottom: 1px solid #c9c9c9;
}
.accordion .accordion__header {
  cursor: pointer;
  position: relative;
  width: 100%;
  text-align: left;
  border: none;
  outline: none;
  padding: 10px 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.accordion .accordion__header .accordion__title {
  margin: 0;
}
.accordion .accordion__header .accordion__icon {
  width: 25px;
  transform: rotate(-45deg);
  transform-origin: center;
  margin-left: auto;
  transition: all 0.3s;
}
.accordion .accordion__header.active {
  font-weight: 500;
  margin-bottom: 0;
}
.accordion .accordion__header.active .accordion__icon {
  transform: rotate(180deg);
}
.accordion .accordion__header.active:after {
  content: "";
}
.accordion .accordion__content {
  max-height: 0;
  overflow: hidden;
  transition: all 0.3s;
  display: flex;
}
.accordion .accordion__content.accordion__content--opened {
  max-height: 5000px;
  padding: 30px 0 10px 0;
}

.wp-block-media-text__media {
  margin-bottom: 20px !important;
}

h2.wp-block-heading {
  text-transform: uppercase;
}

/**
 * Swiper 9.4.1
 * Most modern mobile touch slider and framework with hardware accelerated transitions
 * https://swiperjs.com
 *
 * Copyright 2014-2023 Vladimir Kharlampidi
 *
 * Released under the MIT License
 *
 * Released on: June 13, 2023
 */
@font-face {
  font-family: "swiper-icons";
  src: url("data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA") format("woff");
  font-weight: 400;
  font-style: normal;
}
:root {
  --swiper-theme-color: #007aff;
  /*
  --swiper-preloader-color: var(--swiper-theme-color);
  --swiper-wrapper-transition-timing-function: initial;
  */
}

.swiper,
swiper-container {
  margin-left: auto;
  margin-right: auto;
  position: relative;
  overflow: hidden;
  list-style: none;
  padding: 0;
  /* Fix of Webkit flickering */
  z-index: 1;
  display: block;
}

.swiper-vertical > .swiper-wrapper {
  flex-direction: column;
}

.swiper-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 1;
  display: flex;
  transition-property: transform;
  transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial);
  box-sizing: content-box;
}

.swiper-android .swiper-slide,
.swiper-wrapper {
  transform: translate3d(0px, 0, 0);
}

.swiper-horizontal {
  touch-action: pan-y;
}

.swiper-vertical {
  touch-action: pan-x;
}

.swiper-slide,
swiper-slide {
  flex-shrink: 0;
  width: 100%;
  height: 100%;
  position: relative;
  transition-property: transform;
  display: block;
}

.swiper-slide-invisible-blank {
  visibility: hidden;
}

/* Auto Height */
.swiper-autoheight,
.swiper-autoheight .swiper-slide {
  height: auto;
}

.swiper-autoheight .swiper-wrapper {
  align-items: flex-start;
  transition-property: transform, height;
}

.swiper-backface-hidden .swiper-slide {
  transform: translateZ(0);
  backface-visibility: hidden;
}

/* 3D Effects */
.swiper-3d.swiper-css-mode .swiper-wrapper {
  perspective: 1200px;
}

.swiper-3d .swiper-wrapper {
  transform-style: preserve-3d;
}

.swiper-3d {
  perspective: 1200px;
}
.swiper-3d .swiper-slide,
.swiper-3d .swiper-slide-shadow,
.swiper-3d .swiper-slide-shadow-left,
.swiper-3d .swiper-slide-shadow-right,
.swiper-3d .swiper-slide-shadow-top,
.swiper-3d .swiper-slide-shadow-bottom,
.swiper-3d .swiper-cube-shadow {
  transform-style: preserve-3d;
}
.swiper-3d .swiper-slide-shadow,
.swiper-3d .swiper-slide-shadow-left,
.swiper-3d .swiper-slide-shadow-right,
.swiper-3d .swiper-slide-shadow-top,
.swiper-3d .swiper-slide-shadow-bottom {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 10;
}
.swiper-3d .swiper-slide-shadow {
  background: rgba(0, 0, 0, 0.15);
}
.swiper-3d .swiper-slide-shadow-left {
  background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
.swiper-3d .swiper-slide-shadow-right {
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
.swiper-3d .swiper-slide-shadow-top {
  background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
.swiper-3d .swiper-slide-shadow-bottom {
  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}

/* CSS Mode */
.swiper-css-mode > .swiper-wrapper {
  overflow: auto;
  scrollbar-width: none; /* For Firefox */
  -ms-overflow-style: none; /* For Internet Explorer and Edge */
}
.swiper-css-mode > .swiper-wrapper::-webkit-scrollbar {
  display: none;
}
.swiper-css-mode > .swiper-wrapper > .swiper-slide {
  scroll-snap-align: start start;
}

.swiper-horizontal.swiper-css-mode > .swiper-wrapper {
  scroll-snap-type: x mandatory;
}

.swiper-vertical.swiper-css-mode > .swiper-wrapper {
  scroll-snap-type: y mandatory;
}

.swiper-css-mode.swiper-free-mode > .swiper-wrapper {
  scroll-snap-type: none;
}
.swiper-css-mode.swiper-free-mode > .swiper-wrapper > .swiper-slide {
  scroll-snap-align: none;
}

.swiper-centered > .swiper-wrapper::before {
  content: "";
  flex-shrink: 0;
  order: 9999;
}
.swiper-centered > .swiper-wrapper > .swiper-slide {
  scroll-snap-align: center center;
  scroll-snap-stop: always;
}

.swiper-centered.swiper-horizontal > .swiper-wrapper > .swiper-slide:first-child {
  margin-inline-start: var(--swiper-centered-offset-before);
}
.swiper-centered.swiper-horizontal > .swiper-wrapper::before {
  height: 100%;
  min-height: 1px;
  width: var(--swiper-centered-offset-after);
}

.swiper-centered.swiper-vertical > .swiper-wrapper > .swiper-slide:first-child {
  margin-block-start: var(--swiper-centered-offset-before);
}
.swiper-centered.swiper-vertical > .swiper-wrapper::before {
  width: 100%;
  min-width: 1px;
  height: var(--swiper-centered-offset-after);
}

.swiper-lazy-preloader {
  width: 42px;
  height: 42px;
  position: absolute;
  left: 50%;
  top: 50%;
  margin-left: -21px;
  margin-top: -21px;
  z-index: 10;
  transform-origin: 50%;
  box-sizing: border-box;
  border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color));
  border-radius: 50%;
  border-top-color: transparent;
}

.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader,
swiper-container:not(.swiper-watch-progress) .swiper-lazy-preloader,
.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader {
  animation: swiper-preloader-spin 1s infinite linear;
}

.swiper-lazy-preloader-white {
  --swiper-preloader-color: #fff;
}

.swiper-lazy-preloader-black {
  --swiper-preloader-color: #000;
}

@keyframes swiper-preloader-spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2Jhbm5lci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL19jb250YWluZXJzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19jb250YWluZXIuc2NzcyIsInZhcmlhYmxlcy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fYnJlYWtwb2ludHMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9fZ3JpZC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fZ3JpZC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fdXRpbGl0aWVzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvdXRpbGl0aWVzL19hcGkuc2NzcyIsInV0aWxpdGllcy9zcGFjaW5nLnNjc3MiLCJ1dGlsaXRpZXMvYmFja2dyb3VuZHMuc2NzcyIsInV0aWxpdGllcy9oZWxwZXJzLnNjc3MiLCJ1dGlsaXRpZXMvbm9ybWFsaXplLnNjc3MiLCJ1dGlsaXRpZXMvbWVkaWEuc2NzcyIsInV0aWxpdGllcy9ib3JkZXJzLnNjc3MiLCJmb3Jtcy9mb3Jtcy5zY3NzIiwidHlwby90eXBvLWV4dGVuc2lvbnMuc2NzcyIsInR5cG8vYnV0dG9ucy5zY3NzIiwidHlwby9pY29ucy5zY3NzIiwidHlwby9pY29ucy1taWNyby5zY3NzIiwidHlwby9mb250cy5zY3NzIiwidHlwby90eXBvLnNjc3MiLCJsYXlvdXQvZm9vdGVyLnNjc3MiLCJsYXlvdXQvaGVhZGVyLnNjc3MiLCJsYXlvdXQvbmF2aWdhdGlvbi5zY3NzIiwibGF5b3V0L3NpZGViYXIuc2NzcyIsImxheW91dC9zdHJ1Y3R1cmUuc2NzcyIsImxheW91dC91aS5zY3NzIiwibW9kdWxlcy9tb2RhbC5zY3NzIiwibW9kdWxlcy9zd2lwZXIuc2NzcyIsIm1vZHVsZXMvdGFicy5zY3NzIiwibW9kdWxlcy9jb25zZW50LnNjc3MiLCJtb2R1bGVzL2FjY29yZGlvbi5zY3NzIiwibW9kdWxlcy9ibG9ja3Muc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9zd2lwZXIvc3dpcGVyLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRzs7O0FDQUQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQ0tBO0FBQUE7QUFBQTtBQUFBO0VDSEE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBRFVJO0VBQ0UsV0UrRWU7OztBQ3BDbkI7RUg1Q0U7SUFDRSxXRStFZTs7O0FFL0Z2QjtFQUVJO0VBQUE7RUFBQTtFQUFBO0VBQUE7OztBQUtGO0VDTkE7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7O0FERUU7RUNHRjtFQUlBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBK0NJO0VBQ0U7OztBQUdGO0VBcENKO0VBQ0E7OztBQWNBO0VBQ0U7RUFDQTs7O0FBRkY7RUFDRTtFQUNBOzs7QUFGRjtFQUNFO0VBQ0E7OztBQUZGO0VBQ0U7RUFDQTs7O0FBRkY7RUFDRTtFQUNBOzs7QUFGRjtFQUNFO0VBQ0E7OztBQStCRTtFQWhESjtFQUNBOzs7QUFxRFE7RUFoRU47RUFDQTs7O0FBK0RNO0VBaEVOO0VBQ0E7OztBQStETTtFQWhFTjtFQUNBOzs7QUErRE07RUFoRU47RUFDQTs7O0FBK0RNO0VBaEVOO0VBQ0E7OztBQStETTtFQWhFTjtFQUNBOzs7QUErRE07RUFoRU47RUFDQTs7O0FBK0RNO0VBaEVOO0VBQ0E7OztBQStETTtFQWhFTjtFQUNBOzs7QUErRE07RUFoRU47RUFDQTs7O0FBK0RNO0VBaEVOO0VBQ0E7OztBQStETTtFQWhFTjtFQUNBOzs7QUF1RVE7RUF4RFY7OztBQXdEVTtFQXhEVjs7O0FBd0RVO0VBeERWOzs7QUF3RFU7RUF4RFY7OztBQXdEVTtFQXhEVjs7O0FBd0RVO0VBeERWOzs7QUF3RFU7RUF4RFY7OztBQXdEVTtFQXhEVjs7O0FBd0RVO0VBeERWOzs7QUF3RFU7RUF4RFY7OztBQXdEVTtFQXhEVjs7O0FBbUVNO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtFQUVFOzs7QUFQRjtBQUFBO0VBRUU7OztBQUdGO0FBQUE7RUFFRTs7O0FBUEY7QUFBQTtFQUVFOzs7QUFHRjtBQUFBO0VBRUU7OztBQVBGO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtFQUVFOzs7QUFQRjtBQUFBO0VBRUU7OztBQUdGO0FBQUE7RUFFRTs7O0FBUEY7QUFBQTtFQUVFOzs7QUFHRjtBQUFBO0VBRUU7OztBRjFETjtFRVVFO0lBQ0U7O0VBR0Y7SUFwQ0o7SUFDQTs7RUFjQTtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUErQkU7SUFoREo7SUFDQTs7RUFxRFE7SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUF1RVE7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUFtRU07QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7OztBRjFETjtFRVVFO0lBQ0U7O0VBR0Y7SUFwQ0o7SUFDQTs7RUFjQTtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUErQkU7SUFoREo7SUFDQTs7RUFxRFE7SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUF1RVE7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUFtRU07QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7OztBRjFETjtFRVVFO0lBQ0U7O0VBR0Y7SUFwQ0o7SUFDQTs7RUFjQTtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUErQkU7SUFoREo7SUFDQTs7RUFxRFE7SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUF1RVE7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUFtRU07QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7OztBRjFETjtFRVVFO0lBQ0U7O0VBR0Y7SUFwQ0o7SUFDQTs7RUFjQTtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUFGRjtJQUNFO0lBQ0E7O0VBRkY7SUFDRTtJQUNBOztFQUZGO0lBQ0U7SUFDQTs7RUErQkU7SUFoREo7SUFDQTs7RUFxRFE7SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUErRE07SUFoRU47SUFDQTs7RUF1RVE7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUF3RFU7SUF4RFY7O0VBd0RVO0lBeERWOztFQXdEVTtJQXhEVjs7RUFtRU07QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7O0VBUEY7QUFBQTtJQUVFOztFQUdGO0FBQUE7SUFFRTs7RUFQRjtBQUFBO0lBRUU7O0VBR0Y7QUFBQTtJQUVFOztFQVBGO0FBQUE7SUFFRTs7RUFHRjtBQUFBO0lBRUU7OztBQ3ZERjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JOzs7QUFQSjtFQU9JO0VBQUE7OztBQVBKO0VBT0k7RUFBQTs7O0FBUEo7RUFPSTtFQUFBOzs7QUFQSjtFQU9JO0VBQUE7OztBQVBKO0VBT0k7RUFBQTs7O0FBUEo7RUFPSTtFQUFBOzs7QUFQSjtFQU9JO0VBQUE7OztBQVBKO0VBT0k7RUFBQTs7O0FBUEo7RUFPSTtFQUFBOzs7QUFQSjtFQU9JO0VBQUE7OztBQVBKO0VBT0k7RUFBQTs7O0FBUEo7RUFPSTtFQUFBOzs7QUFQSjtFQU9JO0VBQUE7OztBQVBKO0VBT0k7RUFBQTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTtFQUFBOzs7QUFQSjtFQU9JO0VBQUE7OztBQVBKO0VBT0k7RUFBQTs7O0FBUEo7RUFPSTtFQUFBOzs7QUFQSjtFQU9JO0VBQUE7OztBQVBKO0VBT0k7RUFBQTs7O0FBUEo7RUFPSTtFQUFBOzs7QUFQSjtFQU9JO0VBQUE7OztBQVBKO0VBT0k7RUFBQTs7O0FBUEo7RUFPSTtFQUFBOzs7QUFQSjtFQU9JO0VBQUE7OztBQVBKO0VBT0k7RUFBQTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FBUEo7RUFPSTs7O0FIVlI7RUdHSTtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTtJQUFBOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTtJQUFBOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTtJQUFBOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTtJQUFBOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTtJQUFBOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTtJQUFBOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTtJQUFBOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTtJQUFBOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7O0FIVlI7RUdHSTtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTtJQUFBOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTtJQUFBOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTtJQUFBOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTtJQUFBOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTtJQUFBOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTtJQUFBOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTtJQUFBOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTtJQUFBOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7O0FIVlI7RUdHSTtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTtJQUFBOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTtJQUFBOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTtJQUFBOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTtJQUFBOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTtJQUFBOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTtJQUFBOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTtJQUFBOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTtJQUFBOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7O0FIVlI7RUdHSTtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTtJQUFBOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTtJQUFBOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTtJQUFBOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTtJQUFBOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTtJQUFBOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTtJQUFBOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTtJQUFBOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JO0lBQUE7O0VBUEo7SUFPSTtJQUFBOztFQVBKO0lBT0k7SUFBQTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7O0FDbkNaO0VENEJRO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7RUFQSjtJQU9JOztFQVBKO0lBT0k7O0VBUEo7SUFPSTs7O0FFckVUO0FBU1k7RUFDRzs7O0FBRUg7RUFDRzs7O0FBR0g7RUFDRyxTQVZpQjs7O0FBWXBCO0VBQ0c7OztBQUVIO0VBQ0c7OztBQUVIO0VBQ0c7OztBQUVIO0VBQ0c7OztBQXBCSDtFQUNHOzs7QUFFSDtFQUNHOzs7QUFHSDtFQUNHLFNBVmlCOzs7QUFZcEI7RUFDRzs7O0FBRUg7RUFDRzs7O0FBRUg7RUFDRzs7O0FBRUg7RUFDRzs7O0FBcEJIO0VBQ0c7OztBQUVIO0VBQ0c7OztBQUdIO0VBQ0csU0FWaUI7OztBQVlwQjtFQUNHOzs7QUFFSDtFQUNHOzs7QUFFSDtFQUNHOzs7QUFFSDtFQUNHOzs7QUFwQkg7RUFDRzs7O0FBRUg7RUFDRzs7O0FBR0g7RUFDRyxTQVZpQjs7O0FBWXBCO0VBQ0c7OztBQUVIO0VBQ0c7OztBQUVIO0VBQ0c7OztBQUVIO0VBQ0c7OztBQ2hDZjtFQUNHLGtCUEVHOzs7QU9ITjtFQUNHLGtCUEVHOzs7QU9ITjtFQUNHLGtCUEVHOzs7QU9ITjtFQUNHLGtCUEVHOzs7QU9ITjtFQUNHLGtCUEVHOzs7QU9ITjtFQUNHLGtCUEVHOzs7QU9ITjtFQUNHLGtCUEVHOzs7QU9ITjtFQUNHLGtCUEVHOzs7QU9ITjtFQUNHLGtCUEVHOzs7QU9ITjtFQUNHLGtCUEVHOzs7QU9ITjtFQUNHLGtCUEVHOzs7QU9ITjtFQUNHLGtCUEVHOzs7QU9FVDtFQUNHOzs7QUFHSDtFQUNHOzs7QUFHSDtFQUNHOzs7QUFHSDtFQUNHOzs7QUFHSDtFQUNHOzs7QUFHSDtFQUNHOzs7QUFHSDtFQUNHOzs7QUFFSDtFQUNHOzs7QUNsQ0g7RUFDRzs7QUFFQTtFQUNHO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSDtFQUNHO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlOO0VBQ0c7OztBQUdIO0VBQ0c7OztBQUdIO0VBQ0c7OztBQUdIO0VBQ0c7RUFDQTs7O0FBR0g7RUFDRzs7O0FBR0g7RUFDRzs7O0FBR0g7RUFDRzs7O0FBUUE7QUFBQTtFQUVHOztBQUdBO0VBQ0c7RUFDQTs7QUFHSDtFQUNHO0lBQ0c7O0VBRUg7SUFDRzs7O0FBSU47RUFDRztFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVIO0VBQ0c7SUFDRztJQUNBOztFQUVIO0lBQ0c7SUFDQTs7RUFHSDtJQUNHO0lBQ0E7SUFDQTs7RUFFSDtJQUNHO0lBQ0E7SUFDQTs7RUFHSDtJQUNHO0lBQ0E7SUFDQTs7O0FBR047RUFDRztFQUNBO0VBQ0E7O0FBR0g7RUFDRztJQUNHOztFQUVIO0lBQ0c7O0VBRUg7SUFDRzs7OztBQVVaO0VBQ0c7RUFDQTtFQUNBO0VBQ0E7OztBQUdIO0VBQ0c7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRztFQUNBOztBQUVBO0VBQ0c7O0FBSUE7RUFDRztFQUNBO0VBQ0E7O0FBSU47RUFDRztFQUNBOztBQUNBO0VBQ0c7RUFDQTs7QUFJTjtFQUNHOztBQUdIO0VBQ0c7RUFDQTtFQUNBOzs7QUM3TFQ7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUM7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFZRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtFQUlFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtFQUVFOzs7QUFHRjtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7QUFBQTtFQUVFOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0VBRUU7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtFQUlFO0VBQ0E7OztBQUdGO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFLRTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFBQTtFQUlFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7QUFBQTtFQUVFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0VBRUU7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0VBRUU7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFOzs7QUFHRjtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBSUE7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0VBRUU7OztBQ3JhSDtBQUFBO0VBRUc7RUFDQTtFQUNBOzs7QUFHSDtFQUNHOzs7QUFHSDtFQUNHOzs7QUFHSDtFQUNHO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0c7RUFDQTtFQUNBOztBQUVBO0VBTEg7SUFNTTs7OztBQVNUO0VBQ0c7O0FBRUE7RUFDRztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSDtFQUNHOztBQUdIO0VBQ0c7RUFDQTtFQUNBOztBQUdIO0VBQ0c7OztBQUlOO0VBQ0c7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHQTtFQUNHO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUtBO0VBQ0c7RUFDQTs7O0FBU1Q7RUFDRzs7O0FBT0g7RUFDRzs7QUFFQTtBQUFBO0VBRUc7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdIO0VBQ0c7O0FBRUE7RUFDRzs7O0FBS1Q7RUFDRztFQUNBOztBQUNBO0VBQ0c7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUlBO0VBQ0c7OztBQUtUO0VBQ0c7O0FBRUE7RUFDRztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSDtFQUNHO0VBQ0E7O0FBSUE7RUFDRzs7O0FDckxOO0VBQ0csZVh1S0c7OztBV3hLTjtFQUNHLGVYdUtHOzs7QVdsS047RUFDRzs7O0FBRUg7RUFDRzs7O0FBR0g7RUFDRzs7O0FBUkg7RUFDRzs7O0FBRUg7RUFDRzs7O0FBR0g7RUFDRzs7O0FBUkg7RUFDRzs7O0FBRUg7RUFDRzs7O0FBR0g7RUFDRzs7O0FBUkg7RUFDRzs7O0FBRUg7RUFDRzs7O0FBR0g7RUFDRzs7O0FBUkg7RUFDRzs7O0FBRUg7RUFDRzs7O0FBR0g7RUFDRzs7O0FBUkg7RUFDRzs7O0FBRUg7RUFDRzs7O0FBR0g7RUFDRzs7O0FBUkg7RUFDRzs7O0FBRUg7RUFDRzs7O0FBR0g7RUFDRzs7O0FBUkg7RUFDRzs7O0FBRUg7RUFDRzs7O0FBR0g7RUFDRzs7O0FBUkg7RUFDRzs7O0FBRUg7RUFDRzs7O0FBR0g7RUFDRzs7O0FBUkg7RUFDRzs7O0FBRUg7RUFDRzs7O0FBR0g7RUFDRzs7O0FBUkg7RUFDRzs7O0FBRUg7RUFDRzs7O0FBR0g7RUFDRzs7O0FBUkg7RUFDRzs7O0FBRUg7RUFDRzs7O0FBR0g7RUFDRzs7O0FDZk47RUFDRztFQUNBOzs7QUFHSDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQU9HO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBQ0c7RUFDQTtFQUNBOzs7QUFLSDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQU9HO0VBQ0E7OztBQUlOO0VBQ0c7O0FBRUE7RUFDRzs7QUFHSDtFQUNHOztBQUdIO0VBQ0c7RUFDQTs7O0FBSU47RUFDRztFQUNBOzs7QUFHSDtFQUNHOztBQUlNO0VBQ0c7O0FBS1Q7RUFDRzs7QUFDQTtFQUNHO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdIO0VBQ0c7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFTVDtFQUNHO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRztFQUNBOztBQUNBO0VBQ0c7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUlIO0VBQ0c7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJTjtFQUNHO0VBQ0E7RUFDQTtFQUNBOztBQUdIO0VBQ0c7RUFDQTs7QUFFRztFQUNHO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0c7RUFDQTtFQUNBOztBQUdIO0VBQ0c7RUFDQTtFQUNBO0VBQ0E7O0FBR0g7RUFFRzs7O0FDMUxmO0VBQ0c7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUNOSDtBQUtTO0VBQ0c7SUFFTTtJQUlBO0lBR0E7SUFTQTtJQUdBOzs7QUF0QlQ7RUFDRztJQUVNO0lBSUE7SUFHQTtJQVlBOzs7QUF0QlQ7RUFDRztJQUVNO0lBSUE7SUFHQTtJQVlBOzs7QUF0QlQ7RUFDRztJQUVNO0lBSUE7SUFHQTtJQVlBOzs7QUF0QlQ7RUFDRztJQUVNO0lBSUE7SUFHQTtJQVlBOzs7QUFRbEI7RUFDRztFQUNBO0VBQ0E7RUFDQTtFQUlBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFYQTtFQUxIO0lBTU07OztBQVlIO0VBQ0c7RUFDQTs7QUFHSDtFQUNHO0VBQ0E7RUFDQTs7QUFHSDtFQUVHO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRzs7QUFJTjtFQUNHO0VBQ0E7RUFDQTs7QUFHSDtFQUNHO0VBQ0E7RUFDQTs7QUFFQTtFQUVHO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSU47RUFDRztFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJTjtFQUNHOzs7QUN4R0g7RUFDRztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdIO0VBQ0c7OztBQUdIO0VBQ0c7O0FBQ0E7RUFGSDtJQUdNOzs7O0FDdkJOO0VBQ0c7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDRzs7QUFHSDtFQUNHOztBQUdIO0VBQ0c7RUFDQTs7QUFFSDtFQUNHOzs7QUNyQk47QUFDQTtFQUNHO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsNEpBSTBCOztBQUU3QjtBQUNBO0VBQ0c7RUFDQTtFQUNBO0VBQ0E7RUFDQSxvS0FJMEI7O0FBRTdCO0FBQ0E7RUFDRztFQUNBO0VBQ0E7RUFDQTtFQUNBLDRKQUkwQjs7QUFHN0I7RUFDRztFQUNBO0VBQ0E7RUFDQTtFQUNBLGtMQUkwQjs7QUMxQzdCO0VBRUc7RUFDQTs7QUFHTTtFQU5UO0lBUWU7SUFJQTs7O0FBTk47RUFOVDtJQVFlOzs7QUFGTjtFQU5UO0lBUWU7Ozs7QUFvQmY7QUFBQTtFQUVHO0VBQ0E7OztBQUdIO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFVRztFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSDtBQU1TO0VBQ0c7SUFFTTtJQWVBOzs7QUFsQlQ7RUFDRztJQUVNOzs7QUFIVDtFQUNHO0lBRU07OztBQUhUO0VBQ0c7SUFFTTs7O0FBSFQ7RUFDRztJQUVNOzs7QUFIVDtFQUNHO0lBRU07SUFLQTs7O0FBUlQ7RUFDRztJQUVNOzs7QUFIVDtFQUNHO0lBRU07OztBQUhUO0VBQ0c7SUFFTTs7O0FBSFQ7RUFDRztJQUVNOzs7QUFIVDtFQUNHO0lBRU07OztBQUhUO0VBQ0c7SUFFTTs7O0FBSFQ7RUFDRztJQUVNOzs7QUFIVDtFQUNHO0lBRU07OztBQUhUO0VBQ0c7SUFFTTs7O0FBSFQ7RUFDRztJQUVNOzs7QUFIVDtFQUNHO0lBRU07OztBQXVCbEI7QUFDRzs7QUFNUztFQUNHO0lBRU07SUFrQkE7OztBQXJCVDtFQUNHO0lBRU07OztBQUhUO0VBQ0c7SUFFTTs7O0FBSFQ7RUFDRztJQUVNOzs7QUFIVDtFQUNHO0lBRU07OztBQUhUO0VBQ0c7SUFFTTtJQVFBOzs7QUFYVDtFQUNHO0lBRU07OztBQUhUO0VBQ0c7SUFFTTs7O0FBSFQ7RUFDRztJQUVNOzs7QUFIVDtFQUNHO0lBRU07OztBQUhUO0VBQ0c7SUFFTTs7O0FBSFQ7RUFDRztJQUVNOzs7QUFIVDtFQUNHO0lBRU07OztBQUhUO0VBQ0c7SUFFTTs7O0FBSFQ7RUFDRztJQUVNOzs7QUFIVDtFQUNHO0lBRU07OztBQUhUO0VBQ0c7SUFFTTs7OztBQStCckI7RUFDRzs7O0FBR0g7RUFDRzs7O0FBR0g7RUFDRzs7O0FBR0g7RUFDRzs7O0FBR0g7RUFDRzs7O0FBR0g7RUFDRzs7O0FBR0g7RUFDRzs7O0FBR0g7RUFDRzs7O0FBR0g7RUFDRzs7O0FBR0g7RUFDRzs7O0FBUUE7RUFDRztFQUNBOztBQUNBO0VBQ0c7OztBQVNUO0VBQ0c7RUFDQTs7QUFFQTtFQUNHO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJQTtFQUNHOztBQUtIO0VBQ0c7RUFDQTs7O0FBS1Q7RUFDRzs7QUFFQTtFQUNHO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQVNIO0VBQ0c7O0FBRUE7RUFDRzs7O0FBSk47RUFDRzs7QUFFQTtFQUNHOzs7QUFKTjtFQUNHOztBQUVBO0VBQ0c7OztBQUpOO0VBQ0c7O0FBRUE7RUFDRzs7O0FBSk47RUFDRzs7QUFFQTtFQUNHOzs7QUFKTjtFQUNHOztBQUVBO0VBQ0c7OztBQUpOO0VBQ0c7O0FBRUE7RUFDRzs7O0FBSk47RUFDRzs7QUFFQTtFQUNHOzs7QUFKTjtFQUNHOztBQUVBO0VBQ0c7OztBQUpOO0VBQ0c7O0FBRUE7RUFDRzs7O0FBSk47RUFDRzs7QUFFQTtFQUNHOzs7QUFKTjtFQUNHOztBQUVBO0VBQ0c7OztBQVNUO0VBQ0c7O0FBRUE7RUFDRzs7O0FBUU47RUFDRztFQUNBOzs7QUNsUUc7RUFDRzs7O0FDQ0g7QUFBQTtBQUFBO0VBQ0c7O0FBQ0E7QUFBQTtBQUFBO0VBQ0c7OztBQVVOO0FBQUE7QUFBQTtFQUNHOztBQUNBO0FBQUE7QUFBQTtFQUNHOzs7QUFNWjtFQUNHO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRzs7QUFJQTtFQUNHO0VBQ0E7RUFJQTs7QUFIQTtFQUhIO0lBSU07OztBQU9OO0VBQ0c7OztBQU1OO0VBR0c7RUFDQTs7QUFFQTtFQUNHOztBQUlBO0VBQ0c7O0FBS0g7RUFDRzs7O0FBZ0JUO0VBQ0c7OztBQVFOO0VBQ0c7RUFDQTtFQUNBOztBQUVBO0VBQ0c7O0FBR0g7RUFDRztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlOO0VBQ0c7RUFDQTs7O0FBR0g7RUFDRztBQUFBO0lBRUc7SUFDQTs7RUFHSDtJQUNHO0lBQ0E7OztBQ3JDTjtFQUNHO0lBQ0c7O0VBR0g7SUFDRzs7O0FDOUdOO0VBQ0c7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNHO0VBQ0E7O0FBRUE7RUFKSDtJQUtNO0lBQ0E7OztBQUlOO0VBQ0c7O0FBRUE7RUFDRztFQUNBO0VBQ0E7O0FBQ0E7RUFDRztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSU47RUFDRztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFLRztFQUNHOztBQUdOO0VBQ0c7RUFDQTs7QUFLVDtFQUNHOztBQUdIO0VBQ0c7RUFDQTs7QUFDQTtFQUNHO0VBQ0E7O0FBSUE7RUFDRzs7QUFJTjtFQUNHOztBQUNBO0VBQ0c7RUFDQTs7QUFLVDtFQUNHO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUtIO0VBQ0c7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUlBO0VBQ0c7O0FBSU47RUFDRzs7QUFNQTtFQUNHO0VBQ0E7O0FBSU47RUFDRzs7QUFNQTtFQUNHO0VBQ0E7O0FBSU47RUFDRzs7QUFDQTtFQUNHO0VBQ0E7O0FBSU47RUFDRzs7QUFDQTtFQUNHO0VBQ0E7OztBQVNUO0VBQ0c7O0FBQ0E7RUFDRzs7QUFFQTtFQUNHOztBQUdIO0VBQ0c7O0FBR0g7RUFDRztFQUNBO0VBQ0E7O0FBRUE7RUFDRztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSU47RUFDRztFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdIO0VBQ0c7OztBQUtUO0VBQ0c7OztBQ3pOSDtFQUNHOzs7QUFRSDtFQUNHO0VBQ0E7OztBQVNHO0VBQ0c7O0FBQ0E7RUFGSDtJQUdNOzs7O0FBTVo7QUFBQTtFQUVHOzs7QUFJQTtFQUNHOzs7QUFJTjtFQUNHOzs7QUFJQTtFQUNHOztBQUVBO0VBQ0c7OztBQ2pEVDtFQUNHO0VBQ0E7O0FBRUE7RUFDRztJQUNHOztFQUVBO0lBQ0c7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztFQUlOO0lBQ0c7SUFDQTtJQUNBO0lBQ0E7OztBQUlOO0VBQ0c7RUFLQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQVJBO0VBRkg7SUFHTTtJQUNBOzs7QUFRSDtFQUNHOztBQUdIO0VBQ0c7O0FBSUE7RUFDRzs7QUFHSDtFQUNHOztBQUlOO0VBQ0c7O0FBQ0E7RUFDRzs7QUFLVDtFQUNHO0VBQ0E7O0FBR0g7RUFDRztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0g7RUFDRzs7QUFJQTtFQUNHO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSU47RUFDRztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNHO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0g7RUFDRztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUtUO0VBQ0c7SUFDRzs7RUFFSDtJQUNHOzs7QUFJTjtFQUNHO0VBQ0E7RUFDQTs7QUFFQTtFQUNHOzs7QUFJTjtFQUNHO0VBQ0E7O0FBQ0E7RUFDRztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJTjtFQUNHOzs7QUFJQTtFQUNHO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlOO0VBQ0c7RUFDQTs7QUFDQTtFQUNHOztBQUlHO0VBQ0c7OztBQVdUO0VBQ0c7RUFDQTs7QUFFSDtFQUNHO0VBQ0E7O0FBRUg7RUFDRztFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdIO0VBQ0c7RUFDQTs7O0FBVUg7RUFDRzs7QUFHSDtFQUNHO0VBQ0E7OztBQUlOO0VBQ0c7OztBQUdIO0VBQ0c7OztBQy9QSDtFQUNHO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0c7RUFDRzs7QUFNQTtFQUNHO0VBQ0E7O0FBS1Q7RUFDRztFQUNBOztBQUVBO0VBQ0c7RUFDQTtFQUNBOztBQUlOO0VBQ0c7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdBO0VBQ0c7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdIO0VBQ0c7RUFDQTs7QUFHTjtFQUNHO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUlBO0VBQ0c7RUFDQTtFQUNBOztBQUNBO0VBQ0c7O0FBRUg7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUtHO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FDdkhaO0VBQ0c7RUFDQTs7QUFFQTtFQUNHO0VBQ0E7OztBQUlOO0VBQ0c7RUFDQTtFQUNBOzs7QUFHSDtFQUNHO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNHO0VBQ0E7RUFDQTtFQUNBOzs7QUFJTjtFQUNHOzs7QUFRQTtFQUNHO0VBQ0E7O0FBRUg7RUFDRzs7O0FBSU47RUFDRztFQUNBOztBQUVBO0VBQ0c7OztBQ3RESDtFQUVHO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBRUc7O0FBR047RUFDRzs7QUFJSDtFQUNHOztBQUVBO0VBQ0c7OztBQ3RCVDtFQUNHO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNHO0VBQ0E7OztBQ2JOO0VBQ0c7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRzs7QUFFQTtFQUNHOztBQUlOO0VBQ0c7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRzs7QUFHSDtFQUNHO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0g7RUFDRztFQUNBOztBQUNBO0VBQ0c7O0FBR0g7RUFDRzs7QUFLVDtFQUNHO0VBQ0E7RUFDQTtFQUVBOztBQUVBO0VBQ0c7RUFFQTs7O0FDN0RUO0VBQ0c7OztBQUdIO0VBQ0c7OztBQ0xIO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFjRTtFQUNFO0VBQ0E7RUFFQTtFQUNBOztBQUlGO0VBQ0U7QUFDQTtBQUFBO0FBQUE7QUFBQTs7O0FBTUo7QUFBQTtFQUVFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0VBRUU7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0FBQUE7RUFFRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0FBQ0E7QUFBQTtFQUVFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7QUFDQTtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOztBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBT0U7O0FBRUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUtFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVGO0VBQ0U7O0FBRUY7RUFDRTs7QUFFRjtFQUNFOztBQUVGO0VBQ0U7O0FBRUY7RUFDRTs7O0FBR0o7QUFFRTtFQUNFO0VBQ0E7RUFDQTs7QUFDQTtFQUNFOztBQUdKO0VBQ0U7OztBQUlGO0VBQ0U7OztBQUlGO0VBQ0U7OztBQUlGO0VBQ0U7O0FBRUY7RUFDRTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7O0FBRUY7RUFDRTtFQUNBOzs7QUFJRjtFQUNFOztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFJRjtFQUNFOztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFJSjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLQTtBQUFBO0FBQUE7RUFDRTs7O0FBR0o7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtJQUNFOztFQUVGO0lBQ0UiLCJmaWxlIjoibWFpbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIqIHtcbiAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5AaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL2Jvb3RzdHJhcC1ncmlkXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi91dGlsaXRpZXMvc3BhY2luZ1wiO1xuQGltcG9ydCBcIi4vdXRpbGl0aWVzL2JhY2tncm91bmRzXCI7XG5AaW1wb3J0IFwiLi91dGlsaXRpZXMvaGVscGVyc1wiO1xuQGltcG9ydCBcIi4vdXRpbGl0aWVzL25vcm1hbGl6ZVwiO1xuQGltcG9ydCBcIi4vdXRpbGl0aWVzL21lZGlhXCI7XG5AaW1wb3J0IFwiLi91dGlsaXRpZXMvYm9yZGVyc1wiO1xuXG5AaW1wb3J0IFwiLi9mb3Jtcy9mb3Jtc1wiO1xuXG5AaW1wb3J0IFwiLi90eXBvL3R5cG8tZXh0ZW5zaW9uc1wiO1xuQGltcG9ydCBcIi4vdHlwby9idXR0b25zXCI7XG5AaW1wb3J0IFwiLi90eXBvL2ljb25zXCI7XG5AaW1wb3J0IFwiLi90eXBvL2ljb25zLW1pY3JvXCI7XG5AaW1wb3J0IFwiLi90eXBvL2ZvbnRzXCI7XG5AaW1wb3J0IFwiLi90eXBvL3R5cG9cIjtcblxuQGltcG9ydCBcIi4vbGF5b3V0L2Zvb3RlclwiO1xuQGltcG9ydCBcIi4vbGF5b3V0L2hlYWRlclwiO1xuQGltcG9ydCBcIi4vbGF5b3V0L25hdmlnYXRpb25cIjtcbkBpbXBvcnQgXCIuL2xheW91dC9zaWRlYmFyXCI7XG5AaW1wb3J0IFwiLi9sYXlvdXQvc3RydWN0dXJlXCI7XG5AaW1wb3J0IFwiLi9sYXlvdXQvdWlcIjtcblxuQGltcG9ydCBcIi4vbW9kdWxlcy9tb2RhbFwiO1xuQGltcG9ydCBcIi4vbW9kdWxlcy9zd2lwZXJcIjtcbkBpbXBvcnQgXCIuL21vZHVsZXMvdGFic1wiO1xuQGltcG9ydCBcIi4vbW9kdWxlcy9jb25zZW50XCI7XG5AaW1wb3J0IFwiLi9tb2R1bGVzL2FjY29yZGlvblwiO1xuQGltcG9ydCBcIi4vbW9kdWxlcy9ibG9ja3NcIjtcbkBpbXBvcnQgXCIuLi8uLi9ub2RlX21vZHVsZXMvc3dpcGVyL3N3aXBlci5zY3NzXCI7XG4iLCJAbWl4aW4gYnNCYW5uZXIoJGZpbGUpIHtcbiAgLyohXG4gICAqIEJvb3RzdHJhcCAjeyRmaWxlfSB2NS4zLjEgKGh0dHBzOi8vZ2V0Ym9vdHN0cmFwLmNvbS8pXG4gICAqIENvcHlyaWdodCAyMDExLTIwMjMgVGhlIEJvb3RzdHJhcCBBdXRob3JzXG4gICAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFpbi9MSUNFTlNFKVxuICAgKi9cbn1cbiIsIi8vIENvbnRhaW5lciB3aWR0aHNcbi8vXG4vLyBTZXQgdGhlIGNvbnRhaW5lciB3aWR0aCwgYW5kIG92ZXJyaWRlIGl0IGZvciBmaXhlZCBuYXZiYXJzIGluIG1lZGlhIHF1ZXJpZXMuXG5cbkBpZiAkZW5hYmxlLWNvbnRhaW5lci1jbGFzc2VzIHtcbiAgLy8gU2luZ2xlIGNvbnRhaW5lciBjbGFzcyB3aXRoIGJyZWFrcG9pbnQgbWF4LXdpZHRoc1xuICAuY29udGFpbmVyLFxuICAvLyAxMDAlIHdpZGUgY29udGFpbmVyIGF0IGFsbCBicmVha3BvaW50c1xuICAuY29udGFpbmVyLWZsdWlkIHtcbiAgICBAaW5jbHVkZSBtYWtlLWNvbnRhaW5lcigpO1xuICB9XG5cbiAgLy8gUmVzcG9uc2l2ZSBjb250YWluZXJzIHRoYXQgYXJlIDEwMCUgd2lkZSB1bnRpbCBhIGJyZWFrcG9pbnRcbiAgQGVhY2ggJGJyZWFrcG9pbnQsICRjb250YWluZXItbWF4LXdpZHRoIGluICRjb250YWluZXItbWF4LXdpZHRocyB7XG4gICAgLmNvbnRhaW5lci0jeyRicmVha3BvaW50fSB7XG4gICAgICBAZXh0ZW5kIC5jb250YWluZXItZmx1aWQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludCwgJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgICAgICVyZXNwb25zaXZlLWNvbnRhaW5lci0jeyRicmVha3BvaW50fSB7XG4gICAgICAgIG1heC13aWR0aDogJGNvbnRhaW5lci1tYXgtd2lkdGg7XG4gICAgICB9XG5cbiAgICAgIC8vIEV4dGVuZCBlYWNoIGJyZWFrcG9pbnQgd2hpY2ggaXMgc21hbGxlciBvciBlcXVhbCB0byB0aGUgY3VycmVudCBicmVha3BvaW50XG4gICAgICAkZXh0ZW5kLWJyZWFrcG9pbnQ6IHRydWU7XG5cbiAgICAgIEBlYWNoICRuYW1lLCAkd2lkdGggaW4gJGdyaWQtYnJlYWtwb2ludHMge1xuICAgICAgICBAaWYgKCRleHRlbmQtYnJlYWtwb2ludCkge1xuICAgICAgICAgIC5jb250YWluZXIje2JyZWFrcG9pbnQtaW5maXgoJG5hbWUsICRncmlkLWJyZWFrcG9pbnRzKX0ge1xuICAgICAgICAgICAgQGV4dGVuZCAlcmVzcG9uc2l2ZS1jb250YWluZXItI3skYnJlYWtwb2ludH07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gT25jZSB0aGUgY3VycmVudCBicmVha3BvaW50IGlzIHJlYWNoZWQsIHN0b3AgZXh0ZW5kaW5nXG4gICAgICAgICAgQGlmICgkYnJlYWtwb2ludCA9PSAkbmFtZSkge1xuICAgICAgICAgICAgJGV4dGVuZC1icmVha3BvaW50OiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIENvbnRhaW5lciBtaXhpbnNcblxuQG1peGluIG1ha2UtY29udGFpbmVyKCRndXR0ZXI6ICRjb250YWluZXItcGFkZGluZy14KSB7XG4gIC0tI3skcHJlZml4fWd1dHRlci14OiAjeyRndXR0ZXJ9O1xuICAtLSN7JHByZWZpeH1ndXR0ZXIteTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctcmlnaHQ6IGNhbGModmFyKC0tI3skcHJlZml4fWd1dHRlci14KSAqIC41KTsgLy8gc3R5bGVsaW50LWRpc2FibGUtbGluZSBmdW5jdGlvbi1kaXNhbGxvd2VkLWxpc3RcbiAgcGFkZGluZy1sZWZ0OiBjYWxjKHZhcigtLSN7JHByZWZpeH1ndXR0ZXIteCkgKiAuNSk7IC8vIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgZnVuY3Rpb24tZGlzYWxsb3dlZC1saXN0XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIGNvbG9yc1xuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbiRjb2xvcnM6IChcbiAgIGJhc2U6ICMyNjI4MmEsXG4gICAvLyBwcmltYXJ5OiAjY2M3YzcwLFxuICAgcHJpbWFyeTogI2U1Njk1NixcbiAgIC8vIHByaW1hcnk6ICNkNjllOTYsXG4gICBzZWNvbmRhcnk6ICNkZGE4NzksXG4gICB0aGlyZDogIzQ5NTg2NyxcbiAgIGZvdXI6ICNmY2Y2ZjIsXG4gICBmaXZlOiAjZmVmOWY4LFxuICAgc2l4OiAjZmZmMGUzLFxuICAgd2hpdGU6ICNmZmYsXG4gICBncmV5OiByZ2JhKCNlOWU5ZTksIDAuNSksXG4gICBncmV5RGFyazogI2M5YzljOSxcbiAgIGRhbmdlcjogcmdiYSgjZWUzYzNjLCAxKSxcbiAgIGRhbmdlck5lZ2F0aXZlOiByZ2JhKCNmMDk3OTcsIDEpLFxuKTtcblxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyB0eXBvXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuJHR5cG86IChcbiAgIHNtOiAoXG4gICAgICBiaWc6IChcbiAgICAgICAgIGZvbnQtc2l6ZTogOHZoLFxuICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDNweCxcbiAgICAgICksXG4gICAgICAxOiAoXG4gICAgICAgICBmb250LXNpemU6IDUwcHgsXG4gICAgICApLFxuICAgICAgMjogKFxuICAgICAgICAgZm9udC1zaXplOiAzMHB4LFxuICAgICAgKSxcbiAgICAgIDM6IChcbiAgICAgICAgIGZvbnQtc2l6ZTogMzJweCxcbiAgICAgICksXG4gICAgICA0OiAoXG4gICAgICAgICBmb250LXNpemU6IDI0cHgsXG4gICAgICApLFxuICAgICAgYm9keTogKFxuICAgICAgICAgZm9udC1zaXplOiAyMHB4LFxuICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNCxcbiAgICAgICksXG4gICAgICBzbWFsbDogKFxuICAgICAgICAgZm9udC1zaXplOiAxNnB4LFxuICAgICAgKSxcbiAgICksXG4gICBtZDogKFxuICAgICAgMTogKFxuICAgICAgICAgZm9udC1zaXplOiA0NXB4LFxuICAgICAgKSxcbiAgICAgIDI6IChcbiAgICAgICAgIGZvbnQtc2l6ZTogMzBweCxcbiAgICAgICksXG4gICAgICAzOiAoXG4gICAgICAgICBmb250LXNpemU6IDMycHgsXG4gICAgICApLFxuICAgICAgNDogKFxuICAgICAgICAgZm9udC1zaXplOiAyNHB4LFxuICAgICAgKSxcbiAgICAgIGJvZHk6IChcbiAgICAgICAgIGZvbnQtc2l6ZTogMjBweCxcbiAgICAgICksXG4gICApLFxuICAgbGc6IChcbiAgICAgIDE6IChcbiAgICAgICAgIGZvbnQtc2l6ZTogNTBweCxcbiAgICAgICksXG4gICAgICAyOiAoXG4gICAgICAgICBmb250LXNpemU6IDMwcHgsXG4gICAgICApLFxuICAgICAgMzogKFxuICAgICAgICAgZm9udC1zaXplOiAyM3B4LFxuICAgICAgKSxcbiAgICAgIDQ6IChcbiAgICAgICAgIGZvbnQtc2l6ZTogMjBweCxcbiAgICAgICksXG4gICAgICBib2R5OiAoXG4gICAgICAgICBmb250LXNpemU6IDE4cHgsXG4gICAgICApLFxuICAgKSxcbik7XG5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gYnJlYWtpbmdwb2ludHNcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4kZ3JpZC1icmVha3BvaW50czogKFxuICAgc206IDAsXG4gICBzbW1kOiA1MDBweCxcbiAgIG1kOiA3NjhweCxcbiAgIGxnOiA5OTJweCxcbiAgIHhsOiAxNDQwcHgsXG4pO1xuXG4kY29udGFpbmVyLW1heC13aWR0aHM6IChcbiAgIHNtOiA5MCUsXG4gICB4bDogMTM0MHB4LFxuKTtcblxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBzcGFjaW5nXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuJHNwYWNlczogKFxuICAgc206IChcbiAgICAgIDUwOiA1MHB4LFxuICAgICAgNzA6IDcwcHgsXG4gICAgICAxMDA6IDEwMHB4LFxuICAgICAgMTUwOiAxNTBweCxcbiAgICksXG4pO1xuXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIGJ1dHRvbnNcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4kYnV0dG9uczogKFxuICAgc206IChcbiAgICAgIDE6IChcbiAgICAgICAgIGxpbmUtaGVpZ2h0OiA1MHB4LFxuICAgICAgICAgaGVpZ2h0OiA1MHB4LFxuICAgICAgICAgZm9udC1zaXplOiAyMHB4LFxuICAgICAgICAgcGFkZGluZzogMCAxLjVlbSxcbiAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHgsXG4gICAgICApLFxuICAgICAgMjogKFxuICAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHgsXG4gICAgICAgICBoZWlnaHQ6IDQwcHgsXG4gICAgICAgICBmb250LXNpemU6IDE4cHgsXG4gICAgICAgICBwYWRkaW5nOiAwIDJlbSxcbiAgICAgICksXG4gICAgICAzOiAoXG4gICAgICAgICBsaW5lLWhlaWdodDogMjhweCxcbiAgICAgICAgIGhlaWdodDogMjhweCxcbiAgICAgICAgIGZvbnQtc2l6ZTogMTNweCxcbiAgICAgICAgIHBhZGRpbmc6IDAgMmVtLFxuICAgICAgKSxcbiAgICksXG4gICBtZDogKFxuICAgICAgMTogKFxuICAgICAgICAgbGluZS1oZWlnaHQ6IDQ1cHgsXG4gICAgICAgICBoZWlnaHQ6IDUwcHgsXG4gICAgICAgICBmb250LXNpemU6IDIwcHgsXG4gICAgICAgICBwYWRkaW5nOiAwIDJlbSxcbiAgICAgICksXG4gICAgICAyOiAoXG4gICAgICAgICBsaW5lLWhlaWdodDogMzVweCxcbiAgICAgICAgIGhlaWdodDogNDBweCxcbiAgICAgICAgIGZvbnQtc2l6ZTogMTZweCxcbiAgICAgICAgIHBhZGRpbmc6IDAgMWVtLFxuICAgICAgKSxcbiAgICksXG4pO1xuXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIHRpbWVzXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuJHRpbWVzOiAoXG4gICBmYXN0OiAwLjNzLFxuICAgbWVkaXVtOiAwLjVzLFxuICAgc2xvdzogMXMsXG4pO1xuXG4kcmFkaXVzOiAoXG4gICBub3JtYWw6IDEwcHgsXG4gICBmb3JtczogNHB4LFxuKTtcbiIsIi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXG4vL1xuLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLCBvcmRlciBmcm9tIHNtYWxsIHRvIGxhcmdlOlxuLy9cbi8vICAgICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpXG4vL1xuLy8gVGhlIG1hcCBkZWZpbmVkIGluIHRoZSBgJGdyaWQtYnJlYWtwb2ludHNgIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGFzIHRoZSBgJGJyZWFrcG9pbnRzYCBhcmd1bWVudCBieSBkZWZhdWx0LlxuXG4vLyBOYW1lIG9mIHRoZSBuZXh0IGJyZWFrcG9pbnQsIG9yIG51bGwgZm9yIHRoZSBsYXN0IGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAkYnJlYWtwb2ludC1uYW1lczogKHhzIHNtIG1kIGxnIHhsIHh4bCkpXG4vLyAgICBtZFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cywgJGJyZWFrcG9pbnQtbmFtZXM6IG1hcC1rZXlzKCRicmVha3BvaW50cykpIHtcbiAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XG4gIEBpZiBub3QgJG4ge1xuICAgIEBlcnJvciBcImJyZWFrcG9pbnQgYCN7JG5hbWV9YCBub3QgZm91bmQgaW4gYCN7JGJyZWFrcG9pbnRzfWBcIjtcbiAgfVxuICBAcmV0dXJuIGlmKCRuIDwgbGVuZ3RoKCRicmVha3BvaW50LW5hbWVzKSwgbnRoKCRicmVha3BvaW50LW5hbWVzLCAkbiArIDEpLCBudWxsKTtcbn1cblxuLy8gTWluaW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgc21hbGxlc3QgKGZpcnN0KSBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWluKHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIDU3NnB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgQHJldHVybiBpZigkbWluICE9IDAsICRtaW4sIG51bGwpO1xufVxuXG4vLyBNYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguXG4vLyBUaGUgbWF4aW11bSB2YWx1ZSBpcyByZWR1Y2VkIGJ5IDAuMDJweCB0byB3b3JrIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2Zcbi8vIGBtaW4tYCBhbmQgYG1heC1gIHByZWZpeGVzIGFuZCB2aWV3cG9ydHMgd2l0aCBmcmFjdGlvbmFsIHdpZHRocy5cbi8vIFNlZSBodHRwczovL3d3dy53My5vcmcvVFIvbWVkaWFxdWVyaWVzLTQvI21xLW1pbi1tYXhcbi8vIFVzZXMgMC4wMnB4IHJhdGhlciB0aGFuIDAuMDFweCB0byB3b3JrIGFyb3VuZCBhIGN1cnJlbnQgcm91bmRpbmcgYnVnIGluIFNhZmFyaS5cbi8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MjYxXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1tYXgobWQsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgNzY3Ljk4cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRtYXggYW5kICRtYXggPiAwLCAkbWF4IC0gLjAyLCBudWxsKTtcbn1cblxuLy8gUmV0dXJucyBhIGJsYW5rIHN0cmluZyBpZiBzbWFsbGVzdCBicmVha3BvaW50LCBvdGhlcndpc2UgcmV0dXJucyB0aGUgbmFtZSB3aXRoIGEgZGFzaCBpbiBmcm9udC5cbi8vIFVzZWZ1bCBmb3IgbWFraW5nIHJlc3BvbnNpdmUgdXRpbGl0aWVzLlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoeHMsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgXCJcIiAgKFJldHVybnMgYSBibGFuayBzdHJpbmcpXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIFwiLXNtXCJcbkBmdW5jdGlvbiBicmVha3BvaW50LWluZml4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEByZXR1cm4gaWYoYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cykgPT0gbnVsbCwgXCJcIiwgXCItI3skbmFtZX1cIik7XG59XG5cbi8vIE1lZGlhIG9mIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgd2lkZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtaW4ge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIG9mIGF0IG1vc3QgdGhlIG1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBsYXJnZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtYXgge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIHRoYXQgc3BhbnMgbXVsdGlwbGUgYnJlYWtwb2ludCB3aWR0aHMuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgYmV0d2VlbiB0aGUgbWluIGFuZCBtYXggYnJlYWtwb2ludHNcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWJldHdlZW4oJGxvd2VyLCAkdXBwZXIsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJGxvd2VyLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkdXBwZXIsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGxvd2VyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkdXBwZXIsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIE1lZGlhIGJldHdlZW4gdGhlIGJyZWFrcG9pbnQncyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cbi8vIE5vIG1pbmltdW0gZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LCBhbmQgbm8gbWF4aW11bSBmb3IgdGhlIGxhcmdlc3Qgb25lLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IG9ubHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQsIG5vdCB2aWV3cG9ydHMgYW55IHdpZGVyIG9yIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiAgYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRuZXh0OiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRtYXg6ICBicmVha3BvaW50LW1heCgkbmV4dCwgJGJyZWFrcG9pbnRzKTtcblxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJG5leHQsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBSb3dcbi8vXG4vLyBSb3dzIGNvbnRhaW4geW91ciBjb2x1bW5zLlxuXG46cm9vdCB7XG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJGdyaWQtYnJlYWtwb2ludHMge1xuICAgIC0tI3skcHJlZml4fWJyZWFrcG9pbnQtI3skbmFtZX06ICN7JHZhbHVlfTtcbiAgfVxufVxuXG5AaWYgJGVuYWJsZS1ncmlkLWNsYXNzZXMge1xuICAucm93IHtcbiAgICBAaW5jbHVkZSBtYWtlLXJvdygpO1xuXG4gICAgPiAqIHtcbiAgICAgIEBpbmNsdWRlIG1ha2UtY29sLXJlYWR5KCk7XG4gICAgfVxuICB9XG59XG5cbkBpZiAkZW5hYmxlLWNzc2dyaWQge1xuICAuZ3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IHJlcGVhdCh2YXIoLS0jeyRwcmVmaXh9cm93cywgMSksIDFmcik7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tI3skcHJlZml4fWNvbHVtbnMsICN7JGdyaWQtY29sdW1uc30pLCAxZnIpO1xuICAgIGdhcDogdmFyKC0tI3skcHJlZml4fWdhcCwgI3skZ3JpZC1ndXR0ZXItd2lkdGh9KTtcblxuICAgIEBpbmNsdWRlIG1ha2UtY3NzZ3JpZCgpO1xuICB9XG59XG5cblxuLy8gQ29sdW1uc1xuLy9cbi8vIENvbW1vbiBzdHlsZXMgZm9yIHNtYWxsIGFuZCBsYXJnZSBncmlkIGNvbHVtbnNcblxuQGlmICRlbmFibGUtZ3JpZC1jbGFzc2VzIHtcbiAgQGluY2x1ZGUgbWFrZS1ncmlkLWNvbHVtbnMoKTtcbn1cbiIsIi8vIEdyaWQgc3lzdGVtXG4vL1xuLy8gR2VuZXJhdGUgc2VtYW50aWMgZ3JpZCBjb2x1bW5zIHdpdGggdGhlc2UgbWl4aW5zLlxuXG5AbWl4aW4gbWFrZS1yb3coJGd1dHRlcjogJGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIC0tI3skcHJlZml4fWd1dHRlci14OiAjeyRndXR0ZXJ9O1xuICAtLSN7JHByZWZpeH1ndXR0ZXIteTogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICAvLyBUT0RPOiBSZXZpc2l0IGNhbGMgb3JkZXIgYWZ0ZXIgaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0LWJvb3RzdHJhcC9yZWFjdC1ib290c3RyYXAvaXNzdWVzLzYwMzkgaXMgZml4ZWRcbiAgbWFyZ2luLXRvcDogY2FsYygtMSAqIHZhcigtLSN7JHByZWZpeH1ndXR0ZXIteSkpOyAvLyBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGZ1bmN0aW9uLWRpc2FsbG93ZWQtbGlzdFxuICBtYXJnaW4tcmlnaHQ6IGNhbGMoLS41ICogdmFyKC0tI3skcHJlZml4fWd1dHRlci14KSk7IC8vIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgZnVuY3Rpb24tZGlzYWxsb3dlZC1saXN0XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKC0uNSAqIHZhcigtLSN7JHByZWZpeH1ndXR0ZXIteCkpOyAvLyBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGZ1bmN0aW9uLWRpc2FsbG93ZWQtbGlzdFxufVxuXG5AbWl4aW4gbWFrZS1jb2wtcmVhZHkoKSB7XG4gIC8vIEFkZCBib3ggc2l6aW5nIGlmIG9ubHkgdGhlIGdyaWQgaXMgbG9hZGVkXG4gIGJveC1zaXppbmc6IGlmKHZhcmlhYmxlLWV4aXN0cyhpbmNsdWRlLWNvbHVtbi1ib3gtc2l6aW5nKSBhbmQgJGluY2x1ZGUtY29sdW1uLWJveC1zaXppbmcsIGJvcmRlci1ib3gsIG51bGwpO1xuICAvLyBQcmV2ZW50IGNvbHVtbnMgZnJvbSBiZWNvbWluZyB0b28gbmFycm93IHdoZW4gYXQgc21hbGxlciBncmlkIHRpZXJzIGJ5XG4gIC8vIGFsd2F5cyBzZXR0aW5nIGB3aWR0aDogMTAwJTtgLiBUaGlzIHdvcmtzIGJlY2F1c2Ugd2Ugc2V0IHRoZSB3aWR0aFxuICAvLyBsYXRlciBvbiB0byBvdmVycmlkZSB0aGlzIGluaXRpYWwgd2lkdGguXG4gIGZsZXgtc2hyaW5rOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlOyAvLyBQcmV2ZW50IGAuY29sLWF1dG9gLCBgLmNvbGAgKCYgcmVzcG9uc2l2ZSB2YXJpYW50cykgZnJvbSBicmVha2luZyBvdXQgdGhlIGdyaWRcbiAgcGFkZGluZy1yaWdodDogY2FsYyh2YXIoLS0jeyRwcmVmaXh9Z3V0dGVyLXgpICogLjUpOyAvLyBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGZ1bmN0aW9uLWRpc2FsbG93ZWQtbGlzdFxuICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tI3skcHJlZml4fWd1dHRlci14KSAqIC41KTsgLy8gc3R5bGVsaW50LWRpc2FibGUtbGluZSBmdW5jdGlvbi1kaXNhbGxvd2VkLWxpc3RcbiAgbWFyZ2luLXRvcDogdmFyKC0tI3skcHJlZml4fWd1dHRlci15KTtcbn1cblxuQG1peGluIG1ha2UtY29sKCRzaXplOiBmYWxzZSwgJGNvbHVtbnM6ICRncmlkLWNvbHVtbnMpIHtcbiAgQGlmICRzaXplIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogcGVyY2VudGFnZShkaXZpZGUoJHNpemUsICRjb2x1bW5zKSk7XG5cbiAgfSBAZWxzZSB7XG4gICAgZmxleDogMSAxIDA7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG59XG5cbkBtaXhpbiBtYWtlLWNvbC1hdXRvKCkge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgd2lkdGg6IGF1dG87XG59XG5cbkBtaXhpbiBtYWtlLWNvbC1vZmZzZXQoJHNpemUsICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gICRudW06IGRpdmlkZSgkc2l6ZSwgJGNvbHVtbnMpO1xuICBtYXJnaW4tbGVmdDogaWYoJG51bSA9PSAwLCAwLCBwZXJjZW50YWdlKCRudW0pKTtcbn1cblxuLy8gUm93IGNvbHVtbnNcbi8vXG4vLyBTcGVjaWZ5IG9uIGEgcGFyZW50IGVsZW1lbnQoZS5nLiwgLnJvdykgdG8gZm9yY2UgaW1tZWRpYXRlIGNoaWxkcmVuIGludG8gTk5cbi8vIG51bWJlciBvZiBjb2x1bW5zLiBTdXBwb3J0cyB3cmFwcGluZyB0byBuZXcgbGluZXMsIGJ1dCBkb2VzIG5vdCBkbyBhIE1hc29ucnlcbi8vIHN0eWxlIGdyaWQuXG5AbWl4aW4gcm93LWNvbHMoJGNvdW50KSB7XG4gID4gKiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IGRpdmlkZSgxMDAlLCAkY291bnQpO1xuICB9XG59XG5cbi8vIEZyYW1ld29yayBncmlkIGdlbmVyYXRpb25cbi8vXG4vLyBVc2VkIG9ubHkgYnkgQm9vdHN0cmFwIHRvIGdlbmVyYXRlIHRoZSBjb3JyZWN0IG51bWJlciBvZiBncmlkIGNsYXNzZXMgZ2l2ZW5cbi8vIGFueSB2YWx1ZSBvZiBgJGdyaWQtY29sdW1uc2AuXG5cbkBtaXhpbiBtYWtlLWdyaWQtY29sdW1ucygkY29sdW1uczogJGdyaWQtY29sdW1ucywgJGd1dHRlcjogJGdyaWQtZ3V0dGVyLXdpZHRoLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEBlYWNoICRicmVha3BvaW50IGluIG1hcC1rZXlzKCRicmVha3BvaW50cykge1xuICAgICRpbmZpeDogYnJlYWtwb2ludC1pbmZpeCgkYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGJyZWFrcG9pbnQsICRicmVha3BvaW50cykge1xuICAgICAgLy8gUHJvdmlkZSBiYXNpYyBgLmNvbC17YnB9YCBjbGFzc2VzIGZvciBlcXVhbC13aWR0aCBmbGV4Ym94IGNvbHVtbnNcbiAgICAgIC5jb2wjeyRpbmZpeH0ge1xuICAgICAgICBmbGV4OiAxIDAgMCU7IC8vIEZsZXhidWdzICM0OiBodHRwczovL2dpdGh1Yi5jb20vcGhpbGlwd2FsdG9uL2ZsZXhidWdzI2ZsZXhidWctNFxuICAgICAgfVxuXG4gICAgICAucm93LWNvbHMjeyRpbmZpeH0tYXV0byA+ICoge1xuICAgICAgICBAaW5jbHVkZSBtYWtlLWNvbC1hdXRvKCk7XG4gICAgICB9XG5cbiAgICAgIEBpZiAkZ3JpZC1yb3ctY29sdW1ucyA+IDAge1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLXJvdy1jb2x1bW5zIHtcbiAgICAgICAgICAucm93LWNvbHMjeyRpbmZpeH0tI3skaX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgcm93LWNvbHMoJGkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuY29sI3skaW5maXh9LWF1dG8ge1xuICAgICAgICBAaW5jbHVkZSBtYWtlLWNvbC1hdXRvKCk7XG4gICAgICB9XG5cbiAgICAgIEBpZiAkY29sdW1ucyA+IDAge1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb2x1bW5zIHtcbiAgICAgICAgICAuY29sI3skaW5maXh9LSN7JGl9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1ha2UtY29sKCRpLCAkY29sdW1ucyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gYCRjb2x1bW5zIC0gMWAgYmVjYXVzZSBvZmZzZXR0aW5nIGJ5IHRoZSB3aWR0aCBvZiBhbiBlbnRpcmUgcm93IGlzbid0IHBvc3NpYmxlXG4gICAgICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggKCRjb2x1bW5zIC0gMSkge1xuICAgICAgICAgIEBpZiBub3QgKCRpbmZpeCA9PSBcIlwiIGFuZCAkaSA9PSAwKSB7IC8vIEF2b2lkIGVtaXR0aW5nIHVzZWxlc3MgLm9mZnNldC0wXG4gICAgICAgICAgICAub2Zmc2V0I3skaW5maXh9LSN7JGl9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgbWFrZS1jb2wtb2Zmc2V0KCRpLCAkY29sdW1ucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEd1dHRlcnNcbiAgICAgIC8vXG4gICAgICAvLyBNYWtlIHVzZSBvZiBgLmctKmAsIGAuZ3gtKmAgb3IgYC5neS0qYCB1dGlsaXRpZXMgdG8gY2hhbmdlIHNwYWNpbmcgYmV0d2VlbiB0aGUgY29sdW1ucy5cbiAgICAgIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkZ3V0dGVycyB7XG4gICAgICAgIC5nI3skaW5maXh9LSN7JGtleX0sXG4gICAgICAgIC5neCN7JGluZml4fS0jeyRrZXl9IHtcbiAgICAgICAgICAtLSN7JHByZWZpeH1ndXR0ZXIteDogI3skdmFsdWV9O1xuICAgICAgICB9XG5cbiAgICAgICAgLmcjeyRpbmZpeH0tI3ska2V5fSxcbiAgICAgICAgLmd5I3skaW5maXh9LSN7JGtleX0ge1xuICAgICAgICAgIC0tI3skcHJlZml4fWd1dHRlci15OiAjeyR2YWx1ZX07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1ha2UtY3NzZ3JpZCgkY29sdW1uczogJGdyaWQtY29sdW1ucywgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICBAZWFjaCAkYnJlYWtwb2ludCBpbiBtYXAta2V5cygkYnJlYWtwb2ludHMpIHtcbiAgICAkaW5maXg6IGJyZWFrcG9pbnQtaW5maXgoJGJyZWFrcG9pbnQsICRicmVha3BvaW50cyk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRicmVha3BvaW50LCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBpZiAkY29sdW1ucyA+IDAge1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb2x1bW5zIHtcbiAgICAgICAgICAuZy1jb2wjeyRpbmZpeH0tI3skaX0ge1xuICAgICAgICAgICAgZ3JpZC1jb2x1bW46IGF1dG8gLyBzcGFuICRpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFN0YXJ0IHdpdGggYDFgIGJlY2F1c2UgYDBgIGlzIGFuZCBpbnZhbGlkIHZhbHVlLlxuICAgICAgICAvLyBFbmRzIHdpdGggYCRjb2x1bW5zIC0gMWAgYmVjYXVzZSBvZmZzZXR0aW5nIGJ5IHRoZSB3aWR0aCBvZiBhbiBlbnRpcmUgcm93IGlzbid0IHBvc3NpYmxlLlxuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICgkY29sdW1ucyAtIDEpIHtcbiAgICAgICAgICAuZy1zdGFydCN7JGluZml4fS0jeyRpfSB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbi1zdGFydDogJGk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBVdGlsaXR5IGdlbmVyYXRvclxuLy8gVXNlZCB0byBnZW5lcmF0ZSB1dGlsaXRpZXMgJiBwcmludCB1dGlsaXRpZXNcbkBtaXhpbiBnZW5lcmF0ZS11dGlsaXR5KCR1dGlsaXR5LCAkaW5maXg6IFwiXCIsICRpcy1yZnMtbWVkaWEtcXVlcnk6IGZhbHNlKSB7XG4gICR2YWx1ZXM6IG1hcC1nZXQoJHV0aWxpdHksIHZhbHVlcyk7XG5cbiAgLy8gSWYgdGhlIHZhbHVlcyBhcmUgYSBsaXN0IG9yIHN0cmluZywgY29udmVydCBpdCBpbnRvIGEgbWFwXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZXMpID09IFwic3RyaW5nXCIgb3IgdHlwZS1vZihudGgoJHZhbHVlcywgMSkpICE9IFwibGlzdFwiIHtcbiAgICAkdmFsdWVzOiB6aXAoJHZhbHVlcywgJHZhbHVlcyk7XG4gIH1cblxuICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJHZhbHVlcyB7XG4gICAgJHByb3BlcnRpZXM6IG1hcC1nZXQoJHV0aWxpdHksIHByb3BlcnR5KTtcblxuICAgIC8vIE11bHRpcGxlIHByb3BlcnRpZXMgYXJlIHBvc3NpYmxlLCBmb3IgZXhhbXBsZSB3aXRoIHZlcnRpY2FsIG9yIGhvcml6b250YWwgbWFyZ2lucyBvciBwYWRkaW5nc1xuICAgIEBpZiB0eXBlLW9mKCRwcm9wZXJ0aWVzKSA9PSBcInN0cmluZ1wiIHtcbiAgICAgICRwcm9wZXJ0aWVzOiBhcHBlbmQoKCksICRwcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICAvLyBVc2UgY3VzdG9tIGNsYXNzIGlmIHByZXNlbnRcbiAgICAkcHJvcGVydHktY2xhc3M6IGlmKG1hcC1oYXMta2V5KCR1dGlsaXR5LCBjbGFzcyksIG1hcC1nZXQoJHV0aWxpdHksIGNsYXNzKSwgbnRoKCRwcm9wZXJ0aWVzLCAxKSk7XG4gICAgJHByb3BlcnR5LWNsYXNzOiBpZigkcHJvcGVydHktY2xhc3MgPT0gbnVsbCwgXCJcIiwgJHByb3BlcnR5LWNsYXNzKTtcblxuICAgIC8vIFVzZSBjdXN0b20gQ1NTIHZhcmlhYmxlIG5hbWUgaWYgcHJlc2VudCwgb3RoZXJ3aXNlIGRlZmF1bHQgdG8gYGNsYXNzYFxuICAgICRjc3MtdmFyaWFibGUtbmFtZTogaWYobWFwLWhhcy1rZXkoJHV0aWxpdHksIGNzcy12YXJpYWJsZS1uYW1lKSwgbWFwLWdldCgkdXRpbGl0eSwgY3NzLXZhcmlhYmxlLW5hbWUpLCBtYXAtZ2V0KCR1dGlsaXR5LCBjbGFzcykpO1xuXG4gICAgLy8gU3RhdGUgcGFyYW1zIHRvIGdlbmVyYXRlIHBzZXVkby1jbGFzc2VzXG4gICAgJHN0YXRlOiBpZihtYXAtaGFzLWtleSgkdXRpbGl0eSwgc3RhdGUpLCBtYXAtZ2V0KCR1dGlsaXR5LCBzdGF0ZSksICgpKTtcblxuICAgICRpbmZpeDogaWYoJHByb3BlcnR5LWNsYXNzID09IFwiXCIgYW5kIHN0ci1zbGljZSgkaW5maXgsIDEsIDEpID09IFwiLVwiLCBzdHItc2xpY2UoJGluZml4LCAyKSwgJGluZml4KTtcblxuICAgIC8vIERvbid0IHByZWZpeCBpZiB2YWx1ZSBrZXkgaXMgbnVsbCAoZS5nLiB3aXRoIHNoYWRvdyBjbGFzcylcbiAgICAkcHJvcGVydHktY2xhc3MtbW9kaWZpZXI6IGlmKCRrZXksIGlmKCRwcm9wZXJ0eS1jbGFzcyA9PSBcIlwiIGFuZCAkaW5maXggPT0gXCJcIiwgXCJcIiwgXCItXCIpICsgJGtleSwgXCJcIik7XG5cbiAgICBAaWYgbWFwLWdldCgkdXRpbGl0eSwgcmZzKSB7XG4gICAgICAvLyBJbnNpZGUgdGhlIG1lZGlhIHF1ZXJ5XG4gICAgICBAaWYgJGlzLXJmcy1tZWRpYS1xdWVyeSB7XG4gICAgICAgICR2YWw6IHJmcy12YWx1ZSgkdmFsdWUpO1xuXG4gICAgICAgIC8vIERvIG5vdCByZW5kZXIgYW55dGhpbmcgaWYgZmx1aWQgYW5kIG5vbiBmbHVpZCB2YWx1ZXMgYXJlIHRoZSBzYW1lXG4gICAgICAgICR2YWx1ZTogaWYoJHZhbCA9PSByZnMtZmx1aWQtdmFsdWUoJHZhbHVlKSwgbnVsbCwgJHZhbCk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICR2YWx1ZTogcmZzLWZsdWlkLXZhbHVlKCR2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJGlzLWNzcy12YXI6IG1hcC1nZXQoJHV0aWxpdHksIGNzcy12YXIpO1xuICAgICRpcy1sb2NhbC12YXJzOiBtYXAtZ2V0KCR1dGlsaXR5LCBsb2NhbC12YXJzKTtcbiAgICAkaXMtcnRsOiBtYXAtZ2V0KCR1dGlsaXR5LCBydGwpO1xuXG4gICAgQGlmICR2YWx1ZSAhPSBudWxsIHtcbiAgICAgIEBpZiAkaXMtcnRsID09IGZhbHNlIHtcbiAgICAgICAgLyogcnRsOmJlZ2luOnJlbW92ZSAqL1xuICAgICAgfVxuXG4gICAgICBAaWYgJGlzLWNzcy12YXIge1xuICAgICAgICAuI3skcHJvcGVydHktY2xhc3MgKyAkaW5maXggKyAkcHJvcGVydHktY2xhc3MtbW9kaWZpZXJ9IHtcbiAgICAgICAgICAtLSN7JHByZWZpeH0jeyRjc3MtdmFyaWFibGUtbmFtZX06ICN7JHZhbHVlfTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRwc2V1ZG8gaW4gJHN0YXRlIHtcbiAgICAgICAgICAuI3skcHJvcGVydHktY2xhc3MgKyAkaW5maXggKyAkcHJvcGVydHktY2xhc3MtbW9kaWZpZXJ9LSN7JHBzZXVkb306I3skcHNldWRvfSB7XG4gICAgICAgICAgICAtLSN7JHByZWZpeH0jeyRjc3MtdmFyaWFibGUtbmFtZX06ICN7JHZhbHVlfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAuI3skcHJvcGVydHktY2xhc3MgKyAkaW5maXggKyAkcHJvcGVydHktY2xhc3MtbW9kaWZpZXJ9IHtcbiAgICAgICAgICBAZWFjaCAkcHJvcGVydHkgaW4gJHByb3BlcnRpZXMge1xuICAgICAgICAgICAgQGlmICRpcy1sb2NhbC12YXJzIHtcbiAgICAgICAgICAgICAgQGVhY2ggJGxvY2FsLXZhciwgJHZhcmlhYmxlIGluICRpcy1sb2NhbC12YXJzIHtcbiAgICAgICAgICAgICAgICAtLSN7JHByZWZpeH0jeyRsb2NhbC12YXJ9OiAjeyR2YXJpYWJsZX07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlIGlmKCRlbmFibGUtaW1wb3J0YW50LXV0aWxpdGllcywgIWltcG9ydGFudCwgbnVsbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJHBzZXVkbyBpbiAkc3RhdGUge1xuICAgICAgICAgIC4jeyRwcm9wZXJ0eS1jbGFzcyArICRpbmZpeCArICRwcm9wZXJ0eS1jbGFzcy1tb2RpZmllcn0tI3skcHNldWRvfTojeyRwc2V1ZG99IHtcbiAgICAgICAgICAgIEBlYWNoICRwcm9wZXJ0eSBpbiAkcHJvcGVydGllcyB7XG4gICAgICAgICAgICAgIEBpZiAkaXMtbG9jYWwtdmFycyB7XG4gICAgICAgICAgICAgICAgQGVhY2ggJGxvY2FsLXZhciwgJHZhcmlhYmxlIGluICRpcy1sb2NhbC12YXJzIHtcbiAgICAgICAgICAgICAgICAgIC0tI3skcHJlZml4fSN7JGxvY2FsLXZhcn06ICN7JHZhcmlhYmxlfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgI3skcHJvcGVydHl9OiAkdmFsdWUgaWYoJGVuYWJsZS1pbXBvcnRhbnQtdXRpbGl0aWVzLCAhaW1wb3J0YW50LCBudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGlmICRpcy1ydGwgPT0gZmFsc2Uge1xuICAgICAgICAvKiBydGw6ZW5kOnJlbW92ZSAqL1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gTG9vcCBvdmVyIGVhY2ggYnJlYWtwb2ludFxuQGVhY2ggJGJyZWFrcG9pbnQgaW4gbWFwLWtleXMoJGdyaWQtYnJlYWtwb2ludHMpIHtcblxuICAvLyBHZW5lcmF0ZSBtZWRpYSBxdWVyeSBpZiBuZWVkZWRcbiAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludCkge1xuICAgICRpbmZpeDogYnJlYWtwb2ludC1pbmZpeCgkYnJlYWtwb2ludCwgJGdyaWQtYnJlYWtwb2ludHMpO1xuXG4gICAgLy8gTG9vcCBvdmVyIGVhY2ggdXRpbGl0eSBwcm9wZXJ0eVxuICAgIEBlYWNoICRrZXksICR1dGlsaXR5IGluICR1dGlsaXRpZXMge1xuICAgICAgLy8gVGhlIHV0aWxpdHkgY2FuIGJlIGRpc2FibGVkIHdpdGggYGZhbHNlYCwgdGh1cyBjaGVjayBpZiB0aGUgdXRpbGl0eSBpcyBhIG1hcCBmaXJzdFxuICAgICAgLy8gT25seSBwcm9jZWVkIGlmIHJlc3BvbnNpdmUgbWVkaWEgcXVlcmllcyBhcmUgZW5hYmxlZCBvciBpZiBpdCdzIHRoZSBiYXNlIG1lZGlhIHF1ZXJ5XG4gICAgICBAaWYgdHlwZS1vZigkdXRpbGl0eSkgPT0gXCJtYXBcIiBhbmQgKG1hcC1nZXQoJHV0aWxpdHksIHJlc3BvbnNpdmUpIG9yICRpbmZpeCA9PSBcIlwiKSB7XG4gICAgICAgIEBpbmNsdWRlIGdlbmVyYXRlLXV0aWxpdHkoJHV0aWxpdHksICRpbmZpeCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFJGUyByZXNjYWxpbmdcbkBtZWRpYSAobWluLXdpZHRoOiAkcmZzLW1xLXZhbHVlKSB7XG4gIEBlYWNoICRicmVha3BvaW50IGluIG1hcC1rZXlzKCRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICAgJGluZml4OiBicmVha3BvaW50LWluZml4KCRicmVha3BvaW50LCAkZ3JpZC1icmVha3BvaW50cyk7XG5cbiAgICBAaWYgKG1hcC1nZXQoJGdyaWQtYnJlYWtwb2ludHMsICRicmVha3BvaW50KSA8ICRyZnMtYnJlYWtwb2ludCkge1xuICAgICAgLy8gTG9vcCBvdmVyIGVhY2ggdXRpbGl0eSBwcm9wZXJ0eVxuICAgICAgQGVhY2ggJGtleSwgJHV0aWxpdHkgaW4gJHV0aWxpdGllcyB7XG4gICAgICAgIC8vIFRoZSB1dGlsaXR5IGNhbiBiZSBkaXNhYmxlZCB3aXRoIGBmYWxzZWAsIHRodXMgY2hlY2sgaWYgdGhlIHV0aWxpdHkgaXMgYSBtYXAgZmlyc3RcbiAgICAgICAgLy8gT25seSBwcm9jZWVkIGlmIHJlc3BvbnNpdmUgbWVkaWEgcXVlcmllcyBhcmUgZW5hYmxlZCBvciBpZiBpdCdzIHRoZSBiYXNlIG1lZGlhIHF1ZXJ5XG4gICAgICAgIEBpZiB0eXBlLW9mKCR1dGlsaXR5KSA9PSBcIm1hcFwiIGFuZCBtYXAtZ2V0KCR1dGlsaXR5LCByZnMpIGFuZCAobWFwLWdldCgkdXRpbGl0eSwgcmVzcG9uc2l2ZSkgb3IgJGluZml4ID09IFwiXCIpIHtcbiAgICAgICAgICBAaW5jbHVkZSBnZW5lcmF0ZS11dGlsaXR5KCR1dGlsaXR5LCAkaW5maXgsIHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuLy8gUHJpbnQgdXRpbGl0aWVzXG5AbWVkaWEgcHJpbnQge1xuICBAZWFjaCAka2V5LCAkdXRpbGl0eSBpbiAkdXRpbGl0aWVzIHtcbiAgICAvLyBUaGUgdXRpbGl0eSBjYW4gYmUgZGlzYWJsZWQgd2l0aCBgZmFsc2VgLCB0aHVzIGNoZWNrIGlmIHRoZSB1dGlsaXR5IGlzIGEgbWFwIGZpcnN0XG4gICAgLy8gVGhlbiBjaGVjayBpZiB0aGUgdXRpbGl0eSBuZWVkcyBwcmludCBzdHlsZXNcbiAgICBAaWYgdHlwZS1vZigkdXRpbGl0eSkgPT0gXCJtYXBcIiBhbmQgbWFwLWdldCgkdXRpbGl0eSwgcHJpbnQpID09IHRydWUge1xuICAgICAgQGluY2x1ZGUgZ2VuZXJhdGUtdXRpbGl0eSgkdXRpbGl0eSwgXCItcHJpbnRcIik7XG4gICAgfVxuICB9XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIHNwYWNpbmdcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4gICAvKmxvb3Agb3ZlciBhbGwgYnJlYWtpbmcgcG9pbnRzKi9cbiAgIEBlYWNoICRxdWVyeV9uYW1lLCAkcXVlcnlfdmFsdWUgaW4gJGdyaWQtYnJlYWtwb2ludHMgeyAgICBcbiAgICAgIFxuICAgIC8vaWYgYnJlYWtpbmcgcG9pbnQgbm90IGVtcHR5XG4gICAgICBAaWYgbWFwLWdldCgkc3BhY2VzLCAkcXVlcnlfbmFtZSkgIT0gbnVsbCB7ICAgICAgICAgICAgXG4gICAgICAgICBAaWYgJHF1ZXJ5X3ZhbHVlID09IDAge1xuICAgICAgICAgICAgQGRlYnVnICRxdWVyeV92YWx1ZTtcbiAgICAgICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gbWFwLWdldCgkc3BhY2VzLCAkcXVlcnlfbmFtZSkge1xuICAgICAgICAgICAgICAgQGlmICRuYW1lICE9IG51bGwge1xuICAgICAgICAgICAgICAgLm1iLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgIC5tdC0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgIC5wLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICBwYWRkaW5nOiAkdmFsdWU7XG4gICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAucGwtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAucHItLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgLnB0LS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAucGItLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgIEBkZWJ1ZyAkcXVlcnlfdmFsdWU7XG4gICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRxdWVyeV92YWx1ZSl7XG4gICAgICAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiBtYXAtZ2V0KCRzcGFjZXMsICRxdWVyeV9uYW1lKSB7XG4gICAgICAgICAgICAgICAgQGlmICRuYW1lICE9IG51bGwge1xuICAgICAgICAgICAgICAgICAgICAgLnB0LS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAucGItLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgIC5tdC0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAubWItLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICR2YWx1ZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgICAgICAgICAgIC5tYi0jeyRxdWVyeV9uYW1lfS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgLnAtI3skcXVlcnlfbmFtZX0tLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICR2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgLnBsLSN7JHF1ZXJ5X25hbWV9LS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICR2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgLnB0LSN7JHF1ZXJ5X25hbWV9LS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgIC5wYi0jeyRxdWVyeV9uYW1lfS0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICR2YWx1ZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgIH1cbiAgICB9IFxuIH0iLCJAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRjb2xvcnMge1xuICAgLmJnLSN7JG5hbWV9IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR2YWx1ZTtcbiAgIH1cbn1cblxuLmJnLWNvdmVyIHtcbiAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG59XG5cbi5iZy1jZW50ZXItcmlnaHQge1xuICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIHJpZ2h0ICFpbXBvcnRhbnQ7XG59XG5cbi5iZy1jZW50ZXItbGVmdCB7XG4gICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgbGVmdCAhaW1wb3J0YW50O1xufVxuXG4uYmctY2VudGVyLWNlbnRlciB7XG4gICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyICFpbXBvcnRhbnQ7XG59XG5cbi5iZy10b3AtbGVmdCB7XG4gICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgbGVmdCAhaW1wb3J0YW50O1xufVxuXG4uYmctdG9wLXJpZ2h0IHtcbiAgIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCByaWdodCAhaW1wb3J0YW50O1xufVxuXG4uYmctYm90dG9tLXJpZ2h0IHtcbiAgIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSByaWdodCAhaW1wb3J0YW50O1xufVxuLmJnLWJvdHRvbS1sZWZ0IHtcbiAgIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSBsZWZ0ICFpbXBvcnRhbnQ7XG59XG4iLCIubG9hZGluZyB7XG4gICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICBvcGFjaXR5OiAwLjU7XG4gICB9XG5cbiAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nMzgnIGhlaWdodD0nMzgnIHZpZXdCb3g9JzAgMCAzOCAzOCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBzdHJva2U9JyUyM2FhYSclM0UlM0NnIGZpbGw9J25vbmUnIGZpbGwtcnVsZT0nZXZlbm9kZCclM0UlM0NnIHRyYW5zZm9ybT0ndHJhbnNsYXRlKDEgMSknIHN0cm9rZS13aWR0aD0nMiclM0UlM0NjaXJjbGUgc3Ryb2tlLW9wYWNpdHk9Jy41JyBjeD0nMTgnIGN5PScxOCcgcj0nMTgnLyUzRSUzQ3BhdGggZD0nTTM2IDE4YzAtOS45NC04LjA2LTE4LTE4LTE4JyUzRSUzQ2FuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0ndHJhbnNmb3JtJyB0eXBlPSdyb3RhdGUnIGZyb209JzAgMTggMTgnIHRvPSczNjAgMTggMTgnIGR1cj0nMXMnIHJlcGVhdENvdW50PSdpbmRlZmluaXRlJy8lM0UlM0MvcGF0aCUzRSUzQy9nJTNFJTNDL2clM0UlM0Mvc3ZnJTNFXCIpO1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogNTBweDtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICB9XG59XG5cbi53LTEwMCB7XG4gICB3aWR0aDogMTAwJTtcbn1cblxuLmgtMTAwIHtcbiAgIGhlaWdodDogMTAwJTtcbn1cblxuLmgtYXV0byB7XG4gICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmNlbnRlci1hYnNvbHV0ZS1ob3Jpem9udGFsIHtcbiAgIGxlZnQ6IDUwJTtcbiAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbn1cblxuLnBvc2l0aW9uLWFic29sdXRlIHtcbiAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLnBvc2l0aW9uLXJlbGF0aXZlIHtcbiAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm92ZXJmbG93LWhpZGRlbiB7XG4gICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIGludHJvIGFuaW1hdGlvblxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbi5ob21lIHtcbiAgICNhbmltYXRpb25fY2FsZW1pLFxuICAgI2FuaW1hdGlvbl9qZXdlbHJ5IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICB9XG4gICAuYW5pbWF0aW9uIHtcbiAgICAgICNtYWluX2xvZ28ge1xuICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgIGFuaW1hdGlvbjogbG9nbyAycyBlYXNlLWluLW91dCA2cyBmb3J3YXJkcztcbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBsb2dvIHtcbiAgICAgICAgIDAlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICB9XG4gICAgICAgICAxMDAlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICNhbmltYXRpb25fY2FsZW1pIHtcbiAgICAgICAgIHN0cm9rZS1kYXNoYXJyYXk6IDIxNDcuNjtcbiAgICAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAyMTQ3LjY7XG4gICAgICAgICBhbmltYXRpb246IGNhbGVtaSA2cyBsaW5lYXIgZm9yd2FyZHM7XG4gICAgICAgICBmaWxsOiB0cmFuc3BhcmVudDtcbiAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgICAgQGtleWZyYW1lcyBjYWxlbWkge1xuICAgICAgICAgMCUge1xuICAgICAgICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDIxNDcuNjtcbiAgICAgICAgICAgIGZpbGw6IHRyYW5zcGFyZW50O1xuICAgICAgICAgfVxuICAgICAgICAgNDAlIHtcbiAgICAgICAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xuICAgICAgICAgICAgZmlsbDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICB9XG4gICAgICAgICAvLzRzXG4gICAgICAgICA2NyUge1xuICAgICAgICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XG4gICAgICAgICAgICBmaWxsOiB3aGl0ZTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICB9XG4gICAgICAgICA5MCUge1xuICAgICAgICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XG4gICAgICAgICAgICBmaWxsOiB3aGl0ZTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICB9XG4gICAgICAgICAvLzZzXG4gICAgICAgICAxMDAlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcbiAgICAgICAgICAgIGZpbGw6IHdoaXRlO1xuICAgICAgICAgfVxuICAgICAgfVxuICAgICAgI2FuaW1hdGlvbl9qZXdlbHJ5IHtcbiAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICBhbmltYXRpb246IGpld2VscnkgM3MgZWFzZS1pbi1vdXQgM3MgZm9yd2FyZHM7XG4gICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBqZXdlbHJ5IHtcbiAgICAgICAgIDAlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICB9XG4gICAgICAgICA4MCUge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgIH1cbiAgICAgICAgIDEwMCUge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgIH1cbiAgICAgIH1cbiAgIH1cbn1cblxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBzZWFyY2hcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4uc2VhcmNoLXN1Ym1pdCB7XG4gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICByaWdodDogMDtcbiAgIHRvcDogMDtcbiAgIHdpZHRoOiA0OHB4O1xufVxuXG4uc2VhcmNod3AtbGl2ZS1zZWFyY2gtcmVzdWx0cyB7XG4gICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIHNpeCk7XG4gICBib3JkZXItcmFkaXVzOiAwO1xuICAgY29sdW1uczogd2hpdGU7XG4gICBtYXgtaGVpZ2h0OiA3MHZoO1xuICAgaGVpZ2h0OiA3MHZoO1xuICAgYm9yZGVyOiAxcHggc29saWQgd2hpdGU7XG4gICBib3gtc2hhZG93OiBub25lO1xuXG4gICAuc2VhcmNod3AtbGl2ZS1zZWFyY2gtcmVzdWx0IHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB3aGl0ZTtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLnNlYXJjaHdwLWxpdmUtc2VhcmNoLXJlc3VsdC0taW1nIHtcbiAgICAgICAgIGltZyB7XG4gICAgICAgICAgICB3aWR0aDogNzBweDtcbiAgICAgICAgICAgIGhlaWdodDogNzBweDtcbiAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuc2VhcmNod3AtbGl2ZS1zZWFyY2gtcmVzdWx0LS1pbmZvIHtcbiAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgaDQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5zZWFyY2h3cC1saXZlLXNlYXJjaC1yZXN1bHQtLXRpdGxlIHtcbiAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cblxuICAgICAgLnNlYXJjaHdwLWxpdmUtc2VhcmNoLXJlc3VsdC0tZWNvbW1lcmNlIHtcbiAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICB9XG4gICB9XG59XG4iLCIvKiEgbm9ybWFsaXplLmNzcyB2My4wLjMgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbi8qKlxuICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAqIDIuIFByZXZlbnQgaU9TIGFuZCBJRSB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIGRldmljZSBvcmllbnRhdGlvbiBjaGFuZ2UsXG4gKiAgICB3aXRob3V0IGRpc2FibGluZyB1c2VyIHpvb20uXG4gKi9cblxuIGh0bWwge1xuICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiB9XG4gXG4gLyoqXG4gICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuICAqL1xuIFxuIGJvZHkge1xuICAgbWFyZ2luOiAwO1xuIH1cbiBcbiAvKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4gICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbiBcbiAvKipcbiAgKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxuICAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gICogYW5kIEZpcmVmb3guXG4gICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cbiAgKi9cbiBcbiBhcnRpY2xlLFxuIGFzaWRlLFxuIGRldGFpbHMsXG4gZmlnY2FwdGlvbixcbiBmaWd1cmUsXG4gZm9vdGVyLFxuIGhlYWRlcixcbiBtYWluLFxuIG1lbnUsXG4gbmF2LFxuIHNlY3Rpb24sXG4gc3VtbWFyeSB7XG4gICBkaXNwbGF5OiBibG9jaztcbiB9XG4gXG4gLyoqXG4gICogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAgKiAyLiBOb3JtYWxpemUgdmVydGljYWwgYWxpZ25tZW50IG9mIGBwcm9ncmVzc2AgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gICovXG4gXG4gYXVkaW8sXG4gY2FudmFzLFxuIHByb2dyZXNzLFxuIHZpZGVvIHtcbiAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogMSAqL1xuICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG4gfVxuIFxuIC8qKlxuICAqIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4gICogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cbiAgKi9cbiBcbiBhdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICAgZGlzcGxheTogbm9uZTtcbiAgIGhlaWdodDogMDtcbiB9XG4gXG4gLyoqXG4gICogQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLlxuICAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAgKi9cbiBcbiBbaGlkZGVuXSxcbiB0ZW1wbGF0ZSB7XG4gICBkaXNwbGF5OiBub25lO1xuIH1cbiBcbiAvKiBMaW5rc1xuICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4gXG4gLyoqXG4gICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gICovXG4gXG4gYSB7XG4gICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiB9XG4gXG4gLyoqXG4gICogSW1wcm92ZSByZWFkYWJpbGl0eSBvZiBmb2N1c2VkIGVsZW1lbnRzIHdoZW4gdGhleSBhcmUgYWxzbyBpbiBhblxuICAqIGFjdGl2ZS9ob3ZlciBzdGF0ZS5cbiAgKi9cbiBcbiBhOmFjdGl2ZSxcbiBhOmhvdmVyIHtcbiAgIG91dGxpbmU6IDA7XG4gfVxuIFxuIC8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbiBcbiAvKipcbiAgKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gICovXG4gXG4gYWJiclt0aXRsZV0ge1xuICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbiB9XG4gXG4gLyoqXG4gICogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICAqL1xuIFxuIGIsXG4gc3Ryb25nIHtcbiAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuIH1cbiBcbiAvKipcbiAgKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gICovXG4gXG4gZGZuIHtcbiAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiB9XG4gXG4gLyoqXG4gICogQWRkcmVzcyB2YXJpYWJsZSBgaDFgIGZvbnQtc2l6ZSBhbmQgbWFyZ2luIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYFxuICAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAgKi9cbiBcbiBoMSB7XG4gICBmb250LXNpemU6IDJlbTtcbiAgIG1hcmdpbjogMC42N2VtIDA7XG4gfVxuIFxuIC8qKlxuICAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gICovXG4gXG4gbWFyayB7XG4gICBiYWNrZ3JvdW5kOiAjZmYwO1xuICAgY29sb3I6ICMwMDA7XG4gfVxuIFxuIC8qKlxuICAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAqL1xuIFxuIHNtYWxsIHtcbiAgIGZvbnQtc2l6ZTogODAlO1xuIH1cbiBcbiAvKipcbiAgKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gICovXG4gXG4gc3ViLFxuIHN1cCB7XG4gICBmb250LXNpemU6IDc1JTtcbiAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuIH1cbiBcbiBzdXAge1xuICAgdG9wOiAtMC41ZW07XG4gfVxuIFxuIHN1YiB7XG4gICBib3R0b206IC0wLjI1ZW07XG4gfVxuIFxuIC8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuIFxuIC8qKlxuICAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuICAqL1xuIFxuIGltZyB7XG4gICBib3JkZXI6IDA7XG4gfVxuIFxuIC8qKlxuICAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuICAqL1xuIFxuIHN2Zzpub3QoOnJvb3QpIHtcbiAgIG92ZXJmbG93OiBoaWRkZW47XG4gfVxuIFxuIC8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuIFxuIC8qKlxuICAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuICAqL1xuIFxuIGZpZ3VyZSB7XG4gICBtYXJnaW46IDFlbSA0MHB4O1xuIH1cbiBcbiAvKipcbiAgKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG4gICovXG4gXG4gaHIge1xuICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICBoZWlnaHQ6IDA7XG4gfVxuIFxuIC8qKlxuICAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICAqL1xuIFxuIHByZSB7XG4gICBvdmVyZmxvdzogYXV0bztcbiB9XG4gXG4gLyoqXG4gICogQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAqL1xuIFxuIGNvZGUsXG4ga2JkLFxuIHByZSxcbiBzYW1wIHtcbiAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgIGZvbnQtc2l6ZTogMWVtO1xuIH1cbiBcbiAvKiBGb3Jtc1xuICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4gXG4gLyoqXG4gICogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbiAgKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4gICovXG4gXG4gLyoqXG4gICogMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICAqICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuICAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gICogMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gICovXG4gXG4gYnV0dG9uLFxuIGlucHV0LFxuIG9wdGdyb3VwLFxuIHNlbGVjdCxcbiB0ZXh0YXJlYSB7XG4gICBjb2xvcjogaW5oZXJpdDsgLyogMSAqL1xuICAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xuICAgbWFyZ2luOiAwOyAvKiAzICovXG4gfVxuIFxuIC8qKlxuICAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuICAqL1xuIFxuIGJ1dHRvbiB7XG4gICBvdmVyZmxvdzogdmlzaWJsZTtcbiB9XG4gXG4gLyoqXG4gICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuICAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4gICogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cbiAgKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4gICovXG4gXG4gYnV0dG9uLFxuIHNlbGVjdCB7XG4gICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiB9XG4gXG4gLyoqXG4gICogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcbiAgKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbiAgKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiAgKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gICovXG4gXG4gYnV0dG9uLFxuIGh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuIGlucHV0W3R5cGU9XCJyZXNldFwiXSxcbiBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gICBjdXJzb3I6IHBvaW50ZXI7IC8qIDMgKi9cbiB9XG4gXG4gLyoqXG4gICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiAgKi9cbiBcbiBidXR0b25bZGlzYWJsZWRdLFxuIGh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgIGN1cnNvcjogZGVmYXVsdDtcbiB9XG4gXG4gLyoqXG4gICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuICAqL1xuIFxuIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbiBpbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICBib3JkZXI6IDA7XG4gICBwYWRkaW5nOiAwO1xuIH1cbiBcbiAvKipcbiAgKiBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4gICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gICovXG4gXG4gaW5wdXQge1xuICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiB9XG4gXG4gLyoqXG4gICogSXQncyByZWNvbW1lbmRlZCB0aGF0IHlvdSBkb24ndCBhdHRlbXB0IHRvIHN0eWxlIHRoZXNlIGVsZW1lbnRzLlxuICAqIEZpcmVmb3gncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJlc3BlY3QgYm94LXNpemluZywgcGFkZGluZywgb3Igd2lkdGguXG4gICpcbiAgKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxuICAqIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXG4gICovXG4gXG4gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gICBwYWRkaW5nOiAwOyAvKiAyICovXG4gfVxuIFxuIC8qKlxuICAqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4gICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAgKiBkZWNyZW1lbnQgYnV0dG9uIHRvIGNoYW5nZSBmcm9tIGBkZWZhdWx0YCB0byBgdGV4dGAuXG4gICovXG4gXG4gaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgIGhlaWdodDogYXV0bztcbiB9XG4gXG4gLyoqXG4gICogMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gICogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAgKi9cbiBcbiBpbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMiAqL1xuIH1cbiBcbiAvKipcbiAgKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbiAgKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4gICogcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxuICAqL1xuIFxuIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gfVxuIFxuIC8qKlxuICAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbiAgKi9cbiBcbiBmaWVsZHNldCB7XG4gICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICAgbWFyZ2luOiAwIDJweDtcbiAgIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbiB9XG4gXG4gLyoqXG4gICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICAqIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cbiAgKi9cbiBcbiBsZWdlbmQge1xuICAgYm9yZGVyOiAwOyAvKiAxICovXG4gICBwYWRkaW5nOiAwOyAvKiAyICovXG4gfVxuIFxuIC8qKlxuICAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gICovXG4gXG4gdGV4dGFyZWEge1xuICAgb3ZlcmZsb3c6IGF1dG87XG4gfVxuIFxuIC8qKlxuICAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAgKiBOT1RFOiB0aGUgZGVmYXVsdCBjYW5ub3Qgc2FmZWx5IGJlIGNoYW5nZWQgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cbiAgKi9cbiBcbiBvcHRncm91cCB7XG4gICBmb250LXdlaWdodDogYm9sZDtcbiB9XG4gXG4gLyogVGFibGVzXG4gICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbiBcbiAvKipcbiAgKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gICovXG4gXG4gdGFibGUge1xuICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgIGJvcmRlci1zcGFjaW5nOiAwO1xuIH1cbiBcbiB0ZCxcbiB0aCB7XG4gICBwYWRkaW5nOiAwO1xuIH0iLCJzdmcsXG5pbWcge1xuICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgZGlzcGxheTogYmxvY2s7XG4gICBoZWlnaHQ6IGF1dG87XG59XG5cbmlmcmFtZSB7XG4gICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbmZpZ3VyZSB7XG4gICBtYXJnaW46IDBweDtcbn1cblxudmlkZW8ge1xuICAgd2lkdGg6IDEwMCU7XG4gICBtYXgtd2lkdGg6IDEwMCU7XG4gICBoZWlnaHQ6IGF1dG87XG4gICBkaXNwbGF5OiBibG9jaztcblxuICAgJiNmcm9udHBhZ2Uge1xuICAgICAgaGVpZ2h0OiA2MHZoO1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICBvYmplY3QtcG9zaXRpb246IDUwJSAwO1xuXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogbWFwLWdldCgkZ3JpZC1icmVha3BvaW50cywgeGwpKSB7XG4gICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICB9XG4gICB9XG59XG5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gbGF6eVxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbi5sYXp5LWNvbnRhaW5lciB7XG4gICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQQ0V0TFNCQ2VTQlRZVzBnU0dWeVltVnlkQ0FvUUhOb1pYSmlLU3dnWm05eUlHVjJaWEo1YjI1bExpQk5iM0psSUVBZ2FIUjBjRG92TDJkdmJ5NW5iQzgzUVVwNllrd2dMUzArQ2p4emRtY2dkMmxrZEdnOUlqTTRJaUJvWldsbmFIUTlJak00SWlCMmFXVjNRbTk0UFNJd0lEQWdNemdnTXpnaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2MzUnliMnRsUFNJallXRmhJajRLSUNBZ0lEeG5JR1pwYkd3OUltNXZibVVpSUdacGJHd3RjblZzWlQwaVpYWmxibTlrWkNJK0NpQWdJQ0FnSUNBZ1BHY2dkSEpoYm5ObWIzSnRQU0owY21GdWMyeGhkR1VvTVNBeEtTSWdjM1J5YjJ0bExYZHBaSFJvUFNJeUlqNEtJQ0FnSUNBZ0lDQWdJQ0FnUEdOcGNtTnNaU0J6ZEhKdmEyVXRiM0JoWTJsMGVUMGlMalVpSUdONFBTSXhPQ0lnWTNrOUlqRTRJaUJ5UFNJeE9DSXZQZ29nSUNBZ0lDQWdJQ0FnSUNBOGNHRjBhQ0JrUFNKTk16WWdNVGhqTUMwNUxqazBMVGd1TURZdE1UZ3RNVGd0TVRnaVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BHRnVhVzFoZEdWVWNtRnVjMlp2Y20wS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmhkSFJ5YVdKMWRHVk9ZVzFsUFNKMGNtRnVjMlp2Y20waUNpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkSGx3WlQwaWNtOTBZWFJsSWdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHWnliMjA5SWpBZ01UZ2dNVGdpQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHODlJak0yTUNBeE9DQXhPQ0lLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCa2RYSTlJakZ6SWdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxjR1ZoZEVOdmRXNTBQU0pwYm1SbFptbHVhWFJsSWk4K0NpQWdJQ0FnSUNBZ0lDQWdJRHd2Y0dGMGFENEtJQ0FnSUNBZ0lDQThMMmMrQ2lBZ0lDQThMMmMrQ2p3dmMzWm5QZz09XCIpO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDUwcHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGdyZXkpO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSBtYXAtZ2V0KCR0aW1lcywgc2xvdyk7XG4gICB9XG5cbiAgICYubGF6eS1jb250YWluZXItLWxvYWRlZDphZnRlciB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgfVxuXG4gICBpbWcge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgIH1cblxuICAgJi5sYXp5LWNvbnRhaW5lci0tdHJhbnNwYXJlbnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICB9XG59XG5cbltkYXRhLWJnXSB7XG4gICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICBvdmVyZmxvdzogaGlkZGVuO1xuICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkY29sb3JzLCBCR2JsdWUpO1xuXG4gICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUENFdExTQkNlU0JUWVcwZ1NHVnlZbVZ5ZENBb1FITm9aWEppS1N3Z1ptOXlJR1YyWlhKNWIyNWxMaUJOYjNKbElFQWdhSFIwY0RvdkwyZHZieTVuYkM4M1FVcDZZa3dnTFMwK0NqeHpkbWNnZDJsa2RHZzlJak00SWlCb1pXbG5hSFE5SWpNNElpQjJhV1YzUW05NFBTSXdJREFnTXpnZ016Z2lJSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SWdjM1J5YjJ0bFBTSWpZV0ZoSWo0S0lDQWdJRHhuSUdacGJHdzlJbTV2Ym1VaUlHWnBiR3d0Y25Wc1pUMGlaWFpsYm05a1pDSStDaUFnSUNBZ0lDQWdQR2NnZEhKaGJuTm1iM0p0UFNKMGNtRnVjMnhoZEdVb01TQXhLU0lnYzNSeWIydGxMWGRwWkhSb1BTSXlJajRLSUNBZ0lDQWdJQ0FnSUNBZ1BHTnBjbU5zWlNCemRISnZhMlV0YjNCaFkybDBlVDBpTGpVaUlHTjRQU0l4T0NJZ1kzazlJakU0SWlCeVBTSXhPQ0l2UGdvZ0lDQWdJQ0FnSUNBZ0lDQThjR0YwYUNCa1BTSk5NellnTVRoak1DMDVMamswTFRndU1EWXRNVGd0TVRndE1UZ2lQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQR0Z1YVcxaGRHVlVjbUZ1YzJadmNtMEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JoZEhSeWFXSjFkR1ZPWVcxbFBTSjBjbUZ1YzJadmNtMGlDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEhsd1pUMGljbTkwWVhSbElnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1p5YjIwOUlqQWdNVGdnTVRnaUNpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkRzg5SWpNMk1DQXhPQ0F4T0NJS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmtkWEk5SWpGeklnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsY0dWaGRFTnZkVzUwUFNKcGJtUmxabWx1YVhSbElpOCtDaUFnSUNBZ0lDQWdJQ0FnSUR3dmNHRjBhRDRLSUNBZ0lDQWdJQ0E4TDJjK0NpQWdJQ0E4TDJjK0Nqd3ZjM1puUGc9PVwiKTtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAzMHB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkY29sb3JzLCBncmV5KTtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgbWFwLWdldCgkdGltZXMsIHNsb3cpLFxuICAgICAgICAgdG9wIDBzIGxpbmVhciBtYXAtZ2V0KCR0aW1lcywgc2xvdyk7XG4gICB9XG5cbiAgICYubGF6eS0tbG9hZGVkIHtcbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgIHRvcDogLTEwMDAlO1xuICAgICAgfVxuICAgfVxufVxuXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIGJhY2tncm91bmRzXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuLmJnLWNvdmVyIHtcbiAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG59XG5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8geW91dHViZVxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbi5qcy15b3V0dWJlLXZpZGVvIHtcbiAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgIC8vIHBhZGRpbmctYm90dG9tOiA1Ni4yNSUgIWltcG9ydGFudDtcbiAgIGltZyxcbiAgIGlmcmFtZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cztcbiAgIH1cblxuICAgaWZyYW1lIHtcbiAgICAgIHotaW5kZXg6IDI7XG5cbiAgICAgICYubG9hZGVkIHtcbiAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICB9XG59XG5cbi5pY29uLS12aWRlbzpub3QoLnZpZGVvLS1yZXZlYWxlZCkge1xuICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgY3Vyc29yOiBwb2ludGVyO1xuICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIGhlaWdodD1cIjIwcHhcIiB2ZXJzaW9uPVwiMS4xXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIHdpZHRoPVwiMjBweFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczpza2V0Y2g9XCJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnNcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIj48dGl0bGUvPjxkZXNjLz48ZGVmcy8+PGcgZmlsbD1cIm5vbmVcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgaWQ9XCJQYWdlLTFcIiBzdHJva2U9XCJub25lXCIgc3Ryb2tlLXdpZHRoPVwiMVwiPjxnIGZpbGw9XCIlMjNlNTY5NTZcIiBpZD1cIkljb25zLUFWXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKC0xMjYuMDAwMDAwLCAtODUuMDAwMDAwKVwiPjxnIGlkPVwicGxheS1jaXJjbGUtZmlsbFwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgxMjYuMDAwMDAwLCA4NS4wMDAwMDApXCI+PHBhdGggZD1cIk0xMCwwIEM0LjUsMCAwLDQuNSAwLDEwIEMwLDE1LjUgNC41LDIwIDEwLDIwIEMxNS41LDIwIDIwLDE1LjUgMjAsMTAgQzIwLDQuNSAxNS41LDAgMTAsMCBMMTAsMCBaIE04LDE0LjUgTDgsNS41IEwxNCwxMCBMOCwxNC41IEw4LDE0LjUgWlwiIGlkPVwiU2hhcGVcIi8+PC9nPjwvZz48L2c+PC9zdmc+Jyk7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjbGFtcCgzMHB4LCAzMCUsIDEwMHB4KTtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgICB6LWluZGV4OiAyO1xuICAgfVxuXG4gICAmOmhvdmVyIHtcbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgfVxuICAgfVxufVxuXG4udmlkZW8tLXJldmVhbCB7XG4gICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgIC52aWRlby0taGlkZGVuIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB6LWluZGV4OiAwO1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgIH1cblxuICAgLnZpZGVvX2NvdmVyIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICB9XG5cbiAgICYudmlkZW8tLXJldmVhbGVkIHtcbiAgICAgIC52aWRlb19jb3ZlciB7XG4gICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgIH1cbiAgIH1cbn1cbiIsIkBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHJhZGl1cyB7XG4gICAucmFkaXVzLSN7JG5hbWV9IHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICR2YWx1ZTtcbiAgIH1cbn1cblxuQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkY29sb3JzIHtcbiAgIC5ib3JkZXItdC0jeyRuYW1lfSB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHZhbHVlO1xuICAgfVxuICAgLmJvcmRlci1iLSN7JG5hbWV9IHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkdmFsdWU7XG4gICB9XG5cbiAgIC5ib3JkZXItI3skbmFtZX0ge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJHZhbHVlO1xuICAgfVxufVxuIiwibGFiZWwge1xuICAgZm9udC13ZWlnaHQ6IDAuODtcbiAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIHRoaXJkKTtcbn1cblxudGV4dGFyZWEsXG5pbnB1dFt0eXBlPVwidGV4dFwiXSxcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuaW5wdXRbdHlwZT1cInRlbFwiXSxcbmlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbnNlbGVjdCB7XG4gICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgIGhlaWdodDogNTBweDtcbiAgIGxpbmUtaGVpZ2h0OiA1MHB4O1xuICAgYm9yZGVyOiBub25lO1xuICAgcGFkZGluZzogMCAxNXB4O1xuICAgLy8gZGlzYWJsZSBkZWZhdWx0IGJyb3dzZXIgc3R5bGVzXG4gICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICBhcHBlYXJhbmNlOiBub25lO1xuICAgYm94LXNoYWRvdzogbm9uZTtcbiAgIG1heC13aWR0aDogMTAwJTtcbiAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICBib3JkZXItYm90dG9tOiAxcHggc29saWQgbWFwLWdldCgkY29sb3JzLCBiYXNlKTtcbiAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGJhc2UpO1xuXG4gICAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICB9XG59XG5cbiNzZWFyY2gge1xuICAgdGV4dGFyZWEsXG4gICBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbiAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG4gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuICAgaW5wdXRbdHlwZT1cInRlbFwiXSxcbiAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbiAgIHNlbGVjdCB7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgbWFwLWdldCgkY29sb3JzLCBwcmltYXJ5KTtcbiAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIHByaW1hcnkpO1xuICAgfVxufVxuXG4uaGFzLXZhbGlkYXRpb24tZXJyb3Ige1xuICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAmOmlzKGxhYmVsKSB7XG4gICAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBkYW5nZXIpO1xuICAgfVxuXG4gICBpbnB1dCB7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCBtYXAtZ2V0KCRjb2xvcnMsIGRhbmdlcik7XG4gICB9XG5cbiAgIC52YWxpZGF0aW9uLWVycm9yIHtcbiAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGRhbmdlcik7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICB9XG59XG5cbnRleHRhcmVhIHtcbiAgIGhlaWdodDogMzAwcHg7XG4gICBsaW5lLWhlaWdodDogMjBweDtcbn1cblxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICY6Y2hlY2tlZCB7XG4gICAgICArIGxhYmVsIHtcbiAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgIH1cbiAgICAgIH1cbiAgIH1cblxuICAgKyBsYWJlbCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgaGVpZ2h0OiAwLjY1ZW07XG4gICAgICAgICB3aWR0aDogMC42NWVtO1xuICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB3aGl0ZTtcbiAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cblxuICAgICAgJjphZnRlciB7XG4gICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgaGVpZ2h0OiAwLjM1ZW07XG4gICAgICAgICB3aWR0aDogMC4xOGVtO1xuICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHdoaXRlO1xuICAgICAgICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgd2hpdGU7XG4gICAgICAgICBsZWZ0OiAwLjI1ZW07XG4gICAgICAgICB0b3A6IDAuMjdlbTtcbiAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XG4gICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICB9XG4gICB9XG59XG5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gU09SVElOR1xuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbi5zdG9yZWZyb250LXNvcnRpbmcge1xuICAgZGlzcGxheTogZmxleDtcbiAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICBmbGV4LXdyYXA6IHdyYXA7XG4gICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG5cbiAgIC5zZWxlY3Qtd3JhcHBlciB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBzZWxlY3Qge1xuICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkY29sb3JzLCBzZWNvbmRhcnkpO1xuICAgICAgICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgc2Vjb25kYXJ5KTtcbiAgICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7XG4gICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgICAgIH1cblxuICAgICAgLy8gYWRkIGFuIGFycm93IHRvIHRoZSBzZWxlY3RcbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICByaWdodDogMTVweDtcbiAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICBib3JkZXItdG9wOiA1cHggc29saWQgbWFwLWdldCgkY29sb3JzLCBzZWNvbmRhcnkpO1xuICAgICAgICAgYm9yZGVyLXJpZ2h0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgfVxuICAgfVxuXG4gICAud29vY29tbWVyY2UtcmVzdWx0LWNvdW50IHtcbiAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIHNlY29uZGFyeSk7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgfVxuXG4gICAud29vY29tbWVyY2UtcGFnaW5hdGlvbiB7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIC5wYWdlLW51bWJlcnMge1xuICAgICAgICAgbGkgLnBhZ2UtbnVtYmVycyB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJGNvbG9ycywgc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIHNlY29uZGFyeSk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuXG4gICAgICAgICAgICAmLmN1cnJlbnQge1xuICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkY29sb3JzLCBzZWNvbmRhcnkpO1xuICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbWFwLWdldCgkY29sb3JzLCBzZWNvbmRhcnkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJGNvbG9ycywgc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5uZXh0LFxuICAgICAgICAgICAgJi5wcmV2IHtcbiAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgIH1cbiAgICAgIH1cbiAgIH1cbn1cbiIsIiViYXNlLXRleHQge1xuICAgZm9udC1mYW1pbHk6IFwiTGF0b1wiO1xuICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgIHRleHQtcmVuZGVyaW5nOiBnZW9tZXRyaWNQcmVjaXNpb247XG4gICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBiYXNlKTtcbn1cbiIsIi8qbG9vcCBvdmVyIGFsbCBicmVha2luZyBwb2ludHMqL1xuQGVhY2ggJHF1ZXJ5X25hbWUsICRxdWVyeV92YWx1ZSBpbiAkZ3JpZC1icmVha3BvaW50cyB7XG4gICAvL2lmIGJyZWFraW5nIHBvaW50IG5vdCBlbXB0eSAoPSBmYWxzZSlcbiAgIEBpZiBtYXAtZ2V0KCRidXR0b25zLCAkcXVlcnlfbmFtZSkgIT0gbnVsbCB7XG4gICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluIG1hcC1kZWVwLWdldCgkYnV0dG9ucywgJHF1ZXJ5X25hbWUpIHtcbiAgICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiBtYXAtZ2V0KCRncmlkLWJyZWFrcG9pbnRzLCAkcXVlcnlfbmFtZSkpIHtcbiAgICAgICAgICAgIC5idG4tLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgIEBpZiAkdmFsdWUgIT0gbnVsbCB7XG4gICAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1kZWVwLWdldCgkdmFsdWUsIGZvbnQtc2l6ZSk7XG4gICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICBAaWYgJHZhbHVlICE9IG51bGwgYW5kIG1hcC1kZWVwLWdldCgkdmFsdWUsIGxpbmUtaGVpZ2h0KSAhPSBudWxsXG4gICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogbWFwLWRlZXAtZ2V0KCR2YWx1ZSwgbGluZS1oZWlnaHQpO1xuICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgQGlmICR2YWx1ZSAhPSBudWxsIGFuZCBtYXAtZGVlcC1nZXQoJHZhbHVlLCBoZWlnaHQpICE9IG51bGwge1xuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBtYXAtZGVlcC1nZXQoJHZhbHVlLCBoZWlnaHQpO1xuICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgQGlmICR2YWx1ZSAhPVxuICAgICAgICAgICAgICAgICAgbnVsbCBhbmRcbiAgICAgICAgICAgICAgICAgIG1hcC1kZWVwLWdldCgkdmFsdWUsIGxldHRlci1zcGFjaW5nKSAhPVxuICAgICAgICAgICAgICAgICAgMHB4IGFuZFxuICAgICAgICAgICAgICAgICAgbWFwLWRlZXAtZ2V0KCR2YWx1ZSwgbGV0dGVyLXNwYWNpbmcpICE9XG4gICAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogbWFwLWRlZXAtZ2V0KCR2YWx1ZSwgbGV0dGVyLXNwYWNpbmcpO1xuICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgQGlmICR2YWx1ZSAhPSBudWxsIGFuZCBtYXAtZGVlcC1nZXQoJHZhbHVlLCBwYWRkaW5nKSAhPSBudWxsIHtcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1kZWVwLWdldCgkdmFsdWUsIHBhZGRpbmcpO1xuICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgfVxuICAgICAgfVxuICAgfVxufVxuXG4uYnRuIHtcbiAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgIG92ZXJmbG93OiBoaWRkZW47XG4gICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICBAbWVkaWEgKG1pbi13aWR0aDogbWFwLWdldCgkZ3JpZC1icmVha3BvaW50cywgeGwpKSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICB9XG4gICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIHNlY29uZGFyeSk7XG4gICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIG1hcC1nZXQoJHRpbWVzLCBmYXN0KTtcbiAgIGJvcmRlcjogbm9uZTtcbiAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgIGNvbG9yOiB3aGl0ZTtcbiAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgYm9yZGVyOiAycHggc29saWQgbWFwLWdldCgkY29sb3JzLCBzZWNvbmRhcnkpO1xuXG4gICAmOmhvdmVyIHtcbiAgICAgIG9wYWNpdHk6IDAuODtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgIH1cblxuICAgJi5idG4tLXdoaXRlIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLWNvbG9yOiB3aGl0ZTtcbiAgIH1cblxuICAgJi5sb2FkaW5nLFxuICAgJi5idG4tLWxvYWRpbmcge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nMzgnIGhlaWdodD0nMzgnIHZpZXdCb3g9JzAgMCAzOCAzOCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBzdHJva2U9JyUyM2ZmZiclM0UlM0NnIGZpbGw9J25vbmUnIGZpbGwtcnVsZT0nZXZlbm9kZCclM0UlM0NnIHRyYW5zZm9ybT0ndHJhbnNsYXRlKDEgMSknIHN0cm9rZS13aWR0aD0nMiclM0UlM0NjaXJjbGUgc3Ryb2tlLW9wYWNpdHk9Jy41JyBjeD0nMTgnIGN5PScxOCcgcj0nMTgnLyUzRSUzQ3BhdGggZD0nTTM2IDE4YzAtOS45NC04LjA2LTE4LTE4LTE4JyUzRSUzQ2FuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0ndHJhbnNmb3JtJyB0eXBlPSdyb3RhdGUnIGZyb209JzAgMTggMTgnIHRvPSczNjAgMTggMTgnIGR1cj0nMXMnIHJlcGVhdENvdW50PSdpbmRlZmluaXRlJy8lM0UlM0MvcGF0aCUzRSUzQy9nJTNFJTNDL2clM0UlM0Mvc3ZnJTNFXCIpO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDMwcHg7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblxuICAgICAgJjphZnRlciB7XG4gICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgfVxuXG4gICAmLmJ0bi0tc2Vjb25kYXJ5IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyOiAycHggc29saWQgbWFwLWdldCgkY29sb3JzLCBwcmltYXJ5KTtcbiAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIHByaW1hcnkpO1xuICAgfVxuXG4gICAmLmJ0bi0tZ3JleSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIG1hcC1nZXQoJGNvbG9ycywgdGhpcmQpO1xuICAgICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgdGhpcmQpO1xuXG4gICAgICAmLmxvYWRpbmcsXG4gICAgICAmLmJ0bi0tbG9hZGluZyB7XG4gICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPSczOCcgaGVpZ2h0PSczOCcgdmlld0JveD0nMCAwIDM4IDM4JyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHN0cm9rZT0nJTIzNDk1ODY3JyUzRSUzQ2cgZmlsbD0nbm9uZScgZmlsbC1ydWxlPSdldmVub2RkJyUzRSUzQ2cgdHJhbnNmb3JtPSd0cmFuc2xhdGUoMSAxKScgc3Ryb2tlLXdpZHRoPScyJyUzRSUzQ2NpcmNsZSBzdHJva2Utb3BhY2l0eT0nLjUnIGN4PScxOCcgY3k9JzE4JyByPScxOCcvJTNFJTNDcGF0aCBkPSdNMzYgMThjMC05Ljk0LTguMDYtMTgtMTgtMTgnJTNFJTNDYW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPSd0cmFuc2Zvcm0nIHR5cGU9J3JvdGF0ZScgZnJvbT0nMCAxOCAxOCcgdG89JzM2MCAxOCAxOCcgZHVyPScxcycgcmVwZWF0Q291bnQ9J2luZGVmaW5pdGUnLyUzRSUzQy9wYXRoJTNFJTNDL2clM0UlM0MvZyUzRSUzQy9zdmclM0VcIik7XG4gICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMzBweDtcbiAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgfVxuXG4gICAmLmJ0bi0tcmVzZXQge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbGluZS1oZWlnaHQ6IGF1dG87XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICB9XG59XG5cbi5hZGRlZF90b19jYXJ0IHtcbiAgIGRpc3BsYXk6IG5vbmU7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIEljb25zXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuLmljb24ge1xuICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgd2lkdGg6IDMwcHg7XG4gICBoZWlnaHQ6IDMwcHg7XG4gICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGdyZXlEYXJrKTtcbiAgIGJvcmRlcjogMnB4IHNvbGlkIG1hcC1nZXQoJGNvbG9ycywgZ3JleURhcmspO1xuICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgIHRyYW5zaXRpb246IGFsbCBtYXAtZ2V0KCR0aW1lcywgZmFzdCk7XG59XG5cbi5pY29uLXdpc2hsaXN0IHtcbiAgIHdpZHRoOiAzMHB4O1xufVxuXG4uaWNvbi0tc2VhcmNoIHtcbiAgIHdpZHRoOiAzOHB4O1xuICAgQG1lZGlhIChtaW4td2lkdGg6IG1hcC1nZXQoJGdyaWQtYnJlYWtwb2ludHMsIG1kKSkge1xuICAgICAgbWFyZ2luLXRvcDogLTNweDtcbiAgIH1cbn1cbiIsIi5pY29uLW1pY3JvIHtcbiAgIGZsZXgtc2hyaW5rOiAwO1xuICAgaGVpZ2h0OiAxZW07XG4gICB3aWR0aDogMWVtO1xuICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAmLmljb24tbWljcm8tLWxvY2F0aW9uIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzEyJyBoZWlnaHQ9JzE1JyB2aWV3Qm94PScwIDAgMTIgMTUnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGQ9J001LjY2NjcyIDBDMi41NDIyNyAwIDUuNzY4OTllLTA1IDIuNTQyMjEgNS43Njg5OWUtMDUgNS42NjMxMkMtMC4wMjA0ODQgMTAuMjI4MyA1LjQ1MTM5IDE0LjAxMzcgNS42NjY3MiAxNC4xNjY3QzUuNjY2NzIgMTQuMTY2NyAxMS4zNTM5IDEwLjIyODMgMTEuMzMzNCA1LjY2NjY3QzExLjMzMzQgMi41NDIyMSA4Ljc5MTE4IDAgNS42NjY3MiAwWk01LjY2NjcyIDguNUM0LjEwMTMxIDguNSAyLjgzMzM5IDcuMjMyMDggMi44MzMzOSA1LjY2NjY3QzIuODMzMzkgNC4xMDEyNSA0LjEwMTMxIDIuODMzMzMgNS42NjY3MiAyLjgzMzMzQzcuMjMyMTQgMi44MzMzMyA4LjUwMDA2IDQuMTAxMjUgOC41MDAwNiA1LjY2NjY3QzguNTAwMDYgNy4yMzIwOCA3LjIzMjE0IDguNSA1LjY2NjcyIDguNVonIGZpbGw9JyUyMzAxMUU0QScvJTNFJTNDL3N2ZyUzRVwiKTtcbiAgIH1cblxuICAgJi5pY29uLW1pY3JvLS1leHRlcm5hbC1saW5rIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzE2JyBoZWlnaHQ9JzE2JyB2aWV3Qm94PScwIDAgMTYgMTYnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NjaXJjbGUgY3g9JzcuODk0MycgY3k9JzcuODk0NjInIHI9JzcuMjUnIHRyYW5zZm9ybT0ncm90YXRlKC00Ni44NTY1IDcuODk0MyA3Ljg5NDYyKScgc3Ryb2tlPSclMjMwMTFFNEEnIHN0cm9rZS13aWR0aD0nMC41Jy8lM0UlM0NwYXRoIGZpbGwtcnVsZT0nZXZlbm9kZCcgY2xpcC1ydWxlPSdldmVub2RkJyBkPSdNMTAuMzEzMSA0Ljk3NDAxQzEwLjQxMjkgNC45NzI2NiAxMC41MDkyIDUuMDEwOTkgMTAuNTgwOCA1LjA4MDU4QzEwLjY1MjMgNS4xNTAxNiAxMC42OTMzIDUuMjQ1MyAxMC42OTQ3IDUuMzQ1MDVMMTAuNzU3MiA5Ljg1ODYyQzEwLjc1ODYgOS45NTgzOCAxMC43MjAzIDEwLjA1NDYgMTAuNjUwNiAxMC4xMjYxQzEwLjU4MSAxMC4xOTc2IDEwLjQ4NTggMTAuMjM4NSAxMC4zODYgMTAuMjM5OEMxMC4yODYyIDEwLjI0MTIgMTAuMTg5OSAxMC4yMDI5IDEwLjExODMgMTAuMTMzM0MxMC4wNDY4IDEwLjA2MzcgMTAuMDA1OCA5Ljk2ODU1IDEwLjAwNDQgOS44Njg3OUw5Ljk1NDQ3IDYuMjYzMjFMNS4wODEyOCAxMS4zOTAzQzUuMDQ2NzcgMTEuNDI1NyA1LjAwNTYxIDExLjQ1NCA0Ljk2MDE1IDExLjQ3MzZDNC45MTQ2OCAxMS40OTMxIDQuODY1ODEgMTEuNTAzNSA0LjgxNjMyIDExLjUwNDJDNC43NjY4MyAxMS41MDQ5IDQuNzE3NjkgMTEuNDk1OCA0LjY3MTcgMTEuNDc3NUM0LjYyNTcyIDExLjQ1OTIgNC41ODM3OSAxMS40MzIgNC41NDgzMSAxMS4zOTc1QzQuNTEyODMgMTEuMzYzIDQuNDg0NDkgMTEuMzIxOCA0LjQ2NDkyIDExLjI3NjRDNC40NDUzNSAxMS4yMzEgNC40MzQ5MiAxMS4xODIxIDQuNDM0MjQgMTEuMTMyN0M0LjQzMzU1IDExLjA4MzIgNC40NDI2MiAxMS4wMzQxIDQuNDYwOTMgMTAuOTg4MkM0LjQ3OTIzIDEwLjk0MjIgNC41MDY0MiAxMC45MDAzIDQuNTQwOTMgMTAuODY0OUw5LjQxNDg5IDUuNzM4NTVMNS44MDY3OSA1Ljc4NzNDNS43MDY5NyA1Ljc4ODY1IDUuNjEwNjggNS43NTAzMiA1LjUzOTEyIDUuNjgwNzNDNS40Njc1NSA1LjYxMTE1IDUuNDI2NTcgNS41MTYwMiA1LjQyNTE5IDUuNDE2MjZDNS40MjM4MSA1LjMxNjUgNS40NjIxNCA1LjIyMDMgNS41MzE3NSA1LjE0ODhDNS42MDEzNiA1LjA3NzMxIDUuNjk2NTUgNS4wMzYzOSA1Ljc5NjM3IDUuMDM1MDRMMTAuMzEzMSA0Ljk3NDAxWicgZmlsbD0nJTIzMDExRTRBJy8lM0UlM0Mvc3ZnJTNFXCIpO1xuICAgfVxuXG4gICAmLmljb24tbWljcm8tLWludGVybmFsLWxpbmsge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nMTYnIGhlaWdodD0nMTYnIHZpZXdCb3g9JzAgMCAxNiAxNicgZmlsbD0nbm9uZScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ2NpcmNsZSBjeD0nNy44OTQzJyBjeT0nNy44OTQ2Micgcj0nNy4yNScgdHJhbnNmb3JtPSdyb3RhdGUoLTQ2Ljg1NjUgNy44OTQzIDcuODk0NjIpJyBzdHJva2U9JyUyMzAxMUU0QScgc3Ryb2tlLXdpZHRoPScwLjUnLyUzRSUzQ3BhdGggZmlsbC1ydWxlPSdldmVub2RkJyBjbGlwLXJ1bGU9J2V2ZW5vZGQnIGQ9J00xMC4zMTMxIDQuOTc0MDFDMTAuNDEyOSA0Ljk3MjY2IDEwLjUwOTIgNS4wMTA5OSAxMC41ODA4IDUuMDgwNThDMTAuNjUyMyA1LjE1MDE2IDEwLjY5MzMgNS4yNDUzIDEwLjY5NDcgNS4zNDUwNUwxMC43NTcyIDkuODU4NjJDMTAuNzU4NiA5Ljk1ODM4IDEwLjcyMDMgMTAuMDU0NiAxMC42NTA2IDEwLjEyNjFDMTAuNTgxIDEwLjE5NzYgMTAuNDg1OCAxMC4yMzg1IDEwLjM4NiAxMC4yMzk4QzEwLjI4NjIgMTAuMjQxMiAxMC4xODk5IDEwLjIwMjkgMTAuMTE4MyAxMC4xMzMzQzEwLjA0NjggMTAuMDYzNyAxMC4wMDU4IDkuOTY4NTUgMTAuMDA0NCA5Ljg2ODc5TDkuOTU0NDcgNi4yNjMyMUw1LjA4MTI4IDExLjM5MDNDNS4wNDY3NyAxMS40MjU3IDUuMDA1NjEgMTEuNDU0IDQuOTYwMTUgMTEuNDczNkM0LjkxNDY4IDExLjQ5MzEgNC44NjU4MSAxMS41MDM1IDQuODE2MzIgMTEuNTA0MkM0Ljc2NjgzIDExLjUwNDkgNC43MTc2OSAxMS40OTU4IDQuNjcxNyAxMS40Nzc1QzQuNjI1NzIgMTEuNDU5MiA0LjU4Mzc5IDExLjQzMiA0LjU0ODMxIDExLjM5NzVDNC41MTI4MyAxMS4zNjMgNC40ODQ0OSAxMS4zMjE4IDQuNDY0OTIgMTEuMjc2NEM0LjQ0NTM1IDExLjIzMSA0LjQzNDkyIDExLjE4MjEgNC40MzQyNCAxMS4xMzI3QzQuNDMzNTUgMTEuMDgzMiA0LjQ0MjYyIDExLjAzNDEgNC40NjA5MyAxMC45ODgyQzQuNDc5MjMgMTAuOTQyMiA0LjUwNjQyIDEwLjkwMDMgNC41NDA5MyAxMC44NjQ5TDkuNDE0ODkgNS43Mzg1NUw1LjgwNjc5IDUuNzg3M0M1LjcwNjk3IDUuNzg4NjUgNS42MTA2OCA1Ljc1MDMyIDUuNTM5MTIgNS42ODA3M0M1LjQ2NzU1IDUuNjExMTUgNS40MjY1NyA1LjUxNjAyIDUuNDI1MTkgNS40MTYyNkM1LjQyMzgxIDUuMzE2NSA1LjQ2MjE0IDUuMjIwMyA1LjUzMTc1IDUuMTQ4OEM1LjYwMTM2IDUuMDc3MzEgNS42OTY1NSA1LjAzNjM5IDUuNzk2MzcgNS4wMzUwNEwxMC4zMTMxIDQuOTc0MDFaJyBmaWxsPSclMjMwMTFFNEEnLyUzRSUzQy9zdmclM0VcIik7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICB9XG4gICAmLmljb24tbWljcm8tLWVtYWlsIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzEzJyBoZWlnaHQ9JzEwJyB2aWV3Qm94PScwIDAgMTMgMTAnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGQ9J00xMi41IDIuODhWNy45Njg3NUMxMi41IDguNDg3NTkgMTIuMzAxNSA4Ljk4Njc3IDExLjk0NTIgOS4zNjM4OUMxMS41ODg5IDkuNzQxMDIgMTEuMTAxOCA5Ljk2NzUgMTAuNTgzNyA5Ljk5Njg4TDEwLjQ2ODggMTBIMi4wMzEyNUMxLjUxMjQxIDEwIDEuMDEzMjMgOS44MDE1MyAwLjYzNjEwNiA5LjQ0NTJDMC4yNTg5NzkgOS4wODg4OCAwLjAzMjQ5OTIgOC42MDE3NSAwLjAwMzEyNTA3IDguMDgzNzVMMCA3Ljk2ODc1VjIuODhMNi4wMzI1IDYuMDRDNi4wOTk2MSA2LjA3NTE1IDYuMTc0MjQgNi4wOTM1MSA2LjI1IDYuMDkzNTFDNi4zMjU3NiA2LjA5MzUxIDYuNDAwMzkgNi4wNzUxNSA2LjQ2NzUgNi4wNEwxMi41IDIuODhaTTIuMDMxMjUgMS40NzUzMmUtMDhIMTAuNDY4OEMxMC45NzIyIC02LjA2MzQyZS0wNSAxMS40NTc4IDAuMTg2ODcyIDExLjgzMTMgMC41MjQ1NDJDMTIuMjA0NyAwLjg2MjIxMiAxMi40Mzk1IDEuMzI2NTUgMTIuNDkgMS44Mjc1TDYuMjUgNS4wOTYyNUwwLjAxIDEuODI3NUMwLjA1ODQ1MjEgMS4zNDY0NSAwLjI3NjkwNiAwLjg5ODQ0OCAwLjYyNjA5NCAwLjU2NDAzOUMwLjk3NTI4MSAwLjIyOTYzIDEuNDMyMyAwLjAzMDc0MTkgMS45MTUgMC4wMDMxMjUwOUwyLjAzMTI1IDEuNDc1MzJlLTA4SDEwLjQ2ODhIMi4wMzEyNVonIGZpbGw9JyUyMzAxMUU0QScvJTNFJTNDL3N2ZyUzRVwiKTtcbiAgIH1cbn1cbiIsIi8qIGxhdG8tMzAwIC0gbGF0aW5fbGF0aW4tZXh0ICovXG5AZm9udC1mYWNlIHtcbiAgIGZvbnQtZGlzcGxheTogc3dhcDsgLyogQ2hlY2sgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL0Bmb250LWZhY2UvZm9udC1kaXNwbGF5IGZvciBvdGhlciBvcHRpb25zLiAqL1xuICAgZm9udC1mYW1pbHk6IFwiTGF0b1wiO1xuICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgIHNyYzogdXJsKFwiLi4vLi4vc3JjL2ZvbnRzL2xhdG8tdjI0LWxhdGluX2xhdGluLWV4dC0zMDAud29mZjJcIilcbiAgICAgICAgIGZvcm1hdChcIndvZmYyXCIpLFxuICAgICAgLyogQ2hyb21lIDM2KywgT3BlcmEgMjMrLCBGaXJlZm94IDM5KywgU2FmYXJpIDEyKywgaU9TIDEwKyAqL1xuICAgICAgICAgdXJsKFwiLi4vLi4vc3JjL2ZvbnRzL2xhdG8tdjI0LWxhdGluX2xhdGluLWV4dC0zMDAudHRmXCIpXG4gICAgICAgICBmb3JtYXQoXCJ0cnVldHlwZVwiKTsgLyogQ2hyb21lIDQrLCBGaXJlZm94IDMuNSssIElFIDkrLCBTYWZhcmkgMy4xKywgaU9TIDQuMissIEFuZHJvaWQgQnJvd3NlciAyLjIrICovXG59XG4vKiBsYXRvLXJlZ3VsYXIgLSBsYXRpbl9sYXRpbi1leHQgKi9cbkBmb250LWZhY2Uge1xuICAgZm9udC1kaXNwbGF5OiBzd2FwOyAvKiBDaGVjayBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvQGZvbnQtZmFjZS9mb250LWRpc3BsYXkgZm9yIG90aGVyIG9wdGlvbnMuICovXG4gICBmb250LWZhbWlseTogXCJMYXRvXCI7XG4gICBmb250LXN0eWxlOiBub3JtYWw7XG4gICBmb250LXdlaWdodDogNDAwO1xuICAgc3JjOiB1cmwoXCIuLi8uLi9zcmMvZm9udHMvbGF0by12MjQtbGF0aW5fbGF0aW4tZXh0LXJlZ3VsYXIud29mZjJcIilcbiAgICAgICAgIGZvcm1hdChcIndvZmYyXCIpLFxuICAgICAgLyogQ2hyb21lIDM2KywgT3BlcmEgMjMrLCBGaXJlZm94IDM5KywgU2FmYXJpIDEyKywgaU9TIDEwKyAqL1xuICAgICAgICAgdXJsKFwiLi4vLi4vc3JjL2ZvbnRzL2xhdG8tdjI0LWxhdGluX2xhdGluLWV4dC1yZWd1bGFyLnR0ZlwiKVxuICAgICAgICAgZm9ybWF0KFwidHJ1ZXR5cGVcIik7IC8qIENocm9tZSA0KywgRmlyZWZveCAzLjUrLCBJRSA5KywgU2FmYXJpIDMuMSssIGlPUyA0LjIrLCBBbmRyb2lkIEJyb3dzZXIgMi4yKyAqL1xufVxuLyogbGF0by03MDAgLSBsYXRpbl9sYXRpbi1leHQgKi9cbkBmb250LWZhY2Uge1xuICAgZm9udC1kaXNwbGF5OiBzd2FwOyAvKiBDaGVjayBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvQGZvbnQtZmFjZS9mb250LWRpc3BsYXkgZm9yIG90aGVyIG9wdGlvbnMuICovXG4gICBmb250LWZhbWlseTogXCJMYXRvXCI7XG4gICBmb250LXN0eWxlOiBub3JtYWw7XG4gICBmb250LXdlaWdodDogNzAwO1xuICAgc3JjOiB1cmwoXCIuLi8uLi9zcmMvZm9udHMvbGF0by12MjQtbGF0aW5fbGF0aW4tZXh0LTcwMC53b2ZmMlwiKVxuICAgICAgICAgZm9ybWF0KFwid29mZjJcIiksXG4gICAgICAvKiBDaHJvbWUgMzYrLCBPcGVyYSAyMyssIEZpcmVmb3ggMzkrLCBTYWZhcmkgMTIrLCBpT1MgMTArICovXG4gICAgICAgICB1cmwoXCIuLi8uLi9zcmMvZm9udHMvbGF0by12MjQtbGF0aW5fbGF0aW4tZXh0LTcwMC50dGZcIilcbiAgICAgICAgIGZvcm1hdChcInRydWV0eXBlXCIpOyAvKiBDaHJvbWUgNCssIEZpcmVmb3ggMy41KywgSUUgOSssIFNhZmFyaSAzLjErLCBpT1MgNC4yKywgQW5kcm9pZCBCcm93c2VyIDIuMisgKi9cbn1cblxuQGZvbnQtZmFjZSB7XG4gICBmb250LWRpc3BsYXk6IHN3YXA7IC8qIENoZWNrIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9AZm9udC1mYWNlL2ZvbnQtZGlzcGxheSBmb3Igb3RoZXIgb3B0aW9ucy4gKi9cbiAgIGZvbnQtZmFtaWx5OiBcIkJvZG9uaSBNb2RhXCI7XG4gICBmb250LXN0eWxlOiBub3JtYWw7XG4gICBmb250LXdlaWdodDogNDAwO1xuICAgc3JjOiB1cmwoXCIuLi8uLi9zcmMvZm9udHMvYm9kb25pLW1vZGEtdjIzLWxhdGluX2xhdGluLWV4dC1yZWd1bGFyLndvZmYyXCIpXG4gICAgICAgICBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgICAgIC8qIENocm9tZSAzNissIE9wZXJhIDIzKywgRmlyZWZveCAzOSssIFNhZmFyaSAxMissIGlPUyAxMCsgKi9cbiAgICAgICAgIHVybChcIi4uLy4uL3NyYy9mb250cy9ib2RvbmktbW9kYS12MjMtbGF0aW5fbGF0aW4tZXh0LXJlZ3VsYXIudHRmXCIpXG4gICAgICAgICBmb3JtYXQoXCJ0cnVldHlwZVwiKTsgLyogQ2hyb21lIDQrLCBGaXJlZm94IDMuNSssIElFIDkrLCBTYWZhcmkgMy4xKywgaU9TIDQuMissIEFuZHJvaWQgQnJvd3NlciAyLjIrICovXG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIHNpemluZ1xuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbmJvZHkge1xuICAgQGV4dGVuZCAlYmFzZS10ZXh0O1xuICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgIEBlYWNoICRxdWVyeV9uYW1lLCAkcXVlcnlfdmFsdWUgaW4gJGdyaWQtYnJlYWtwb2ludHMge1xuICAgICAgQGlmIG1hcC1kZWVwLWdldCgkdHlwbywgJHF1ZXJ5X25hbWUpICE9IG51bGwge1xuICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IG1hcC1nZXQoJGdyaWQtYnJlYWtwb2ludHMsICRxdWVyeV9uYW1lKSkge1xuICAgICAgICAgICAgQGlmIG1hcC1kZWVwLWdldCgkdHlwbywgJHF1ZXJ5X25hbWUsIGJvZHksIGZvbnQtc2l6ZSkgIT0gbnVsbCB7XG4gICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1kZWVwLWdldCgkdHlwbywgJHF1ZXJ5X25hbWUsIGJvZHksIGZvbnQtc2l6ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiBtYXAtZGVlcC1nZXQoJHR5cG8sICRxdWVyeV9uYW1lLCBib2R5LCBsaW5lLWhlaWdodCkgIT0gbnVsbCB7XG4gICAgICAgICAgICAgICBsaW5lLWhlaWdodDogbWFwLWRlZXAtZ2V0KCR0eXBvLCAkcXVlcnlfbmFtZSwgYm9keSwgbGluZS1oZWlnaHQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgbWFwLWRlZXAtZ2V0KCR0eXBvLCAkcXVlcnlfbmFtZSwgYm9keSwgbGV0dGVyLXNwYWNpbmcpICE9IG51bGwge1xuICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG1hcC1kZWVwLWdldChcbiAgICAgICAgICAgICAgICAgICR0eXBvLFxuICAgICAgICAgICAgICAgICAgJHF1ZXJ5X25hbWUsXG4gICAgICAgICAgICAgICAgICBib2R5LFxuICAgICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmdcbiAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICB9XG4gICAgICB9XG4gICB9XG59XG5cbnAsXG51bCB7XG4gICBtYXJnaW4tdG9wOiAwO1xuICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbn1cblxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbi5oMSxcbi5oMixcbi5oMyxcbi5oNCxcbi5oNSB7XG4gICBtYXJnaW4tdG9wOiAwO1xuICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgYmFzZSk7XG59XG5cbi8qbG9vcCBvdmVyIGFsbCBicmVha2luZyBwb2ludHMqL1xuQGVhY2ggJHF1ZXJ5X25hbWUsICRxdWVyeV92YWx1ZSBpbiAkZ3JpZC1icmVha3BvaW50cyB7XG4gICAvL2lmIGJyZWFraW5nIHBvaW50IG5vdCBlbXB0eVxuICAgQGlmIG1hcC1kZWVwLWdldCgkdHlwbywgJHF1ZXJ5X25hbWUpICE9IG51bGwge1xuICAgICAgLy9sb29wIG92ZXIgYWxsIGZvbnQgdHlwZXMgKDEsIDIsIDMsIHAsIHNtYWxsKSBpbiB0aGUgYnJlYWtpbmcgcG9pbnRcbiAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gbWFwLWRlZXAtZ2V0KCR0eXBvLCAkcXVlcnlfbmFtZSkge1xuICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IG1hcC1nZXQoJGdyaWQtYnJlYWtwb2ludHMsICRxdWVyeV9uYW1lKSkge1xuICAgICAgICAgICAgLmgjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICBAaWYgJHZhbHVlICE9IG51bGwge1xuICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZGVlcC1nZXQoJHZhbHVlLCBmb250LXNpemUpO1xuICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICBAaWYgJHZhbHVlICE9IG51bGwgYW5kIG1hcC1kZWVwLWdldCgkdmFsdWUsIGxpbmUtaGVpZ2h0KSAhPSBudWxsXG4gICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogbWFwLWRlZXAtZ2V0KCR2YWx1ZSwgbGluZS1oZWlnaHQpO1xuICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICBAaWYgJHZhbHVlICE9XG4gICAgICAgICAgICAgICAgICBudWxsIGFuZFxuICAgICAgICAgICAgICAgICAgbWFwLWRlZXAtZ2V0KCR2YWx1ZSwgbGV0dGVyLXNwYWNpbmcpICE9XG4gICAgICAgICAgICAgICAgICAwcHggYW5kXG4gICAgICAgICAgICAgICAgICBtYXAtZGVlcC1nZXQoJHZhbHVlLCBsZXR0ZXItc3BhY2luZykgIT1cbiAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiBtYXAtZGVlcC1nZXQoJHZhbHVlLCBsZXR0ZXItc3BhY2luZyk7XG4gICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICB9XG4gICAgICB9XG4gICB9XG59XG5cbi53eXNpd3lnIHtcbiAgIC8qbG9vcCBvdmVyIGFsbCBicmVha2luZyBwb2ludHMqL1xuICAgQGVhY2ggJHF1ZXJ5X25hbWUsICRxdWVyeV92YWx1ZSBpbiAkZ3JpZC1icmVha3BvaW50cyB7XG4gICAgICAvL2lmIGJyZWFraW5nIHBvaW50IG5vdCBlbXB0eVxuICAgICAgQGlmIG1hcC1kZWVwLWdldCgkdHlwbywgJHF1ZXJ5X25hbWUpICE9IG51bGwge1xuICAgICAgICAgLy9sb29wIG92ZXIgYWxsIGZvbnQgdHlwZXMgKDEsIDIsIDMsIHAsIHNtYWxsKSBpbiB0aGUgYnJlYWtpbmcgcG9pbnRcbiAgICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gbWFwLWRlZXAtZ2V0KCR0eXBvLCAkcXVlcnlfbmFtZSkge1xuICAgICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IG1hcC1nZXQoJGdyaWQtYnJlYWtwb2ludHMsICRxdWVyeV9uYW1lKSkge1xuICAgICAgICAgICAgICAgaCN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgIEBpZiAkdmFsdWUgIT0gbnVsbCB7XG4gICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1kZWVwLWdldCgkdmFsdWUsIGZvbnQtc2l6ZSk7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIEBpZiAkdmFsdWUgIT1cbiAgICAgICAgICAgICAgICAgICAgIG51bGwgYW5kXG4gICAgICAgICAgICAgICAgICAgICBtYXAtZGVlcC1nZXQoJHZhbHVlLCBsaW5lLWhlaWdodCkgIT1cbiAgICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBtYXAtZGVlcC1nZXQoJHZhbHVlLCBsaW5lLWhlaWdodCk7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIEBpZiAkdmFsdWUgIT1cbiAgICAgICAgICAgICAgICAgICAgIG51bGwgYW5kXG4gICAgICAgICAgICAgICAgICAgICBtYXAtZGVlcC1nZXQoJHZhbHVlLCBsZXR0ZXItc3BhY2luZykgIT1cbiAgICAgICAgICAgICAgICAgICAgIDBweCBhbmRcbiAgICAgICAgICAgICAgICAgICAgIG1hcC1kZWVwLWdldCgkdmFsdWUsIGxldHRlci1zcGFjaW5nKSAhPVxuICAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG1hcC1kZWVwLWdldCgkdmFsdWUsIGxldHRlci1zcGFjaW5nKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgIH1cbiAgICAgIH1cbiAgIH1cbn1cblxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBUZXh0IHN0eWxlc1xuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbmEge1xuICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4udGV4dC1jZW50ZXIge1xuICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LXJpZ2h0IHtcbiAgIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LWxlZnQge1xuICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xufVxuXG4udGV4dC11cHBlcmNhc2Uge1xuICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLnRleHQtdW5kZXJsaW5lIHtcbiAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4uc3Ryb25nIHtcbiAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5mb250LW1lZGl1bSB7XG4gICBmb250LXdlaWdodDogNDAwO1xufVxuXG4uZm9udC1saWdodCB7XG4gICBmb250LXdlaWdodDogMzAwO1xufVxuXG4uZm9udC1zZXJpZiB7XG4gICBmb250LWZhbWlseTogXCJCb2RvbmkgTW9kYVwiO1xufVxuXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIGxpc3RzXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuLmxpc3Qge1xuICAgJi5saXN0LS1jbGVhciB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgbGkge1xuICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgfVxuICAgfVxufVxuXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIGRlY29yYXRpb25zXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuLnNlcGFyYXRvciB7XG4gICBwYWRkaW5nLWJvdHRvbTogMjVweDtcbiAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDJweDtcbiAgICAgIHdpZHRoOiAxMDBweDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgYmFzZSk7XG4gICB9XG5cbiAgICYuc2VwYXJhdG9yLS1taW5pIHtcbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICB9XG4gICB9XG5cbiAgICYuc2VwYXJhdG9yLS1sZWZ0IHtcbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgIH1cbiAgIH1cbn1cblxuLmRhc2gge1xuICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDNweDtcbiAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkY29sb3JzLCBzZWNvbmRhcnkpO1xuICAgfVxufVxuXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIGNvbG9yc1xuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbkBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJGNvbG9ycyB7XG4gICAudGV4dC0jeyRuYW1lfSB7XG4gICAgICBjb2xvcjogJHZhbHVlICFpbXBvcnRhbnQ7XG5cbiAgICAgIGEge1xuICAgICAgICAgY29sb3I6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgfVxufVxuXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIGxpbmtzXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuYSB7XG4gICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBiYXNlKTtcblxuICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBwcmltYXJ5KTtcbiAgIH1cbn1cblxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyByZXNldFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbmgyICsgaDMge1xuICAgYm9yZGVyOiBub25lO1xuICAgcGFkZGluZzogMDtcbn1cbiIsIi5mb290ZXIge1xuICAgLmZvb3Rlci1tZW51IHtcbiAgICAgIGxpIHtcbiAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgfVxuICAgfVxufVxuIiwiLnBvc3QtdHlwZS1hcmNoaXZlLXByb2R1Y3Q6bm90KC5wYWdlZCksXG4uYXJjaGl2ZS50YXgtcHJvZHVjdF9jYXQsXG4ucGFnZS10ZW1wbGF0ZS1kZWZhdWx0IHtcbiAgIC5oZWFkZXIge1xuICAgICAgc3ZnIHtcbiAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xuICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICBmaWxsOiB3aGl0ZTtcbiAgICAgICAgIH1cbiAgICAgIH1cbiAgIH1cbn1cblxuLndvb2NvbW1lcmNlLXdpc2hsaXN0LFxuLndvb2NvbW1lcmNlLWNhcnQsXG4ud29vY29tbWVyY2UtY2hlY2tvdXQge1xuICAgLmhlYWRlciB7XG4gICAgICBzdmcge1xuICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG4gICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgIGZpbGw6IG1hcC1nZXQoJGNvbG9ycywgYmFzZSk7XG4gICAgICAgICB9XG4gICAgICB9XG4gICB9XG59XG5cbi5oZWFkZXIge1xuICAgcG9zaXRpb246IGZpeGVkO1xuICAgdG9wOiAwO1xuICAgbGVmdDogMDtcbiAgIHdpZHRoOiAxMDAlO1xuICAgei1pbmRleDogMjtcbiAgIGNvbG9yOiB3aGl0ZTtcbiAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xuICAgcGFkZGluZzogMjBweCAwIDEwcHg7XG5cbiAgIGEge1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgfVxuXG4gICAubG9nbyB7XG4gICAgICBzdmcge1xuICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgIG1heC13aWR0aDogMTAwcHg7XG4gICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogbWFwLWdldCgkZ3JpZC1icmVha3BvaW50cywgbWQpKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICAgfVxuICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxuICAgfVxuXG4gICAuaGFtYnVyZ2VyIHtcbiAgICAgIHN2ZyB7XG4gICAgICAgICB3aWR0aDogMzVweDtcbiAgICAgIH1cbiAgIH1cbn1cblxuLnNjcm9sbGVkIHtcbiAgIC5oZWFkZXIge1xuICAgICAgLy8gYmFja2dyb3VuZC1jb2xvcjogcmdiYSh3aGl0ZSwgMSk7XG4gICAgICAvLyBib3JkZXItYm90dG9tOiAxcHggc29saWQgbWFwLWdldCgkY29sb3JzLCBncmV5KTtcbiAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGJhc2UpO1xuICAgICAgcGFkZGluZzogMTBweCAwIDA7XG5cbiAgICAgIGEge1xuICAgICAgICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgYmFzZSk7XG4gICAgICB9XG5cbiAgICAgIHN2ZyB7XG4gICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgIGZpbGw6IG1hcC1nZXQoJGNvbG9ycywgYmFzZSk7XG4gICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5sb2dvIHtcbiAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgfVxuXG4gICAgICAgICAvLyAjamV3ZWxyeSB7XG4gICAgICAgICAvLyAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgLy8gfVxuICAgICAgICAgLy8gc3ZnIHtcbiAgICAgICAgIC8vICAgIG1heC13aWR0aDogMTAwcHg7XG4gICAgICAgICAvLyAgICAvLyB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG4gICAgICAgICAvLyAgICAvLyB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyO1xuICAgICAgICAgLy8gfVxuICAgICAgfVxuICAgfVxufVxuXG4ubWVudS1tYWluLWNvbnRhaW5lciB7XG4gICBhIHtcbiAgICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgIH1cbn1cblxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBjYXJ0XG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuLmNhbGVtaS1jYXJ0LWljb24ge1xuICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgIHN2ZyB7XG4gICAgICB3aWR0aDogMjVweDtcbiAgIH1cblxuICAgc3BhbiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IC01cHg7XG4gICAgICByaWdodDogLTVweDtcbiAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkY29sb3JzLCBwcmltYXJ5KTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBmb250LXNpemU6IDEwcHg7XG4gICB9XG59XG5cbi5zaXRlLWhlYWRlci1jYXJ0IC53aWRnZXRfc2hvcHBpbmdfY2FydCB7XG4gICByaWdodDogMDtcbiAgIGxlZnQ6IGluaGVyaXQ7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiBtYXAtZ2V0KCRncmlkLWJyZWFrcG9pbnRzLCBtZCkpIHtcbiAgIC5zaXRlLWhlYWRlci1jYXJ0OmhvdmVyIC53aWRnZXRfc2hvcHBpbmdfY2FydCxcbiAgIC5zaXRlLWhlYWRlci1jYXJ0LmZvY3VzIC53aWRnZXRfc2hvcHBpbmdfY2FydCB7XG4gICAgICByaWdodDogMDtcbiAgICAgIGxlZnQ6IGluaGVyaXQ7XG4gICB9XG5cbiAgIC5zaXRlLWhlYWRlci1jYXJ0IC53aWRnZXRfc2hvcHBpbmdfY2FydCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgbWluLXdpZHRoOiAzMDBweDtcbiAgIH1cbn1cbiIsIi8vIC5oYW1idXJnZXIge1xuLy8gICAgZGlzcGxheTogZmxleDtcbi8vICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4vLyAgICBjdXJzb3I6IHBvaW50ZXI7XG4vLyAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCBmaWx0ZXI7XG4vLyAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE1cztcbi8vICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4vLyAgICBmb250OiBpbmhlcml0O1xuLy8gICAgY29sb3I6IGluaGVyaXQ7XG4vLyAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbi8vICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuLy8gICAgYm9yZGVyOiAwO1xuLy8gICAgbWFyZ2luOiAwO1xuLy8gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4vLyAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4vLyAgICBtYXJnaW4tbGVmdDogMzBweDtcbi8vIH1cblxuLy8gLmhhbWJ1cmdlcjpob3ZlciB7XG4vLyAgICBvcGFjaXR5OiAwLjc7XG4vLyB9XG5cbi8vIC5oYW1idXJnZXIuYWN0aXZlOmhvdmVyIHtcbi8vICAgIG9wYWNpdHk6IDAuNztcbi8vIH1cblxuLy8gLmhhbWJ1cmdlci5hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcixcbi8vIC5oYW1idXJnZXIuYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSxcbi8vIC5oYW1idXJnZXIuYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbi8vICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgYmFzZSk7XG4vLyAgICB0cmFuc2l0aW9uOiBhbGwgMC43cztcbi8vIH1cblxuLy8gLmhhbWJ1cmdlci1ib3gge1xuLy8gICAgd2lkdGg6IDMycHg7XG4vLyAgICBoZWlnaHQ6IDI0cHg7XG4vLyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4vLyAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4vLyB9XG5cbi8vIC5oYW1idXJnZXItaW5uZXIge1xuLy8gICAgZGlzcGxheTogYmxvY2s7XG4vLyAgICB0b3A6IDUwJTtcbi8vICAgIG1hcmdpbi10b3A6IC0ycHg7XG4vLyB9XG5cbi8vIC5oYW1idXJnZXItaW5uZXIsXG4vLyAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUsXG4vLyAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4vLyAgICB3aWR0aDogMzJweDtcbi8vICAgIGhlaWdodDogM3B4O1xuLy8gICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkY29sb3JzLCBiYXNlKTtcbi8vICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbi8vICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbi8vICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMTVzO1xuLy8gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XG4vLyB9XG5cbi8vIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSxcbi8vIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbi8vICAgIGNvbnRlbnQ6ICcnO1xuLy8gICAgZGlzcGxheTogYmxvY2s7XG4vLyB9XG5cbi8vIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4vLyAgICB0b3A6IC0xMHB4O1xuLy8gfVxuXG4vLyAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4vLyAgICBib3R0b206IC0xMHB4O1xuLy8gfVxuXG4vLyAuaGFtYnVyZ2VyLS1zcXVlZXplIC5oYW1idXJnZXItaW5uZXIge1xuLy8gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4wNzVzO1xuLy8gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpO1xuLy8gfVxuXG4vLyAuaGFtYnVyZ2VyLS1zcXVlZXplIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4vLyAgICB0cmFuc2l0aW9uOiB0b3AgMC4wNzVzIDAuMTJzIGVhc2UsIG9wYWNpdHkgMC4wNzVzIGVhc2U7XG4vLyB9XG5cbi8vIC5oYW1idXJnZXItLXNxdWVlemUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuLy8gICAgdHJhbnNpdGlvbjogYm90dG9tIDAuMDc1cyAwLjEycyBlYXNlLCB0cmFuc2Zvcm0gMC4wNzVzIGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpO1xuLy8gfVxuXG4vLyAuaGFtYnVyZ2VyLS1zcXVlZXplLmFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyIHtcbi8vICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbi8vICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMTJzO1xuLy8gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xuLy8gfVxuXG4vLyAuaGFtYnVyZ2VyLS1zcXVlZXplLmFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuLy8gICAgdG9wOiAwO1xuLy8gICAgb3BhY2l0eTogMDtcbi8vICAgIHRyYW5zaXRpb246IHRvcCAwLjA3NXMgZWFzZSwgb3BhY2l0eSAwLjA3NXMgMC4xMnMgZWFzZTtcbi8vIH1cblxuLy8gLmhhbWJ1cmdlci0tc3F1ZWV6ZS5hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuLy8gICAgYm90dG9tOiAwO1xuLy8gICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbi8vICAgIHRyYW5zaXRpb246IGJvdHRvbSAwLjA3NXMgZWFzZSwgdHJhbnNmb3JtIDAuMDc1cyAwLjEycyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTtcbi8vIH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAuaGFtYnVyZ2VyIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgfVxuXG4gICAuZGVza3RvcC1uYXYge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgIH1cblxuICAgLy8gbmF2IHtcbiAgIC8vICAgIC5tZW51LWhhdXB0bWVudS1jb250YWluZXIge1xuICAgLy8gICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAvLyAgICB9XG5cbiAgIC8vICAgIHVsIHtcbiAgIC8vICAgICAgIHBhZGRpbmc6IDA7XG4gICAvLyAgICAgICBsaSB7XG4gICAvLyAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgIC8vICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAvLyAgICAgICAgICBwYWRkaW5nLXRvcDogMTVweDtcbiAgIC8vICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xuXG4gICAvLyAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgYmxhY2s7XG4gICAvLyAgICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAvLyAgICAgICB9XG4gICAvLyAgICB9XG4gICAvLyB9XG4gICAvLyAub3Blbi1uYXYge1xuICAgLy8gICAgZGlzcGxheTogYmxvY2s7XG4gICAvLyB9XG59XG4iLCIuc2lkZWJhciB7XG4gICBtYXJnaW46IDA7XG4gICB3aWR0aDogMTAwdnc7XG4gICBoZWlnaHQ6IDEwMHZoO1xuICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTAwdncpO1xuICAgcG9zaXRpb246IGZpeGVkO1xuICAgdG9wOiAwO1xuICAgcmlnaHQ6IDA7XG4gICB6LWluZGV4OiAxMjtcbiAgIHRyYW5zaXRpb246IGFsbCBtYXAtZ2V0KCR0aW1lcywgZmFzdCkgZWFzZS1pbjtcbiAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICYuc2lkZWJhci0taGFsZiB7XG4gICAgICB3aWR0aDogMTAwdnc7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxMDB2dyk7XG5cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiBtYXAtZ2V0KCRncmlkLWJyZWFrcG9pbnRzLCBtZCkpIHtcbiAgICAgICAgIHdpZHRoOiA1MHZ3O1xuICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTB2dyk7XG4gICAgICB9XG4gICB9XG5cbiAgIC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuIHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgICA+IGEge1xuICAgICAgICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgIHRvcDogOHB4O1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCB3aGl0ZTtcbiAgICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLnN1Yi1tZW51IHtcbiAgICAgICAgIHBhZGRpbmctdG9wOiAwcHg7XG4gICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgIGFsaWduLWl0ZW1zOiBlbmQ7XG4gICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xuICAgICAgfVxuXG4gICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICA+IGEge1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICB9XG4gICAgICAgICAuc3ViLW1lbnUge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMDBweDtcbiAgICAgICAgIH1cbiAgICAgIH1cbiAgIH1cblxuICAgPiBkaXYge1xuICAgICAgZmxleC1ncm93OiAxO1xuICAgfVxuXG4gICBkaXYgPiB1bCB7XG4gICAgICBtYXJnaW46IDAgMCAyMHB4IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbGkge1xuICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICAgbWFyZ2luOiA1cHggMDtcbiAgICAgIH1cblxuICAgICAgPiBsaSB7XG4gICAgICAgICA+IGEge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgPiBsaS5jdXJyZW50X3BhZ2VfaXRlbSB7XG4gICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICAgPiBhIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBiYXNlKSAhaW1wb3J0YW50O1xuICAgICAgICAgfVxuICAgICAgfVxuICAgfVxuXG4gICAuc2lkZWJhcl9fY2xvc2Uge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAyMHB4O1xuICAgICAgcmlnaHQ6IDIwcHg7XG4gICAgICB3aWR0aDogNDBweDtcbiAgICAgIGhlaWdodDogNDBweDtcbiAgIH1cbn1cblxuYm9keSB7XG4gICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkY29sb3I6ICMwMDAwMDAsICRhbHBoYTogMC41KTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICB9XG4gICAmLmNhcnQtb3BlbmVkLFxuICAgJi5zaWRlYmFyLW9wZW5lZCB7XG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgfVxuXG4gICAmLnNpZGViYXItb3BlbmVkIHtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAvLyAmOmFmdGVyIHtcbiAgICAgIC8vICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyAwLjVzO1xuICAgICAgLy8gICAgb3BhY2l0eTogMTtcbiAgICAgIC8vICAgIHotaW5kZXg6IDI7XG4gICAgICAvLyB9XG4gICAgICAjc2lkZWJhciB7XG4gICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwKTtcbiAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICB9XG5cbiAgICYuc2VhcmNoLW9wZW5lZCB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgLy8gJjphZnRlciB7XG4gICAgICAvLyAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgMC41cztcbiAgICAgIC8vICAgIG9wYWNpdHk6IDE7XG4gICAgICAvLyAgICB6LWluZGV4OiAyO1xuICAgICAgLy8gfVxuICAgICAgI3NlYXJjaCB7XG4gICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwKTtcbiAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICB9XG5cbiAgICYuY2FydC1vcGVuZWQge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICNjYXJ0IHtcbiAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDApO1xuICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cbiAgIH1cblxuICAgJi53aXNobGlzdC1vcGVuZWQge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICN3aXNobGlzdCB7XG4gICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwKTtcbiAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICB9XG59XG5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gTUlOSSBDQVJUXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuLndpZGdldF9zaG9wcGluZ19jYXJ0IC5wcm9kdWN0X2xpc3Rfd2lkZ2V0IHtcbiAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICBsaSB7XG4gICAgICBwYWRkaW5nOiAxMHB4IDIuNWVtIDEwcHggMDtcblxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgICAgIH1cblxuICAgICAgLnByb2R1Y3Qtd3JhcHBlciB7XG4gICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgfVxuXG4gICAgICBhLnJlbW92ZSB7XG4gICAgICAgICByaWdodDogM3B4O1xuICAgICAgICAgbGVmdDogaW5oZXJpdDtcbiAgICAgICAgIHdpZHRoOiAxLjRlbTtcblxuICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLDwlM0Z4bWwgdmVyc2lvbj1cIjEuMFwiICUzRj48c3ZnIHZpZXdCb3g9XCIwIDAgMjU2IDI1NlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cmVjdCBmaWxsPVwibm9uZVwiIGhlaWdodD1cIjI1NlwiIHdpZHRoPVwiMjU2XCIvPjxsaW5lIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiJTIzMDAwXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgc3Ryb2tlLXdpZHRoPVwiOFwiIHgxPVwiMjE2XCIgeDI9XCI0MFwiIHkxPVwiNTZcIiB5Mj1cIjU2XCIvPjxsaW5lIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiJTIzMDAwXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgc3Ryb2tlLXdpZHRoPVwiOFwiIHgxPVwiMTA0XCIgeDI9XCIxMDRcIiB5MT1cIjEwNFwiIHkyPVwiMTY4XCIvPjxsaW5lIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiJTIzMDAwXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgc3Ryb2tlLXdpZHRoPVwiOFwiIHgxPVwiMTUyXCIgeDI9XCIxNTJcIiB5MT1cIjEwNFwiIHkyPVwiMTY4XCIvPjxwYXRoIGQ9XCJNMjAwLDU2VjIwOGE4LDgsMCwwLDEtOCw4SDY0YTgsOCwwLDAsMS04LThWNTZcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cIiUyMzAwMFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIHN0cm9rZS13aWR0aD1cIjhcIi8+PHBhdGggZD1cIk0xNjgsNTZWNDBhMTYsMTYsMCwwLDAtMTYtMTZIMTA0QTE2LDE2LDAsMCwwLDg4LDQwVjU2XCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCIlMjMwMDBcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPicpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAzMHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaW1nIHtcbiAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgbWF4LXdpZHRoOiA3MHB4O1xuICAgICAgICAgd2lkdGg6IDcwcHg7XG4gICAgICAgICBoZWlnaHQ6IDcwcHg7XG4gICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIH1cblxuICAgICAgLnF1YW50aXR5IHtcbiAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICB9XG4gICB9XG59XG5cbmltZzppcyhbc2l6ZXM9XCJhdXRvXCIgaV0sIFtzaXplc149XCJhdXRvLFwiIGldKSB7XG4gICBjb250YWluLWludHJpbnNpYy1zaXplOiAwIDA7XG59XG4iLCJodG1sIHtcbiAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xuICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkY29sb3JzLCBmb3VydGgpO1xufVxuXG5ib2R5IHtcbiAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgZm91cnRoKTtcbn1cblxuI3dyYXBwZXIge1xuICAgdHJhbnNpdGlvbjogYWxsIDAuNXM7XG4gICBtaW4taGVpZ2h0OiAxMDB2aDtcbn1cblxuYm9keSB7XG4gICAmLnBhZ2VkLFxuICAgJi5wYWdlLXRlbXBsYXRlLXBhZ2UtdGV4dCxcbiAgICYud29vY29tbWVyY2UtY2FydCxcbiAgICYud29vY29tbWVyY2UtY2hlY2tvdXQsXG4gICAmLnNpbmdsZS1wcm9kdWN0IHtcbiAgICAgICNjb250ZW50IHtcbiAgICAgICAgIHBhZGRpbmctdG9wOiAxMjBweDtcbiAgICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiBtYXAtZ2V0KCRncmlkLWJyZWFrcG9pbnRzLCBtZCkpIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAyMDBweDtcbiAgICAgICAgIH1cbiAgICAgIH1cbiAgIH1cbn1cblxuLndvb2NvbW1lcmNlLWNhcnQsXG4ud29vY29tbWVyY2UtY2hlY2tvdXQge1xuICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkY29sb3JzLCBmb3VyKTtcbn1cblxuLnN0b3JlZnJvbnQtYnJlYWRjcnVtYiB7XG4gICAuY29sLWZ1bGwge1xuICAgICAgbWFyZ2luOiAwO1xuICAgfVxufVxuXG4ucGFnZS1kZXNjcmlwdGlvbiB7XG4gICBtYXJnaW46IDAgIWltcG9ydGFudDtcbn1cblxuLnN0b3JlZnJvbnQtZnVsbC13aWR0aC1jb250ZW50IHtcbiAgIC53b29jb21tZXJjZS1wcm9kdWN0cy1oZWFkZXIge1xuICAgICAgcGFkZGluZzogMDtcblxuICAgICAgJjplbXB0eSB7XG4gICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgfVxufVxuIiwiLnBhbm9yYW1hIHtcbiAgIG1pbi1oZWlnaHQ6IDEwMGR2aDtcbiAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgQG1lZGlhIChtYXgtd2lkdGg6IG1hcC1nZXQoJGdyaWQtYnJlYWtwb2ludHMsIG1kKSkge1xuICAgICAgLnBhbm9yYW1hX19tZWRpYSB7XG4gICAgICAgICBoZWlnaHQ6IDEwMGR2aDsgLy8gQWRqdXN0IGhlaWdodCBmb3IgbW9iaWxlIGRldmljZXNcblxuICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLnBhbm9yYW1hX190ZXh0IHtcbiAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgIHRvcDogMDtcbiAgICAgICAgIGxlZnQ6IDA7XG4gICAgICB9XG4gICB9XG5cbiAgIC5wYW5vcmFtYV9fYXVkaW8ge1xuICAgICAgcmlnaHQ6IDIwcHg7XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogbWFwLWdldCgkZ3JpZC1icmVha3BvaW50cywgbWQpKSB7XG4gICAgICAgICBsZWZ0OiAyMHB4O1xuICAgICAgICAgcmlnaHQ6IGluaGVyaXQ7XG4gICAgICB9XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDIzcHg7XG4gICAgICB6LWluZGV4OiAyO1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgIC5sb3VkIHtcbiAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5tdXRlZCB7XG4gICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgLmxvdWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICB9XG5cbiAgICAgICAgIC5tdXRlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBzdmcge1xuICAgICAgICAgd2lkdGg6IDI1cHg7XG4gICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgIGZpbGw6IHdoaXRlO1xuICAgICAgICAgfVxuICAgICAgfVxuICAgfVxuXG4gICAqIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICB9XG5cbiAgIHZpZGVvIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgfVxuXG4gICAmLnBhbm9yYW1hLS1taW4ge1xuICAgICAgbWluLWhlaWdodDogNzB2aDtcbiAgIH1cblxuICAgJi5wYW5vcmFtYS0tc2hhZGUge1xuICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICB0b3A6IDA7XG4gICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgICAgfVxuICAgfVxuXG4gICAucmV2ZWFsIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAyMHZoO1xuICAgICAgd2lkdGg6IDFweDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIHJpZ2h0OiAyMHB4O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgIGNvbnRlbnQ6IFwic2Nyb2xsXCI7XG4gICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICAgIH1cblxuICAgICAgJjphZnRlciB7XG4gICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICBoZWlnaHQ6IDdweDtcbiAgICAgICAgIHdpZHRoOiA3cHg7XG4gICAgICAgICB0b3A6IDA7XG4gICAgICAgICBsZWZ0OiAtM3B4O1xuICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICBhbmltYXRpb24tbmFtZTogc2Nyb2xsaW5nO1xuICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAycztcbiAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgfVxuICAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNjcm9sbGluZyB7XG4gICAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICB9XG4gICAxMDAlIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHZoKTtcbiAgIH1cbn1cblxuLnNlY3Rpb24ge1xuICAgcGFkZGluZy10b3A6IDgwcHg7XG4gICBwYWRkaW5nLWJvdHRvbTogODBweDtcbiAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgd2hpdGUpO1xuXG4gICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGZpdmUpO1xuICAgfVxufVxuXG4uYmFkZ2Uge1xuICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJzb2xkIG91dFwiO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgIHdpZHRoOiAxNDBweDtcbiAgICAgIHRvcDogMjRweDtcbiAgICAgIGxlZnQ6IC0zMnB4O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICB9XG59XG5cbi5zaGFkb3cge1xuICAgYm94LXNoYWRvdzogMHB4IDBweCAyNHB4ICNkZGQ7XG59XG5cbi5zb2NpYWwge1xuICAgc3ZnIHtcbiAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgZmlsbDogbWFwLWdldCgkY29sb3JzLCBiYXNlKTtcbiAgICAgIHRyYW5zaXRpb246IGZpbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgICAgIG1hcmdpbjogMCA3cHg7XG4gICB9XG59XG5cbi5zdG9yZWZyb250LWJyZWFkY3J1bWIge1xuICAgbWFyZ2luOiAwO1xuICAgcGFkZGluZzogMDtcbiAgIC5jb2wtZnVsbCB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgfVxuICAgLndvb2NvbW1lcmNlLWJyZWFkY3J1bWIge1xuICAgICAgYTpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICB9XG4gICAgICB9XG4gICB9XG59XG5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gTW9zYWljXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuLm1vc2FpYyB7XG4gICBpbWcge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgfVxuICAgLmltYWdlMSB7XG4gICAgICBtYXgtd2lkdGg6IDU1JTtcbiAgICAgIHotaW5kZXg6IDI7XG4gICB9XG4gICAuaW1hZ2UyIHtcbiAgICAgIG1heC13aWR0aDogNDMlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDElO1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgIG1hcmdpbi10b3A6IDEwJTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICAvLyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICB9XG4gICAuaW1hZ2UzIHtcbiAgICAgIG1hcmdpbi10b3A6IC0xMCU7XG4gICAgICB6LWluZGV4OiAzO1xuICAgICAgLy8gdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgfVxufVxuXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIFdJc2hsaXN0XG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuLnlpdGgtd2N3bC13aXNobGlzdGV4aXN0c2Jyb3dzZSB7XG4gICAuZmVlZGJhY2sge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICB9XG5cbiAgIGE6bm90KC5hZGRfdG9fd2lzaGxpc3QpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICB9XG59XG5cbmEuc2luZ2xlX2FkZF90b193aXNobGlzdCB7XG4gICBkaXNwbGF5OiBmbGV4O1xufVxuXG4ueWl0aC13Y3dsLWFkZC10by13aXNobGlzdCAueWl0aC13Y3dsLWFkZC1idXR0b24ge1xuICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xufVxuIiwiLm1vZGFsIHtcbiAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgIHdpZHRoOiAxMDAlO1xuICAgaGVpZ2h0OiAxMDAlO1xuICAgdG9wOiAwO1xuICAgbGVmdDogMDtcbiAgIHJpZ2h0OiAwO1xuICAgYm90dG9tOiAwO1xuICAgb3BhY2l0eTogMDtcbiAgIHotaW5kZXg6IC0xMDA7XG4gICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNyk7XG4gICB0cmFuc2l0aW9uOiBvcGFjaXR5IG1hcC1nZXQoJHRpbWVzLCBtZWRpdW0pO1xuICAgZGlzcGxheTogZmxleDtcblxuICAgJi5tb2RhbC0tdGFibGUge1xuICAgICAgLm1vZGFsX19pbm5lciB7XG4gICAgICAgICBtYXgtd2lkdGg6IDkwJTtcbiAgICAgIH1cbiAgIH1cblxuICAgJi5tb2RhbC0tbG9hZGluZyB7XG4gICAgICAubW9kYWxfX2lubmVyIHtcbiAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICB9XG4gICAgICB9XG4gICB9XG5cbiAgICYubW9kYWwtLW9wZW5lZCB7XG4gICAgICB6LWluZGV4OiAxMDA7XG4gICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAubW9kYWxfX2lubmVyIHtcbiAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICAgICB0cmFuc2l0aW9uOiBhbGwgbWFwLWdldCgkdGltZXMsIG1lZGl1bSkgZWFzZS1pbi1vdXQgMC41cztcbiAgICAgIH1cbiAgIH1cblxuICAgLm1vZGFsX19pbm5lciB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIG1heC13aWR0aDogOTAwcHg7XG4gICAgICBtYXgtaGVpZ2h0OiA5MCU7XG4gICAgICB3aWR0aDogOTAlO1xuICAgICAgaGVpZ2h0OiA5MCU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwMHB4KTtcblxuICAgICAgLy8gZm9yIGxvYWRpbmdcbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSBtYXAtZ2V0KCR0aW1lcywgZmFzdCk7XG4gICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgIHRvcDogMDtcbiAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL3NyYy9pbWcvbG9hZGVyLnN2ZycpO1xuICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDQwcHg7XG4gICAgICB9XG5cbiAgICAgIC5tb2RhbF9fY29udGVudCB7XG4gICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cbiAgIH1cbiAgIC5tb2RhbF9fY2xvc2UtYnRuIHtcbiAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgaGVpZ2h0OiAyMHB4O1xuXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDAwcHg7XG4gICAgICByaWdodDogLTMwcHg7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vc3JjL2ltZy9idG4tY2xvc2Uuc3ZnJyk7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICB9XG5cbiAgICYubW9kYWwtLXVzZXIge1xuICAgICAgLm1vZGFsX19pbm5lciB7XG4gICAgICAgICBtYXgtd2lkdGg6IDQwMHB4O1xuICAgICAgICAgbWF4LWhlaWdodDogMzUwcHg7XG4gICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0O1xuICAgICAgICAgLmZvcm0tdXNlci1tb2RhbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxNXB4O1xuICAgICAgICAgfVxuICAgICAgICAgc2VsZWN0LFxuICAgICAgICAgaW5wdXRbdHlwZT0ndGV4dCddLFxuICAgICAgICAgaW5wdXRbdHlwZT0ncGFzc3dvcmQnXSxcbiAgICAgICAgIGlucHV0W3R5cGU9J2VtYWlsJ10sXG4gICAgICAgICBpbnB1dFt0eXBlPSdudW1iZXInXSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgICAgICAgIGhlaWdodDogNDRweDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkNmQ2ZDY7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICAgICB9XG4gICAgICB9XG4gICB9XG59XG4iLCIuc3dpcGVyLXdyYXBwZXItLWVxdWFsLXNsaWRlcyB7XG4gICBqdXN0aWZ5LWNvbnRlbnQ6IHN0cmV0Y2g7XG4gICBhbGlnbi1pdGVtczogc3RyZXRjaDtcblxuICAgLnN3aXBlci1zbGlkZSB7XG4gICAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgfVxufVxuXG4uc3dpcGVyLXBhZ2luYXRpb24ge1xuICAgZGlzcGxheTogZmxleDtcbiAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldCB7XG4gICBoZWlnaHQ6IDE2cHg7XG4gICB3aWR0aDogMTZweDtcbiAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgIG1hcmdpbjogMCAzcHg7XG4gICBib3JkZXI6IDFweCBzb2xpZCBtYXAtZ2V0KCRjb2xvcnMsIGdyZXlEYXJrKTtcbiAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xuXG4gICAmLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkY29sb3JzLCBncmV5RGFyayk7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICB9XG59XG5cbi5zd2lwZXItcGFnaW5hdGlvbi1sb2NrIHtcbiAgIG9wYWNpdHk6IDA7XG59XG5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gZ2FsbGVyeSB0aHVtYlxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbi5qcy1zd2lwZXItZ2FsbGVyeS1uYXZpZ2F0aW9uIHtcbiAgIC5zd2lwZXItc2xpZGUge1xuICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuICAgfVxuICAgLnN3aXBlci1zbGlkZS10aHVtYi1hY3RpdmUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgIH1cbn1cblxuLmdhbGxlcnktbmF2aWdhdGlvbl9faXRlbSB7XG4gICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XG4gICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcblxuICAgJi5nYWxsZXJ5LW5hdmlnYXRpb25fX2l0ZW0tLWFjdGl2ZSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgfVxufVxuIiwiLnRhYnMge1xuICAgLnRhYl9fbmF2LWl0ZW0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkY29sb3JzLCBCR2JsdWVMaWdodDA1KTtcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDdweDtcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA3cHg7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG5cbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgQkdibHVlTGlnaHQpO1xuICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIH1cbiAgIH1cbiAgIC50YWJzX19jb250ZW50IHtcbiAgICAgIHBhZGRpbmc6IDIwcHggMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgQkdibHVlTGlnaHQpO1xuICAgfVxuXG4gICAudGFic19fY29udGVudC1pdGVtIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICYudGFiX19uYXYtaXRlbS0tb3BlbmVkIHtcbiAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgfVxufVxuIiwiLmpzLWNvbnNlbnQge1xuICAgcG9zaXRpb246IGZpeGVkO1xuICAgYm90dG9tOiAwO1xuICAgbGVmdDogMDtcbiAgIHdpZHRoOiAxMDAlO1xuICAgcGFkZGluZzogMTVweDtcbiAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoYmxhY2ssIDAuNyk7XG4gICBvcGFjaXR5OiAwO1xuICAgei1pbmRleDogLTE7XG4gICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1pbi1vdXQ7XG5cbiAgICYuanMtY29uc2VudC0tYWN0aXZlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB6LWluZGV4OiAyMDtcbiAgIH1cbn1cbiIsIi5hY2NvcmRpb24ge1xuICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgbWFyZ2luOiAwO1xuICAgcGFkZGluZzogMDtcbiAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIGJhc2UpO1xuXG4gICAuYWNjb3JkaW9uX19pdGVtIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBtYXAtZ2V0KCRjb2xvcnMsIGdyZXlEYXJrKTtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBtYXAtZ2V0KCRjb2xvcnMsIGdyZXlEYXJrKTtcbiAgICAgIH1cbiAgIH1cblxuICAgLmFjY29yZGlvbl9faGVhZGVyIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgLmFjY29yZGlvbl9fdGl0bGUge1xuICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuXG4gICAgICAuYWNjb3JkaW9uX19pY29uIHtcbiAgICAgICAgIHdpZHRoOiAyNXB4O1xuICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG4gICAgICB9XG5cbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgLmFjY29yZGlvbl9faWNvbiB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICAgfVxuXG4gICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICB9XG4gICAgICB9XG4gICB9XG5cbiAgIC5hY2NvcmRpb25fX2NvbnRlbnQge1xuICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgd2Vpc3MpO1xuICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgJi5hY2NvcmRpb25fX2NvbnRlbnQtLW9wZW5lZCB7XG4gICAgICAgICBtYXgtaGVpZ2h0OiA1MDAwcHg7XG4gICAgICAgICAvLyBwYWRkaW5nOiA0MHB4IDAgMTBweCAwO1xuICAgICAgICAgcGFkZGluZzogMzBweCAwIDEwcHggMDtcbiAgICAgIH1cbiAgIH1cbn1cbiIsIi53cC1ibG9jay1tZWRpYS10ZXh0X19tZWRpYSB7XG4gICBtYXJnaW4tYm90dG9tOiAyMHB4ICFpbXBvcnRhbnQ7XG59XG5cbmgyLndwLWJsb2NrLWhlYWRpbmcge1xuICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgIEBleHRlbmQgLmgyO1xufVxuIiwiLyoqXG4gKiBTd2lwZXIgOS40LjFcbiAqIE1vc3QgbW9kZXJuIG1vYmlsZSB0b3VjaCBzbGlkZXIgYW5kIGZyYW1ld29yayB3aXRoIGhhcmR3YXJlIGFjY2VsZXJhdGVkIHRyYW5zaXRpb25zXG4gKiBodHRwczovL3N3aXBlcmpzLmNvbVxuICpcbiAqIENvcHlyaWdodCAyMDE0LTIwMjMgVmxhZGltaXIgS2hhcmxhbXBpZGlcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2VcbiAqXG4gKiBSZWxlYXNlZCBvbjogSnVuZSAxMywgMjAyM1xuICovXG5cbkBpbXBvcnQgJ3N3aXBlci12YXJzLnNjc3MnO1xuQGF0LXJvb3Qge1xuICBAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ3N3aXBlci1pY29ucyc7XG4gICAgc3JjOiB1cmwoJ2RhdGE6YXBwbGljYXRpb24vZm9udC13b2ZmO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCBkMDlHUmdBQkFBQUFBQVpnQUJBQUFBQUFEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkdSbFJOQUFBR1JBQUFBQm9BQUFBY2k2cUhrVWRFUlVZQUFBV2dBQUFBSXdBQUFDUUFZQUJYUjFCUFV3QUFCaFFBQUFBdUFBQUFOdUFZNyt4SFUxVkNBQUFGeEFBQUFGQUFBQUJtMmZQY3pVOVRMeklBQUFIY0FBQUFTZ0FBQUdCUDlWNVJZMjFoY0FBQUFrUUFBQUNJQUFBQll0NkYwY0JqZG5RZ0FBQUN6QUFBQUFRQUFBQUVBQkVCUkdkaGMzQUFBQVdZQUFBQUNBQUFBQWovL3dBRFoyeDVaZ0FBQXl3QUFBRE1BQUFEMk1IdHJ5Vm9aV0ZrQUFBQmJBQUFBREFBQUFBMkUyK2VvV2hvWldFQUFBR2NBQUFBSHdBQUFDUUM5Z0R6YUcxMGVBQUFBaWdBQUFBWkFBQUFyZ0prQUJGc2IyTmhBQUFDMEFBQUFGb0FBQUJhRlFBVUdHMWhlSEFBQUFHOEFBQUFId0FBQUNBQWNBQkFibUZ0WlFBQUEvZ0FBQUU1QUFBQ1h2RmRCd2x3YjNOMEFBQUZOQUFBQUdJQUFBQ0U1czc0aFhqYVkyQmtZR0FBWXBmNUh1L2orVzIrTW5Bek1ZREF6YVg2UWpENi80Ly9CeGo1R0E4QXVSd01ZR2tBUHl3TDEzamFZMkJrWUdBODhQOEFneDRqKy84ZlFEWWZBMUFFQldnREFJQjJCT29BZU5wallHUmdZTkJoNEdkZ1lnQUJFTW5JQUJKellOQURDUUFBQ1dnQXNRQjQybU5nWWZ6Q09JR0JsWUdCMFljeGpZR0J3UjFLZjJXUVpHaGhZR0JpWUdWbWdBRkdCaVFRa09hYXd0REFvTUJReFhqZy93RUdQY1lEREE0d05VQTJDQ2d3c0FBQU80RUw2Z0FBZU5wajJNMGd5QUFDcXhnR05XQmtaMkQ0L3dNQSt4a0RkZ0FBQUhqYVkyQmdZR2FBWUJrR1JnWVFpQUh5R01GOEZnWUhJTTNEd01IQUJHUXJNT2d5V0RMRU0xVDkvdzhVQmZFTWdMekUvLy8vUC81Ly9mL1YveHYrcjRlYUFBZU1iQXh3SVVZbUlNSEVnS1lBWWpVY3NEQXdzTEt4YzNCeWNmUHc4akVRQS9nWkJBU0ZoRVZFeGNRbEpLV2taV1RsNUJVVWxaUlZWTlhVTlRRWkJnTUFBTVIrRStnQUVRRkVBQUFBS2dBcUFDb0FOQUErQUVnQVVnQmNBR1lBY0FCNkFJUUFqZ0NZQUtJQXJBQzJBTUFBeWdEVUFONEE2QUR5QVB3QkJnRVFBUm9CSkFFdUFUZ0JRZ0ZNQVZZQllBRnFBWFFCZmdHSUFaSUJuQUdtQWJJQnpnSHNBQUI0MnUyTk1RNkNVQXlHVzU2OHg5QW5lWVlnbTRNSmJoS0ZhRXhJT0FWWDhBcGV3U3Q0QmljNEFmZUFpZDNWT0JpeER4ZlBZRXphNU8rWGZpMDRZQURnZ2lVSVVMQ3VFSks4VmhPNGJTdnBkbmt0SEk1UUNZdGRpMnNsOFpuWGFIbHFVck5LemRLY1Q4Y2pscStyd1pTdklWY3pOaWV6c2ZuUC91em5tZlBGQk5PRE0ySzdNVFE0NVlFQVpxR1A4MUFtR0djRjNpUHFPb3AwcjFTUFRhVGJWa2ZVZTRIWGo5N3dZRSt5TndXWXh3V3U0djF1Z1dIZ28zUzFYZFpFVnFXTTdFVDBjZm5MR3hXZmtnUjQybzJQdldyRE1CU0ZqL0lITGFGMHpLalJnZGlWTXdTY05SQW9XVW9INzhZMmljQi95SVkwOUFuNkFIMkJkdS9VQit5eG9wWXNoUWlFdm52dTBkVVJnRHQ4UWVDOFBEdzdGcGppM2ZFQTR6L1BFSjZZT0I1aEtoNGRqM0V2WGh4UHFIL1NLVVkzcko3c3JaNEZabmgxUE1BdFBod1A2ZmwyUE1KTVBEZ2VRNHJZOFlUNkd6YW8wZUFFQTQwOUR1Z2dtVG5Gbk9jU0NpRWlMTWd4Q2lUSTZDcTVEWlVkM1FtcDEwdk8wTGFMVGQyY2pONGZPdW1sYzdsVVliU1FjWkZrdXRSRzdnNkpLWkt5MFJtZExZNjgwQ0RuRUorVU1rcEZGZTFSTjdueGRWcFhyQzRhVHRuYXVyT25ZZXJjWmcyWVZtTE4vZC9nY3pmRWltckUvZnMvYk91cTI5Wm1uOHRsb09SYVhnWmdHYTc4eU85L2NuWG0yQnBhR3ZxMjVEdjlTNEU5KzVTSWM5UHF1cEpLaFlGU1NsNDcrUWNyMW1ZTkFBQUFlTnB0dzBjS3drQUFBTURaSkE4UTdPVUp2a0xzUGZaNnpGVkVSUHk4cUhoMllFUiszaS9CUDgzdklCTEx5U3NvS2ltcnFLcXBhMmhwNitqcTZSc1lHaG1ibUpxWlN5MHNyYXh0Yk8zc0hSeWRuRU1VNHVSNnl4N0pKWHZlUDdXckR5Y0FBQUFBQUFILy93QUNlTnBqWUdSZ1lPQUJZaGtnWmdKQ1pnWk5Ca1lHTFFadElKc0ZMTVlBQUF3M0FMZ0FlTm9saXpFS2dEQVFCQ2NoUmJDMnNGRVIwWUQ2cVZRaUJDdi9IOWV6R0k2WjVYQkF3OENCSy9tNWlRUVZhdVZiWExuT3JNWnYyb0xkS0ZhOFBqdXJ1MmhKekdhYm1PU0x6Tk16dnV0cEIzTjQybU5nWkdCZzRHS1FZekJoWU14SkxNbGo0R0JnQVlvdy9QL1BBSkpoTE02c1NvV0tmV0NBQXdEQWpnYlJBQUI0Mm1OZ1lHQmtBSUliQ1pvNUlQcm1VbjBoR0EwQU84RUZUUUFBJylcbiAgICAgIGZvcm1hdCgnd29mZicpO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB9XG59XG5AYXQtcm9vdCB7XG4gIDpyb290IHtcbiAgICAtLXN3aXBlci10aGVtZS1jb2xvcjogI3skdGhlbWVDb2xvcn07XG4gICAgLypcbiAgICAtLXN3aXBlci1wcmVsb2FkZXItY29sb3I6IHZhcigtLXN3aXBlci10aGVtZS1jb2xvcik7XG4gICAgLS1zd2lwZXItd3JhcHBlci10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogaW5pdGlhbDtcbiAgICAqL1xuICB9XG59XG4uc3dpcGVyLFxuc3dpcGVyLWNvbnRhaW5lciB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgLyogRml4IG9mIFdlYmtpdCBmbGlja2VyaW5nICovXG4gIHotaW5kZXg6IDE7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnN3aXBlci12ZXJ0aWNhbCA+IC5zd2lwZXItd3JhcHBlciB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4uc3dpcGVyLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXN3aXBlci13cmFwcGVyLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCBpbml0aWFsKTtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG4uc3dpcGVyLWFuZHJvaWQgLnN3aXBlci1zbGlkZSxcbi5zd2lwZXItd3JhcHBlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMHB4LCAwLCAwKTtcbn1cbi5zd2lwZXItaG9yaXpvbnRhbCB7XG4gIHRvdWNoLWFjdGlvbjogcGFuLXk7XG59XG4uc3dpcGVyLXZlcnRpY2FsIHtcbiAgdG91Y2gtYWN0aW9uOiBwYW4teDtcbn1cbi5zd2lwZXItc2xpZGUsXG5zd2lwZXItc2xpZGUge1xuICBmbGV4LXNocmluazogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm07XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnN3aXBlci1zbGlkZS1pbnZpc2libGUtYmxhbmsge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4vKiBBdXRvIEhlaWdodCAqL1xuLnN3aXBlci1hdXRvaGVpZ2h0LFxuLnN3aXBlci1hdXRvaGVpZ2h0IC5zd2lwZXItc2xpZGUge1xuICBoZWlnaHQ6IGF1dG87XG59XG4uc3dpcGVyLWF1dG9oZWlnaHQgLnN3aXBlci13cmFwcGVyIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgaGVpZ2h0O1xufVxuLnN3aXBlci1iYWNrZmFjZS1oaWRkZW4gLnN3aXBlci1zbGlkZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLyogM0QgRWZmZWN0cyAqL1xuLnN3aXBlci0zZC5zd2lwZXItY3NzLW1vZGUgLnN3aXBlci13cmFwcGVyIHtcbiAgcGVyc3BlY3RpdmU6IDEyMDBweDtcbn1cbi5zd2lwZXItM2QgLnN3aXBlci13cmFwcGVyIHtcbiAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbn1cbi5zd2lwZXItM2Qge1xuICBwZXJzcGVjdGl2ZTogMTIwMHB4O1xuICAuc3dpcGVyLXNsaWRlLFxuICAuc3dpcGVyLXNsaWRlLXNoYWRvdyxcbiAgLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdCxcbiAgLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHQsXG4gIC5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCxcbiAgLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tLFxuICAuc3dpcGVyLWN1YmUtc2hhZG93IHtcbiAgICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICB9XG4gIC5zd2lwZXItc2xpZGUtc2hhZG93LFxuICAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0LFxuICAuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodCxcbiAgLnN3aXBlci1zbGlkZS1zaGFkb3ctdG9wLFxuICAuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b20ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgei1pbmRleDogMTA7XG4gIH1cbiAgLnN3aXBlci1zbGlkZS1zaGFkb3cge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIH1cbiAgLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdCB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG4gIH1cbiAgLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHQge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgfVxuICAuc3dpcGVyLXNsaWRlLXNoYWRvdy10b3Age1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG4gIH1cbiAgLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMCkpO1xuICB9XG59XG4vKiBDU1MgTW9kZSAqL1xuLnN3aXBlci1jc3MtbW9kZSB7XG4gID4gLnN3aXBlci13cmFwcGVyIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7IC8qIEZvciBGaXJlZm94ICovXG4gICAgLW1zLW92ZXJmbG93LXN0eWxlOiBub25lOyAvKiBGb3IgSW50ZXJuZXQgRXhwbG9yZXIgYW5kIEVkZ2UgKi9cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuICA+IC5zd2lwZXItd3JhcHBlciA+IC5zd2lwZXItc2xpZGUge1xuICAgIHNjcm9sbC1zbmFwLWFsaWduOiBzdGFydCBzdGFydDtcbiAgfVxufVxuLnN3aXBlci1ob3Jpem9udGFsLnN3aXBlci1jc3MtbW9kZSB7XG4gID4gLnN3aXBlci13cmFwcGVyIHtcbiAgICBzY3JvbGwtc25hcC10eXBlOiB4IG1hbmRhdG9yeTtcbiAgfVxufVxuLnN3aXBlci12ZXJ0aWNhbC5zd2lwZXItY3NzLW1vZGUge1xuICA+IC5zd2lwZXItd3JhcHBlciB7XG4gICAgc2Nyb2xsLXNuYXAtdHlwZTogeSBtYW5kYXRvcnk7XG4gIH1cbn1cbi5zd2lwZXItY3NzLW1vZGUuc3dpcGVyLWZyZWUtbW9kZSB7XG4gID4gLnN3aXBlci13cmFwcGVyIHtcbiAgICBzY3JvbGwtc25hcC10eXBlOiBub25lO1xuICB9XG4gID4gLnN3aXBlci13cmFwcGVyID4gLnN3aXBlci1zbGlkZSB7XG4gICAgc2Nyb2xsLXNuYXAtYWxpZ246IG5vbmU7XG4gIH1cbn1cbi5zd2lwZXItY2VudGVyZWQge1xuICA+IC5zd2lwZXItd3JhcHBlcjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBvcmRlcjogOTk5OTtcbiAgfVxuICA+IC5zd2lwZXItd3JhcHBlciA+IC5zd2lwZXItc2xpZGUge1xuICAgIHNjcm9sbC1zbmFwLWFsaWduOiBjZW50ZXIgY2VudGVyO1xuICAgIHNjcm9sbC1zbmFwLXN0b3A6IGFsd2F5cztcbiAgfVxufVxuLnN3aXBlci1jZW50ZXJlZC5zd2lwZXItaG9yaXpvbnRhbCB7XG4gID4gLnN3aXBlci13cmFwcGVyID4gLnN3aXBlci1zbGlkZTpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tc3dpcGVyLWNlbnRlcmVkLW9mZnNldC1iZWZvcmUpO1xuICB9XG4gID4gLnN3aXBlci13cmFwcGVyOjpiZWZvcmUge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG4gICAgd2lkdGg6IHZhcigtLXN3aXBlci1jZW50ZXJlZC1vZmZzZXQtYWZ0ZXIpO1xuICB9XG59XG4uc3dpcGVyLWNlbnRlcmVkLnN3aXBlci12ZXJ0aWNhbCB7XG4gID4gLnN3aXBlci13cmFwcGVyID4gLnN3aXBlci1zbGlkZTpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJsb2NrLXN0YXJ0OiB2YXIoLS1zd2lwZXItY2VudGVyZWQtb2Zmc2V0LWJlZm9yZSk7XG4gIH1cbiAgPiAuc3dpcGVyLXdyYXBwZXI6OmJlZm9yZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAxcHg7XG4gICAgaGVpZ2h0OiB2YXIoLS1zd2lwZXItY2VudGVyZWQtb2Zmc2V0LWFmdGVyKTtcbiAgfVxufVxuXG4uc3dpcGVyLWxhenktcHJlbG9hZGVyIHtcbiAgd2lkdGg6IDQycHg7XG4gIGhlaWdodDogNDJweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTIxcHg7XG4gIG1hcmdpbi10b3A6IC0yMXB4O1xuICB6LWluZGV4OiAxMDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXI6IDRweCBzb2xpZCB2YXIoLS1zd2lwZXItcHJlbG9hZGVyLWNvbG9yLCB2YXIoLS1zd2lwZXItdGhlbWUtY29sb3IpKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5zd2lwZXI6bm90KC5zd2lwZXItd2F0Y2gtcHJvZ3Jlc3MpLFxuc3dpcGVyLWNvbnRhaW5lcjpub3QoLnN3aXBlci13YXRjaC1wcm9ncmVzcyksXG4uc3dpcGVyLXdhdGNoLXByb2dyZXNzIC5zd2lwZXItc2xpZGUtdmlzaWJsZSB7XG4gIC5zd2lwZXItbGF6eS1wcmVsb2FkZXIge1xuICAgIGFuaW1hdGlvbjogc3dpcGVyLXByZWxvYWRlci1zcGluIDFzIGluZmluaXRlIGxpbmVhcjtcbiAgfVxufVxuLnN3aXBlci1sYXp5LXByZWxvYWRlci13aGl0ZSB7XG4gIC0tc3dpcGVyLXByZWxvYWRlci1jb2xvcjogI2ZmZjtcbn1cbi5zd2lwZXItbGF6eS1wcmVsb2FkZXItYmxhY2sge1xuICAtLXN3aXBlci1wcmVsb2FkZXItY29sb3I6ICMwMDA7XG59XG5Aa2V5ZnJhbWVzIHN3aXBlci1wcmVsb2FkZXItc3BpbiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5cblxuXG4iXX0= */
