/* ==========================================================================
Import Bootstrap Breakpoints
========================================================================== */
/* ==========================================================================
Colors - Must be loaded first
========================================================================== */
/* ==========================================================================
EnoRm - Header
========================================================================== */
/* ==========================================================================
Bootstrap - Breadcrumb
========================================================================== */
/* ==========================================================================
Bootstrap - Body
========================================================================== */
/* ==========================================================================
Bootstrap - Buttons
========================================================================== */
/* ==========================================================================
Bootstrap - Cards
========================================================================== */
/* ==========================================================================
Bootstrap - Dropdowns
========================================================================== */
/* ==========================================================================
Bootstrap - Enable options
========================================================================== */
/* ==========================================================================
Bootstrap - Fonts
========================================================================== */
/* ==========================================================================
Bootstrap - Grid Breakpoints
========================================================================== */
/* ==========================================================================
Bootstrap - Grid Containers
========================================================================== */
/* ==========================================================================
Bootstrap - Offcanvas
========================================================================== */
/* ==========================================================================
Bootstrap - Pagination
========================================================================== */
/* ==========================================================================
Bootstrap - Spacing
========================================================================== */
/* ==========================================================================
Bootstrap - Z-index
========================================================================== */
/* ==========================================================================
Bootstrap - Cards
========================================================================== */
/* ==========================================================================
Debug
========================================================================== */
footer::after {
  background-color: #dc3545;
  bottom: 0;
  content: "XS: 320px - 575px";
  padding: 0.5rem 1rem;
  position: fixed;
  right: 0;
  z-index: 530;
}

