.compare-button .material-icons-done {
  display: none; }

.compare-button.selected .thin-icon-settings {
  display: none; }

.compare-button.selected .material-icons-done {
  display: block; }

.compare-header .compare-products {
  display: block;
  position: relative; }
  .compare-header .compare-products .compare-counter {
    position: absolute;
    top: 0;
    left: 50%;
    color: white;
    background: #77ad1a;
    font-size: 0.6rem;
    height: 0.93333rem;
    margin-left: 0.4rem;
    line-height: 0.93333rem;
    min-width: 0.93333rem;
    border-radius: 50%;
    padding: 0 0.2rem;
    text-align: center; }
    @media (min-width: 1200px) {
      .compare-header .compare-products .compare-counter {
        top: 0.73333rem;
        font-size: 0.66667rem;
        height: 1.06667rem;
        margin-left: 0.8rem;
        line-height: 1.06667rem;
        min-width: 1.06667rem; } }

#compare-footer [data-off-canvas] {
  background: white;
  -webkit-box-shadow: 0px 1rem 4.13333rem 0px rgba(0, 0, 0, 0.07);
          box-shadow: 0px 1rem 4.13333rem 0px rgba(0, 0, 0, 0.07); }

#compare-footer .compare-footer-grover {
  width: 3.33333rem;
  height: 3.33333rem;
  position: fixed;
  left: 0;
  top: calc(100% - 3.33333rem);
  background: white;
  z-index: 5;
  text-align: center;
  cursor: pointer; }
  #compare-footer .compare-footer-grover i {
    font-size: 1.33333rem;
    line-height: 3.33333rem;
    margin-right: 1rem; }
  #compare-footer .compare-footer-grover span {
    vertical-align: 0.66667rem; }
  #compare-footer .compare-footer-grover:hover {
    color: #77ad1a; }
  #compare-footer .compare-footer-grover.open-slidebar i:before {
    font-family: 'Material Icons';
    content: '\E5CD'; }

#compare-footer #compare-list-footer {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  overflow-y: auto; }
  #compare-footer #compare-list-footer li:not(.no-products) {
    width: 5.66667rem;
    min-width: 5.66667rem;
    margin-right: 0.66667rem; }
    #compare-footer #compare-list-footer li:not(.no-products):last-child {
      margin-right: 0; }

#compare-footer .buttons a {
  font-size: 1rem;
  text-transform: none;
  font-weight: normal;
  margin-right: 1.33333rem; }
  #compare-footer .buttons a:hover {
    color: #77ad1a; }

#modal-compare .modal-dialog .close {
  top: 0;
  right: 0;
  width: 1.66667rem;
  height: 1.66667rem; }

#modal-compare .product-thumbnail .close-product span {
  top: 0;
  margin-right: 0;
  right: 0.33333rem; }

#modal-compare:not(.with-products) #compare-products, #modal-compare:not(.with-products) #compare-features {
  display: none;
  margin: 0 50%; }

#modal-compare.with-products .modal-dialog {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

