/*! Compiled SASS file | Do NOT modify from here !*/
.container, .container-fluid {
  width: 100%;
  margin-right: auto;
  margin-left: auto; }

.row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }

.no-gutters {
  margin-right: 0;
  margin-left: 0; }
  .no-gutters > * {
    padding-right: 0;
    padding-left: 0; }

.column-1, .column-2, .column-3, .column-4, .column-5, .column-6, .column-7, .column-8, .column-9, .column-10, .column-11, .column-12, .column,
.column-auto, .column-small-1, .column-small-2, .column-small-3, .column-small-4, .column-small-5, .column-small-6, .column-small-7, .column-small-8, .column-small-9, .column-small-10, .column-small-11, .column-small-12, .column-small,
.column-small-auto, .column-medium-1, .column-medium-2, .column-medium-3, .column-medium-4, .column-medium-5, .column-medium-6, .column-medium-7, .column-medium-8, .column-medium-9, .column-medium-10, .column-medium-11, .column-medium-12, .column-medium,
.column-medium-auto, .column-large-1, .column-large-2, .column-large-3, .column-large-4, .column-large-5, .column-large-6, .column-large-7, .column-large-8, .column-large-9, .column-large-10, .column-large-11, .column-large-12, .column-large,
.column-large-auto {
  position: relative;
  width: 100%;
  min-height: 1px; }

.column-1, .column-2, .column-3, .column-4, .column-5, .column-6, .column-7, .column-8, .column-9, .column-10, .column-11, .column-12, .column,
.column-auto, .column-small-1, .column-small-2, .column-small-3, .column-small-4, .column-small-5, .column-small-6, .column-small-7, .column-small-8, .column-small-9, .column-small-10, .column-small-11, .column-small-12, .column-small,
.column-small-auto, .column-medium-1, .column-medium-2, .column-medium-3, .column-medium-4, .column-medium-5, .column-medium-6, .column-medium-7, .column-medium-8, .column-medium-9, .column-medium-10, .column-medium-11, .column-medium-12, .column-medium,
.column-medium-auto, .column-large-1, .column-large-2, .column-large-3, .column-large-4, .column-large-5, .column-large-6, .column-large-7, .column-large-8, .column-large-9, .column-large-10, .column-large-11, .column-large-12, .column-large,
.column-large-auto {
  padding-right: 0.9375rem;
  padding-left: 0.9375rem; }

.container {
  padding-right: 0.9375rem;
  padding-left: 0.9375rem; }
  @media (min-width: 576px) {
    .container {
      max-width: 33.75rem; } }
  @media (min-width: 768px) {
    .container {
      max-width: 46.875rem; } }
  @media (min-width: 972px) {
    .container {
      max-width: 60.625rem; } }

.container-fluid {
  padding-right: 0.9375rem;
  padding-left: 0.9375rem;
  width: 100%; }

.row {
  margin-right: -0.9375rem;
  margin-left: -0.9375rem; }

.column {
  -ms-flex-preferred-size: 0;
      flex-basis: 0;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  max-width: 100%; }

.column-auto {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  width: auto;
  max-width: none; }

.column-1 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 8.33333%;
          flex: 0 0 8.33333%;
  max-width: 8.33333%; }

.column-2 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 16.66667%;
          flex: 0 0 16.66667%;
  max-width: 16.66667%; }

.column-3 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 25%;
          flex: 0 0 25%;
  max-width: 25%; }

.column-4 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 33.33333%;
          flex: 0 0 33.33333%;
  max-width: 33.33333%; }

.column-5 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 41.66667%;
          flex: 0 0 41.66667%;
  max-width: 41.66667%; }

.column-6 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 50%;
          flex: 0 0 50%;
  max-width: 50%; }

.column-7 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 58.33333%;
          flex: 0 0 58.33333%;
  max-width: 58.33333%; }

.column-8 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 66.66667%;
          flex: 0 0 66.66667%;
  max-width: 66.66667%; }

.column-9 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 75%;
          flex: 0 0 75%;
  max-width: 75%; }

.column-10 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 83.33333%;
          flex: 0 0 83.33333%;
  max-width: 83.33333%; }

.column-11 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 91.66667%;
          flex: 0 0 91.66667%;
  max-width: 91.66667%; }

.column-12 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%; }

.order-1 {
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1; }

.order-2 {
  -webkit-box-ordinal-group: 3;
      -ms-flex-order: 2;
          order: 2; }

.order-3 {
  -webkit-box-ordinal-group: 4;
      -ms-flex-order: 3;
          order: 3; }

.order-4 {
  -webkit-box-ordinal-group: 5;
      -ms-flex-order: 4;
          order: 4; }

.order-5 {
  -webkit-box-ordinal-group: 6;
      -ms-flex-order: 5;
          order: 5; }

.order-6 {
  -webkit-box-ordinal-group: 7;
      -ms-flex-order: 6;
          order: 6; }

.order-7 {
  -webkit-box-ordinal-group: 8;
      -ms-flex-order: 7;
          order: 7; }

.order-8 {
  -webkit-box-ordinal-group: 9;
      -ms-flex-order: 8;
          order: 8; }

.order-9 {
  -webkit-box-ordinal-group: 10;
      -ms-flex-order: 9;
          order: 9; }

.order-10 {
  -webkit-box-ordinal-group: 11;
      -ms-flex-order: 10;
          order: 10; }

.order-11 {
  -webkit-box-ordinal-group: 12;
      -ms-flex-order: 11;
          order: 11; }

.order-12 {
  -webkit-box-ordinal-group: 13;
      -ms-flex-order: 12;
          order: 12; }

.offset-0 {
  margin-left: 0%; }

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

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

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

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

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

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

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

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

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

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

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

.offset-12 {
  margin-left: 100%; }

@media (min-width: 576px) {
  .column-small {
    -ms-flex-preferred-size: 0;
        flex-basis: 0;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    max-width: 100%; }
  .column-small-auto {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: auto;
    max-width: none; }
  .column-small-1 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 8.33333%;
            flex: 0 0 8.33333%;
    max-width: 8.33333%; }
  .column-small-2 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66667%;
            flex: 0 0 16.66667%;
    max-width: 16.66667%; }
  .column-small-3 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%; }
  .column-small-4 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333%;
            flex: 0 0 33.33333%;
    max-width: 33.33333%; }
  .column-small-5 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 41.66667%;
            flex: 0 0 41.66667%;
    max-width: 41.66667%; }
  .column-small-6 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%; }
  .column-small-7 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 58.33333%;
            flex: 0 0 58.33333%;
    max-width: 58.33333%; }
  .column-small-8 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 66.66667%;
            flex: 0 0 66.66667%;
    max-width: 66.66667%; }
  .column-small-9 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 75%;
            flex: 0 0 75%;
    max-width: 75%; }
  .column-small-10 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 83.33333%;
            flex: 0 0 83.33333%;
    max-width: 83.33333%; }
  .column-small-11 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 91.66667%;
            flex: 0 0 91.66667%;
    max-width: 91.66667%; }
  .column-small-12 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%; }
  .order-small-1 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1; }
  .order-small-2 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2; }
  .order-small-3 {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3; }
  .order-small-4 {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4; }
  .order-small-5 {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5; }
  .order-small-6 {
    -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
            order: 6; }
  .order-small-7 {
    -webkit-box-ordinal-group: 8;
        -ms-flex-order: 7;
            order: 7; }
  .order-small-8 {
    -webkit-box-ordinal-group: 9;
        -ms-flex-order: 8;
            order: 8; }
  .order-small-9 {
    -webkit-box-ordinal-group: 10;
        -ms-flex-order: 9;
            order: 9; }
  .order-small-10 {
    -webkit-box-ordinal-group: 11;
        -ms-flex-order: 10;
            order: 10; }
  .order-small-11 {
    -webkit-box-ordinal-group: 12;
        -ms-flex-order: 11;
            order: 11; }
  .order-small-12 {
    -webkit-box-ordinal-group: 13;
        -ms-flex-order: 12;
            order: 12; }
  .offset-small-0 {
    margin-left: 0%; }
  .offset-small-1 {
    margin-left: 8.33333%; }
  .offset-small-2 {
    margin-left: 16.66667%; }
  .offset-small-3 {
    margin-left: 25%; }
  .offset-small-4 {
    margin-left: 33.33333%; }
  .offset-small-5 {
    margin-left: 41.66667%; }
  .offset-small-6 {
    margin-left: 50%; }
  .offset-small-7 {
    margin-left: 58.33333%; }
  .offset-small-8 {
    margin-left: 66.66667%; }
  .offset-small-9 {
    margin-left: 75%; }
  .offset-small-10 {
    margin-left: 83.33333%; }
  .offset-small-11 {
    margin-left: 91.66667%; }
  .offset-small-12 {
    margin-left: 100%; } }

@media (min-width: 768px) {
  .column-medium {
    -ms-flex-preferred-size: 0;
        flex-basis: 0;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    max-width: 100%; }
  .column-medium-auto {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: auto;
    max-width: none; }
  .column-medium-1 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 8.33333%;
            flex: 0 0 8.33333%;
    max-width: 8.33333%; }
  .column-medium-2 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66667%;
            flex: 0 0 16.66667%;
    max-width: 16.66667%; }
  .column-medium-3 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%; }
  .column-medium-4 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333%;
            flex: 0 0 33.33333%;
    max-width: 33.33333%; }
  .column-medium-5 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 41.66667%;
            flex: 0 0 41.66667%;
    max-width: 41.66667%; }
  .column-medium-6 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%; }
  .column-medium-7 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 58.33333%;
            flex: 0 0 58.33333%;
    max-width: 58.33333%; }
  .column-medium-8 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 66.66667%;
            flex: 0 0 66.66667%;
    max-width: 66.66667%; }
  .column-medium-9 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 75%;
            flex: 0 0 75%;
    max-width: 75%; }
  .column-medium-10 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 83.33333%;
            flex: 0 0 83.33333%;
    max-width: 83.33333%; }
  .column-medium-11 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 91.66667%;
            flex: 0 0 91.66667%;
    max-width: 91.66667%; }
  .column-medium-12 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%; }
  .order-medium-1 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1; }
  .order-medium-2 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2; }
  .order-medium-3 {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3; }
  .order-medium-4 {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4; }
  .order-medium-5 {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5; }
  .order-medium-6 {
    -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
            order: 6; }
  .order-medium-7 {
    -webkit-box-ordinal-group: 8;
        -ms-flex-order: 7;
            order: 7; }
  .order-medium-8 {
    -webkit-box-ordinal-group: 9;
        -ms-flex-order: 8;
            order: 8; }
  .order-medium-9 {
    -webkit-box-ordinal-group: 10;
        -ms-flex-order: 9;
            order: 9; }
  .order-medium-10 {
    -webkit-box-ordinal-group: 11;
        -ms-flex-order: 10;
            order: 10; }
  .order-medium-11 {
    -webkit-box-ordinal-group: 12;
        -ms-flex-order: 11;
            order: 11; }
  .order-medium-12 {
    -webkit-box-ordinal-group: 13;
        -ms-flex-order: 12;
            order: 12; }
  .offset-medium-0 {
    margin-left: 0%; }
  .offset-medium-1 {
    margin-left: 8.33333%; }
  .offset-medium-2 {
    margin-left: 16.66667%; }
  .offset-medium-3 {
    margin-left: 25%; }
  .offset-medium-4 {
    margin-left: 33.33333%; }
  .offset-medium-5 {
    margin-left: 41.66667%; }
  .offset-medium-6 {
    margin-left: 50%; }
  .offset-medium-7 {
    margin-left: 58.33333%; }
  .offset-medium-8 {
    margin-left: 66.66667%; }
  .offset-medium-9 {
    margin-left: 75%; }
  .offset-medium-10 {
    margin-left: 83.33333%; }
  .offset-medium-11 {
    margin-left: 91.66667%; }
  .offset-medium-12 {
    margin-left: 100%; } }