@media (min-width: 576px) {
  footer::after {
    content: "SM: 576px - 767px";
  }
}
@media (min-width: 768px) {
  footer::after {
    content: "MD: 768px - 991px";
  }
}
@media (min-width: 992px) {
  footer::after {
    content: "LG: 992px - 1199px";
  }
}
@media (min-width: 1200px) {
  footer::after {
    content: "XL: 1200px - 1499px";
  }
}
@media (min-width: 1500px) {
  footer::after {
    content: "XXL: 1500px and up";
  }
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzL2RlYnVnLmNzcyIsIm1hcHBpbmdzIjoiQUFBQTs7NEVBQUE7QUNBQTs7NEVBQUE7QUFpRUE7OzRFQUFBO0FBTUE7OzRFQUFBO0FBZUE7OzRFQUFBO0FBTUE7OzRFQUFBO0FBeUJBOzs0RUFBQTtBQUtBOzs0RUFBQTtBQU1BOzs0RUFBQTtBQW1CQTs7NEVBQUE7QUFPQTs7NEVBQUE7QUFhQTs7NEVBQUE7QUFZQTs7NEVBQUE7QUFpQkE7OzRFQUFBO0FBWUE7OzRFQUFBO0FBMERBOzs0RUFBQTtBQVdBOzs0RUFBQTtBRDFRQTs7NEVBQUE7QUFJRTtFQUNFLHlCQ1VvQztFRFRwQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsWUN5UG9DO0FEak54Qzs7QUVDSTtFRm5DQTtJQUNFO0VBc0NKO0FBQ0Y7QUVMSTtFRjNCQTtJQUNFO0VBbUNKO0FBQ0Y7QUVWSTtFRm5CQTtJQUNFO0VBZ0NKO0FBQ0Y7QUVmSTtFRlhBO0lBQ0U7RUE2Qko7QUFDRjtBRXBCSTtFRkhBO0lBQ0U7RUEwQko7QUFDRixDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Njc3MvZGVidWcuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Nzcy9fdmFyaWFibGVzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fYnJlYWtwb2ludHMuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuSW1wb3J0IEJvb3RzdHJhcCBCcmVha3BvaW50c1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8vIEJsYWNrYm94XG5AaW1wb3J0IFwiX3ZhcmlhYmxlc1wiO1xuXG4vLyBDb25maWd1cmF0aW9uXG5AaW1wb3J0IFwifmJvb3RzdHJhcC9zY3NzL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIn5ib290c3RyYXAvc2Nzcy92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJ+Ym9vdHN0cmFwL3Njc3MvbWl4aW5zXCI7XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5EZWJ1Z1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbmZvb3RlciB7XG4gICY6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFuZ2VyO1xuICAgIGJvdHRvbTogMDtcbiAgICBjb250ZW50OiBcIlhTOiAzMjBweCAtIDU3NXB4XCI7XG4gICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6ICR6aW5kZXgtZml4ZWQ7XG4gIH1cbn1cblxuQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChzbSkge1xuICBmb290ZXIge1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiU006IDU3NnB4IC0gNzY3cHhcIjtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChtZCkge1xuICBmb290ZXIge1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiTUQ6IDc2OHB4IC0gOTkxcHhcIjtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChsZykge1xuICBmb290ZXIge1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiTEc6IDk5MnB4IC0gMTE5OXB4XCI7XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoeGwpIHtcbiAgZm9vdGVyIHtcbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlhMOiAxMjAwcHggLSAxNDk5cHhcIjtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCh4eGwpIHtcbiAgZm9vdGVyIHtcbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlhYTDogMTUwMHB4IGFuZCB1cFwiO1xuICAgIH1cbiAgfVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkNvbG9ycyAtIE11c3QgYmUgbG9hZGVkIGZpcnN0XG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLy8gRW5vUm0gQ29sb3JzXG4kdGhlbWUtcHJpbWFyeTogICAgICAgICAgICAgICAgICAgICAgICAgI2VjZDdhMztcbiR0aGVtZS1zZWNvbmRhcnk6ICAgICAgICAgICAgICAgICAgICAgICAjMzgyZjJkO1xuJHRoZW1lLXRlcnRpYXJ5OiAgICAgICAgICAgICAgICAgICAgICAgICNiZmUxZGI7XG5cbi8vIEJvb3RzdHJhcCBCbGFjay9XaGl0ZVxuJHdoaXRlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNmZmY7XG4kZ3JheS0xMDA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2Y4ZjlmYTtcbiRncmF5LTIwMDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjZTllY2VmO1xuJGdyYXktMzAwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNkZWUyZTY7XG4kZ3JheS00MDA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2NlZDRkYTtcbiRncmF5LTUwMDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjYWRiNWJkO1xuJGdyYXktNjAwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICM2Yzc1N2Q7XG4kZ3JheS03MDA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzQ5NTA1NztcbiRncmF5LTgwMDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjMzQzYTQwO1xuJGdyYXktOTAwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMyMTI1Mjk7XG4kYmxhY2s6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzAwMDtcblxuLy8gQm9vdHN0cmFwIENvbG9yc1xuJGJsdWU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMwZDZlZmQ7XG4kaW5kaWdvOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzY2MTBmMjtcbiRwdXJwbGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjNmY0MmMxO1xuJHBpbms6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNkNjMzODQ7XG4kcmVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2RjMzU0NTtcbiRvcmFuZ2U6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjZmQ3ZTE0O1xuJHllbGxvdzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNmZmMxMDc7XG4kZ3JlZW46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzE5ODc1NDtcbiR0ZWFsOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjMjBjOTk3O1xuJGN5YW46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMwZGNhZjA7XG5cbi8vIEJvb3RzdHJhcCBDb2xvcnMgVmFyaWFibGVzXG4kZGFuZ2VyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJlZDtcbiRkYXJrOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ3JheS05MDA7XG4kaW5mbzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGN5YW47XG4kbGlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdyYXktMTAwO1xuJHByaW1hcnk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRibHVlO1xuJHNlY29uZGFyeTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICRncmF5LTYwMDtcbiRzdWNjZXNzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ3JlZW47XG4kd2FybmluZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHllbGxvdztcblxuLy8gVGhlbWUgY29sb3JzXG4kdGhlbWUtY29sb3JzOiAoXG4gIFwiZGFuZ2VyXCI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZGFuZ2VyLFxuICBcImRhcmtcIjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRhcmssXG4gIFwiaW5mb1wiOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW5mbyxcbiAgXCJsaWdodFwiOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaWdodCxcbiAgXCJwcmltYXJ5XCI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwcmltYXJ5LFxuICBcInNlY29uZGFyeVwiOiAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlY29uZGFyeSxcbiAgXCJzdWNjZXNzXCI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzdWNjZXNzLFxuICBcIndhcm5pbmdcIjogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHdhcm5pbmdcbik7XG5cbi8vIEN1c3RvbSBjb2xvcnNcbiRjdXN0b20tY29sb3JzOiAoXG4gIFwidGhlbWUtcHJpbWFyeVwiOiAgICAgICAgICAgICAgICAgICAgICAkdGhlbWUtcHJpbWFyeSxcbiAgXCJ0aGVtZS1zZWNvbmRhcnlcIjogICAgICAgICAgICAgICAgICAgICR0aGVtZS1zZWNvbmRhcnksXG4gIFwidGhlbWUtdGVydGlhcnlcIjogICAgICAgICAgICAgICAgICAgICAkdGhlbWUtdGVydGlhcnlcbik7XG5cbi8vIE1lcmdlIHRoZSBtYXBzXG4kdGhlbWUtY29sb3JzOiBtYXAtbWVyZ2UoJHRoZW1lLWNvbG9ycywgJGN1c3RvbS1jb2xvcnMpO1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuRW5vUm0gLSBIZWFkZXJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4kaGVhZGVyLWhlaWdodC14czogNzBweDtcbiRoZWFkZXItaGVpZ2h0LWxnOiA5MHB4O1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuQm9vdHN0cmFwIC0gQnJlYWRjcnVtYlxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8vICRicmVhZGNydW1iLWFjdGl2ZS1jb2xvcjogICAgICAgICAgICAgICAkZ3JheS02MDA7XG4vLyAkYnJlYWRjcnVtYi1iZzogICAgICAgICAgICAgICAgICAgICAgICAgbnVsbDtcbi8vICRicmVhZGNydW1iLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICBudWxsO1xuLy8gJGJyZWFkY3J1bWItZGl2aWRlci1jb2xvcjogICAgICAgICAgICAgICRncmF5LTYwMDtcbi8vICRicmVhZGNydW1iLWRpdmlkZXItZmxpcHBlZDogICAgICAgICAgICAkYnJlYWRjcnVtYi1kaXZpZGVyO1xuJGJyZWFkY3J1bWItZGl2aWRlcjogICAgICAgICAgICAgICAgICAgIHF1b3RlKFwi4oC6XCIpO1xuLy8gJGJyZWFkY3J1bWItZm9udC1zaXplOiAgICAgICAgICAgICAgICAgIG51bGw7XG4vLyAkYnJlYWRjcnVtYi1pdGVtLXBhZGRpbmcteDogICAgICAgICAgICAgMC41cmVtO1xuJGJyZWFkY3J1bWItbWFyZ2luLWJvdHRvbTogICAgICAgICAgICAgIDA7XG4vLyAkYnJlYWRjcnVtYi1wYWRkaW5nLXg6ICAgICAgICAgICAgICAgICAgMDtcbi8vICRicmVhZGNydW1iLXBhZGRpbmcteTogICAgICAgICAgICAgICAgICAwO1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuQm9vdHN0cmFwIC0gQm9keVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8vICRib2R5LWJnOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhlbWUtZ3JheS0xMDA7XG4vLyAkYm9keS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHdoaXRlO1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuQm9vdHN0cmFwIC0gQnV0dG9uc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8vIERlZmF1bHRcbi8vICRidG4tYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAgICAgICAkYm9yZGVyLXJhZGl1cztcbi8vICRidG4tYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLWJvcmRlci13aWR0aDtcbi8vICRidG4tZm9udC1mYW1pbHk6ICAgICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLWZvbnQtZmFtaWx5O1xuLy8gJGJ0bi1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICRpbnB1dC1idG4tZm9udC1zaXplO1xuLy8gJGJ0bi1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICAgICAgICRmb250LXdlaWdodC1ub3JtYWw7XG4vLyAkYnRuLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgJGlucHV0LWJ0bi1saW5lLWhlaWdodDtcbi8vICRidG4tcGFkZGluZy14OiAgICAgICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLXBhZGRpbmcteDtcbi8vICRidG4tcGFkZGluZy15OiAgICAgICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLXBhZGRpbmcteTtcblxuLy8gTGFyZ2Vcbi8vICRidG4tYm9yZGVyLXJhZGl1cy1sZzogICAgICAgICAgICAgICAgICAkYm9yZGVyLXJhZGl1cy1sZztcbi8vICRidG4tZm9udC1zaXplLWxnOiAgICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLWZvbnQtc2l6ZS1sZztcbi8vICRidG4tcGFkZGluZy14LWxnOiAgICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLXBhZGRpbmcteC1sZztcbi8vICRidG4tcGFkZGluZy15LWxnOiAgICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLXBhZGRpbmcteS1sZztcblxuLy8gU21hbGxcbi8vICRidG4tYm9yZGVyLXJhZGl1cy1zbTogICAgICAgICAgICAgICAgICAkYm9yZGVyLXJhZGl1cy1zbTtcbi8vICRidG4tZm9udC1zaXplLXNtOiAgICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLWZvbnQtc2l6ZS1zbTtcbi8vICRidG4tcGFkZGluZy14LXNtOiAgICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLXBhZGRpbmcteC1zbTtcbi8vICRidG4tcGFkZGluZy15LXNtOiAgICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLXBhZGRpbmcteS1zbTtcblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkJvb3RzdHJhcCAtIENhcmRzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLy8gJGNhcmQtYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAgICAgIDA7XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5Cb290c3RyYXAgLSBEcm9wZG93bnNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4kZHJvcGRvd24tYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgJGdyYXktNDAwO1xuJGRyb3Bkb3duLWxpbmstYWN0aXZlLWJnOiAgICAgICAgICAgICAgICR0aGVtZS1wcmltYXJ5O1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuQm9vdHN0cmFwIC0gRW5hYmxlIG9wdGlvbnNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4kZW5hYmxlLWNhcmV0OiAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZTtcbiRlbmFibGUtcm91bmRlZDogICAgICAgICAgICAgICAgICAgICAgICB0cnVlO1xuJGVuYWJsZS1zaGFkb3dzOiAgICAgICAgICAgICAgICAgICAgICAgIHRydWU7XG4kZW5hYmxlLWdyYWRpZW50czogICAgICAgICAgICAgICAgICAgICAgZmFsc2U7XG4kZW5hYmxlLXRyYW5zaXRpb25zOiAgICAgICAgICAgICAgICAgICAgdHJ1ZTtcbiRlbmFibGUtcmVkdWNlZC1tb3Rpb246ICAgICAgICAgICAgICAgICB0cnVlO1xuJGVuYWJsZS1zbW9vdGgtc2Nyb2xsOiAgICAgICAgICAgICAgICAgIHRydWU7XG4kZW5hYmxlLWdyaWQtY2xhc3NlczogICAgICAgICAgICAgICAgICAgdHJ1ZTtcbiRlbmFibGUtY3NzZ3JpZDogICAgICAgICAgICAgICAgICAgICAgICBmYWxzZTtcbiRlbmFibGUtYnV0dG9uLXBvaW50ZXJzOiAgICAgICAgICAgICAgICB0cnVlO1xuJGVuYWJsZS1yZnM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWU7XG4kZW5hYmxlLXZhbGlkYXRpb24taWNvbnM6ICAgICAgICAgICAgICAgdHJ1ZTtcbiRlbmFibGUtbmVnYXRpdmUtbWFyZ2luczogICAgICAgICAgICAgICB0cnVlO1xuJGVuYWJsZS1kZXByZWNhdGlvbi1tZXNzYWdlczogICAgICAgICAgIHRydWU7XG4kZW5hYmxlLWltcG9ydGFudC11dGlsaXRpZXM6ICAgICAgICAgICAgdHJ1ZTtcblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkJvb3RzdHJhcCAtIEZvbnRzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuJGZvbnQtZmFtaWx5LTE6ICAgICAgICAgICAgICAgICAgICAgICAgIFwiT3BlbiBTYW5zXCIsIHNhbnMtc2VyaWY7XG4kZm9udC1mYW1pbHktMjogICAgICAgICAgICAgICAgICAgICAgICAgXCJSb2JvdG9cIiwgc2Fucy1zZXJpZjtcbiRmb250LWZhbWlseS1iYXNlOiAgICAgICAgICAgICAgICAgICAgICAkZm9udC1mYW1pbHktMTtcblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkJvb3RzdHJhcCAtIEdyaWQgQnJlYWtwb2ludHNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4kZ3JpZC1icmVha3BvaW50czogKFxuICB4czogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsXG4gIHNtOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTc2cHgsXG4gIG1kOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNzY4cHgsXG4gIGxnOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOTkycHgsXG4gIHhsOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIwMHB4LFxuICB4eGw6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1MDBweFxuKTtcbiRncmlkLWd1dHRlci13aWR0aDogICAgICAgICAgICAgICAgICAgICAxLjg3NXJlbTtcblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkJvb3RzdHJhcCAtIEdyaWQgQ29udGFpbmVyc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbiRjb250YWluZXItbWF4LXdpZHRoczogKFxuICB4czogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ4MHB4LFxuICBzbTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDU0MHB4LFxuICBtZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcyMHB4LFxuICBsZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDk2MHB4LFxuICB4bDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExNDBweCxcbiAgeHhsOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNDQwcHhcbik7XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5Cb290c3RyYXAgLSBPZmZjYW52YXNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vLyAkb2ZmY2FudmFzLWJhY2tkcm9wLWJnOiAgICAgICAgICAgICAgICAgJG1vZGFsLWJhY2tkcm9wLWJnO1xuLy8gJG9mZmNhbnZhcy1iYWNrZHJvcC1vcGFjaXR5OiAgICAgICAgICAgICRtb2RhbC1iYWNrZHJvcC1vcGFjaXR5O1xuLy8gJG9mZmNhbnZhcy1iZy1jb2xvcjogICAgICAgICAgICAgICAgICAgICRtb2RhbC1jb250ZW50LWJnO1xuLy8gJG9mZmNhbnZhcy1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgICRtb2RhbC1jb250ZW50LWJvcmRlci1jb2xvcjtcbi8vICRvZmZjYW52YXMtYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAkbW9kYWwtY29udGVudC1ib3JkZXItd2lkdGg7XG4kb2ZmY2FudmFzLWJveC1zaGFkb3c6ICAgICAgICAgICAgICAgICAgMDtcbi8vICRvZmZjYW52YXMtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAkbW9kYWwtY29udGVudC1jb2xvcjtcbi8vICRvZmZjYW52YXMtaG9yaXpvbnRhbC13aWR0aDogICAgICAgICAgICA0MDBweDtcbi8vICRvZmZjYW52YXMtcGFkZGluZy14OiAgICAgICAgICAgICAgICAgICAkbW9kYWwtaW5uZXItcGFkZGluZztcbi8vICRvZmZjYW52YXMtcGFkZGluZy15OiAgICAgICAgICAgICAgICAgICAkbW9kYWwtaW5uZXItcGFkZGluZztcbi8vICRvZmZjYW52YXMtdGl0bGUtbGluZS1oZWlnaHQ6ICAgICAgICAgICAkbW9kYWwtdGl0bGUtbGluZS1oZWlnaHQ7XG4vLyAkb2ZmY2FudmFzLXRyYW5zaXRpb24tZHVyYXRpb246ICAgICAgICAgLjNzO1xuLy8gJG9mZmNhbnZhcy12ZXJ0aWNhbC1oZWlnaHQ6ICAgICAgICAgICAgIDMwdmg7XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5Cb290c3RyYXAgLSBQYWdpbmF0aW9uXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLy8gRGVmYXVsdFxuJHBhZ2luYXRpb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICR0aGVtZS1wcmltYXJ5O1xuXG4vLyBBY3RpdmVcbiRwYWdpbmF0aW9uLWFjdGl2ZS1iZzogICAgICAgICAgICAgICAgICAkdGhlbWUtcHJpbWFyeTtcblxuLy8gSG92ZXJcbiRwYWdpbmF0aW9uLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAkdGhlbWUtcHJpbWFyeTtcblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkJvb3RzdHJhcCAtIFNwYWNpbmdcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4kc3BhY2VyOiAwLjYyNXJlbTtcbiRzcGFjZXJzOiAoXG4gIDA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCxcbiAgMTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3BhY2VyICogMC4yNSxcbiAgMjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3BhY2VyICogMC41LFxuICAzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcGFjZXIsXG4gIDQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNwYWNlciAqIDEuNSxcbiAgNTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3BhY2VyICogM1xuKTsgLy8gQm9vdHN0cmFwXG5cbiRzcGFjZXJzLWN1c3RvbTogKFxuICAxMDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcGFjZXIsICAgICAgICAvLyAxMHB4XG4gIC8vIDE1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNwYWNlciAqIDEuNSwgIC8vIDE1cHhcbiAgMjA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3BhY2VyICogMiwgICAgLy8gMjBweFxuICAyNTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcGFjZXIgKiAyLjUsICAvLyAyNXB4XG4gIDMwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNwYWNlciAqIDMsICAgIC8vIDMwcHhcbiAgLy8gMzU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3BhY2VyICogMy41LCAgLy8gMzVweFxuICA0MDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcGFjZXIgKiA0LCAgICAvLyA0MHB4XG4gIC8vIDQ1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNwYWNlciAqIDQuNSwgIC8vIDQ1cHhcbiAgNTA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3BhY2VyICogNSwgICAgLy8gNTBweFxuICAvLyA1NTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcGFjZXIgKiA1LjUsICAvLyA1NXB4XG4gIC8vIDYwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNwYWNlciAqIDYsICAgIC8vIDYwcHhcbiAgLy8gNjU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3BhY2VyICogNi41LCAgLy8gNjVweFxuICAvLyA3MDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcGFjZXIgKiA3LCAgICAvLyA3MHB4XG4gIC8vIDc1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNwYWNlciAqIDcuNSwgIC8vIDc1cHhcbiAgODA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3BhY2VyICogOCwgICAgLy8gODBweFxuICAvLyA4NTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcGFjZXIgKiA4LjUsICAvLyA4NXB4XG4gIC8vIDkwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNwYWNlciAqIDksICAgIC8vIDkwcHhcbiAgLy8gOTU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3BhY2VyICogOS41LCAgLy8gOTVweFxuICAxMDA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcGFjZXIgKiAxMCwgICAvLyAxMDBweFxuICAvLyAxMDU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcGFjZXIgKiAxMC41LCAvLyAxMDVweFxuICAvLyAxMTA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcGFjZXIgKiAxMSwgICAvLyAxMTBweFxuICAvLyAxMTU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcGFjZXIgKiAxMS41LCAvLyAxMTVweFxuICAvLyAxMjA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcGFjZXIgKiAxMiwgICAvLyAxMjBweFxuICAvLyAxMjU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcGFjZXIgKiAxMi41LCAvLyAxMjVweFxuICAvLyAxMzA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcGFjZXIgKiAxMywgICAvLyAxMzBweFxuICAvLyAxMzU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcGFjZXIgKiAxMy41LCAvLyAxMzVweFxuICAvLyAxNDA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcGFjZXIgKiAxNCwgICAvLyAxNDBweFxuICAvLyAxNDU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcGFjZXIgKiAxNC41LCAvLyAxNDVweFxuICAvLyAxNTA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcGFjZXIgKiAxNSwgICAvLyAxNTBweFxuICAvLyAxNTU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcGFjZXIgKiAxNS41LCAvLyAxNTVweFxuICAvLyAxNjA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcGFjZXIgKiAxNiwgICAvLyAxNjBweFxuICAvLyAxNjU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcGFjZXIgKiAxNi41LCAvLyAxNjVweFxuICAvLyAxNzA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcGFjZXIgKiAxNywgICAvLyAxNzBweFxuICAvLyAxNzU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcGFjZXIgKiAxNy41LCAvLyAxNzVweFxuICAvLyAxODA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcGFjZXIgKiAxOCwgICAvLyAxODBweFxuICAvLyAxODU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcGFjZXIgKiAxOC41LCAvLyAxODVweFxuICAvLyAxOTA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcGFjZXIgKiAxOSwgICAvLyAxOTBweFxuICAvLyAxOTU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcGFjZXIgKiAxOS41LCAvLyAxOTVweFxuICAvLyAyMDA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcGFjZXIgKiAyMCAvLyAyMDBweFxuKTsgIC8vIEVub1JtXG5cbi8vIE1lcmdlIHRoZSBtYXBzXG4kc3BhY2VyczogbWFwLW1lcmdlKCRzcGFjZXJzLCAkc3BhY2Vycy1jdXN0b20pO1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuQm9vdHN0cmFwIC0gWi1pbmRleFxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbiR6aW5kZXgtZHJvcGRvd246ICAgICAgICAgICAgICAgICAgICAgICA1MDA7XG4kemluZGV4LXN0aWNreTogICAgICAgICAgICAgICAgICAgICAgICAgNTIwO1xuJHppbmRleC1maXhlZDogICAgICAgICAgICAgICAgICAgICAgICAgIDUzMDtcbiR6aW5kZXgtbW9kYWwtYmFja2Ryb3A6ICAgICAgICAgICAgICAgICA1NDA7XG4kemluZGV4LW1vZGFsOiAgICAgICAgICAgICAgICAgICAgICAgICAgNTUwO1xuJHppbmRleC1wb3BvdmVyOiAgICAgICAgICAgICAgICAgICAgICAgIDU2MDtcbiR6aW5kZXgtdG9vbHRpcDogICAgICAgICAgICAgICAgICAgICAgICA1NzA7XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5Cb290c3RyYXAgLSBDYXJkc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbiRjYXJkLXNwYWNlci15OiAgICAgICAgICAgICAgICAgICAgIDEuNXJlbTtcbiRjYXJkLXNwYWNlci14OiAgICAgICAgICAgICAgICAgICAgIDEuNXJlbTtcbiRjYXJkLXRpdGxlLWNvbG9yOiAgICAgICAgICAgICAgICAgIG51bGw7XG4kY2FyZC1zdWJ0aXRsZS1jb2xvcjogICAgICAgICAgICAgICBudWxsO1xuJGNhcmQtYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgMXB4O1xuJGNhcmQtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgJHRoZW1lLXByaW1hcnk7XG4kY2FyZC1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgICAwO1xuJGNhcmQtYm94LXNoYWRvdzogICAgICAgICAgICAgICAgICAgbnVsbDtcbiIsIi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXG4vL1xuLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLCBvcmRlciBmcm9tIHNtYWxsIHRvIGxhcmdlOlxuLy9cbi8vICAgICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpXG4vL1xuLy8gVGhlIG1hcCBkZWZpbmVkIGluIHRoZSBgJGdyaWQtYnJlYWtwb2ludHNgIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGFzIHRoZSBgJGJyZWFrcG9pbnRzYCBhcmd1bWVudCBieSBkZWZhdWx0LlxuXG4vLyBOYW1lIG9mIHRoZSBuZXh0IGJyZWFrcG9pbnQsIG9yIG51bGwgZm9yIHRoZSBsYXN0IGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAkYnJlYWtwb2ludC1uYW1lczogKHhzIHNtIG1kIGxnIHhsIHh4bCkpXG4vLyAgICBtZFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cywgJGJyZWFrcG9pbnQtbmFtZXM6IG1hcC1rZXlzKCRicmVha3BvaW50cykpIHtcbiAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XG4gIEBpZiBub3QgJG4ge1xuICAgIEBlcnJvciBcImJyZWFrcG9pbnQgYCN7JG5hbWV9YCBub3QgZm91bmQgaW4gYCN7JGJyZWFrcG9pbnRzfWBcIjtcbiAgfVxuICBAcmV0dXJuIGlmKCRuIDwgbGVuZ3RoKCRicmVha3BvaW50LW5hbWVzKSwgbnRoKCRicmVha3BvaW50LW5hbWVzLCAkbiArIDEpLCBudWxsKTtcbn1cblxuLy8gTWluaW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgc21hbGxlc3QgKGZpcnN0KSBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWluKHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIDU3NnB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgQHJldHVybiBpZigkbWluICE9IDAsICRtaW4sIG51bGwpO1xufVxuXG4vLyBNYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguXG4vLyBUaGUgbWF4aW11bSB2YWx1ZSBpcyByZWR1Y2VkIGJ5IDAuMDJweCB0byB3b3JrIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2Zcbi8vIGBtaW4tYCBhbmQgYG1heC1gIHByZWZpeGVzIGFuZCB2aWV3cG9ydHMgd2l0aCBmcmFjdGlvbmFsIHdpZHRocy5cbi8vIFNlZSBodHRwczovL3d3dy53My5vcmcvVFIvbWVkaWFxdWVyaWVzLTQvI21xLW1pbi1tYXhcbi8vIFVzZXMgMC4wMnB4IHJhdGhlciB0aGFuIDAuMDFweCB0byB3b3JrIGFyb3VuZCBhIGN1cnJlbnQgcm91bmRpbmcgYnVnIGluIFNhZmFyaS5cbi8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MjYxXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1tYXgobWQsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgNzY3Ljk4cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRtYXggYW5kICRtYXggPiAwLCAkbWF4IC0gLjAyLCBudWxsKTtcbn1cblxuLy8gUmV0dXJucyBhIGJsYW5rIHN0cmluZyBpZiBzbWFsbGVzdCBicmVha3BvaW50LCBvdGhlcndpc2UgcmV0dXJucyB0aGUgbmFtZSB3aXRoIGEgZGFzaCBpbiBmcm9udC5cbi8vIFVzZWZ1bCBmb3IgbWFraW5nIHJlc3BvbnNpdmUgdXRpbGl0aWVzLlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoeHMsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgXCJcIiAgKFJldHVybnMgYSBibGFuayBzdHJpbmcpXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIFwiLXNtXCJcbkBmdW5jdGlvbiBicmVha3BvaW50LWluZml4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEByZXR1cm4gaWYoYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cykgPT0gbnVsbCwgXCJcIiwgXCItI3skbmFtZX1cIik7XG59XG5cbi8vIE1lZGlhIG9mIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgd2lkZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtaW4ge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIG9mIGF0IG1vc3QgdGhlIG1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBsYXJnZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtYXgge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIHRoYXQgc3BhbnMgbXVsdGlwbGUgYnJlYWtwb2ludCB3aWR0aHMuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgYmV0d2VlbiB0aGUgbWluIGFuZCBtYXggYnJlYWtwb2ludHNcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWJldHdlZW4oJGxvd2VyLCAkdXBwZXIsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJGxvd2VyLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkdXBwZXIsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGxvd2VyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkdXBwZXIsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIE1lZGlhIGJldHdlZW4gdGhlIGJyZWFrcG9pbnQncyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cbi8vIE5vIG1pbmltdW0gZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LCBhbmQgbm8gbWF4aW11bSBmb3IgdGhlIGxhcmdlc3Qgb25lLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IG9ubHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQsIG5vdCB2aWV3cG9ydHMgYW55IHdpZGVyIG9yIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiAgYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRuZXh0OiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRtYXg6ICBicmVha3BvaW50LW1heCgkbmV4dCwgJGJyZWFrcG9pbnRzKTtcblxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJG5leHQsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=*/