/*!***************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./assets/css/frontend/cart.css ***!
  \***************************************************************************************************************************************************************************************************************/
:root {
  --symbol-bg-color: #d9308a;
  --symbol-color: #fff;
  --area-bg-color: #351c4f;
  --area-color: #fff;
  --selector-border-color: #0002;
  --selector-border-color2: #000;
  --ok-color: #090;
  --discount-bg-color: #da318b;
  --wallet-bg-color: #181256;
  --card-color: #fff;
}

#content {
  background-color: #fff;
}

#content * {
  box-sizing: border-box;
}

.nice-checkbox label {
  margin: 0;
  padding-left: 30px;
}

.nice-checkbox label::before {
  left: 0;
  box-sizing: border-box;
}

.nice-checkbox label::after {
  left: 2px;
  box-sizing: border-box;
}

.parent .nice-checkbox label::after {
  background-color: #999;
}

#cart {
  display: grid;
  grid-template-columns: 100%;
  grid-auto-rows: auto;
  padding: 0;
  background: #fff;
  margin: 0;
  color: #333;
  font-size: 16px;
  -moz-column-gap: 2rem;
       column-gap: 2rem;
}

#cart .text-right {
  text-align: right;
}

#cart h2 {
  margin: 0;
}

#cart .s-breadcrumbs {
  display: none;
}

#cart .right-col {
  padding: 0 20px 20px 20px;
  order: 1;
}

#cart .right-col[data-step="2"], #cart .right-col[data-step="3"] {
  display: none;
}

#cart .right-col > div {
  padding-top: 20px;
}

#cart .right-col .summary-header {
  margin-bottom: 25px;
  font-size: 20px;
  font-weight: bold;
}

#cart .steps {
  grid-row: 1;
  order: 1;
}

#cart .left-col {
  order: 2;
}

#cart .project-changes {
  display: none;
  margin: 20px;
  padding: 20px 0;
  border-top: 1px solid #ccc;
  font-size: 13px;
}

#cart .project-changes header > div:first-of-type {
  margin-bottom: 1rem;
  font-size: 16px;
  font-weight: bold;
}

#cart .project-changes .find-out-more {
  display: flex;
  margin-top: 15px;
  align-items: center;
  color: #d9308a;
  gap: 1rem;
}

#cart .project-changes .find-out-more svg {
  height: 25px;
  fill: #d9308a;
}

#cart .project-changes .switch {
  margin: 20px auto 0 auto;
  flex-direction: column;
}

#cart .project-changes .switch div {
  display: flex;
  min-height: 65px;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
  padding: 1.5rem;
  border-radius: 10px;
  border: 1px solid var(--selector-border-color);
  font-size: 13px;
  color: #000;
  cursor: pointer;
}

#cart .project-changes .switch div:hover {
  opacity: 0.75;
}

#cart .promotion2 {
  padding: 20px;
}

#cart .products {
  background: #fff;
  order: 2;
}

#cart .addons, #cart .items-list {
  display: flex;
  flex-direction: column;
  padding: 20px;
  gap: 50px;
}

#cart .items-list .title {
  margin-bottom: 10px;
  font-size: 13px;
  font-weight: bold;
}

#cart .addons .addon-category .items {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

#cart .contact {
  display: none;
  grid-row: 5;
  background: #fff;
}

#cart .cart-empty {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background: #fff;
  text-align: center;
  min-height: 100vh;
}

.cart-empty .icon {
  display: block;
  color: #ccc;
  font-size: 4em;
}

#cart .cart-steps {
  display: flex;
  width: 100%;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: flex-start;
  font-size: 14px;
  color: #333;
  padding: 1rem 0;
  gap: 1rem;
  overflow: auto;
}

#cart .cart-steps > div {
  display: flex;
  min-width: 140px;
  flex-direction: column;
  align-items: center;
}

#cart .cart-steps .house {
  font-size: 30px;
}

.cart-steps .circle {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 1px solid #333;
  opacity: 0.5;
  cursor: pointer;
}

.cart-steps .sel .circle {
  background-color: #ca1c61;
  color: #fff;
}

#cart .basic-data {
  line-height: 1.5;
  font-size: 13px;
}

#cart .basic-data .features {
  margin-bottom: 1rem;
}

#cart .basic-data .feature {
  display: flex;
  align-items: center;
}

#cart .basic-data .feature > div:first-of-type {
  width: 60%;
}

#cart .basic-data .feature > div:last-of-type {
  text-align: left;
}

#cart .basic-data .title {
  margin-bottom: 1rem;
  font-weight: 700;
  font-size: 16px;
}

#cart .cart-items .headers {
  display: none;
}

#cart .cart-items .items {
  background: #fff;
}

#cart .cart-items .item::after {
  content: none;
}

#cart .cart-items .main {
  display: grid;
  grid-template-columns: repeat(12, auto);
  grid-template-rows: repeat(2, auto);
  padding: 1.5rem;
  border-top: 1px solid #F4F4F4;
  gap: 1rem;
}

#cart .cart-items .item .name {
  grid-column: 1 / span 9;
  grid-row: 1;
  order: 1;
  min-height: 40px;
  font-size: 15px;
}

#cart .cart-items .item .price {
  grid-column: 1 / span 12;
  grid-row: 2;
}

#cart .cart-items .item .options {
  grid-column: 11 / span 2;
  grid-row: 1;
  justify-self: end;
}

#cart .cart-items .item .extra-options {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin: 1rem 0;
  font-size: 16px;
}

#cart .cart-items .item .price > div {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
}

#cart .right-col .items {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

#cart .right-col .item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  -moz-column-gap: 0.5rem;
       column-gap: 0.5rem;
  row-gap: 1rem;
}

#cart .right-col .project-row {
  margin-bottom: 1rem;
}

#cart .right-col .item .old-price {
  display: flex;
  margin: 0 0 0 auto;
  align-items: center;
  text-align: right;
  gap: 5px;
}

#cart .right-col .item .old-price > span {
  text-decoration: line-through;
}

#cart .right-col .item .price {
  margin: 0;
  min-width: 70px;
  text-align: right;
}

#cart .right-col .card {
  display: flex;
  flex-direction: column;
  width: 50px;
  height: 30px;
  justify-content: center;
  align-items: center;
  border-radius: 3px;
  box-shadow: 0 4px 40px 0 rgba(0, 0, 0, 0.05);
  -webkit-backdrop-filter: blur(25px);
          backdrop-filter: blur(25px);
  transform: rotate(-8deg);
  font-size: 10px;
}

#cart .right-col .card.discount {
  background-color: var(--discount-bg-color);
  color: var(--card-color);
}

#cart .right-col .card.wallet {
  background-color: var(--wallet-bg-color);
  color: var(--card-color);
}

#cart .right-col .card .text {
  font-size: 4px;
}


#cart .right-col .item .discount-title, #cart .right-col .item .discount-normal-price {
  display: none;
}

#cart .big-checkbox label::after {
  width: 24px;
  height: 24px;
}

#cart .big-checkbox label::before {
  width: 28px;
  height: 28px;
}

#cart .notice {
  background-color: #e6bdfc;
  color: #000;
  font-size: 1.3rem;
  font-weight: 400;
  padding: 1rem 1.5rem;
  margin: 1rem 0;
  border-radius: 8px;
  line-height: 1.4;
}

#cart .notice a {
  font-weight: bold;
  color: #fff;
}

.cart-steps .sel .circle {
  opacity: 1;
}

#cart .link {
  padding: 0;
}

#cart .right-col .top {
  order: 1;
}

#cart .right-col .basic-data {
  order: 2;
}

#cart .top .project-thumb img {
  display: block;
  width: 100%;
}

#cart .top-button {
  display: block;
  width: 100%;
  font-size: 15px;
  color: #333;
  font-weight: normal;
  text-align: center;
  padding: 10px 0;
  text-decoration: none;
}

#cart .double .top-button {
  width: calc(50% - 1px);
}

#cart .top-button a {
  color: #333;
}

#cart .top-button svg {
  display: none;
  font-size: 20px;
  margin: 0 10px;
}

#cart .availability-notice {
  margin: 1rem auto;
  border-top: 2px solid #000;
  padding-top: 1rem;
  text-align: right;
}

#cart .total-summary .saving {
  font-size: 16px;
  font-weight: 400;
  text-align: right;
}

#cart .project-link {
  border: 1px solid #000;
  font-size: 16px;
  color: #000;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 60px;
  width: 100%;
  text-align: center;
}

#cart .cart-button {
  margin: auto;
  border-radius: 50px;
  color: #fff;
  align-items: center;
  padding: 10px 0;
  font-size: 18px;
  font-weight: 600;
  text-transform: uppercase;
}

#cart .cart-button.disable a {
  color: #fff;
}

#cart .cart-button.disable {
  background: #EFEFEF;
  color: #999;
}

#cart .cart-button.disable a {
  color: #999;
}

#cart .cart-button .fa-house, #cart .cart-button .fa-file-pdf {
  margin: 0 10px;
}

#cart .project-button {
  font-size: 15px;
  align-items: center;
  display: flex;
  background: #EFEFEF;
  padding: 0;
  justify-content: center;
}

#cart .project-button > .cart-button:nth-child(2) {
  border-left: 1px solid #fff;
}

#cart .project-button .top-button:nth-child(2) {
  border-left: 1px solid #fff;
}

#cart .cart-button.link, #cart .discount-button.link {
  cursor: pointer;
}

#cart .cart-button.disable {
  background: #EFEFEF;
}

#cart .contact {
  padding: 16px;
  font-size: 15px;
  color: #333;
}

#cart .contact .title {
  font-weight: 600;
  font-size: 16px;
}


#cart .hide {
  display: none !important;
}

#cart .section-title {
  display: flex;
  padding: 0.5rem;
  justify-content: space-between;
  box-sizing: border-box;
  background: #333;
  font-size: 20px;
  font-weight: 600;
  color: #fff;
  text-align: center;
  text-transform: uppercase;
  cursor: pointer;
}

#cart .cart-items .section-title {
  margin-bottom: 1.5rem;
}

#cart .cart-items .section-title.expanded {
  margin-bottom: 0;
}

#cart .cart-items .name {
  font-weight: 600;
}

#cart .more-addons-list .name {
  display: flex;
  gap: 1rem;
}

#cart .more-addons {
  position: relative;
  width: 100%;
}

#cart .more-addons .fa-plus-square {
  position: absolute;
  right: 32px;
  font-size: 25px;
  top: 12px;
  color: #fff;
}

#cart .more-addons-list, #cart .other-addons-list {
  margin-top: 15px;
}

#cart .shipments, #cart .address {
  padding: 1.5rem;
}

#cart .shipments .info {
  margin-bottom: 15px;
}

.shipments-title, .address h2 {
  margin-bottom: 23px;
  font-weight: 600;
  font-size: 20px;
}

#cart .confirmed-shipments h2 {
  margin-bottom: 1rem;
  font-weight: 600;
  font-size: 16px;
}

#cart .confirmed-shipments .list {
  padding: 1.5rem;
}

.address .expandable {
  cursor: pointer;
}

#cart .address header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

#cart .shipment-list {
  display: grid;
  width: 100%;
  gap: 0.5rem;
  margin-bottom: 5rem;
  font-size: 14px;
}

#cart .shipment-list input[type="radio"] + label {
  position: relative;
  display: block;
  padding-left: 30px;
  margin: 0;
  cursor: pointer;
}

#cart .shipment-list input[type="radio"] + label:before {
  position: absolute;
  top: 50%;
  left: 0;
  display: block;
  content: ' ';
  width: 18px;
  height: 18px;
  border-radius: 10px;
  border: 1px solid #000;
  transform: translateY(-50%);
  z-index: 1;
}

#cart .shipment-list input[type="radio"]:checked + label:before {
  border: 2px solid #ca1d61;
}

#cart .shipment-list input[type="radio"]:checked + label:after {
  position: absolute;
  top: 50%;
  left: 3px;
  display: block;
  content: ' ';
  width: 12px;
  height: 12px;
  border-radius: 12px;
  border: 1px solid #ca1d61;
  background-color: #ca1d61;
  transform: translateY(-50%);
  z-index: 2;
}

#cart .shipment-list > div.checked {
  border: 1px solid #000;
}

.products .total > div {
  margin-bottom: 1px;
  background: #f9f9f9;
  color: #333;
}

#cart .availability-notice {
  color: #333;
}

#cart .input input, #cart textarea {
  background-color: #F6F6F6;
  height: 42px;
  width: 100%;
  border: none;
  background-image: none;
  box-shadow: none;
  box-sizing: border-box;
  font-size: 16px;
  color: #666;
  border-radius: 5px;
}

#cart .input input {
  padding-left: 40px;
}

#cart .address .error input {
  border: 1px solid red;
}

#cart .address fieldset {
  margin-bottom: 2rem;
}

#cart .address .input {
  position: relative;
  width: 100%;
}

#cart .address .input svg {
  position: absolute;
  font-size: 16px;
  color: #666;
  bottom: -34px;
  left: 12px;
}

#cart .address .nip {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 1rem;
}

#cart .address .nip input {
  width: calc(100% - 40px);
}

#cart .address .nip svg {
  width: 25px;
  height: 25px;
  position: unset;
  top: unset;
  left: unset;
  fill: #090;
}

.cart-project-changes .field, .cart-remarks .field {
  position: relative;
  padding: 1rem;
}

.cart-item.row .promo .profit {
  margin-left: 15px;
}

.cart-item.row .cart-item-price {
  width: 13%;
  justify-content: flex-end;
  padding-right: 20px;
}

.hint {
  display: inline-block;
}

.hint svg {
  width: 24px;
  height: 24px;
}

.cart-item.row:nth-of-type(odd), .cart-shipment .cart-options {
  background: #fff;
  border-top: 1px solid #d0d0d0;
  border-bottom: 1px solid #d0d0d0;
}

.cart-item.row > div {
  font-size: 18px;
}

.cart-total-new, .cart-shipment-cost {
  display: table-row;
}

.cart-total-new .label, .cart-shipment-cost .label {
  display: table-cell;
  text-align: right;
}

.cart-total-new .amount, .cart-shipment-cost .amount {
  display: table-cell;
  padding-left: 10px;
  text-align: right;
  font-size: 25px;
  font-weight: bold;
  margin-left: 10px;
}

.cart-total-new .label, .cart-shipment-cost .label {
  font-size: 19px;
}

.cart-total-new.fixed .label, .cart-total-new.fixed .amount, .cart-shipment-cost.fixed .label, .cart-shipment-cost.fixed .amount {
  position: fixed;
  right: 10px;
  top: 10px;
  z-index: 1;
  background: #f2f2f2;
  padding: 5px;
}

.cart-total-new.fixed .label {
  line-height: 1;
}

.cart-total-new.fixed .amount, .cart-shipment-cost.fixed .amount {
  top: 37px;
}


.cart-project-changes h2::first-letter {
  text-transform: uppercase;
}

#cart .cart-project-changes textarea, #cart .cart-remarks textarea {
  height: 200px;
  padding: 10px 15px;
}

.cart-customer-addresses {
  width: 100%;
  margin-top: 50px;
}

.cart-customer-addresses > div {
  padding: 0;
  display: flex;
  width: 100%;
}

.cart-customer-addresses > div:first-child, .cart-customer-addresses address > h3:first-child {
  font-size: 23px;
  text-transform: uppercase;
  background: #ca1d61;
  color: #fff;
  padding: 7px 0;
}

.cart-customer-addresses address > h3:first-child {
  display: none;
}

.cart-customer-addresses > div:nth-child(2) {
  padding: 20px 0 0;
  font-size: 18px;
  line-height: normal;
}

.cart-customer-addresses > div:nth-child(2) h4 {
  font-size: 18px;
}

.cart-customer-addresses > div > * {
  margin: 0;
  padding: 0 0 0 20px;
  width: calc(36% - 20px);
}

.cart-customer-addresses > div > h3 {
  font-size: 23px;
}

.cart-customer-addresses > div > *:nth-child(3) {
  width: calc(28% - 40px);
}

.cart-customer-agreements {
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  padding: 1.5rem;
  gap: 1rem;
}

#cart .ado-info {
  order: 3;
}

.cart-customer-agreements a, .ado-info a {
  text-decoration: none;
  color: #ca1d61;
  font-weight: bold;
}

.cart-customer-agreements div.row {
  margin: 30px 0 0;
}

.cart-customer-agreements > div:last-child {
  margin-bottom: 25px;
}

#cart .cart-customer-agreements .nice-checkbox label {
  display: block;
  margin-left: 2rem;
}

.cart-customer-agreements .error-msg {
  margin: 1rem 0 0 calc(2rem + 30px);
  font-size: 15px;
  font-weight: bold;
}

.cart_customer_terms_accepted_at.error {
  border: 2px solid red;
}

.cart_customer_terms_accepted_at.error .error-msg {
  display: block;
}

.cart-buttons > input:hover, .png a.button:hover, .cart-addons .container > div.more-fewer:hover, .cart-steps h2 span.fa:hover {
  opacity: 0.7;
}

.construction a {
  text-decoration: none;
  color: #ca1d61;
  font-weight: bold;
  font-size: 18px;
  line-height: 1.7;
}

.construction span {
  font-size: 14px;
  line-height: 2;
}

#cart .cart-items .headers {
  margin: 0;
}

#cart .cart-items .items > div:nth-child(odd) {
  background: #fafafa;
}

#cart .cart-items .items > div.in-cart {
  background-color: #fff8f8;
}

#cart .discount-normal-price {
  color: #ccc;
  text-decoration: line-through;
  font-weight: bold;
}

#cart .cart-items .price {
  font-weight: 600;
  font-size: 22px;
  color: #333;
  line-height: 1.2;
  order: 3;
}

#cart .discount-title {
  width: 50%;
  color: #CA1D61;
  font-size: 16px;
  font-weight: 400;
  order: 1;
}

#cart .availability {
  font-size: 14px;
  color: #999999;
  line-height: 28px;
  margin-top: 10px;
  text-transform: lowercase;
}

#cart > div {
  padding: 0;
}

.confirmation-order-data h2 {
  padding: 5px 16px;
  font-size: 18px;
  color: #333;
}

.address .input label {
  font-size: 16px;
  color: #aaa;
  line-height: 33px;
  margin-top: 10px;
  position: relative;
}

#cart .other-address .nice-checkbox {
  margin: 1rem 0;
}

#cart .other-address .nice-checkbox label {
  margin-right: 2rem;
}

#cart .address .comments textarea, #cart .confirmation-order-data textarea {
  height: 120px;
  padding: 1rem;
  box-sizing: border-box;
  resize: vertical;
}

#cart textarea::-moz-placeholder {
  color: #ccc;
}

#cart textarea::placeholder {
  color: #ccc;
}

#cart .address .comments .input, #cart .confirmation-order-data .input {
  position: relative;
}

#cart .address .comments .input .fa-edit {
  top: 10px;
  right: 10px;
  font-size: 25px;
  left: unset;
  bottom: unset;
}

#cart .confirmation-order-data .field .fa-edit {
  position: absolute;
  top: 20px;
  right: 1.5rem;
  font-size: 25px;
}

#cart .address form > .row.no-margin {
  margin-top: 0;
}

#cart .address .company-section, #cart .address .other-address {
  position: relative;
}

#cart .address h2 > span {
  font-size: 1.2rem;
  color: #999;
}

#cart .address .expand {
  display: flex;
  align-items: center;
  font-size: 25px;
  color: #CA1D61;
}

#cart .address .expand span {
  font-size: 14px;
  padding-right: 10px;
}

#cart .onoffswitch {
  left: -15px;
}

#cart .confirmation-order-data .input {
  padding: 1.5rem;
  font-size: 15px;
  line-height: 1.5;
}

#cart .main {
  position: relative;
}

#cart .products .cart-buttons {
  margin-top: 22px;
}

#cart .mobile-footer {
  display: block;
  order: 4;
  padding: 1rem;
  border-top: 1px solid #f4f4f4;
  background-color: #fff;
  font-size: 14px;
}

#cart .right-col .cart-buttons {
  display: none;
}

#cart .mobile-footer.cart-buttons {
  display: block;
  position: sticky;
  top: 0;
  bottom: 0;
  margin-top: 0;
  z-index: 10
}

#cart .right-col .total-summary {
  display: none;
}

#cart .comments h2 {
  margin-bottom: 20px;
}

#cart .confirmation .shipments .section-title, #cart .confirmation .confirmation-order-data .section-title {
  font-family: 'Montserrat', 'Open Sans', sans-serif;
  background: none;
  color: #333;
  font-size: 18px;
  text-align: left;
  text-transform: none;
  font-weight: normal;
}

#cart .confirmation .confirmation-order-data .section-title {
  color: #333;
}

#cart .confirmation .nice-checkbox label {
  color: #707070;
}

#cart .loader {
  position: fixed;
  width: 100vw;
  height: 100vh;
  background: #333;
  opacity: 0.8;
  z-index: 9998;
  top: 0;
  left: 0;
}

#cart .loader .spin {
  border: 16px solid #f3f3f3;
  border-top: 16px solid #CA1D61;
  border-radius: 50%;
  width: 120px;
  height: 120px;
  animation: spin 2s linear infinite;
  position: absolute;
  left: calc(50% - 60px);
  top: calc(50% - 60px);
  z-index: 9999;
}

#cart .confirmation .confirmation-order-data {
  color: #707070;
}

#cart .confirmation .discount-button {
  display: none;
}

#cart .confirmation .discount-button.amount {
  display: flex;
  background: #F6F6F6;
  color: #333;
  font-size: 18px;
  font-weight: normal;
  min-height: 44px;
  line-height: normal;
}

#cart .confirmation .discount-button.amount span {
  font-size: 28px;
}

#cart .confirmation .cart-buttons .next {
  background: #CA1D61;
  font-size: 18px;
  color: #fff;
  font-weight: bold;
  height: 44px;
}

#cart .confirmation .ado-info {
  color: #999999;
  padding: 16px 0;
}

#cart .more-addons {
  bottom: 0;
  font-size: 14px;
  width: 100%;
  flex-wrap: wrap;
  padding: 30px 0;
  z-index: 998;
  left: 0;
}

#cart .more-addons > div {
  text-align: center;
}

#cart .more-addons.less {
  bottom: -25px;
}

#cart .more-addons span {
  font-size: 20px;
  font-weight: bold;
}

#cart .cart-items .main-items {
  position: relative;
}

#cart .confirmation .section-title {
  display: flex;
  justify-content: space-between
}

#cart .confirmation .section-title svg {
  font-size: 25px;
}

#cart .confirmation .section-title.edit svg {
  color: #CA1D61;
}

#cart .top-checkbox .selected-title {
  font-family: 'Montserrat', sans-serif;
  font-size: 18px;
}

#cart .cart-items .big-checkbox {
  flex: 0 0 30px;
  right: 14px;
  max-width: 30px;
  padding: 0;
  order: 4;
}

#urgent-message {
  display: none;
}

#cart .shipments .cost-placeholder {
  font-size: 14px;
  margin-top: 10px;
  text-align: center;
}

#cart .shipments .error:before {
  border: 1px solid red;
}

#cart .shipments .shipment-error {
  padding: 1rem;
  margin-bottom: 1rem;
  color: #fff;
  background-color: #be2121;
  border-radius: 5px;
}

#cart .company-terms {
  padding-top: 16px;
  font-size: 14px;
}

.cart-item-hint {
  display: inline-block;
  color: #707070;
  padding: 1px 5px;
  font-size: 18px;
  line-height: 1;
  margin-left: 5px;
}

.cart-item-hint a {
  color: #707070;
}

.icon-hint.clickable {
  cursor: help;
}

.cart-addons .container .overlay:hover .icon-hint {
  opacity: 1;
}

.icon-hint.fadeable > .cart-popup-container > .cart-balloon,
.icon-hint.fadeable > .cart-popup-container > .cart-popup {
  visibility: hidden;
  opacity: 0;
}

.icon-hint.fadeable.show > .cart-popup-container > .cart-balloon,
.icon-hint.fadeable.show > .cart-popup-container > .cart-popup {
  visibility: visible;
  opacity: 1;
  transition: opacity 0.5s ease-out;
}

.cart-popup {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
  background-color: white;
  border: 1px solid black;
  width: 100%;
  padding: 20px;
  box-sizing: border-box;
  text-align: left;
  z-index: 1024;
}

.cart-popup-simple {
  width: 200px;
  padding: 20px;
  right: -110px;
}

.clicked .cart-popup {
  width: 280px;
  padding: 20px 10px;
}

.cart-popup img {
  float: left;
  margin-left: -190px;
}

.cart-popup ul {
  float: left;
  margin-left: -190px;
  margin-right: 10px;
}

.clicked .cart-popup img, .clicked .cart-popup ul {
  display: none;
}

.cart-popup ul li {
  color: white;
  line-height: 24px;
  padding: 0 10px;
  font-size: 12px;
}

.cart-popup h1 {
  font-weight: 100;
  text-transform: uppercase;
  font-size: 28px;
  margin: 0;
  color: #222;
}

.cart-popup p {
  color: #222 !important;
  font-size: 14px;
  line-height: 130%;
}

.cart-popup p.title {
  font-size: 18px;
  font-weight: normal;
}

.cart-popup p.description {
  margin: 10px 0;
}

.cart-popup p.price {
  text-align: right;
  margin-top: 20px;
  margin-right: 50px;
}

.cart-popup p.price + p.price {
  margin-top: 5px;
}

.cart-popup p.price span.gratis {
  color: #ca1d61;
  font-weight: bold;
}

.cart-popup p.price span.amount {
  font-weight: bold;
}

.cart-popup p.price span.amount-old {
  font-weight: bold;
  text-decoration: line-through;
}

.cart-popup p.price span.amount-new {
  color: #ca1d61;
  font-weight: bold;
  font-size: 200%;
}

.cart-popup img, .cart-popup ul {
  display: none;
}

#cart .cart-customer-agreements label {
  height: auto;
  min-height: 20px;
}

#cart .nice-checkbox label .cart-item-hint {
  position: absolute;
  top: 1px;
}

#cart .cart-parent-info {
  background: #E1E8EB;
  border: 1px solid #C9DBE3;
  border-radius: 10px;
  padding: 20px;
  margin: 1rem;
  font-size: 15px;
}

#cart #files-container {
  padding: 5px 16px;
}

#cart #files-container a {
  width: 100%;
  float: left;
  text-align: center;
  font-size: 8px;
}

#cart .more-addons .section-title {
  position: relative;
}

#cart .second-currency-info {
  color: #CA1D61;
  font-size: 15px;
}

.santa-gift {
  color: #000;
}

#cart .shipments .checkboxes .disabled label {
  text-decoration: line-through;
  color: #5f5f5f;
}

.payment-info {
  display: inline-block;
  padding: 1rem;
  margin: auto 1rem;
  background-color: #ca1c6122;
  border: 1px solid #ca1c6155;
  border-radius: 5px;
  color: #ca1c61;
  font-size: 15px;
}

.alfabank-failure {
  min-height: 70vh;
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

.payment-failed {
  padding: 1.5rem;
  background-color: #fff;
  color: #e00;
}

.payment-failed h3 {
  padding-bottom: 1rem;
  font-size: 20px;
  font-weight: bold;
  text-transform: uppercase;
}

.choose-dpd-pickup {
  display: flex;
  max-width: 360px;
  margin: 1.5rem auto;
  padding: 1.5rem;
  background-color: #ddd;
  border-radius: 5px;
  cursor: pointer;
  gap: 1rem;
}

.choose-dpd-pickup .chosen {
  font-weight: bold;
}

.choose-dpd-pickup .choose {
  color: var(--link-color);
}

.dpd-pickup-popup {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  box-sizing: border-box;
  background-color: #fff;
  z-index: 1035;
}

.dpd-pickup-popup .close {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  height: 55px;
  padding-right: 1.5rem;
  box-sizing: border-box;
  font-size: 24px;
}

.dpd-pickup-popup iframe {
  width: 100%;
  height: calc(100vh - 110px);
  border: 0 none;
}

#cart .error-msg {
  background-color: #c00;
  color: #fff;
  padding: 1rem;
}

.payment-services img {
  height: 40px;
  margin-right: 1rem;
}

.payment-services .blik {
  height: 38px;
}

.payment-services .applepay {
  fill: #000;
  height: 40px;
}

.discount-promotion {
  display: flex;
  margin: 10px 0;
  padding: 20px 0 10px 0;
  align-items: center;
  font-size: 16px;
  border-top: 1px solid #ddd;
  gap-column: 10px;
}

.discount-promotion svg {
  width: 28px;
  height: 28px;
}

.discount-promotion.check svg {
  fill: var(--ok-color);
}

.discount-promotion .login {
  min-width: 64px;
  margin: 0 0 0 auto;
  font-size: 13px;
  color: var(--link-color);
  cursor: pointer;
}

.promotion2-summary {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 5px;
  justify-content: center;
  align-items: flex-end;
  margin: 10px 0;
  padding: 10px 0;
  font-size: 12px;
  font-weight: bold;
}

.promotion2-summary::before {
  position: absolute;
  top: 0;
  right: 0;
  display: block;
  content: ' ';
  width: 100px;
  height: 1px;
  background-color: #000;
}

#cart .right-col .promotion2-summary .card.wallet {
  position: absolute;
  top: 50%;
  left: 0;
  transform: rotate(-8deg) translateY(-50%);
}

