body.traffic {
  --special-map-pin-colour: #ff6a00;
  --map-pin-text-color: #ff6a00;
  --primary: #1e1c1c;
  --secondary: #ff6a00;
  --secondary-light: #da8b0f;
  --footer-br-colour: var(--secondary);
  --spacer-line-colour: var(--secondary);
  --tagline-icon-colour: var(--secondary);
  --back-to-top-background: var(--secondary);
  --main-max-width: 1060px;
}
body.traffic #righton-blackburns-logo[data-type=traffic] {
  --logo-underline-colour: #df3035;
}
body.traffic service-centre-finder {
  background-color: var(--primary);
}
body.traffic service-centre-finder ul {
  --list-style-colour: var(--secondary);
}
body.traffic service-centre-finder .text {
  color: var(--secondary);
}
body.traffic .contact-details svg {
  fill: #ff6a00;
}
body.traffic #anchors-bar a:not(.current) {
  color: #1e1c1c;
}
body.traffic.service-centres header.header > h1, body.traffic#contact header.header > h1 {
  color: #1e1c1c;
}
body.traffic.service-centres header.header > h2, body.traffic#contact header.header > h2 {
  color: #ff6a00;
}
body.traffic.service-centres .text h2, body.traffic#contact .text h2 {
  color: #ff6a00;
}
body.traffic.service-centres main h3,
body.traffic.service-centres article-list .heading,
body.traffic.service-centres article-list h4, body.traffic#contact main h3,
body.traffic#contact article-list .heading,
body.traffic#contact article-list h4 {
  color: #1e1c1c;
}
body.traffic.service-centres form[data-freeform] h2, body.traffic#contact form[data-freeform] h2 {
  color: #1e1c1c;
}
body.traffic .button.red {
  --background-colour: var(--secondary);
  --font-colour: white;
  --border-colour: transparent;
}
body.traffic .content-block.themed.black .text :is(h2, h3) {
  color: white;
}
body.traffic .content-block.themed.black .text :is(h2, h3) span {
  display: block;
  color: var(--secondary);
}
body.traffic .content-block:not(.themed) .text h3 {
  --heading-colour: var(--secondary);
}
body.traffic .article.bg-orange .button.red {
  --background-colour: #1e1c1c;
  --font-colour: white;
  --border-colour: transparent;
}
body.traffic navigation-bar {
  background-color: #1e1c1c;
}
body.traffic service-centre-finder ul > li::before,
body.traffic .text ul > li::before {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle fill='%23FF6A00' cx='8' cy='8' r='8'/%3E%3Cpath fill='none' stroke='white' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10' d='M3.5 8.4l2.7 2.7 6.3-6.3'/%3E%3C/svg%3E");
}
body.traffic table.table .tick.symbol {
  --fill: #ff6a00;
}

side-bar .sidebar-logos {
  order: 1000;
}

body.traffic.traffic-product #breadcrumbs-bar {
  background-color: #333236;
}
body.traffic.traffic-product #anchors-bar {
  background-color: #1e1c1c;
}
body.traffic.traffic-product #anchors-bar a:not(.current) {
  color: white;
}
body.traffic.traffic-product #anchors-bar::before {
  border-bottom: none;
}

body.traffic.traffic-landing navigation-bar {
  background-color: transparent;
}
body.traffic.traffic-landing background-image {
  grid-row: 1/span 2;
}

:is(body.traffic.traffic-landing, body.traffic.traffic-product) {
  --heading-colour: var(--primary);
}
:is(body.traffic.traffic-landing, body.traffic.traffic-product) #overview {
  --heading-colour: var(--secondary);
}
:is(body.traffic.traffic-landing, body.traffic.traffic-product) background-image.behind-header::before {
  content: "";
  inset: 0;
  position: absolute;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.2));
  z-index: 1;
}

.traffic\:top-level-links-container {
  display: flex;
  gap: clamp(var(--gutter1), 4vw, var(--gutter2));
  flex-wrap: wrap;
  width: 100%;
  justify-content: center;
}
.traffic\:top-level-links-container .traffic\:top-level-link {
  flex: 1 1 300px;
  display: grid;
  place-content: center;
  padding: clamp(var(--spacer1), 15vw, var(--spacer2)) var(--gutter1);
  border-radius: 1rem;
  position: relative;
  isolation: isolate;
  outline: 1px solid transparent;
  transition: outline 0.2s cubic-bezier(0.42, 0, 0.58, 1);
  max-width: 400px;
}
.traffic\:top-level-links-container .traffic\:top-level-link .button {
  text-align: center;
  position: initial;
  white-space: nowrap;
  font-size: small;
}
.traffic\:top-level-links-container .traffic\:top-level-link .button::after {
  content: "";
  position: absolute;
  inset: 0;
}
.traffic\:top-level-links-container .traffic\:top-level-link:hover {
  outline-color: var(--secondary);
}
.traffic\:top-level-links-container .traffic\:top-level-link .image {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  z-index: -1;
}
.traffic\:top-level-links-container .traffic\:top-level-link .image::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.5);
}

body#road-traffic-products {
  --background-theme-one: rgba(0, 0, 0, 0.4);
  --main-max-width: 100%;
}
body#road-traffic-products header.header {
  display: flex;
  flex-direction: column;
  justify-content: center;
  place-content: center;
  place-items: center;
  align-items: center;
  text-align: center;
  width: 100%;
  max-width: var(--breakpoint-large);
  align-self: center;
  justify-self: center;
  gap: var(--spacer0);
  padding-bottom: var(--spacer2);
}
body#road-traffic-products header.header h1 {
  text-align: center;
  order: 1;
}
body#road-traffic-products header.header h2 {
  order: 3;
  margin-top: 0;
  font-size: 1.6rem;
}
body#road-traffic-products header.header .traffic\:top-level-links-container {
  order: 4;
  padding-block: var(--spacer1);
}
body#road-traffic-products header.header tag-line {
  order: 2;
}
body#road-traffic-products header.header ~ main {
  margin-top: var(--spacer1);
}
body#road-traffic-products header.header .introduction,
body#road-traffic-products header.header h2 {
  text-wrap: balance;
  max-width: 900px;
}
body#road-traffic-products header.header .introduction,
body#road-traffic-products header.header button-container {
  margin-top: 0;
  order: 5;
  justify-content: center;
}
body#road-traffic-products background-video.behind-header {
  --row-background: 1 / span 2;
}
body#road-traffic-products:has(main > section:first-child [data-blocks=customArticles]:first-child) main [data-blocks=customArticles] {
  padding-top: var(--spacer1);
}
body#road-traffic-products:has(main > section:first-child [data-blocks=customArticles]:first-child) .side-by-side-components.blowout {
  padding-top: 0;
}

.traffic-landing aside.list-dropdowns {
  background: #ff6a00;
  border: none;
  --border-colour: rgba(255, 255, 255, 0.3);
}
.traffic-landing aside.list-dropdowns :is(h1, h2, h3, h4, h5, h6),
.traffic-landing aside.list-dropdowns summary,
.traffic-landing aside.list-dropdowns .text {
  color: white !important;
}
.traffic-landing aside.list-dropdowns .text {
  margin-block: 0.5em;
}