@media (min-width: 972px) {
  .column-large {
    -ms-flex-preferred-size: 0;
        flex-basis: 0;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    max-width: 100%; }
  .column-large-auto {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: auto;
    max-width: none; }
  .column-large-1 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 8.33333%;
            flex: 0 0 8.33333%;
    max-width: 8.33333%; }
  .column-large-2 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66667%;
            flex: 0 0 16.66667%;
    max-width: 16.66667%; }
  .column-large-3 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%; }
  .column-large-4 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333%;
            flex: 0 0 33.33333%;
    max-width: 33.33333%; }
  .column-large-5 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 41.66667%;
            flex: 0 0 41.66667%;
    max-width: 41.66667%; }
  .column-large-6 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%; }
  .column-large-7 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 58.33333%;
            flex: 0 0 58.33333%;
    max-width: 58.33333%; }
  .column-large-8 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 66.66667%;
            flex: 0 0 66.66667%;
    max-width: 66.66667%; }
  .column-large-9 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 75%;
            flex: 0 0 75%;
    max-width: 75%; }
  .column-large-10 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 83.33333%;
            flex: 0 0 83.33333%;
    max-width: 83.33333%; }
  .column-large-11 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 91.66667%;
            flex: 0 0 91.66667%;
    max-width: 91.66667%; }
  .column-large-12 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%; }
  .order-large-1 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1; }
  .order-large-2 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2; }
  .order-large-3 {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3; }
  .order-large-4 {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4; }
  .order-large-5 {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5; }
  .order-large-6 {
    -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
            order: 6; }
  .order-large-7 {
    -webkit-box-ordinal-group: 8;
        -ms-flex-order: 7;
            order: 7; }
  .order-large-8 {
    -webkit-box-ordinal-group: 9;
        -ms-flex-order: 8;
            order: 8; }
  .order-large-9 {
    -webkit-box-ordinal-group: 10;
        -ms-flex-order: 9;
            order: 9; }
  .order-large-10 {
    -webkit-box-ordinal-group: 11;
        -ms-flex-order: 10;
            order: 10; }
  .order-large-11 {
    -webkit-box-ordinal-group: 12;
        -ms-flex-order: 11;
            order: 11; }
  .order-large-12 {
    -webkit-box-ordinal-group: 13;
        -ms-flex-order: 12;
            order: 12; }
  .offset-large-0 {
    margin-left: 0%; }
  .offset-large-1 {
    margin-left: 8.33333%; }
  .offset-large-2 {
    margin-left: 16.66667%; }
  .offset-large-3 {
    margin-left: 25%; }
  .offset-large-4 {
    margin-left: 33.33333%; }
  .offset-large-5 {
    margin-left: 41.66667%; }
  .offset-large-6 {
    margin-left: 50%; }
  .offset-large-7 {
    margin-left: 58.33333%; }
  .offset-large-8 {
    margin-left: 66.66667%; }
  .offset-large-9 {
    margin-left: 75%; }
  .offset-large-10 {
    margin-left: 83.33333%; }
  .offset-large-11 {
    margin-left: 91.66667%; }
  .offset-large-12 {
    margin-left: 100%; } }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbmZpZy9faW1wb3J0cy5zY3NzIiwibGF5b3V0L2dyaWQuc2NzcyIsIi4uL19zYXNzLWZyYW1ld29yay9wbGFjZWhvbGRlcnMvbGF5b3V0L2dyaWQtc3lzdGVtL19ncmlkLnNjc3MiLCIuLi9fc2Fzcy1mcmFtZXdvcmsvbWl4aW5zL3R5cG9ncmFwaHkvZ2VuZXJhbC9fcmVtLnNjc3MiLCIuLi9fc2Fzcy1mcmFtZXdvcmsvbWl4aW5zL2xheW91dC9nZW5lcmFsL19icmVha3BvaW50LnNjc3MiLCIuLi9fc2Fzcy1mcmFtZXdvcmsvbWl4aW5zL2xheW91dC9ncmlkLXN5c3RlbS9fZ3JpZC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWFBLG1EQUFBO0FDZUU7RUNsQkEsV0FBVztFQUVULGtCQUFXO0VBQ1gsaUJBQVUsRUFBQTs7QURzQ1o7RUMxQkEsb0JBQWE7RUFBYixvQkFBYTtFQUFiLGFBQWE7RUFDYixtQkFBZTtNQUFmLGVBQWUsRUFBQTs7QUQrQmY7RUNoQkUsZUFBUTtFQUNSLGNBQU8sRUFBQTtFRGVUO0lDUkksZ0JBQVE7SUFDUixlQUFPLEVBQUE7O0FEdUJQOzs7OztFQ0xKLGtCQUFrQjtFQUNsQixXQUFXO0VBQ1gsZUFBZSxFQUFBOztBREdYOzs7OztFRW1CQSx3QkF0QjZDO0VBc0I3Qyx1QkF0QjZDLEVBQUE7O0FGMUNqRDtFRWdFSSx3QkF0QjZDO0VBc0I3Qyx1QkF0QjZDLEVBQUE7RUNsQi9DO0lIeEJGO01FZ0VJLG1CQXRCNkMsRUFBQSxFRnZDaEQ7RUdxQkM7SUh4QkY7TUVnRUksb0JBdEI2QyxFQUFBLEVGdkNoRDtFR3FCQztJSHhCRjtNRWdFSSxvQkF0QjZDLEVBQUEsRUZ2Q2hEOztBQVNEO0VFb0RJLHdCQXRCNkM7RUFzQjdDLHVCQXRCNkM7RUY1Qi9DLFdBQVcsRUFBQTs7QUFTYjtFRXlDSSx3QkF0QjZDO0VBc0I3Qyx1QkF0QjZDLEVBQUE7O0FGbUI3QztFQUVJLDBCQUFRO01BQVIsYUFBUTtFQUNSLG1CQUFPO01BQVAsb0JBQU87VUFBUCxZQUFPO0VBRVQsZUFBZSxFQUFBOztBQUVqQjtFQUNFLG1CQUFjO01BQWQsa0JBQWM7VUFBZCxjQUFjO0VBQ2QsV0FBVztFQUNYLGVBQWUsRUFBQTs7QUFPZjtFSStHTixtQkFGb0M7TUFFcEMsc0JBRm9DO1VBRXBDLGtCQUZvQztFQUdwQyxtQkFIb0MsRUFBQTs7QUo3RzlCO0VJK0dOLG1CQUZvQztNQUVwQyx1QkFGb0M7VUFFcEMsbUJBRm9DO0VBR3BDLG9CQUhvQyxFQUFBOztBSjdHOUI7RUkrR04sbUJBRm9DO01BRXBDLGlCQUZvQztVQUVwQyxhQUZvQztFQUdwQyxjQUhvQyxFQUFBOztBSjdHOUI7RUkrR04sbUJBRm9DO01BRXBDLHVCQUZvQztVQUVwQyxtQkFGb0M7RUFHcEMsb0JBSG9DLEVBQUE7O0FKN0c5QjtFSStHTixtQkFGb0M7TUFFcEMsdUJBRm9DO1VBRXBDLG1CQUZvQztFQUdwQyxvQkFIb0MsRUFBQTs7QUo3RzlCO0VJK0dOLG1CQUZvQztNQUVwQyxpQkFGb0M7VUFFcEMsYUFGb0M7RUFHcEMsY0FIb0MsRUFBQTs7QUo3RzlCO0VJK0dOLG1CQUZvQztNQUVwQyx1QkFGb0M7VUFFcEMsbUJBRm9DO0VBR3BDLG9CQUhvQyxFQUFBOztBSjdHOUI7RUkrR04sbUJBRm9DO01BRXBDLHVCQUZvQztVQUVwQyxtQkFGb0M7RUFHcEMsb0JBSG9DLEVBQUE7O0FKN0c5QjtFSStHTixtQkFGb0M7TUFFcEMsaUJBRm9DO1VBRXBDLGFBRm9DO0VBR3BDLGNBSG9DLEVBQUE7O0FKN0c5QjtFSStHTixtQkFGb0M7TUFFcEMsdUJBRm9DO1VBRXBDLG1CQUZvQztFQUdwQyxvQkFIb0MsRUFBQTs7QUo3RzlCO0VJK0dOLG1CQUZvQztNQUVwQyx1QkFGb0M7VUFFcEMsbUJBRm9DO0VBR3BDLG9CQUhvQyxFQUFBOztBSjdHOUI7RUkrR04sbUJBRm9DO01BRXBDLGtCQUZvQztVQUVwQyxjQUZvQztFQUdwQyxlQUhvQyxFQUFBOztBSnBHOUI7RUkyS04sNEJKNUtrQjtNSTRLbEIsaUJKNUtrQjtVSTRLbEIsUUo1S2tCLEVBQUE7O0FBQ1o7RUkyS04sNEJKNUtrQjtNSTRLbEIsaUJKNUtrQjtVSTRLbEIsUUo1S2tCLEVBQUE7O0FBQ1o7RUkyS04sNEJKNUtrQjtNSTRLbEIsaUJKNUtrQjtVSTRLbEIsUUo1S2tCLEVBQUE7O0FBQ1o7RUkyS04sNEJKNUtrQjtNSTRLbEIsaUJKNUtrQjtVSTRLbEIsUUo1S2tCLEVBQUE7O0FBQ1o7RUkyS04sNEJKNUtrQjtNSTRLbEIsaUJKNUtrQjtVSTRLbEIsUUo1S2tCLEVBQUE7O0FBQ1o7RUkyS04sNEJKNUtrQjtNSTRLbEIsaUJKNUtrQjtVSTRLbEIsUUo1S2tCLEVBQUE7O0FBQ1o7RUkyS04sNEJKNUtrQjtNSTRLbEIsaUJKNUtrQjtVSTRLbEIsUUo1S2tCLEVBQUE7O0FBQ1o7RUkyS04sNEJKNUtrQjtNSTRLbEIsaUJKNUtrQjtVSTRLbEIsUUo1S2tCLEVBQUE7O0FBQ1o7RUkyS04sNkJKNUtrQjtNSTRLbEIsaUJKNUtrQjtVSTRLbEIsUUo1S2tCLEVBQUE7O0FBQ1o7RUkyS04sNkJKNUtrQjtNSTRLbEIsa0JKNUtrQjtVSTRLbEIsU0o1S2tCLEVBQUE7O0FBQ1o7RUkyS04sNkJKNUtrQjtNSTRLbEIsa0JKNUtrQjtVSTRLbEIsU0o1S2tCLEVBQUE7O0FBQ1o7RUkyS04sNkJKNUtrQjtNSTRLbEIsa0JKNUtrQjtVSTRLbEIsU0o1S2tCLEVBQUE7O0FBVVo7RUlpSU4sZUFGc0MsRUFBQTs7QUovSGhDO0VJaUlOLHFCQUZzQyxFQUFBOztBSi9IaEM7RUlpSU4sc0JBRnNDLEVBQUE7O0FKL0hoQztFSWlJTixnQkFGc0MsRUFBQTs7QUovSGhDO0VJaUlOLHNCQUZzQyxFQUFBOztBSi9IaEM7RUlpSU4sc0JBRnNDLEVBQUE7O0FKL0hoQztFSWlJTixnQkFGc0MsRUFBQTs7QUovSGhDO0VJaUlOLHNCQUZzQyxFQUFBOztBSi9IaEM7RUlpSU4sc0JBRnNDLEVBQUE7O0FKL0hoQztFSWlJTixnQkFGc0MsRUFBQTs7QUovSGhDO0VJaUlOLHNCQUZzQyxFQUFBOztBSi9IaEM7RUlpSU4sc0JBRnNDLEVBQUE7O0FKL0hoQztFSWlJTixpQkFGc0MsRUFBQTs7QUR2TXBDO0VIcUNFO0lBRUksMEJBQVE7UUFBUixhQUFRO0lBQ1IsbUJBQU87UUFBUCxvQkFBTztZQUFQLFlBQU87SUFFVCxlQUFlLEVBQUE7RUFFakI7SUFDRSxtQkFBYztRQUFkLGtCQUFjO1lBQWQsY0FBYztJQUNkLFdBQVc7SUFDWCxlQUFlLEVBQUE7RUFPZjtJSStHTixtQkFGb0M7UUFFcEMsc0JBRm9DO1lBRXBDLGtCQUZvQztJQUdwQyxtQkFIb0MsRUFBQTtFSjdHOUI7SUkrR04sbUJBRm9DO1FBRXBDLHVCQUZvQztZQUVwQyxtQkFGb0M7SUFHcEMsb0JBSG9DLEVBQUE7RUo3RzlCO0lJK0dOLG1CQUZvQztRQUVwQyxpQkFGb0M7WUFFcEMsYUFGb0M7SUFHcEMsY0FIb0MsRUFBQTtFSjdHOUI7SUkrR04sbUJBRm9DO1FBRXBDLHVCQUZvQztZQUVwQyxtQkFGb0M7SUFHcEMsb0JBSG9DLEVBQUE7RUo3RzlCO0lJK0dOLG1CQUZvQztRQUVwQyx1QkFGb0M7WUFFcEMsbUJBRm9DO0lBR3BDLG9CQUhvQyxFQUFBO0VKN0c5QjtJSStHTixtQkFGb0M7UUFFcEMsaUJBRm9DO1lBRXBDLGFBRm9DO0lBR3BDLGNBSG9DLEVBQUE7RUo3RzlCO0lJK0dOLG1CQUZvQztRQUVwQyx1QkFGb0M7WUFFcEMsbUJBRm9DO0lBR3BDLG9CQUhvQyxFQUFBO0VKN0c5QjtJSStHTixtQkFGb0M7UUFFcEMsdUJBRm9DO1lBRXBDLG1CQUZvQztJQUdwQyxvQkFIb0MsRUFBQTtFSjdHOUI7SUkrR04sbUJBRm9DO1FBRXBDLGlCQUZvQztZQUVwQyxhQUZvQztJQUdwQyxjQUhvQyxFQUFBO0VKN0c5QjtJSStHTixtQkFGb0M7UUFFcEMsdUJBRm9DO1lBRXBDLG1CQUZvQztJQUdwQyxvQkFIb0MsRUFBQTtFSjdHOUI7SUkrR04sbUJBRm9DO1FBRXBDLHVCQUZvQztZQUVwQyxtQkFGb0M7SUFHcEMsb0JBSG9DLEVBQUE7RUo3RzlCO0lJK0dOLG1CQUZvQztRQUVwQyxrQkFGb0M7WUFFcEMsY0FGb0M7SUFHcEMsZUFIb0MsRUFBQTtFSnBHOUI7SUkyS04sNEJKNUtrQjtRSTRLbEIsaUJKNUtrQjtZSTRLbEIsUUo1S2tCLEVBQUE7RUFDWjtJSTJLTiw0Qko1S2tCO1FJNEtsQixpQko1S2tCO1lJNEtsQixRSjVLa0IsRUFBQTtFQUNaO0lJMktOLDRCSjVLa0I7UUk0S2xCLGlCSjVLa0I7WUk0S2xCLFFKNUtrQixFQUFBO0VBQ1o7SUkyS04sNEJKNUtrQjtRSTRLbEIsaUJKNUtrQjtZSTRLbEIsUUo1S2tCLEVBQUE7RUFDWjtJSTJLTiw0Qko1S2tCO1FJNEtsQixpQko1S2tCO1lJNEtsQixRSjVLa0IsRUFBQTtFQUNaO0lJMktOLDRCSjVLa0I7UUk0S2xCLGlCSjVLa0I7WUk0S2xCLFFKNUtrQixFQUFBO0VBQ1o7SUkyS04sNEJKNUtrQjtRSTRLbEIsaUJKNUtrQjtZSTRLbEIsUUo1S2tCLEVBQUE7RUFDWjtJSTJLTiw0Qko1S2tCO1FJNEtsQixpQko1S2tCO1lJNEtsQixRSjVLa0IsRUFBQTtFQUNaO0lJMktOLDZCSjVLa0I7UUk0S2xCLGlCSjVLa0I7WUk0S2xCLFFKNUtrQixFQUFBO0VBQ1o7SUkyS04sNkJKNUtrQjtRSTRLbEIsa0JKNUtrQjtZSTRLbEIsU0o1S2tCLEVBQUE7RUFDWjtJSTJLTiw2Qko1S2tCO1FJNEtsQixrQko1S2tCO1lJNEtsQixTSjVLa0IsRUFBQTtFQUNaO0lJMktOLDZCSjVLa0I7UUk0S2xCLGtCSjVLa0I7WUk0S2xCLFNKNUtrQixFQUFBO0VBVVo7SUlpSU4sZUFGc0MsRUFBQTtFSi9IaEM7SUlpSU4scUJBRnNDLEVBQUE7RUovSGhDO0lJaUlOLHNCQUZzQyxFQUFBO0VKL0hoQztJSWlJTixnQkFGc0MsRUFBQTtFSi9IaEM7SUlpSU4sc0JBRnNDLEVBQUE7RUovSGhDO0lJaUlOLHNCQUZzQyxFQUFBO0VKL0hoQztJSWlJTixnQkFGc0MsRUFBQTtFSi9IaEM7SUlpSU4sc0JBRnNDLEVBQUE7RUovSGhDO0lJaUlOLHNCQUZzQyxFQUFBO0VKL0hoQztJSWlJTixnQkFGc0MsRUFBQTtFSi9IaEM7SUlpSU4sc0JBRnNDLEVBQUE7RUovSGhDO0lJaUlOLHNCQUZzQyxFQUFBO0VKL0hoQztJSWlJTixpQkFGc0MsRUFBQSxFSjdIL0I7O0FHMUVMO0VIcUNFO0lBRUksMEJBQVE7UUFBUixhQUFRO0lBQ1IsbUJBQU87UUFBUCxvQkFBTztZQUFQLFlBQU87SUFFVCxlQUFlLEVBQUE7RUFFakI7SUFDRSxtQkFBYztRQUFkLGtCQUFjO1lBQWQsY0FBYztJQUNkLFdBQVc7SUFDWCxlQUFlLEVBQUE7RUFPZjtJSStHTixtQkFGb0M7UUFFcEMsc0JBRm9DO1lBRXBDLGtCQUZvQztJQUdwQyxtQkFIb0MsRUFBQTtFSjdHOUI7SUkrR04sbUJBRm9DO1FBRXBDLHVCQUZvQztZQUVwQyxtQkFGb0M7SUFHcEMsb0JBSG9DLEVBQUE7RUo3RzlCO0lJK0dOLG1CQUZvQztRQUVwQyxpQkFGb0M7WUFFcEMsYUFGb0M7SUFHcEMsY0FIb0MsRUFBQTtFSjdHOUI7SUkrR04sbUJBRm9DO1FBRXBDLHVCQUZvQztZQUVwQyxtQkFGb0M7SUFHcEMsb0JBSG9DLEVBQUE7RUo3RzlCO0lJK0dOLG1CQUZvQztRQUVwQyx1QkFGb0M7WUFFcEMsbUJBRm9DO0lBR3BDLG9CQUhvQyxFQUFBO0VKN0c5QjtJSStHTixtQkFGb0M7UUFFcEMsaUJBRm9DO1lBRXBDLGFBRm9DO0lBR3BDLGNBSG9DLEVBQUE7RUo3RzlCO0lJK0dOLG1CQUZvQztRQUVwQyx1QkFGb0M7WUFFcEMsbUJBRm9DO0lBR3BDLG9CQUhvQyxFQUFBO0VKN0c5QjtJSStHTixtQkFGb0M7UUFFcEMsdUJBRm9DO1lBRXBDLG1CQUZvQztJQUdwQyxvQkFIb0MsRUFBQTtFSjdHOUI7SUkrR04sbUJBRm9DO1FBRXBDLGlCQUZvQztZQUVwQyxhQUZvQztJQUdwQyxjQUhvQyxFQUFBO0VKN0c5QjtJSStHTixtQkFGb0M7UUFFcEMsdUJBRm9DO1lBRXBDLG1CQUZvQztJQUdwQyxvQkFIb0MsRUFBQTtFSjdHOUI7SUkrR04sbUJBRm9DO1FBRXBDLHVCQUZvQztZQUVwQyxtQkFGb0M7SUFHcEMsb0JBSG9DLEVBQUE7RUo3RzlCO0lJK0dOLG1CQUZvQztRQUVwQyxrQkFGb0M7WUFFcEMsY0FGb0M7SUFHcEMsZUFIb0MsRUFBQTtFSnBHOUI7SUkyS04sNEJKNUtrQjtRSTRLbEIsaUJKNUtrQjtZSTRLbEIsUUo1S2tCLEVBQUE7RUFDWjtJSTJLTiw0Qko1S2tCO1FJNEtsQixpQko1S2tCO1lJNEtsQixRSjVLa0IsRUFBQTtFQUNaO0lJMktOLDRCSjVLa0I7UUk0S2xCLGlCSjVLa0I7WUk0S2xCLFFKNUtrQixFQUFBO0VBQ1o7SUkyS04sNEJKNUtrQjtRSTRLbEIsaUJKNUtrQjtZSTRLbEIsUUo1S2tCLEVBQUE7RUFDWjtJSTJLTiw0Qko1S2tCO1FJNEtsQixpQko1S2tCO1lJNEtsQixRSjVLa0IsRUFBQTtFQUNaO0lJMktOLDRCSjVLa0I7UUk0S2xCLGlCSjVLa0I7WUk0S2xCLFFKNUtrQixFQUFBO0VBQ1o7SUkyS04sNEJKNUtrQjtRSTRLbEIsaUJKNUtrQjtZSTRLbEIsUUo1S2tCLEVBQUE7RUFDWjtJSTJLTiw0Qko1S2tCO1FJNEtsQixpQko1S2tCO1lJNEtsQixRSjVLa0IsRUFBQTtFQUNaO0lJMktOLDZCSjVLa0I7UUk0S2xCLGlCSjVLa0I7WUk0S2xCLFFKNUtrQixFQUFBO0VBQ1o7SUkyS04sNkJKNUtrQjtRSTRLbEIsa0JKNUtrQjtZSTRLbEIsU0o1S2tCLEVBQUE7RUFDWjtJSTJLTiw2Qko1S2tCO1FJNEtsQixrQko1S2tCO1lJNEtsQixTSjVLa0IsRUFBQTtFQUNaO0lJMktOLDZCSjVLa0I7UUk0S2xCLGtCSjVLa0I7WUk0S2xCLFNKNUtrQixFQUFBO0VBVVo7SUlpSU4sZUFGc0MsRUFBQTtFSi9IaEM7SUlpSU4scUJBRnNDLEVBQUE7RUovSGhDO0lJaUlOLHNCQUZzQyxFQUFBO0VKL0hoQztJSWlJTixnQkFGc0MsRUFBQTtFSi9IaEM7SUlpSU4sc0JBRnNDLEVBQUE7RUovSGhDO0lJaUlOLHNCQUZzQyxFQUFBO0VKL0hoQztJSWlJTixnQkFGc0MsRUFBQTtFSi9IaEM7SUlpSU4sc0JBRnNDLEVBQUE7RUovSGhDO0lJaUlOLHNCQUZzQyxFQUFBO0VKL0hoQztJSWlJTixnQkFGc0MsRUFBQTtFSi9IaEM7SUlpSU4sc0JBRnNDLEVBQUE7RUovSGhDO0lJaUlOLHNCQUZzQyxFQUFBO0VKL0hoQztJSWlJTixpQkFGc0MsRUFBQSxFSjdIL0I7O0FHMUVMO0VIcUNFO0lBRUksMEJBQVE7UUFBUixhQUFRO0lBQ1IsbUJBQU87UUFBUCxvQkFBTztZQUFQLFlBQU87SUFFVCxlQUFlLEVBQUE7RUFFakI7SUFDRSxtQkFBYztRQUFkLGtCQUFjO1lBQWQsY0FBYztJQUNkLFdBQVc7SUFDWCxlQUFlLEVBQUE7RUFPZjtJSStHTixtQkFGb0M7UUFFcEMsc0JBRm9DO1lBRXBDLGtCQUZvQztJQUdwQyxtQkFIb0MsRUFBQTtFSjdHOUI7SUkrR04sbUJBRm9DO1FBRXBDLHVCQUZvQztZQUVwQyxtQkFGb0M7SUFHcEMsb0JBSG9DLEVBQUE7RUo3RzlCO0lJK0dOLG1CQUZvQztRQUVwQyxpQkFGb0M7WUFFcEMsYUFGb0M7SUFHcEMsY0FIb0MsRUFBQTtFSjdHOUI7SUkrR04sbUJBRm9DO1FBRXBDLHVCQUZvQztZQUVwQyxtQkFGb0M7SUFHcEMsb0JBSG9DLEVBQUE7RUo3RzlCO0lJK0dOLG1CQUZvQztRQUVwQyx1QkFGb0M7WUFFcEMsbUJBRm9DO0lBR3BDLG9CQUhvQyxFQUFBO0VKN0c5QjtJSStHTixtQkFGb0M7UUFFcEMsaUJBRm9DO1lBRXBDLGFBRm9DO0lBR3BDLGNBSG9DLEVBQUE7RUo3RzlCO0lJK0dOLG1CQUZvQztRQUVwQyx1QkFGb0M7WUFFcEMsbUJBRm9DO0lBR3BDLG9CQUhvQyxFQUFBO0VKN0c5QjtJSStHTixtQkFGb0M7UUFFcEMsdUJBRm9DO1lBRXBDLG1CQUZvQztJQUdwQyxvQkFIb0MsRUFBQTtFSjdHOUI7SUkrR04sbUJBRm9DO1FBRXBDLGlCQUZvQztZQUVwQyxhQUZvQztJQUdwQyxjQUhvQyxFQUFBO0VKN0c5QjtJSStHTixtQkFGb0M7UUFFcEMsdUJBRm9DO1lBRXBDLG1CQUZvQztJQUdwQyxvQkFIb0MsRUFBQTtFSjdHOUI7SUkrR04sbUJBRm9DO1FBRXBDLHVCQUZvQztZQUVwQyxtQkFGb0M7SUFHcEMsb0JBSG9DLEVBQUE7RUo3RzlCO0lJK0dOLG1CQUZvQztRQUVwQyxrQkFGb0M7WUFFcEMsY0FGb0M7SUFHcEMsZUFIb0MsRUFBQTtFSnBHOUI7SUkyS04sNEJKNUtrQjtRSTRLbEIsaUJKNUtrQjtZSTRLbEIsUUo1S2tCLEVBQUE7RUFDWjtJSTJLTiw0Qko1S2tCO1FJNEtsQixpQko1S2tCO1lJNEtsQixRSjVLa0IsRUFBQTtFQUNaO0lJMktOLDRCSjVLa0I7UUk0S2xCLGlCSjVLa0I7WUk0S2xCLFFKNUtrQixFQUFBO0VBQ1o7SUkyS04sNEJKNUtrQjtRSTRLbEIsaUJKNUtrQjtZSTRLbEIsUUo1S2tCLEVBQUE7RUFDWjtJSTJLTiw0Qko1S2tCO1FJNEtsQixpQko1S2tCO1lJNEtsQixRSjVLa0IsRUFBQTtFQUNaO0lJMktOLDRCSjVLa0I7UUk0S2xCLGlCSjVLa0I7WUk0S2xCLFFKNUtrQixFQUFBO0VBQ1o7SUkyS04sNEJKNUtrQjtRSTRLbEIsaUJKNUtrQjtZSTRLbEIsUUo1S2tCLEVBQUE7RUFDWjtJSTJLTiw0Qko1S2tCO1FJNEtsQixpQko1S2tCO1lJNEtsQixRSjVLa0IsRUFBQTtFQUNaO0lJMktOLDZCSjVLa0I7UUk0S2xCLGlCSjVLa0I7WUk0S2xCLFFKNUtrQixFQUFBO0VBQ1o7SUkyS04sNkJKNUtrQjtRSTRLbEIsa0JKNUtrQjtZSTRLbEIsU0o1S2tCLEVBQUE7RUFDWjtJSTJLTiw2Qko1S2tCO1FJNEtsQixrQko1S2tCO1lJNEtsQixTSjVLa0IsRUFBQTtFQUNaO0lJMktOLDZCSjVLa0I7UUk0S2xCLGtCSjVLa0I7WUk0S2xCLFNKNUtrQixFQUFBO0VBVVo7SUlpSU4sZUFGc0MsRUFBQTtFSi9IaEM7SUlpSU4scUJBRnNDLEVBQUE7RUovSGhDO0lJaUlOLHNCQUZzQyxFQUFBO0VKL0hoQztJSWlJTixnQkFGc0MsRUFBQTtFSi9IaEM7SUlpSU4sc0JBRnNDLEVBQUE7RUovSGhDO0lJaUlOLHNCQUZzQyxFQUFBO0VKL0hoQztJSWlJTixnQkFGc0MsRUFBQTtFSi9IaEM7SUlpSU4sc0JBRnNDLEVBQUE7RUovSGhDO0lJaUlOLHNCQUZzQyxFQUFBO0VKL0hoQztJSWlJTixnQkFGc0MsRUFBQTtFSi9IaEM7SUlpSU4sc0JBRnNDLEVBQUE7RUovSGhDO0lJaUlOLHNCQUZzQyxFQUFBO0VKL0hoQztJSWlJTixpQkFGc0MsRUFBQSxFSjdIL0IiLCJmaWxlIjoibGF5b3V0L2dyaWQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXG4vL1xuLy8gQGZpbGVcbi8vIEZpbmFsIGltcG9ydHMuXG4vL1xuLy8gRWFjaCBjb21waWxlZCBTQVNTIGZpbGUgaW1wb3J0cyB0aGlzIGZpbGUgdXNpbmcgdGhlIEBpbXBvcnQgXCIuLi9jb25maWcvaW1wb3J0c1wiXG4vLyBALVJ1bGUgd2hpY2ggaW1wb3J0cyBpdHNlbGYgYWxsIHJlcXVpcmVkIGNvbmZpZ3VyYXRpb24gcGFydGlhbHMuXG4vL1xuXG4vLyBUaGUgZm9sbG93aW5nIGNvbW1lbnQgc3RhcnRzIHdpdGggYSBcIiFcIi4gU28gaXQgd2lsbCBub3QgYmUgcmVtb3ZlZCBkdXJpbmdcbi8vIHRoZSAoU0FTUykgY29tcGlsYXRpb24uIEl0IGlzIGp1c3QgdG8gYWxlcnQgcHJvamVjdCBjb250cmlidXRvcnMgdGhhdCB0aGVcbi8vIChDU1MpIG91dHB1dCBmaWxlIGNhbiBub3QgYmUgbW9kaWZpZWQgdW5kZXIgYW55IGNpcmN1bXN0YW5jZXMuXG5cbi8qISBDb21waWxlZCBTQVNTIGZpbGUgfCBEbyBOT1QgbW9kaWZ5IGZyb20gaGVyZSAhKi9cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFZhcmlhYmxlcyBvdmVycmlkZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpbXBvcnQgJ3ZhcmlhYmxlLW92ZXJyaWRlcyc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDdXN0b20gZnVuY3Rpb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaW1wb3J0ICdmdW5jdGlvbnMvY29sb3Itc2NoZW1lJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEN1c3RvbSBtaXhpbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpbXBvcnQgJ21peGlucy9idXR0b24nO1xuQGltcG9ydCAnbWl4aW5zL2Zvcm0tc2VsZWN0JztcbkBpbXBvcnQgJ21peGlucy9saXN0JztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNhc3MgRnJhbWV3b3JrXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaW1wb3J0ICcuLi8uLi9fc2Fzcy1mcmFtZXdvcmsvaW5jbHVkZS1hbGwnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTWFwIHJlbW92YWxzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaW1wb3J0ICdtYXAtcmVtb3ZhbHMnO1xuIiwiXG4vL1xuLy8gQGZpbGVcbi8vIFwiR3JpZCBTeXN0ZW1cIiBhcnJhbmdlbWVudHMuXG4vL1xuLy8gUG93ZXJmdWwgbW9iaWxlLWZpcnN0IGBGbGV4Ym94YCBncmlkIHRvIGJ1aWxkIGxheW91dHMgb2YgYWxsIHNoYXBlc1xuLy8gYW5kIHNpemVzIHVzaW5nIGEgdHdlbHZlIGNvbHVtbiBzeXN0ZW0gYW5kIGZpdmUgcmVzcG9uc2l2ZSB0aWVycy5cbi8vXG5cbi8vIEltcG9ydCBTYXNzIHZhcmlhYmxlcywgZnVuY3Rpb25zLCBtaXhpbnMgYW5kIHBsYWNlaG9sZGVycy5cbkBpbXBvcnQgXCIuLi9jb25maWcvaW1wb3J0c1wiO1xuXG4vLyBUaGlzIGRvY3VtZW50IGZvbGxvd3MgRHJ1cGFsIENTUyBjb2Rpbmcgc3RhbmRhcmRzLCBTYXNzIEd1aWRlbGluZXNcbi8vIGFuZCBTYXNzIFN0eWxlIEd1aWRlLiBSZWFkIG1vcmUgYWJvdXQgdGhlc2UgdG9waWNzOlxuLy9cbi8vIEBzZWUgaHR0cHM6Ly93d3cuZHJ1cGFsLm9yZy9kb2NzL2RldmVsb3Avc3RhbmRhcmRzL2Nzcy9cbi8vIEBzZWUgaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9zYXNzLXN0eWxlLWd1aWRlL1xuLy8gQHNlZSBodHRwczovL3Nhc3MtZ3VpZGVsaW4uZXNcbi8vXG4vLyBUaGlzIGZpbGUgaXMgY29tcGlsZWQgc2VwYXJhdGVseSBzbyB3ZSBjYW4gcHVsbCBpbiBjb25maWcgZGVwZW5kZW5jaWVzIGFib3ZlXG4vLyB3aGlsZSBhbHNvIG1haW50YWluaW5nIERydXBhbCdzIFNNQUNTUyBzdHJ1Y3R1cmUuXG5cblxuLy8gQ29udGFpbmVyIHdpZHRoc1xuLy9cbi8vIFNldCB0aGUgY29udGFpbmVyIHdpZHRoLCBhbmQgb3ZlcnJpZGUgaXQgZm9yIGZpeGVkIG5hdmJhcnMgaW4gbWVkaWEgcXVlcmllcy5cbi8vXG5AaWYgJGVuYWJsZS1ncmlkLWNsYXNzZXMge1xuICAuY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBtYWtlLWNvbnRhaW5lcjtcbiAgICBAaW5jbHVkZSBtYWtlLWNvbnRhaW5lci1tYXgtd2lkdGhzO1xuICB9XG59XG5cbi8vIEZsdWlkIGNvbnRhaW5lclxuLy9cbi8vIFV0aWxpemVzIHRoZSBtaXhpbiBtZWFudCBmb3IgZml4ZWQgd2lkdGggY29udGFpbmVycywgYnV0IHdpdGggMTAwJSB3aWR0aCBmb3Jcbi8vIGZsdWlkLCBmdWxsIHdpZHRoIGxheW91dHMuXG4vL1xuQGlmICRlbmFibGUtZ3JpZC1jbGFzc2VzIHtcbiAgLmNvbnRhaW5lci1mbHVpZCB7XG4gICAgQGluY2x1ZGUgbWFrZS1jb250YWluZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLy8gUm93XG4vL1xuLy8gUm93cyBjb250YWluIGFuZCBjbGVhciB0aGUgZmxvYXRzIG9mIHlvdXIgY29sdW1ucy5cbi8vXG5AaWYgJGVuYWJsZS1ncmlkLWNsYXNzZXMge1xuICAucm93IHtcbiAgICBAaW5jbHVkZSBtYWtlLXJvdztcbiAgfVxuXG4gIC8vIFJlc2V0IGd1dHRlcnNcbiAgLy9cbiAgLm5vLWd1dHRlcnMge1xuICAgIEBleHRlbmQgJXJvdy1yZXNldC1kZWZhdWx0cztcbiAgfVxufVxuXG4vLyBDb2x1bW5zXG4vL1xuLy8gQ29tbW9uIHN0eWxlcyBmb3Igc21hbGwgYW5kIGxhcmdlIGdyaWQgY29sdW1uc1xuLy9cbkBpZiAkZW5hYmxlLWdyaWQtY2xhc3NlcyB7XG4gIEBlYWNoICRicmVha3BvaW50IGluIG1hcC1rZXlzKCRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICAgJGluZml4OiBicmVha3BvaW50LWluZml4KCRicmVha3BvaW50KTtcblxuICAgIC8vIEFsbG93IGNvbHVtbnMgdG8gc3RyZXRjaCBmdWxsIHdpZHRoIGJlbG93IHRoZWlyIGJyZWFrcG9pbnRzLlxuICAgIC8vXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgIC5jb2x1bW4jeyRpbmZpeH0tI3skaX0ge1xuICAgICAgICBAZXh0ZW5kICVjb2x1bW4tcmVhZHktZGVmYXVsdHM7XG4gICAgICB9XG4gICAgfVxuICAgIC5jb2x1bW4jeyRpbmZpeH0sXG4gICAgLmNvbHVtbiN7JGluZml4fS1hdXRvIHtcbiAgICAgIEBleHRlbmQgJWNvbHVtbi1yZWFkeS1kZWZhdWx0cztcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXVwKCRicmVha3BvaW50KSB7XG5cbiAgICAgIC8vIFByb3ZpZGUgYmFzaWMgYC5jb2x1bW4te2JyZWFrcG9pbnR9YCBjbGFzc2VzXG4gICAgICAvLyBmb3IgZXF1YWwtd2lkdGggZmxleGJveCBjb2x1bW5zLlxuICAgICAgLy9cbiAgICAgIC8vIDEuIFJlc2V0IGVhcmxpZXIgZ3JpZCB0aWVycy5cbiAgICAgIC8vXG4gICAgICAuY29sdW1uI3skaW5maXh9IHtcbiAgICAgICAgZmxleDoge1xuICAgICAgICAgIGJhc2lzOiAwO1xuICAgICAgICAgIGdyb3c6IDE7XG4gICAgICAgIH1cbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgICAgLmNvbHVtbiN7JGluZml4fS1hdXRvIHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7IC8vIDFcbiAgICAgIH1cblxuICAgICAgLy8gUHJvdmlkZSBgLmNvbHVtbi17YnJlYWtwb2ludH0te3NpemV9YCBjbGFzc2VzXG4gICAgICAvLyBmb3Igc3Bhbm5pbmcgZmxleGJveCBjb2x1bW5zLlxuICAgICAgLy9cbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAgIC5jb2x1bW4jeyRpbmZpeH0tI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG1ha2UtY29sdW1uKCRpKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBQcm92aWRlIGAub3JkZXIte2JyZWFrcG9pbnR9LXtzaXplfWAgY2xhc3Nlc1xuICAgICAgLy8gZm9yIHJlb3JkZXJpbmcgZmxleGJveCBjb2x1bW5zLlxuICAgICAgLy9cbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAgIC5vcmRlciN7JGluZml4fS0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgbWFrZS1jb2x1bW4tb3JkZXIoJGkpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFByb3ZpZGUgYC5vZmZzZXQte2JyZWFrcG9pbnR9LXtzaXplfWAgY2xhc3Nlc1xuICAgICAgLy8gZm9yIG9mZnNldHRpbmcgZmxleGJveCBjb2x1bW5zLlxuICAgICAgLy9cbiAgICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAgIC5vZmZzZXQjeyRpbmZpeH0tI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG1ha2UtY29sdW1uLW9mZnNldCgkaSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBjaGFyc2V0ICd1dGYtOCc7XG5cblxuLy8vIEdyaWQgY29udGFpbmVyIGRlZmF1bHQgcHJvcGVydGllcy5cbi8vL1xuLy8vIEBncm91cCBsYXlvdXRcbi8vL1xuLy8vIEBzZWUge21peGlufSBtYWtlLWNvbnRhaW5lclxuXG4lY29udGFpbmVyLWRlZmF1bHRzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjoge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cbn1cblxuXG4vLy8gR3JpZCByb3cgZGVmYXVsdCBwcm9wZXJ0aWVzLlxuLy8vXG4vLy8gQGdyb3VwIGxheW91dFxuLy8vXG4vLy8gQHNlZSB7bWl4aW59IG1ha2Utcm93XG5cbiVyb3ctZGVmYXVsdHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cblxuLy8vIFJlc2V0IGdyaWQgcm93IGRlZmF1bHQgcHJvcGVydGllcy5cbi8vL1xuLy8vIFJlbW92ZSB0aGUgbmVnYXRpdmUgbWFyZ2luIGZyb20gZGVmYXVsdCBncmlkIHJvdywgdGhlbiB0aGUgaG9yaXpvbnRhbCBwYWRkaW5nXG4vLy8gZnJvbSBhbGwgaW1tZWRpYXRlIGNoaWxkcmVuIGNvbHVtbnMgZWxlbWVudHMgKHRvIHByZXZlbnQgcnVuYXdheSBzdHlsZSBpbmhlcml0YW5jZSkuXG4vLy9cbi8vLyBAZ3JvdXAgbGF5b3V0XG4vLy9cbi8vLyBAc2VlIHNjc3MvbGF5b3V0L2dyaWQuc2Nzc1xuXG4lcm93LXJlc2V0LWRlZmF1bHRzIHtcbiAgbWFyZ2luOiB7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogMDtcbiAgfVxuXG4gIC8vIEFsbCBpbW1lZGlhdGUgY2hpbGRyZW4gY29sdW1ucyBlbGVtZW50XG4gIC8vXG4gID4gKiB7XG4gICAgcGFkZGluZzoge1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLyBHcmlkIGNvbHVtbiAoRmlyc3QsIGFwcGx5aW5nIGV2ZXJ5dGhpbmcgYnV0IHRoZSBwYWRkaW5ncykgZGVmYXVsdCBwcm9wZXJ0aWVzLlxuLy8vXG4vLy8gQGdyb3VwIGxheW91dFxuLy8vXG4vLy8gQHNlZSB7bWl4aW59IG1ha2UtY29sdW1uLXJlYWR5XG4vLy9cbi8vLyAxLiBQcmV2ZW50IGNvbHVtbnMgZnJvbSBiZWNvbWluZyB0b28gbmFycm93IHdoZW4gYXQgc21hbGxlciBncmlkIHRpZXJzIGJ5XG4vLy8gICAgYWx3YXlzIHNldHRpbmcgYHdpZHRoOiAxMDAlO2AuIFRoaXMgd29ya3MgYmVjYXVzZSB3ZSB1c2UgYGZsZXhgIHZhbHVlc1xuLy8vICAgIGxhdGVyIG9uIHRvIG92ZXJyaWRlIHRoaXMgaW5pdGlhbCB3aWR0aC5cbi8vLyAyLiBQcmV2ZW50IGNvbGxhcHNpbmcuXG5cbiVjb2x1bW4tZGVmYXVsdHMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlOyAvLyAxXG4gIG1pbi1oZWlnaHQ6IDFweDsgLy8gMlxufVxuXG5cbi8vLyBHcmlkIGNvbHVtbiAoTmV4dCwgYXBwbHkgdGhlIHBhZGRpbmdzKSBkZWZhdWx0IHByb3BlcnRpZXMuXG4vLy9cbi8vLyBAZ3JvdXAgbGF5b3V0XG4vLy9cbi8vLyBAc2VlIHNjc3MvbGF5b3V0L2dyaWQuc2Nzc1xuLy8vXG4vLy8gQHJlcXVpcmVzIHtwbGFjZWhvbGRlcn0gY29sdW1uLWRlZmF1bHRzXG4vLy8gQHJlcXVpcmVzIHttaXhpbn0gcmVtXG5cbiVjb2x1bW4tcmVhZHktZGVmYXVsdHMge1xuICBAZXh0ZW5kICVjb2x1bW4tZGVmYXVsdHM7XG4gIHBhZGRpbmc6IHtcbiAgICBAaW5jbHVkZSByZW0oJ3JpZ2h0JywgKCRncmlkLWd1dHRlci13aWR0aCAvIDIpKTtcbiAgICBAaW5jbHVkZSByZW0oJ2xlZnQnLCAoJGdyaWQtZ3V0dGVyLXdpZHRoIC8gMikpO1xuICB9XG59XG4iLCJAY2hhcnNldCAndXRmLTgnO1xuXG5cbi8vLyBHZW5lcmF0ZSBQWC9SRU0gdmFsdWUgd2hpY2ggaXMgcmVsYXRpdmUgdG8gdGhlIGZvbnQtc2l6ZSBkZWZpbmVkIGZvciB0aGUgaHRtbCBlbGVtZW50LlxuLy8vXG4vLy8gUkVNIHN0YW5kcyBmb3Igcm9vdCBlbS4gQmFzaWNhbGx5LCBpbnN0ZWFkIG9mIGJlaW5nIHJlbGF0aXZlIHRvIHRoZSBmb250LXNpemUgb2YgaXRzXG4vLy8gZGlyZWN0IHBhcmVudCwgaXQncyByZWxhdGl2ZSB0byB0aGUgZm9udC1zaXplIGRlZmluZWQgZm9yIHRoZSBodG1sIGVsZW1lbnQuXG4vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcm9wZXJ0eVxuLy8vICAgLSBBY2NlcHRzIChhbG1vc3QpIGFueSBwcm9wZXJ0eSBhcyBhbiBpbnB1dCwgbm90IG9ubHkgXCJmb250LXNpemVcIi5cbi8vL1xuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlc1xuLy8vICAgLSBBY2NlcHRzIGVpdGhlciBcInB4XCIgb3IgXCJyZW1cIiBhcyBhbiBpbnB1dCB2YWx1ZS4gQWxzbyBhY2NlcHRzIG11bHRpcGxlIHZhbHVlcyxcbi8vLyAgICAgbGlrZSBcIjEwcHggMjBweFwiIChmb3IgcGFkZGluZyBvciBtYXJnaW4gYXMgYW4gZXhhbXBsZSkuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHJvb3QgWzE2cHhdXG4vLy8gICAtIFRoZSBicm93c2VyIGRlZmF1bHQgKDE2IHBpeGVscykgZm9udC1zaXplLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlLlxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSByZW0oJ3BhZGRpbmctcmlnaHQnLCAxNXB4KTtcbi8vLyAgICAgQGluY2x1ZGUgcmVtKCdwYWRkaW5nLWxlZnQnLCAxNXB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLy8gQ1NTIE91dHB1dFxuLy8vICAgLy9cbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgcGFkZGluZy1yaWdodDogMTVweDsgLy8gRmFsbGJhY2sgZm9yIElFOC5cbi8vLyAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuLy8vICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7IC8vIEZhbGxiYWNrIGZvciBJRTguXG4vLy8gICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmVzIHt2YXJpYWJsZX0gZW5hYmxlLWxlZ2FjeS1zdXBwb3J0LWZvci1pZThcbi8vLyBAcmVxdWlyZXMge2Z1bmN0aW9ufSBzdHJpcC11bml0c1xuXG5AbWl4aW4gcmVtKFxuICAkcHJvcGVydHksXG4gICR2YWx1ZXMsXG4gICRyb290OiAxNnB4XG4pIHtcblxuICAkcHg6ICAoKTtcbiAgJHJlbTogKCk7XG5cbiAgQGlmIG5vdCB1bml0bGVzcygkcm9vdCkge1xuICAgICRyb290OiBzdHJpcC11bml0cygkcm9vdCk7XG4gIH1cblxuICBAaWYgJHZhbHVlcyB7XG4gICAgXG4gICAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZXMge1xuXG4gICAgICBAaWYgJHZhbHVlID09IDAgb3IgdHlwZS1vZigkdmFsdWUpICE9ICdudW1iZXInIHtcbiAgICAgICAgJHB4OiAgYXBwZW5kKCRweCwgJHZhbHVlKTtcbiAgICAgICAgJHJlbTogYXBwZW5kKCRyZW0sICR2YWx1ZSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICR1bml0OiB1bml0KCR2YWx1ZSk7XG4gICAgICAgICR2YWw6ICBzdHJpcC11bml0cygkdmFsdWUpO1xuXG4gICAgICAgIEBpZiAkdW5pdCA9PSAncHgnIHtcbiAgICAgICAgICAkcHg6ICBhcHBlbmQoJHB4LCAkdmFsdWUpO1xuICAgICAgICAgIFxuICAgICAgICAgIEBpZiAkdmFsID09IDEge1xuICAgICAgICAgICAgJHJlbTogYXBwZW5kKCRyZW0sICR2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICRyZW06IGFwcGVuZCgkcmVtLCAoJHZhbCAvICRyb290ICsgcmVtKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBlbHNlIGlmICR1bml0ID09ICdyZW0nIHtcbiAgICAgICAgICAkcHg6ICBhcHBlbmQoJHB4LCAoJHZhbCAqICRyb290ICsgcHgpKTtcbiAgICAgICAgICAkcmVtOiBhcHBlbmQoJHJlbSwgJHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgJHB4OiAgYXBwZW5kKCRweCwgJHZhbHVlKTtcbiAgICAgICAgICAkcmVtOiBhcHBlbmQoJHJlbSwgJHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkcHggPT0gJHJlbSB7XG4gICAgICAjeyRwcm9wZXJ0eX06ICRweDtcbiAgICB9XG4gICAgQGVsc2Uge1xuXG4gICAgICBAaWYgJGVuYWJsZS1sZWdhY3ktc3VwcG9ydC1mb3ItaWU4IHtcbiAgICAgICAgI3skcHJvcGVydHl9OiAkcHg7IC8vIEZhbGxiYWNrIGZvciBJRTguXG4gICAgICB9XG4gICAgICAjeyRwcm9wZXJ0eX06ICRyZW07XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCAndXRmLTgnO1xuXG5cbi8vLyBCcmVha3BvaW50cyBhcmUgZGVmaW5lZCBhcyBhIG1hcCBvZiAobmFtZTogbWluaW11bSB3aWR0aCksXG4vLy8gb3JkZXIgZnJvbSBzbWFsbCB0byBsYXJnZS4gVGhlIG1hcCBkZWZpbmVkIGluIHRoZSBgJGdyaWQtYnJlYWtwb2ludHNgXG4vLy8gZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgYXMgdGhlIGAkYnJlYWtwb2ludHNgIGFyZ3VtZW50IGJ5IGRlZmF1bHRcbi8vLyB3aGVuIG5vIGFyZ3VtZW50IGlzIHByb3ZpZGVkLlxuXG5cbi8vLyBHZW5lcmF0ZSBNZWRpYSBRdWVyeSBvZiBhdCBsZWFzdCB0aGUgbWluaW11bSBicmVha3BvaW50IHdpZHRoLlxuLy8vXG4vLy8gTm8gcXVlcnkgZm9yIHRoZSBzbWFsbGVzdCAoeHNtYWxsKSBicmVha3BvaW50LCBtYWtlcyB0aGUgJ0Bjb250ZW50J1xuLy8vIGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCB3aWRlci5cbi8vL1xuLy8vIEBncm91cCBsYXlvdXRcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZVxuLy8vICAgLSBUaGUgbmFtZSBvZiB0aGUgcmVmZXJlbmNlIGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJGJyZWFrcG9pbnRzIFskZ3JpZC1icmVha3BvaW50c11cbi8vLyAgIC0gTWFwIG9mIGFsbCBicmVha3BvaW50cyB0byBzZWFyY2ggaW4uXG4vLy9cbi8vLyBAY29udGVudFxuLy8vICAgQW55IENTUyBwcm9wZXJ0aWVzIHRoYXQgYXJlIGluY2x1ZGVkIGluIHRoZSAnQGluY2x1ZGUnIGRpcmVjdGl2ZSB3aWxsIGJlXG4vLy8gICBvdXRwdXQgd2l0aGluIHRoZSBgQG1lZGlhYCBkZWNsYXJhdGlvbi5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZS5cbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYnJlYWtwb2ludC11cCgnc21hbGwnLCAoJ3hzbWFsbCc6IDAsICdzbWFsbCc6IDU3NnB4LCAnbWVkaXVtJzogNzY4cHgsICdsYXJnZSc6IDk5MnB4LCAneGxhcmdlJzogMTIzMHB4KSkge1xuLy8vICAgICAgIC4uLlxuLy8vICAgICB9XG4vLy8gICB9XG4vLy9cbi8vLyAgIC8vIENTUyBPdXRwdXRcbi8vLyAgIC8vXG4vLy8gICBAbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbi8vLyAgICAgLmVsZW1lbnQge1xuLy8vICAgICAgIC4uLlxuLy8vICAgICB9XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZXMge2Z1bmN0aW9ufSBicmVha3BvaW50LW1pblxuLy8vIEByZXF1aXJlcyB7dmFyaWFibGV9IGdyaWQtYnJlYWtwb2ludHNcblxuQG1peGluIGJyZWFrcG9pbnQtdXAoXG4gICRuYW1lLFxuICAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzXG4pIHtcblxuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcblxuICBAaWYgJG1pbiB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuXG4vLy8gR2VuZXJhdGUgTWVkaWEgUXVlcnkgb2YgYXQgbW9zdCB0aGUgbWF4aW11bSBicmVha3BvaW50IHdpZHRoLlxuLy8vXG4vLy8gTm8gcXVlcnkgZm9yIHRoZSBsYXJnZXN0ICh4bGFyZ2UpIGJyZWFrcG9pbnQsIG1ha2VzIHRoZSAnQGNvbnRlbnQnXG4vLy8gYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIG5hcnJvd2VyLlxuLy8vXG4vLy8gQGdyb3VwIGxheW91dFxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lXG4vLy8gICAtIFRoZSBuYW1lIG9mIHRoZSByZWZlcmVuY2UgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkYnJlYWtwb2ludHMgWyRncmlkLWJyZWFrcG9pbnRzXVxuLy8vICAgLSBNYXAgb2YgYWxsIGJyZWFrcG9pbnRzIHRvIHNlYXJjaCBpbi5cbi8vL1xuLy8vIEBjb250ZW50XG4vLy8gICBBbnkgQ1NTIHByb3BlcnRpZXMgdGhhdCBhcmUgaW5jbHVkZWQgaW4gdGhlICdAaW5jbHVkZScgZGlyZWN0aXZlIHdpbGwgYmVcbi8vLyAgIG91dHB1dCB3aXRoaW4gdGhlIGBAbWVkaWFgIGRlY2xhcmF0aW9uLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlLlxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBicmVha3BvaW50LWRvd24oJ2xhcmdlJywgKCd4c21hbGwnOiAwLCAnc21hbGwnOiA1NzZweCwgJ21lZGl1bSc6IDc2OHB4LCAnbGFyZ2UnOiA5OTJweCwgJ3hsYXJnZSc6IDEyMzBweCkpIHtcbi8vLyAgICAgICAuLi5cbi8vLyAgICAgfVxuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDU1MgT3V0cHV0XG4vLy8gICAvL1xuLy8vICAgQG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCkge1xuLy8vICAgICAuZWxlbWVudCB7XG4vLy8gICAgICAgLi4uXG4vLy8gICAgIH1cbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlcyB7ZnVuY3Rpb259IGJyZWFrcG9pbnQtbWF4XG4vLy8gQHJlcXVpcmVzIHt2YXJpYWJsZX0gZ3JpZC1icmVha3BvaW50c1xuXG5AbWl4aW4gYnJlYWtwb2ludC1kb3duKFxuICAkbmFtZSxcbiAgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50c1xuKSB7XG5cbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtYXgge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cblxuLy8vIEdlbmVyYXRlIE1lZGlhIFF1ZXJ5IHRoYXQgc3BhbnMgbXVsdGlwbGUgYnJlYWtwb2ludCB3aWR0aHMuXG4vLy9cbi8vLyBNYWtlcyB0aGUgJ0Bjb250ZW50JyBhcHBseSBiZXR3ZWVuIHRoZSBtaW4gYW5kIG1heCBicmVha3BvaW50cy5cbi8vL1xuLy8vIEBncm91cCBsYXlvdXRcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbG93ZXJcbi8vLyAgIC0gTmFtZSBvZiB0aGUgbWluaW11bSBicmVha3BvaW50LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR1cHBlclxuLy8vICAgLSBOYW1lIG9mIHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJGJyZWFrcG9pbnRzIFskZ3JpZC1icmVha3BvaW50c11cbi8vLyAgIC0gTWFwIG9mIGFsbCBicmVha3BvaW50cyB0byBzZWFyY2ggaW4uXG4vLy9cbi8vLyBAY29udGVudFxuLy8vICAgQW55IENTUyBwcm9wZXJ0aWVzIHRoYXQgYXJlIGluY2x1ZGVkIGluIHRoZSAnQGluY2x1ZGUnIGRpcmVjdGl2ZSB3aWxsIGJlXG4vLy8gICBvdXRwdXQgd2l0aGluIHRoZSBgQG1lZGlhYCBkZWNsYXJhdGlvbi5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZS5cbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYnJlYWtwb2ludC1iZXR3ZWVuKCdzbWFsbCcsICdsYXJnZScsICgneHNtYWxsJzogMCwgJ3NtYWxsJzogNTc2cHgsICdtZWRpdW0nOiA3NjhweCwgJ2xhcmdlJzogOTkycHgsICd4bGFyZ2UnOiAxMjMwcHgpKSB7XG4vLy8gICAgICAgLi4uXG4vLy8gICAgIH1cbi8vLyAgIH1cbi8vL1xuLy8vICAgLy8gQ1NTIE91dHB1dFxuLy8vICAgLy9cbi8vLyAgIEBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4vLy8gICAgIC5lbGVtZW50IHtcbi8vLyAgICAgICAuLi5cbi8vLyAgICAgfVxuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmVzIHtmdW5jdGlvbn0gYnJlYWtwb2ludC1taW5cbi8vLyBAcmVxdWlyZXMge2Z1bmN0aW9ufSBicmVha3BvaW50LW1heFxuLy8vIEByZXF1aXJlcyB7dmFyaWFibGV9IGdyaWQtYnJlYWtwb2ludHNcblxuQG1peGluIGJyZWFrcG9pbnQtYmV0d2VlbihcbiAgJGxvd2VyLFxuICAkdXBwZXIsXG4gICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHNcbikge1xuXG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRsb3dlciwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJHVwcGVyLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cblxuLy8vIEdlbmVyYXRlIE1lZGlhIFF1ZXJ5IGJldHdlZW4gdGhlIGJyZWFrcG9pbnTigJlzIG1pbmltdW0gYW5kIG1heGltdW0gd2lkdGhzLlxuLy8vXG4vLy8gTm8gbWluaW11bSBmb3IgdGhlIHNtYWxsZXN0ICh4c21hbGwpIGJyZWFrcG9pbnQsIGFuZCBubyBtYXhpbXVtIGZvciB0aGUgbGFyZ2VzdCAoeGxhcmdlKSBvbmUuXG4vLy8gTWFrZXMgdGhlICdAY29udGVudCcgYXBwbHkgb25seSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCwgbm90IHZpZXdwb3J0cyBhbnkgd2lkZXIgb3IgbmFycm93ZXIuXG4vLy9cbi8vLyBAZ3JvdXAgbGF5b3V0XG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG5hbWVcbi8vLyAgIC0gVGhlIG5hbWUgb2YgdGhlIHJlZmVyZW5jZSBicmVha3BvaW50LlxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRicmVha3BvaW50cyBbJGdyaWQtYnJlYWtwb2ludHNdXG4vLy8gICAtIE1hcCBvZiBhbGwgYnJlYWtwb2ludHMgdG8gc2VhcmNoIGluLlxuLy8vXG4vLy8gQGNvbnRlbnRcbi8vLyAgIEFueSBDU1MgcHJvcGVydGllcyB0aGF0IGFyZSBpbmNsdWRlZCBpbiB0aGUgJ0BpbmNsdWRlJyBkaXJlY3RpdmUgd2lsbCBiZVxuLy8vICAgb3V0cHV0IHdpdGhpbiB0aGUgYEBtZWRpYWAgZGVjbGFyYXRpb24uXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2UuXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJ3NtYWxsJywgKCd4c21hbGwnOiAwLCAnc21hbGwnOiA1NzZweCwgJ21lZGl1bSc6IDc2OHB4LCAnbGFyZ2UnOiA5OTJweCwgJ3hsYXJnZSc6IDEyMzBweCkpIHtcbi8vLyAgICAgICAuLi5cbi8vLyAgICAgfVxuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDU1MgT3V0cHV0XG4vLy8gICAvL1xuLy8vICAgQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbi8vLyAgICAgLmVsZW1lbnQge1xuLy8vICAgICAgIC4uLlxuLy8vICAgICB9XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZXMge2Z1bmN0aW9ufSBicmVha3BvaW50LW1pblxuLy8vIEByZXF1aXJlcyB7ZnVuY3Rpb259IGJyZWFrcG9pbnQtbWF4XG4vLy8gQHJlcXVpcmVzIHt2YXJpYWJsZX0gZ3JpZC1icmVha3BvaW50c1xuLy8vIEByZXF1aXJlcyB7bWl4aW59IGJyZWFrcG9pbnQtdXBcbi8vLyBAcmVxdWlyZXMge21peGlufSBicmVha3BvaW50LWRvd25cblxuQG1peGluIGJyZWFrcG9pbnQoXG4gICRuYW1lLFxuICAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzXG4pIHtcblxuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtdXAoJG5hbWUpO1xuICB9XG4gIEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1kb3duKCRuYW1lKTtcbiAgfVxufVxuIiwiQGNoYXJzZXQgJ3V0Zi04JztcblxuXG4vLy8gR2VuZXJhdGUgY29udGFpbmVyIHdpZHRoLCBhbmQgb3ZlcnJpZGUgaXQgaW4gbWVkaWEgcXVlcmllcy5cbi8vL1xuLy8vIEBncm91cCBsYXlvdXRcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZ3V0dGVyIFskZ3JpZC1ndXR0ZXItd2lkdGhdXG4vLy8gICAtIFdpZHRoIHZhbHVlIG9mIHRoZSBndXR0ZXJzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlLlxuLy8vICAgLmNvbnRhaW5lciB7XG4vLy8gICAgIEBpbmNsdWRlIG1ha2UtY29udGFpbmVyKDIwcHgpO1xuLy8vICAgICAuLi5cbi8vLyAgIH1cbi8vL1xuLy8vICAgLy8gQ1NTIE91dHB1dFxuLy8vICAgLy9cbi8vLyAgIC5jb250YWluZXIge1xuLy8vICAgICB3aWR0aDogMTAwJTtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuLy8vICAgICBtYXJnaW4tbGVmdDogYXV0bztcbi8vLyAgIH1cbi8vLyAgIC5jb250YWluZXIge1xuLy8vICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuLy8vICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4vLy8gICAgIC4uLlxuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmVzIHt2YXJpYWJsZX0gZ3JpZC1ndXR0ZXItd2lkdGhcbi8vLyBAcmVxdWlyZXMge21peGlufSByZW1cbi8vLyBAcmVxdWlyZXMge3BsYWNlaG9sZGVyfSBjb250YWluZXItZGVmYXVsdHNcblxuQG1peGluIG1ha2UtY29udGFpbmVyKFxuICAkZ3V0dGVyOiAkZ3JpZC1ndXR0ZXItd2lkdGhcbikge1xuXG4gIEBleHRlbmQgJWNvbnRhaW5lci1kZWZhdWx0cztcbiAgcGFkZGluZzoge1xuICAgIEBpbmNsdWRlIHJlbSgncmlnaHQnLCAoJGd1dHRlciAvIDIpKTtcbiAgICBAaW5jbHVkZSByZW0oJ2xlZnQnLCAoJGd1dHRlciAvIDIpKTtcbiAgfVxufVxuXG5cbi8vLyBGb3IgZWFjaCBicmVha3BvaW50LCBkZWZpbmUgdGhlIG1heGltdW0gd2lkdGggb2YgdGhlIGNvbnRhaW5lciBpbiBhIG1lZGlhIHF1ZXJ5LlxuLy8vXG4vLy8gQGdyb3VwIGxheW91dFxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXgtd2lkdGhzIFskY29udGFpbmVyLW1heC13aWR0aHNdXG4vLy8gICAtIE1hcCBvZiBhbGwgY29udGFpbmVyIG1heGltdW0gd2lkdGhzLlxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRicmVha3BvaW50cyBbJGdyaWQtYnJlYWtwb2ludHNdXG4vLy8gICAtIE1hcCBvZiBhbGwgYnJlYWtwb2ludHMgdG8gc2VhcmNoIGluLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlLlxuLy8vICAgLmNvbnRhaW5lciB7XG4vLy8gICAgIC4uLlxuLy8vICAgICBAaW5jbHVkZSBtYWtlLWNvbnRhaW5lci1tYXgtd2lkdGhzO1xuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDU1MgT3V0cHV0XG4vLy8gICAvL1xuLy8vICAgLmNvbnRhaW5lciB7XG4vLy8gICAgIC4uLlxuLy8vICAgfVxuLy8vICAgQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XG4vLy8gICAgIC5jb250YWluZXIge1xuLy8vICAgICAgIG1heC13aWR0aDogNDgwcHg7XG4vLy8gICAgIH1cbi8vLyAgIH1cbi8vLyAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuLy8vICAgICAuY29udGFpbmVyIHtcbi8vLyAgICAgICBtYXgtd2lkdGg6IDc1MHB4O1xuLy8vICAgICB9XG4vLy8gICB9XG4vLy8gICAuLi5cbi8vLyAgIEBtZWRpYSAobWluLXdpZHRoOiAxMjMwcHgpIHtcbi8vLyAgICAgLmNvbnRhaW5lciB7XG4vLy8gICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7XG4vLy8gICAgIH1cbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlcyB7dmFyaWFibGV9IGNvbnRhaW5lci1tYXgtd2lkdGhzXG4vLy8gQHJlcXVpcmVzIHt2YXJpYWJsZX0gZ3JpZC1icmVha3BvaW50c1xuLy8vIEByZXF1aXJlcyB7bWl4aW59IHJlbVxuLy8vIEByZXF1aXJlcyB7bWl4aW59IGJyZWFrcG9pbnQtdXBcblxuQG1peGluIG1ha2UtY29udGFpbmVyLW1heC13aWR0aHMoXG4gICRtYXgtd2lkdGhzOiAkY29udGFpbmVyLW1heC13aWR0aHMsXG4gICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHNcbikge1xuXG4gIEBlYWNoICRicmVha3BvaW50LCAkY29udGFpbmVyLW1heC13aWR0aCBpbiAkbWF4LXdpZHRocyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAaW5jbHVkZSByZW0oJ21heC13aWR0aCcsICRjb250YWluZXItbWF4LXdpZHRoKTtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8gR2VuZXJhdGUgYSByb3cgKHdyYXBwZXIpIGZvciBhIHNlcmllcyBvZiBjb2x1bW5zLlxuLy8vXG4vLy8gQGdyb3VwIGxheW91dFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRndXR0ZXIgWyRncmlkLWd1dHRlci13aWR0aF1cbi8vLyAgIC0gV2lkdGggdmFsdWUgb2YgdGhlIGd1dHRlcnMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2UuXG4vLy8gICAucm93IHtcbi8vLyAgICAgQGluY2x1ZGUgbWFrZS1yb3coMjBweCk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC8vIENTUyBPdXRwdXRcbi8vLyAgIC8vXG4vLy8gICAucm93IHtcbi8vLyAgICAgZGlzcGxheTogZmxleDtcbi8vLyAgICAgZmxleC13cmFwOiB3cmFwO1xuLy8vICAgfVxuLy8vICAgLnJvdyB7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMTBweDtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZXMge3ZhcmlhYmxlfSBncmlkLWd1dHRlci13aWR0aFxuLy8vIEByZXF1aXJlcyB7bWl4aW59IHJlbVxuLy8vIEByZXF1aXJlcyB7cGxhY2Vob2xkZXJ9IHJvdy1kZWZhdWx0c1xuXG5AbWl4aW4gbWFrZS1yb3coXG4gICRndXR0ZXI6ICRncmlkLWd1dHRlci13aWR0aFxuKSB7XG5cbiAgQGV4dGVuZCAlcm93LWRlZmF1bHRzO1xuICBtYXJnaW46IHtcbiAgICBAaW5jbHVkZSByZW0oJ3JpZ2h0JywgKCRndXR0ZXIgLyAtMikpO1xuICAgIEBpbmNsdWRlIHJlbSgnbGVmdCcsICgkZ3V0dGVyIC8gLTIpKTtcbiAgfVxufVxuXG5cbi8vLyBNYWtlIHRoZSBlbGVtZW50IGdyaWQtcmVhZHkgKGFwcGx5aW5nIGV2ZXJ5dGhpbmcgYnV0IHRoZSB3aWR0aCkuXG4vLy9cbi8vLyBAZ3JvdXAgbGF5b3V0XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGd1dHRlciBbJGdyaWQtZ3V0dGVyLXdpZHRoXVxuLy8vICAgLSBXaWR0aCB2YWx1ZSBvZiB0aGUgZ3V0dGVycy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZS5cbi8vLyAgIC5jb2x1bW4ge1xuLy8vICAgICBAaW5jbHVkZSBtYWtlLWNvbHVtbi1yZWFkeSgyMHB4KTtcbi8vLyAgICAgLi4uXG4vLy8gICB9XG4vLy9cbi8vLyAgIC8vIENTUyBPdXRwdXRcbi8vLyAgIC8vXG4vLy8gICAuY29sdW1uIHtcbi8vLyAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuLy8vICAgICB3aWR0aDogMTAwJTtcbi8vLyAgICAgbWluLWhlaWdodDogMXB4O1xuLy8vICAgfVxuLy8vICAgLmNvbHVtbiB7XG4vLy8gICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4vLy8gICAgIHBhZGRpbmctbGVmdDogMTBweDtcbi8vLyAgICAgLi4uXG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZXMge3ZhcmlhYmxlfSBncmlkLWd1dHRlci13aWR0aFxuLy8vIEByZXF1aXJlcyB7bWl4aW59IHJlbVxuLy8vIEByZXF1aXJlcyB7cGxhY2Vob2xkZXJ9IGNvbHVtbi1kZWZhdWx0c1xuXG5AbWl4aW4gbWFrZS1jb2x1bW4tcmVhZHkoXG4gICRndXR0ZXI6ICRncmlkLWd1dHRlci13aWR0aFxuKSB7XG5cbiAgQGV4dGVuZCAlY29sdW1uLWRlZmF1bHRzO1xuICBwYWRkaW5nOiB7XG4gICAgQGluY2x1ZGUgcmVtKCdyaWdodCcsICgkZ3V0dGVyIC8gMikpO1xuICAgIEBpbmNsdWRlIHJlbSgnbGVmdCcsICgkZ3V0dGVyIC8gMikpO1xuICB9XG59XG5cblxuLy8vIEdlbmVyYXRlIHNwZWNpZmljIHdpZHRoIHRoYXQgc3BhbiBtdWx0aXBsZSBjb2x1bW5zLlxuLy8vXG4vLy8gQGdyb3VwIGxheW91dFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzaXplXG4vLy8gICAtIE51bWJlciBvZiBjb2x1bW5zIHRvIHNwYW4uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgWyRncmlkLWNvbHVtbnNdXG4vLy8gICAtIE51bWJlciBvZiBjb2x1bW5zIGluIHRoZSBncmlkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlLlxuLy8vICAgLmNvbHVtbi01IHtcbi8vLyAgICAgQGluY2x1ZGUgbWFrZS1jb2x1bW4oNSk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC8vIENTUyBPdXRwdXRcbi8vLyAgIC8vXG4vLy8gICAuY29sdW1uLTUge1xuLy8vICAgICBmbGV4OiAwIDAgNDEuNjY2NjclO1xuLy8vICAgICBtYXgtd2lkdGg6IDQxLjY2NjY3JTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlcyB7dmFyaWFibGV9IGdyaWQtY29sdW1uc1xuLy8vXG4vLy8gMS4gQWRkIGEgJ21heC13aWR0aCcgdG8gZW5zdXJlIGNvbnRlbnQgd2l0aGluIGVhY2ggY29sdW1uIGRvZXMgbm90IGJsb3cgb3V0XG4vLy8gICAgdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW4uIEFwcGxpZXMgdG8gSUUxMCsgYW5kIEZpcmVmb3guIENocm9tZSBhbmQgU2FmYXJpXG4vLy8gICAgZG8gbm90IGFwcGVhciB0byByZXF1aXJlIHRoaXMuXG5cbkBtaXhpbiBtYWtlLWNvbHVtbihcbiAgJHNpemUsXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW5zXG4pIHtcblxuICAkd2lkdGg6IHBlcmNlbnRhZ2UoJHNpemUgLyAkY29sdW1ucyk7XG5cbiAgZmxleDogMCAwICR3aWR0aDtcbiAgbWF4LXdpZHRoOiAkd2lkdGg7IC8vIDFcbn1cblxuXG4vLy8gTW92ZSBjb2x1bW5zIHRvIHRoZSByaWdodCBieSBpbmNyZWFzaW5nIHRoZSBsZWZ0IG1hcmdpblxuLy8vIG9mIGEgY29sdW1uIGJ5ICogY29sdW1ucy5cbi8vL1xuLy8vIEBncm91cCBsYXlvdXRcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb2Zmc2V0XG4vLy8gICAtIE51bWJlciBvZiBjb2x1bW5zIHRvIG9mZnNldC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1ucyBbJGdyaWQtY29sdW1uc11cbi8vLyAgIC0gTnVtYmVyIG9mIGNvbHVtbnMgaW4gdGhlIGdyaWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2UuXG4vLy8gICAub2Zmc2V0LTMge1xuLy8vICAgICBAaW5jbHVkZSBtYWtlLWNvbHVtbi1vZmZzZXQoMyk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC8vIENTUyBPdXRwdXRcbi8vLyAgIC8vXG4vLy8gICAub2Zmc2V0LTMge1xuLy8vICAgICBtYXJnaW4tbGVmdDogMjUlO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmVzIHt2YXJpYWJsZX0gZ3JpZC1jb2x1bW5zXG5cbkBtaXhpbiBtYWtlLWNvbHVtbi1vZmZzZXQoXG4gICRvZmZzZXQsXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW5zXG4pIHtcblxuICAkd2lkdGg6IHBlcmNlbnRhZ2UoJG9mZnNldCAvICRjb2x1bW5zKTtcblxuICBtYXJnaW4tbGVmdDogJHdpZHRoO1xufVxuXG5cbi8vLyBFYXNpbHkgY29udHJvbCB0aGUgdmlzdWFsIG9yZGVyIG9mIHlvdXIgY29sdW1ucy5cbi8vL1xuLy8vIEBncm91cCBsYXlvdXRcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb3JkZXJcbi8vLyAgIC0gUG9zaXRpb24gb2YgdGhlIGNvbHVtbiB0byByZW9yZGVyZWQuIFF1aWNrbHkgb3JkZXJcbi8vLyAgICAgZmlyc3Qgb25lIGVsZW1lbnQgYnkgYXBwbHlpbmcgb3JkZXI6IC0xLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIFskZ3JpZC1jb2x1bW5zXVxuLy8vICAgLSBOdW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZS5cbi8vLyAgIC5vcmRlci03IHtcbi8vLyAgICAgQGluY2x1ZGUgbWFrZS1jb2x1bW4tb3JkZXIoNyk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC8vIENTUyBPdXRwdXRcbi8vLyAgIC8vXG4vLy8gICAub3JkZXItNyB7XG4vLy8gICAgIG9yZGVyOiA3O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmVzIHt2YXJpYWJsZX0gZ3JpZC1jb2x1bW5zXG5cbkBtaXhpbiBtYWtlLWNvbHVtbi1vcmRlcihcbiAgJG9yZGVyLFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uc1xuKSB7XG5cbiAgb3JkZXI6IGlmKCRvcmRlciA8PSAkY29sdW1ucywgJG9yZGVyLCAkY29sdW1ucyk7XG59XG4iXX0= */