@media screen and (min-width: 768px) {
  #cart {
    display: grid;
    grid-template-columns: auto 340px;
    grid-template-rows: 30px 90px auto;
    grid-auto-rows: auto;
  }

  #cart .s-breadcrumbs {
    display: flex;
    grid-column: 1/ 3;
    grid-row: 1;
  }

  #cart .right-col {
    grid-row: 3;
  }

  #cart .right-col[data-step="2"], #cart .right-col[data-step="3"] {
    display: block;
  }

  #cart .right-col > div {
    position: sticky;
    top: 0;
    grid-column: 2;
    grid-row: 3;
    display: block;
  }

  #cart .top-button {
    font-size: 15px;
  }

  #cart .top-button svg {
    display: inline-block;
  }

  #cart .steps {
    grid-column: 1 / 3;
    grid-row: 2;
  }

  #cart .products {
    grid-column: 1;
    grid-row: 3;
  }

  #cart .s-5 {
    grid-column: 1;
    grid-row: 5;
    justify-content: center;
  }

  #cart .cart-empty {
    min-height: 70vh;
    grid-column: 1 / 3;
    grid-row: 1;
  }

  #cart .cart-items .item {
    grid-template-columns: 1fr 120px 30px;
    grid-template-rows: auto;
  }

  #cart .cart-items .item .name {
    grid-column: 1;
    grid-row: auto;
    font-size: 15px;
  }

  #cart .cart-items .item .price {
    grid-column: span 1;
    grid-row: auto;
  }

  #cart .confirmation .cart-items .item .price {
    grid-column: span 2;
  }

  #cart .cart-items .item .options {
    grid-column: span 1;
    grid-row: auto;
  }

  #cart .cart-items .other-addons {
    grid-column: 1;
    grid-row: 2;
  }

  #cart .cart-items .other-addons-list {
    grid-column: 1;
    grid-row: 3;
  }

  #cart .cart-items .more-addons {
    grid-column: 1;
    grid-row: 4;
  }

  #cart .mobile-footer {
    display: none;
  }

  #cart .top-checkbox {
    flex-direction: column;
    padding: 20px 0;
  }

  #cart .cart-items .headers {
    display: grid;
    height: 47px;
    grid-template-columns: repeat(12, auto);
    background: #F0F0F0;
  }

  #cart .cart-items .headers .header {
    padding: 0 1rem;
    color: #444;
    font-size: 20px;
    font-weight: bold;
    border-right: 1px solid #fff;
    align-self: center;
  }

  #cart .cart-items .headers .header:first-of-type {
    grid-column: span 9;
  }

  #cart .cart-items .headers .header:last-child {
    grid-column: span 3;
    border-right: none;
  }

  #cart .cart-items .headers .header.availability {
    font-size: 12px;
  }

  #cart .cart-items > .items {
    padding: 0;
  }

  #cart .main .nice-checkbox {
    position: relative;
    max-width: none;
    flex: 0 0 8.3333%;
    right: auto;
  }

  #cart .nice-checkbox label::before {
    width: 22px;
    height: 22px;
  }

  #cart .nice-checkbox label::after {
    width: 18px;
    height: 18px;
  }

  #cart .big-checkbox label::before {
    width: 28px;
    height: 28px;
    top: 0;
  }

  #cart .big-checkbox label::after {
    width: 24px;
    height: 24px;
    top: 2px;
  }

  #cart .big-checkbox {
    padding: 0;
  }

  #cart .shipments, #cart .address {
    padding: 2.5rem;
  }

  #cart .section-title {
    background: #F4F4F4;
    text-align: left;
    font-size: 20px;
    font-weight: bold;
    color: #333;
  }

  #cart .cart-buttons {
    position: relative;
    height: 50px;
  }

  #cart .cart-buttons .next {
    margin: auto;
  }

  .products .total > div {
    background-color: transparent;
  }

  .products .total > div:first-of-type {
    color: #CA1D61;
  }

  #cart .mobile-footer {
    display: none;
  }

  #cart .right-col .total-summary, #cart .right-col .cart-buttons {
    display: block;
  }
  #cart .mobile-footer.cart-buttons {
    display: none;
  }

  #cart .main .discount-title {
    position: relative;
    width: 100%;
    text-align: right;
    order: 3;
  }

  #cart .main .discount-normal-price {
    width: auto;
    font-weight: normal;
    order: 1;
  }

  #cart .cart-items .price {
    width: auto;
    font-weight: normal;
    font-size: 18px;
  }

  #cart .contact {
    background: #fff;
    padding: 30px 50px;
    font-size: 15px;
  }

  #cart .contact .title {
    font-size: 16px;
  }

  #cart .cart-steps {
    justify-content: center;
  }

  #cart .cart-steps .circles {
    justify-content: flex-start;
    padding-top: 26px;
  }

  .cart-steps .circle {
    width: 40px;
    height: 40px;
    border: 1px solid #999;
    font-size: 20px;
    color: #999;
    opacity: 1;
  }

  .cart-steps .sel .circle {
    border: 1px solid #CA1D61;
    background: #CA1D61;
    color: #fff;
  }

  #cart .availability span {
    display: none;
  }

  #cart .main .availability {
    color: #333;
    justify-content: center;
    font-size: 16px;
  }

  #cart .cart-items .headers > div {
    text-transform: uppercase;
  }

  #cart .main .availability {
    margin-top: 0;
  }

  #cart .main .discount-normal-price {
    font-size: 16px;
  }

  #cart .big-checkbox label {
    margin: auto;
    right: auto;
    width: 30px;
  }

  #cart .more-addons {
    display: none;
  }

  #cart .cart-items .items .main.last {
    -webkit-mask-image: none;
  }

  .cart-items .items .row {
    cursor: pointer;
  }

  .cart-items .items .row:hover label::before {
    background-color: #ca1d6133;
  }

  #cart .shipments .cost-placeholder {
    text-align: left;
  }

  #cart .s-5 {
    margin-top: 40px;
  }

  #cart .s-5 .row > div:nth-child(1), #cart .s-5 .row > div:nth-child(3) {
    padding-left: 13%;
  }

  #cart .confirmation .items .headers .header.options {
    display: none;
  }

  #cart .confirmation > .section-title {
    display: none;
  }

  #cart .confirmation .confirmation-order-data .input .section-title {
    padding: 0;
  }

  #cart .confirmation .section-title svg {
    top: 10px;
  }

  #cart .confirmation .confirmation-order-data .section-title {
    padding: 0;
  }

  #cart .confirmation .shipments .section-title, #cart .confirmation .confirmation-order-data .section-title {
    font-size: 20px;
  }

  #cart .confirmation .discount-button.amount {
    background: #fff;
    font-size: 28px;
    margin: 15px 0;
  }

  #cart .confirmation .shipments .payment .section-title {
    padding-left: 0;
  }

  .cart-popup {
    border: 1px solid black;
    z-index: 9999;
    width: 100%;
    max-width: 800px;
    padding: 20px 20px 20px 200px;
  }

  .cart-popup img, .cart-popup ul {
    display: block;
  }

  #cart .more-addons svg {
    color: #CA1D61;
    font-size: 25px;
  }

  #cart .more-addons-list {
    margin-top: 0;
  }

  .payment-info {
    display: block;
    width: -moz-max-content;
    width: max-content;
    margin: auto;
  }
}

@media screen and (min-width: 992px) {
  #cart {
    padding: 20px;
    display: grid;
    grid-template-columns: 1fr 350px;
    grid-template-rows: 30px 100px auto;
    grid-auto-rows: auto;
    background: transparent;
    max-width: 1440px;
    margin: auto;
  }

  #cart .steps {
    grid-column: 1 / 3;
    grid-row: 2;
  }

  #cart .left-col {
    border: 1px solid #eee;
    border-radius: 3px;
  }

  #cart .right-col {
    grid-row: 3;
    padding: 0 28px 28px 28px;
    border: 1px solid #eee;
    border-radius: 3px;
  }

  #cart .right-col > div {
    padding-top: 28px;
  }

  #cart .products {
    grid-row: 3;
  }

  #cart .addons, #cart .items-list {
    padding: 30px;
  }

  #cart .cart-empty {
    min-height: 50vh;
    grid-column: 1 / 3;
    grid-row: 2;
  }

  .cart-steps {
    font-size: 16px;
  }

  .cart-steps .circle {
    width: 40px;
    height: 40px;
    font-weight: lighter;
  }

  .cart-steps .sel .circle {
    background: #CA1D61;
    border: 1px solid #CA1D61;
  }

  #cart .cart-steps .sel .step {
    color: #333;
  }

  .cart-steps .circles > div {
    display: flex;
    font-size: 16px;
  }

  #cart .cart-items .item {
    grid-template-columns: 1fr 170px 40px;
  }

  #cart .cart-items.confirmation .item {
    grid-template-columns: 1fr 170px;
  }

  #cart .cart-items .item .name {
    font-size: 16px;
  }

  #cart .items-list .title {
    font-size: 16px;
  }

  #cart .top-checkbox {
    flex-direction: row;
    display: flex;
  }

  #cart .discount-button {
    background: #ca1d61;
    color: #fff;
    font-size: 16px;
  }

  #cart .discount-button.amount {
    font-size: 18px;
    font-weight: bold;
    color: #fff;
  }

  #cart .project-changes .switch {
    flex-direction: row;
    justify-content: center;
    gap: 20px;
  }

  #cart .project-changes .switch div {
    max-width: 360px;
  }

  #cart .contact {
    padding-left: 16px;
  }

  #cart .cart-steps .circles {
    padding: 0;
    position: relative;
    top: 0;
  }

  #cart .cart-items .price {
    font-size: 22px;
  }

  #cart .cart-items .headers .header {
    font-size: 20px;
  }

  #cart .cart-items .headers .header.availability, #cart .cart-items .headers .header.price {
    justify-content: center;
  }

  #cart .contact {
    font-size: 16px;
    margin: 0;
    padding-left: 0;
  }

  #cart .big-checkbox label::before {
    left: 0;
  }

  #cart .big-checkbox label::after {
    left: 2px;
  }

  #cart .cart-items .big-checkbox {
    right: 0;
  }

  #cart .cart-items .name {
    font-size: 16px;
    font-weight: normal;
  }

  #cart .more-addons svg {
    right: 23px;
  }

  #cart .discount-button {
    min-height: 53px;
  }

  #cart .shipments .section-title {
    padding: 0;
  }

  #cart .confirmed-shipments {
    display: grid;
    grid-template-columns: 50% 1fr;
    gap: 1rem;
    margin-bottom: 1rem;
  }

  #cart .confirmed-shipments .section-title {
    grid-column: span 2;
  }

  #cart .confirmation .cart-buttons .next {
    right: auto;
    position: relative;
  }

  #cart .confirmation .discount-amount {
    display: flex;
  }

  #cart .confirmation .discount-amount .amount {
    border: none;
  }

  .confirmation-order-data {
    display: grid;
    grid-template-columns: repeat(2, calc(50% - 0.5rem));
    gap: 1rem;
  }

  .confirmation-order-data h2 {
    line-height: 35px;
    color: #575757;
  }

  .cart-project-changes, .cart-remarks {
    grid-column: span 2;
  }

  #cart .input .fa-edit {
    opacity: 0.8;
  }

  #cart .discount-button.amount {
    margin-top: 15px;
  }

  #cart .products .total {
    text-align: right;
  }

  #cart .products .total > div:first-of-type {
    color: #CA1D61;
  }

  .payment-info {
    margin-right: 1rem;
  }

  .cart-customer-agreements {
    grid-column: span 2;
  }

  #cart .address .row {
    display: grid;
    grid-template-columns: repeat(2, calc(50% - 0.5rem));
    gap: 1rem;
    margin: 0;
  }
  #cart .shipment-list {
    font-size: 16px;
  }
}

@media screen and (min-width: 1280px) {
  #cart {
    grid-template-columns: 1fr 420px;
  }
}

/*!***********************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./assets/css/frontend/cart/project.css ***!
  \***********************************************************************************************************************************************************************************************************************/
#cart .project-data {
  --project-data-color: #000;
  --radio-default-color: #000;
  --radio-selected-color: #ca1d61;

  padding: 20px;
}

#cart .project-data header .remove {
  display: flex;
  align-items: center;
  gap: 1rem;
  font-weight: 500;
  font-size: 13px;
  color: #999;
  cursor: pointer;
}

#cart .project-data header .remove svg {
  fill: #999;
}

#cart .project-data svg {
  height: 25px;
}

#cart .project-data .info .construction-cost {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  margin: 0 0 0 auto;
  padding: 0.5rem 1rem;
}

#cart .project-data .version {
  margin: 40px 0 15px 0;
  font-size: 13px;
  font-weight: bold;
}

#cart .switch {
  display: flex;
  flex-wrap: nowrap;
  font-size: 13px;
  gap: 10px;
}

#cart .switch > div {
  width: 100%;
}

#cart .switch > div:hover {
  opacity: 0.75;
}

#cart .switch input[type="radio"] {
  display: none;
}

#cart .switch label {
  position: relative;
  display: flex;
  width: 100%;
  height: 100%;
  min-height: 50px;
  align-items: center;
  padding: 1rem 10px 1rem 35px;
  margin: 0;
  border: 1px solid var(--selector-border-color);
  border-radius: 10px;
  cursor: pointer;
}

#cart .switch label:before, #cart .switch label:after {
  position: absolute;
  content: ' ';
  border-radius: 50%;
  border: 1px solid var(--radio-default-color);
}

#cart .switch label:before {
  top: 50%;
  left: 10px;
  width: 16px;
  height: 16px;
  transform: translateY(-50%);
}

#cart .switch label:after {
  display: none;
  top: 50%;
  left: 13px;
  width: 10px;
  height: 10px;
  border-color: var(--radio-selected-color);
  background-color: var(--radio-selected-color);
  transform: translateY(-50%);
}

#cart .switch input[type="radio"]:checked + label {
  font-weight: bold;
  border-color: var(--selector-border-color2);
}

#cart .switch input[type="radio"]:checked + label:before {
  border: 2px solid var(--radio-selected-color);
}

#cart .switch input[type="radio"]:checked + label:after {
  display: block;
}

@media (min-width: 992px) {
  #cart .project-col {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 3rem;
  }

  #cart .project-data .version {
    font-size: 16px;
  }

  #cart .switch > div {
    width: auto;
    min-width: 265px;
  }

  #cart .switch label {
    height: 63px;
    padding-left: 46px;
    font-size: 16px;
  }

  #cart .switch label::before {
    left: 14px;
  }

  #cart .switch label::after {
    left: 17px;
  }
}

/*!***********************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./assets/css/frontend/autocomplete.css ***!
  \***********************************************************************************************************************************************************************************************************************/
.autocomplete input {
  background-color: var(--box-bg-color);
  color: var(--text-color);
  border-radius: 5px;
}

.autocomplete svg {
  position: absolute;
  top: 50%;
  right: 1rem;
  fill: var(--text-color);
  transform: translateY(-50%);
}

.autocomplete .search-list {
  background-color: var(--box-bg-color);
}

.search-list > div {
  padding: 0.5rem;
}

.autocomplete .search-list > div:hover {
  background-color: #eee;
}

.autocomplete .search-list img {
  width: 75px;
  height: 42px;
}

.autocomplete .search-list > div  > span {
  font-size: 16px;
  color: var(--text-color);
}

.autocomplete .search-list > div > div {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  font-size: 14px;
  gap: 0.1rem;
}

.autocomplete .search-list > div > div > span:last-of-type {
  font-size: 11px;
  color: var(--text-color2);
}

/*!************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./assets/css/frontend/notifications.css ***!
  \************************************************************************************************************************************************************************************************************************/
.z-notification {
  margin-bottom: 1rem;
  padding: 10px;
  color: #fff;
  font-weight: 100;
  font-size: 13px;
  font-family: 'Open Sans', sans-serif;
  max-width: 450px;
  width: 100%;

  .z-notification .notification-content {
    color: #fff;
  }

  &.success {
    background-color: #090;
    border-left: 5px solid #0c0;
  }

  &.error {
    background-color: #900;
    border-left: 5px solid #c00;
  }
}

/*!******************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./assets/js/frontend/components/hint/hint.css ***!
  \******************************************************************************************************************************************************************************************************************************/
.hint {
  display: inline-block;
  vertical-align: middle;
}

.hint-button {
  display: flex;
  width: 20px;
  height: 20px;
  justify-content: center;
  font-weight: bold;
  align-items: center;
  border-radius: 12px;
  border: 1px solid #000;
  fill: var(--box-bg-color);
  cursor: pointer;
  font-family: 'Courier New', serif;
}

.hint-button:hover {
  opacity: 0.75;
}

/*!*****************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./assets/js/frontend/components/autocomplete-project.css ***!
  \*****************************************************************************************************************************************************************************************************************************************/
.project-search .search-list > div span:first-of-type {
  font-size: 0.7em;
}

.project-search .search-list > div img {
  grid-row: span 2;
  width: 75px;
  height: 42px;
}

.project-for-addon .autocomplete input, .project-bind-for-addon .autocomplete input {
  border: 1px solid var(--list-border-color);
}

/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/frontend/components/autocompletelist.vue?vue&type=style&index=0&id=0f5f396a&scoped=true&lang=css ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/

.search-list[data-v-0f5f396a] {
  --hover-bg-color: #ca1d61;
  --hover-color: #fff;

  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  position: absolute;
  background-color: #fff;
  box-shadow: 0 1px 2px #66666655;
  z-index: 10;
  background-clip: border-box;
  text-align: left;
  font-size: 16px;
}
.search-list > div[data-v-0f5f396a] {
  display: grid;
  grid-template-columns: 75px 1fr;
  align-items: center;
  -moz-column-gap: 0.5em;
       column-gap: 0.5em;
  height: 42px;
  padding-right: 0.5em;
  cursor: pointer;
}
.search-list > div[data-v-0f5f396a]:hover {
  background-color: var(--hover-bg-color);
  color: var(--hover-color);
}
.search-list > div span[data-v-0f5f396a]:last-of-type {
  max-height: 2.5em;
  font-size: 0.6em;
  color: #888;
  line-height: 1.2;
  align-self: center;
}
.search-list.show-description > div span[data-v-0f5f396a]:last-of-type {
  align-self: start;
}
.search-list > div:hover span[data-v-0f5f396a] {
  color: var(--hover-color);
}

/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/frontend/components/autocomplete.vue?vue&type=style&index=0&id=1814c1cc&scoped=true&lang=css ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/

.autocomplete[data-v-1814c1cc] {
  position: relative;
}
input[data-v-1814c1cc], input[data-v-1814c1cc]:focus {
  outline: none;
}

/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/frontend/components/cart/project-for-addon.vue?vue&type=style&index=0&id=349c63bd&lang=css ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/

.project-for-addon  input {
  border: 1px solid #ccc;
}

/*!*********************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./assets/js/frontend/components/promotion2/promotion2-teaser.css ***!
  \*********************************************************************************************************************************************************************************************************************************/
#promotion2-teaser {
  --bg-color: #f8f8f8;
  --wallet-bg-color: #181256;
  --discount-bg-color: #da318b;
  --header-color1: #121154;
  --header-color2: #D9308A;
  --card-color: #fff;
  --text-color: #272727;
  --btn-bg-color: #000;
  --btn-bg-hover-color: #fff;
  --btn-color: #fff;
  --btn-hover-color: #000;
  --link-color: #942867;

  position: relative;
  display: flex;
  flex-direction: column;
  max-width: 430px;
  padding: 17px 17px 34px 17px;
  border-radius: 23px;
  border: 2px solid #000;
  box-sizing: border-box;
  background-color: var(--bg-color);
  gap: 5px;
  color: var(--text-color);
}

promotion2-teaser {
  display: block;
  max-width: 430px;
  min-height: 350px;
}

#promotion2-teaser .name {
  background: linear-gradient(125deg, var(--header-color1) 0%, var(--header-color2) 50%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: 36px;
  font-weight: 800;
  line-height: 1.3;
}

#promotion2-teaser .cards {
  position: relative;
  width: 100%;
  max-width: 300px;
  height: 110px;
  margin: auto;
}

#promotion2-teaser .cards .card {
  position: absolute;
  top: 15px;
  left: 50%;
  display: flex;
  flex-direction: column;
  width: 130px;
  aspect-ratio: 1.723;
  justify-content: center;
  align-items: center;
  border-radius: 10px;
  box-shadow: 0 4px 40px 0 rgba(0, 0, 0, 0.05);
  backdrop-filter: blur(25px);
  transform: translateX(-50%) rotate(-8deg);
}

#promotion2-teaser .cards .wallet {
  background-color: var(--wallet-bg-color);
  color: var(--card-color);
}

#promotion2-teaser .cards .discount {
  background-color: var(--discount-bg-color);
  color: var(--card-color);
}

#promotion2-teaser .cards.both .wallet {
  top: 10px;
  left: calc(50% - 55px);
  z-index: 2;
}

#promotion2-teaser .cards.both .discount {
  top: 20px;
  left: calc(50% + 55px);
  z-index: 1;
}

#promotion2-teaser .cards .amount {
  font-size: 28px;
  line-height: 1.2;
}

#promotion2-teaser .cards .wallet .amount {
  font-weight: 800;
}

#promotion2-teaser .cards .text {
  text-transform: uppercase;
  font-size: 9px;
  font-weight: 700;
}

#promotion2-teaser .content {
  max-width: 425px;
  height: min-content;
  font-size: 14px;
  line-height: 1.5;
}

#promotion2-teaser.announcement .content, #promotion2-teaser:not(.small):not(.long).announcement .content {
  max-width: unset;
}

#promotion2-teaser .buttons {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  justify-content: flex-end;
  align-items: center;
  gap: 1rem;
}

#promotion2-teaser .buttons .btn {
  padding: 10px 30px;
  border-radius: 38px;
  background-color: var(--btn-bg-color);
  border: 0;
  font-weight: 700;
  font-size: inherit;
  color: var(--btn-color);
  text-transform: uppercase;
  cursor: pointer;
}

#promotion2-teaser .buttons .btn:hover {
  background-color: var(--btn-bg-hover-color);
  color: var(--btn-hover-color);
}

#promotion2-teaser .duration {
  position: absolute;
  bottom: 10px;
  right: 30px;
  font-size: 11px;
  text-align: right;
}

#promotion2-teaser.long {
  width: 100%;
  max-width: unset;
}

@media (min-width: 450px) {
  #promotion2-teaser {
    padding: 17px 32px 32px 32px;
  }

  #promotion2-teaser .cards {
    width: 320px;
  }
}

@media (min-width: 768px) {
  #promotion2-teaser.long {
    display: grid;
    max-height: 150px;
    grid-template-areas: 'cards name duration' 'cards content buttons';
    grid-template-columns: 160px 1fr minmax(auto, 300px);
    grid-template-rows: auto auto;
    padding: 20px;
    gap: 5px;
  }

  #promotion2-teaser.announcement, #promotion2-teaser.long.announcement  {
    grid-template-areas: 'name duration' 'content buttons';
    grid-template-columns: 1fr minmax(auto, 300px);
  }

  #promotion2-teaser.long .name {
    grid-area: name;
    font-size: 22px;
  }

  #promotion2-teaser.long .content {
    grid-area: content;
    max-width: unset;
    font-size: 13px;
  }

  #promotion2-teaser.long .cards {
    grid-area: cards;
    width: 100%;
    height: 110px;
    grid-row: span 2;
  }

  #promotion2-teaser.long .cards .card {
    top: 25px;
    width: 80px;
    border-radius: 5px;
  }

  #promotion2-teaser.long .cards.both .wallet {
    left: calc(50% - 30px);
  }
  #promotion2-teaser.long .cards.both .discount {
    left: calc(50% + 30px);
  }

  #promotion2-teaser.long .cards .wallet .amount, #promotion2-teaser.long .cards .discount .amount {
    font-size: 18px;
  }

  #promotion2-teaser.long .cards .text {
    font-size: 6px;
  }

  #promotion2-teaser.long .duration {
    grid-area: duration;
    position: unset;
  }

  #promotion2-teaser.long .duration span {
    display: block;
  }

  #promotion2-teaser.long .buttons {
    grid-area: buttons;
  }

  #promotion2-teaser.long .buttons .btn {
    padding: 8px 20px;
    font-size: 14px;
  }
}

@media (min-width: 992px) {
  promotion2-teaser:not(.small):not(.long), #promotion2-teaser:not(.small):not(.long) {
    display: grid;
    grid-template-columns: minmax(320px, auto) auto;
    grid-auto-rows: auto;
    max-width: 845px;
    margin: auto;
    padding: 17px 32px;
  }

  #promotion2-teaser:not(.small):not(.long) .name {
    grid-column: span 2;
  }

  #promotion2-teaser:not(.small):not(.long) .cards {
    grid-column: 1;
    grid-row: span 2;
  }

  #promotion2-teaser:not(.small):not(.long) .content {
    max-width: 338px;
    margin-top: 10px;
  }

  #promotion2-teaser:not(.small):not(.long) .duration {
    bottom: unset;
    top: 20px;
  }
}

@media (min-width: 1280px) {
  .promotion2-teaser, #promotion2-teaser.long {
    max-width: 1180px;
  }

  promotion2-teaser.long, #promotion2-teaser.long {
    grid-template-columns: 240px 1fr minmax(auto, 300px);
    grid-template-rows: 33px 50px;
  }

  #promotion2-teaser.long .name {
    font-size: 27px;
  }

  #promotion2-teaser.long .content {
    font-size: 14px;
  }

  #promotion2-teaser.long .cards .card {
    top: 10px;
    width: 122px;
    height: 71px;
    border-radius: 10px;
  }

  #promotion2-teaser.long .cards.both .discount {
    top: 15px;
    left: calc(50% + 50px);
  }

  #promotion2-teaser.long .cards.both .wallet {
    top: 5px;
    left: calc(50% - 50px);
  }

  #promotion2-teaser.long .cards .wallet .amount, #promotion2-teaser.long .cards .discount .amount {
    font-size: 27px;
  }

  #promotion2-teaser.long .cards .text {
    font-size: 8px;
  }

  #promotion2-teaser.long .duration span {
    display: inline;
  }

  #promotion2-teaser.long .buttons .btn {
    padding: 10px 30px;
    font-size: 16px;
  }
}

/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/frontend/components/promotion2/promotion2-teaser.vue?vue&type=style&index=0&id=ce11e29c&scoped=true&lang=css ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/


/*!********************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./assets/js/frontend/components/cart/addon-item.css ***!
  \********************************************************************************************************************************************************************************************************************/
.addon-item {
  --border-color: rgba(0, 0, 0, 0.1);
  --bg-simple-color: #f0f6f5;
  --descr-simple-color: #666;
  --wallet-bg-color: #181256;
  --card-color: #fff;

  position: relative;
  width: 100%;
  display: grid;
  padding: 15px;
  border-radius: 3px;
  border: 1px solid var(--border-color);
  row-gap: 5px;
  column-gap: 1rem;
}

.addon-item.simple {
  grid-template-areas: 'checkbox name name name info' '. descr descr descr descr' '. . price price price'  'text text text text text';
  grid-template-columns: 25px auto auto auto auto;
  background-color: var(--bg-simple-color);
}

.addon-item.image {
  grid-template-areas: 'checkbox . . . info' 'image image name name name' 'image image descr descr descr' '. . . price price' 'text text text text text';
  grid-template-columns: 25px auto 1fr 1fr 20px;
  grid-template-rows: 30px auto 1fr auto;
  justify-content: space-between;
}

.addon-item .checkbox {
  grid-area: checkbox;
}

.addon-item .text {
  grid-area: text
}

.addon-item .price {
  grid-area: price;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 5px;
}

.addon-item .name {
  grid-area: name;
}

.addon-item .description {
  grid-area: descr;
}

.addon-item .info {
  grid-area: info;
}

.addon-item .img {
  grid-area: image;
}

.addon-item.simple .name {
  font-size: 14px;
}

.addon-item.simple .price {
  font-size: 16px
}

.addon-item.simple .info {
  text-align: right;
}

.addon-item .description {
  font-size: 12px;
  color: var(--descr-simple-color);
}

.addon-item.image .name {
  font-size: 13px;
}

.addon-item.image .price {
  font-size: 16px;
  font-weight: bold;
}

.addon-item.image .img {
  width: 100px;
}

.addon-item .img img {
  width: 100%;
}

.addon-item .card {
  display: flex;
  flex-direction: column;
  width: 50px;
  height: 30px;
  justify-content: center;
  align-items: center;
  border-radius: 3px;
  box-shadow: 0 4px 40px 0 rgba(0, 0, 0, 0.05);
  backdrop-filter: blur(25px);
  transform: rotate(-8deg);
  font-size: 10px;
  font-weight: bold;
}

.addon-item .card.wallet {
  background-color: var(--wallet-bg-color);
  color: var(--card-color);
}

.addon-item .card .text {
  font-size: 4px;
}

.addon-item.image .card {
  position: absolute;
  top: 13px;
  right: 50px;
}

@media (min-width: 430px) {
  .addon-item.simple .name {
    font-size: 16px;
  }

  .addon-item.image .img {
    width: 115px;
  }
}

@media (min-width: 992px) {
  .addon-item.image .name {
    font-size: 15px;
  }
}

/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/frontend/components/cart/addon-item.vue?vue&type=style&index=0&id=338e511b&scoped=true&lang=css ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/


/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/frontend/components/cart/package-item.vue?vue&type=style&index=0&id=23f61dd6&scoped=true&lang=css ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/

.rounded-checkbox label[data-v-23f61dd6] {
  width: 24px;
  height: 24px;
  padding: 0;
  left: 1px;
}

/*!**************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./assets/css/frontend/common/radio-button.css ***!
  \**************************************************************************************************************************************************************************************************************/
.radio-button input[type="radio"] {
  display: none;
}

.radio-button input[type="radio"] + label {
  display: block;
  position: relative;
  padding-left: 1.8em;
  margin: 0;
  cursor: pointer;
}

.radio-button input[type="radio"] + label::before {
  position: absolute;
  top: 50%;
  left: 0;
  display: block;
  content: ' ';
  width: 1.2em;
  height: 1.2em;
  border-radius: 1em;
  border: 0.05em solid #000;
  transform: translateY(-50%);
  z-index: 1;
}

.radio-button input[type="radio"]:checked + label::before {
  border: 0.1em solid #ca1d61;
}

.radio-button input[type="radio"]:checked + label::after {
  position: absolute;
  top: 50%;
  left: 0.2em;
  display: block;
  content: ' ';
  width: 0.8em;
  height: 0.8em;
  border-radius: 1em;
  border: 1px solid var(--link-color);
  background-color: var(--link-color);
  transform: translateY(-50%);
  z-index: 2;
}

/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/frontend/components/pool/pool.vue?vue&type=style&index=0&id=8a97550a&scoped=true&lang=css ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/


/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/frontend/components/project/project-slides.vue?vue&type=style&index=0&id=3a7aa6a0&scoped=true&lang=css ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/