.traffic-product aside.list-dropdowns [for*=show-more] {
  display: none;
}
.traffic-product aside.list-dropdowns .hidden-dropdowns {
  height: auto !important;
  overflow: visible !important;
}
.traffic-product aside.list-dropdowns .hidden-dropdowns::after {
  content: initial !important;
}
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhZ2VzL3RyYWZmaWMuc2NzcyIsInBhZ2VzL3RyYWZmaWMuY3NzIiwiX3ZhcmlhYmxlcy9jb2xvdXJzLnNjc3MiLCJfZWxlbWVudHMvbGlzdC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvY3JlYXRlL191bml0cy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0VBS0UsaUNBQUE7RUFDQSw2QkFBQTtFQUVBLGtCQUFBO0VBQ0Esb0JBQUE7RUFDQSwwQkFBQTtFQUNBLG9DQUFBO0VBQ0Esc0NBQUE7RUFDQSx1Q0FBQTtFQUNBLDBDQUFBO0VBWUEsd0JBQUE7QUNqQkY7QURSRTtFQUNFLGdDQUFBO0FDVUo7QURJRTtFQUNFLGdDQUFBO0FDRko7QURHSTtFQUNFLHFDQUFBO0FDRE47QURHSTtFQUNFLHVCQUFBO0FDRE47QURPRTtFQUNFLGFFSUs7QURUVDtBRFFFO0VBQ0UsY0VFSTtBRFJSO0FEWU07RUFDRSxjRUxBO0FETFI7QURZTTtFQUNFLGNFVkM7QURBVDtBRGNNO0VBQ0UsY0VmQztBREdUO0FEZUk7Ozs7O0VBR0UsY0VuQkU7QURRUjtBRGNNO0VBQ0UsY0V2QkE7QURXUjtBRGtCSTtFQUNFLHFDQUFBO0VBQ0Esb0JBQUE7RUFDQSw0QkFBQTtBQ2hCTjtBRHVCUTtFQUNFLFlBQUE7QUNyQlY7QURzQlU7RUFDRSxjQUFBO0VBQ0EsdUJBQUE7QUNwQlo7QUQwQk07RUFDRSxrQ0FBQTtBQ3hCUjtBRDZCRTtFQUNFLDRCQUFBO0VBQ0Esb0JBQUE7RUFDQSw0QkFBQTtBQzNCSjtBRDhCRTtFQUNFLHlCRTlESTtBRGtDUjtBRWxFRTs7RUFRSSwyVEFBQTtBRjhETjtBRGdDSTtFQUNFLGVBQUE7QUM5Qk47O0FEbUNBO0VBQ0UsV0FBQTtBQ2hDRjs7QURvQ0U7RUFDRSx5QkV6Rkk7QUR3RFI7QURvQ0U7RUFDRSx5QkV0Rkk7QURvRFI7QURtQ0k7RUFDRSxZQUFBO0FDakNOO0FEbUNJO0VBQ0UsbUJBQUE7QUNqQ047O0FEc0NFO0VBQ0UsNkJBQUE7QUNuQ0o7QURzQ0U7RUFDRSxrQkFBQTtBQ3BDSjs7QUR3Q0E7RUFDRSxnQ0FBQTtBQ3JDRjtBRHNDRTtFQUNFLGtDQUFBO0FDcENKO0FEdUNJO0VBQ0UsV0FBQTtFQUNBLFFBQUE7RUFDQSxrQkFBQTtFQUNBLDhFQUFBO0VBQ0EsVUFBQTtBQ3JDTjs7QUQwQ0E7RUFDRSxhQUFBO0VBQ0EsK0NBQUE7RUFDQSxlQUFBO0VBQ0EsV0FBQTtFQUNBLHVCQUFBO0FDdkNGO0FEd0NFO0VBQ0UsZUFBQTtFQUNBLGFBQUE7RUFDQSxxQkFBQTtFQUNBLG1FQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsOEJBQUE7RUFDQSx1REFBQTtFQUNBLGdCQUFBO0FDdENKO0FEdUNJO0VBQ0Usa0JBQUE7RUFDQSxpQkFBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7QUNyQ047QURzQ007RUFDRSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxRQUFBO0FDcENSO0FEdUNJO0VBQ0UsK0JBQUE7QUNyQ047QUR1Q0k7RUFDRSxrQkFBQTtFQUNBLFFBQUE7RUFDQSxzQkFBQTtFQUNBLFdBQUE7QUNyQ047QURzQ007RUFDRSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxRQUFBO0VBQ0Esb0NBQUE7QUNwQ1I7O0FEMENBO0VBQ0UsMENBQUE7RUFDQSxzQkFBQTtBQ3ZDRjtBRHdDRTtFQUNFLGFBQUE7RUFDQSxzQkFBQTtFQUNBLHVCQUFBO0VBQ0EscUJBQUE7RUFDQSxtQkFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxXQUFBO0VBQ0Esa0NBQUE7RUFDQSxrQkFBQTtFQUNBLG9CQUFBO0VBQ0EsbUJJbkhPO0VKb0hQLDhCSWxITztBSDRFWDtBRHVDSTtFQUNFLGtCQUFBO0VBQ0EsUUFBQTtBQ3JDTjtBRHVDSTtFQUNFLFFBQUE7RUFDQSxhQUFBO0VBQ0EsaUJBQUE7QUNyQ047QUR1Q0k7RUFDRSxRQUFBO0VBQ0EsNkJJL0hLO0FIMEZYO0FEdUNJO0VBQ0UsUUFBQTtBQ3JDTjtBRHVDSTtFQUNFLDBCSXJJSztBSGdHWDtBRHVDSTs7RUFFRSxrQkFBQTtFQUNBLGdCQUFBO0FDckNOO0FEd0NJOztFQUVFLGFBQUE7RUFDQSxRQUFBO0VBQ0EsdUJBQUE7QUN0Q047QUQwQ0U7RUFDRSw0QkFBQTtBQ3hDSjtBRDRDSTtFQUtFLDJCSS9KSztBSGlIWDtBRGdESTtFQUNFLGNBQUE7QUM5Q047O0FEc0RBO0VBQ0UsbUJBQUE7RUFDQSxZQUFBO0VBQ0EseUNBQUE7QUNuREY7QURxREU7OztFQUdFLHVCQUFBO0FDbkRKO0FEcURFO0VBQ0UsbUJBQUE7QUNuREo7O0FEd0RFO0VBQ0UsYUFBQTtBQ3JESjtBRHVERTtFQUNFLHVCQUFBO0VBQ0EsNEJBQUE7QUNyREo7QURzREk7RUFDRSwyQkFBQTtBQ3BETiIsImZpbGUiOiJwYWdlcy90cmFmZmljLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG5ib2R5LnRyYWZmaWMge1xuICAjcmlnaHRvbi1ibGFja2J1cm5zLWxvZ29bZGF0YS10eXBlPSd0cmFmZmljJ10ge1xuICAgIC0tbG9nby11bmRlcmxpbmUtY29sb3VyOiAjeyRyZWR9O1xuICB9XG5cbiAgLS1zcGVjaWFsLW1hcC1waW4tY29sb3VyOiAjeyRvcmFuZ2V9O1xuICAtLW1hcC1waW4tdGV4dC1jb2xvcjogI3skb3JhbmdlfTtcblxuICAtLXByaW1hcnk6ICMxZTFjMWM7XG4gIC0tc2Vjb25kYXJ5OiAjeyRvcmFuZ2V9O1xuICAtLXNlY29uZGFyeS1saWdodDogI3skb3JhbmdlMn07XG4gIC0tZm9vdGVyLWJyLWNvbG91cjogdmFyKC0tc2Vjb25kYXJ5KTtcbiAgLS1zcGFjZXItbGluZS1jb2xvdXI6IHZhcigtLXNlY29uZGFyeSk7XG4gIC0tdGFnbGluZS1pY29uLWNvbG91cjogdmFyKC0tc2Vjb25kYXJ5KTtcbiAgLS1iYWNrLXRvLXRvcC1iYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnkpO1xuXG4gIHNlcnZpY2UtY2VudHJlLWZpbmRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XG4gICAgdWwge1xuICAgICAgLS1saXN0LXN0eWxlLWNvbG91cjogdmFyKC0tc2Vjb25kYXJ5KTtcbiAgICB9XG4gICAgLnRleHQge1xuICAgICAgY29sb3I6IHZhcigtLXNlY29uZGFyeSk7XG4gICAgfVxuICB9XG5cbiAgLS1tYWluLW1heC13aWR0aDogMTA2MHB4O1xuXG4gIC5jb250YWN0LWRldGFpbHMgc3ZnIHtcbiAgICBmaWxsOiAkb3JhbmdlO1xuICB9XG5cbiAgI2FuY2hvcnMtYmFyIGE6bm90KC5jdXJyZW50KSB7XG4gICAgY29sb3I6ICRibGFjaztcbiAgfVxuXG4gICYuc2VydmljZS1jZW50cmVzLFxuICAmI2NvbnRhY3Qge1xuICAgIGhlYWRlci5oZWFkZXIge1xuICAgICAgPiBoMSB7XG4gICAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICB9XG4gICAgICA+IGgyIHtcbiAgICAgICAgY29sb3I6ICRvcmFuZ2U7XG4gICAgICB9XG4gICAgfVxuICAgIC50ZXh0IHtcbiAgICAgIGgyIHtcbiAgICAgICAgY29sb3I6ICRvcmFuZ2U7XG4gICAgICB9XG4gICAgfVxuICAgIG1haW4gaDMsXG4gICAgYXJ0aWNsZS1saXN0IC5oZWFkaW5nLFxuICAgIGFydGljbGUtbGlzdCBoNCB7XG4gICAgICBjb2xvcjogJGJsYWNrO1xuICAgIH1cbiAgICBmb3JtW2RhdGEtZnJlZWZvcm1dIHtcbiAgICAgIGgyIHtcbiAgICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuYnV0dG9uIHtcbiAgICAmLnJlZCB7XG4gICAgICAtLWJhY2tncm91bmQtY29sb3VyOiB2YXIoLS1zZWNvbmRhcnkpO1xuICAgICAgLS1mb250LWNvbG91cjogd2hpdGU7XG4gICAgICAtLWJvcmRlci1jb2xvdXI6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxuXG4gIC5jb250ZW50LWJsb2NrIHtcbiAgICAmLnRoZW1lZC5ibGFjayB7XG4gICAgICAudGV4dCB7XG4gICAgICAgIDppcyhoMiwgaDMpIHtcbiAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAmOm5vdCgudGhlbWVkKSB7XG4gICAgICAudGV4dCBoMyB7XG4gICAgICAgIC0taGVhZGluZy1jb2xvdXI6IHZhcigtLXNlY29uZGFyeSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmFydGljbGUuYmctb3JhbmdlIC5idXR0b24ucmVkIHtcbiAgICAtLWJhY2tncm91bmQtY29sb3VyOiAjeyRibGFja307XG4gICAgLS1mb250LWNvbG91cjogd2hpdGU7XG4gICAgLS1ib3JkZXItY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIG5hdmlnYXRpb24tYmFyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG4gIH1cbiAgc2VydmljZS1jZW50cmUtZmluZGVyIHVsLFxuICAudGV4dCB1bCB7XG4gICAgQGluY2x1ZGUgbGlzdC1zdHlsZSgkb3JhbmdlLCB3aGl0ZSk7XG4gIH1cblxuICB0YWJsZS50YWJsZSB7XG4gICAgLnRpY2suc3ltYm9sIHtcbiAgICAgIC0tZmlsbDogI3skb3JhbmdlfTtcbiAgICB9XG4gIH1cbn1cblxuc2lkZS1iYXIgLnNpZGViYXItbG9nb3Mge1xuICBvcmRlcjogMTAwMDtcbn1cblxuYm9keS50cmFmZmljLnRyYWZmaWMtcHJvZHVjdCB7XG4gICNicmVhZGNydW1icy1iYXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRncmV5NjtcbiAgfVxuXG4gICNhbmNob3JzLWJhciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuICAgIGE6bm90KC5jdXJyZW50KSB7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxuICAgICY6OmJlZm9yZSB7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIH1cbiAgfVxufVxuYm9keS50cmFmZmljLnRyYWZmaWMtbGFuZGluZyB7XG4gIG5hdmlnYXRpb24tYmFyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIGJhY2tncm91bmQtaW1hZ2Uge1xuICAgIGdyaWQtcm93OiAxIC8gc3BhbiAyO1xuICB9XG59XG5cbjppcyhib2R5LnRyYWZmaWMudHJhZmZpYy1sYW5kaW5nLCBib2R5LnRyYWZmaWMudHJhZmZpYy1wcm9kdWN0KSB7XG4gIC0taGVhZGluZy1jb2xvdXI6IHZhcigtLXByaW1hcnkpO1xuICAjb3ZlcnZpZXcge1xuICAgIC0taGVhZGluZy1jb2xvdXI6IHZhcigtLXNlY29uZGFyeSk7XG4gIH1cbiAgYmFja2dyb3VuZC1pbWFnZSB7XG4gICAgJi5iZWhpbmQtaGVhZGVyOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBpbnNldDogMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoYmxhY2ssIDAuOCksIHJnYmEoYmxhY2ssIDAuMikpO1xuICAgICAgei1pbmRleDogMTtcbiAgICB9XG4gIH1cbn1cblxuLnRyYWZmaWNcXDp0b3AtbGV2ZWwtbGlua3MtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiBjbGFtcCgkZ3V0dGVyLCA0dncsICRndXR0ZXIyKTtcbiAgZmxleC13cmFwOiB3cmFwO1xuICB3aWR0aDogMTAwJTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIC50cmFmZmljXFw6dG9wLWxldmVsLWxpbmsge1xuICAgIGZsZXg6IDEgMSAzMDBweDtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiBjbGFtcCgkc3BhY2VyLCAxNXZ3LCAkc3BhY2VyMikgJGd1dHRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBpc29sYXRpb246IGlzb2xhdGU7XG4gICAgb3V0bGluZTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIHRyYW5zaXRpb246IG91dGxpbmUgMC4ycyAkdHJhbnNpdGlvbi1lYXNlO1xuICAgIG1heC13aWR0aDogNDAwcHg7XG4gICAgLmJ1dHRvbiB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBwb3NpdGlvbjogaW5pdGlhbDtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBmb250LXNpemU6IHNtYWxsO1xuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgIH1cbiAgICB9XG4gICAgJjpob3ZlciB7XG4gICAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnkpO1xuICAgIH1cbiAgICAuaW1hZ2Uge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgaW5zZXQ6IDA7XG4gICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICAgICAgei1pbmRleDogLTE7XG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGJsYWNrLCAwLjUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5ib2R5I3JvYWQtdHJhZmZpYy1wcm9kdWN0cyB7XG4gIC0tYmFja2dyb3VuZC10aGVtZS1vbmU6ICN7cmdiYShibGFjaywgMC40KX07XG4gIC0tbWFpbi1tYXgtd2lkdGg6IDEwMCU7XG4gIGhlYWRlci5oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IHZhcigtLWJyZWFrcG9pbnQtbGFyZ2UpO1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICBnYXA6ICRzcGFjZXIwO1xuICAgIHBhZGRpbmctYm90dG9tOiAkc3BhY2VyMjtcbiAgICBoMSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBvcmRlcjogMTtcbiAgICB9XG4gICAgaDIge1xuICAgICAgb3JkZXI6IDM7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgfVxuICAgIC50cmFmZmljXFw6dG9wLWxldmVsLWxpbmtzLWNvbnRhaW5lciB7XG4gICAgICBvcmRlcjogNDtcbiAgICAgIHBhZGRpbmctYmxvY2s6ICRzcGFjZXI7XG4gICAgfVxuICAgIHRhZy1saW5lIHtcbiAgICAgIG9yZGVyOiAyO1xuICAgIH1cbiAgICB+IG1haW4ge1xuICAgICAgbWFyZ2luLXRvcDogJHNwYWNlcjtcbiAgICB9XG4gICAgLmludHJvZHVjdGlvbixcbiAgICBoMiB7XG4gICAgICB0ZXh0LXdyYXA6IGJhbGFuY2U7XG4gICAgICBtYXgtd2lkdGg6IDkwMHB4O1xuICAgIH1cblxuICAgIC5pbnRyb2R1Y3Rpb24sXG4gICAgYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgb3JkZXI6IDU7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG4gIH1cblxuICBiYWNrZ3JvdW5kLXZpZGVvLmJlaGluZC1oZWFkZXIge1xuICAgIC0tcm93LWJhY2tncm91bmQ6IDEgLyBzcGFuIDI7XG4gIH1cblxuICAmOmhhcyhtYWluID4gc2VjdGlvbjpmaXJzdC1jaGlsZCBbZGF0YS1ibG9ja3M9J2N1c3RvbUFydGljbGVzJ106Zmlyc3QtY2hpbGQpIHtcbiAgICBtYWluIFtkYXRhLWJsb2Nrcz0nY3VzdG9tQXJ0aWNsZXMnXSB7XG4gICAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgLy8gJjo6YmVmb3JlIHtcbiAgICAgIC8vIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwgJGJsYWNrKTtcbiAgICAgIC8vIH1cbiAgICAgIHBhZGRpbmctdG9wOiAkc3BhY2VyO1xuICAgIH1cbiAgICAuc2lkZS1ieS1zaWRlLWNvbXBvbmVudHMuYmxvd291dCB7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICB9XG4gICAgLy8gYmFja2dyb3VuZC12aWRlby5iZWhpbmQtaGVhZGVyIHtcbiAgICAvLyAgIC0tcm93LWJhY2tncm91bmQ6IDEgLyBzcGFuIDM7XG4gICAgLy8gfVxuICB9XG59XG5cbi50cmFmZmljLWxhbmRpbmcgYXNpZGUubGlzdC1kcm9wZG93bnMge1xuICBiYWNrZ3JvdW5kOiAjeyRvcmFuZ2V9O1xuICBib3JkZXI6IG5vbmU7XG4gIC0tYm9yZGVyLWNvbG91cjogI3tyZ2JhKHdoaXRlLCAwLjMpfTtcblxuICA6aXMoaDEsIGgyLCBoMywgaDQsIGg1LCBoNiksXG4gIHN1bW1hcnksXG4gIC50ZXh0IHtcbiAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgfVxuICAudGV4dCB7XG4gICAgbWFyZ2luLWJsb2NrOiAwLjVlbTtcbiAgfVxufVxuXG4udHJhZmZpYy1wcm9kdWN0IGFzaWRlLmxpc3QtZHJvcGRvd25zIHtcbiAgW2Zvcio9J3Nob3ctbW9yZSddIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5oaWRkZW4tZHJvcGRvd25zIHtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IGluaXRpYWwgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cbiIsImJvZHkudHJhZmZpYyB7XG4gIC0tc3BlY2lhbC1tYXAtcGluLWNvbG91cjogI2ZmNmEwMDtcbiAgLS1tYXAtcGluLXRleHQtY29sb3I6ICNmZjZhMDA7XG4gIC0tcHJpbWFyeTogIzFlMWMxYztcbiAgLS1zZWNvbmRhcnk6ICNmZjZhMDA7XG4gIC0tc2Vjb25kYXJ5LWxpZ2h0OiAjZGE4YjBmO1xuICAtLWZvb3Rlci1ici1jb2xvdXI6IHZhcigtLXNlY29uZGFyeSk7XG4gIC0tc3BhY2VyLWxpbmUtY29sb3VyOiB2YXIoLS1zZWNvbmRhcnkpO1xuICAtLXRhZ2xpbmUtaWNvbi1jb2xvdXI6IHZhcigtLXNlY29uZGFyeSk7XG4gIC0tYmFjay10by10b3AtYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5KTtcbiAgLS1tYWluLW1heC13aWR0aDogMTA2MHB4O1xufVxuYm9keS50cmFmZmljICNyaWdodG9uLWJsYWNrYnVybnMtbG9nb1tkYXRhLXR5cGU9dHJhZmZpY10ge1xuICAtLWxvZ28tdW5kZXJsaW5lLWNvbG91cjogI2RmMzAzNTtcbn1cbmJvZHkudHJhZmZpYyBzZXJ2aWNlLWNlbnRyZS1maW5kZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcbn1cbmJvZHkudHJhZmZpYyBzZXJ2aWNlLWNlbnRyZS1maW5kZXIgdWwge1xuICAtLWxpc3Qtc3R5bGUtY29sb3VyOiB2YXIoLS1zZWNvbmRhcnkpO1xufVxuYm9keS50cmFmZmljIHNlcnZpY2UtY2VudHJlLWZpbmRlciAudGV4dCB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnkpO1xufVxuYm9keS50cmFmZmljIC5jb250YWN0LWRldGFpbHMgc3ZnIHtcbiAgZmlsbDogI2ZmNmEwMDtcbn1cbmJvZHkudHJhZmZpYyAjYW5jaG9ycy1iYXIgYTpub3QoLmN1cnJlbnQpIHtcbiAgY29sb3I6ICMxZTFjMWM7XG59XG5ib2R5LnRyYWZmaWMuc2VydmljZS1jZW50cmVzIGhlYWRlci5oZWFkZXIgPiBoMSwgYm9keS50cmFmZmljI2NvbnRhY3QgaGVhZGVyLmhlYWRlciA+IGgxIHtcbiAgY29sb3I6ICMxZTFjMWM7XG59XG5ib2R5LnRyYWZmaWMuc2VydmljZS1jZW50cmVzIGhlYWRlci5oZWFkZXIgPiBoMiwgYm9keS50cmFmZmljI2NvbnRhY3QgaGVhZGVyLmhlYWRlciA+IGgyIHtcbiAgY29sb3I6ICNmZjZhMDA7XG59XG5ib2R5LnRyYWZmaWMuc2VydmljZS1jZW50cmVzIC50ZXh0IGgyLCBib2R5LnRyYWZmaWMjY29udGFjdCAudGV4dCBoMiB7XG4gIGNvbG9yOiAjZmY2YTAwO1xufVxuYm9keS50cmFmZmljLnNlcnZpY2UtY2VudHJlcyBtYWluIGgzLFxuYm9keS50cmFmZmljLnNlcnZpY2UtY2VudHJlcyBhcnRpY2xlLWxpc3QgLmhlYWRpbmcsXG5ib2R5LnRyYWZmaWMuc2VydmljZS1jZW50cmVzIGFydGljbGUtbGlzdCBoNCwgYm9keS50cmFmZmljI2NvbnRhY3QgbWFpbiBoMyxcbmJvZHkudHJhZmZpYyNjb250YWN0IGFydGljbGUtbGlzdCAuaGVhZGluZyxcbmJvZHkudHJhZmZpYyNjb250YWN0IGFydGljbGUtbGlzdCBoNCB7XG4gIGNvbG9yOiAjMWUxYzFjO1xufVxuYm9keS50cmFmZmljLnNlcnZpY2UtY2VudHJlcyBmb3JtW2RhdGEtZnJlZWZvcm1dIGgyLCBib2R5LnRyYWZmaWMjY29udGFjdCBmb3JtW2RhdGEtZnJlZWZvcm1dIGgyIHtcbiAgY29sb3I6ICMxZTFjMWM7XG59XG5ib2R5LnRyYWZmaWMgLmJ1dHRvbi5yZWQge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiB2YXIoLS1zZWNvbmRhcnkpO1xuICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbiAgLS1ib3JkZXItY29sb3VyOiB0cmFuc3BhcmVudDtcbn1cbmJvZHkudHJhZmZpYyAuY29udGVudC1ibG9jay50aGVtZWQuYmxhY2sgLnRleHQgOmlzKGgyLCBoMykge1xuICBjb2xvcjogd2hpdGU7XG59XG5ib2R5LnRyYWZmaWMgLmNvbnRlbnQtYmxvY2sudGhlbWVkLmJsYWNrIC50ZXh0IDppcyhoMiwgaDMpIHNwYW4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeSk7XG59XG5ib2R5LnRyYWZmaWMgLmNvbnRlbnQtYmxvY2s6bm90KC50aGVtZWQpIC50ZXh0IGgzIHtcbiAgLS1oZWFkaW5nLWNvbG91cjogdmFyKC0tc2Vjb25kYXJ5KTtcbn1cbmJvZHkudHJhZmZpYyAuYXJ0aWNsZS5iZy1vcmFuZ2UgLmJ1dHRvbi5yZWQge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiAjMWUxYzFjO1xuICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbiAgLS1ib3JkZXItY29sb3VyOiB0cmFuc3BhcmVudDtcbn1cbmJvZHkudHJhZmZpYyBuYXZpZ2F0aW9uLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZTFjMWM7XG59XG5ib2R5LnRyYWZmaWMgc2VydmljZS1jZW50cmUtZmluZGVyIHVsID4gbGk6OmJlZm9yZSxcbmJvZHkudHJhZmZpYyAudGV4dCB1bCA+IGxpOjpiZWZvcmUge1xuICBjb250ZW50OiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyUzRSUzQ2NpcmNsZSBmaWxsPSclMjNGRjZBMDAnIGN4PSc4JyBjeT0nOCcgcj0nOCcvJTNFJTNDcGF0aCBmaWxsPSdub25lJyBzdHJva2U9J3doaXRlJyBzdHJva2Utd2lkdGg9JzEuNCcgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2UtbWl0ZXJsaW1pdD0nMTAnIGQ9J00zLjUgOC40bDIuNyAyLjcgNi4zLTYuMycvJTNFJTNDL3N2ZyUzRVwiKTtcbn1cbmJvZHkudHJhZmZpYyB0YWJsZS50YWJsZSAudGljay5zeW1ib2wge1xuICAtLWZpbGw6ICNmZjZhMDA7XG59XG5cbnNpZGUtYmFyIC5zaWRlYmFyLWxvZ29zIHtcbiAgb3JkZXI6IDEwMDA7XG59XG5cbmJvZHkudHJhZmZpYy50cmFmZmljLXByb2R1Y3QgI2JyZWFkY3J1bWJzLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzMyMzY7XG59XG5ib2R5LnRyYWZmaWMudHJhZmZpYy1wcm9kdWN0ICNhbmNob3JzLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZTFjMWM7XG59XG5ib2R5LnRyYWZmaWMudHJhZmZpYy1wcm9kdWN0ICNhbmNob3JzLWJhciBhOm5vdCguY3VycmVudCkge1xuICBjb2xvcjogd2hpdGU7XG59XG5ib2R5LnRyYWZmaWMudHJhZmZpYy1wcm9kdWN0ICNhbmNob3JzLWJhcjo6YmVmb3JlIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuYm9keS50cmFmZmljLnRyYWZmaWMtbGFuZGluZyBuYXZpZ2F0aW9uLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuYm9keS50cmFmZmljLnRyYWZmaWMtbGFuZGluZyBiYWNrZ3JvdW5kLWltYWdlIHtcbiAgZ3JpZC1yb3c6IDEvc3BhbiAyO1xufVxuXG46aXMoYm9keS50cmFmZmljLnRyYWZmaWMtbGFuZGluZywgYm9keS50cmFmZmljLnRyYWZmaWMtcHJvZHVjdCkge1xuICAtLWhlYWRpbmctY29sb3VyOiB2YXIoLS1wcmltYXJ5KTtcbn1cbjppcyhib2R5LnRyYWZmaWMudHJhZmZpYy1sYW5kaW5nLCBib2R5LnRyYWZmaWMudHJhZmZpYy1wcm9kdWN0KSAjb3ZlcnZpZXcge1xuICAtLWhlYWRpbmctY29sb3VyOiB2YXIoLS1zZWNvbmRhcnkpO1xufVxuOmlzKGJvZHkudHJhZmZpYy50cmFmZmljLWxhbmRpbmcsIGJvZHkudHJhZmZpYy50cmFmZmljLXByb2R1Y3QpIGJhY2tncm91bmQtaW1hZ2UuYmVoaW5kLWhlYWRlcjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgaW5zZXQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgwLCAwLCAwLCAwLjgpLCByZ2JhKDAsIDAsIDAsIDAuMikpO1xuICB6LWluZGV4OiAxO1xufVxuXG4udHJhZmZpY1xcOnRvcC1sZXZlbC1saW5rcy1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IGNsYW1wKHZhcigtLWd1dHRlcjEpLCA0dncsIHZhcigtLWd1dHRlcjIpKTtcbiAgZmxleC13cmFwOiB3cmFwO1xuICB3aWR0aDogMTAwJTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4udHJhZmZpY1xcOnRvcC1sZXZlbC1saW5rcy1jb250YWluZXIgLnRyYWZmaWNcXDp0b3AtbGV2ZWwtbGluayB7XG4gIGZsZXg6IDEgMSAzMDBweDtcbiAgZGlzcGxheTogZ3JpZDtcbiAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiBjbGFtcCh2YXIoLS1zcGFjZXIxKSwgMTV2dywgdmFyKC0tc3BhY2VyMikpIHZhcigtLWd1dHRlcjEpO1xuICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGlzb2xhdGlvbjogaXNvbGF0ZTtcbiAgb3V0bGluZTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBvdXRsaW5lIDAuMnMgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpO1xuICBtYXgtd2lkdGg6IDQwMHB4O1xufVxuLnRyYWZmaWNcXDp0b3AtbGV2ZWwtbGlua3MtY29udGFpbmVyIC50cmFmZmljXFw6dG9wLWxldmVsLWxpbmsgLmJ1dHRvbiB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IGluaXRpYWw7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGZvbnQtc2l6ZTogc21hbGw7XG59XG4udHJhZmZpY1xcOnRvcC1sZXZlbC1saW5rcy1jb250YWluZXIgLnRyYWZmaWNcXDp0b3AtbGV2ZWwtbGluayAuYnV0dG9uOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG59XG4udHJhZmZpY1xcOnRvcC1sZXZlbC1saW5rcy1jb250YWluZXIgLnRyYWZmaWNcXDp0b3AtbGV2ZWwtbGluazpob3ZlciB7XG4gIG91dGxpbmUtY29sb3I6IHZhcigtLXNlY29uZGFyeSk7XG59XG4udHJhZmZpY1xcOnRvcC1sZXZlbC1saW5rcy1jb250YWluZXIgLnRyYWZmaWNcXDp0b3AtbGV2ZWwtbGluayAuaW1hZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICB6LWluZGV4OiAtMTtcbn1cbi50cmFmZmljXFw6dG9wLWxldmVsLWxpbmtzLWNvbnRhaW5lciAudHJhZmZpY1xcOnRvcC1sZXZlbC1saW5rIC5pbWFnZTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG59XG5cbmJvZHkjcm9hZC10cmFmZmljLXByb2R1Y3RzIHtcbiAgLS1iYWNrZ3JvdW5kLXRoZW1lLW9uZTogcmdiYSgwLCAwLCAwLCAwLjQpO1xuICAtLW1haW4tbWF4LXdpZHRoOiAxMDAlO1xufVxuYm9keSNyb2FkLXRyYWZmaWMtcHJvZHVjdHMgaGVhZGVyLmhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogdmFyKC0tYnJlYWtwb2ludC1sYXJnZSk7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tc3BhY2VyMCk7XG4gIHBhZGRpbmctYm90dG9tOiB2YXIoLS1zcGFjZXIyKTtcbn1cbmJvZHkjcm9hZC10cmFmZmljLXByb2R1Y3RzIGhlYWRlci5oZWFkZXIgaDEge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG9yZGVyOiAxO1xufVxuYm9keSNyb2FkLXRyYWZmaWMtcHJvZHVjdHMgaGVhZGVyLmhlYWRlciBoMiB7XG4gIG9yZGVyOiAzO1xuICBtYXJnaW4tdG9wOiAwO1xuICBmb250LXNpemU6IDEuNnJlbTtcbn1cbmJvZHkjcm9hZC10cmFmZmljLXByb2R1Y3RzIGhlYWRlci5oZWFkZXIgLnRyYWZmaWNcXDp0b3AtbGV2ZWwtbGlua3MtY29udGFpbmVyIHtcbiAgb3JkZXI6IDQ7XG4gIHBhZGRpbmctYmxvY2s6IHZhcigtLXNwYWNlcjEpO1xufVxuYm9keSNyb2FkLXRyYWZmaWMtcHJvZHVjdHMgaGVhZGVyLmhlYWRlciB0YWctbGluZSB7XG4gIG9yZGVyOiAyO1xufVxuYm9keSNyb2FkLXRyYWZmaWMtcHJvZHVjdHMgaGVhZGVyLmhlYWRlciB+IG1haW4ge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZXIxKTtcbn1cbmJvZHkjcm9hZC10cmFmZmljLXByb2R1Y3RzIGhlYWRlci5oZWFkZXIgLmludHJvZHVjdGlvbixcbmJvZHkjcm9hZC10cmFmZmljLXByb2R1Y3RzIGhlYWRlci5oZWFkZXIgaDIge1xuICB0ZXh0LXdyYXA6IGJhbGFuY2U7XG4gIG1heC13aWR0aDogOTAwcHg7XG59XG5ib2R5I3JvYWQtdHJhZmZpYy1wcm9kdWN0cyBoZWFkZXIuaGVhZGVyIC5pbnRyb2R1Y3Rpb24sXG5ib2R5I3JvYWQtdHJhZmZpYy1wcm9kdWN0cyBoZWFkZXIuaGVhZGVyIGJ1dHRvbi1jb250YWluZXIge1xuICBtYXJnaW4tdG9wOiAwO1xuICBvcmRlcjogNTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5ib2R5I3JvYWQtdHJhZmZpYy1wcm9kdWN0cyBiYWNrZ3JvdW5kLXZpZGVvLmJlaGluZC1oZWFkZXIge1xuICAtLXJvdy1iYWNrZ3JvdW5kOiAxIC8gc3BhbiAyO1xufVxuYm9keSNyb2FkLXRyYWZmaWMtcHJvZHVjdHM6aGFzKG1haW4gPiBzZWN0aW9uOmZpcnN0LWNoaWxkIFtkYXRhLWJsb2Nrcz1jdXN0b21BcnRpY2xlc106Zmlyc3QtY2hpbGQpIG1haW4gW2RhdGEtYmxvY2tzPWN1c3RvbUFydGljbGVzXSB7XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1zcGFjZXIxKTtcbn1cbmJvZHkjcm9hZC10cmFmZmljLXByb2R1Y3RzOmhhcyhtYWluID4gc2VjdGlvbjpmaXJzdC1jaGlsZCBbZGF0YS1ibG9ja3M9Y3VzdG9tQXJ0aWNsZXNdOmZpcnN0LWNoaWxkKSAuc2lkZS1ieS1zaWRlLWNvbXBvbmVudHMuYmxvd291dCB7XG4gIHBhZGRpbmctdG9wOiAwO1xufVxuXG4udHJhZmZpYy1sYW5kaW5nIGFzaWRlLmxpc3QtZHJvcGRvd25zIHtcbiAgYmFja2dyb3VuZDogI2ZmNmEwMDtcbiAgYm9yZGVyOiBub25lO1xuICAtLWJvcmRlci1jb2xvdXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi50cmFmZmljLWxhbmRpbmcgYXNpZGUubGlzdC1kcm9wZG93bnMgOmlzKGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYpLFxuLnRyYWZmaWMtbGFuZGluZyBhc2lkZS5saXN0LWRyb3Bkb3ducyBzdW1tYXJ5LFxuLnRyYWZmaWMtbGFuZGluZyBhc2lkZS5saXN0LWRyb3Bkb3ducyAudGV4dCB7XG4gIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xufVxuLnRyYWZmaWMtbGFuZGluZyBhc2lkZS5saXN0LWRyb3Bkb3ducyAudGV4dCB7XG4gIG1hcmdpbi1ibG9jazogMC41ZW07XG59XG5cbi50cmFmZmljLXByb2R1Y3QgYXNpZGUubGlzdC1kcm9wZG93bnMgW2Zvcio9c2hvdy1tb3JlXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udHJhZmZpYy1wcm9kdWN0IGFzaWRlLmxpc3QtZHJvcGRvd25zIC5oaWRkZW4tZHJvcGRvd25zIHtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG4udHJhZmZpYy1wcm9kdWN0IGFzaWRlLmxpc3QtZHJvcGRvd25zIC5oaWRkZW4tZHJvcGRvd25zOjphZnRlciB7XG4gIGNvbnRlbnQ6IGluaXRpYWwgIWltcG9ydGFudDtcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQ29sb3Vyc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLy8vIEV4cGxpY2l0IENvbG91cnMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vLyBFeHBsaWNpdCBjb2xvdXJzIGFyZSBhIHdoYXQgdGhleSBhcmUuIEdyZWVuIGlzIGdyZWVuLCBibHVlIGlzIGJsdWUuLi4gbm8gb2JzY3VyaXR5LlxuLy8vIFdlIHN1ZmZpeCBudW1iZXJzIHRvIGRlZmluZSB2YXJpYXRpb25zIG9mIGNvbG91cnMgaW4gbm8gcGFydGljdWxhciBvcmRlciBvZiBzaGFkZS5cbi8vLyBFeGFtcGxlOiBncmVlbjEsIGdyZWVuMiwgZ3JlZW4zLCBncmVlbjQuIFRoaXMgaXMgc28gd2UgY2FuIGltbWlkaWF0ZWx5IHNlZSBob3dcbi8vLyBtYW55IG9wdGlvbnMgd2UgaGF2ZSBmb3IgYSBzaW5nbGUgY29sb3VyIGF0IGEgZ2xhbmNlLiBJZiB5b3Ugc2VlICRncmVlbjQsIHlvdSBrbm93IHRoaXNcbi8vLyBwcm9qZWN0IGlzIHVzaW5nIGZvdXIgdmFyaWF0aW9ucyBvZiBncmVlbi4gVGhpcyBpcyBhbHNvIG9mdGVuIHVzZWZ1bCBiZWNhdXNlIG1hbnkgZGV2ZWxvcG1lbnRcbi8vLyB0b29scyB3aWxsIGF1dG8tc3VnZ2VzdCBjb2xvdXJzIHdpdGggYWN0dWFsIGV4YW1wbGVzIG9mIHRoZSBjb2xvdXIuXG4vLy8gVGhlIFBhbGxldGVzIG1vZHVsZSAoYXQgdGhlIGJvdHRvbSBvZiB0aGlzIGZpbGUpIHdpbGwgb3V0cHV0IHNoYWRlZCBuYW1lZCB2YXJpYXRpb25zLFxuLy8vLyA8Y29sb3VyPi1kYXJrIGFuZCA8Y29sb3VyPi1saWdodC4gSWYgeW91IG5lZWQgYWRkaXRpb25hbCBzaGFkZXMgcGxlYXNlIHJlZnJhaW0gZnJvbSBnb2luZyBkb3duXG4vLy8gdGhlICdsaWdodGVyJywgJ2xpZ2h0ZXN0JywgJ2RhcmtlcicsICdkYXJrZXN0JyBjb252ZW50aW9uLiBUaGVzZSBhcmUgbm90IHBhcnRpY3Vhcmx5IGxlZ2lhYmxlXG4vLy8gYW5kIHRoZXkgYXJlIGxpbWl0ZWQgYnkgaG93IGNyZWF0aXZlIChjb25mdXNpbmcpIHlvdXIgd29yZGluZyBjYW4gYmUuXG4vLy8gSXQgaXMgYmV0dGVyIHRvIGRlZmluZSBhIG5ldyBleHBsY2l0IGNvbG91ciBlbnRpcmVseS5cbi8vLyBAc2VlIGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vd2hhdC1kby15b3UtbmFtZS1jb2xvci12YXJpYWJsZXMvXG5cbiRibHVlOiAjMTMxZjZiOyAvLyBQcmltYXJ5XG4kYmx1ZTI6ICMyOTJiNjg7IC8vIE5ha2VkIExpbmtcbiRibHVlMzogIzNkM2Y3ZjsgLy8gTGlnbnQgR3JhZGllbnRcbiRibHVlNDogIzEwMTI0ZDsgLy8gRGFyayBHcmFkaWVudFxuJGJsdWU1OiAjMDA5NWZmOyAvLyBOYXZpZ2F0aW9uIGxpbmsgaG92ZXJcbi8vICRyZWQgICAgOiAjRTAzQTQwOyAvLyBTZWNvbmRhcnlcbiRyZWQ6ICNkZjMwMzU7IC8vIFNlY29uZGFyeSAtIFRoaXMgcGFzc2VzIHRoZSBjb250cmFzdCByYXRpbyBhY2Nlc3NpYmlsaXR5IHRlc3QgaW4gR29vZ2xlcyBMaWdodGhvdXNlXG4kZ3JleTogIzk2OTY5NTtcbiRncmV5MjogIzZhNmE2YTsgLy8gRm9udFxuJGdyZXkzOiAjZjRmNGY0OyAvLyBMaWdodGVyIEdyZXkgQmFja2dyb3VuZFxuJGdyZXk0OiAjZGNkY2RjO1xuJGdyZXk1OiAjYjFiMWIxOyAvLyBTcGFjZXJzIDxocj5cbiRncmV5NjogIzMzMzIzNjsgLy8gTmF2aWdhdGlvbiBsaW5rIGhvdmVyXG4kZ3JlZW46ICM1MGJjMDg7XG4kZ3JlZW4yOiAjNzZiYjI4OyAvLyBFU0cgZ3JlZW5cbiR5ZWxsb3c6ICNmNmY0ZGI7IC8vIERpc2NsYWltZXIgQmFja2dyb3VuZFxuJHllbGxvdzI6ICNmY2IwMDI7XG4kb3JhbmdlOiAjZmY2YTAwO1xuJG9yYW5nZTI6ICNkYThiMGY7XG4kYmxhY2s6ICMxZTFjMWM7XG5cbiRtYXJrOiAkYmx1ZTU7IC8vIGJhY2tncm91bmQgY29sb3VyIGZvciA8bWFyaz4gdGFnc1xuXG4kcHJpbWFyeTogdmFyKC0tcHJpbWFyeSwgI3skYmx1ZX0pO1xuJHNlY29uZGFyeTogdmFyKC0tc2Vjb25kYXJ5LCAjeyRyZWR9KTtcblxuLy8vIFBhbGV0dGUgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vLyBCeSBsb2FkaW5nIGNvbmZpZ3VyYXRpb25zIGludG8gdGhpcyAncGFsbGV0ZScgbW9kdWxlLCB3ZSB3aWxsIGJlIGFibGVcbi8vLyB0byBkZWNsYXJlIHZhcmlhbnRzIG9mIGEgZmV3IGNvbW1vbiBjb2xvdXJzLiBZb3UgY2FuIGFsc28gYWRqdXN0IHRoZSBsaWdodG5lc3Ncbi8vLyBvciBkYXJrbmVzcyBvZiBlYWNoIHZhcmlhbnQgYnkgcGFzc2luZyBpbiB0aGUgcmVsZXZhbnQgcHJpdmF0ZSBydWxlcy5cbi8vLyBQYWxldHRlIHdpbGwgYWxzbyBleHBvc2UgcG9wdWxhciBzb2NpYWwgbWVkaWEgY29sb3VycyBhbmQgdGhlIFllbGxvIGJyYW5kIGNvbG91ci5cbi8vLyBAc2VlIGh0dHBzOi8vc2Fzcy1sYW5nLmNvbS9kb2N1bWVudGF0aW9uL2F0LXJ1bGVzL2ZvcndhcmQjY29uZmlndXJpbmctbW9kdWxlc1xuLy8vIEBvdXRwdXQgJGdyZWVuIDogIzAyOTI5QTsgJGdyZWVuLWRhcmsgOiAjMjU2NTY5OyAkZ3JlZW4tbGlnaHQ6ICMwNGI5YzQ7XG5cbkBmb3J3YXJkICdjcmVhdGUvcGFsZXR0ZScgd2l0aCAoXG4gICRibHVlOiAkYmx1ZSxcbiAgJHJlZDogJHJlZCxcbiAgJGdyZXk6ICRncmV5LFxuICAkeWVsbG93OiAkeWVsbG93LFxuICAkb3JhbmdlOiAkb3JhbmdlLFxuICAkZ3JlZW46ICRncmVlbixcbiAgJGJsYWNrOiAkYmxhY2tcbik7XG5cbiRtYXA6IChcbiAgYmx1ZTogJGJsdWUsXG4gIHJlZDogJHJlZCxcbiAgZ3JleTogJGdyZXkzLFxuICB5ZWxsb3c6ICR5ZWxsb3csXG4gIG9yYW5nZTogJG9yYW5nZSxcbiAgZ3JlZW46ICRncmVlbixcbiAgYmxhY2s6ICRibGFjayxcbik7XG4iLCJAdXNlICcuLi9fdmFyaWFibGVzJyBhcyAqO1xuQHVzZSAnY29sbGVjdGlvbnMvZm9udC9jcm9wJyBhcyBmb250O1xuQHVzZSAnbW9kdWxlcy9jb2xvdXIvZW5jb2RlJyBhcyBjb2xvdXI7XG5cbkBtaXhpbiBzdHlsZSgkZmlsbCwgJHN0cm9rZTogd2hpdGUsICRpbXA6IGZhbHNlKSB7XG4gID4gbGk6OmJlZm9yZSB7XG4gICAgQGlmICgkaW1wKSB7XG4gICAgICBjb250ZW50OiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyUzRSUzQ2NpcmNsZSBmaWxsPSdcIiArIGNvbG91ci5lbmNvZGUoXG4gICAgICAgICAgJGZpbGxcbiAgICAgICAgKSArIFwiJyBjeD0nOCcgY3k9JzgnIHI9JzgnLyUzRSUzQ3BhdGggZmlsbD0nbm9uZScgc3Ryb2tlPSdcIiArIGNvbG91ci5lbmNvZGUoXG4gICAgICAgICAgJHN0cm9rZVxuICAgICAgICApICsgXCInIHN0cm9rZS13aWR0aD0nMS40JyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIHN0cm9rZS1taXRlcmxpbWl0PScxMCcgZD0nTTMuNSA4LjRsMi43IDIuNyA2LjMtNi4zJy8lM0UlM0Mvc3ZnJTNFXCIpICFpbXBvcnRhbnQ7XG4gICAgfSBAZWxzZSB7XG4gICAgICBjb250ZW50OiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyUzRSUzQ2NpcmNsZSBmaWxsPSdcIiArIGNvbG91ci5lbmNvZGUoXG4gICAgICAgICAgJGZpbGxcbiAgICAgICAgKSArIFwiJyBjeD0nOCcgY3k9JzgnIHI9JzgnLyUzRSUzQ3BhdGggZmlsbD0nbm9uZScgc3Ryb2tlPSdcIiArIGNvbG91ci5lbmNvZGUoXG4gICAgICAgICAgJHN0cm9rZVxuICAgICAgICApICsgXCInIHN0cm9rZS13aWR0aD0nMS40JyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIHN0cm9rZS1taXRlcmxpbWl0PScxMCcgZD0nTTMuNSA4LjRsMi43IDIuNyA2LjMtNi4zJy8lM0UlM0Mvc3ZnJTNFXCIpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBVbm9yZGVyZCBMaXN0cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gdWwoJGxpc3Qtc3R5bGUtY29sb3VyOiAkcmVkLCAkbGlzdC1zdHlsZS1hY2NlbnQtY29sb3VyOiB3aGl0ZSkge1xuICBAaW5jbHVkZSBzdHlsZSgkbGlzdC1zdHlsZS1jb2xvdXIsICRsaXN0LXN0eWxlLWFjY2VudC1jb2xvdXIpO1xuXG4gID4gbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tbGlzdC1zdHlsZS1zaXplLCAxZW0pICogMS44KTtcblxuICAgICYgKyBsaSB7XG4gICAgICBtYXJnaW4tdG9wOiB2YXIoLS1saW5lLXN0eWxlLXNwYWNpbmcsICN7JGdhcH0pO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB0b3A6IDAuMWVtO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiB2YXIoLS1saXN0LXN0eWxlLXNpemUsIDFlbSk7XG4gICAgICBoZWlnaHQ6IHZhcigtLWxpc3Qtc3R5bGUtc2l6ZSwgMWVtKTtcbiAgICB9XG4gIH1cblxuICBAY29udGVudDtcbn1cblxuLy8gT3JkZXJlZCBMaXN0cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIG9sKCkge1xuICBjb3VudGVyLXJlc2V0OiBjb3VudGVyO1xuXG4gID4gbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nLWxlZnQ6IDIycHg7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLWxpc3Qtc3R5bGUtb2Zmc2V0LCAwKTtcblxuICAgICYgKyBsaSB7XG4gICAgICBtYXJnaW4tdG9wOiAkZ2FwMDtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogY291bnRlcihjb3VudGVyKSAnLic7XG4gICAgICBjb3VudGVyLWluY3JlbWVudDogY291bnRlcjtcbiAgICAgIGNvbG9yOiB2YXIoLS1saXN0LXN0eWxlLWNvbG91ciwgdmFyKC0tcHJpbWFyeSkpO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbiAgICB9XG4gIH1cblxuICBAY29udGVudDtcbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBVbml0c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSBcInNhc3M6bWF0aFwiO1xuQHVzZSAnc2FzczpzdHJpbmcnO1xuQHVzZSAnc2FzczptZXRhJztcblxuLy8gVGhpcyB1bml0cyBjcmVhdG9yIHdpbGwgcmVuZGVyIHNpeCBwb3NpdGl2ZSBhbmQgc2l4IG5lZ2F0aXZlIHNhc3MgdmFyaWFibGVzIGZvciBcbi8vIGdhcHMsIHNwYWNlcnMsIGFuZCBndXR0ZXJzIHJlbGF0aXZlIHRvIHRoZSBiYXNldiB2YWx1ZXMgZGVmaW5lZCBiZWxvdy5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBCYXNlIFZhbHVlcyBcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vLyBAc2VlIGh0dHBzOi8vY29kZXBlbi5pby9tYXJrbm90dG9uL3Blbi9FeFBiTkdlXG5cbi8vIFRoZXNlIHRocmVlIHZhbHVlcyB3aWxsIGFjdCBhIGNvbnN0YW50IGJhc2VsaW5lIGZvciBhbGwgZm9sbG93aW5nIHVuaXQgZGVsY2FyYXRpb25zLlxuXG4vLyBHYXBzIG11c3QgdXNlIGFuIGFic29sdXRlIGFuZCBzdGF0aWMgJ3B4JyB1bml0LiBJdCBzaG91bGQgbm90IGJlIHJlbGF0aXZlIHRvIGFueVxuLy8gcGFyZW50IGNvbnRhaW5lciBhbmQgaXMgbm90IGludGVuZGVkIGZvciBmb250IHNpemVzLCBzbyB5b3Ugc2hvdWxkIG5vdCB1c2UgJ3JlbScgb3IgJ2VtJy4gXG4kZ2FwIDogMTZweCAhZGVmYXVsdDtcbiRiYXNlLWdhcCA6ICRnYXA7XG5cbi8vIFNwYWNlcnMgbXVzdCB1c2UgYSAndmgnIHVuaXQgc28gdGhleSBhcmUgcmVsYXRpdmUgdG8gdGhlIHVzZXJzIHZpZXdwb3J0IGhlaWdodC13aXNlLlxuLy8gVGhleSBzaG91bGQgcHJpbWFyaWx5IGJlIHVzZWQgZm9yIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW5zIG9uIGEgY29tcG9uZW50IGxldmVsLlxuJHNwYWNlciA6IDR2aCAhZGVmYXVsdDsgXG4kYmFzZS1zcGFjZXIgOiAkc3BhY2VyOyBcblxuLy8gR3V0dGVycyBtdXN0IHVzZSBhICd2dycgdW5pdCBzbyB0aGV5IGFyZSByZWxhdGl2ZSB0byB0aGUgdXNlcnMgdmlld3BvcnQgd2lkdGgtd2lzZS4gXG4vLyBUaGV5IHNob3VsZCBwcmltYXJpbHkgYmUgdXNlZCBmb3IgdGhlIGxlZnQgYW5kIHJpZ2h0IHBhZGRpbmcgb3IgbWFyZ2luIG9uIGEgcGFyZW50IGxldmVsLlxuLy8gQXMgYSBzdWdnZXN0aW9uLCB0aGlzIGd1dHRlciBjb25zdGFudCBzaG91bGQgYmUgaGFsZiB0aGUgc2l6ZSBvZiB0aGUgc3BhY2VyIHZhbHVlLlxuJGd1dHRlciA6IDN2dyAhZGVmYXVsdDtcbiRiYXNlLWd1dHRlciA6ICRndXR0ZXI7IFxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQXNib2x1dGUgVW5pdHMgXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBHYXBzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gR2FwcyBhcmUgYW4gYWJzb2x1dGUgdW5pdCAocHgpIGludGVuZGVkIHRvIGJlIHVzZWQgb24gaW5kaXZpZHVhbCBlbGVtZW50cyB3aXRoaW4gYSBjb21wb25lbnRlZC4gXG4vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHNwYWNpbmcgYW1vbmdzdCBibG9jaywgaW5saW5lLCB0YWJsZSBhbmQgZ3JvdXAgaHRtbCBlbGVtZW50cy5cblxuQGZ1bmN0aW9uIGdhcCgkYW1vdW50IDogMSkge1xuICBAaWYgKCAkYW1vdW50ID09IDEgKSB7IFxuICAgIEByZXR1cm4gdmFyKC0tZ2FwKTsgXG4gIH0gQGVsc2UgeyBcbiAgICBAcmV0dXJuIGNhbGModmFyKC0tZ2FwKSAqICN7JGFtb3VudH0pOyBcbiAgfVxufVxuXG4kZ2FwMCA6IGdhcCgwLjUpOyAkZ2FwMC0gOiBnYXAoLTAuNSk7XG4kZ2FwICA6IGdhcCgxKTsgICAkZ2FwLSAgOiBnYXAoLTEpO1xuJGdhcDIgOiBnYXAoMik7ICAgJGdhcDItIDogZ2FwKC0yKTtcbiRnYXAzIDogZ2FwKDMpOyAgICRnYXAzLSA6IGdhcCgtMyk7XG4kZ2FwNCA6IGdhcCg0KTsgICAkZ2FwNC0gOiBnYXAoLTQpO1xuJGdhcDUgOiBnYXAoNSk7ICAgJGdhcDUtIDogZ2FwKC01KTtcbiRnYXA2IDogZ2FwKDYpOyAgICRnYXA2LSA6IGdhcCgtNik7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBSZWxhdGl2ZSBVbml0cyBcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBmdW5jdGlvbiBfZHluYW1pYy11bml0KCRjdXN0b20tcHJvcGVydHksICRhbW91bnQsICRtaW4sICRtYXgsICR1c2UtbmVnYXRpdmUgOiBmYWxzZSwgJHVzZS1jbGFtcCA6IHRydWUpIHtcblxuICAvLyBDYWxjIE1ldGhvZFxuICAkcmVzdWx0IDogY2FsYygoI3skY3VzdG9tLXByb3BlcnR5fSAqICN7JGFtb3VudH0pICsgI3tpZigkbWluID09IDAsIDBweCwgJG1pbil9KTtcbiAgXG4gIC8vIENsYW1wIE1ldGhvZFxuICBAaWYgKCAkdXNlLWNsYW1wICkge1xuICAgIEBpZiAoICRhbW91bnQgPT0gMCApIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgje21hdGguZGl2KCRtaW4sIDIpfSwgI3skY3VzdG9tLXByb3BlcnR5fSAqIDAuNSwgI3skbWF4fSk7XG4gICAgfSBAZWxzZSBpZiAoICRhbW91bnQgPT0gMSApIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgjeyRtaW59LCAjeyRjdXN0b20tcHJvcGVydHl9LCAjeyRtYXh9KTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgjeyRtaW59LCAjeyRjdXN0b20tcHJvcGVydHl9ICogI3skYW1vdW50fSwgI3skbWF4fSk7XG4gICAgfVxuICB9IFxuXG4gIEBpZiAoICR1c2UtbmVnYXRpdmUgKSB7XG4gICAgJHJlc3VsdCA6IGNhbGMoLTEgKiAjeyRyZXN1bHR9KTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcblxufSBcblxuLy8gU3BhY2VycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNwYWNlcnMgYXJlIGEgcmVsYXRpdmUgdmlld3BvcnQgaGVpZ2h0ICh2aCkgdW5pdCBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGEgY29tcG9uZW50ZWQgbGV2ZWwuXG4vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHRvcCBhbmQgYm90dG9tIHNwYWNpbmcgYW1vbmdzdCAnc2VjdGlvbicgYW5kICdjdXN0b20nIGVsZW1lbnRzLlxuLy8gU3BhY2VycyB3aWxsIGVxdWF0ZSB0byBzb21ldGhpbmcgbGlrZTogYCgkc3BhY2VyICogeCkgKyAkZ2FwYC4gXG4vLyBUaGUgJyRnYXAnIGlzIGFkZGVkIHNvIHRoYXQgdmggc3BhY2luZyB3aWxsIG5ldmVyIHNjYWxlIHRvbyBjbG9zZSB0byAwcHguIFxuXG5AZnVuY3Rpb24gc3BhY2VyKCRhbW91bnQgOiAxLCAkbWluIDogJGJhc2UtZ2FwLCAkbWF4IDogbnVsbCwgJHVzZS1uZWdhdGl2ZSA6IGZhbHNlLCAkdXNlLWNsYW1wIDogdHJ1ZSkge1xuICBAaWYgKCAkYW1vdW50ID09IDApIHsgJGFtb3VudCA6IDAuNTsgJG1pbiA6IG1hdGguZGl2KCRtaW4sIDIpOyB9XG4gIEBpZiAoIG1ldGEudHlwZS1vZigkbWF4KSA9PSAnbnVsbCcgKSB7IFxuICAgIEBpZiAoIG1ldGEudHlwZS1vZigkbWluKSA9PSAnc3RyaW5nJyBhbmQgc3RyaW5nLmluZGV4KCRtaW4sICd2YXInKSApIHtcbiAgICAgICRtYXggOiBjYWxjKCN7JG1pbn0gKiAjeyRhbW91bnQgKyAxfSk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgJG1heCA6ICN7JG1pbiAqICgkYW1vdW50ICsgMSl9OyBcbiAgICB9XG4gIH1cbiAgQHJldHVybiBfZHluYW1pYy11bml0KHZhcigtLXNwYWNlciksICRhbW91bnQsICRtaW4sICRtYXgsICR1c2UtbmVnYXRpdmUsICR1c2UtY2xhbXApO1xufVxuXG4kc3BhY2VyMCA6IHZhcigtLXNwYWNlcjApOyAkc3BhY2VyMC0gOiB2YXIoLS1zcGFjZXIwLSk7XG4kc3BhY2VyICA6IHZhcigtLXNwYWNlcjEpOyAkc3BhY2VyLSAgOiB2YXIoLS1zcGFjZXIxLSk7XG4kc3BhY2VyMiA6IHZhcigtLXNwYWNlcjIpOyAkc3BhY2VyMi0gOiB2YXIoLS1zcGFjZXIyLSk7XG4kc3BhY2VyMyA6IHZhcigtLXNwYWNlcjMpOyAkc3BhY2VyMy0gOiB2YXIoLS1zcGFjZXIzLSk7XG4kc3BhY2VyNCA6IHZhcigtLXNwYWNlcjQpOyAkc3BhY2VyNC0gOiB2YXIoLS1zcGFjZXI0LSk7XG4kc3BhY2VyNSA6IHZhcigtLXNwYWNlcjUpOyAkc3BhY2VyNS0gOiB2YXIoLS1zcGFjZXI1LSk7XG4kc3BhY2VyNiA6IHZhcigtLXNwYWNlcjYpOyAkc3BhY2VyNi0gOiB2YXIoLS1zcGFjZXI2LSk7XG5cbi8vIEd1dHRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBHdXR0ZXJzIGFyZSBhIHJlbGF0aXZlIHZpZXdwb3J0IHdpZHRoICh2dykgdW5pdCBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGEgcGFyZW50IGxldmVsO1xuLy8gZm9yIGV4YW1wbGUsIGEgd3JhcHBlciBjb250YWluZXIgb3IgYm9keSB3aXRoIG5lc3RlZCBjb21wb25lbnRzLiBcbi8vIFRoZSBhaW0gaXMgdG8gcmV0YWluIGNvbnNpc3RhbnQgbGVmdCBhbmQgcmlnaHQgc3BhY2luZyBhbW9uZ3N0ICdzZWN0aW9uJyBhbmQgJ2N1c3RvbScgZWxlbWVudHMuXG4vLyBHdXR0ZXJzIHdpbGwgZXF1YXRlIHRvIHNvbWV0aGluZyBsaWtlOiBgKCRndXR0ZXIgKiB4KSArICRnYXBgLiBcbi8vIFRoZSAnJGdhcCcgaXMgYWRkZWQgc28gdGhhdCB2dyBzcGFjaW5nIHdpbGwgbmV2ZXIgc2NhbGUgdG9vIGNsb3NlIHRvIDBweC4gXG5cbkBmdW5jdGlvbiBndXR0ZXIoJGFtb3VudCA6IDEsICRtaW4gOiAkYmFzZS1nYXAsICRtYXggOiBudWxsLCAkdXNlLW5lZ2F0aXZlIDogZmFsc2UsICR1c2UtY2xhbXAgOiB0cnVlKSB7XG4gIEBpZiAoICRhbW91bnQgPT0gMCkgeyAkYW1vdW50IDogMC41OyAkbWluIDogbWF0aC5kaXYoJG1pbiwgMik7IH1cbiAgQGlmICggbWV0YS50eXBlLW9mKCRtYXgpID09ICdudWxsJyApIHsgXG4gICAgQGlmICggbWV0YS50eXBlLW9mKCRtaW4pID09ICdzdHJpbmcnIGFuZCBzdHJpbmcuaW5kZXgoJG1pbiwgJ3ZhcicpICkge1xuICAgICAgJG1heCA6IGNhbGMoI3skbWlufSAqICN7JGFtb3VudCArIDF9KTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICAkbWF4IDogI3skbWluICogKCRhbW91bnQgKyAxKX07IFxuICAgIH1cbiAgfVxuICBAcmV0dXJuIF9keW5hbWljLXVuaXQodmFyKC0tZ3V0dGVyKSwgJGFtb3VudCwgJG1pbiwgJG1heCwgJHVzZS1uZWdhdGl2ZSwgJHVzZS1jbGFtcCk7XG59XG5cbiRndXR0ZXIwIDogdmFyKC0tZ3V0dGVyMCk7ICRndXR0ZXIwLSA6IHZhcigtLWd1dHRlcjAtKTtcbiRndXR0ZXIgIDogdmFyKC0tZ3V0dGVyMSk7ICRndXR0ZXItICA6IHZhcigtLWd1dHRlcjEtKTtcbiRndXR0ZXIyIDogdmFyKC0tZ3V0dGVyMik7ICRndXR0ZXIyLSA6IHZhcigtLWd1dHRlcjItKTtcbiRndXR0ZXIzIDogdmFyKC0tZ3V0dGVyMyk7ICRndXR0ZXIzLSA6IHZhcigtLWd1dHRlcjMtKTtcbiRndXR0ZXI0IDogdmFyKC0tZ3V0dGVyNCk7ICRndXR0ZXI0LSA6IHZhcigtLWd1dHRlcjQtKTtcbiRndXR0ZXI1IDogdmFyKC0tZ3V0dGVyNSk7ICRndXR0ZXI1LSA6IHZhcigtLWd1dHRlcjUtKTtcbiRndXR0ZXI2IDogdmFyKC0tZ3V0dGVyNik7ICRndXR0ZXI2LSA6IHZhcigtLWd1dHRlcjYtKTtcbiJdfQ== */