#modal-compare.with-products .modal-content {
  background: white;
  border: none;
  width: auto;
  max-width: 100%;
  padding-top: 1.66667rem; }
  #modal-compare.with-products .modal-content .modal-content-compare {
    border-right: 0.06667rem solid #e7e7e7;
    padding-left: 1.33333rem;
    overflow-x: auto;
    background: #252a33; }
    #modal-compare.with-products .modal-content .modal-content-compare #compare-products {
      background: white;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; }
      #modal-compare.with-products .modal-content .modal-content-compare #compare-products > div {
        min-width: 13.33333rem;
        max-width: 13.33333rem;
        text-align: center;
        background: white;
        border-left: 0.06667rem solid #e7e7e7;
        border-top: 0.06667rem solid #e7e7e7; }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-products > div:first-child {
          background: none;
          border: none;
          -webkit-transition: all .2s;
          transition: all .2s;
          -webkit-transition-timing-function: cubic-bezier(0.2, 0, 0.065, 0.25);
                  transition-timing-function: cubic-bezier(0.2, 0, 0.065, 0.25); }
          #modal-compare.with-products .modal-content .modal-content-compare #compare-products > div:first-child > div {
            min-width: 13.33333rem;
            -webkit-transition: all .2s;
            transition: all .2s;
            -webkit-transition-timing-function: cubic-bezier(0.2, 0, 0.065, 0.25);
                    transition-timing-function: cubic-bezier(0.2, 0, 0.065, 0.25); }
        @media (max-width: 767.98px) {
          #modal-compare.with-products .modal-content .modal-content-compare #compare-products > div {
            min-width: 10rem;
            max-width: 10rem; }
            #modal-compare.with-products .modal-content .modal-content-compare #compare-products > div:first-child > div {
              min-width: 13.33333rem; } }
      #modal-compare.with-products .modal-content .modal-content-compare #compare-products.close-titles > div:first-child {
        min-width: 0;
        max-width: 100%; }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-products.close-titles > div:first-child > div {
          margin-left: -13.33333rem; }
    #modal-compare.with-products .modal-content .modal-content-compare #compare-features {
      position: relative;
      text-transform: uppercase;
      font-size: 0.8rem;
      color: #252a33; }
      #modal-compare.with-products .modal-content .modal-content-compare #compare-features .features-toggle {
        position: absolute;
        right: 100%;
        top: 0;
        bottom: 0;
        width: 1.33333rem;
        background: #252a33;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -ms-flex-pack: distribute;
            justify-content: space-around;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        color: white;
        cursor: pointer;
        -webkit-transition: all .2s;
        transition: all .2s;
        -webkit-transition-timing-function: cubic-bezier(0.2, 0, 0.065, 0.25);
                transition-timing-function: cubic-bezier(0.2, 0, 0.065, 0.25); }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-features .features-toggle:hover {
          color: #878787; }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-features .features-toggle span {
          letter-spacing: 0.8em;
          -webkit-writing-mode: vertical-rl;
              -ms-writing-mode: tb-rl;
                  writing-mode: vertical-rl;
          text-orientation: upright; }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-features .features-toggle i {
          font-size: 1.06667rem;
          -webkit-transition: all 0.3s ease;
          transition: all 0.3s ease; }
      #modal-compare.with-products .modal-content .modal-content-compare #compare-features .compare-features-title {
        -webkit-transition: all .2s;
        transition: all .2s;
        -webkit-transition-timing-function: cubic-bezier(0.2, 0, 0.065, 0.25);
                transition-timing-function: cubic-bezier(0.2, 0, 0.065, 0.25); }
      #modal-compare.with-products .modal-content .modal-content-compare #compare-features.close-titles .features-toggle {
        color: #878787; }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-features.close-titles .features-toggle i {
          -webkit-transform: rotate(180deg);
                  transform: rotate(180deg); }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-features.close-titles .features-toggle:hover {
          color: white; }
      #modal-compare.with-products .modal-content .modal-content-compare #compare-features.close-titles .compare-features-row .compare-features-title {
        margin-left: -13.33333rem;
        color: #f8f8f8; }
        @media (max-width: 767.98px) {
          #modal-compare.with-products .modal-content .modal-content-compare #compare-features.close-titles .compare-features-row .compare-features-title {
            margin-left: -10rem; } }
      #modal-compare.with-products .modal-content .modal-content-compare #compare-features .compare-features-row {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex; }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-features .compare-features-row:nth-child(even) .compare-features-item {
          background: #f8f8f8; }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-features .compare-features-row:nth-child(odd) .compare-features-item {
          background: white; }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-features .compare-features-row:last-child > div:not(:first-child) {
          border-bottom: 0.06667rem solid #e7e7e7; }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-features .compare-features-row > div {
          min-width: 13.33333rem;
          max-width: 13.33333rem;
          padding: 1.13333rem 0.66667rem 0.93333rem;
          text-align: center;
          border-left: 0.06667rem solid #e7e7e7; }
          #modal-compare.with-products .modal-content .modal-content-compare #compare-features .compare-features-row > div:first-child {
            text-align: left;
            background: #f8f8f8;
            border: none;
            font-weight: bold;
            padding-left: 2rem; }
          @media (max-width: 767.98px) {
            #modal-compare.with-products .modal-content .modal-content-compare #compare-features .compare-features-row > div {
              min-width: 10rem;
              max-width: 10rem;
              padding: 0.6rem 0.33333rem 0.53333rem; }
              #modal-compare.with-products .modal-content .modal-content-compare #compare-features .compare-features-row > div:first-child {
                padding-left: 1rem; } }

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9tb2R1bGVzL2p4Y29tcGFyZXByb2R1Y3Qvdmlld3MvY3NzL0Q6L09TUGFuZWwvZG9tYWlucy9sb2NhbGhvc3QvRXZlcHJlc3RfU1BfdGVzdC90aGVtZXMvdGhlbWUxNTE0L19kZXYvbW9kdWxlcy9qeGNvbXBhcmVwcm9kdWN0L3ZpZXdzL2Nzcy9qeGNvbXBhcmVwcm9kdWN0LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbW9kdWxlcy9qeGNvbXBhcmVwcm9kdWN0L3ZpZXdzL2Nzcy9EOi9PU1BhbmVsL2RvbWFpbnMvbG9jYWxob3N0L0V2ZXByZXN0X1NQX3Rlc3QvdGhlbWVzL3RoZW1lMTUxNC9fZGV2L2Nzcy9wYXJ0aWFscy9fdmFyaWFibGVzX2NvbG9yLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbW9kdWxlcy9qeGNvbXBhcmVwcm9kdWN0L3ZpZXdzL2Nzcy9EOi9PU1BhbmVsL2RvbWFpbnMvbG9jYWxob3N0L0V2ZXByZXN0X1NQX3Rlc3QvdGhlbWVzL3RoZW1lMTUxNC9fZGV2L25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2JyZWFrcG9pbnRzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFFSSxjQUFhLEVBQ2Q7O0FBRUg7RUFFSSxjQUFhLEVBQ2Q7O0FBSEg7RUFLSSxlQUFjLEVBQ2Y7O0FBR0g7RUFFSSxlQUFjO0VBQ2QsbUJBQWtCLEVBMEJuQjtFQTdCSDtJQU1NLG1CQUFrQjtJQUNsQixPQUFNO0lBQ04sVUFBUztJQUNULGFBQVk7SUFDWixvQkNpQlc7SURoQlgsa0JBQWM7SUFDZCxtQkFBWTtJQUNaLG9CQUFnQjtJQUNoQix3QkFBaUI7SUFDakIsc0JBQWU7SUFDZixtQkFBa0I7SUFDbEIsa0JBQWM7SUFDZCxtQkFBa0IsRUFVbkI7SUFSQztNQXBCTjtRQXFCUSxnQkFBUztRQUNULHNCQUFlO1FBQ2YsbUJBQVk7UUFDWixvQkFBaUI7UUFDakIsd0JBQWlCO1FBQ2pCLHNCQUFlLEVBRWxCOztBQUlMO0VBR0ksa0JBQWlCO0VBQ2pCLGdFQUF1RDtVQUF2RCx3REFBdUQsRUFDeEQ7O0FBTEg7RUFRSSxrQkFBVztFQUNYLG1CQUFZO0VBQ1osZ0JBQWU7RUFDZixRQUFPO0VBQ1AsNkJBQXNCO0VBQ3RCLGtCQUFpQjtFQUNqQixXQUFVO0VBQ1YsbUJBQWtCO0VBQ2xCLGdCQUFlLEVBb0JoQjtFQXBDSDtJQW1CTSxzQkFBZTtJQUNmLHdCQUFpQjtJQUNqQixtQkFBa0IsRUFDbkI7RUF0Qkw7SUF5Qk0sMkJBQW9CLEVBQ3JCO0VBMUJMO0lBNEJNLGVDakNXLEVEa0NaO0VBN0JMO0lBZ0NRLDhCQUE2QjtJQUM3QixpQkFBZ0IsRUFDakI7O0FBbENQO0VBc0NJLHFCQUFhO0VBQWIscUJBQWE7RUFBYixjQUFhO0VBQ2IsaUJBQWdCLEVBU2pCO0VBaERIO0lBeUNNLGtCQUFXO0lBQ1gsc0JBQWU7SUFDZix5QkFBa0IsRUFJbkI7SUEvQ0w7TUE2Q1EsZ0JBQWUsRUFDaEI7O0FBOUNQO0VBb0RNLGdCQUFlO0VBQ2YscUJBQW9CO0VBQ3BCLG9CQUFtQjtFQUNuQix5QkFBa0IsRUFNbkI7RUE3REw7SUEwRFEsZUMvRFMsRURnRVY7O0FBTVA7RUFHSSxPQUFNO0VBQ04sU0FBUTtFQUNSLGtCQUFXO0VBQ1gsbUJBQVksRUFDYjs7QUFQSDtFQVVJLE9BQU07RUFDTixnQkFBZTtFQUNmLGtCQUFVLEVBQ1g7O0FBYkg7RUFpQk0sY0FBYTtFQUNiLGNBQWEsRUFDZDs7QUFuQkw7RUF1Qk0scUJBQWE7RUFBYixxQkFBYTtFQUFiLGNBQWE7RUFDYix5QkFBdUI7TUFBdkIsc0JBQXVCO1VBQXZCLHdCQUF1QixFQUN4Qjs7QUF6Qkw7RUEyQk0sa0JBQWlCO0VBQ2pCLGFBQVk7RUFDWixZQUFXO0VBQ1gsZ0JBQWU7RUFDZix3QkFBaUIsRUEySWxCO0VBMUtMO0lBa0NRLHVDQzVJVTtJRDZJVix5QkFBa0I7SUFDbEIsaUJBQWdCO0lBQ2hCLG9CQzdIVSxFRGlRWDtJQXpLUDtNQXVDVSxrQkFBaUI7TUFDakIscUJBQWE7TUFBYixxQkFBYTtNQUFiLGNBQWEsRUFvQ2Q7TUE1RVQ7UUEwQ1ksdUJBQWdCO1FBQ2hCLHVCQUFnQjtRQUNoQixtQkFBa0I7UUFDbEIsa0JBQWlCO1FBQ2pCLHNDQ3hKTTtRRHlKTixxQ0N6Sk0sRUQ4S1A7UUFwRVg7VUFpRGMsaUJBQWdCO1VBQ2hCLGFBQVk7VUFDWiw0QkFBbUI7VUFBbkIsb0JBQW1CO1VBQ25CLHNFQUE2RDtrQkFBN0QsOERBQTZELEVBTTlEO1VBMURiO1lBc0RnQix1QkFBZ0I7WUFDaEIsNEJBQW1CO1lBQW5CLG9CQUFtQjtZQUNuQixzRUFBNkQ7b0JBQTdELDhEQUE2RCxFQUM5RDtRRWhHWDtVRnVDSjtZQTREYyxpQkFBZ0I7WUFDaEIsaUJBQWdCLEVBT25CO1lBcEVYO2NBZ0VrQix1QkFBZ0IsRUFDakI7TUFqRWpCO1FBc0VZLGFBQVk7UUFDWixnQkFBZSxFQUloQjtRQTNFWDtVQXlFYywwQkFBbUIsRUFDcEI7SUExRWI7TUE4RVUsbUJBQWtCO01BQ2xCLDBCQUF5QjtNQUN6QixrQkFBZTtNQUNmLGVDektRLEVEZ1FUO01BeEtUO1FBbUZZLG1CQUFrQjtRQUNsQixZQUFXO1FBQ1gsT0FBTTtRQUNOLFVBQVM7UUFDVCxrQkFBVztRQUNYLG9CQ2hMTTtRRGlMTixxQkFBYTtRQUFiLHFCQUFhO1FBQWIsY0FBYTtRQUNiLDZCQUFzQjtRQUF0Qiw4QkFBc0I7WUFBdEIsMkJBQXNCO2dCQUF0Qix1QkFBc0I7UUFDdEIsMEJBQTZCO1lBQTdCLDhCQUE2QjtRQUM3QiwwQkFBbUI7WUFBbkIsdUJBQW1CO2dCQUFuQixvQkFBbUI7UUFDbkIsYUFBWTtRQUNaLGdCQUFlO1FBQ2YsNEJBQW1CO1FBQW5CLG9CQUFtQjtRQUNuQixzRUFBNkQ7Z0JBQTdELDhEQUE2RCxFQWE5RDtRQTdHWDtVQWtHYyxlQ2pNSSxFRGtNTDtRQW5HYjtVQXFHYyxzQkFBcUI7VUFDckIsa0NBQXlCO2NBQXpCLHdCQUF5QjtrQkFBekIsMEJBQXlCO1VBQ3pCLDBCQUF5QixFQUMxQjtRQXhHYjtVQTBHYyxzQkFBZTtVQUNmLGtDQUF5QjtVQUF6QiwwQkFBeUIsRUFDMUI7TUE1R2I7UUErR1ksNEJBQW1CO1FBQW5CLG9CQUFtQjtRQUNuQixzRUFBNkQ7Z0JBQTdELDhEQUE2RCxFQUM5RDtNQWpIWDtRQW9IYyxlQ25OSSxFRDBOTDtRQTNIYjtVQXNIZ0Isa0NBQXlCO2tCQUF6QiwwQkFBeUIsRUFDMUI7UUF2SGY7VUF5SGdCLGFBQVksRUFDYjtNQTFIZjtRQTZIYywwQkFBbUI7UUFDbkIsZUN6T0ksRUQ2T0w7UUV6S1Q7VUZ1Q0o7WUFnSWdCLG9CQUFtQixFQUV0QjtNQWxJYjtRQXFJWSxxQkFBYTtRQUFiLHFCQUFhO1FBQWIsY0FBYSxFQWtDZDtRQXZLWDtVQXVJYyxvQkNsUEksRURtUEw7UUF4SWI7VUEwSWMsa0JBQWlCLEVBQ2xCO1FBM0liO1VBOElnQix3Q0N4UEUsRUR5UEg7UUEvSWY7VUFrSmMsdUJBQWdCO1VBQ2hCLHVCQUFnQjtVQUNoQiwwQ0FBdUI7VUFDdkIsbUJBQWtCO1VBQ2xCLHNDQ2hRSSxFRGdSTDtVQXRLYjtZQXdKZ0IsaUJBQWdCO1lBQ2hCLG9CQ3BRRTtZRHFRRixhQUFZO1lBQ1osa0JBQWlCO1lBQ2pCLG1CQUFrQixFQUNuQjtVRXBNWDtZRnVDSjtjQStKZ0IsaUJBQWdCO2NBQ2hCLGlCQUFnQjtjQUNoQixzQ0FBb0IsRUFLdkI7Y0F0S2I7Z0JBbUtrQixtQkFBa0IsRUFDbkIiLCJmaWxlIjoiLi5cXG1vZHVsZXNcXGp4Y29tcGFyZXByb2R1Y3RcXHZpZXdzXFxjc3NcXGp4Y29tcGFyZXByb2R1Y3QuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCBcImNzcy9wYXJ0aWFscy9fdmFyaWFibGVzXCI7XHJcbi5jb21wYXJlLWJ1dHRvbiB7XG4gIC5tYXRlcmlhbC1pY29ucy1kb25lIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4uY29tcGFyZS1idXR0b24uc2VsZWN0ZWQge1xuICAudGhpbi1pY29uLXNldHRpbmdzIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5tYXRlcmlhbC1pY29ucy1kb25lIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG4uY29tcGFyZS1oZWFkZXIge1xuICAuY29tcGFyZS1wcm9kdWN0cyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLmNvbXBhcmUtY291bnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmx1ZTtcbiAgICAgIGZvbnQtc2l6ZTogOXB4O1xuICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDZweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICAgICAgbWluLXdpZHRoOiAxNHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgcGFkZGluZzogMCAzcHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAgICAgdG9wOiAxMXB4O1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgICAgICBtaW4td2lkdGg6IDE2cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiNjb21wYXJlLWZvb3RlciB7XG5cbiAgW2RhdGEtb2ZmLWNhbnZhc10ge1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIGJveC1zaGFkb3c6IDBweCAxcmVtIDQuMTMzMzNyZW0gMHB4IHJnYmEoMCwgMCwgMCwgMC4wNyk7XG4gIH1cblxuICAuY29tcGFyZS1mb290ZXItZ3JvdmVyIHtcbiAgICB3aWR0aDogNTBweDtcbiAgICBoZWlnaHQ6IDUwcHg7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiBjYWxjKDEwMCUgLSA1MHB4KTtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICB6LWluZGV4OiA1O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICBpIHtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiA1MHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICAgIH1cblxuICAgIHNwYW4ge1xuICAgICAgdmVydGljYWwtYWxpZ246IDEwcHg7XG4gICAgfVxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRibHVlO1xuICAgIH1cbiAgICAmLm9wZW4tc2xpZGViYXIge1xuICAgICAgaTpiZWZvcmUge1xuICAgICAgICBmb250LWZhbWlseTogJ01hdGVyaWFsIEljb25zJztcbiAgICAgICAgY29udGVudDogJ1xcZTVjZCc7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICNjb21wYXJlLWxpc3QtZm9vdGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgbGk6bm90KC5uby1wcm9kdWN0cykge1xuICAgICAgd2lkdGg6IDg1cHg7XG4gICAgICBtaW4td2lkdGg6IDg1cHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5idXR0b25zIHtcblxuICAgIGEge1xuICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICRibHVlO1xuICAgICAgfVxuXG4gICAgfVxuICB9XG59XG5cbiNtb2RhbC1jb21wYXJlIHtcblxuICAubW9kYWwtZGlhbG9nIC5jbG9zZSB7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHdpZHRoOiAyNXB4O1xuICAgIGhlaWdodDogMjVweDtcbiAgfVxuXG4gIC5wcm9kdWN0LXRodW1ibmFpbCAuY2xvc2UtcHJvZHVjdCBzcGFuIHtcbiAgICB0b3A6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIHJpZ2h0OiA1cHg7XG4gIH1cblxuICAmOm5vdCgud2l0aC1wcm9kdWN0cykge1xuICAgICNjb21wYXJlLXByb2R1Y3RzLCAjY29tcGFyZS1mZWF0dXJlcyB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgbWFyZ2luOiAwIDUwJTtcbiAgICB9XG4gIH1cbiAgJi53aXRoLXByb2R1Y3RzIHtcbiAgICAubW9kYWwtZGlhbG9nIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG4gICAgLm1vZGFsLWNvbnRlbnQge1xuICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmctdG9wOiAyNXB4O1xuXG4gICAgICAubW9kYWwtY29udGVudC1jb21wYXJlIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGdyYXktMzAwO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgICAgIGJhY2tncm91bmQ6ICRncmF5LTkwMDtcbiAgICAgICAgI2NvbXBhcmUtcHJvZHVjdHMge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyMDBweDtcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGdyYXktMzAwO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRncmF5LTMwMDtcbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAuMnM7XG4gICAgICAgICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yLCAwLCAwLjA2NSwgMC4yNSk7XG4gICAgICAgICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDIwMHB4O1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAuMnM7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIsIDAsIDAuMDY1LCAwLjI1KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKHNtKSB7XG4gICAgICAgICAgICAgIG1pbi13aWR0aDogMTUwcHg7XG4gICAgICAgICAgICAgIG1heC13aWR0aDogMTUwcHg7XG4gICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMjAwcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgICYuY2xvc2UtdGl0bGVzID4gZGl2OmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0yMDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgI2NvbXBhcmUtZmVhdHVyZXMge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICBjb2xvcjogJGdyYXktOTAwO1xuICAgICAgICAgIC5mZWF0dXJlcy10b2dnbGUge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRncmF5LTkwMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIC4ycztcbiAgICAgICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yLCAwLCAwLjA2NSwgMC4yNSk7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgY29sb3I6ICRncmF5LTYwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC44ZW07XG4gICAgICAgICAgICAgIHdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7XG4gICAgICAgICAgICAgIHRleHQtb3JpZW50YXRpb246IHVwcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAuY29tcGFyZS1mZWF0dXJlcy10aXRsZSB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjJzO1xuICAgICAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIsIDAsIDAuMDY1LCAwLjI1KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgJi5jbG9zZS10aXRsZXMge1xuICAgICAgICAgICAgLmZlYXR1cmVzLXRvZ2dsZSB7XG4gICAgICAgICAgICAgIGNvbG9yOiAkZ3JheS02MDA7XG4gICAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuY29tcGFyZS1mZWF0dXJlcy1yb3cgLmNvbXBhcmUtZmVhdHVyZXMtdGl0bGUge1xuICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTIwMHB4O1xuICAgICAgICAgICAgICBjb2xvcjogJGdyYXktMjAwO1xuICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oc20pIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTE1MHB4O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC5jb21wYXJlLWZlYXR1cmVzLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikgLmNvbXBhcmUtZmVhdHVyZXMtaXRlbSB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRncmF5LTIwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKG9kZCkgLmNvbXBhcmUtZmVhdHVyZXMtaXRlbSB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgPiBkaXY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ3JheS0zMDA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgICAgbWluLXdpZHRoOiAyMDBweDtcbiAgICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgICAgICAgcGFkZGluZzogMTdweCAxMHB4IDE0cHg7XG4gICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkZ3JheS0zMDA7XG4gICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGdyYXktMjAwO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKHNtKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAxNTBweDtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDE1MHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDlweCA1cHggOHB4O1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL21vZHVsZXMvanhjb21wYXJlcHJvZHVjdC92aWV3cy9jc3MvRDovT1NQYW5lbC9kb21haW5zL2xvY2FsaG9zdC9FdmVwcmVzdF9TUF90ZXN0L3RoZW1lcy90aGVtZTE1MTQvX2Rldi9tb2R1bGVzL2p4Y29tcGFyZXByb2R1Y3Qvdmlld3MvY3NzL2p4Y29tcGFyZXByb2R1Y3Quc2NzcyIsIi8vXG4vLyBDb2xvciBzeXN0ZW1cbi8vXG4kd2hpdGU6ICAjZmZmO1xuJGdyYXktMTAwOiAjZmFmYWZhO1xuJGdyYXktMjAwOiAjZjhmOGY4O1xuJGdyYXktMzAwOiAjZTdlN2U3O1xuJGdyYXktMzUwOiAjZmNmY2ZkO1xuJGdyYXktMzYwOiAjZjZmOGY5O1xuJGdyYXktNDAwOiAjZWVlZWVlO1xuJGdyYXktNDMwOiAjZjJmMmYyO1xuJGdyYXktNDQwOiAjZjZmNmY2O1xuJGdyYXktNDUwOiAjZTFlMWUxO1xuJGdyYXktNDYwOiAjYzFjN2NiO1xuJGdyYXktNTAwOiAjYWJhYmFiO1xuJGdyYXktNTUwOiAjZWJlYmViO1xuJGdyYXktNTYwOiAjNzU3YTgyO1xuJGdyYXktNjAwOiAjODc4Nzg3O1xuJGdyYXktNjUwOiAjNWQ1ZDVkO1xuJGdyYXktNzAwOiAjNTU1NTU1O1xuJGdyYXktNzMwOiAjNWU2NDZjO1xuJGdyYXktNzUwOiAjMzMzOTQ1O1xuJGdyYXktNzYwOiAjMzAzNjQwO1xuJGdyYXktODAwOiAjM2EzYTNhO1xuJGdyYXktOTAwOiAjMjUyYTMzO1xuJGdyYXktOTUwOiAjMjAyNTJlO1xuJGJsYWNrOiAgIzAwMDtcblxuJGJyYW5kLWRhbmdlcjogI2ZmNGMzOTtcblxuJGdyYXlzOiAoXG4gIDEwMDogJGdyYXktMTAwLFxuICAyMDA6ICRncmF5LTIwMCxcbiAgMzAwOiAkZ3JheS0zMDAsXG4gIDQwMDogJGdyYXktNDAwLFxuICA1MDA6ICRncmF5LTUwMCxcbiAgNjAwOiAkZ3JheS02MDAsXG4gIDcwMDogJGdyYXktNzAwLFxuICA4MDA6ICRncmF5LTgwMCxcbiAgOTAwOiAkZ3JheS05MDBcbik7XG5cbiRibHVlOiAgICAjMTNhMWY0O1xuJGluZGlnbzogICM2NjEwZjI7XG4kcHVycGxlOiAgIzZmNDJjMTtcbiRwaW5rOiAgICAjZGU2ZDZkO1xuJHJlZDogICAgICNmZjRjMzk7XG4kb3JhbmdlOiAgI2ZlYjM4MDtcbiR5ZWxsb3c6ICAjZmZmMWJjO1xuJGdyZWVuOiAgICM1MmI5OGU7XG4kdGVhbDogICAgIzUyYjk4ZTtcbiRjeWFuOiAgICAjYzVmMmZkO1xuXG4kY29sb3JzOiAoXG4gIGJsdWU6ICRibHVlLFxuICBpbmRpZ286ICRpbmRpZ28sXG4gIHB1cnBsZTogJHB1cnBsZSxcbiAgcGluazogJHBpbmssXG4gIHJlZDogJHJlZCxcbiAgb3JhbmdlOiAkb3JhbmdlLFxuICB5ZWxsb3c6ICR5ZWxsb3csXG4gIGdyZWVuOiAkZ3JlZW4sXG4gIHRlYWw6ICR0ZWFsLFxuICBjeWFuOiAkY3lhbixcbiAgd2hpdGU6ICR3aGl0ZSxcbiAgZ3JheTogJGdyYXktNjAwLFxuICBncmF5LWRhcms6ICRncmF5LTgwMCxcbiAgZ3JheS1kYXJrZXI6ICRncmF5LTkwMCxcbiAgZ3JheS1saWdodDogJGdyYXktMjAwLFxuICBncmF5LWxpZ2h0ZXI6ICRncmF5LTEwMFxuKTtcblxuJHRoZW1lLWNvbG9yczogKFxuICBwcmltYXJ5OiAkcGluayxcbiAgc2Vjb25kYXJ5OiAkZ3JheS04MDAsXG4gIHN1Y2Nlc3M6ICRncmVlbixcbiAgaW5mbzogJGN5YW4sXG4gIHdhcm5pbmc6ICRvcmFuZ2UsXG4gIGRhbmdlcjogJHBpbmssXG4gIGxpZ2h0OiAkZ3JheS0yMDAsXG4gIGRhcms6ICRncmF5LTkwMCxcbiAgd2hpdGU6ICR3aGl0ZVxuKTtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9tb2R1bGVzL2p4Y29tcGFyZXByb2R1Y3Qvdmlld3MvY3NzL0Q6L09TUGFuZWwvZG9tYWlucy9sb2NhbGhvc3QvRXZlcHJlc3RfU1BfdGVzdC90aGVtZXMvdGhlbWUxNTE0L19kZXYvY3NzL3BhcnRpYWxzL192YXJpYWJsZXNfY29sb3Iuc2NzcyIsIi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXG4vL1xuLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLCBvcmRlciBmcm9tIHNtYWxsIHRvIGxhcmdlOlxuLy9cbi8vICAgICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweClcbi8vXG4vLyBUaGUgbWFwIGRlZmluZWQgaW4gdGhlIGAkZ3JpZC1icmVha3BvaW50c2AgZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgYXMgdGhlIGAkYnJlYWtwb2ludHNgIGFyZ3VtZW50IGJ5IGRlZmF1bHQuXG5cbi8vIE5hbWUgb2YgdGhlIG5leHQgYnJlYWtwb2ludCwgb3IgbnVsbCBmb3IgdGhlIGxhc3QgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20pXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgJGJyZWFrcG9pbnQtbmFtZXM6ICh4cyBzbSBtZCBsZyB4bCkpXG4vLyAgICBtZFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cywgJGJyZWFrcG9pbnQtbmFtZXM6IG1hcC1rZXlzKCRicmVha3BvaW50cykpIHtcbiAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG4gPCBsZW5ndGgoJGJyZWFrcG9pbnQtbmFtZXMpLCBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksIG51bGwpO1xufVxuXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1taW4oc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICA1NzZweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG1pbiAhPSAwLCAkbWluLCBudWxsKTtcbn1cblxuLy8gTWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgbGFyZ2VzdCAobGFzdCkgYnJlYWtwb2ludC5cbi8vIFRoZSBtYXhpbXVtIHZhbHVlIGlzIGNhbGN1bGF0ZWQgYXMgdGhlIG1pbmltdW0gb2YgdGhlIG5leHQgb25lIGxlc3MgMC4wMnB4XG4vLyB0byB3b3JrIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2YgYG1pbi1gIGFuZCBgbWF4LWAgcHJlZml4ZXMgYW5kIHZpZXdwb3J0cyB3aXRoIGZyYWN0aW9uYWwgd2lkdGhzLlxuLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9tZWRpYXF1ZXJpZXMtNC8jbXEtbWluLW1heFxuLy8gVXNlcyAwLjAycHggcmF0aGVyIHRoYW4gMC4wMXB4IHRvIHdvcmsgYXJvdW5kIGEgY3VycmVudCByb3VuZGluZyBidWcgaW4gU2FmYXJpLlxuLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgyNjFcbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1heChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIDc2Ny45OHB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG5leHQ6IGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQHJldHVybiBpZigkbmV4dCwgYnJlYWtwb2ludC1taW4oJG5leHQsICRicmVha3BvaW50cykgLSAuMDJweCwgbnVsbCk7XG59XG5cbi8vIFJldHVybnMgYSBibGFuayBzdHJpbmcgaWYgc21hbGxlc3QgYnJlYWtwb2ludCwgb3RoZXJ3aXNlIHJldHVybnMgdGhlIG5hbWUgd2l0aCBhIGRhc2ggaW5mcm9udC5cbi8vIFVzZWZ1bCBmb3IgbWFraW5nIHJlc3BvbnNpdmUgdXRpbGl0aWVzLlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoeHMsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBcIlwiICAoUmV0dXJucyBhIGJsYW5rIHN0cmluZylcbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBcIi1zbVwiXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pbmZpeCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICBAcmV0dXJuIGlmKGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpID09IG51bGwsIFwiXCIsIFwiLSN7JG5hbWV9XCIpO1xufVxuXG4vLyBNZWRpYSBvZiBhdCBsZWFzdCB0aGUgbWluaW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIHdpZGVyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWluIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWF4IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSB0aGF0IHNwYW5zIG11bHRpcGxlIGJyZWFrcG9pbnQgd2lkdGhzLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IGJldHdlZW4gdGhlIG1pbiBhbmQgbWF4IGJyZWFrcG9pbnRzXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1iZXR3ZWVuKCRsb3dlciwgJHVwcGVyLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRsb3dlciwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJHVwcGVyLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRsb3dlciwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJHVwcGVyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBNZWRpYSBiZXR3ZWVuIHRoZSBicmVha3BvaW50J3MgbWluaW11bSBhbmQgbWF4aW11bSB3aWR0aHMuXG4vLyBObyBtaW5pbXVtIGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCwgYW5kIG5vIG1heGltdW0gZm9yIHRoZSBsYXJnZXN0IG9uZS5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBvbmx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50LCBub3Qgdmlld3BvcnRzIGFueSB3aWRlciBvciBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LW9ubHkoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL21vZHVsZXMvanhjb21wYXJlcHJvZHVjdC92aWV3cy9jc3MvRDovT1NQYW5lbC9kb21haW5zL2xvY2FsaG9zdC9FdmVwcmVzdF9TUF90ZXN0L3RoZW1lcy90aGVtZTE1MTQvX2Rldi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19icmVha3BvaW50cy5zY3NzIl0sInNvdXJjZVJvb3QiOiIifQ==*/