.no-scrollbar[data-v-3a7aa6a0] {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/frontend/components/project/project.vue?vue&type=style&index=0&id=36a42722&scoped=true&lang=css ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/

.project[data-v-36a42722] {
  --symbol-bg-color: #d9308a;
  --symbol-color: #fff;
  --area-bg-color: #351c4f;
  --area-color: #fff;
  --counters-color: #999;
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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N0lBO0VBQ0UsYUFBYTtBQUNmOztBQUVBO0VBQ0UsY0FBYztFQUNkLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFDbkIsU0FBUztFQUNULGVBQWU7QUFDakI7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsUUFBUTtFQUNSLE9BQU87RUFDUCxjQUFjO0VBQ2QsWUFBWTtFQUNaLFlBQVk7RUFDWixhQUFhO0VBQ2Isa0JBQWtCO0VBQ2xCLHlCQUF5QjtFQUN6QiwyQkFBMkI7RUFDM0IsVUFBVTtBQUNaOztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLFFBQVE7RUFDUixXQUFXO0VBQ1gsY0FBYztFQUNkLFlBQVk7RUFDWixZQUFZO0VBQ1osYUFBYTtFQUNiLGtCQUFrQjtFQUNsQixtQ0FBbUM7RUFDbkMsbUNBQW1DO0VBQ25DLDJCQUEyQjtFQUMzQixVQUFVO0FBQ1o7Ozs7Ozs7Ozs7O0FDcUJBO0VBQ0Usd0JBQXdCO0VBQ3hCLHFCQUFxQjtBQUN2Qjs7Ozs7O0FDc05BO0VBQ0UsMEJBQTBCO0VBQzFCLG9CQUFvQjtFQUNwQix3QkFBd0I7RUFDeEIsa0JBQWtCO0VBQ2xCLHNCQUFzQjtBQUN4QiIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2Fzc2V0cy9jc3MvZnJvbnRlbmQvY2FydC5jc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2Nzcy9mcm9udGVuZC9jYXJ0L3Byb2plY3QuY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9jc3MvZnJvbnRlbmQvYXV0b2NvbXBsZXRlLmNzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvY3NzL2Zyb250ZW5kL25vdGlmaWNhdGlvbnMuY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9qcy9mcm9udGVuZC9jb21wb25lbnRzL2hpbnQvaGludC5jc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2pzL2Zyb250ZW5kL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlLXByb2plY3QuY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9qcy9mcm9udGVuZC9jb21wb25lbnRzL2F1dG9jb21wbGV0ZWxpc3QudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy9qcy9mcm9udGVuZC9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS52dWUiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2pzL2Zyb250ZW5kL2NvbXBvbmVudHMvY2FydC9wcm9qZWN0LWZvci1hZGRvbi52dWUiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2pzL2Zyb250ZW5kL2NvbXBvbmVudHMvcHJvbW90aW9uMi9wcm9tb3Rpb24yLXRlYXNlci5jc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2pzL2Zyb250ZW5kL2NvbXBvbmVudHMvY2FydC9hZGRvbi1pdGVtLmNzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvZnJvbnRlbmQvY29tcG9uZW50cy9jYXJ0L3BhY2thZ2UtaXRlbS52dWUiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2Nzcy9mcm9udGVuZC9jb21tb24vcmFkaW8tYnV0dG9uLmNzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvZnJvbnRlbmQvY29tcG9uZW50cy9wcm9qZWN0L3Byb2plY3Qtc2xpZGVzLnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvZnJvbnRlbmQvY29tcG9uZW50cy9wcm9qZWN0L3Byb2plY3QudnVlIl0sInNvdXJjZXNDb250ZW50IjpbIjpyb290IHtcbiAgLS1zeW1ib2wtYmctY29sb3I6ICNkOTMwOGE7XG4gIC0tc3ltYm9sLWNvbG9yOiAjZmZmO1xuICAtLWFyZWEtYmctY29sb3I6ICMzNTFjNGY7XG4gIC0tYXJlYS1jb2xvcjogI2ZmZjtcbiAgLS1zZWxlY3Rvci1ib3JkZXItY29sb3I6ICMwMDAyO1xuICAtLXNlbGVjdG9yLWJvcmRlci1jb2xvcjI6ICMwMDA7XG4gIC0tb2stY29sb3I6ICMwOTA7XG4gIC0tZGlzY291bnQtYmctY29sb3I6ICNkYTMxOGI7XG4gIC0td2FsbGV0LWJnLWNvbG9yOiAjMTgxMjU2O1xuICAtLWNhcmQtY29sb3I6ICNmZmY7XG59XG5cbiNjb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cblxuI2NvbnRlbnQgKiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5uaWNlLWNoZWNrYm94IGxhYmVsIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG59XG5cbi5uaWNlLWNoZWNrYm94IGxhYmVsOjpiZWZvcmUge1xuICBsZWZ0OiAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ubmljZS1jaGVja2JveCBsYWJlbDo6YWZ0ZXIge1xuICBsZWZ0OiAycHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5wYXJlbnQgLm5pY2UtY2hlY2tib3ggbGFiZWw6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk5OTtcbn1cblxuI2NhcnQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEwMCU7XG4gIGdyaWQtYXV0by1yb3dzOiBhdXRvO1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiAjMzMzO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbHVtbi1nYXA6IDJyZW07XG59XG5cbiNjYXJ0IC50ZXh0LXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbiNjYXJ0IGgyIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4jY2FydCAucy1icmVhZGNydW1icyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNjYXJ0IC5yaWdodC1jb2wge1xuICBwYWRkaW5nOiAwIDIwcHggMjBweCAyMHB4O1xuICBvcmRlcjogMTtcbn1cblxuI2NhcnQgLnJpZ2h0LWNvbFtkYXRhLXN0ZXA9XCIyXCJdLCAjY2FydCAucmlnaHQtY29sW2RhdGEtc3RlcD1cIjNcIl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4jY2FydCAucmlnaHQtY29sID4gZGl2IHtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG59XG5cbiNjYXJ0IC5yaWdodC1jb2wgLnN1bW1hcnktaGVhZGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuI2NhcnQgLnN0ZXBzIHtcbiAgZ3JpZC1yb3c6IDE7XG4gIG9yZGVyOiAxO1xufVxuXG4jY2FydCAubGVmdC1jb2wge1xuICBvcmRlcjogMjtcbn1cblxuI2NhcnQgLnByb2plY3QtY2hhbmdlcyB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1hcmdpbjogMjBweDtcbiAgcGFkZGluZzogMjBweCAwO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuXG4jY2FydCAucHJvamVjdC1jaGFuZ2VzIGhlYWRlciA+IGRpdjpmaXJzdC1vZi10eXBlIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuI2NhcnQgLnByb2plY3QtY2hhbmdlcyAuZmluZC1vdXQtbW9yZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiAjZDkzMDhhO1xuICBnYXA6IDFyZW07XG59XG5cbiNjYXJ0IC5wcm9qZWN0LWNoYW5nZXMgLmZpbmQtb3V0LW1vcmUgc3ZnIHtcbiAgaGVpZ2h0OiAyNXB4O1xuICBmaWxsOiAjZDkzMDhhO1xufVxuXG4jY2FydCAucHJvamVjdC1jaGFuZ2VzIC5zd2l0Y2gge1xuICBtYXJnaW46IDIwcHggYXV0byAwIGF1dG87XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbiNjYXJ0IC5wcm9qZWN0LWNoYW5nZXMgLnN3aXRjaCBkaXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtaW4taGVpZ2h0OiA2NXB4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tc2VsZWN0b3ItYm9yZGVyLWNvbG9yKTtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjb2xvcjogIzAwMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4jY2FydCAucHJvamVjdC1jaGFuZ2VzIC5zd2l0Y2ggZGl2OmhvdmVyIHtcbiAgb3BhY2l0eTogMC43NTtcbn1cblxuI2NhcnQgLnByb21vdGlvbjIge1xuICBwYWRkaW5nOiAyMHB4O1xufVxuXG4jY2FydCAucHJvZHVjdHMge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBvcmRlcjogMjtcbn1cblxuI2NhcnQgLmFkZG9ucywgI2NhcnQgLml0ZW1zLWxpc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwYWRkaW5nOiAyMHB4O1xuICBnYXA6IDUwcHg7XG59XG5cbiNjYXJ0IC5pdGVtcy1saXN0IC50aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbiNjYXJ0IC5hZGRvbnMgLmFkZG9uLWNhdGVnb3J5IC5pdGVtcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMTVweDtcbn1cblxuI2NhcnQgLmNvbnRhY3Qge1xuICBkaXNwbGF5OiBub25lO1xuICBncmlkLXJvdzogNTtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbn1cblxuI2NhcnQgLmNhcnQtZW1wdHkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbn1cblxuLmNhcnQtZW1wdHkgLmljb24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6ICNjY2M7XG4gIGZvbnQtc2l6ZTogNGVtO1xufVxuXG4jY2FydCAuY2FydC1zdGVwcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjb2xvcjogIzMzMztcbiAgcGFkZGluZzogMXJlbSAwO1xuICBnYXA6IDFyZW07XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4jY2FydCAuY2FydC1zdGVwcyA+IGRpdiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1pbi13aWR0aDogMTQwcHg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbiNjYXJ0IC5jYXJ0LXN0ZXBzIC5ob3VzZSB7XG4gIGZvbnQtc2l6ZTogMzBweDtcbn1cblxuLmNhcnQtc3RlcHMgLmNpcmNsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aWR0aDogMjJweDtcbiAgaGVpZ2h0OiAyMnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMzMzM7XG4gIG9wYWNpdHk6IDAuNTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY2FydC1zdGVwcyAuc2VsIC5jaXJjbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2ExYzYxO1xuICBjb2xvcjogI2ZmZjtcbn1cblxuI2NhcnQgLmJhc2ljLWRhdGEge1xuICBsaW5lLWhlaWdodDogMS41O1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbiNjYXJ0IC5iYXNpYy1kYXRhIC5mZWF0dXJlcyB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbiNjYXJ0IC5iYXNpYy1kYXRhIC5mZWF0dXJlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuI2NhcnQgLmJhc2ljLWRhdGEgLmZlYXR1cmUgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gIHdpZHRoOiA2MCU7XG59XG5cbiNjYXJ0IC5iYXNpYy1kYXRhIC5mZWF0dXJlID4gZGl2Omxhc3Qtb2YtdHlwZSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbiNjYXJ0IC5iYXNpYy1kYXRhIC50aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cblxuI2NhcnQgLmNhcnQtaXRlbXMgLmhlYWRlcnMge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4jY2FydCAuY2FydC1pdGVtcyAuaXRlbXMge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuXG4jY2FydCAuY2FydC1pdGVtcyAuaXRlbTo6YWZ0ZXIge1xuICBjb250ZW50OiBub25lO1xufVxuXG4jY2FydCAuY2FydC1pdGVtcyAubWFpbiB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEyLCBhdXRvKTtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiByZXBlYXQoMiwgYXV0byk7XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNGNEY0RjQ7XG4gIGdhcDogMXJlbTtcbn1cblxuI2NhcnQgLmNhcnQtaXRlbXMgLml0ZW0gLm5hbWUge1xuICBncmlkLWNvbHVtbjogMSAvIHNwYW4gOTtcbiAgZ3JpZC1yb3c6IDE7XG4gIG9yZGVyOiAxO1xuICBtaW4taGVpZ2h0OiA0MHB4O1xuICBmb250LXNpemU6IDE1cHg7XG59XG5cbiNjYXJ0IC5jYXJ0LWl0ZW1zIC5pdGVtIC5wcmljZSB7XG4gIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAxMjtcbiAgZ3JpZC1yb3c6IDI7XG59XG5cbiNjYXJ0IC5jYXJ0LWl0ZW1zIC5pdGVtIC5vcHRpb25zIHtcbiAgZ3JpZC1jb2x1bW46IDExIC8gc3BhbiAyO1xuICBncmlkLXJvdzogMTtcbiAganVzdGlmeS1zZWxmOiBlbmQ7XG59XG5cbiNjYXJ0IC5jYXJ0LWl0ZW1zIC5pdGVtIC5leHRyYS1vcHRpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxcmVtO1xuICBtYXJnaW46IDFyZW0gMDtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuXG4jY2FydCAuY2FydC1pdGVtcyAuaXRlbSAucHJpY2UgPiBkaXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbiNjYXJ0IC5yaWdodC1jb2wgLml0ZW1zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxcmVtO1xufVxuXG4jY2FydCAucmlnaHQtY29sIC5pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBjb2x1bW4tZ2FwOiAwLjVyZW07XG4gIHJvdy1nYXA6IDFyZW07XG59XG5cbiNjYXJ0IC5yaWdodC1jb2wgLnByb2plY3Qtcm93IHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuI2NhcnQgLnJpZ2h0LWNvbCAuaXRlbSAub2xkLXByaWNlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luOiAwIDAgMCBhdXRvO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgZ2FwOiA1cHg7XG59XG5cbiNjYXJ0IC5yaWdodC1jb2wgLml0ZW0gLm9sZC1wcmljZSA+IHNwYW4ge1xuICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbn1cblxuI2NhcnQgLnJpZ2h0LWNvbCAuaXRlbSAucHJpY2Uge1xuICBtYXJnaW46IDA7XG4gIG1pbi13aWR0aDogNzBweDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbiNjYXJ0IC5yaWdodC1jb2wgLmNhcmQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3gtc2hhZG93OiAwIDRweCA0MHB4IDAgcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDI1cHgpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtOGRlZyk7XG4gIGZvbnQtc2l6ZTogMTBweDtcbn1cblxuI2NhcnQgLnJpZ2h0LWNvbCAuY2FyZC5kaXNjb3VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRpc2NvdW50LWJnLWNvbG9yKTtcbiAgY29sb3I6IHZhcigtLWNhcmQtY29sb3IpO1xufVxuXG4jY2FydCAucmlnaHQtY29sIC5jYXJkLndhbGxldCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdhbGxldC1iZy1jb2xvcik7XG4gIGNvbG9yOiB2YXIoLS1jYXJkLWNvbG9yKTtcbn1cblxuI2NhcnQgLnJpZ2h0LWNvbCAuY2FyZCAudGV4dCB7XG4gIGZvbnQtc2l6ZTogNHB4O1xufVxuXG5cbiNjYXJ0IC5yaWdodC1jb2wgLml0ZW0gLmRpc2NvdW50LXRpdGxlLCAjY2FydCAucmlnaHQtY29sIC5pdGVtIC5kaXNjb3VudC1ub3JtYWwtcHJpY2Uge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4jY2FydCAuYmlnLWNoZWNrYm94IGxhYmVsOjphZnRlciB7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG59XG5cbiNjYXJ0IC5iaWctY2hlY2tib3ggbGFiZWw6OmJlZm9yZSB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG59XG5cbiNjYXJ0IC5ub3RpY2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZiZGZjO1xuICBjb2xvcjogIzAwMDtcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHBhZGRpbmc6IDFyZW0gMS41cmVtO1xuICBtYXJnaW46IDFyZW0gMDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBsaW5lLWhlaWdodDogMS40O1xufVxuXG4jY2FydCAubm90aWNlIGEge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5jYXJ0LXN0ZXBzIC5zZWwgLmNpcmNsZSB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbiNjYXJ0IC5saW5rIHtcbiAgcGFkZGluZzogMDtcbn1cblxuI2NhcnQgLnJpZ2h0LWNvbCAudG9wIHtcbiAgb3JkZXI6IDE7XG59XG5cbiNjYXJ0IC5yaWdodC1jb2wgLmJhc2ljLWRhdGEge1xuICBvcmRlcjogMjtcbn1cblxuI2NhcnQgLnRvcCAucHJvamVjdC10aHVtYiBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG59XG5cbiNjYXJ0IC50b3AtYnV0dG9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGNvbG9yOiAjMzMzO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDEwcHggMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4jY2FydCAuZG91YmxlIC50b3AtYnV0dG9uIHtcbiAgd2lkdGg6IGNhbGMoNTAlIC0gMXB4KTtcbn1cblxuI2NhcnQgLnRvcC1idXR0b24gYSB7XG4gIGNvbG9yOiAjMzMzO1xufVxuXG4jY2FydCAudG9wLWJ1dHRvbiBzdmcge1xuICBkaXNwbGF5OiBub25lO1xuICBmb250LXNpemU6IDIwcHg7XG4gIG1hcmdpbjogMCAxMHB4O1xufVxuXG4jY2FydCAuYXZhaWxhYmlsaXR5LW5vdGljZSB7XG4gIG1hcmdpbjogMXJlbSBhdXRvO1xuICBib3JkZXItdG9wOiAycHggc29saWQgIzAwMDtcbiAgcGFkZGluZy10b3A6IDFyZW07XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4jY2FydCAudG90YWwtc3VtbWFyeSAuc2F2aW5nIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuI2NhcnQgLnByb2plY3QtbGluayB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgY29sb3I6ICMwMDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBoZWlnaHQ6IDYwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbiNjYXJ0IC5jYXJ0LWJ1dHRvbiB7XG4gIG1hcmdpbjogYXV0bztcbiAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgY29sb3I6ICNmZmY7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDEwcHggMDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4jY2FydCAuY2FydC1idXR0b24uZGlzYWJsZSBhIHtcbiAgY29sb3I6ICNmZmY7XG59XG5cbiNjYXJ0IC5jYXJ0LWJ1dHRvbi5kaXNhYmxlIHtcbiAgYmFja2dyb3VuZDogI0VGRUZFRjtcbiAgY29sb3I6ICM5OTk7XG59XG5cbiNjYXJ0IC5jYXJ0LWJ1dHRvbi5kaXNhYmxlIGEge1xuICBjb2xvcjogIzk5OTtcbn1cblxuI2NhcnQgLmNhcnQtYnV0dG9uIC5mYS1ob3VzZSwgI2NhcnQgLmNhcnQtYnV0dG9uIC5mYS1maWxlLXBkZiB7XG4gIG1hcmdpbjogMCAxMHB4O1xufVxuXG4jY2FydCAucHJvamVjdC1idXR0b24ge1xuICBmb250LXNpemU6IDE1cHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGJhY2tncm91bmQ6ICNFRkVGRUY7XG4gIHBhZGRpbmc6IDA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4jY2FydCAucHJvamVjdC1idXR0b24gPiAuY2FydC1idXR0b246bnRoLWNoaWxkKDIpIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZmZmO1xufVxuXG4jY2FydCAucHJvamVjdC1idXR0b24gLnRvcC1idXR0b246bnRoLWNoaWxkKDIpIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZmZmO1xufVxuXG4jY2FydCAuY2FydC1idXR0b24ubGluaywgI2NhcnQgLmRpc2NvdW50LWJ1dHRvbi5saW5rIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4jY2FydCAuY2FydC1idXR0b24uZGlzYWJsZSB7XG4gIGJhY2tncm91bmQ6ICNFRkVGRUY7XG59XG5cbiNjYXJ0IC5jb250YWN0IHtcbiAgcGFkZGluZzogMTZweDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBjb2xvcjogIzMzMztcbn1cblxuI2NhcnQgLmNvbnRhY3QgLnRpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuXG5cbiNjYXJ0IC5oaWRlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4jY2FydCAuc2VjdGlvbi10aXRsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBiYWNrZ3JvdW5kOiAjMzMzO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuI2NhcnQgLmNhcnQtaXRlbXMgLnNlY3Rpb24tdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG59XG5cbiNjYXJ0IC5jYXJ0LWl0ZW1zIC5zZWN0aW9uLXRpdGxlLmV4cGFuZGVkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuI2NhcnQgLmNhcnQtaXRlbXMgLm5hbWUge1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4jY2FydCAubW9yZS1hZGRvbnMtbGlzdCAubmFtZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMXJlbTtcbn1cblxuI2NhcnQgLm1vcmUtYWRkb25zIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbn1cblxuI2NhcnQgLm1vcmUtYWRkb25zIC5mYS1wbHVzLXNxdWFyZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDMycHg7XG4gIGZvbnQtc2l6ZTogMjVweDtcbiAgdG9wOiAxMnB4O1xuICBjb2xvcjogI2ZmZjtcbn1cblxuI2NhcnQgLm1vcmUtYWRkb25zLWxpc3QsICNjYXJ0IC5vdGhlci1hZGRvbnMtbGlzdCB7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG59XG5cbiNjYXJ0IC5zaGlwbWVudHMsICNjYXJ0IC5hZGRyZXNzIHtcbiAgcGFkZGluZzogMS41cmVtO1xufVxuXG4jY2FydCAuc2hpcG1lbnRzIC5pbmZvIHtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cblxuLnNoaXBtZW50cy10aXRsZSwgLmFkZHJlc3MgaDIge1xuICBtYXJnaW4tYm90dG9tOiAyM3B4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDIwcHg7XG59XG5cbiNjYXJ0IC5jb25maXJtZWQtc2hpcG1lbnRzIGgyIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuXG4jY2FydCAuY29uZmlybWVkLXNoaXBtZW50cyAubGlzdCB7XG4gIHBhZGRpbmc6IDEuNXJlbTtcbn1cblxuLmFkZHJlc3MgLmV4cGFuZGFibGUge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbiNjYXJ0IC5hZGRyZXNzIGhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuI2NhcnQgLnNoaXBtZW50LWxpc3Qge1xuICBkaXNwbGF5OiBncmlkO1xuICB3aWR0aDogMTAwJTtcbiAgZ2FwOiAwLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDVyZW07XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuI2NhcnQgLnNoaXBtZW50LWxpc3QgaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgbGFiZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG4gIG1hcmdpbjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4jY2FydCAuc2hpcG1lbnQtbGlzdCBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBsYWJlbDpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29udGVudDogJyAnO1xuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjMDAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHotaW5kZXg6IDE7XG59XG5cbiNjYXJ0IC5zaGlwbWVudC1saXN0IGlucHV0W3R5cGU9XCJyYWRpb1wiXTpjaGVja2VkICsgbGFiZWw6YmVmb3JlIHtcbiAgYm9yZGVyOiAycHggc29saWQgI2NhMWQ2MTtcbn1cblxuI2NhcnQgLnNoaXBtZW50LWxpc3QgaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBsYWJlbDphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDNweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbnRlbnQ6ICcgJztcbiAgd2lkdGg6IDEycHg7XG4gIGhlaWdodDogMTJweDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhMWQ2MTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NhMWQ2MTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB6LWluZGV4OiAyO1xufVxuXG4jY2FydCAuc2hpcG1lbnQtbGlzdCA+IGRpdi5jaGVja2VkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzAwMDtcbn1cblxuLnByb2R1Y3RzIC50b3RhbCA+IGRpdiB7XG4gIG1hcmdpbi1ib3R0b206IDFweDtcbiAgYmFja2dyb3VuZDogI2Y5ZjlmOTtcbiAgY29sb3I6ICMzMzM7XG59XG5cbiNjYXJ0IC5hdmFpbGFiaWxpdHktbm90aWNlIHtcbiAgY29sb3I6ICMzMzM7XG59XG5cbiNjYXJ0IC5pbnB1dCBpbnB1dCwgI2NhcnQgdGV4dGFyZWEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjZGNkY2O1xuICBoZWlnaHQ6IDQycHg7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgY29sb3I6ICM2NjY7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuI2NhcnQgLmlucHV0IGlucHV0IHtcbiAgcGFkZGluZy1sZWZ0OiA0MHB4O1xufVxuXG4jY2FydCAuYWRkcmVzcyAuZXJyb3IgaW5wdXQge1xuICBib3JkZXI6IDFweCBzb2xpZCByZWQ7XG59XG5cbiNjYXJ0IC5hZGRyZXNzIGZpZWxkc2V0IHtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbn1cblxuI2NhcnQgLmFkZHJlc3MgLmlucHV0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbn1cblxuI2NhcnQgLmFkZHJlc3MgLmlucHV0IHN2ZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBjb2xvcjogIzY2NjtcbiAgYm90dG9tOiAtMzRweDtcbiAgbGVmdDogMTJweDtcbn1cblxuI2NhcnQgLmFkZHJlc3MgLm5pcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDFyZW07XG59XG5cbiNjYXJ0IC5hZGRyZXNzIC5uaXAgaW5wdXQge1xuICB3aWR0aDogY2FsYygxMDAlIC0gNDBweCk7XG59XG5cbiNjYXJ0IC5hZGRyZXNzIC5uaXAgc3ZnIHtcbiAgd2lkdGg6IDI1cHg7XG4gIGhlaWdodDogMjVweDtcbiAgcG9zaXRpb246IHVuc2V0O1xuICB0b3A6IHVuc2V0O1xuICBsZWZ0OiB1bnNldDtcbiAgZmlsbDogIzA5MDtcbn1cblxuLmNhcnQtcHJvamVjdC1jaGFuZ2VzIC5maWVsZCwgLmNhcnQtcmVtYXJrcyAuZmllbGQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDFyZW07XG59XG5cbi5jYXJ0LWl0ZW0ucm93IC5wcm9tbyAucHJvZml0IHtcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7XG59XG5cbi5jYXJ0LWl0ZW0ucm93IC5jYXJ0LWl0ZW0tcHJpY2Uge1xuICB3aWR0aDogMTMlO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xufVxuXG4uaGludCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmhpbnQgc3ZnIHtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbn1cblxuLmNhcnQtaXRlbS5yb3c6bnRoLW9mLXR5cGUob2RkKSwgLmNhcnQtc2hpcG1lbnQgLmNhcnQtb3B0aW9ucyB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZDBkMGQwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2QwZDBkMDtcbn1cblxuLmNhcnQtaXRlbS5yb3cgPiBkaXYge1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbi5jYXJ0LXRvdGFsLW5ldywgLmNhcnQtc2hpcG1lbnQtY29zdCB7XG4gIGRpc3BsYXk6IHRhYmxlLXJvdztcbn1cblxuLmNhcnQtdG90YWwtbmV3IC5sYWJlbCwgLmNhcnQtc2hpcG1lbnQtY29zdCAubGFiZWwge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmNhcnQtdG90YWwtbmV3IC5hbW91bnQsIC5jYXJ0LXNoaXBtZW50LWNvc3QgLmFtb3VudCB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMjVweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4uY2FydC10b3RhbC1uZXcgLmxhYmVsLCAuY2FydC1zaGlwbWVudC1jb3N0IC5sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTlweDtcbn1cblxuLmNhcnQtdG90YWwtbmV3LmZpeGVkIC5sYWJlbCwgLmNhcnQtdG90YWwtbmV3LmZpeGVkIC5hbW91bnQsIC5jYXJ0LXNoaXBtZW50LWNvc3QuZml4ZWQgLmxhYmVsLCAuY2FydC1zaGlwbWVudC1jb3N0LmZpeGVkIC5hbW91bnQge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiAxMHB4O1xuICB0b3A6IDEwcHg7XG4gIHotaW5kZXg6IDE7XG4gIGJhY2tncm91bmQ6ICNmMmYyZjI7XG4gIHBhZGRpbmc6IDVweDtcbn1cblxuLmNhcnQtdG90YWwtbmV3LmZpeGVkIC5sYWJlbCB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4uY2FydC10b3RhbC1uZXcuZml4ZWQgLmFtb3VudCwgLmNhcnQtc2hpcG1lbnQtY29zdC5maXhlZCAuYW1vdW50IHtcbiAgdG9wOiAzN3B4O1xufVxuXG5cbi5jYXJ0LXByb2plY3QtY2hhbmdlcyBoMjo6Zmlyc3QtbGV0dGVyIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuI2NhcnQgLmNhcnQtcHJvamVjdC1jaGFuZ2VzIHRleHRhcmVhLCAjY2FydCAuY2FydC1yZW1hcmtzIHRleHRhcmVhIHtcbiAgaGVpZ2h0OiAyMDBweDtcbiAgcGFkZGluZzogMTBweCAxNXB4O1xufVxuXG4uY2FydC1jdXN0b21lci1hZGRyZXNzZXMge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLXRvcDogNTBweDtcbn1cblxuLmNhcnQtY3VzdG9tZXItYWRkcmVzc2VzID4gZGl2IHtcbiAgcGFkZGluZzogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5jYXJ0LWN1c3RvbWVyLWFkZHJlc3NlcyA+IGRpdjpmaXJzdC1jaGlsZCwgLmNhcnQtY3VzdG9tZXItYWRkcmVzc2VzIGFkZHJlc3MgPiBoMzpmaXJzdC1jaGlsZCB7XG4gIGZvbnQtc2l6ZTogMjNweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgYmFja2dyb3VuZDogI2NhMWQ2MTtcbiAgY29sb3I6ICNmZmY7XG4gIHBhZGRpbmc6IDdweCAwO1xufVxuXG4uY2FydC1jdXN0b21lci1hZGRyZXNzZXMgYWRkcmVzcyA+IGgzOmZpcnN0LWNoaWxkIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmNhcnQtY3VzdG9tZXItYWRkcmVzc2VzID4gZGl2Om50aC1jaGlsZCgyKSB7XG4gIHBhZGRpbmc6IDIwcHggMCAwO1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi5jYXJ0LWN1c3RvbWVyLWFkZHJlc3NlcyA+IGRpdjpudGgtY2hpbGQoMikgaDQge1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbi5jYXJ0LWN1c3RvbWVyLWFkZHJlc3NlcyA+IGRpdiA+ICoge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgMCAwIDIwcHg7XG4gIHdpZHRoOiBjYWxjKDM2JSAtIDIwcHgpO1xufVxuXG4uY2FydC1jdXN0b21lci1hZGRyZXNzZXMgPiBkaXYgPiBoMyB7XG4gIGZvbnQtc2l6ZTogMjNweDtcbn1cblxuLmNhcnQtY3VzdG9tZXItYWRkcmVzc2VzID4gZGl2ID4gKjpudGgtY2hpbGQoMykge1xuICB3aWR0aDogY2FsYygyOCUgLSA0MHB4KTtcbn1cblxuLmNhcnQtY3VzdG9tZXItYWdyZWVtZW50cyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcGFkZGluZzogMS41cmVtO1xuICBnYXA6IDFyZW07XG59XG5cbiNjYXJ0IC5hZG8taW5mbyB7XG4gIG9yZGVyOiAzO1xufVxuXG4uY2FydC1jdXN0b21lci1hZ3JlZW1lbnRzIGEsIC5hZG8taW5mbyBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogI2NhMWQ2MTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5jYXJ0LWN1c3RvbWVyLWFncmVlbWVudHMgZGl2LnJvdyB7XG4gIG1hcmdpbjogMzBweCAwIDA7XG59XG5cbi5jYXJ0LWN1c3RvbWVyLWFncmVlbWVudHMgPiBkaXY6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDI1cHg7XG59XG5cbiNjYXJ0IC5jYXJ0LWN1c3RvbWVyLWFncmVlbWVudHMgLm5pY2UtY2hlY2tib3ggbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IDJyZW07XG59XG5cbi5jYXJ0LWN1c3RvbWVyLWFncmVlbWVudHMgLmVycm9yLW1zZyB7XG4gIG1hcmdpbjogMXJlbSAwIDAgY2FsYygycmVtICsgMzBweCk7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5jYXJ0X2N1c3RvbWVyX3Rlcm1zX2FjY2VwdGVkX2F0LmVycm9yIHtcbiAgYm9yZGVyOiAycHggc29saWQgcmVkO1xufVxuXG4uY2FydF9jdXN0b21lcl90ZXJtc19hY2NlcHRlZF9hdC5lcnJvciAuZXJyb3ItbXNnIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5jYXJ0LWJ1dHRvbnMgPiBpbnB1dDpob3ZlciwgLnBuZyBhLmJ1dHRvbjpob3ZlciwgLmNhcnQtYWRkb25zIC5jb250YWluZXIgPiBkaXYubW9yZS1mZXdlcjpob3ZlciwgLmNhcnQtc3RlcHMgaDIgc3Bhbi5mYTpob3ZlciB7XG4gIG9wYWNpdHk6IDAuNztcbn1cblxuLmNvbnN0cnVjdGlvbiBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogI2NhMWQ2MTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDEuNztcbn1cblxuLmNvbnN0cnVjdGlvbiBzcGFuIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMjtcbn1cblxuI2NhcnQgLmNhcnQtaXRlbXMgLmhlYWRlcnMge1xuICBtYXJnaW46IDA7XG59XG5cbiNjYXJ0IC5jYXJ0LWl0ZW1zIC5pdGVtcyA+IGRpdjpudGgtY2hpbGQob2RkKSB7XG4gIGJhY2tncm91bmQ6ICNmYWZhZmE7XG59XG5cbiNjYXJ0IC5jYXJ0LWl0ZW1zIC5pdGVtcyA+IGRpdi5pbi1jYXJ0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjhmODtcbn1cblxuI2NhcnQgLmRpc2NvdW50LW5vcm1hbC1wcmljZSB7XG4gIGNvbG9yOiAjY2NjO1xuICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbiNjYXJ0IC5jYXJ0LWl0ZW1zIC5wcmljZSB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgY29sb3I6ICMzMzM7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIG9yZGVyOiAzO1xufVxuXG4jY2FydCAuZGlzY291bnQtdGl0bGUge1xuICB3aWR0aDogNTAlO1xuICBjb2xvcjogI0NBMUQ2MTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBvcmRlcjogMTtcbn1cblxuI2NhcnQgLmF2YWlsYWJpbGl0eSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6ICM5OTk5OTk7XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xufVxuXG4jY2FydCA+IGRpdiB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5jb25maXJtYXRpb24tb3JkZXItZGF0YSBoMiB7XG4gIHBhZGRpbmc6IDVweCAxNnB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGNvbG9yOiAjMzMzO1xufVxuXG4uYWRkcmVzcyAuaW5wdXQgbGFiZWwge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiAjYWFhO1xuICBsaW5lLWhlaWdodDogMzNweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4jY2FydCAub3RoZXItYWRkcmVzcyAubmljZS1jaGVja2JveCB7XG4gIG1hcmdpbjogMXJlbSAwO1xufVxuXG4jY2FydCAub3RoZXItYWRkcmVzcyAubmljZS1jaGVja2JveCBsYWJlbCB7XG4gIG1hcmdpbi1yaWdodDogMnJlbTtcbn1cblxuI2NhcnQgLmFkZHJlc3MgLmNvbW1lbnRzIHRleHRhcmVhLCAjY2FydCAuY29uZmlybWF0aW9uLW9yZGVyLWRhdGEgdGV4dGFyZWEge1xuICBoZWlnaHQ6IDEyMHB4O1xuICBwYWRkaW5nOiAxcmVtO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICByZXNpemU6IHZlcnRpY2FsO1xufVxuXG4jY2FydCB0ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2NjYztcbn1cblxuI2NhcnQgLmFkZHJlc3MgLmNvbW1lbnRzIC5pbnB1dCwgI2NhcnQgLmNvbmZpcm1hdGlvbi1vcmRlci1kYXRhIC5pbnB1dCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuI2NhcnQgLmFkZHJlc3MgLmNvbW1lbnRzIC5pbnB1dCAuZmEtZWRpdCB7XG4gIHRvcDogMTBweDtcbiAgcmlnaHQ6IDEwcHg7XG4gIGZvbnQtc2l6ZTogMjVweDtcbiAgbGVmdDogdW5zZXQ7XG4gIGJvdHRvbTogdW5zZXQ7XG59XG5cbiNjYXJ0IC5jb25maXJtYXRpb24tb3JkZXItZGF0YSAuZmllbGQgLmZhLWVkaXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMjBweDtcbiAgcmlnaHQ6IDEuNXJlbTtcbiAgZm9udC1zaXplOiAyNXB4O1xufVxuXG4jY2FydCAuYWRkcmVzcyBmb3JtID4gLnJvdy5uby1tYXJnaW4ge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG4jY2FydCAuYWRkcmVzcyAuY29tcGFueS1zZWN0aW9uLCAjY2FydCAuYWRkcmVzcyAub3RoZXItYWRkcmVzcyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuI2NhcnQgLmFkZHJlc3MgaDIgPiBzcGFuIHtcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIGNvbG9yOiAjOTk5O1xufVxuXG4jY2FydCAuYWRkcmVzcyAuZXhwYW5kIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAyNXB4O1xuICBjb2xvcjogI0NBMUQ2MTtcbn1cblxuI2NhcnQgLmFkZHJlc3MgLmV4cGFuZCBzcGFuIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xufVxuXG4jY2FydCAub25vZmZzd2l0Y2gge1xuICBsZWZ0OiAtMTVweDtcbn1cblxuI2NhcnQgLmNvbmZpcm1hdGlvbi1vcmRlci1kYXRhIC5pbnB1dCB7XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4jY2FydCAubWFpbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuI2NhcnQgLnByb2R1Y3RzIC5jYXJ0LWJ1dHRvbnMge1xuICBtYXJnaW4tdG9wOiAyMnB4O1xufVxuXG4jY2FydCAubW9iaWxlLWZvb3RlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvcmRlcjogNDtcbiAgcGFkZGluZzogMXJlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNmNGY0ZjQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuI2NhcnQgLnJpZ2h0LWNvbCAuY2FydC1idXR0b25zIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuI2NhcnQgLm1vYmlsZS1mb290ZXIuY2FydC1idXR0b25zIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW4tdG9wOiAwO1xuICB6LWluZGV4OiAxMFxufVxuXG4jY2FydCAucmlnaHQtY29sIC50b3RhbC1zdW1tYXJ5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuI2NhcnQgLmNvbW1lbnRzIGgyIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuI2NhcnQgLmNvbmZpcm1hdGlvbiAuc2hpcG1lbnRzIC5zZWN0aW9uLXRpdGxlLCAjY2FydCAuY29uZmlybWF0aW9uIC5jb25maXJtYXRpb24tb3JkZXItZGF0YSAuc2VjdGlvbi10aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCcsICdPcGVuIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBjb2xvcjogIzMzMztcbiAgZm9udC1zaXplOiAxOHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuI2NhcnQgLmNvbmZpcm1hdGlvbiAuY29uZmlybWF0aW9uLW9yZGVyLWRhdGEgLnNlY3Rpb24tdGl0bGUge1xuICBjb2xvcjogIzMzMztcbn1cblxuI2NhcnQgLmNvbmZpcm1hdGlvbiAubmljZS1jaGVja2JveCBsYWJlbCB7XG4gIGNvbG9yOiAjNzA3MDcwO1xufVxuXG4jY2FydCAubG9hZGVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMTAwdnc7XG4gIGhlaWdodDogMTAwdmg7XG4gIGJhY2tncm91bmQ6ICMzMzM7XG4gIG9wYWNpdHk6IDAuODtcbiAgei1pbmRleDogOTk5ODtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xufVxuXG4jY2FydCAubG9hZGVyIC5zcGluIHtcbiAgYm9yZGVyOiAxNnB4IHNvbGlkICNmM2YzZjM7XG4gIGJvcmRlci10b3A6IDE2cHggc29saWQgI0NBMUQ2MTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB3aWR0aDogMTIwcHg7XG4gIGhlaWdodDogMTIwcHg7XG4gIGFuaW1hdGlvbjogc3BpbiAycyBsaW5lYXIgaW5maW5pdGU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogY2FsYyg1MCUgLSA2MHB4KTtcbiAgdG9wOiBjYWxjKDUwJSAtIDYwcHgpO1xuICB6LWluZGV4OiA5OTk5O1xufVxuXG4jY2FydCAuY29uZmlybWF0aW9uIC5jb25maXJtYXRpb24tb3JkZXItZGF0YSB7XG4gIGNvbG9yOiAjNzA3MDcwO1xufVxuXG4jY2FydCAuY29uZmlybWF0aW9uIC5kaXNjb3VudC1idXR0b24ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4jY2FydCAuY29uZmlybWF0aW9uIC5kaXNjb3VudC1idXR0b24uYW1vdW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYmFja2dyb3VuZDogI0Y2RjZGNjtcbiAgY29sb3I6ICMzMzM7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbWluLWhlaWdodDogNDRweDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuI2NhcnQgLmNvbmZpcm1hdGlvbiAuZGlzY291bnQtYnV0dG9uLmFtb3VudCBzcGFuIHtcbiAgZm9udC1zaXplOiAyOHB4O1xufVxuXG4jY2FydCAuY29uZmlybWF0aW9uIC5jYXJ0LWJ1dHRvbnMgLm5leHQge1xuICBiYWNrZ3JvdW5kOiAjQ0ExRDYxO1xuICBmb250LXNpemU6IDE4cHg7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgaGVpZ2h0OiA0NHB4O1xufVxuXG4jY2FydCAuY29uZmlybWF0aW9uIC5hZG8taW5mbyB7XG4gIGNvbG9yOiAjOTk5OTk5O1xuICBwYWRkaW5nOiAxNnB4IDA7XG59XG5cbiNjYXJ0IC5tb3JlLWFkZG9ucyB7XG4gIGJvdHRvbTogMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICB3aWR0aDogMTAwJTtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBwYWRkaW5nOiAzMHB4IDA7XG4gIHotaW5kZXg6IDk5ODtcbiAgbGVmdDogMDtcbn1cblxuI2NhcnQgLm1vcmUtYWRkb25zID4gZGl2IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4jY2FydCAubW9yZS1hZGRvbnMubGVzcyB7XG4gIGJvdHRvbTogLTI1cHg7XG59XG5cbiNjYXJ0IC5tb3JlLWFkZG9ucyBzcGFuIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuI2NhcnQgLmNhcnQtaXRlbXMgLm1haW4taXRlbXMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbiNjYXJ0IC5jb25maXJtYXRpb24gLnNlY3Rpb24tdGl0bGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW5cbn1cblxuI2NhcnQgLmNvbmZpcm1hdGlvbiAuc2VjdGlvbi10aXRsZSBzdmcge1xuICBmb250LXNpemU6IDI1cHg7XG59XG5cbiNjYXJ0IC5jb25maXJtYXRpb24gLnNlY3Rpb24tdGl0bGUuZWRpdCBzdmcge1xuICBjb2xvcjogI0NBMUQ2MTtcbn1cblxuI2NhcnQgLnRvcC1jaGVja2JveCAuc2VsZWN0ZWQtdGl0bGUge1xuICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbiNjYXJ0IC5jYXJ0LWl0ZW1zIC5iaWctY2hlY2tib3gge1xuICBmbGV4OiAwIDAgMzBweDtcbiAgcmlnaHQ6IDE0cHg7XG4gIG1heC13aWR0aDogMzBweDtcbiAgcGFkZGluZzogMDtcbiAgb3JkZXI6IDQ7XG59XG5cbiN1cmdlbnQtbWVzc2FnZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNjYXJ0IC5zaGlwbWVudHMgLmNvc3QtcGxhY2Vob2xkZXIge1xuICBmb250LXNpemU6IDE0cHg7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuI2NhcnQgLnNoaXBtZW50cyAuZXJyb3I6YmVmb3JlIHtcbiAgYm9yZGVyOiAxcHggc29saWQgcmVkO1xufVxuXG4jY2FydCAuc2hpcG1lbnRzIC5zaGlwbWVudC1lcnJvciB7XG4gIHBhZGRpbmc6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmUyMTIxO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbiNjYXJ0IC5jb21wYW55LXRlcm1zIHtcbiAgcGFkZGluZy10b3A6IDE2cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLmNhcnQtaXRlbS1oaW50IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjb2xvcjogIzcwNzA3MDtcbiAgcGFkZGluZzogMXB4IDVweDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cblxuLmNhcnQtaXRlbS1oaW50IGEge1xuICBjb2xvcjogIzcwNzA3MDtcbn1cblxuLmljb24taGludC5jbGlja2FibGUge1xuICBjdXJzb3I6IGhlbHA7XG59XG5cbi5jYXJ0LWFkZG9ucyAuY29udGFpbmVyIC5vdmVybGF5OmhvdmVyIC5pY29uLWhpbnQge1xuICBvcGFjaXR5OiAxO1xufVxuXG4uaWNvbi1oaW50LmZhZGVhYmxlID4gLmNhcnQtcG9wdXAtY29udGFpbmVyID4gLmNhcnQtYmFsbG9vbixcbi5pY29uLWhpbnQuZmFkZWFibGUgPiAuY2FydC1wb3B1cC1jb250YWluZXIgPiAuY2FydC1wb3B1cCB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgb3BhY2l0eTogMDtcbn1cblxuLmljb24taGludC5mYWRlYWJsZS5zaG93ID4gLmNhcnQtcG9wdXAtY29udGFpbmVyID4gLmNhcnQtYmFsbG9vbixcbi5pY29uLWhpbnQuZmFkZWFibGUuc2hvdyA+IC5jYXJ0LXBvcHVwLWNvbnRhaW5lciA+IC5jYXJ0LXBvcHVwIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGVhc2Utb3V0O1xufVxuXG4uY2FydC1wb3B1cCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXI6IDFweCBzb2xpZCBibGFjaztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHotaW5kZXg6IDEwMjQ7XG59XG5cbi5jYXJ0LXBvcHVwLXNpbXBsZSB7XG4gIHdpZHRoOiAyMDBweDtcbiAgcGFkZGluZzogMjBweDtcbiAgcmlnaHQ6IC0xMTBweDtcbn1cblxuLmNsaWNrZWQgLmNhcnQtcG9wdXAge1xuICB3aWR0aDogMjgwcHg7XG4gIHBhZGRpbmc6IDIwcHggMTBweDtcbn1cblxuLmNhcnQtcG9wdXAgaW1nIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1sZWZ0OiAtMTkwcHg7XG59XG5cbi5jYXJ0LXBvcHVwIHVsIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1sZWZ0OiAtMTkwcHg7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbn1cblxuLmNsaWNrZWQgLmNhcnQtcG9wdXAgaW1nLCAuY2xpY2tlZCAuY2FydC1wb3B1cCB1bCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jYXJ0LXBvcHVwIHVsIGxpIHtcbiAgY29sb3I6IHdoaXRlO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgcGFkZGluZzogMCAxMHB4O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5jYXJ0LXBvcHVwIGgxIHtcbiAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAyOHB4O1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiAjMjIyO1xufVxuXG4uY2FydC1wb3B1cCBwIHtcbiAgY29sb3I6ICMyMjIgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMTMwJTtcbn1cblxuLmNhcnQtcG9wdXAgcC50aXRsZSB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLmNhcnQtcG9wdXAgcC5kZXNjcmlwdGlvbiB7XG4gIG1hcmdpbjogMTBweCAwO1xufVxuXG4uY2FydC1wb3B1cCBwLnByaWNlIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIG1hcmdpbi1yaWdodDogNTBweDtcbn1cblxuLmNhcnQtcG9wdXAgcC5wcmljZSArIHAucHJpY2Uge1xuICBtYXJnaW4tdG9wOiA1cHg7XG59XG5cbi5jYXJ0LXBvcHVwIHAucHJpY2Ugc3Bhbi5ncmF0aXMge1xuICBjb2xvcjogI2NhMWQ2MTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5jYXJ0LXBvcHVwIHAucHJpY2Ugc3Bhbi5hbW91bnQge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLmNhcnQtcG9wdXAgcC5wcmljZSBzcGFuLmFtb3VudC1vbGQge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG59XG5cbi5jYXJ0LXBvcHVwIHAucHJpY2Ugc3Bhbi5hbW91bnQtbmV3IHtcbiAgY29sb3I6ICNjYTFkNjE7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDIwMCU7XG59XG5cbi5jYXJ0LXBvcHVwIGltZywgLmNhcnQtcG9wdXAgdWwge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4jY2FydCAuY2FydC1jdXN0b21lci1hZ3JlZW1lbnRzIGxhYmVsIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtaW4taGVpZ2h0OiAyMHB4O1xufVxuXG4jY2FydCAubmljZS1jaGVja2JveCBsYWJlbCAuY2FydC1pdGVtLWhpbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMXB4O1xufVxuXG4jY2FydCAuY2FydC1wYXJlbnQtaW5mbyB7XG4gIGJhY2tncm91bmQ6ICNFMUU4RUI7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNDOURCRTM7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIG1hcmdpbjogMXJlbTtcbiAgZm9udC1zaXplOiAxNXB4O1xufVxuXG4jY2FydCAjZmlsZXMtY29udGFpbmVyIHtcbiAgcGFkZGluZzogNXB4IDE2cHg7XG59XG5cbiNjYXJ0ICNmaWxlcy1jb250YWluZXIgYSB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbGVmdDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDhweDtcbn1cblxuI2NhcnQgLm1vcmUtYWRkb25zIC5zZWN0aW9uLXRpdGxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4jY2FydCAuc2Vjb25kLWN1cnJlbmN5LWluZm8ge1xuICBjb2xvcjogI0NBMUQ2MTtcbiAgZm9udC1zaXplOiAxNXB4O1xufVxuXG4uc2FudGEtZ2lmdCB7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4jY2FydCAuc2hpcG1lbnRzIC5jaGVja2JveGVzIC5kaXNhYmxlZCBsYWJlbCB7XG4gIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICBjb2xvcjogIzVmNWY1Zjtcbn1cblxuLnBheW1lbnQtaW5mbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMXJlbTtcbiAgbWFyZ2luOiBhdXRvIDFyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNjYTFjNjEyMjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhMWM2MTU1O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGNvbG9yOiAjY2ExYzYxO1xuICBmb250LXNpemU6IDE1cHg7XG59XG5cbi5hbGZhYmFuay1mYWlsdXJlIHtcbiAgbWluLWhlaWdodDogNzB2aDtcbn1cblxuQGtleWZyYW1lcyBzcGluIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cblxuLnBheW1lbnQtZmFpbGVkIHtcbiAgcGFkZGluZzogMS41cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBjb2xvcjogI2UwMDtcbn1cblxuLnBheW1lbnQtZmFpbGVkIGgzIHtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5jaG9vc2UtZHBkLXBpY2t1cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1heC13aWR0aDogMzYwcHg7XG4gIG1hcmdpbjogMS41cmVtIGF1dG87XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGdhcDogMXJlbTtcbn1cblxuLmNob29zZS1kcGQtcGlja3VwIC5jaG9zZW4ge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLmNob29zZS1kcGQtcGlja3VwIC5jaG9vc2Uge1xuICBjb2xvcjogdmFyKC0tbGluay1jb2xvcik7XG59XG5cbi5kcGQtcGlja3VwLXBvcHVwIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMHZoO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICB6LWluZGV4OiAxMDM1O1xufVxuXG4uZHBkLXBpY2t1cC1wb3B1cCAuY2xvc2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBoZWlnaHQ6IDU1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZm9udC1zaXplOiAyNHB4O1xufVxuXG4uZHBkLXBpY2t1cC1wb3B1cCBpZnJhbWUge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTEwcHgpO1xuICBib3JkZXI6IDAgbm9uZTtcbn1cblxuI2NhcnQgLmVycm9yLW1zZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjMDA7XG4gIGNvbG9yOiAjZmZmO1xuICBwYWRkaW5nOiAxcmVtO1xufVxuXG4ucGF5bWVudC1zZXJ2aWNlcyBpbWcge1xuICBoZWlnaHQ6IDQwcHg7XG4gIG1hcmdpbi1yaWdodDogMXJlbTtcbn1cblxuLnBheW1lbnQtc2VydmljZXMgLmJsaWsge1xuICBoZWlnaHQ6IDM4cHg7XG59XG5cbi5wYXltZW50LXNlcnZpY2VzIC5hcHBsZXBheSB7XG4gIGZpbGw6ICMwMDA7XG4gIGhlaWdodDogNDBweDtcbn1cblxuLmRpc2NvdW50LXByb21vdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbjogMTBweCAwO1xuICBwYWRkaW5nOiAyMHB4IDAgMTBweCAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGRkO1xuICBnYXAtY29sdW1uOiAxMHB4O1xufVxuXG4uZGlzY291bnQtcHJvbW90aW9uIHN2ZyB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG59XG5cbi5kaXNjb3VudC1wcm9tb3Rpb24uY2hlY2sgc3ZnIHtcbiAgZmlsbDogdmFyKC0tb2stY29sb3IpO1xufVxuXG4uZGlzY291bnQtcHJvbW90aW9uIC5sb2dpbiB7XG4gIG1pbi13aWR0aDogNjRweDtcbiAgbWFyZ2luOiAwIDAgMCBhdXRvO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiB2YXIoLS1saW5rLWNvbG9yKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ucHJvbW90aW9uMi1zdW1tYXJ5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDVweDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgbWFyZ2luOiAxMHB4IDA7XG4gIHBhZGRpbmc6IDEwcHggMDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLnByb21vdGlvbjItc3VtbWFyeTo6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29udGVudDogJyAnO1xuICB3aWR0aDogMTAwcHg7XG4gIGhlaWdodDogMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xufVxuXG4jY2FydCAucmlnaHQtY29sIC5wcm9tb3Rpb24yLXN1bW1hcnkgLmNhcmQud2FsbGV0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogMDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLThkZWcpIHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICNjYXJ0IHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byAzNDBweDtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDMwcHggOTBweCBhdXRvO1xuICAgIGdyaWQtYXV0by1yb3dzOiBhdXRvO1xuICB9XG5cbiAgI2NhcnQgLnMtYnJlYWRjcnVtYnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ3JpZC1jb2x1bW46IDEvIDM7XG4gICAgZ3JpZC1yb3c6IDE7XG4gIH1cblxuICAjY2FydCAucmlnaHQtY29sIHtcbiAgICBncmlkLXJvdzogMztcbiAgfVxuXG4gICNjYXJ0IC5yaWdodC1jb2xbZGF0YS1zdGVwPVwiMlwiXSwgI2NhcnQgLnJpZ2h0LWNvbFtkYXRhLXN0ZXA9XCIzXCJdIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gICNjYXJ0IC5yaWdodC1jb2wgPiBkaXYge1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgdG9wOiAwO1xuICAgIGdyaWQtY29sdW1uOiAyO1xuICAgIGdyaWQtcm93OiAzO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgI2NhcnQgLnRvcC1idXR0b24ge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgfVxuXG4gICNjYXJ0IC50b3AtYnV0dG9uIHN2ZyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG5cbiAgI2NhcnQgLnN0ZXBzIHtcbiAgICBncmlkLWNvbHVtbjogMSAvIDM7XG4gICAgZ3JpZC1yb3c6IDI7XG4gIH1cblxuICAjY2FydCAucHJvZHVjdHMge1xuICAgIGdyaWQtY29sdW1uOiAxO1xuICAgIGdyaWQtcm93OiAzO1xuICB9XG5cbiAgI2NhcnQgLnMtNSB7XG4gICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgZ3JpZC1yb3c6IDU7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cblxuICAjY2FydCAuY2FydC1lbXB0eSB7XG4gICAgbWluLWhlaWdodDogNzB2aDtcbiAgICBncmlkLWNvbHVtbjogMSAvIDM7XG4gICAgZ3JpZC1yb3c6IDE7XG4gIH1cblxuICAjY2FydCAuY2FydC1pdGVtcyAuaXRlbSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMTIwcHggMzBweDtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG87XG4gIH1cblxuICAjY2FydCAuY2FydC1pdGVtcyAuaXRlbSAubmFtZSB7XG4gICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgZ3JpZC1yb3c6IGF1dG87XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICB9XG5cbiAgI2NhcnQgLmNhcnQtaXRlbXMgLml0ZW0gLnByaWNlIHtcbiAgICBncmlkLWNvbHVtbjogc3BhbiAxO1xuICAgIGdyaWQtcm93OiBhdXRvO1xuICB9XG5cbiAgI2NhcnQgLmNvbmZpcm1hdGlvbiAuY2FydC1pdGVtcyAuaXRlbSAucHJpY2Uge1xuICAgIGdyaWQtY29sdW1uOiBzcGFuIDI7XG4gIH1cblxuICAjY2FydCAuY2FydC1pdGVtcyAuaXRlbSAub3B0aW9ucyB7XG4gICAgZ3JpZC1jb2x1bW46IHNwYW4gMTtcbiAgICBncmlkLXJvdzogYXV0bztcbiAgfVxuXG4gICNjYXJ0IC5jYXJ0LWl0ZW1zIC5vdGhlci1hZGRvbnMge1xuICAgIGdyaWQtY29sdW1uOiAxO1xuICAgIGdyaWQtcm93OiAyO1xuICB9XG5cbiAgI2NhcnQgLmNhcnQtaXRlbXMgLm90aGVyLWFkZG9ucy1saXN0IHtcbiAgICBncmlkLWNvbHVtbjogMTtcbiAgICBncmlkLXJvdzogMztcbiAgfVxuXG4gICNjYXJ0IC5jYXJ0LWl0ZW1zIC5tb3JlLWFkZG9ucyB7XG4gICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgZ3JpZC1yb3c6IDQ7XG4gIH1cblxuICAjY2FydCAubW9iaWxlLWZvb3RlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICNjYXJ0IC50b3AtY2hlY2tib3gge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcGFkZGluZzogMjBweCAwO1xuICB9XG5cbiAgI2NhcnQgLmNhcnQtaXRlbXMgLmhlYWRlcnMge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgaGVpZ2h0OiA0N3B4O1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEyLCBhdXRvKTtcbiAgICBiYWNrZ3JvdW5kOiAjRjBGMEYwO1xuICB9XG5cbiAgI2NhcnQgLmNhcnQtaXRlbXMgLmhlYWRlcnMgLmhlYWRlciB7XG4gICAgcGFkZGluZzogMCAxcmVtO1xuICAgIGNvbG9yOiAjNDQ0O1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZmZmO1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgfVxuXG4gICNjYXJ0IC5jYXJ0LWl0ZW1zIC5oZWFkZXJzIC5oZWFkZXI6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgZ3JpZC1jb2x1bW46IHNwYW4gOTtcbiAgfVxuXG4gICNjYXJ0IC5jYXJ0LWl0ZW1zIC5oZWFkZXJzIC5oZWFkZXI6bGFzdC1jaGlsZCB7XG4gICAgZ3JpZC1jb2x1bW46IHNwYW4gMztcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gIH1cblxuICAjY2FydCAuY2FydC1pdGVtcyAuaGVhZGVycyAuaGVhZGVyLmF2YWlsYWJpbGl0eSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICB9XG5cbiAgI2NhcnQgLmNhcnQtaXRlbXMgPiAuaXRlbXMge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAjY2FydCAubWFpbiAubmljZS1jaGVja2JveCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgICBmbGV4OiAwIDAgOC4zMzMzJTtcbiAgICByaWdodDogYXV0bztcbiAgfVxuXG4gICNjYXJ0IC5uaWNlLWNoZWNrYm94IGxhYmVsOjpiZWZvcmUge1xuICAgIHdpZHRoOiAyMnB4O1xuICAgIGhlaWdodDogMjJweDtcbiAgfVxuXG4gICNjYXJ0IC5uaWNlLWNoZWNrYm94IGxhYmVsOjphZnRlciB7XG4gICAgd2lkdGg6IDE4cHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICB9XG5cbiAgI2NhcnQgLmJpZy1jaGVja2JveCBsYWJlbDo6YmVmb3JlIHtcbiAgICB3aWR0aDogMjhweDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgdG9wOiAwO1xuICB9XG5cbiAgI2NhcnQgLmJpZy1jaGVja2JveCBsYWJlbDo6YWZ0ZXIge1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICB0b3A6IDJweDtcbiAgfVxuXG4gICNjYXJ0IC5iaWctY2hlY2tib3gge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAjY2FydCAuc2hpcG1lbnRzLCAjY2FydCAuYWRkcmVzcyB7XG4gICAgcGFkZGluZzogMi41cmVtO1xuICB9XG5cbiAgI2NhcnQgLnNlY3Rpb24tdGl0bGUge1xuICAgIGJhY2tncm91bmQ6ICNGNEY0RjQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgY29sb3I6ICMzMzM7XG4gIH1cblxuICAjY2FydCAuY2FydC1idXR0b25zIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICB9XG5cbiAgI2NhcnQgLmNhcnQtYnV0dG9ucyAubmV4dCB7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG5cbiAgLnByb2R1Y3RzIC50b3RhbCA+IGRpdiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAucHJvZHVjdHMgLnRvdGFsID4gZGl2OmZpcnN0LW9mLXR5cGUge1xuICAgIGNvbG9yOiAjQ0ExRDYxO1xuICB9XG5cbiAgI2NhcnQgLm1vYmlsZS1mb290ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAjY2FydCAucmlnaHQtY29sIC50b3RhbC1zdW1tYXJ5LCAjY2FydCAucmlnaHQtY29sIC5jYXJ0LWJ1dHRvbnMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gICNjYXJ0IC5tb2JpbGUtZm9vdGVyLmNhcnQtYnV0dG9ucyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICNjYXJ0IC5tYWluIC5kaXNjb3VudC10aXRsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIG9yZGVyOiAzO1xuICB9XG5cbiAgI2NhcnQgLm1haW4gLmRpc2NvdW50LW5vcm1hbC1wcmljZSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBvcmRlcjogMTtcbiAgfVxuXG4gICNjYXJ0IC5jYXJ0LWl0ZW1zIC5wcmljZSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gIH1cblxuICAjY2FydCAuY29udGFjdCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBwYWRkaW5nOiAzMHB4IDUwcHg7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICB9XG5cbiAgI2NhcnQgLmNvbnRhY3QgLnRpdGxlIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cblxuICAjY2FydCAuY2FydC1zdGVwcyB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cblxuICAjY2FydCAuY2FydC1zdGVwcyAuY2lyY2xlcyB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIHBhZGRpbmctdG9wOiAyNnB4O1xuICB9XG5cbiAgLmNhcnQtc3RlcHMgLmNpcmNsZSB7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGNvbG9yOiAjOTk5O1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAuY2FydC1zdGVwcyAuc2VsIC5jaXJjbGUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNDQTFENjE7XG4gICAgYmFja2dyb3VuZDogI0NBMUQ2MTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgfVxuXG4gICNjYXJ0IC5hdmFpbGFiaWxpdHkgc3BhbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICNjYXJ0IC5tYWluIC5hdmFpbGFiaWxpdHkge1xuICAgIGNvbG9yOiAjMzMzO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxuXG4gICNjYXJ0IC5jYXJ0LWl0ZW1zIC5oZWFkZXJzID4gZGl2IHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG5cbiAgI2NhcnQgLm1haW4gLmF2YWlsYWJpbGl0eSB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuXG4gICNjYXJ0IC5tYWluIC5kaXNjb3VudC1ub3JtYWwtcHJpY2Uge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxuXG4gICNjYXJ0IC5iaWctY2hlY2tib3ggbGFiZWwge1xuICAgIG1hcmdpbjogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgICB3aWR0aDogMzBweDtcbiAgfVxuXG4gICNjYXJ0IC5tb3JlLWFkZG9ucyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICNjYXJ0IC5jYXJ0LWl0ZW1zIC5pdGVtcyAubWFpbi5sYXN0IHtcbiAgICAtd2Via2l0LW1hc2staW1hZ2U6IG5vbmU7XG4gIH1cblxuICAuY2FydC1pdGVtcyAuaXRlbXMgLnJvdyB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgLmNhcnQtaXRlbXMgLml0ZW1zIC5yb3c6aG92ZXIgbGFiZWw6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2NhMWQ2MTMzO1xuICB9XG5cbiAgI2NhcnQgLnNoaXBtZW50cyAuY29zdC1wbGFjZWhvbGRlciB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuXG4gICNjYXJ0IC5zLTUge1xuICAgIG1hcmdpbi10b3A6IDQwcHg7XG4gIH1cblxuICAjY2FydCAucy01IC5yb3cgPiBkaXY6bnRoLWNoaWxkKDEpLCAjY2FydCAucy01IC5yb3cgPiBkaXY6bnRoLWNoaWxkKDMpIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEzJTtcbiAgfVxuXG4gICNjYXJ0IC5jb25maXJtYXRpb24gLml0ZW1zIC5oZWFkZXJzIC5oZWFkZXIub3B0aW9ucyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICNjYXJ0IC5jb25maXJtYXRpb24gPiAuc2VjdGlvbi10aXRsZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICNjYXJ0IC5jb25maXJtYXRpb24gLmNvbmZpcm1hdGlvbi1vcmRlci1kYXRhIC5pbnB1dCAuc2VjdGlvbi10aXRsZSB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gICNjYXJ0IC5jb25maXJtYXRpb24gLnNlY3Rpb24tdGl0bGUgc3ZnIHtcbiAgICB0b3A6IDEwcHg7XG4gIH1cblxuICAjY2FydCAuY29uZmlybWF0aW9uIC5jb25maXJtYXRpb24tb3JkZXItZGF0YSAuc2VjdGlvbi10aXRsZSB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gICNjYXJ0IC5jb25maXJtYXRpb24gLnNoaXBtZW50cyAuc2VjdGlvbi10aXRsZSwgI2NhcnQgLmNvbmZpcm1hdGlvbiAuY29uZmlybWF0aW9uLW9yZGVyLWRhdGEgLnNlY3Rpb24tdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgfVxuXG4gICNjYXJ0IC5jb25maXJtYXRpb24gLmRpc2NvdW50LWJ1dHRvbi5hbW91bnQge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgZm9udC1zaXplOiAyOHB4O1xuICAgIG1hcmdpbjogMTVweCAwO1xuICB9XG5cbiAgI2NhcnQgLmNvbmZpcm1hdGlvbiAuc2hpcG1lbnRzIC5wYXltZW50IC5zZWN0aW9uLXRpdGxlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cblxuICAuY2FydC1wb3B1cCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG4gICAgei1pbmRleDogOTk5OTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDgwMHB4O1xuICAgIHBhZGRpbmc6IDIwcHggMjBweCAyMHB4IDIwMHB4O1xuICB9XG5cbiAgLmNhcnQtcG9wdXAgaW1nLCAuY2FydC1wb3B1cCB1bCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAjY2FydCAubW9yZS1hZGRvbnMgc3ZnIHtcbiAgICBjb2xvcjogI0NBMUQ2MTtcbiAgICBmb250LXNpemU6IDI1cHg7XG4gIH1cblxuICAjY2FydCAubW9yZS1hZGRvbnMtbGlzdCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuXG4gIC5wYXltZW50LWluZm8ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgI2NhcnQge1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAzNTBweDtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDMwcHggMTAwcHggYXV0bztcbiAgICBncmlkLWF1dG8tcm93czogYXV0bztcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBtYXgtd2lkdGg6IDE0NDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cblxuICAjY2FydCAuc3RlcHMge1xuICAgIGdyaWQtY29sdW1uOiAxIC8gMztcbiAgICBncmlkLXJvdzogMjtcbiAgfVxuXG4gICNjYXJ0IC5sZWZ0LWNvbCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2VlZTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIH1cblxuICAjY2FydCAucmlnaHQtY29sIHtcbiAgICBncmlkLXJvdzogMztcbiAgICBwYWRkaW5nOiAwIDI4cHggMjhweCAyOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlZWU7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICB9XG5cbiAgI2NhcnQgLnJpZ2h0LWNvbCA+IGRpdiB7XG4gICAgcGFkZGluZy10b3A6IDI4cHg7XG4gIH1cblxuICAjY2FydCAucHJvZHVjdHMge1xuICAgIGdyaWQtcm93OiAzO1xuICB9XG5cbiAgI2NhcnQgLmFkZG9ucywgI2NhcnQgLml0ZW1zLWxpc3Qge1xuICAgIHBhZGRpbmc6IDMwcHg7XG4gIH1cblxuICAjY2FydCAuY2FydC1lbXB0eSB7XG4gICAgbWluLWhlaWdodDogNTB2aDtcbiAgICBncmlkLWNvbHVtbjogMSAvIDM7XG4gICAgZ3JpZC1yb3c6IDI7XG4gIH1cblxuICAuY2FydC1zdGVwcyB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG5cbiAgLmNhcnQtc3RlcHMgLmNpcmNsZSB7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBsaWdodGVyO1xuICB9XG5cbiAgLmNhcnQtc3RlcHMgLnNlbCAuY2lyY2xlIHtcbiAgICBiYWNrZ3JvdW5kOiAjQ0ExRDYxO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNDQTFENjE7XG4gIH1cblxuICAjY2FydCAuY2FydC1zdGVwcyAuc2VsIC5zdGVwIHtcbiAgICBjb2xvcjogIzMzMztcbiAgfVxuXG4gIC5jYXJ0LXN0ZXBzIC5jaXJjbGVzID4gZGl2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxuXG4gICNjYXJ0IC5jYXJ0LWl0ZW1zIC5pdGVtIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxNzBweCA0MHB4O1xuICB9XG5cbiAgI2NhcnQgLmNhcnQtaXRlbXMuY29uZmlybWF0aW9uIC5pdGVtIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxNzBweDtcbiAgfVxuXG4gICNjYXJ0IC5jYXJ0LWl0ZW1zIC5pdGVtIC5uYW1lIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cblxuICAjY2FydCAuaXRlbXMtbGlzdCAudGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxuXG4gICNjYXJ0IC50b3AtY2hlY2tib3gge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuXG4gICNjYXJ0IC5kaXNjb3VudC1idXR0b24ge1xuICAgIGJhY2tncm91bmQ6ICNjYTFkNjE7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG5cbiAgI2NhcnQgLmRpc2NvdW50LWJ1dHRvbi5hbW91bnQge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgfVxuXG4gICNjYXJ0IC5wcm9qZWN0LWNoYW5nZXMgLnN3aXRjaCB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDIwcHg7XG4gIH1cblxuICAjY2FydCAucHJvamVjdC1jaGFuZ2VzIC5zd2l0Y2ggZGl2IHtcbiAgICBtYXgtd2lkdGg6IDM2MHB4O1xuICB9XG5cbiAgI2NhcnQgLmNvbnRhY3Qge1xuICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgfVxuXG4gICNjYXJ0IC5jYXJ0LXN0ZXBzIC5jaXJjbGVzIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDA7XG4gIH1cblxuICAjY2FydCAuY2FydC1pdGVtcyAucHJpY2Uge1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgfVxuXG4gICNjYXJ0IC5jYXJ0LWl0ZW1zIC5oZWFkZXJzIC5oZWFkZXIge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgfVxuXG4gICNjYXJ0IC5jYXJ0LWl0ZW1zIC5oZWFkZXJzIC5oZWFkZXIuYXZhaWxhYmlsaXR5LCAjY2FydCAuY2FydC1pdGVtcyAuaGVhZGVycyAuaGVhZGVyLnByaWNlIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxuXG4gICNjYXJ0IC5jb250YWN0IHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuXG4gICNjYXJ0IC5iaWctY2hlY2tib3ggbGFiZWw6OmJlZm9yZSB7XG4gICAgbGVmdDogMDtcbiAgfVxuXG4gICNjYXJ0IC5iaWctY2hlY2tib3ggbGFiZWw6OmFmdGVyIHtcbiAgICBsZWZ0OiAycHg7XG4gIH1cblxuICAjY2FydCAuY2FydC1pdGVtcyAuYmlnLWNoZWNrYm94IHtcbiAgICByaWdodDogMDtcbiAgfVxuXG4gICNjYXJ0IC5jYXJ0LWl0ZW1zIC5uYW1lIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgfVxuXG4gICNjYXJ0IC5tb3JlLWFkZG9ucyBzdmcge1xuICAgIHJpZ2h0OiAyM3B4O1xuICB9XG5cbiAgI2NhcnQgLmRpc2NvdW50LWJ1dHRvbiB7XG4gICAgbWluLWhlaWdodDogNTNweDtcbiAgfVxuXG4gICNjYXJ0IC5zaGlwbWVudHMgLnNlY3Rpb24tdGl0bGUge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAjY2FydCAuY29uZmlybWVkLXNoaXBtZW50cyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDUwJSAxZnI7XG4gICAgZ2FwOiAxcmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIH1cblxuICAjY2FydCAuY29uZmlybWVkLXNoaXBtZW50cyAuc2VjdGlvbi10aXRsZSB7XG4gICAgZ3JpZC1jb2x1bW46IHNwYW4gMjtcbiAgfVxuXG4gICNjYXJ0IC5jb25maXJtYXRpb24gLmNhcnQtYnV0dG9ucyAubmV4dCB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgI2NhcnQgLmNvbmZpcm1hdGlvbiAuZGlzY291bnQtYW1vdW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG5cbiAgI2NhcnQgLmNvbmZpcm1hdGlvbiAuZGlzY291bnQtYW1vdW50IC5hbW91bnQge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgfVxuXG4gIC5jb25maXJtYXRpb24tb3JkZXItZGF0YSB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBjYWxjKDUwJSAtIDAuNXJlbSkpO1xuICAgIGdhcDogMXJlbTtcbiAgfVxuXG4gIC5jb25maXJtYXRpb24tb3JkZXItZGF0YSBoMiB7XG4gICAgbGluZS1oZWlnaHQ6IDM1cHg7XG4gICAgY29sb3I6ICM1NzU3NTc7XG4gIH1cblxuICAuY2FydC1wcm9qZWN0LWNoYW5nZXMsIC5jYXJ0LXJlbWFya3Mge1xuICAgIGdyaWQtY29sdW1uOiBzcGFuIDI7XG4gIH1cblxuICAjY2FydCAuaW5wdXQgLmZhLWVkaXQge1xuICAgIG9wYWNpdHk6IDAuODtcbiAgfVxuXG4gICNjYXJ0IC5kaXNjb3VudC1idXR0b24uYW1vdW50IHtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICB9XG5cbiAgI2NhcnQgLnByb2R1Y3RzIC50b3RhbCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cblxuICAjY2FydCAucHJvZHVjdHMgLnRvdGFsID4gZGl2OmZpcnN0LW9mLXR5cGUge1xuICAgIGNvbG9yOiAjQ0ExRDYxO1xuICB9XG5cbiAgLnBheW1lbnQtaW5mbyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICB9XG5cbiAgLmNhcnQtY3VzdG9tZXItYWdyZWVtZW50cyB7XG4gICAgZ3JpZC1jb2x1bW46IHNwYW4gMjtcbiAgfVxuXG4gICNjYXJ0IC5hZGRyZXNzIC5yb3cge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgY2FsYyg1MCUgLSAwLjVyZW0pKTtcbiAgICBnYXA6IDFyZW07XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gICNjYXJ0IC5zaGlwbWVudC1saXN0IHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTI4MHB4KSB7XG4gICNjYXJ0IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciA0MjBweDtcbiAgfVxufVxuIiwiI2NhcnQgLnByb2plY3QtZGF0YSB7XG4gIC0tcHJvamVjdC1kYXRhLWNvbG9yOiAjMDAwO1xuICAtLXJhZGlvLWRlZmF1bHQtY29sb3I6ICMwMDA7XG4gIC0tcmFkaW8tc2VsZWN0ZWQtY29sb3I6ICNjYTFkNjE7XG5cbiAgcGFkZGluZzogMjBweDtcbn1cblxuI2NhcnQgLnByb2plY3QtZGF0YSBoZWFkZXIgLnJlbW92ZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjb2xvcjogIzk5OTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4jY2FydCAucHJvamVjdC1kYXRhIGhlYWRlciAucmVtb3ZlIHN2ZyB7XG4gIGZpbGw6ICM5OTk7XG59XG5cbiNjYXJ0IC5wcm9qZWN0LWRhdGEgc3ZnIHtcbiAgaGVpZ2h0OiAyNXB4O1xufVxuXG4jY2FydCAucHJvamVjdC1kYXRhIC5pbmZvIC5jb25zdHJ1Y3Rpb24tY29zdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luOiAwIDAgMCBhdXRvO1xuICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbn1cblxuI2NhcnQgLnByb2plY3QtZGF0YSAudmVyc2lvbiB7XG4gIG1hcmdpbjogNDBweCAwIDE1cHggMDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuI2NhcnQgLnN3aXRjaCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGdhcDogMTBweDtcbn1cblxuI2NhcnQgLnN3aXRjaCA+IGRpdiB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4jY2FydCAuc3dpdGNoID4gZGl2OmhvdmVyIHtcbiAgb3BhY2l0eTogMC43NTtcbn1cblxuI2NhcnQgLnN3aXRjaCBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4jY2FydCAuc3dpdGNoIGxhYmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiA1MHB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAxcmVtIDEwcHggMXJlbSAzNXB4O1xuICBtYXJnaW46IDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXNlbGVjdG9yLWJvcmRlci1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuI2NhcnQgLnN3aXRjaCBsYWJlbDpiZWZvcmUsICNjYXJ0IC5zd2l0Y2ggbGFiZWw6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcgJztcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1yYWRpby1kZWZhdWx0LWNvbG9yKTtcbn1cblxuI2NhcnQgLnN3aXRjaCBsYWJlbDpiZWZvcmUge1xuICB0b3A6IDUwJTtcbiAgbGVmdDogMTBweDtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4jY2FydCAuc3dpdGNoIGxhYmVsOmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDEzcHg7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDEwcHg7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tcmFkaW8tc2VsZWN0ZWQtY29sb3IpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1yYWRpby1zZWxlY3RlZC1jb2xvcik7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuI2NhcnQgLnN3aXRjaCBpbnB1dFt0eXBlPVwicmFkaW9cIl06Y2hlY2tlZCArIGxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2VsZWN0b3ItYm9yZGVyLWNvbG9yMik7XG59XG5cbiNjYXJ0IC5zd2l0Y2ggaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUge1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1yYWRpby1zZWxlY3RlZC1jb2xvcik7XG59XG5cbiNjYXJ0IC5zd2l0Y2ggaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBsYWJlbDphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgI2NhcnQgLnByb2plY3QtY29sIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGF1dG87XG4gICAgZ2FwOiAzcmVtO1xuICB9XG5cbiAgI2NhcnQgLnByb2plY3QtZGF0YSAudmVyc2lvbiB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG5cbiAgI2NhcnQgLnN3aXRjaCA+IGRpdiB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWluLXdpZHRoOiAyNjVweDtcbiAgfVxuXG4gICNjYXJ0IC5zd2l0Y2ggbGFiZWwge1xuICAgIGhlaWdodDogNjNweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDQ2cHg7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG5cbiAgI2NhcnQgLnN3aXRjaCBsYWJlbDo6YmVmb3JlIHtcbiAgICBsZWZ0OiAxNHB4O1xuICB9XG5cbiAgI2NhcnQgLnN3aXRjaCBsYWJlbDo6YWZ0ZXIge1xuICAgIGxlZnQ6IDE3cHg7XG4gIH1cbn1cbiIsIi5hdXRvY29tcGxldGUgaW5wdXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ib3gtYmctY29sb3IpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuLmF1dG9jb21wbGV0ZSBzdmcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICByaWdodDogMXJlbTtcbiAgZmlsbDogdmFyKC0tdGV4dC1jb2xvcik7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLmF1dG9jb21wbGV0ZSAuc2VhcmNoLWxpc3Qge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ib3gtYmctY29sb3IpO1xufVxuXG4uc2VhcmNoLWxpc3QgPiBkaXYge1xuICBwYWRkaW5nOiAwLjVyZW07XG59XG5cbi5hdXRvY29tcGxldGUgLnNlYXJjaC1saXN0ID4gZGl2OmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcbn1cblxuLmF1dG9jb21wbGV0ZSAuc2VhcmNoLWxpc3QgaW1nIHtcbiAgd2lkdGg6IDc1cHg7XG4gIGhlaWdodDogNDJweDtcbn1cblxuLmF1dG9jb21wbGV0ZSAuc2VhcmNoLWxpc3QgPiBkaXYgID4gc3BhbiB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3IpO1xufVxuXG4uYXV0b2NvbXBsZXRlIC5zZWFyY2gtbGlzdCA+IGRpdiA+IGRpdiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBnYXA6IDAuMXJlbTtcbn1cblxuLmF1dG9jb21wbGV0ZSAuc2VhcmNoLWxpc3QgPiBkaXYgPiBkaXYgPiBzcGFuOmxhc3Qtb2YtdHlwZSB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3IyKTtcbn1cbiIsIi56LW5vdGlmaWNhdGlvbiB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXdlaWdodDogMTAwO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJywgc2Fucy1zZXJpZjtcbiAgbWF4LXdpZHRoOiA0NTBweDtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgLnotbm90aWZpY2F0aW9uIC5ub3RpZmljYXRpb24tY29udGVudCB7XG4gICAgY29sb3I6ICNmZmY7XG4gIH1cblxuICAmLnN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwOTA7XG4gICAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCAjMGMwO1xuICB9XG5cbiAgJi5lcnJvciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzkwMDtcbiAgICBib3JkZXItbGVmdDogNXB4IHNvbGlkICNjMDA7XG4gIH1cbn1cbiIsIi5oaW50IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uaGludC1idXR0b24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7XG4gIGZpbGw6IHZhcigtLWJveC1iZy1jb2xvcik7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1mYW1pbHk6ICdDb3VyaWVyIE5ldycsIHNlcmlmO1xufVxuXG4uaGludC1idXR0b246aG92ZXIge1xuICBvcGFjaXR5OiAwLjc1O1xufVxuIiwiLnByb2plY3Qtc2VhcmNoIC5zZWFyY2gtbGlzdCA+IGRpdiBzcGFuOmZpcnN0LW9mLXR5cGUge1xuICBmb250LXNpemU6IDAuN2VtO1xufVxuXG4ucHJvamVjdC1zZWFyY2ggLnNlYXJjaC1saXN0ID4gZGl2IGltZyB7XG4gIGdyaWQtcm93OiBzcGFuIDI7XG4gIHdpZHRoOiA3NXB4O1xuICBoZWlnaHQ6IDQycHg7XG59XG5cbi5wcm9qZWN0LWZvci1hZGRvbiAuYXV0b2NvbXBsZXRlIGlucHV0LCAucHJvamVjdC1iaW5kLWZvci1hZGRvbiAuYXV0b2NvbXBsZXRlIGlucHV0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGlzdC1ib3JkZXItY29sb3IpO1xufVxuIiwiPHRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwic2VhcmNoLWxpc3Qgdy1mdWxsIGJnLXdoaXRlIHJvdW5kZWQtMnhsIG92ZXJmbG93LWhpZGRlblwiIDpjbGFzcz1cInsgJ3Nob3ctZGVzY3JpcHRpb24nOiBzaG93RGVzY3JpcHRpb24gfVwiIHYtaWY9XCJsaXN0VmlzaWJsZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJncmlkIGdyaWQtY29scy1bNzVweF8xZnJdIGdyaWQtcm93cy1bYXV0b19hdXRvXSBoLVs0MnB4XSBvdmVyZmxvdy1oaWRkZW4gYm9yZGVyLWIgYm9yZGVyLWItWy0tbGlzdC1ib3JkZXItY29sb3JdXCIgdi1mb3I9XCJpdGVtIGluIGl0ZW1zXCIgOmtleT1cIml0ZW0uaWRcIiBAY2xpY2s9XCJzZWxlY3QoaXRlbSwgJGV2ZW50KVwiIHYtY2xvc2FibGU9XCJjbG9zZVwiPlxuICAgICAgPGltZyA6c3JjPVwiaXRlbS50aHVtYl9wYXRoXCIgYWx0PVwiXCIgdi1pZj1cIml0ZW0udGh1bWJfcGF0aFwiPlxuICAgICAgPHNwYW4gdi1odG1sPVwiaXRlbS5uYW1lXCI+PC9zcGFuPlxuICAgICAgPHNwYW4gdi1odG1sPVwiaXRlbS5kZXNjcmlwdGlvblwiIHYtaWY9XCJzaG93RGVzY3JpcHRpb25cIj48L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cbiAgZXhwb3J0IGRlZmF1bHQge1xuICAgIG5hbWU6IFwiYXV0b2NvbXBsZXRlbGlzdFwiLFxuICAgIHByb3BzOiB7XG4gICAgICBpdGVtczoge1xuICAgICAgICB0eXBlOiBBcnJheSxcbiAgICAgICAgZGVmYXVsdDogW11cbiAgICAgIH0sXG4gICAgICBzaG93RGVzY3JpcHRpb246IHtcbiAgICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgICAgZGVmYXVsdDogZmFsc2VcbiAgICAgIH0sXG4gICAgICBpc19oaWRkZW46IHtcbiAgICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgICAgZGVmYXVsdDogZmFsc2VcbiAgICAgIH1cbiAgICB9LFxuICAgIGNvbXB1dGVkOiB7XG4gICAgICBsaXN0VmlzaWJsZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLml0ZW1zLmxlbmd0aCA+IDAgJiYgIXRoaXMuaXNfaGlkZGVuO1xuICAgICAgfVxuICAgIH0sXG4gICAgZGlyZWN0aXZlczoge1xuICAgICAgY2xvc2FibGU6IHtcbiAgICAgICAgYmluZChlbCwgYmluZGluZywgdm5vZGUpIHtcbiAgICAgICAgICBsZXQgaGFuZGxlT3V0c2lkZUNsaWNrID0gKGUpID0+IHtcbiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBjb25zdCBoYW5kbGVyID0gYmluZGluZy52YWx1ZTtcbiAgICAgICAgICAgIGhhbmRsZXIoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVPdXRzaWRlQ2xpY2spXG4gICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIGhhbmRsZU91dHNpZGVDbGljaylcbiAgICAgICAgfSxcbiAgICAgICAgdW5iaW5kKCkge1xuICAgICAgICAgIGxldCBoYW5kbGVPdXRzaWRlQ2xpY2sgPSAoZSkgPT4ge1xuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZXIgPSBiaW5kaW5nLnZhbHVlO1xuICAgICAgICAgICAgaGFuZGxlcigpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZU91dHNpZGVDbGljaylcbiAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgaGFuZGxlT3V0c2lkZUNsaWNrKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBtZXRob2RzOiB7XG4gICAgICBzZWxlY3QoaXRlbSwgZSkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuJGVtaXQoJ3NlbGVjdGVkJywgaXRlbSk7XG4gICAgICB9LFxuICAgICAgY2xvc2UoKSB7XG4gICAgICAgIHRoaXMuJGVtaXQoJ2Nsb3NlZCcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuPC9zY3JpcHQ+XG5cbjxzdHlsZSBzY29wZWQ+XG4uc2VhcmNoLWxpc3Qge1xuICAtLWhvdmVyLWJnLWNvbG9yOiAjY2ExZDYxO1xuICAtLWhvdmVyLWNvbG9yOiAjZmZmO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3gtc2hhZG93OiAwIDFweCAycHggIzY2NjY2NjU1O1xuICB6LWluZGV4OiAxMDtcbiAgYmFja2dyb3VuZC1jbGlwOiBib3JkZXItYm94O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBmb250LXNpemU6IDE2cHg7XG59XG5cbi5zZWFyY2gtbGlzdCA+IGRpdiB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNzVweCAxZnI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbHVtbi1nYXA6IDAuNWVtO1xuICBoZWlnaHQ6IDQycHg7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5zZWFyY2gtbGlzdCA+IGRpdjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWhvdmVyLWJnLWNvbG9yKTtcbiAgY29sb3I6IHZhcigtLWhvdmVyLWNvbG9yKTtcbn1cblxuLnNlYXJjaC1saXN0ID4gZGl2IHNwYW46bGFzdC1vZi10eXBlIHtcbiAgbWF4LWhlaWdodDogMi41ZW07XG4gIGZvbnQtc2l6ZTogMC42ZW07XG4gIGNvbG9yOiAjODg4O1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG5cbi5zZWFyY2gtbGlzdC5zaG93LWRlc2NyaXB0aW9uID4gZGl2IHNwYW46bGFzdC1vZi10eXBlIHtcbiAgYWxpZ24tc2VsZjogc3RhcnQ7XG59XG5cbi5zZWFyY2gtbGlzdCA+IGRpdjpob3ZlciBzcGFuIHtcbiAgY29sb3I6IHZhcigtLWhvdmVyLWNvbG9yKTtcbn1cbjwvc3R5bGU+IiwiPHRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlXCI+XG4gICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlXCI+XG4gICAgICA8aW5wdXQgY2xhc3M9XCJ3LWZ1bGxcIiB0eXBlPVwidGV4dFwiIDppZD1cImlkXCIgOm5hbWU9XCJuYW1lXCIgOmNsYXNzPVwiaW5wdXRDbGFzc1wiIHYtbW9kZWw9XCJfcXVlcnlcIiA6cGxhY2Vob2xkZXI9XCJwbGFjZWhvbGRlclwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIGFyaWEtYXV0b2NvbXBsZXRlPVwibGlzdFwiIEBmb2N1cz1cIm9wZW5cIiBAY2xpY2s9XCJvcGVuMlwiIEBpbnB1dD1cImlucHV0XCIgQGtleXVwPVwia2V5dXBcIiByZWY9XCIkaW5wdXRcIj5cbiAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIDpjbGFzcz1cImJ1dHRvbkNsYXNzXCIgdi1pZj1cImhhc0J1dHRvblwiIEBjbGljaz1cInNlYXJjaFwiPlxuICAgICAgICA8c2xvdCBuYW1lPVwiYnV0dG9uXCI+XG4gICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MCA1MFwiPlxuICAgICAgICAgICAgPHBhdGggZD1cIk0gMjEgMyBDIDExLjYyMTA5NCAzIDQgMTAuNjIxMDk0IDQgMjAgQyA0IDI5LjM3ODkwNiAxMS42MjEwOTQgMzcgMjEgMzcgQyAyNC43MTA5MzggMzcgMjguMTQwNjI1IDM1LjgwNDY4OCAzMC45Mzc1IDMzLjc4MTI1IEwgNDQuMDkzNzUgNDYuOTA2MjUgTCA0Ni45MDYyNSA0NC4wOTM3NSBMIDMzLjkwNjI1IDMxLjA2MjUgQyAzNi40NjA5MzggMjguMDg1OTM4IDM4IDI0LjIyMjY1NiAzOCAyMCBDIDM4IDEwLjYyMTA5NCAzMC4zNzg5MDYgMyAyMSAzIFogTSAyMSA1IEMgMjkuMjk2ODc1IDUgMzYgMTEuNzAzMTI1IDM2IDIwIEMgMzYgMjguMjk2ODc1IDI5LjI5Njg3NSAzNSAyMSAzNSBDIDEyLjcwMzEyNSAzNSA2IDI4LjI5Njg3NSA2IDIwIEMgNiAxMS43MDMxMjUgMTIuNzAzMTI1IDUgMjEgNSBaXCI+PC9wYXRoPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L3Nsb3Q+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8YXV0b2NvbXBsZXRlbGlzdCA6aXRlbXM9XCJpdGVtc1wiIEBzZWxlY3RlZD1cInNlbGVjdGVkXCIgQGNsb3NlZD1cImNsb3NlXCIgOmlzX2hpZGRlbj1cImlzX2hpZGRlblwiIDpzaG93LWRlc2NyaXB0aW9uPVwic2hvd0Rlc2NyaXB0aW9uXCIgdi1jbGljay1vdXRzaWRlPVwiKCkgPT4geyBpc19oaWRkZW4gPSB0cnVlOyB9XCI+PC9hdXRvY29tcGxldGVsaXN0PlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG4gIGltcG9ydCBhdXRvY29tcGxldGVsaXN0IGZyb20gXCIuL2F1dG9jb21wbGV0ZWxpc3QudnVlXCI7XG4gIGltcG9ydCBheGlvcyBmcm9tIFwiYXhpb3NcIjtcbiAgaW1wb3J0IGNsaWNrT3V0c2lkZSBmcm9tIFwiLi4vZGlyZWN0aXZlcy9jbGljay1vdXRzaWRlXCI7XG5cbiAgbGV0IHF1ZXJ5VGltZW91dEhhbmRsZTtcbiAgbGV0IHF1ZXJ5VGltZW91dCA9IDQwMDtcblxuICBleHBvcnQgZGVmYXVsdCB7XG4gICAgbmFtZTogXCJhdXRvY29tcGxldGVcIixcbiAgICBlbWl0czogW1xuICAgICAgJ3NlbGVjdGVkJywgJ3NlYXJjaCcsICdmb2N1cycsICd1cGRhdGU6bW9kZWxWYWx1ZSdcbiAgICBdLFxuICAgIGRpcmVjdGl2ZXM6IHtcbiAgICAgIGNsaWNrT3V0c2lkZVxuICAgIH0sXG4gICAgcHJvcHM6IHtcbiAgICAgIG1vZGVsVmFsdWU6IHtcbiAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICBkZWZhdWx0OiAnJ1xuICAgICAgfSxcbiAgICAgIGlkOiB7XG4gICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgZGVmYXVsdDogJydcbiAgICAgIH0sXG4gICAgICB1cmw6IHtcbiAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxuICAgICAgfSxcbiAgICAgIG5hbWU6IHtcbiAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICBkZWZhdWx0OiAnJ1xuICAgICAgfSxcbiAgICAgIGlucHV0Q2xhc3M6IHtcbiAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICBkZWZhdWx0OiAnJ1xuICAgICAgfSxcbiAgICAgIGhhc0J1dHRvbjoge1xuICAgICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgICBkZWZhdWx0OiBmYWxzZVxuICAgICAgfSxcbiAgICAgIGJ1dHRvbkNsYXNzOiB7XG4gICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgZGVmYXVsdDogJydcbiAgICAgIH0sXG4gICAgICBpY29uQ2xhc3M6IHtcbiAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICBkZWZhdWx0OiAnJ1xuICAgICAgfSxcbiAgICAgIHBsYWNlaG9sZGVyOiB7XG4gICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgZGVmYXVsdDogJydcbiAgICAgIH0sXG4gICAgICBtaW5MZW5ndGg6IHtcbiAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgICBkZWZhdWx0OiAxXG4gICAgICB9LFxuICAgICAgc2hvd0Rlc2NyaXB0aW9uOiB7XG4gICAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICAgIGRlZmF1bHQ6IGZhbHNlXG4gICAgICB9LFxuICAgICAgYm9sZEhpdHM6IHtcbiAgICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgICAgZGVmYXVsdDogdHJ1ZVxuICAgICAgfSxcbiAgICAgIGF1dG9mb2N1czoge1xuICAgICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgICBkZWZhdWx0OiBmYWxzZVxuICAgICAgfVxuICAgIH0sXG4gICAgZGF0YTogZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgX3F1ZXJ5OiB0aGlzLm1vZGVsVmFsdWUsXG4gICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGlzRXJyb3I6IGZhbHNlLFxuICAgICAgICBpdGVtczogW10sXG4gICAgICAgIGNhY2hlZF9pdGVtczogW10sXG4gICAgICAgIGlzX2hpZGRlbjogZmFsc2VcbiAgICAgIH1cbiAgICB9LFxuICAgIGNvbXBvbmVudHM6IHtcbiAgICAgIGF1dG9jb21wbGV0ZWxpc3RcbiAgICB9LFxuICAgIHdhdGNoOiB7XG4gICAgICBfcXVlcnkoKSB7XG4gICAgICAgIGxldCAkdGhpcyA9IHRoaXM7XG4gICAgICAgIGlmICh0aGlzLl9xdWVyeS5sZW5ndGggPCB0aGlzLm1pbkxlbmd0aCkge1xuICAgICAgICAgIHRoaXMuaXRlbXMgPSBbXTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gendyw7NjZW5pZSBza2Vzem93YW55Y2ggd3luaWvDs3dcbiAgICAgICAgaWYgKHRoaXMuY2FjaGVkX2l0ZW1zW3RoaXMuX3F1ZXJ5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuY2FjaGVkX2l0ZW1zW3RoaXMuX3F1ZXJ5XTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY2xlYXJUaW1lb3V0KHF1ZXJ5VGltZW91dEhhbmRsZSk7XG4gICAgICAgIHF1ZXJ5VGltZW91dEhhbmRsZSA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICR0aGlzLnF1ZXJ5U2VuZCgkdGhpcy5fcXVlcnkpO1xuICAgICAgICB9LCBxdWVyeVRpbWVvdXQpO1xuICAgICAgfVxuICAgIH0sXG4gICAgbWV0aG9kczoge1xuICAgICAgYXN5bmMgcXVlcnlTZW5kKHF1ZXJ5KSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgYXhpb3MuZ2V0KHRoaXMudXJsLCB7IHBhcmFtczogeyBxdWVyeTogcXVlcnkgfX0pO1xuICAgICAgICAgIHRoaXMuY2FjaGVkX2l0ZW1zW3F1ZXJ5XSA9IGRhdGE7XG4gICAgICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuYm9sZFF1ZXJ5KHF1ZXJ5LCB0aGlzLmNhY2hlZF9pdGVtc1txdWVyeV0pO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICB0aGlzLmlzRXJyb3IgPSB0cnVlO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBib2xkUXVlcnkocXVlcnksIGl0ZW1zKSB7XG4gICAgICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChxdWVyeSwgJ2knKTtcbiAgICAgICAgZm9yIChsZXQgaSBpbiBpdGVtcykge1xuICAgICAgICAgIGl0ZW1zW2ldWydvcmlnaW5hbF9uYW1lJ10gPSBpdGVtc1tpXVsnbmFtZSddXG4gICAgICAgICAgaXRlbXNbaV1bJ25hbWUnXSA9IGl0ZW1zW2ldWyduYW1lJ10ucmVwbGFjZShyZWdleCwgJzxzdHJvbmc+JCY8L3N0cm9uZz4nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXRlbXM7XG4gICAgICB9LFxuICAgICAgb3BlbigpIHtcbiAgICAgICAgdGhpcy5pc19oaWRkZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy4kZW1pdCgnZm9jdXMnKTtcbiAgICAgIH0sXG4gICAgICBvcGVuMihlKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZS50YXJnZXQuZm9jdXMoKTtcbiAgICAgICAgdGhpcy5pc19oaWRkZW4gPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgICBrZXl1cChlKSB7XG4gICAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgIHRoaXMuJGVtaXQoJ3NlYXJjaCcsIHRoaXMuX3F1ZXJ5KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGlucHV0KGUpIHtcbiAgICAgICAgdGhpcy4kZW1pdCgndXBkYXRlOm1vZGVsVmFsdWUnLCBlLnRhcmdldC52YWx1ZSk7XG4gICAgICB9LFxuICAgICAgY2xvc2UoKSB7XG4gICAgICAgIHRoaXMuaXNfaGlkZGVuID0gdHJ1ZTtcbiAgICAgIH0sXG4gICAgICBhc3luYyBzZWxlY3RlZChpdGVtKSB7XG4gICAgICAgIHRoaXMuJGVtaXQoJ3NlbGVjdGVkJywgaXRlbSlcbiAgICAgIH0sXG4gICAgICBzZWFyY2goKSB7XG4gICAgICAgIHRoaXMuJGVtaXQoJ3NlYXJjaCcsIHRoaXMuX3F1ZXJ5KTtcbiAgICAgIH1cbiAgICB9LFxuICAgIG1vdW50ZWQoKSB7XG4gICAgICBpZiAodGhpcy5hdXRvZm9jdXMpIHtcbiAgICAgICAgdGhpcy4kcmVmcy4kaW5wdXQuZm9jdXMoKVxuICAgICAgfVxuICAgIH1cbiAgfVxuPC9zY3JpcHQ+XG5cbjxzdHlsZSBzY29wZWQ+XG4uYXV0b2NvbXBsZXRlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuaW5wdXQsIGlucHV0OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbjwvc3R5bGU+IiwiPHNjcmlwdCBzZXR1cD5cbmltcG9ydCBcIi4uLy4uL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlLXByb2plY3QuY3NzXCJcblxuaW1wb3J0IEF1dG9jb21wbGV0ZSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9hdXRvY29tcGxldGUudnVlXCI7XG5pbXBvcnQgdkNsaWNrT3V0c2lkZSBmcm9tIFwiLi4vLi4vZGlyZWN0aXZlcy9jbGljay1vdXRzaWRlXCI7XG5pbXBvcnQge29uTW91bnRlZCwgb25Vbm1vdW50ZWR9IGZyb20gXCJ2dWVcIjtcbmltcG9ydCBheGlvcyBmcm9tIFwiYXhpb3NcIjtcbmltcG9ydCB7dXNlSTE4bn0gZnJvbSBcInZ1ZS1pMThuXCI7XG5cbmNvbnN0IHsgdCB9ID0gdXNlSTE4bigpXG5cblxuY29uc3QgZW1pdCA9IGRlZmluZUVtaXRzKFsnY2xvc2UnLCAnc2VsZWN0ZWQnXSlcblxuY29uc3QgcHJvcHMgPSBkZWZpbmVQcm9wcyh7XG4gIGl0ZW06IHtcbiAgICB0eXBlOiBPYmplY3QsXG4gICAgcmVxdWlyZWQ6IHRydWVcbiAgfSxcbiAgdHlwZTogeyAvLyB0eXAgZG9kYXdhbmVnbyBwcm9kdWt0LCBkbGEga3TDs3JlZ28gZG9wYXNvd3VqZW15IHByb2pla3RcbiAgICB0eXBlOiBOdW1iZXIsXG4gICAgcmVxdWlyZWQ6IHRydWVcbiAgfSxcbiAgYXV0b2NvbXBsZXRlVXJsOiB7XG4gICAgdHlwZTogU3RyaW5nLFxuICAgIHJlcXVpcmVkOiB0cnVlXG4gIH0sXG4gIGFkZFVybDoge1xuICAgIHR5cGU6IFN0cmluZyxcbiAgICByZXF1aXJlZDogdHJ1ZVxuICB9XG59KVxuXG5mdW5jdGlvbiBjbG9zZSgpIHtcbiAgZW1pdCgnY2xvc2UnKVxufVxuXG5mdW5jdGlvbiBzZWxlY3RlZChpdGVtKSB7XG4gIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhXG4gIGZvcm1EYXRhLnNldCgncHJvamVjdF9pZCcsIGl0ZW0uaWQpXG4gIGZvcm1EYXRhLnNldCgndHlwZScsIHByb3BzLnR5cGUpXG4gIGZvcm1EYXRhLnNldCgnaXRlbV9pZCcsIHByb3BzLml0ZW0uaWQpXG5cbiAgYXhpb3MucG9zdChwcm9wcy5hZGRVcmwsIGZvcm1EYXRhKVxuICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLmRhdGEpXG4gICAgLnRoZW4oZGF0YSA9PiB7XG4gICAgICBlbWl0KCdzZWxlY3RlZCcsIHsgZGF0YTogZGF0YSwgcHJvamVjdDogaXRlbSB9KVxuICAgIH0pXG59XG5cbmZ1bmN0aW9uIGtleUV2ZW50KGUpIHtcbiAgaWYgKGUua2V5ID09PSAnRXNjYXBlJykge1xuICAgIGNsb3NlKClcbiAgfVxufVxuXG5vbk1vdW50ZWQoKCkgPT4ge1xuICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIGtleUV2ZW50KVxuXG59KVxuXG5vblVubW91bnRlZCgoKSA9PiB7XG4gIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleXVwJywga2V5RXZlbnQpXG59KVxuPC9zY3JpcHQ+XG5cbjx0ZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cInByb2plY3QtZm9yLWFkZG9uIG92ZXJsYXkgei1bMTAzMF1cIj5cbiAgICA8ZGl2IGNsYXNzPVwicG9wdXAgZmxleCBmbGV4LWNvbCBmbGV4LXdyYXAgZ2FwLTYgdy1mdWxsIGgtZHZoIG1heC13LVs0NTBweF0gbWQ6aC1hdXRvIG1kOnJvdW5kZWQteGwgbWR0ZXh0LVsyMHB4XVwiIHYtY2xpY2stb3V0c2lkZT1cImNsb3NlXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImFic29sdXRlIHRvcC00IHJpZ2h0LTQgY3Vyc29yLXBvaW50ZXIgaG92ZXI6ZmlsbC1waW5rLTUwMFwiIEBjbGljay5wcmV2ZW50PVwiY2xvc2VcIj5cbiAgICAgICAgPHN2ZyBjbGFzcz1cImgtWzI4cHhdXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMzIwIDUxMlwiPlxuICAgICAgICAgIDxwYXRoIGQ9XCJNMzE1LjMgNDExLjNjLTYuMjUzIDYuMjUzLTE2LjM3IDYuMjUzLTIyLjYzIDBMMTYwIDI3OC42bC0xMzIuNyAxMzIuN2MtNi4yNTMgNi4yNTMtMTYuMzcgNi4yNTMtMjIuNjMgMGMtNi4yNTMtNi4yNTMtNi4yNTMtMTYuMzcgMC0yMi42M0wxMzcuNCAyNTZMNC42OSAxMjMuM2MtNi4yNTMtNi4yNTMtNi4yNTMtMTYuMzcgMC0yMi42M2M2LjI1My02LjI1MyAxNi4zNy02LjI1MyAyMi42MyAwTDE2MCAyMzMuNGwxMzIuNy0xMzIuN2M2LjI1My02LjI1MyAxNi4zNy02LjI1MyAyMi42MyAwYzYuMjUzIDYuMjUzIDYuMjUzIDE2LjM3IDAgMjIuNjNMMTgyLjYgMjU2bDEzMi43IDEzMi43QzMyMS42IDM5NC45IDMyMS42IDQwNS4xIDMxNS4zIDQxMS4zelwiLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L3NwYW4+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIj57eyAkdCgnYWRkb24uYWRkaW5nX3RvX2NhcnQnKSB9fTwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHRleHQtcGluay01MDAgZm9udC1ib2xkXCIgdi1odG1sPVwiaXRlbS5uYW1lXCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIj57eyAkdCgnYWRkb24ud2hpY2hfcHJvamVjdCcpIH19PC9kaXY+XG5cbiAgICAgIDxhdXRvY29tcGxldGUgY2xhc3M9XCJwcm9qZWN0LXNlYXJjaFwiIEBzZWxlY3RlZD1cInNlbGVjdGVkXCIgOnBsYWNlaG9sZGVyPVwiJHQoJ2FkZG9uLmF1dG9jb21wbGV0ZV9wbGFjZWhvbGRlcicpXCIgOnNob3ctZGVzY3JpcHRpb249XCJ0cnVlXCIgOnVybD1cImF1dG9jb21wbGV0ZVVybFwiIDptaW4tbGVuZ3RoPVwiMlwiIGlucHV0LWNsYXNzPVwidy1mdWxsIHB4LTQgcHktMiByb3VuZGVkLWxnXCIgOmF1dG9mb2N1cz1cInRydWVcIj5cbiAgICAgICAgPHRlbXBsYXRlICNpY29uPlxuICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNTEyIDUxMlwiPjxwYXRoIGQ9XCJNNTA5LjcgNDk4LjNsLTE0OS4yLTE0OS4yQzM5NC44IDMxMi4xIDQxNS4xIDI2Mi42IDQxNS4xIDIwOGMwLTExNC45LTkzLjEzLTIwOC0yMDgtMjA4Uy0uMDAwMiA5My4xMy0uMDAwMiAyMDhTOTMuMTIgNDE2IDIwNy4xIDQxNmM1NC41NSAwIDEwNC4xLTIxLjE3IDE0MS4yLTU1LjU0bDE0OS4yIDE0OS4yQzQ5OS45IDUxMS4yIDUwMS45IDUxMiA1MDMuMSA1MTJzNC4wOTQtLjc4MTMgNS42NTYtMi4zNDRDNTEyLjggNTA2LjUgNTEyLjggNTAxLjUgNTA5LjcgNDk4LjN6TTIwNy4xIDQwMGMtMTA1LjkgMC0xOTItODYuMTMtMTkyLTE5MnM4Ni4xMy0xOTIgMTkyLTE5MnMxOTIgODYuMTMgMTkyIDE5MlMzMTMuOSA0MDAgMjA3LjEgNDAwelwiLz48L3N2Zz5cbiAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgIDwvYXV0b2NvbXBsZXRlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzdHlsZT5cbi5wcm9qZWN0LWZvci1hZGRvbiAgaW5wdXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xufVxuPC9zdHlsZT4iLCIjcHJvbW90aW9uMi10ZWFzZXIge1xuICAtLWJnLWNvbG9yOiAjZjhmOGY4O1xuICAtLXdhbGxldC1iZy1jb2xvcjogIzE4MTI1NjtcbiAgLS1kaXNjb3VudC1iZy1jb2xvcjogI2RhMzE4YjtcbiAgLS1oZWFkZXItY29sb3IxOiAjMTIxMTU0O1xuICAtLWhlYWRlci1jb2xvcjI6ICNEOTMwOEE7XG4gIC0tY2FyZC1jb2xvcjogI2ZmZjtcbiAgLS10ZXh0LWNvbG9yOiAjMjcyNzI3O1xuICAtLWJ0bi1iZy1jb2xvcjogIzAwMDtcbiAgLS1idG4tYmctaG92ZXItY29sb3I6ICNmZmY7XG4gIC0tYnRuLWNvbG9yOiAjZmZmO1xuICAtLWJ0bi1ob3Zlci1jb2xvcjogIzAwMDtcbiAgLS1saW5rLWNvbG9yOiAjOTQyODY3O1xuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWF4LXdpZHRoOiA0MzBweDtcbiAgcGFkZGluZzogMTdweCAxN3B4IDM0cHggMTdweDtcbiAgYm9yZGVyLXJhZGl1czogMjNweDtcbiAgYm9yZGVyOiAycHggc29saWQgIzAwMDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctY29sb3IpO1xuICBnYXA6IDVweDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3IpO1xufVxuXG5wcm9tb3Rpb24yLXRlYXNlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXgtd2lkdGg6IDQzMHB4O1xuICBtaW4taGVpZ2h0OiAzNTBweDtcbn1cblxuI3Byb21vdGlvbjItdGVhc2VyIC5uYW1lIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEyNWRlZywgdmFyKC0taGVhZGVyLWNvbG9yMSkgMCUsIHZhcigtLWhlYWRlci1jb2xvcjIpIDUwJSk7XG4gIGJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgZm9udC1zaXplOiAzNnB4O1xuICBmb250LXdlaWdodDogODAwO1xuICBsaW5lLWhlaWdodDogMS4zO1xufVxuXG4jcHJvbW90aW9uMi10ZWFzZXIgLmNhcmRzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAzMDBweDtcbiAgaGVpZ2h0OiAxMTBweDtcbiAgbWFyZ2luOiBhdXRvO1xufVxuXG4jcHJvbW90aW9uMi10ZWFzZXIgLmNhcmRzIC5jYXJkIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDE1cHg7XG4gIGxlZnQ6IDUwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6IDEzMHB4O1xuICBhc3BlY3QtcmF0aW86IDEuNzIzO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYm94LXNoYWRvdzogMCA0cHggNDBweCAwIHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigyNXB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHJvdGF0ZSgtOGRlZyk7XG59XG5cbiNwcm9tb3Rpb24yLXRlYXNlciAuY2FyZHMgLndhbGxldCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdhbGxldC1iZy1jb2xvcik7XG4gIGNvbG9yOiB2YXIoLS1jYXJkLWNvbG9yKTtcbn1cblxuI3Byb21vdGlvbjItdGVhc2VyIC5jYXJkcyAuZGlzY291bnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kaXNjb3VudC1iZy1jb2xvcik7XG4gIGNvbG9yOiB2YXIoLS1jYXJkLWNvbG9yKTtcbn1cblxuI3Byb21vdGlvbjItdGVhc2VyIC5jYXJkcy5ib3RoIC53YWxsZXQge1xuICB0b3A6IDEwcHg7XG4gIGxlZnQ6IGNhbGMoNTAlIC0gNTVweCk7XG4gIHotaW5kZXg6IDI7XG59XG5cbiNwcm9tb3Rpb24yLXRlYXNlciAuY2FyZHMuYm90aCAuZGlzY291bnQge1xuICB0b3A6IDIwcHg7XG4gIGxlZnQ6IGNhbGMoNTAlICsgNTVweCk7XG4gIHotaW5kZXg6IDE7XG59XG5cbiNwcm9tb3Rpb24yLXRlYXNlciAuY2FyZHMgLmFtb3VudCB7XG4gIGZvbnQtc2l6ZTogMjhweDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cblxuI3Byb21vdGlvbjItdGVhc2VyIC5jYXJkcyAud2FsbGV0IC5hbW91bnQge1xuICBmb250LXdlaWdodDogODAwO1xufVxuXG4jcHJvbW90aW9uMi10ZWFzZXIgLmNhcmRzIC50ZXh0IHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiA5cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbiNwcm9tb3Rpb24yLXRlYXNlciAuY29udGVudCB7XG4gIG1heC13aWR0aDogNDI1cHg7XG4gIGhlaWdodDogbWluLWNvbnRlbnQ7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuI3Byb21vdGlvbjItdGVhc2VyLmFubm91bmNlbWVudCAuY29udGVudCwgI3Byb21vdGlvbjItdGVhc2VyOm5vdCguc21hbGwpOm5vdCgubG9uZykuYW5ub3VuY2VtZW50IC5jb250ZW50IHtcbiAgbWF4LXdpZHRoOiB1bnNldDtcbn1cblxuI3Byb21vdGlvbjItdGVhc2VyIC5idXR0b25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDFyZW07XG59XG5cbiNwcm9tb3Rpb24yLXRlYXNlciAuYnV0dG9ucyAuYnRuIHtcbiAgcGFkZGluZzogMTBweCAzMHB4O1xuICBib3JkZXItcmFkaXVzOiAzOHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idG4tYmctY29sb3IpO1xuICBib3JkZXI6IDA7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgY29sb3I6IHZhcigtLWJ0bi1jb2xvcik7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuI3Byb21vdGlvbjItdGVhc2VyIC5idXR0b25zIC5idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idG4tYmctaG92ZXItY29sb3IpO1xuICBjb2xvcjogdmFyKC0tYnRuLWhvdmVyLWNvbG9yKTtcbn1cblxuI3Byb21vdGlvbjItdGVhc2VyIC5kdXJhdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxMHB4O1xuICByaWdodDogMzBweDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuI3Byb21vdGlvbjItdGVhc2VyLmxvbmcge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiB1bnNldDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ1MHB4KSB7XG4gICNwcm9tb3Rpb24yLXRlYXNlciB7XG4gICAgcGFkZGluZzogMTdweCAzMnB4IDMycHggMzJweDtcbiAgfVxuXG4gICNwcm9tb3Rpb24yLXRlYXNlciAuY2FyZHMge1xuICAgIHdpZHRoOiAzMjBweDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgI3Byb21vdGlvbjItdGVhc2VyLmxvbmcge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgbWF4LWhlaWdodDogMTUwcHg7XG4gICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogJ2NhcmRzIG5hbWUgZHVyYXRpb24nICdjYXJkcyBjb250ZW50IGJ1dHRvbnMnO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMTYwcHggMWZyIG1pbm1heChhdXRvLCAzMDBweCk7XG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIGF1dG87XG4gICAgcGFkZGluZzogMjBweDtcbiAgICBnYXA6IDVweDtcbiAgfVxuXG4gICNwcm9tb3Rpb24yLXRlYXNlci5hbm5vdW5jZW1lbnQsICNwcm9tb3Rpb24yLXRlYXNlci5sb25nLmFubm91bmNlbWVudCAge1xuICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6ICduYW1lIGR1cmF0aW9uJyAnY29udGVudCBidXR0b25zJztcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBtaW5tYXgoYXV0bywgMzAwcHgpO1xuICB9XG5cbiAgI3Byb21vdGlvbjItdGVhc2VyLmxvbmcgLm5hbWUge1xuICAgIGdyaWQtYXJlYTogbmFtZTtcbiAgICBmb250LXNpemU6IDIycHg7XG4gIH1cblxuICAjcHJvbW90aW9uMi10ZWFzZXIubG9uZyAuY29udGVudCB7XG4gICAgZ3JpZC1hcmVhOiBjb250ZW50O1xuICAgIG1heC13aWR0aDogdW5zZXQ7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICB9XG5cbiAgI3Byb21vdGlvbjItdGVhc2VyLmxvbmcgLmNhcmRzIHtcbiAgICBncmlkLWFyZWE6IGNhcmRzO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTEwcHg7XG4gICAgZ3JpZC1yb3c6IHNwYW4gMjtcbiAgfVxuXG4gICNwcm9tb3Rpb24yLXRlYXNlci5sb25nIC5jYXJkcyAuY2FyZCB7XG4gICAgdG9wOiAyNXB4O1xuICAgIHdpZHRoOiA4MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgfVxuXG4gICNwcm9tb3Rpb24yLXRlYXNlci5sb25nIC5jYXJkcy5ib3RoIC53YWxsZXQge1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gMzBweCk7XG4gIH1cbiAgI3Byb21vdGlvbjItdGVhc2VyLmxvbmcgLmNhcmRzLmJvdGggLmRpc2NvdW50IHtcbiAgICBsZWZ0OiBjYWxjKDUwJSArIDMwcHgpO1xuICB9XG5cbiAgI3Byb21vdGlvbjItdGVhc2VyLmxvbmcgLmNhcmRzIC53YWxsZXQgLmFtb3VudCwgI3Byb21vdGlvbjItdGVhc2VyLmxvbmcgLmNhcmRzIC5kaXNjb3VudCAuYW1vdW50IHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gIH1cblxuICAjcHJvbW90aW9uMi10ZWFzZXIubG9uZyAuY2FyZHMgLnRleHQge1xuICAgIGZvbnQtc2l6ZTogNnB4O1xuICB9XG5cbiAgI3Byb21vdGlvbjItdGVhc2VyLmxvbmcgLmR1cmF0aW9uIHtcbiAgICBncmlkLWFyZWE6IGR1cmF0aW9uO1xuICAgIHBvc2l0aW9uOiB1bnNldDtcbiAgfVxuXG4gICNwcm9tb3Rpb24yLXRlYXNlci5sb25nIC5kdXJhdGlvbiBzcGFuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gICNwcm9tb3Rpb24yLXRlYXNlci5sb25nIC5idXR0b25zIHtcbiAgICBncmlkLWFyZWE6IGJ1dHRvbnM7XG4gIH1cblxuICAjcHJvbW90aW9uMi10ZWFzZXIubG9uZyAuYnV0dG9ucyAuYnRuIHtcbiAgICBwYWRkaW5nOiA4cHggMjBweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIHByb21vdGlvbjItdGVhc2VyOm5vdCguc21hbGwpOm5vdCgubG9uZyksICNwcm9tb3Rpb24yLXRlYXNlcjpub3QoLnNtYWxsKTpub3QoLmxvbmcpIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDMyMHB4LCBhdXRvKSBhdXRvO1xuICAgIGdyaWQtYXV0by1yb3dzOiBhdXRvO1xuICAgIG1heC13aWR0aDogODQ1cHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHBhZGRpbmc6IDE3cHggMzJweDtcbiAgfVxuXG4gICNwcm9tb3Rpb24yLXRlYXNlcjpub3QoLnNtYWxsKTpub3QoLmxvbmcpIC5uYW1lIHtcbiAgICBncmlkLWNvbHVtbjogc3BhbiAyO1xuICB9XG5cbiAgI3Byb21vdGlvbjItdGVhc2VyOm5vdCguc21hbGwpOm5vdCgubG9uZykgLmNhcmRzIHtcbiAgICBncmlkLWNvbHVtbjogMTtcbiAgICBncmlkLXJvdzogc3BhbiAyO1xuICB9XG5cbiAgI3Byb21vdGlvbjItdGVhc2VyOm5vdCguc21hbGwpOm5vdCgubG9uZykgLmNvbnRlbnQge1xuICAgIG1heC13aWR0aDogMzM4cHg7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgfVxuXG4gICNwcm9tb3Rpb24yLXRlYXNlcjpub3QoLnNtYWxsKTpub3QoLmxvbmcpIC5kdXJhdGlvbiB7XG4gICAgYm90dG9tOiB1bnNldDtcbiAgICB0b3A6IDIwcHg7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyODBweCkge1xuICAucHJvbW90aW9uMi10ZWFzZXIsICNwcm9tb3Rpb24yLXRlYXNlci5sb25nIHtcbiAgICBtYXgtd2lkdGg6IDExODBweDtcbiAgfVxuXG4gIHByb21vdGlvbjItdGVhc2VyLmxvbmcsICNwcm9tb3Rpb24yLXRlYXNlci5sb25nIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDI0MHB4IDFmciBtaW5tYXgoYXV0bywgMzAwcHgpO1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogMzNweCA1MHB4O1xuICB9XG5cbiAgI3Byb21vdGlvbjItdGVhc2VyLmxvbmcgLm5hbWUge1xuICAgIGZvbnQtc2l6ZTogMjdweDtcbiAgfVxuXG4gICNwcm9tb3Rpb24yLXRlYXNlci5sb25nIC5jb250ZW50IHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gIH1cblxuICAjcHJvbW90aW9uMi10ZWFzZXIubG9uZyAuY2FyZHMgLmNhcmQge1xuICAgIHRvcDogMTBweDtcbiAgICB3aWR0aDogMTIycHg7XG4gICAgaGVpZ2h0OiA3MXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIH1cblxuICAjcHJvbW90aW9uMi10ZWFzZXIubG9uZyAuY2FyZHMuYm90aCAuZGlzY291bnQge1xuICAgIHRvcDogMTVweDtcbiAgICBsZWZ0OiBjYWxjKDUwJSArIDUwcHgpO1xuICB9XG5cbiAgI3Byb21vdGlvbjItdGVhc2VyLmxvbmcgLmNhcmRzLmJvdGggLndhbGxldCB7XG4gICAgdG9wOiA1cHg7XG4gICAgbGVmdDogY2FsYyg1MCUgLSA1MHB4KTtcbiAgfVxuXG4gICNwcm9tb3Rpb24yLXRlYXNlci5sb25nIC5jYXJkcyAud2FsbGV0IC5hbW91bnQsICNwcm9tb3Rpb24yLXRlYXNlci5sb25nIC5jYXJkcyAuZGlzY291bnQgLmFtb3VudCB7XG4gICAgZm9udC1zaXplOiAyN3B4O1xuICB9XG5cbiAgI3Byb21vdGlvbjItdGVhc2VyLmxvbmcgLmNhcmRzIC50ZXh0IHtcbiAgICBmb250LXNpemU6IDhweDtcbiAgfVxuXG4gICNwcm9tb3Rpb24yLXRlYXNlci5sb25nIC5kdXJhdGlvbiBzcGFuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gIH1cblxuICAjcHJvbW90aW9uMi10ZWFzZXIubG9uZyAuYnV0dG9ucyAuYnRuIHtcbiAgICBwYWRkaW5nOiAxMHB4IDMwcHg7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4iLCIuYWRkb24taXRlbSB7XG4gIC0tYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIC0tYmctc2ltcGxlLWNvbG9yOiAjZjBmNmY1O1xuICAtLWRlc2NyLXNpbXBsZS1jb2xvcjogIzY2NjtcbiAgLS13YWxsZXQtYmctY29sb3I6ICMxODEyNTY7XG4gIC0tY2FyZC1jb2xvcjogI2ZmZjtcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBncmlkO1xuICBwYWRkaW5nOiAxNXB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7XG4gIHJvdy1nYXA6IDVweDtcbiAgY29sdW1uLWdhcDogMXJlbTtcbn1cblxuLmFkZG9uLWl0ZW0uc2ltcGxlIHtcbiAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogJ2NoZWNrYm94IG5hbWUgbmFtZSBuYW1lIGluZm8nICcuIGRlc2NyIGRlc2NyIGRlc2NyIGRlc2NyJyAnLiAuIHByaWNlIHByaWNlIHByaWNlJyAgJ3RleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCc7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMjVweCBhdXRvIGF1dG8gYXV0byBhdXRvO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1zaW1wbGUtY29sb3IpO1xufVxuXG4uYWRkb24taXRlbS5pbWFnZSB7XG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6ICdjaGVja2JveCAuIC4gLiBpbmZvJyAnaW1hZ2UgaW1hZ2UgbmFtZSBuYW1lIG5hbWUnICdpbWFnZSBpbWFnZSBkZXNjciBkZXNjciBkZXNjcicgJy4gLiAuIHByaWNlIHByaWNlJyAndGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0JztcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyNXB4IGF1dG8gMWZyIDFmciAyMHB4O1xuICBncmlkLXRlbXBsYXRlLXJvd3M6IDMwcHggYXV0byAxZnIgYXV0bztcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4uYWRkb24taXRlbSAuY2hlY2tib3gge1xuICBncmlkLWFyZWE6IGNoZWNrYm94O1xufVxuXG4uYWRkb24taXRlbSAudGV4dCB7XG4gIGdyaWQtYXJlYTogdGV4dFxufVxuXG4uYWRkb24taXRlbSAucHJpY2Uge1xuICBncmlkLWFyZWE6IHByaWNlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDVweDtcbn1cblxuLmFkZG9uLWl0ZW0gLm5hbWUge1xuICBncmlkLWFyZWE6IG5hbWU7XG59XG5cbi5hZGRvbi1pdGVtIC5kZXNjcmlwdGlvbiB7XG4gIGdyaWQtYXJlYTogZGVzY3I7XG59XG5cbi5hZGRvbi1pdGVtIC5pbmZvIHtcbiAgZ3JpZC1hcmVhOiBpbmZvO1xufVxuXG4uYWRkb24taXRlbSAuaW1nIHtcbiAgZ3JpZC1hcmVhOiBpbWFnZTtcbn1cblxuLmFkZG9uLWl0ZW0uc2ltcGxlIC5uYW1lIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4uYWRkb24taXRlbS5zaW1wbGUgLnByaWNlIHtcbiAgZm9udC1zaXplOiAxNnB4XG59XG5cbi5hZGRvbi1pdGVtLnNpbXBsZSAuaW5mbyB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4uYWRkb24taXRlbSAuZGVzY3JpcHRpb24ge1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiB2YXIoLS1kZXNjci1zaW1wbGUtY29sb3IpO1xufVxuXG4uYWRkb24taXRlbS5pbWFnZSAubmFtZSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cblxuLmFkZG9uLWl0ZW0uaW1hZ2UgLnByaWNlIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLmFkZG9uLWl0ZW0uaW1hZ2UgLmltZyB7XG4gIHdpZHRoOiAxMDBweDtcbn1cblxuLmFkZG9uLWl0ZW0gLmltZyBpbWcge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmFkZG9uLWl0ZW0gLmNhcmQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3gtc2hhZG93OiAwIDRweCA0MHB4IDAgcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDI1cHgpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtOGRlZyk7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5hZGRvbi1pdGVtIC5jYXJkLndhbGxldCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdhbGxldC1iZy1jb2xvcik7XG4gIGNvbG9yOiB2YXIoLS1jYXJkLWNvbG9yKTtcbn1cblxuLmFkZG9uLWl0ZW0gLmNhcmQgLnRleHQge1xuICBmb250LXNpemU6IDRweDtcbn1cblxuLmFkZG9uLWl0ZW0uaW1hZ2UgLmNhcmQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTNweDtcbiAgcmlnaHQ6IDUwcHg7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0MzBweCkge1xuICAuYWRkb24taXRlbS5zaW1wbGUgLm5hbWUge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxuXG4gIC5hZGRvbi1pdGVtLmltYWdlIC5pbWcge1xuICAgIHdpZHRoOiAxMTVweDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFkZG9uLWl0ZW0uaW1hZ2UgLm5hbWUge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgfVxufVxuIiwiPHNjcmlwdCBzZXR1cD5cbmltcG9ydCB7Rm9ybWF0dGVyfSBmcm9tIFwiLi4vLi4vLi4vdG9vbHMvaTE4bi9mb3JtYXR0ZXJcIjtcbmltcG9ydCB7Y29tcHV0ZWR9IGZyb20gXCJ2dWVcIjtcbmltcG9ydCB7dXNlSTE4bn0gZnJvbSBcInZ1ZS1pMThuXCI7XG5pbXBvcnQgQWRkb25JdGVtMiBmcm9tIFwiLi4vYWRkb24vYWRkb24taXRlbTIudnVlXCI7XG5pbXBvcnQgQWRkb25QcmV2aWV3IGZyb20gXCIuL2FkZG9uLXByZXZpZXcudnVlXCI7XG5cbmNvbnN0IHsgdCB9ID0gdXNlSTE4bigpXG5cbmNvbnN0IGVtaXQgPSBkZWZpbmVFbWl0cyhbJ2FkZC1yZW1vdmUtaXRlbSddKVxuXG5jb25zdCBwcm9wcyA9IGRlZmluZVByb3BzKHtcbiAgaXRlbToge1xuICAgIHR5cGU6IE9iamVjdCxcbiAgICByZXF1aXJlZDogdHJ1ZVxuICB9LFxuICBhZGRvbnM6IHtcbiAgICB0eXBlOiBBcnJheSxcbiAgICBkZWZhdWx0OiBbXVxuICB9LFxuICBjdXJyZW5jeToge1xuICAgIHR5cGU6IFN0cmluZyxcbiAgICBkZWZhdWx0OiAnUExOJ1xuICB9LFxuICBkaXNhYmxlZDoge1xuICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgZGVmYXVsdDogZmFsc2VcbiAgfSxcbiAgcGFyZW50OiB7XG4gICAgdHlwZTogQm9vbGVhbixcbiAgICBkZWZhdWx0OiBmYWxzZVxuICB9XG59KVxuXG5jb25zdCBmb3JtYXR0ZXIgPSBuZXcgRm9ybWF0dGVyKEFwcEdsb2JhbC5sb2NhbGUpXG5cbmNvbnN0IGNzc1Byb3BlcnRpZXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gIHN3aXRjaCAocHJvcHMuaXRlbS5iZ190eXBlKSB7XG4gICAgY2FzZSAncmFkaWFsJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbG9yOiBwcm9wcy5pdGVtLnRleHRfY29sb3IxLFxuICAgICAgICBiYWNrZ3JvdW5kOiAncmFkaWFsLWdyYWRpZW50KDkxLjY5JSA2OC4wOSUgYXQgNjkuNjklIDYxLjcxJSwgJyArIHByb3BzLml0ZW0uY29sb3IxICsgJyAwJSwgJyArIHByb3BzLml0ZW0uY29sb3IyICsgJyAxMDAlKSdcbiAgICAgIH1cbiAgICBjYXNlICdsaW5lYXInOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29sb3I6IHByb3BzLml0ZW0udGV4dF9jb2xvcjEsXG4gICAgICAgIGJhY2tncm91bmQ6ICdsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAnICsgcHJvcHMuaXRlbS5jb2xvcjEgKyAnIDY1JSwgJyArIHByb3BzLml0ZW0uY29sb3IyICsgJyA2NSUsICcgKyBwcm9wcy5pdGVtLmNvbG9yMiArICcgODUlLCAnICsgcHJvcHMuaXRlbS5jb2xvcjMgKyAnIDg1JSwgJyArIHByb3BzLml0ZW0uY29sb3IzICsgJyAxMDAlKSdcbiAgICAgIH1cbiAgICBjYXNlICdpbnRlcnNlY3RpbmcnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29sb3I6IHByb3BzLml0ZW0udGV4dF9jb2xvcjEsXG4gICAgICAgIGJhY2tncm91bmQ6ICdjb25pYy1ncmFkaWVudChmcm9tIDMxZGVnIGF0IDUwJSA2NSUsICcgKyBwcm9wcy5pdGVtLmNvbG9yMSArICcgNzFkZWcsICcgKyBwcm9wcy5pdGVtLmNvbG9yMiArICcgMCUgNTAlLCAnICsgcHJvcHMuaXRlbS5jb2xvcjMgKyAnIDAlIDI1MGRlZywgJyArIHByb3BzLml0ZW0uY29sb3I0ICsgJyAwJSknXG4gICAgICB9XG4gIH1cbn0pXG5cbmNvbnN0IHBhY2thZ2VBZGRvbnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gIHJldHVybiBwcm9wcy5hZGRvbnMuZmlsdGVyKGFkZG9uID0+IHByb3BzLml0ZW0uYWRkb25zLmluY2x1ZGVzKHBhcnNlSW50KGFkZG9uLmlkKSkpXG59KVxuXG5jb25zdCBwYWNrYWdlVG90YWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gIGxldCB0b3RhbCA9IDBcbiAgcGFja2FnZUFkZG9ucy52YWx1ZS5mb3JFYWNoKGFkZG9uID0+IHtcbiAgICAvLyB0b3RhbCArPSBhZGRvbi5wcmljZV9yYXdcbiAgICAvLyAobmllIHNwcmF3ZHphbXkgY3p5IHogcHJvamVrdGVtLCBjenkgYmV6KVxuICAgIHRvdGFsICs9IGFkZG9uLnByaWNlX25vcm1hbF9yYXdcbiAgfSlcbiAgcmV0dXJuIHRvdGFsXG59KVxuXG5jb25zdCBzYXZpbmdzID0gY29tcHV0ZWQoKCkgPT4ge1xuICByZXR1cm4gcGFja2FnZVRvdGFsLnZhbHVlIC0gcHJvcHMuaXRlbS5wcmljZVxufSlcblxuZnVuY3Rpb24gYWRkUmVtb3ZlSXRlbSgpIHtcbiAgaWYgKHByb3BzLnBhcmVudCB8fCBwcm9wcy5kaXNhYmxlZCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIGVtaXQoJ2FkZC1yZW1vdmUtaXRlbScsIHByb3BzLml0ZW0pO1xufVxuPC9zY3JpcHQ+XG5cbjx0ZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cInJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1zdG9uZS0yMDAgaXRlbXMtc3RhcnQgY3Vyc29yLXBvaW50ZXIgc2VsZWN0LW5vbmUgaG92ZXI6b3BhY2l0eS04MCBiZy1jbGlwLWJvcmRlclwiIEBjbGljay5wcmV2ZW50LnN0b3A9XCJhZGRSZW1vdmVJdGVtXCI+XG4gICAgPGRpdiBjbGFzcz1cInAtNCByb3VuZGVkLXQtbWRcIiA6c3R5bGU9XCJjc3NQcm9wZXJ0aWVzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1bMjBweF0gZm9udC1ib2xkXCI+e3sgcHJvcHMuaXRlbS5uYW1lIH19PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1bMTJweF0gdXBwZXJjYXNlXCI+cGFraWV0IHByb21vY3lqbnk8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtdC00IHRleHQtWzIwcHhdIGZvbnQtbGlnaHRcIj48c3BhbiBjbGFzcz1cInRleHQtWy0tbGluay1jb2xvcl1cIj5aPC9zcGFuPjUwMDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTQgcC00IHRleHQtYmxhY2tcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBnYXAtMiBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrXCIgdi1pZj1cIiFkaXNhYmxlZFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3VuZGVkLWNoZWNrYm94IG9wdGlvbnMgdy1bMjZweF0gaC1bMjZweF0gYmctd2hpdGUgZmxleCBqdXN0aWZ5LWNlbnRlciBhbGlnbi1jZW50ZXIgcC1bMXB4XSByb3VuZGVkLW1kXCI+XG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgOmlkPVwiJ2l0ZW0tJyArIGl0ZW0uaWRcIiA6Y2hlY2tlZD1cIml0ZW0uY2hlY2tlZFwiIC8+XG4gICAgICAgICAgICA8bGFiZWwgOmZvcj1cIidpdGVtLScgKyBpdGVtLmlkXCI+PC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtYm9sZFwiPnt7IHQoJ2NhcnQucGFja2FnZV9uYW1lJywgeyBuYW1lOiBpdGVtLm5hbWUgfSkgfX08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1yLTAgbWwtYXV0b1wiPlxuPCEtLSAgICAgICAgICA8aGludCA6YXdhcmU9XCJ0cnVlXCI+LS0+XG5cbjwhLS0gICAgICAgICAgPC9oaW50Pi0tPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXNwYW4tM1wiPlxuICAgICAgICA8dWwgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0yIGZvbnQtbGlnaHQgdGV4dC1bMTNweF0gdGV4dC1ibGFjayBtbC1bM3B4XVwiPlxuICAgICAgICAgIDxsaSBjbGFzcz1cImZsZXggZ2FwLTIgbXktMC41XCIgdi1mb3I9XCJhZGRvbiBpbiBwYWNrYWdlQWRkb25zXCIgOmtleT1cImFkZG9uLmlkXCI+XG4gICAgICAgICAgICA8aGludCA6YXdhcmU9XCJ0cnVlXCIgY2xhc3M9XCJtci0yXCI+XG4gICAgICAgICAgICAgIDxhZGRvbi1wcmV2aWV3IDppdGVtPVwiYWRkb25cIiA6Y2F0ZWdvcnk9XCJhZGRvbi5jYXRlZ29yeVwiPjwvYWRkb24tcHJldmlldz5cbiAgICAgICAgICAgIDwvaGludD5cblxuICAgICAgICAgICAgPGRpdj57eyBhZGRvbi5uYW1lIH19PC9kaXY+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgPC91bD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIGZsZXggZmxleC1jb2wgZ2FwLTIgaXRlbXMtZW5kIG1iLTAgbXQtYXV0b1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC1ib2xkIHRleHQtWzIycHhdIHRleHQtcmlnaHRcIj5cbiAgICAgICAgICB7eyBmb3JtYXR0ZXIuZm9ybWF0Q3VycmVuY3koaXRlbS5wcmljZSwgY3VycmVuY3ksIHsgYXV0b1JvdW5kOiB0cnVlIH0pIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1bMTFweF0gbWQ6Z3JvdXAtWy5tb2JpbGVdOnRleHQtWzExcHhdIG1kOnRleHQtWzEzcHhdIHRyYWNraW5nLXRpZ2h0IG1kOmdyb3VwLVsubW9iaWxlXTp0cmFja2luZy10aWdodCBtZDp0cmFja2luZy1ub3JtYWwgdGV4dC1yaWdodFwiPlxuICAgICAgICAgIDxiIGNsYXNzPVwibGluZS10aHJvdWdoXCI+e3sgZm9ybWF0dGVyLmZvcm1hdEN1cnJlbmN5KHBhY2thZ2VUb3RhbCwgY3VycmVuY3ksIHsgYXV0b1JvdW5kOiB0cnVlIH0pIH19PC9iPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtWzExcHhdIG1kOmdyb3VwLVsubW9iaWxlXTp0ZXh0LVsxMXB4XSBtZDp0ZXh0LVsxM3B4XSB0cmFja2luZy10aWdodCBtZDpncm91cC1bLm1vYmlsZV06dHJhY2tpbmctdGlnaHQgbWQ6dHJhY2tpbmctbm9ybWFsIHRleHQtcmlnaHRcIj5cbiAgICAgICAgICB7eyB0KCdhZGRvbi5wYWNrYWdlX3NhdmluZ3MnKSB9fVxuICAgICAgICAgIDxiPnt7IGZvcm1hdHRlci5mb3JtYXRDdXJyZW5jeShzYXZpbmdzLCBjdXJyZW5jeSwgeyBhdXRvUm91bmQ6IHRydWUgfSkgfX08L2I+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHN0eWxlIHNjb3BlZD5cbi5yb3VuZGVkLWNoZWNrYm94IGxhYmVsIHtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgcGFkZGluZzogMDtcbiAgbGVmdDogMXB4O1xufVxuPC9zdHlsZT4iLCIucmFkaW8tYnV0dG9uIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5yYWRpby1idXR0b24gaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWxlZnQ6IDEuOGVtO1xuICBtYXJnaW46IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnJhZGlvLWJ1dHRvbiBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBsYWJlbDo6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbnRlbnQ6ICcgJztcbiAgd2lkdGg6IDEuMmVtO1xuICBoZWlnaHQ6IDEuMmVtO1xuICBib3JkZXItcmFkaXVzOiAxZW07XG4gIGJvcmRlcjogMC4wNWVtIHNvbGlkICMwMDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgei1pbmRleDogMTtcbn1cblxuLnJhZGlvLWJ1dHRvbiBpbnB1dFt0eXBlPVwicmFkaW9cIl06Y2hlY2tlZCArIGxhYmVsOjpiZWZvcmUge1xuICBib3JkZXI6IDAuMWVtIHNvbGlkICNjYTFkNjE7XG59XG5cbi5yYWRpby1idXR0b24gaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBsYWJlbDo6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiAwLjJlbTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbnRlbnQ6ICcgJztcbiAgd2lkdGg6IDAuOGVtO1xuICBoZWlnaHQ6IDAuOGVtO1xuICBib3JkZXItcmFkaXVzOiAxZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWxpbmstY29sb3IpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1saW5rLWNvbG9yKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB6LWluZGV4OiAyO1xufVxuIiwiPHNjcmlwdCBzZXR1cD5cbmltcG9ydCB7aW5qZWN0LCByZWZ9IGZyb20gXCJ2dWVcIjtcbmltcG9ydCB7dXNlSW1hZ2V9IGZyb20gXCJAL2pzL2NvbXBvc2FibGVzL3VzZUltYWdlXCI7XG5pbXBvcnQge3VzZUFzcGVjdFJhdGlvfSBmcm9tIFwiQC9qcy9jb21wb3NhYmxlcy91c2VBc3BlY3RSYXRpb1wiO1xuXG5jb25zdCBwcm9wcyA9IGRlZmluZVByb3BzKHtcbiAgaW1hZ2VzOiB7XG4gICAgdHlwZTogT2JqZWN0LFxuICAgIHJlcXVpcmVkOiB0cnVlXG4gIH0sXG4gIG1pcnJvcmVkOiB7XG4gICAgdHlwZTogQm9vbGVhbixcbiAgICBkZWZhdWx0OiBmYWxzZVxuICB9XG59KVxuXG5jb25zdCBhbWF6b25Db25maWcgPSBpbmplY3QoJ2FtYXpvbicpXG5jb25zdCB7IGdldFRodW1iLCBnZXRDb250ZW50OiBnZXRJbWFnZUNvbnRlbnQgfSA9IHVzZUltYWdlKGFtYXpvbkNvbmZpZy5pbWFnZV9jbG91ZGZyb250X2VuZHBvaW50LCBhbWF6b25Db25maWcuczNfYnVja2V0X25hbWUpXG5jb25zdCB2aWV3cG9ydCA9IHJlZihudWxsKVxuXG5mdW5jdGlvbiBzY3JvbGxOZXh0KCkge1xuICBjb25zdCB3aWR0aCA9IHZpZXdwb3J0LnZhbHVlLmNsaWVudFdpZHRoXG4gIGNvbnN0IHNjcm9sbFBvcyA9IHZpZXdwb3J0LnZhbHVlLnNjcm9sbExlZnRcbiAgY29uc3QgbmV4dFNjcm9sbFBvcyA9IHNjcm9sbFBvcyArIHdpZHRoXG4gIHZpZXdwb3J0LnZhbHVlLnNjcm9sbFRvKHtcbiAgICBsZWZ0OiBuZXh0U2Nyb2xsUG9zLCBiZWhhdmlvcjogJ3Ntb290aCdcbiAgfSlcbn1cblxuZnVuY3Rpb24gc2Nyb2xsUHJldigpIHtcbiAgY29uc3Qgd2lkdGggPSB2aWV3cG9ydC52YWx1ZS5jbGllbnRXaWR0aFxuICBjb25zdCBzY3JvbGxQb3MgPSB2aWV3cG9ydC52YWx1ZS5zY3JvbGxMZWZ0XG4gIGNvbnN0IG5leHRTY3JvbGxQb3MgPSBzY3JvbGxQb3MgLSB3aWR0aFxuICB2aWV3cG9ydC52YWx1ZS5zY3JvbGxUbyh7XG4gICAgbGVmdDogbmV4dFNjcm9sbFBvcywgYmVoYXZpb3I6ICdzbW9vdGgnXG4gIH0pXG59XG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwicmVsYXRpdmUgc2VsZWN0LW5vbmVcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWQ6dy1bMzUwcHhdIGdyb3VwLVsubGFyZ2VdOnctZnVsbCBncm91cC1bLmxhcmdlXTptYXgtdy1bMTYwMHB4XSBmbGV4IGZsZXgtbm93cmFwIG92ZXJmbG93LXgtYXV0byBzbmFwLXggc25hcC1tYW5kYXRvcnkgc2Nyb2xsLXNtb290aCBuby1zY3JvbGxiYXJcIiByZWY9XCJ2aWV3cG9ydFwiPlxuICAgICAgPHRlbXBsYXRlIHYtZm9yPVwiaW1hZ2UgaW4gaW1hZ2VzWydwcm9qZWN0X3ZpZXcnXVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LW5vbmUgc25hcC1jZW50ZXIgYmFzaXMtZnVsbFwiPlxuICAgICAgICAgIDxpbWcgY2xhc3M9XCJtZDp3LVszNTBweF0gbWQ6aC1bMjE4cHhdIGdyb3VwLVsubGFyZ2VdOnctYXV0byBtZDpncm91cC1bLmxhcmdlXTpoLWF1dG8gc206cm91bmRlZC1sZ1wiIDpjbGFzcz1cInsgJ3NjYWxlLXgtWy0xXSc6IG1pcnJvcmVkIH1cIlxuICAgICAgICAgICAgICAgOnNyYz1cImdldFRodW1iKHsgcGF0aDogaW1hZ2UucGF0aCwgd2lkdGg6IDM1MCwgaGVpZ2h0OiB1c2VBc3BlY3RSYXRpbyh7IHdpZHRoOiAzNTAsIHJhdGlvOiAxNi85IH0pLCBtaXJyb3I6IG1pcnJvcmVkLCBlZmZlY3Q6IGltYWdlLnR5cGUgPT09ICdwcm9qZWN0X3ZpZXcnID8gJ2NvdmVyJyA6ICdpbnNpZGUnIH0pXCJcbiAgICAgICAgICAgICAgIGFsdD1cIlwiXG4gICAgICAgICAgICAgICA6c3Jjc2V0PVwiaW1hZ2Uuc3Jjc2V0XCJcbiAgICAgICAgICAgICAgIGxvYWRpbmc9XCJsYXp5XCJcbiAgICAgICAgICAgICAgIGRyYWdnYWJsZT1cImZhbHNlXCJcbiAgICAgICAgICA+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC90ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaGlkZGVuIG1kOmJsb2NrIGFic29sdXRlIHRvcC0xLzIgcmlnaHQtMiB3LVszMHB4XSBoLVszMHB4XSBiZy1ncmF5LTcwMCByb3VuZGVkLWZ1bGwgaG92ZXI6YmctYmxhY2tcIiBAY2xpY2sucHJldmVudC5zdG9wPVwic2Nyb2xsTmV4dFwiIHYtaWY9XCJpbWFnZXMucHJvamVjdF92aWV3Lmxlbmd0aCA+IDFcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMS8yIGxlZnQtMS8yIC10cmFuc2xhdGUteC1bNnB4XSAtdHJhbnNsYXRlLXktMS8yIHctWzEwcHhdIGgtWzEwcHhdIC1yb3RhdGUtWzEzNWRlZ10gYm9yZGVyLWwtMiBib3JkZXItYi0yIGJvcmRlci13aGl0ZVwiPjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJoaWRkZW4gbWQ6YmxvY2sgYWJzb2x1dGUgdG9wLTEvMiBsZWZ0LTIgdy1bMzBweF0gaC1bMzBweF0gYmctZ3JheS03MDAgcm91bmRlZC1mdWxsIGhvdmVyOmJnLWJsYWNrXCIgQGNsaWNrLnByZXZlbnQuc3RvcD1cInNjcm9sbFByZXZcIiB2LWlmPVwiaW1hZ2VzLnByb2plY3Rfdmlldy5sZW5ndGggPiAxXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWJzb2x1dGUgdG9wLTEvMiBsZWZ0LTEvMiAtdHJhbnNsYXRlLXgtWzRweF0gLXRyYW5zbGF0ZS15LTEvMiB3LVsxMHB4XSBoLVsxMHB4XSByb3RhdGUtWzQ1ZGVnXSBib3JkZXItbC0yIGJvcmRlci1iLTIgYm9yZGVyLXdoaXRlXCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHN0eWxlIHNjb3BlZD5cbi5uby1zY3JvbGxiYXIge1xuICAtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7XG4gIHNjcm9sbGJhci13aWR0aDogbm9uZTtcbn1cbjwvc3R5bGU+XG4iLCI8c2NyaXB0IHNldHVwPlxuXG5pbXBvcnQge2NvbXB1dGVkLCBpbmplY3QsIHJlZiwgd2F0Y2h9IGZyb20gXCJ2dWVcIjtcbmltcG9ydCB7dXNlSTE4bn0gZnJvbSBcInZ1ZS1pMThuXCI7XG5pbXBvcnQgUHJvamVjdFNsaWRlcyBmcm9tIFwiLi9wcm9qZWN0LXNsaWRlcy52dWVcIjtcbmltcG9ydCB7dXNlUHJvamVjdH0gZnJvbSBcIkAvanMvY29tcG9zYWJsZXMvdXNlUHJvamVjdFwiO1xuaW1wb3J0IHtJY29ufSBmcm9tIFwiQGljb25pZnkvdnVlXCJcbmltcG9ydCB7dXNlSW1hZ2V9IGZyb20gXCJAL2pzL2NvbXBvc2FibGVzL3VzZUltYWdlXCI7XG5pbXBvcnQgRmF2b3JpdGVzIGZyb20gXCJAL2pzL2Zyb250ZW5kL2NvbXBvbmVudHMvZmF2b3JpdGVzL2Zhdm9yaXRlcy52dWVcIjtcbmltcG9ydCB7Rm9ybWF0dGVyfSBmcm9tIFwiQC9qcy90b29scy9pMThuL2Zvcm1hdHRlclwiO1xuXG5jb25zdCB7IHQgfSA9IHVzZUkxOG4oKVxuXG5jb25zdCBlbWl0ID0gZGVmaW5lRW1pdHMoWydlbnRlci1wcm9qZWN0JywgJ3VwZGF0ZUZhdm9yaXRlcyddKVxuXG5jb25zdCBwcm9wcyA9IGRlZmluZVByb3BzKHtcbiAgcHJvamVjdDoge1xuICAgIHR5cGU6IE9iamVjdCxcbiAgICByZXF1aXJlZDogdHJ1ZVxuICB9LFxuICBjb25maWc6IHtcbiAgICB0eXBlOiBPYmplY3QsXG4gICAgZGVmYXVsdDogQXBwR2xvYmFsLmNvbmZpZ1xuICB9LFxuICBtaXJyb3I6IHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICAgIGRlZmF1bHQ6IGZhbHNlXG4gIH0sXG4gIHNob3dSaWJib25zOiB7XG4gICAgdHlwZTogQm9vbGVhbixcbiAgICBkZWZhdWx0OiB0cnVlXG4gIH0sXG4gIHNob3dUaXRsZXM6IHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICAgIGRlZmF1bHQ6IHRydWVcbiAgfSxcbiAgc2hvd0Nvc3Q6IHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICAgIGRlZmF1bHQ6IHRydWVcbiAgfSxcbiAgc2hvd0Zhdm9yaXRlczoge1xuICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgZGVmYXVsdDogZmFsc2VcbiAgfSxcbiAgc2hvd1ZhcmlhbnRGZWF0dXJlczoge1xuICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgZGVmYXVsdDogZmFsc2VcbiAgfSxcbiAgbGFiZWxzOiB7XG4gICAgdHlwZTogT2JqZWN0LFxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIG5ldzogJ05vd2/Fm8SHJyxcbiAgICAgIHJlY29tbWVuZGVkOiAnUG9sZWNhbmUnXG4gICAgfVxuICB9LFxuICB1bml0czoge1xuICAgIHR5cGU6IE9iamVjdCxcbiAgICBkZWZhdWx0OiB7XG4gICAgICAnbTInOiAnbTxzdXA+Mjwvc3VwPidcbiAgICB9XG4gIH0sXG4gIGN1cnJlbmN5OiB7XG4gICAgdHlwZTogU3RyaW5nLFxuICAgIGRlZmF1bHQ6ICdQTE4nXG4gIH0sXG4gIGlzUGFydG5lcjoge1xuICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgZGVmYXVsdDogZmFsc2VcbiAgfSxcbiAgdmlldzoge1xuICAgIHR5cGU6IFN0cmluZyxcbiAgICBkZWZhdWx0OiAnc21hbGwnXG4gIH0sXG4gIGZsb29yczoge1xuICAgIHR5cGU6IE9iamVjdCxcbiAgICBkZWZhdWx0OiB7fVxuICB9LFxuICBmYXZvcml0ZXM6IHtcbiAgICB0eXBlOiBBcnJheSxcbiAgICBkZWZhdWx0OiBbXVxuICB9LFxufSlcblxuY29uc3Qgc2VsZWN0ZWRGbG9vciA9IHJlZigxKVxuXG5jb25zdCBfcHJvamVjdCA9IHJlZihwcm9wcy5wcm9qZWN0KVxuXG53YXRjaChcbiAgICAoKSA9PiBwcm9wcy5wcm9qZWN0LFxuICAgIChuKSA9PiB7XG4gICAgICBfcHJvamVjdC52YWx1ZSA9IG5cbiAgICB9XG4pXG5cbmNvbnN0IGFtYXpvbkNvbmZpZyA9IGluamVjdCgnYW1hem9uJylcbmNvbnN0IHsgaXNWYXJpYW50LCBhcmVhLCBjb3N0RXN0aW1hdGVUb3RhbCwgaXNXaXRoQ29uc3RydWN0aW9uLCBpc0luRmF2b3JpdGVzIH0gPSB1c2VQcm9qZWN0KF9wcm9qZWN0LCBwcm9wcy5jb25maWcpXG5jb25zdCB7IGdldFRodW1iLCBnZXRTcmNTZXQsIGdldENvbnRlbnQ6IGdldEltYWdlQ29udGVudCB9ID0gdXNlSW1hZ2UoYW1hem9uQ29uZmlnLmltYWdlX2Nsb3VkZnJvbnRfZW5kcG9pbnQsIGFtYXpvbkNvbmZpZy5zM19idWNrZXRfbmFtZSlcblxuY29uc3QgbnVtYmVyRm9ybWF0dGVyID0gbmV3IEludGwuTnVtYmVyRm9ybWF0KEFwcEdsb2JhbC5sb2NhbGUpO1xuXG5jb25zdCBuYW1lQ3NzQ2xhc3MgPSBjb21wdXRlZCgoKSA9PiB7XG4gIGlmIChpc1dpdGhDb25zdHJ1Y3Rpb24udmFsdWUpIHtcbiAgICByZXR1cm4gJ2JnLWxpbWUtMjAwIHRleHQtc3RvbmUtNzAwJ1xuICB9XG4gIGVsc2Uge1xuICAgIHJldHVybiAnYmctcGluay01MDAnXG4gIH1cbn0pXG5cbmNvbnN0IGltYWdlcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgbGV0IHByb2plY3RJbWFnZXMgPSBbXVxuICBwcm9wcy5wcm9qZWN0LmltYWdlcy5mb3JFYWNoKGltYWdlID0+IHtcbiAgICBpZiAocHJvamVjdEltYWdlc1tpbWFnZS50eXBlXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBwcm9qZWN0SW1hZ2VzW2ltYWdlLnR5cGVdID0gW11cbiAgICB9XG4gICAgcHJvamVjdEltYWdlc1tpbWFnZS50eXBlXS5wdXNoKGltYWdlKVxuICB9KVxuICByZXR1cm4gcHJvamVjdEltYWdlc1xufSlcblxuY29uc3Qgc3RvY2tEaXNjb3VudCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgaWYgKHByb3BzLnByb2plY3Quc3RvY2suaWQgIT09IG51bGwpIHtcbiAgICBpZiAocHJvcHMuaXNQYXJ0bmVyKSB7XG4gICAgICByZXR1cm4gcHJvcHMucHJvamVjdC5zdG9jay5wYXJ0bmVyX2Rpc2NvdW50XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgcmV0dXJuIHByb3BzLnByb2plY3Quc3RvY2suZGlzY291bnRcbiAgICB9XG4gIH1cbiAgcmV0dXJuIDBcbn0pXG5cbmNvbnN0IHByb2plY3Rpb25zID0gY29tcHV0ZWQoKCkgPT4ge1xuICByZXR1cm4gcHJvcHMucHJvamVjdC5pbWFnZXMuZmlsdGVyKGltYWdlID0+IGltYWdlLnR5cGUgPT09ICdwcm9qZWN0X3Byb2plY3Rpb24nICYmICFpbWFnZS5taXJyb3JlZCkuc29ydCgoYSwgYikgPT4ge1xuICAgIHJldHVybiBhLmZsb29yIDwgYi5mbG9vciA/IC0xIDogKGEuZmxvb3IgPiBiLmZsb29yID8gMSA6IDApXG4gIH0pXG59KVxuXG5mdW5jdGlvbiBwcmljZVRleHQocHJpY2UpIHtcbiAgbGV0IGZvcm1hdHRlciA9IG5ldyBJbnRsLk51bWJlckZvcm1hdCgncGwtUEwnLCB7XG4gICAgc3R5bGU6ICdjdXJyZW5jeScsXG4gICAgY3VycmVuY3k6IHByb3BzLmN1cnJlbmN5XG4gIH0pO1xuXG4gIHJldHVybiBmb3JtYXR0ZXIuZm9ybWF0KHByaWNlKTtcbn1cblxuZnVuY3Rpb24gY2xpY2soKSB7XG4gIGVtaXQoJ2VudGVyLXByb2plY3QnLCBwcm9wcy5wcm9qZWN0KVxufVxuXG5mdW5jdGlvbiBwcm9qZWN0Q3NzKCkge1xuICBzd2l0Y2ggKHByb3BzLnZpZXcpIHtcbiAgICBjYXNlICdsYXJnZSc6XG4gICAgICByZXR1cm4gJ2xhcmdlJ1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gJ3NtYWxsJ1xuICB9XG59XG5cbmZ1bmN0aW9uIHN3aXRjaEZsb29yKGZsb29yKSB7XG4gIHNlbGVjdGVkRmxvb3IudmFsdWUgPSBwYXJzZUludChmbG9vcilcbn1cblxuZnVuY3Rpb24gdXBkYXRlRmF2b3JpdGVzKCkge1xuICBlbWl0KCd1cGRhdGVGYXZvcml0ZXMnKVxufVxuPC9zY3JpcHQ+XG5cbjx0ZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwIGp1c3RpZnktY2VudGVyIHByb2plY3QgZ3JvdXAgcmVsYXRpdmUgdGV4dC1pbmhlcml0IG1kOnctWzM1MHB4XSBncm91cC1bLmxhcmdlXTpoLWF1dG8gZ3JvdXAtWy5sYXJnZV06bWQ6aC1hdXRvIGdyb3VwLVsubGFyZ2VdOnctZnVsbCBncm91cC1bLmxhcmdlXTptYXgtdy1bMTYwMHB4XVwiIDpjbGFzcz1cInByb2plY3RDc3NcIj5cbiAgICA8YSBjbGFzcz1cImJsb2NrIGRlY29yYXRpb24tMCB0ZXh0LVsjMkQyRDJGXSBncm91cC1bLmxhcmdlXTpsZzp3LTEvMiBncm91cC1bLmxhcmdlXTp4bDp3LTUvMTJcIiA6aHJlZj1cInByb2plY3QudXJsXCIgQGNsaWNrLnByZXZlbnQ9XCJjbGlja1wiIGRhdGEtZ2EtYWN0aW9uPVwicHJvZHVjdC1jbGljay1pbXByZXNzaW9uXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmVcIj5cbiAgICAgICAgPHByb2plY3Qtc2xpZGVzIDppbWFnZXM9XCJpbWFnZXNcIiA6bWlycm9yZWQ9XCJwcm9qZWN0LnN0b2NrID8gQm9vbGVhbihwcm9qZWN0LnN0b2NrLm1pcnJvcikgOiBmYWxzZVwiPjwvcHJvamVjdC1zbGlkZXM+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFic29sdXRlIHRvcC0yIGxlZnQtMiBmbGV4IGZsZXgtY29sIGdhcC0yIHRleHQtWzExcHhdIHVwcGVyY2FzZVwiIHYtaWY9XCJzaG93UmliYm9uc1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IHB4LTIgcHktMC41IHRleHQtYmxhY2sgZm9udC1ib2xkIGxhYmVsIG5ldyBiZy1wdXJwbGUtMzAwIHRleHQtY2VudGVyIHJvdW5kZWQtbWQganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyIGdhcC0xXCIgdi1pZj1cInByb2plY3Quc3RvY2tfaWQgIT09IG51bGwgJiYgc3RvY2tEaXNjb3VudCA+IDBcIj5cbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJzaXplLVsxNnB4XVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUwIDUwXCI+XG4gICAgICAgICAgICAgIDxwYXRoIGQ9XCJNIDI4LjYyNSAyIEMgMjguMjg1MTU2IDIuMDAzOTA2IDI3Ljk0MTQwNiAyLjAxOTUzMSAyNy41OTM3NSAyLjA2MjUgQyAyNi45MDIzNDQgMi4xNTIzNDQgMjYuMTQ0NTMxIDIuMzg2NzE5IDI1LjU2MjUgMi45Njg3NSBMIDIuODQzNzUgMjUuNjg3NSBDIDEuNzIyNjU2IDI2LjgwODU5NCAxLjcyMjY1NiAyOC42NjAxNTYgMi44NDM3NSAyOS43ODEyNSBMIDIwLjIxODc1IDQ3LjE1NjI1IEMgMjEuMzM5ODQ0IDQ4LjI3NzM0NCAyMy4xOTE0MDYgNDguMjc3MzQ0IDI0LjMxMjUgNDcuMTU2MjUgTCA0Ny4wMzEyNSAyNC40Mzc1IEMgNDcuNjA5Mzc1IDIzLjg1OTM3NSA0Ny44NDc2NTYgMjMuMDkzNzUgNDcuOTM3NSAyMi40MDYyNSBDIDQ4LjAyNzM0NCAyMS43MTg3NSA0OCAyMS4wMzkwNjMgNDggMjAuMzc1IEwgNDggNS41IEMgNDggMy41NzgxMjUgNDYuNDIxODc1IDIgNDQuNSAyIEwgMjkuNjI1IDIgQyAyOS4zMDA3ODEgMiAyOC45NjQ4NDQgMS45OTYwOTQgMjguNjI1IDIgWiBNIDI4LjY1NjI1IDQgQyAyOC45NDkyMTkgMy45OTIxODggMjkuMjg1MTU2IDQgMjkuNjI1IDQgTCA0NC41IDQgQyA0NS4zMzk4NDQgNCA0NiA0LjY2MDE1NiA0NiA1LjUgTCA0NiAyMC4zNzUgQyA0NiAyMS4wNzAzMTMgNDUuOTk2MDk0IDIxLjY5OTIxOSA0NS45Mzc1IDIyLjE1NjI1IEMgNDUuODc4OTA2IDIyLjYxMzI4MSA0NS43ODUxNTYgMjIuODM5ODQ0IDQ1LjYyNSAyMyBMIDIyLjkwNjI1IDQ1Ljc1IEMgMjIuNTUwNzgxIDQ2LjEwNTQ2OSAyMS45ODA0NjkgNDYuMTA1NDY5IDIxLjYyNSA0NS43NSBMIDIxLjUgNDUuNTkzNzUgTCA0LjI1IDI4LjM3NSBDIDMuODk0NTMxIDI4LjAxOTUzMSAzLjg5NDUzMSAyNy40NDkyMTkgNC4yNSAyNy4wOTM3NSBMIDI3IDQuMzc1IEMgMjcuMTU2MjUgNC4yMTg3NSAyNy40MTQwNjMgNC4xMjEwOTQgMjcuODc1IDQuMDYyNSBDIDI4LjEwNTQ2OSA0LjAzMTI1IDI4LjM2MzI4MSA0LjAwNzgxMyAyOC42NTYyNSA0IFogTSAzOSA3IEMgMzYuODAwNzgxIDcgMzUgOC44MDA3ODEgMzUgMTEgQyAzNSAxMy4xOTkyMTkgMzYuODAwNzgxIDE1IDM5IDE1IEMgNDEuMTk5MjE5IDE1IDQzIDEzLjE5OTIxOSA0MyAxMSBDIDQzIDguODAwNzgxIDQxLjE5OTIxOSA3IDM5IDcgWiBNIDM5IDkgQyA0MC4xMTcxODggOSA0MSA5Ljg4MjgxMyA0MSAxMSBDIDQxIDEyLjExNzE4OCA0MC4xMTcxODggMTMgMzkgMTMgQyAzNy44ODI4MTMgMTMgMzcgMTIuMTE3MTg4IDM3IDExIEMgMzcgOS44ODI4MTMgMzcuODgyODEzIDkgMzkgOSBaXCI+PC9wYXRoPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICB7eyB0KCdwcm9qZWN0Lm91dGxldF9kaXNjb3VudCcsIHsgZGlzY291bnQ6IHN0b2NrRGlzY291bnQgfSkgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8dGVtcGxhdGUgdi1lbHNlPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJsb2NrIHB4LTIgcHktWzJweF0gdGV4dC1ibGFjayBmb250LWJvbGQgbGFiZWwgbmV3IGJnLWxpbWUtMjAwIHRleHQtY2VudGVyIHJvdW5kZWQtbWRcIiB2LWlmPVwiaXNXaXRoQ29uc3RydWN0aW9uXCI+e3sgdCgncHJvamVjdC53aXRoX2NvbnN0cnVjdGlvbicpIH19PC9kaXY+XG4gICAgICAgICAgICA8dGVtcGxhdGUgdi1lbHNlPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmxvY2sgcHgtMiBweS1bMnB4XSB0ZXh0LWJsYWNrIGZvbnQtYm9sZCBsYWJlbCBuZXcgYmctcGluay01MDAgdGV4dC13aGl0ZSB0ZXh0LWNlbnRlciByb3VuZGVkLW1kXCIgdi1pZj1cIkJvb2xlYW4ocHJvamVjdC5pc19uZXcpXCI+e3sgdCgncHJvamVjdC5uZXcnKSB9fTwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmxvY2sgcHgtMiBweS1bMnB4XSB0ZXh0LXdoaXRlIGxhYmVsIHJlY29tbWVuZGVkIGJnLWJsdWUtNDAwIGZvbnQtYm9sZCB0ZXh0LWNlbnRlciByb3VuZGVkLW1kXCIgdi1pZj1cIkJvb2xlYW4ocHJvamVjdC5pc19yZWNvbW1lbmRlZCkgJiYgIShCb29sZWFuKHByb2plY3QuaXNfbmV3KSlcIj57eyB0KCdwcm9qZWN0LnJlY29tbWVuZGVkJykgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFic29sdXRlIGJvdHRvbS0yIGxlZnQtMiBmbGV4XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInB5LTEgcHgtMyB0ZXh0LVstLXN5bWJvbC1jb2xvcl0gZm9udC1ib2xkIHJvdW5kZWQtbWRcIiA6Y2xhc3M9XCJuYW1lQ3NzQ2xhc3NcIiB2LWh0bWw9XCJgJHtwcm9qZWN0LnN5bWJvbH0keyBpc1ZhcmlhbnQgPyAnICcgKyBwcm9qZWN0LmNvZGUgOiAnJyB9YFwiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZmF2b3JpdGVzIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTIgcmlnaHQtMlwiIHR5cGU9XCJwcm9qZWN0XCIgOmlkPVwicHJvamVjdC5pZF9wcmltYXJ5XCIgOnZhbHVlPVwiaXNJbkZhdm9yaXRlcyhmYXZvcml0ZXMpXCIgQHVwZGF0ZT1cInVwZGF0ZUZhdm9yaXRlc1wiIHYtaWY9XCJzaG93RmF2b3JpdGVzXCIgLz5cbiAgICAgIDwvZGl2PlxuXG48IS0tICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1ub3dyYXAgaXRlbXMtc3RyZXRjaCBteS1bNXB4XSBteC1hdXRvIGJnLVsmIzQ1OyYjNDU7cHJvamVjdC1pbmZvLWJnLWNvbG9yXSB0ZXh0LVsmIzQ1OyYjNDU7cHJvamVjdC1pbmZvLWNvbG9yXSByb3VuZGVkLVszcHhdIG92ZXJmbG93LWhpZGRlbiB0ZXh0LVsxNHB4XSBtYXgtaC1bMzdweF1cIj4tLT5cbjwhLS0gICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lIG1heC13LVsxNDBweF0gcHktMiBweC0zIHRleHQtWyYjNDU7JiM0NTtzeW1ib2wtY29sb3JdIGZvbnQtYm9sZCBvdmVyZmxvdy1oaWRkZW5cIiA6Y2xhc3M9XCJuYW1lQ3NzQ2xhc3NcIiB2LWh0bWw9XCJgJHtwcm9qZWN0LnN5bWJvbH0keyBpc1ZhcmlhbnQgPyAnICcgKyBwcm9qZWN0LmNvZGUgOiAnJyB9YFwiPjwvZGl2Pi0tPlxuPCEtLSAgICAgICAgPGRpdiBjbGFzcz1cImFyZWEgcC0yIGJnLVsmIzQ1OyYjNDU7YXJlYS1iZy1jb2xvcl0gdGV4dC1bJiM0NTsmIzQ1O2FyZWEtY29sb3JdIHRleHQtcmlnaHRcIj4tLT5cbjwhLS0gICAgICAgICAge3sgYXJlYSB9fS0tPlxuPCEtLSAgICAgICAgICA8dGVtcGxhdGUgdi1pZj1cInByb2plY3QuZ2FyYWdlX2FyZWEgPiAwXCI+KyB7eyBNYXRoLnJvdW5kKHByb2plY3QuZ2FyYWdlX2FyZWEpIH19PC90ZW1wbGF0ZT4tLT5cbjwhLS0gICAgICAgICAge3sgdW5pdHMubTIgfX0tLT5cbjwhLS0gICAgICAgIDwvZGl2Pi0tPlxuPCEtLSAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwIGp1c3RpZnktZW5kIGl0ZW1zLWNlbnRlciBteS0wIG1sLWF1dG8gbXItMCBweC00IHB5LTIgZ2FwLTFcIiB2LWlmPVwic2hvd0Nvc3QgJiYgcHJvamVjdC5jb3N0X2VzdGltYXRlX3RvdGFsXCIgdi1odG1sPVwiY29zdEVzdGltYXRlVG90YWxcIj48L2Rpdj4tLT5cbjwhLS0gICAgICA8L2Rpdj4tLT5cblxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1ub3dyYXAgaXRlbXMtc3RyZXRjaCBtZDpteS1bNXB4XSBiZy1zdG9uZS0xMDAgbWQ6cm91bmRlZC1sZyB0ZXh0LVsxNHB4XSBmb250LXNlbWlib2xkXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBwLTJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTFcIiB0aXRsZT1cInBvd2llcnpjaG5pYSB1xbx5dGtvd2FcIj5cbiAgICAgICAgICAgIDxJY29uIGljb249XCJtYXRlcmlhbC1zeW1ib2xzLWxpZ2h0OmhvbWUtb3V0bGluZS1yb3VuZGVkXCIgY2xhc3M9XCJzaXplLTZcIiAvPlxuICAgICAgICAgICAge3sgYXJlYSB9fSB7eyB1bml0cy5tMiB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMVwiIHRpdGxlPVwicG93aWVyemNobmlhIGdhcmHFvHVcIiB2LWlmPVwicHJvamVjdC5nYXJhZ2VfYXJlYSA+IDBcIj5cbiAgICAgICAgICAgICtcbiAgICAgICAgICAgIDxJY29uIGljb249XCJtYXRlcmlhbC1zeW1ib2xzLWxpZ2h0OmdhcmFnZS1jaGVjay1vdXRsaW5lLXJvdW5kZWRcIiBjbGFzcz1cInNpemUtNlwiIC8+XG4gICAgICAgICAgICB7eyBNYXRoLnJvdW5kKHByb2plY3QuZ2FyYWdlX2FyZWEpIH19XG4gICAgICAgICAgICB7eyB1bml0cy5tMiB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwIGp1c3RpZnktZW5kIGl0ZW1zLWNlbnRlciBteS0wIG1sLWF1dG8gbXItMCBweC00IHB5LTIgZ2FwLTFcIiB2LWlmPVwic2hvd0Nvc3QgJiYgcHJvamVjdC5jb3N0X2VzdGltYXRlX3RvdGFsXCI+XG4gICAgICAgICAgPHNwYW4gdi1odG1sPVwiY29zdEVzdGltYXRlVG90YWxcIj48L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IHAtMiB0ZXh0LVsxM3B4XSBnYXAtNCB0ZXh0LVstLWNvdW50ZXJzLWNvbG9yXVwiIHYtaWY9XCJwcm9qZWN0LnZhcmlhbnRzX2NvdW50ID4gMCB8fCBwcm9qZWN0LnJlYWxpemF0aW9uc19jb3VudCA+IDAgfHwgcHJvamVjdC5jb21tZW50c19jb3VudCA+IDBcIj5cbiAgICAgICAgPGRpdiB2LWlmPVwicGFyc2VJbnQocHJvamVjdC52YXJpYW50c19jb3VudClcIj57eyB0KCdwcm9qZWN0LnZhcmlhbnRzJykgfX06IDxiPnt7IHByb2plY3QudmFyaWFudHNfY291bnQgfX08L2I+PC9kaXY+XG4gICAgICAgIDxkaXYgdi1pZj1cInBhcnNlSW50KHByb2plY3QucmVhbGl6YXRpb25zX2NvdW50KVwiPnt7IHQoJ3Byb2plY3QucmVhbGl6YXRpb25zJykgfX06IDxiPnt7IHByb2plY3QucmVhbGl6YXRpb25zX2NvdW50IH19PC9iPjwvZGl2PlxuICAgICAgICA8ZGl2IHYtaWY9XCJwYXJzZUludChwcm9qZWN0LmNvbW1lbnRzX2NvdW50KVwiPnt7IHQoJ3Byb2plY3QuY29tbWVudHMnKSB9fTogPGI+e3sgcHJvamVjdC5jb21tZW50c19jb3VudCB9fTwvYj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwidGl0bGUgdGV4dC1bMTNweF0gcC0yXCIgdi1pZj1cInNob3dUaXRsZXNcIj57eyBwcm9qZWN0LnRpdGxlIH19PC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0yIHAtMiB0ZXh0LVsxM3B4XVwiIHYtaWY9XCJ2aWV3ID09PSAnZGV0YWlsJ1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlyc3QtbGV0dGVyOmxvd2VyY2FzZVwiPnt7IHQoJ3NlYXJjaC5mb290cHJpbnRfYXJlYScpIH19PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtc2VtaWJvbGRcIj57eyBNYXRoLnJvdW5kKHByb2plY3QuZm9vdHByaW50X2FyZWEsIDIpIH19IHt7IHVuaXRzLm0yIH19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlyc3QtbGV0dGVyOmxvd2VyY2FzZVwiPnt7IHQoJ3NlYXJjaC5taW5fcGxvdF9zaXplcycpIH19PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtc2VtaWJvbGRcIj57eyBudW1iZXJGb3JtYXR0ZXIuZm9ybWF0KHByb2plY3QubG90X3dpZHRoKSB9fSB4IHt7IG51bWJlckZvcm1hdHRlci5mb3JtYXQocHJvamVjdC5sb3RfbGVuZ3RoKSB9fSB7eyB1bml0cy5tIH19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICA8ZGl2Pnt7IHQoJ3NlYXJjaC5yb29mX2FuZ2xlJykgfX08L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC1zZW1pYm9sZFwiPnt7IHByb2plY3Qucm9vZl9hbmdsZSB9fSZkZWc7PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgdi1pZj1cInNob3dWYXJpYW50RmVhdHVyZXMgJiYgcHJvamVjdC52YXJpYW50X2ZlYXR1cmVzXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtc2VtaWJvbGRcIiB2LWZvcj1cImVsIGluIHByb2plY3QudmFyaWFudF9mZWF0dXJlcy5hZGRlZFwiPisge3sgZWwudGV4dCB9fTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LXNlbWlib2xkXCIgdi1mb3I9XCJlbCBpbiBwcm9qZWN0LnZhcmlhbnRfZmVhdHVyZXMucmVtb3ZlZFwiPi0ge3sgZWwudGV4dCB9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvYT5cblxuICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZSBmbGV4IGZsZXgtd3JhcCBmbGV4LWNvbCBqdXN0aWZ5LXN0YXJ0IGdyb3VwLVsubGFyZ2VdOmxnOnctMS8yIHB5LTQgbGc6cHgtNFwiIHYtaWY9XCJ2aWV3ID09PSAnbGFyZ2UnXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWJzb2x1dGUgdG9wLTQgcmlnaHQtNCBmbGV4IG1sLWF1dG8gbXItMCBqdXN0aWZ5LWVuZCBnYXAtMlwiPlxuICAgICAgICA8dGVtcGxhdGUgdi1mb3I9XCJwcm9qZWN0aW9uIGluIHByb2plY3Rpb25zXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJsb2NrIHRleHQtd2hpdGUgcm91bmRlZC1sZyBib3JkZXItMCBweC0zIHB5LTIgY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBAY2xpY2s9XCJzd2l0Y2hGbG9vcihwcm9qZWN0aW9uLmZsb29yKVwiXG4gICAgICAgICAgICAgICAgICA6Y2xhc3M9XCJ7ICdiZy1waW5rLTUwMCc6IHBhcnNlSW50KHByb2plY3Rpb24uZmxvb3IpID09PSBzZWxlY3RlZEZsb29yLCAnYmctZ3JheS0zMDAnOiBwYXJzZUludChwcm9qZWN0aW9uLmZsb29yKSAhPT0gc2VsZWN0ZWRGbG9vciB9XCJcbiAgICAgICAgICA+e3sgZmxvb3JzW3Byb2plY3Rpb24uZmxvb3JdIH19PC9idXR0b24+XG4gICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPHRlbXBsYXRlIHYtZm9yPVwicHJvamVjdGlvbiBpbiBwcm9qZWN0aW9uc1wiPlxuICAgICAgICA8dGVtcGxhdGUgdi1pZj1cInBhcnNlSW50KHByb2plY3Rpb24uZmxvb3IpID09PSBzZWxlY3RlZEZsb29yXCI+XG4gICAgICAgICAgPHRlbXBsYXRlIHYtaWY9XCJwcm9qZWN0aW9uLmNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLWZ1bGwgKjpoLWZ1bGwgKjp3LWF1dG8gbWF4LWgtWzU0NXB4XSBtLWF1dG9cIiB2LWh0bWw9XCJnZXRJbWFnZUNvbnRlbnQocHJvamVjdGlvbi5jb250ZW50KVwiPjwvZGl2PlxuICAgICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICAgICAgPHBpY3R1cmUgY2xhc3M9XCJteC1hdXRvXCIgdi1lbHNlPlxuICAgICAgICAgICAgPGltZyBjbGFzcz1cInctZnVsbCBoLWF1dG8gbWF4LXctWzU0NXB4XSBtYXgtaC1bNTQ1cHhdXCIgOnNyYz1cImdldFRodW1iKHsgcGF0aDogcHJvamVjdGlvbi5wYXRoLCB3aWR0aDogNTQ1LCBoZWlnaHQ6IDU2MCwgbWlycm9yOiAgbWlycm9yLCBlZmZlY3Q6ICdvdXRzaWRlJyB9KVwiIGxvYWRpbmc9XCJsYXp5XCIgOmFsdD1cInByb2plY3Rpb24uZmxvb3IgPiAxID8gdCgnc2VhcmNoLmZsb29yX3ZpZXcnKSA6IHQoJ3NlYXJjaC5ncm91bmRfZmxvb3JfdmlldycpXCI+XG4gICAgICAgICAgPC9waWN0dXJlPlxuICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgPC90ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c3R5bGUgc2NvcGVkPlxuLnByb2plY3Qge1xuICAtLXN5bWJvbC1iZy1jb2xvcjogI2Q5MzA4YTtcbiAgLS1zeW1ib2wtY29sb3I6ICNmZmY7XG4gIC0tYXJlYS1iZy1jb2xvcjogIzM1MWM0ZjtcbiAgLS1hcmVhLWNvbG9yOiAjZmZmO1xuICAtLWNvdW50ZXJzLWNvbG9yOiAjOTk5O1xufVxuPC9zdHlsZT5cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/