/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/
@import url("https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900&subset=greek");
@import url(slickslider.css);
@import url(magnific-popap.css);
html, body, div, span, applet, object, iframe,
h1,
.promo h2,
.serteficats h2,
.typesofpay h2,
.fuelcoupons h2,
.fuellist h2,
.textblock h2,
.coopscheme h2,
.supplyfuel h2,
.locations h2,
.wholesale--header h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline; }

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block; }

body {
  line-height: 1; }

ol, ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

/*
* Grid
*/
.row:after {
  content: '';
  display: block;
  height: 0;
  clear: both; }

.container {
  margin: auto;
  max-width: 1170px;
  padding-left: 10px;
  padding-right: 10px; }

@font-face {
  font-family: 'digital';
  src: url("../fonts/digital.woff2") format("woff2"), url("../fonts/digital.woff") format("woff"), url("../fonts/digital.ttf") format("ttf");
  font-weight: normal;
  font-style: normal; }

.gr_yellow_orange {
  background: #eb523e;
  background: -moz-radial-gradient(center, ellipse cover, #eb523e 0%, #fff84d 100%);
  background: -webkit-radial-gradient(center, ellipse cover, #eb523e 0%, #fff84d 100%);
  background: radial-gradient(ellipse at center, #eb523e 0%, #fff84d 100%); }

.gr_red_orange, .footer--btn:hover {
  background: #dc2234;
  background: -moz-radial-gradient(center, ellipse cover, #dc2234 0%, #eb523e 100%);
  background: -webkit-radial-gradient(center, ellipse cover, #dc2234 0%, #eb523e 100%);
  background: radial-gradient(ellipse at center, #dc2234 0%, #eb523e 100%); }

.gr_border_red_orange {
  -moz-border-image: -moz-radial-gradient(center, ellipse cover, #dc2234 0%, #eb523e 100%);
  -webkit-border-image: -webkit-radial-gradient(center, ellipse cover, #dc2234 0%, #eb523e 100%);
  border-image: radial-gradient(ellipse at center, #dc2234 0%, #eb523e 100%); }

/*
* Grid
*/
.row:after {
  content: '';
  display: block;
  height: 0;
  clear: both; }

.container {
  margin: auto;
  max-width: 1170px;
  padding-left: 10px;
  padding-right: 10px; }

.gr_yellow_orange {
  background: #eb523e;
  background: -moz-radial-gradient(center, ellipse cover, #eb523e 0%, #fff84d 100%);
  background: -webkit-radial-gradient(center, ellipse cover, #eb523e 0%, #fff84d 100%);
  background: radial-gradient(ellipse at center, #eb523e 0%, #fff84d 100%); }

.gr_red_orange, .footer--btn:hover {
  background: #dc2234;
  background: -moz-radial-gradient(center, ellipse cover, #dc2234 0%, #eb523e 100%);
  background: -webkit-radial-gradient(center, ellipse cover, #dc2234 0%, #eb523e 100%);
  background: radial-gradient(ellipse at center, #dc2234 0%, #eb523e 100%); }

.gr_border_red_orange {
  -moz-border-image: -moz-radial-gradient(center, ellipse cover, #dc2234 0%, #eb523e 100%);
  -webkit-border-image: -webkit-radial-gradient(center, ellipse cover, #dc2234 0%, #eb523e 100%);
  border-image: radial-gradient(ellipse at center, #dc2234 0%, #eb523e 100%); }

html,
body {
  height: 100%;
  width: 100%; }

body {
  font-family: 'Roboto', sans-serif;
  font-size: 18px;
  color: #111111;
  line-height: 1.2; }

.psd {
  top: 0;
  left: 0;
  opacity: 0.5;
  position: absolute;
  width: 100%;
  height: 100%;
  transition-duration: .3s;
  pointer-events: none;
  display: block;
  z-index: 10000; }
  .psd.hd {
    display: none; }
  .psd.inv {
    -webkit-filter: invert(100%); }
  .psd--home {
    height: 4444px;
    background: url(../img/psd/home.jpg) 50% 0 no-repeat; }
    @media screen and (max-width: 320px) {
      .psd--home {
        background: url(../img/psd/home_320.jpg) 50% 0 no-repeat; } }
  .psd--price {
    height: 4996px;
    background: url(../img/psd/Price.jpg) 50% 0 no-repeat; }
    @media screen and (max-width: 320px) {
      .psd--price {
        background: url(../img/psd/price_320.jpg) 50% 0 no-repeat; } }
  .psd--wholesale {
    height: 3861px;
    background: url(../img/psd/wholesale.jpg) 50% 0 no-repeat; }
    @media screen and (max-width: 320px) {
      .psd--wholesale {
        background: url(../img/psd/wholesale_320.jpg) 50% 0 no-repeat; } }
  .psd--life {
    height: 3678px;
    background: url(../img/psd/life.jpg) 50% 0 no-repeat; }
    @media screen and (max-width: 320px) {
      .psd--life {
        background: url(../img/psd/life_320.jpg) 50% 0 no-repeat; } }
  .psd--sale {
    height: 1775px;
    background: url(../img/psd/sale.jpg) 50% 0 no-repeat; }
    @media screen and (max-width: 320px) {
      .psd--sale {
        background: url(../img/psd/sale_320.jpg) 50% 0 no-repeat; } }
  .psd--contacts {
    height: 2759px;
    background: url(../img/psd/contacts.jpg) 50% 0 no-repeat; }
    @media screen and (max-width: 320px) {
      .psd--contacts {
        background: url(../img/psd/contacts_320.jpg) 50% 0 no-repeat; } }
  .psd--life_more {
    height: 1906px;
    background: url(../img/psd/life_more.jpg) 50% 0 no-repeat; }
    @media screen and (max-width: 320px) {
      .psd--life_more {
        background: url(../img/psd/life_single_320.jpg) 50% 0 no-repeat; } }
  .psd--sale_more {
    height: 2190px;
    background: url(../img/psd/sale_more.jpg) 50% 0 no-repeat; }
    @media screen and (max-width: 320px) {
      .psd--sale_more {
        background: url(../img/psd/sale_single_320.jpg) 50% 0 no-repeat; } }

.psd_hide {
  text-align: center;
  color: #fff;
  position: fixed;
  left: 0;
  top: 50%;
  line-height: 40px;
  width: 60px;
  height: 40px;
  background: red;
  border-radius: 0 180px 180px 0;
  z-index: 100;
  cursor: pointer; }

.psd_inv {
  text-align: center;
  color: #fff;
  position: fixed;
  right: 0;
  top: 50%;
  line-height: 40px;
  width: 60px;
  height: 40px;
  background: blue;
  border-radius: 180px 0 0 180px;
  z-index: 100;
  cursor: pointer; }

::-webkit-input-placeholder {
  color: #111111; }

::-moz-placeholder {
  color: #111111; }

:-ms-input-placeholder {
  color: #111111; }

:-moz-placeholder {
  color: #111111; }

a,
a:hover {
  text-decoration: none;
  color: #111111; }

strong {
  font-weight: bold; }

.onescreen {
  height: 100%;
  position: relative;
  display: table;
  width: 100%; }
  .onescreen--cell {
    vertical-align: middle;
    display: table-cell;
    width: 100%;
    height: 100%; }
  .onescreen--top {
    width: 100%;
    top: 0;
    left: 0;
    position: absolute; }


h1,
.promo h2,
.serteficats h2,
.typesofpay h2,
.fuelcoupons h2,
.fuellist h2,
.textblock h2,
.coopscheme h2,
.supplyfuel h2,
.locations h2,
.wholesale--header h1 {
  text-align: center;
  font-size: 64px;
  font-weight: bold; }
  @media screen and (max-width: 923px) {
    
    h1,
    .promo h2,
    .serteficats h2,
    .typesofpay h2,
    .fuelcoupons h2,
    .fuellist h2,
    .textblock h2,
    .coopscheme h2,
    .supplyfuel h2,
    .locations h2,
    .wholesale--header h1 {
      font-size: 54px; } }
  @media screen and (max-width: 768px) {
    
    h1,
    .promo h2,
    .serteficats h2,
    .typesofpay h2,
    .fuelcoupons h2,
    .fuellist h2,
    .textblock h2,
    .coopscheme h2,
    .supplyfuel h2,
    .locations h2,
    .wholesale--header h1 {
      font-size: 36px; } }
  @media screen and (max-width: 320px) {
    
    h1,
    .promo h2,
    .serteficats h2,
    .typesofpay h2,
    .fuelcoupons h2,
    .fuellist h2,
    .textblock h2,
    .coopscheme h2,
    .supplyfuel h2,
    .locations h2,
    .wholesale--header h1 {
      font-size: 32px; } }

.header {
  position: relative; }
  .header--item {
    width: 50%;
    float: left; }
    @media screen and (max-width: 992px) {
      .header--item {
        width: 100%;
        float: none; } }
  .header--btns {
    vertical-align: top;
    margin-top: 25px;
    margin-right: 14px;
    display: inline-block;
    width: 79px;
    height: 79px;
    border-radius: 25px;
    color: #fff;
    font-size: 10px;
    background-size: 100% 100%;
    background: url(../img/header--btns.svg);
    transition-duration: .3s; }
    .header--btns svg .fill {
      fill: #E53D3A;
      transition-duration: .3s; }
    .header--btns:hover {
      color: #fff;
      background: url(../img/header--btns_hover.svg); }
      .header--btns:hover svg .fill {
        fill: #fff; }
    .header--btns span {
      padding-top: 12px;
      display: block;
      width: 79px;
      height: 30px;
      vertical-align: middle;
      text-align: center; }
    .header--btns b {
      height: 30px;
      text-align: center;
      display: table-cell;
      vertical-align: middle;
      width: 79px; }
    @media screen and (max-width: 992px) {
      .header--btns {
        margin: 0 5px; } }
  .header--tel {
    float: right;
    display: inline-block;
    margin-top: 23px;
    font-size: 24px; }
    @media screen and (max-width: 992px) {
      .header--tel {
        display: none; } }
    .header--tel img {
      width: 19px;
      margin-right: 10px;
      display: inline-block; }
  .header--date {
    text-align: center;
    color: #DC2234;
    font-weight: bold;
    font-size: 36px; }
  .header--back {
    padding-top: 3px;
    color: #DC2234;
    font-size: 24px;
    margin-left: -28px;
    display: block; }

.topbar {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  display: none;
  z-index: 20;
  padding-top: 32px;
  box-sizing: border-box;
  padding-left: 16px;
  padding-right: 16px;
  padding-bottom: 16px;
  background: -moz-linear-gradient(top, white 0%, rgba(255, 255, 255, 0) 100%);
  background: -webkit-linear-gradient(top, white 0%, rgba(255, 255, 255, 0) 100%);
  background: linear-gradient(to bottom, white 0%, rgba(255, 255, 255, 0) 100%); }
  .topbar--btn {
    float: left;
    height: 20px;
    width: 32px;
    z-index: 100;
    cursor: pointer;
    position: relative;
    background: url(../img/menu.svg) no-repeat; }
  .topbar--tel {
    float: right;
    width: 180px;
    margin: auto;
    display: block;
    color: #2F2F2F;
    font-size: 24px; }
    .topbar--tel img {
      width: 19px;
      margin-right: 10px;
      display: inline-block; }
  @media screen and (max-width: 992px) {
    .topbar {
      display: block; } }

.nav {
  height: 62px;
  padding-top: 2px;
  padding-bottom: 2px;
  background: #000; }
  .nav li {
    float: left;
    width: 16.66667%; }
    .nav li a {
      border-radius: 8px;
      text-align: center;
      max-width: 178px;
      margin: auto;
      display: block;
      height: 60px;
      line-height: 60px;
      font-weight: bold;
      color: #E33738;
      box-sizing: border-box;
      transition-duration: 0.3s; }
    .nav li a:hover {
      color: #fff; }
    .nav li.current-menu-item a {
      color: #fff;
      box-sizing: border-box;
      border: 1px solid #EA4F3D; }
  .nav--tel {
    color: #fff;
    font-size: 24px;
    font-weight: normal;
    width: 180px;
    margin: auto;
    display: none; }
    .nav--tel img {
      width: 18px;
      margin-right: 10px; }
  .nav .close {
    display: none; }
  @media screen and (max-width: 992px) {
    .nav {
      position: fixed;
      width: 100%;
      z-index: 20;
      top: 0;
      left: 0;
      padding-top: 24px;
      height: 100%;
      display: none;
      transition-duration: .3s;
      padding-bottom: 40px; }
      .nav.open {
        display: block; }
      .nav--tel {
        display: block; }
      .nav li {
        float: none;
        width: 100%;
        padding-bottom: 24px; }
        .nav li a {
          max-width: 600px; }
        .nav li a:hover {
          color: #fff; }
        .nav li.active a {
          color: #fff;
          box-sizing: border-box;
          border: 1px solid #EA4F3D; } }

.home--header {
  height: calc(100% - 62px);
  max-height: 735px;
  min-height: 510px;
  box-shadow: inset 0 5px 20px rgba(0, 0, 0, 0.2);
  overflow: hidden;
  background: url(../img/bg_home_header.jpg) 50% 100% no-repeat;
  background-size: cover; }
  .home--header .header--tel {
    margin-right: 51px;
    margin-right: 16px; }
  @media screen and (max-width: 992px) {
    .home--header {
      height: 100%; }
      .home--header .onescreen--cell {
        padding-bottom: 80px; }
      .home--header .onescreen--top {
        bottom: 30px;
        top: auto;
        text-align: center; }
      .home--header .header--tel {
        display: none; } }

@media screen and (max-width: 992px) {
  .priceblock {
    padding-top: 30px; } }

.priceblock--header {
  background: url(../img/bg_price_priceblock.jpg) 50% 0 no-repeat;
  background-size: cover; }
  .priceblock--header h1, .priceblock--header .promo h2, .promo .priceblock--header h2, .priceblock--header .serteficats h2, .serteficats .priceblock--header h2, .priceblock--header .typesofpay h2, .typesofpay .priceblock--header h2, .priceblock--header .fuelcoupons h2, .fuelcoupons .priceblock--header h2, .priceblock--header .fuellist h2, .fuellist .priceblock--header h2, .priceblock--header .textblock h2, .textblock .priceblock--header h2, .priceblock--header .coopscheme h2, .coopscheme .priceblock--header h2, .priceblock--header .supplyfuel h2, .supplyfuel .priceblock--header h2, .priceblock--header .locations h2, .locations .priceblock--header h2 {
    padding-top: 37px;
    padding-bottom: 41px; }
    .priceblock--header h1 span, .priceblock--header .promo h2 span, .promo .priceblock--header h2 span, .priceblock--header .serteficats h2 span, .serteficats .priceblock--header h2 span, .priceblock--header .typesofpay h2 span, .typesofpay .priceblock--header h2 span, .priceblock--header .fuelcoupons h2 span, .fuelcoupons .priceblock--header h2 span, .priceblock--header .fuellist h2 span, .fuellist .priceblock--header h2 span, .priceblock--header .textblock h2 span, .textblock .priceblock--header h2 span, .priceblock--header .coopscheme h2 span, .coopscheme .priceblock--header h2 span, .priceblock--header .supplyfuel h2 span, .supplyfuel .priceblock--header h2 span, .priceblock--header .locations h2 span, .locations .priceblock--header h2 span {
      color: #DC2234; }

.priceblock--slide {
  float: left;
  width: 33.33333%;
  box-sizing: border-box;
  padding-left: 8px;
  padding-right: 8px; }
  @media screen and (max-width: 992px) {
    .priceblock--slide {
      padding: 0; } }
  .priceblock--slide:nth-child(1) {
    padding-left: 0; }
  .priceblock--slide:nth-child(3) {
    padding-right: 0; }

@media screen and (max-width: 992px) {
  .priceblock--item {
    width: 328px;
    margin: auto; } }

@media screen and (max-width: 768px) {
  .priceblock--item {
    width: 300px;
    margin: auto;
    box-sizing: border-box;
    padding-left: 5px;
    padding-right: 5px; } }

.priceblock--item--headbox {
  padding: 19px 11px;
  box-sizing: border-box;
  height: 81px;
  background-image: url(../img/priceblock__headbox.svg);
  background-size: cover; }
  .priceblock--item--headbox--img {
    vertical-align: middle;
    display: table-cell;
    width: 50px; }
  .priceblock--item--headbox--title {
    vertical-align: middle;
    width: 210px;
    display: table-cell; }
    .priceblock--item--headbox--title h2 {
      font-size: 18px;
      font-weight: bold; }
      @media screen and (max-width: 1055px) {
        .priceblock--item--headbox--title h2 {
          font-size: 16px; } }
      @media screen and (max-width: 980px) {
        .priceblock--item--headbox--title h2 {
          font-size: 14px; } }
  .priceblock--item--headbox--meta {
    font-size: 18px;
    font-weight: bold;
    color: #DC2234;
    display: table-cell;
    vertical-align: top;
    text-align: right; }
    @media screen and (max-width: 1115px) {
      .priceblock--item--headbox--meta {
        font-size: 14px; } }
  @media screen and (max-width: 768px) {
    .priceblock--item--headbox {
      padding: 8px 8px;
      height: 68px; } }

.priceblock--item--box {
  padding: 9px;
  margin-top: 10px;
  position: relative;
  height: 89px;
  box-sizing: border-box;
  background-image: url(../img/priceblock__box1.svg);
  background-position: 0 0;
  background-size: cover; }
  .priceblock--item--box:nth-child(2) {
    background-image: url(../img/priceblock__box1.svg); }
  .priceblock--item--box:nth-child(3) {
    background-image: url(../img/priceblock__box2.svg); }
  .priceblock--item--box:nth-child(4) {
    background-image: url(../img/priceblock__box3.svg); }
  .priceblock--item--box:nth-child(5) {
    background-image: url(../img/priceblock__box4.svg); }
  .priceblock--item--box:nth-child(6) {
    background-image: url(../img/priceblock__box5.svg); }
    .priceblock--item--box:nth-child(6) .priceblock--item--box--name {
      padding-top: 10px; }
  .priceblock--item--box:before {
    width: 94%;
    position: absolute;
    display: block;
    left: 0;
    content: '';
    height: 10px;
    top: -10px;
    margin-left: 3%;
    margin-right: 3%;
    background: #eb513d;
    background: -moz-linear-gradient(left, #eb513d 0%, #dd2535 100%);
    background: -webkit-linear-gradient(left, #eb513d 0%, #dd2535 100%);
    background: linear-gradient(to right, #eb513d 0%, #dd2535 100%); }
  .priceblock--item--box--name {
    display: table-cell;
    width: 200px;
    line-height: 1;
    font-size: 48px;
    text-align: center;
    color: #fff;
    font-weight: bold;
    text-shadow: -1px 0 #E13E4D, 0 1px #E13E4D, 1px 0 #E13E4D, 0 -1px #E13E4D; }
    .priceblock--item--box--name span {
      font-size: 24px;
      display: block; }
  .priceblock--item--box--price {
    font-family: 'digital';
    width: 160px;
    height: 65px;
    display: table-cell;
    background: #111;
    color: #fff;
    text-align: center;
    vertical-align: middle;
    font-size: 68px;
    line-height: 1;
    letter-spacing: 4px; }
  @media screen and (max-width: 768px) {
    .priceblock--item--box {
      height: 68px;
      padding: 8px; }
      .priceblock--item--box--name {
        font-size: 36px; }
        .priceblock--item--box--name span {
          font-size: 18px; }
      .priceblock--item--box--price {
        font-family: 'digital';
        width: 160px;
        height: 48px;
        display: table-cell;
        background: #111;
        color: #fff;
        text-align: center;
        vertical-align: middle;
        font-size: 54px;
        line-height: 1;
        letter-spacing: 4px; } }

.priceblock .slick-dots {
  padding-top: 10px;
  text-align: center; }
  .priceblock .slick-dots li {
    width: 12px;
    height: 12px;
    box-sizing: border-box;
    display: inline-block;
    border: 2px solid #000;
    border-radius: 180px;
    margin: 5px; }
    .priceblock .slick-dots li.slick-active {
      border: 2px solid #E33D3C;
      background: #E33D3C; }
  .priceblock .slick-dots button {
    display: none; }

.priceblock--home {
  background-size: cover;
  padding-top: 155px;
  padding-bottom: 156px;
  background: url(../img/bg_home_priceblock.jpg) 50% 0 no-repeat; }
  @media screen and (max-width: 992px) {
    .priceblock--home {
      padding-bottom: 0;
      padding-top: 30px; } }

.priceblock--bar {
  background: #fef44d;
  background: -moz-linear-gradient(left, #fef44d 0%, #ec583e 100%);
  background: -webkit-linear-gradient(left, #fef44d 0%, #ec583e 100%);
  background: linear-gradient(to right, #fef44d 0%, #ec583e 100%);
  text-align: center;
  margin-top: 32px;
  height: auto;
  padding-top: 3px;
  box-sizing: border-box; }
  @media screen and (max-width: 992px) {
    .priceblock--bar {
      margin-left: -10px;
      margin-right: -10px; } }
  .priceblock--bar img {
    margin: 5px 15px;
    display: inline-block; }
    @media screen and (max-width: 800px) {
      .priceblock--bar img {
        margin: 5px 4px; } }
    @media screen and (max-width: 625px) {
      .priceblock--bar img {
        width: 52px;
        height: 52px; } }
    @media screen and (max-width: 520px) {
      .priceblock--bar img {
        width: 32px;
        height: 32px;
        margin: 16px 4px; } }
    @media screen and (max-width: 350px) {
      .priceblock--bar img {
        width: 30px;
        height: 30px;
        margin: 16px 2px; } }

.photoblock {
  background: #333; }
  .photoblock_a {
    display: block;
    width: 100%;
    height: 100%; }
  .photoblock img {
    display: block;
    float: left;
    width: auto; }
  .photoblock--item {
    float: left;
    background-repeat: no-repeat;
    background-size: cover;
    height: 303px; }
    @media screen and (max-width: 1450px) {
      .photoblock--item {
        height: 250px; } }
    @media screen and (max-width: 1230px) {
      .photoblock--item {
        height: 200px; } }
    @media screen and (max-width: 1000px) {
      .photoblock--item {
        height: 150px; } }
    @media screen and (max-width: 768px) {
      .photoblock--item {
        height: 125px; } }
  .photoblock--item1 {
    width: 450px;
    width: 23%; }
    @media screen and (max-width: 768px) {
      .photoblock--item1 {
        width: 30%; } }
  .photoblock--item2 {
    width: 470px;
    width: 25%; }
    @media screen and (max-width: 768px) {
      .photoblock--item2 {
        width: 30%; } }
  .photoblock--item3 {
    width: 480px;
    width: 25%; }
    @media screen and (max-width: 768px) {
      .photoblock--item3 {
        width: 40%; } }
  .photoblock--item4 {
    width: 516px;
    width: 27%; }
    @media screen and (max-width: 768px) {
      .photoblock--item4 {
        width: 33.3%; } }
  .photoblock--item5 {
    width: 302px;
    width: 15%; }
    @media screen and (max-width: 768px) {
      .photoblock--item5 {
        width: 33.3%; } }
  .photoblock--item6 {
    width: 474px;
    width: 26%; }
    @media screen and (max-width: 768px) {
      .photoblock--item6 {
        width: 33.3%; } }
  .photoblock--item7 {
    width: 452px;
    width: 23%; }
    @media screen and (max-width: 768px) {
      .photoblock--item7 {
        display: none; } }
  .photoblock--item8 {
    width: 449px;
    width: 23%; }
    @media screen and (max-width: 768px) {
      .photoblock--item8 {
        display: none; } }
  .photoblock--item9 {
    width: 13%; }
    @media screen and (max-width: 768px) {
      .photoblock--item9 {
        width: 100%;
        height: 62px; } }
  @media screen and (max-width: 768px) {
    .photoblock--last {
      display: none; } }
  .photoblock a.photoblock--item9 {
    background-position: 50% 50%;
    display: block;
    box-sizing: border-box;
    border: 3px solid red;
    transition-duration: 0.3s;
    background-image: url(../img/photo_more.svg);
    background-size: cover; }
    @media screen and (max-width: 768px) {
      .photoblock a.photoblock--item9 {
        background-image: url(../img/photo_more_360.svg); } }
    .photoblock a.photoblock--item9:hover {
      background-image: url(../img/photo_more_hover.svg); }

.promo {
  position: relative;
  max-height: 1000px;
  background-size: cover;
  background: url(../img/bg_home_promo.jpg) 50% 0 no-repeat;
  z-index: 1; }
  .promo:after {
    z-index: -1;
    position: absolute;
    left: 0;
    top: 0;
    content: '';
    display: block;
    width: 100%;
    height: 100%;
    background: -moz-linear-gradient(top, rgba(255, 255, 255, 0.1) 0%, white 100%);
    background: -webkit-linear-gradient(top, rgba(255, 255, 255, 0.1) 0%, white 100%);
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0.1) 0%, white 100%); }
  @media screen and (max-width: 992px) {
    .promo {
      padding-top: 100px;
      padding-bottom: 100px; } }
  @media screen and (max-width: 768px) {
    .promo {
      padding-top: 32px;
      padding-bottom: 0px; } }
  .promo h2 {
    padding-bottom: 25px; }
    @media screen and (max-width: 768px) {
      .promo h2 {
        font-size: 36px; } }
  .promo h3 {
    text-align: center;
    font-weight: bold;
    font-size: 36px;
    color: #DC2234;
    padding-bottom: 36px; }
    @media screen and (max-width: 768px) {
      .promo h3 {
        font-size: 18px;
        padding-bottom: 32px; } }
  .promo span {
    color: #DC2234; }
  .promo p {
    font-size: 24px;
    padding-bottom: 45px;
    line-height: 1.7; }
    @media screen and (max-width: 768px) {
      .promo p {
        font-size: 18px;
        padding-bottom: 32px; } }

.iconblock {
  box-sizing: border-box;
  position: relative;
  background-size: cover;
  text-align: center;
  background: url(../img/bg_home_iconblock_full.svg) 50% 0 no-repeat;
  max-height: 800px; }
  @media screen and (max-width: 768px) {
    .iconblock {
      padding-top: 30px;
      padding-bottom: 30px; } }
  .iconblock:after {
    position: absolute;
    display: block;
    content: '';
    width: 26%;
    margin-left: -13%;
    background: #fff;
    height: 100%;
    top: 0;
    left: 50%;
    transform: skew(-5.5deg); }
    @media screen and (max-width: 1130px) {
      .iconblock:after {
        width: 34%;
        margin-left: -17%; } }
    @media screen and (max-width: 768px) {
      .iconblock:after {
        display: none; } }
  .iconblock--item {
    position: relative;
    box-sizing: border-box;
    text-align: center;
    color: #fff;
    z-index: 10;
    width: 30%;
    display: inline-block; }
    @media screen and (max-width: 768px) {
      .iconblock--item {
        width: 49%; } }
  .iconblock--item1 {
    padding-right: 116px;
    margin-bottom: 100px; }
    .iconblock--item1 svg {
      width: calc(153px);
      height: auto; }
      @media screen and (max-width: 1370px) {
        .iconblock--item1 svg {
          width: calc(153px / 1.2); } }
      @media screen and (max-width: 992px) {
        .iconblock--item1 svg {
          width: calc(153px / 1.3); } }
      @media screen and (max-width: 768px) {
        .iconblock--item1 svg {
          width: calc(153px / 1.6); } }
      @media screen and (max-width: 360px) {
        .iconblock--item1 svg {
          width: calc(153px / 1.7); } }
    @media screen and (max-width: 992px) {
      .iconblock--item1 {
        margin-bottom: 50px;
        padding: 0; } }
    @media screen and (max-width: 768px) {
      .iconblock--item1 {
        margin: 0; } }
  .iconblock--item2 {
    color: #111111;
    margin-bottom: 100px; }
    .iconblock--item2 svg {
      width: 160px;
      height: auto; }
      @media screen and (max-width: 1370px) {
        .iconblock--item2 svg {
          width: calc(160px / 1.2); } }
      @media screen and (max-width: 992px) {
        .iconblock--item2 svg {
          width: calc(160px / 1.3); } }
      @media screen and (max-width: 768px) {
        .iconblock--item2 svg {
          width: calc(160px / 1.6); } }
      @media screen and (max-width: 360px) {
        .iconblock--item2 svg {
          width: calc(160px / 1.7); } }
    @media screen and (max-width: 992px) {
      .iconblock--item2 {
        margin-bottom: 50px; } }
    @media screen and (max-width: 768px) {
      .iconblock--item2 {
        margin: 0;
        color: #fff; }
        .iconblock--item2 svg g {
          fill: #fff; } }
  .iconblock--item3 {
    padding-left: 100px;
    margin-bottom: 100px; }
    .iconblock--item3 svg {
      width: 170px;
      height: auto; }
      @media screen and (max-width: 1370px) {
        .iconblock--item3 svg {
          width: calc(170px / 1.2); } }
      @media screen and (max-width: 992px) {
        .iconblock--item3 svg {
          width: calc(170px / 1.3); } }
      @media screen and (max-width: 768px) {
        .iconblock--item3 svg {
          width: calc(170px / 1.6); } }
      @media screen and (max-width: 360px) {
        .iconblock--item3 svg {
          width: calc(170px / 1.7); } }
    @media screen and (max-width: 992px) {
      .iconblock--item3 {
        margin-bottom: 50px;
        padding: 0; } }
    @media screen and (max-width: 768px) {
      .iconblock--item3 {
        margin: 0; } }
  .iconblock--item4 {
    padding-right: 116px; }
    .iconblock--item4 svg {
      width: 152px;
      height: auto; }
      @media screen and (max-width: 1370px) {
        .iconblock--item4 svg {
          width: calc(152px / 1.2); } }
      @media screen and (max-width: 992px) {
        .iconblock--item4 svg {
          width: calc(152px / 1.3); } }
      @media screen and (max-width: 768px) {
        .iconblock--item4 svg {
          width: calc(152px / 1.6); } }
      @media screen and (max-width: 360px) {
        .iconblock--item4 svg {
          width: calc(152px / 1.7); } }
    @media screen and (max-width: 992px) {
      .iconblock--item4 {
        padding: 0; } }
    @media screen and (max-width: 768px) {
      .iconblock--item4 {
        margin: 0; } }
  .iconblock--item5 {
    color: #111111;
    padding-right: 20px; }
    .iconblock--item5 svg {
      width: 60px;
      height: auto; }
      @media screen and (max-width: 1370px) {
        .iconblock--item5 svg {
          width: calc(60px / 1.2); } }
      @media screen and (max-width: 992px) {
        .iconblock--item5 svg {
          width: calc(60px / 1.3); } }
      @media screen and (max-width: 768px) {
        .iconblock--item5 svg {
          width: calc(60px / 1.6); } }
      @media screen and (max-width: 360px) {
        .iconblock--item5 svg {
          width: calc(60px / 1.7); } }
    @media screen and (max-width: 992px) {
      .iconblock--item5 {
        padding: 0; } }
    @media screen and (max-width: 768px) {
      .iconblock--item5 {
        margin: 0;
        color: #fff; }
        .iconblock--item5 svg g {
          fill: #fff; } }
  .iconblock--item6 {
    padding-left: 75px; }
    .iconblock--item6 svg {
      width: 125px;
      height: auto; }
      @media screen and (max-width: 1370px) {
        .iconblock--item6 svg {
          width: calc(125px / 1.2); } }
      @media screen and (max-width: 992px) {
        .iconblock--item6 svg {
          width: calc(125px / 1.3); } }
      @media screen and (max-width: 768px) {
        .iconblock--item6 svg {
          width: calc(125px / 1.6); } }
      @media screen and (max-width: 360px) {
        .iconblock--item6 svg {
          width: calc(125px / 1.7); } }
    @media screen and (max-width: 992px) {
      .iconblock--item6 {
        padding: 0; } }
    @media screen and (max-width: 768px) {
      .iconblock--item6 {
        margin: 0; } }
  .iconblock--imgwr {
    display: inline-block; }
  .iconblock--img {
    height: 179px;
    display: table-cell;
    vertical-align: bottom; }
    @media screen and (max-width: 1370px) {
      .iconblock--img {
        height: 150px; } }
    @media screen and (max-width: 768px) {
      .iconblock--img {
        height: 140px; } }
  .iconblock--text {
    padding-top: 5px;
    font-size: 21px; }
    @media screen and (max-width: 1150px) {
      .iconblock--text {
        font-size: 18px; } }
    @media screen and (max-width: 768px) {
      .iconblock--text {
        font-size: 14px; } }

.slick-slide {
  height: auto !important; }

.serteficats {
  position: relative;
  background: url(../img/bg_serteficats.svg) 50% 0 no-repeat;
  background-size: cover;
  z-index: 1; }
  @media screen and (max-width: 1140px) {
    .serteficats {
      background: #fff64d;
      background: -moz-linear-gradient(left, #fff64d 0%, #ec5e3f 100%);
      background: -webkit-linear-gradient(left, #fff64d 0%, #ec5e3f 100%);
      background: linear-gradient(to right, #fff64d 0%, #ec5e3f 100%);
      margin-top: 4px; } }
  .serteficats:after {
    position: absolute;
    display: block;
    content: '';
    width: 780px;
    margin-left: -445px;
    z-index: -1;
    background: #fff;
    height: 100%;
    top: 0;
    left: 50%;
    transform: skew(-13.4deg); }
    @media screen and (max-width: 1180px) {
      .serteficats:after {
        margin-left: -33%;
        width: 66%; } }
    @media screen and (max-width: 1140px) {
      .serteficats:after {
        display: none; } }
  .serteficats h2 {
    padding-top: 40px;
    padding-bottom: 40px; }
  .serteficats--item img {
    max-width: 278px;
    display: block;
    margin: auto;
    height: auto; }
  .serteficats--left {
    cursor: pointer;
    top: 40%;
    margin-top: -22px;
    position: absolute;
    width: 22px;
    height: 44px;
    background: url(../img/slider_left.svg) no-repeat;
    background-size: 100% auto;
    z-index: 100;
    left: 30px;
    transition-duration: 0.3s; }
    .serteficats--left:hover {
      background: url(../img/slider_left_hover.svg) no-repeat;
      opacity: .8;
      background-size: 100% auto; }
    .serteficats--left:active {
      background: url(../img/slider_left_hover.svg) no-repeat;
      opacity: 1;
      background-size: 100% auto; }
  .serteficats--right {
    cursor: pointer;
    top: 40%;
    margin-top: -22px;
    position: absolute;
    width: 22px;
    height: 44px;
    background: url(../img/slider_right.svg) no-repeat;
    background-size: 100% auto;
    z-index: 10;
    right: 30px;
    transition-duration: 0.3s; }
    .serteficats--right:hover {
      background: url(../img/slider_right_hover.svg) no-repeat;
      opacity: .8;
      background-size: 100% auto; }
    .serteficats--right:active {
      background: url(../img/slider_right_hover.svg) no-repeat;
      opacity: 1;
      background-size: 100% auto; }
  .serteficats .slick-dots {
    text-align: center; }
    .serteficats .slick-dots button {
      display: none; }
    .serteficats .slick-dots li {
      box-sizing: content-box;
      display: inline-block;
      border-radius: 180px;
      cursor: pointer;
      width: 10px;
      height: 10px;
      border: 2px solid #2E2E2E;
      margin: 35px 5px; }
      .serteficats .slick-dots li.slick-active {
        border: 2px solid #E43135;
        background: #E43135; }

.typesofpay {
  background: url(../img/bg_price_typesofpay.jpg) 50% 100% no-repeat;
  background-size: cover;
  padding-bottom: 17px; }
  .typesofpay h2 {
    padding-top: 40px;
    padding-bottom: 40px; }
    @media screen and (max-width: 1100px) {
      .typesofpay h2 {
        padding-top: 30px;
        padding-bottom: 0px; } }
  .typesofpay--item {
    margin-top: 40px;
    margin-bottom: 40px;
    text-align: center;
    width: 50%;
    float: left;
    box-sizing: border-box; }
    @media screen and (max-width: 1100px) {
      .typesofpay--item {
        margin-top: 20px;
        margin-bottom: 20px; } }
    @media screen and (max-width: 768px) {
      .typesofpay--item {
        margin-top: 15px;
        margin-bottom: 15px; } }
    .typesofpay--item:nth-child(odd) {
      padding-left: 70px; }
      @media screen and (max-width: 1100px) {
        .typesofpay--item:nth-child(odd) {
          padding: 0;
          padding-right: 20px; } }
      @media screen and (max-width: 768px) {
        .typesofpay--item:nth-child(odd) {
          padding-right: 10px; } }
    .typesofpay--item:nth-child(even) {
      padding-right: 70px; }
      @media screen and (max-width: 1100px) {
        .typesofpay--item:nth-child(even) {
          padding: 0;
          padding-left: 20px; } }
      @media screen and (max-width: 768px) {
        .typesofpay--item:nth-child(even) {
          padding-left: 10px; } }
  .typesofpay--icon {
    width: 138px;
    height: 138px;
    margin: auto;
    transform: scale(0.8); }
    @media screen and (max-width: 1100px) {
      .typesofpay--icon {
        transform: scale(0.7); } }
    @media screen and (max-width: 768px) {
      .typesofpay--icon {
        transform: scale(0.5); } }
    .typesofpay--icon img {
      width: 100%;
      height: auto; }
  .typesofpay h3 {
    padding-top: 44px;
    font-weight: bold;
    font-size: 36px;
    color: #DC2234;
    padding-bottom: 15px; }
    @media screen and (max-width: 1100px) {
      .typesofpay h3 {
        padding-top: 20px;
        font-size: 24px;
        padding-bottom: 10px; } }
    @media screen and (max-width: 768px) {
      .typesofpay h3 {
        padding-top: 0;
        margin-top: -20px;
        font-size: 18px;
        padding-bottom: 5px; } }
  .typesofpay p {
    font-size: 24px;
    color: #111111; }
    @media screen and (max-width: 1100px) {
      .typesofpay p {
        font-size: 18px; } }
    @media screen and (max-width: 768px) {
      .typesofpay p {
        font-size: 14px; } }

.fuelcoupons {
  text-align: center;
  background: url(../img/bg_price_fuelcoupons.jpg) 50% 100% no-repeat;
  background-size: cover;
  padding-bottom: 55px; }
  @media screen and (max-width: 768px) {
    .fuelcoupons {
      text-align: center; } }
  .fuelcoupons h2 {
    padding-top: 34px;
    padding-bottom: 26px; }
    @media screen and (max-width: 768px) {
      .fuelcoupons h2 {
        padding-top: 32px;
        padding-bottom: 16px; } }
  .fuelcoupons--text {
    max-width: 975px;
    margin: auto;
    text-align: left; }
  .fuelcoupons p {
    font-size: 24px; }
    @media screen and (max-width: 965px) {
      .fuelcoupons p br {
        display: none; } }
    @media screen and (max-width: 768px) {
      .fuelcoupons p {
        font-size: 18px; } }
  .fuelcoupons--items {
    padding-top: 81px; }
    @media screen and (max-width: 768px) {
      .fuelcoupons--items {
        padding-top: 16px;
        padding-bottom: 32px; } }
  .fuelcoupons h3 {
    font-size: 36px;
    font-weight: bold; }
    @media screen and (max-width: 768px) {
      .fuelcoupons h3 {
        font-size: 24px; } }
  .fuelcoupons--item {
    display: inline-block;
    vertical-align: top;
    padding: 42px 72px; }
    @media screen and (max-width: 850px) {
      .fuelcoupons--item {
        padding: 42px 40px; } }
    @media screen and (max-width: 768px) {
      .fuelcoupons--item {
        padding: 9px 0px;
        width: 30%; } }
  .fuelcoupons--circle {
    width: 120px;
    height: 120px;
    border-radius: 180px;
    border: 6px solid #DC2234;
    box-sizing: border-box;
    padding-top: 30px;
    font-size: 38px;
    font-weight: 500;
    color: #E8483C;
    margin-bottom: 31px; }
    @media screen and (max-width: 768px) {
      .fuelcoupons--circle {
        margin: auto;
        margin-bottom: 31px;
        width: 85px;
        height: 85px;
        padding-top: 20px;
        border: 3px solid #DC2234;
        font-size: 28px;
        margin-bottom: 16px; } }
    .fuelcoupons--circle span {
      font-size: 24px;
      display: block;
      line-height: .2; }
      @media screen and (max-width: 768px) {
        .fuelcoupons--circle span {
          font-size: 14px; } }
  .fuelcoupons--baloon {
    margin-bottom: 22px;
    font-size: 32px;
    font-weight: bold;
    color: #DE2835;
    border: 6px solid #2F2F2F;
    border-radius: 73px;
    width: 120px;
    height: 54px;
    box-sizing: border-box;
    line-height: 42px; }
    @media screen and (max-width: 768px) {
      .fuelcoupons--baloon {
        margin: auto;
        margin-bottom: 22px;
        border: 3px solid #2F2F2F;
        width: 85px;
        height: 32px;
        font-size: 24px;
        line-height: 28px;
        margin-bottom: 8px; } }
  .fuelcoupons--boxes {
    text-align: left;
    padding-bottom: 71px; }
    @media screen and (max-width: 768px) {
      .fuelcoupons--boxes {
        padding-bottom: 16px; } }
    .fuelcoupons--boxes:last-child {
      padding-bottom: 0; }
    .fuelcoupons--boxes h4 {
      margin-left: 99px;
      margin-top: -20px;
      font-weight: bold;
      color: #DC2234;
      font-size: 36px;
      padding-bottom: 40px; }
      @media screen and (max-width: 768px) {
        .fuelcoupons--boxes h4 {
          margin-left: 0;
          font-size: 24px;
          padding-bottom: 10px; } }
  .fuelcoupons--box {
    max-width: 700px;
    padding-bottom: 19px; }
    .fuelcoupons--box-img {
      padding-left: 45px;
      width: 99px;
      box-sizing: border-box;
      vertical-align: middle;
      display: table-cell; }
      @media screen and (max-width: 768px) {
        .fuelcoupons--box-img {
          padding-left: 0;
          width: 50px; } }
    .fuelcoupons--box-text {
      font-size: 24px;
      vertical-align: top;
      display: table-cell; }
      @media screen and (max-width: 768px) {
        .fuelcoupons--box-text {
          font-size: 18px; } }
    .fuelcoupons--box-text2 {
      padding-left: 99px;
      font-size: 24px;
      vertical-align: top; }
      @media screen and (max-width: 768px) {
        .fuelcoupons--box-text2 {
          padding-left: 0;
          font-size: 18px; } }

.fuellist {
  text-align: center;
  background: url(../img/bg_price_fuellist.jpg) 50% 100% no-repeat;
  background-size: cover;
  padding-bottom: 20px; }
  .fuellist h2 {
    padding-top: 37px;
    padding-bottom: 26px; }
    @media screen and (max-width: 768px) {
      .fuellist h2 {
        padding-top: 32px;
        padding-bottom: 16px; } }
  .fuellist--left {
    float: left;
    width: 58.33333%; }
    @media screen and (max-width: 992px) {
      .fuellist--left {
        width: 100%; } }
  .fuellist--right {
    float: left;
    width: 41.66667%; }
    @media screen and (max-width: 992px) {
      .fuellist--right {
        display: none; } }
    .fuellist--right img {
      display: block;
      float: right;
      max-width: 100%;
      height: auto; }
  .fuellist--text {
    max-width: 975px;
    margin: auto;
    text-align: left;
    padding-bottom: 80px; }
    @media screen and (max-width: 768px) {
      .fuellist--text {
        padding-bottom: 16px; } }
  .fuellist p {
    font-size: 24px; }
    @media screen and (max-width: 965px) {
      .fuellist p br {
        display: none; } }
    @media screen and (max-width: 768px) {
      .fuellist p {
        font-size: 18px; } }
  .fuellist--items {
    padding-top: 81px; }
    @media screen and (max-width: 768px) {
      .fuellist--items {
        padding-top: 16px;
        padding-bottom: 32px; } }
  .fuellist h3 {
    font-size: 36px;
    font-weight: bold; }
    @media screen and (max-width: 768px) {
      .fuellist h3 {
        font-size: 24px; } }
  .fuellist--item {
    display: inline-block;
    vertical-align: top;
    padding: 42px 72px; }
    @media screen and (max-width: 850px) {
      .fuellist--item {
        padding: 42px 40px; } }
    @media screen and (max-width: 768px) {
      .fuellist--item {
        padding: 9px 0px;
        width: 30%; } }
  .fuellist--boxes {
    text-align: left;
    padding-bottom: 34px; }
    @media screen and (max-width: 768px) {
      .fuellist--boxes {
        padding-bottom: 16px; } }
    .fuellist--boxes:last-child {
      padding-bottom: 0; }
    .fuellist--boxes h4 {
      margin-left: 98px;
      font-weight: bold;
      color: #DC2234;
      font-size: 36px;
      padding-bottom: 40px; }
      @media screen and (max-width: 768px) {
        .fuellist--boxes h4 {
          margin-left: 0;
          font-size: 24px;
          padding-bottom: 10px; } }
  .fuellist--box {
    max-width: 700px;
    padding-bottom: 27px; }
    .fuellist--box-img {
      text-align: right;
      padding-right: 20px;
      width: 99px;
      box-sizing: border-box;
      vertical-align: top;
      display: table-cell; }
      @media screen and (max-width: 768px) {
        .fuellist--box-img {
          padding-left: 0;
          width: 50px; } }
    .fuellist--box-text {
      font-size: 24px;
      vertical-align: middle;
      display: table-cell; }
      @media screen and (max-width: 768px) {
        .fuellist--box-text {
          font-size: 18px; } }
    .fuellist--box-text2 {
      padding-left: 99px;
      font-size: 24px; }
      @media screen and (max-width: 768px) {
        .fuellist--box-text2 {
          padding-left: 0;
          font-size: 18px; } }
      @media screen and (max-width: 440px) {
        .fuellist--box-text2 br {
          display: none; } }

.formblok {
  padding-top: 40px;
  padding-bottom: 40px;
  text-align: center;
  background: #fff44d;
  background: -moz-linear-gradient(left, #fff44d 0%, #ec583f 100%);
  background: -webkit-linear-gradient(left, #fff44d 0%, #ec583f 100%);
  background: linear-gradient(to right, #fff44d 0%, #ec583f 100%); }
  @media screen and (max-width: 768px) {
    .formblok {
      padding-top: 30px;
      padding-bottom: 30px; } }
  .formblok--title {
    font-size: 36px;
    font-weight: bold;
    color: #fff;
    padding-bottom: 40px; }
    @media screen and (max-width: 768px) {
      .formblok--title {
        font-size: 24px;
        padding-bottom: 16px; } }
  .formblok input {
    color: #111111;
    padding: 0;
    margin: 0;
    border: 0;
    width: 277px;
    height: 40px;
    border-radius: 8px;
    background: #fff;
    padding-left: 27px;
    box-sizing: border-box;
    font-size: 18px;
    font-weight: bold;
    margin: 0 10px; }
    @media screen and (max-width: 992px) {
      .formblok input {
        display: block;
        margin: 7px auto;
        width: 400px; } }
    @media screen and (max-width: 768px) {
      .formblok input {
        display: block;
        margin: 4px auto;
        width: 277px; } }
  .formblok input[type="submit"] {
    display: none; }
  .formblok label {
    text-align: center;
    color: #fff;
    display: inline-block;
    width: 277px;
    height: 40px;
    line-height: 40px;
    border-radius: 8px;
    box-sizing: border-box;
    font-size: 18px;
    font-weight: bold;
    border: 2px solid #fff;
    vertical-align: middle;
    margin: 0 10px; }
    @media screen and (max-width: 992px) {
      .formblok label {
        width: 400px; } }
    @media screen and (max-width: 768px) {
      .formblok label {
        width: 277px; } }

.textblock {
  background: url(../img/bg_wholesale_textblock.png) 50% 0 no-repeat;
  box-sizing: border-box;
  background-size: cover;
  max-height: 1000px;
  padding-top: 30px;
  padding-bottom: 30px; }
  .textblock h2 {
    padding-bottom: 70px; }
  .textblock p {
    font-size: 24px;
    line-height: 1.8;
    padding-bottom: 27px; }
    @media screen and (max-width: 768px) {
      .textblock p {
        font-size: 18px; } }

.coopscheme {
  padding-bottom: 20px; }
  .coopscheme h2 {
    padding-top: 40px;
    padding-bottom: 40px; }
  .coopscheme--item {
    text-align: center;
    float: left;
    width: 33.3%;
    padding-bottom: 40px; }
    @media screen and (max-width: 768px) {
      .coopscheme--item {
        width: 100%;
        margin: auto;
        max-width: 400px;
        float: none;
        padding-bottom: 20px; }
        .coopscheme--item:last-child:after {
          display: none; }
        .coopscheme--item:after {
          content: '';
          display: block;
          clear: both;
          background: url(../img/r.svg);
          width: 16px;
          height: 24px;
          background-size: cover;
          margin: 30px auto 0; } }
  .coopscheme--icon {
    height: 140px;
    display: inline-block;
    transform: scale(0.9); }
    @media screen and (max-width: 992px) {
      .coopscheme--icon {
        transform: scale(0.7); } }
    @media screen and (max-width: 768px) {
      .coopscheme--icon {
        width: 60px;
        float: left;
        transform: scale(1);
        height: 80px; }
        .coopscheme--icon span {
          height: 80px !important; }
        .coopscheme--icon img {
          max-width: 100%;
          height: auto; } }
    .coopscheme--icon span {
      height: 140px;
      display: table-cell;
      vertical-align: bottom; }
  .coopscheme h3 {
    text-align: center;
    color: #DC2234;
    font-weight: bold;
    font-size: 33px;
    padding-top: 32px;
    padding-bottom: 16px; }
    @media screen and (max-width: 992px) {
      .coopscheme h3 {
        font-size: 24px;
        padding-top: 0; } }
    @media screen and (max-width: 768px) {
      .coopscheme h3 {
        text-align: left;
        padding-left: 90px;
        padding-bottom: 5px; } }
    @media screen and (max-width: 390px) {
      .coopscheme h3 {
        padding-left: 70px;
        font-size: 18px; } }
  .coopscheme p {
    font-size: 24px;
    text-align: center; }
    @media screen and (max-width: 992px) {
      .coopscheme p {
        font-size: 18px; } }
    @media screen and (max-width: 768px) {
      .coopscheme p {
        text-align: left;
        padding-left: 90px; } }
    @media screen and (max-width: 390px) {
      .coopscheme p {
        padding-left: 70px; } }

.supplyfuel {
  padding-bottom: 40px; }
  @media screen and (max-width: 1170px) {
    .supplyfuel .container {
      padding: 0; } }
  .supplyfuel h2 {
    padding-top: 40px;
    padding-bottom: 40px; }
  .supplyfuel--item {
    position: relative;
    float: left;
    width: 33.33333%;
    background-position: 50% 50%;
    background-repeat: no-repeat;
    background-size: cover;
    height: 33vw;
    max-height: 389px; }
    @media screen and (max-width: 768px) {
      .supplyfuel--item {
        width: 50%;
        height: 48vw;
        max-height: 370px; } }
  @media screen and (max-width: 768px) {
    .supplyfuel--table {
      display: table;
      width: 100%;
      height: 100%; } }
  @media screen and (max-width: 768px) {
    .supplyfuel--cell {
      display: table-cell;
      width: 100%;
      height: 100%;
      background: rgba(255, 255, 255, 0.5);
      vertical-align: middle;
      padding: 15px;
      box-sizing: border-box; } }
  .supplyfuel h3 {
    position: absolute;
    width: 100%;
    padding-left: 5px;
    padding-right: 5px;
    text-align: center;
    box-sizing: border-box;
    bottom: 16px;
    font-size: 24px; }
    @media screen and (max-width: 768px) {
      .supplyfuel h3 {
        font-size: 18px;
        position: static; } }

.ourlife--header {
  padding-bottom: 133px;
  background: url(../img/bg_ourlife_ourlifeheader.jpg) 50% 0 no-repeat;
  background-size: cover; }
  @media screen and (max-width: 992px) {
    .ourlife--header {
      padding-bottom: 30px;
      padding-top: 80px; } }
  @media screen and (max-width: 768px) {
    .ourlife--header {
      padding-bottom: 0; } }
  .ourlife--header h1, .ourlife--header .promo h2, .promo .ourlife--header h2, .ourlife--header .serteficats h2, .serteficats .ourlife--header h2, .ourlife--header .typesofpay h2, .typesofpay .ourlife--header h2, .ourlife--header .fuelcoupons h2, .fuelcoupons .ourlife--header h2, .ourlife--header .fuellist h2, .fuellist .ourlife--header h2, .ourlife--header .textblock h2, .textblock .ourlife--header h2, .ourlife--header .coopscheme h2, .coopscheme .ourlife--header h2, .ourlife--header .supplyfuel h2, .supplyfuel .ourlife--header h2, .ourlife--header .locations h2, .locations .ourlife--header h2 {
    line-height: .7;
    padding-bottom: 43px; }
  .ourlife--header img {
    max-width: 100%;
    height: auto; }
  .ourlife--header span {
    font-weight: bold;
    color: #DC2234; }
  .ourlife--header p {
    font-size: 24px;
    padding-bottom: 28px; }
    @media screen and (max-width: 992px) {
      .ourlife--header p {
        font-size: 18px; } }

.ourlife--item1 {
  width: 33.33333%;
  float: left; }
  .ourlife--item1 img {
    max-width: 100%; }
  @media screen and (max-width: 768px) {
    .ourlife--item1 {
      display: none; } }

.ourlife--item2 {
  width: 50%;
  float: left;
  box-sizing: border-box;
  padding-left: 8px; }
  @media screen and (max-width: 992px) {
    .ourlife--item2 {
      width: 66.66667%;
      padding-left: 20px; } }
  @media screen and (max-width: 768px) {
    .ourlife--item2 {
      width: 100%; } }

.ourlife .catlist {
  padding-top: 40px;
  padding-bottom: 40px;
  text-align: center;
  font-weight: bold;
  font-size: 36px; }
  @media screen and (max-width: 768px) {
    .ourlife .catlist {
      font-size: 24px;
      padding-top: 15px;
      padding-bottom: 15px; } }
  .ourlife .catlist li {
    display: inline-block; }
    .ourlife .catlist li:after {
      content: '/';
      display: inline-block;
      margin-left: 10px; }
    .ourlife .catlist li:last-child:after {
      display: none; }
    .ourlife .catlist li.current-cat a {
      color: #DC2234; }

.ourlife--items {
  padding-right: 30px; }
  @media screen and (max-width: 992px) {
    .ourlife--items {
      padding-right: 0; } }

.ourlife--item {
  margin-bottom: 40px; }

.ourlife--media {
  vertical-align: top;
  width: 33.33333%;
  display: table-cell;
  vertical-align: top;
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: cover; }
  @media screen and (max-width: 600px) {
    .ourlife--media {
      width: 100%;
      display: block;
      height: 60vw; } }
  .ourlife--media img {
    width: 100%;
    height: auto; }

.ourlife--img {
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: cover; }

.ourlife--img1 {
  width: 100%;
  height: 240px; }
  @media screen and (max-width: 1050px) {
    .ourlife--img1 {
      display: none; } }

.ourlife--img2 {
  height: 112px;
  width: 50%;
  float: left; }
  @media screen and (max-width: 1050px) {
    .ourlife--img2 {
      display: none; } }

.ourlife--img3 {
  height: 112px;
  width: 50%;
  float: left; }
  @media screen and (max-width: 1050px) {
    .ourlife--img3 {
      display: none; } }

.ourlife h2 {
  padding-top: 6px;
  font-size: 36px;
  font-weight: bold; }
  @media screen and (max-width: 768px) {
    .ourlife h2 {
      font-size: 24px; } }

.ourlife--date {
  color: #DC2234;
  font-weight: bold;
  padding-bottom: 25px; }
  @media screen and (max-width: 768px) {
    .ourlife--date {
      font-size: 16px; } }
  @media screen and (max-width: 600px) {
    .ourlife--date {
      padding-bottom: 0; } }

.ourlife--textwr {
  border-left: 2px solid #FEF24D;
  border-right: 2px solid #EE6840;
  position: relative;
  width: 66.66667%;
  display: table-cell;
  vertical-align: top; }
  @media screen and (max-width: 600px) {
    .ourlife--textwr {
      display: block;
      width: 100%;
      box-sizing: border-box;
      padding-bottom: 0; } }
  .ourlife--textwr--top {
    right: 0;
    height: 2px;
    left: 0;
    width: 100%;
    position: absolute;
    background: #fff84d;
    background: -moz-linear-gradient(left, #fff84d 0%, #ee6940 100%);
    background: -webkit-linear-gradient(left, #fff84d 0%, #ee6940 100%);
    background: linear-gradient(to right, #fff84d 0%, #ee6940 100%); }
  .ourlife--textwr--bottom {
    bottom: 0;
    height: 2px;
    left: 0;
    width: 100%;
    position: absolute;
    background: #fff84d;
    background: -moz-linear-gradient(left, #fff84d 0%, #ee6940 100%);
    background: -webkit-linear-gradient(left, #fff84d 0%, #ee6940 100%);
    background: linear-gradient(to right, #fff84d 0%, #ee6940 100%); }

.ourlife--text {
  background: url(../img/media-more.svg) 96% 57% no-repeat;
  padding-right: 75px;
  padding-bottom: 15px;
  padding-left: 18px;
  box-sizing: border-box; }
  @media screen and (max-width: 600px) {
    .ourlife--text {
      background: none; } }

.ourlife p {
  padding-bottom: 0;
  font-size: 24px; }
  @media screen and (max-width: 768px) {
    .ourlife p {
      font-size: 14px; } }
  @media screen and (max-width: 600px) {
    .ourlife p {
      display: none; } }

.ourlife--data {
  display: block;
  font-size: 36px;
  font-weight: bold;
  text-align: center;
  color: #DC2234;
  padding-bottom: 25px; }

.ourlife .more--btn {
  background: url(../img/more--button.svg);
  background-size: 100% 100%;
  color: #DC2234;
  border-radius: 8px;
  display: block;
  margin: auto;
  width: 277px;
  height: 40px;
  line-height: 40px;
  text-align: center;
  font-weight: bold;
  font-size: 18px;
  margin-bottom: 40px; }

.content {
  padding-top: 25px; }
  .content p {
    font-size: 24px; }
    @media screen and (max-width: 992px) {
      .content p {
        font-size: 18px; } }
  .content img {
    margin: 20px;
    margin-top: 0; }
    .content img.alignright {
      margin-right: 0; }
    .content img.alignleft {
      margin-left: 0; }
      @media screen and (max-width: 768px) {
        .content img.alignleft {
          float: none;
          width: 100%;
          height: auto; } }

.comments h3 {
  font-size: 36px;
  font-weight: bold;
  text-align: center;
  padding-bottom: 31px; }

.comments--item {
  padding-bottom: 27px; }

.comments .avatar {
  float: left;
  width: 57px;
  height: 57px;
  border-radius: 180px;
  background: url(../img/dafault-ava.png); }

.comments .children {
  padding-top: 20px;
  padding-left: 40px;
  padding-bottom: 30px; }
  .comments .children .avatar {
    background: url(../img/admin.png); }

.comments--name {
  float: left;
  margin-top: 10px;
  font-weight: bold;
  color: #DC2234;
  font-size: 24px;
  margin-left: 20px; }

.comments--text {
  font-size: 24px; }
  @media screen and (max-width: 768px) {
    .comments--text {
      font-size: 18px; } }

.comments--form {
  padding-top: 16px; }
  .comments--form h3 {
    padding-bottom: 18px; }

.comments form {
  padding-top: 10px;
  padding-bottom: 40px; }

.comments textarea {
  resize: none;
  font-weight: bold;
  font-family: 'Roboto';
  font-size: 18px;
  padding: 19px;
  border-radius: 8px;
  width: 100%;
  box-sizing: border-box;
  height: 100px;
  border: 0;
  border: 2px solid #EC5643; }

.comments input {
  width: 100%;
  box-sizing: border-box;
  height: 40px;
  font-weight: bold;
  font-size: 18px;
  border: 0;
  border-radius: 5px;
  padding-left: 30px;
  border: 2px solid #EC5643;
  margin-bottom: 22px; }

.comments label {
  width: 100%;
  color: #fff;
  text-align: center;
  display: block;
  box-sizing: border-box;
  height: 40px;
  line-height: 40px;
  font-weight: bold;
  font-size: 18px;
  border-radius: 8px;
  background: #eb523e;
  background: -moz-linear-gradient(left, #eb523e 0%, #dc2334 100%);
  background: -webkit-linear-gradient(left, #eb523e 0%, #dc2334 100%);
  background: linear-gradient(to right, #eb523e 0%, #dc2334 100%); }

.comments span {
  margin-top: -20px;
  padding-bottom: 3px;
  font-weight: bold;
  font-size: 12px;
  display: block; }

.comments input[type="submit"] {
  display: none; }

.form--left {
  padding-right: 15px;
  box-sizing: border-box;
  width: 25%;
  float: left; }
  @media screen and (max-width: 992px) {
    .form--left {
      width: 50%; } }
  @media screen and (max-width: 768px) {
    .form--left {
      width: 100%;
      padding: 0; } }

.form--right {
  padding-left: 5px;
  box-sizing: border-box;
  width: 75%;
  float: left; }
  @media screen and (max-width: 992px) {
    .form--right {
      width: 50%; } }
  @media screen and (max-width: 768px) {
    .form--right {
      width: 100%;
      padding: 0; } }

.alignright {
  float: right; }

.alignleft {
  float: left; }

.aligncenter {
  margin: auto; }

.photogall {
  margin-left: -10px;
  margin-right: -10px;
  padding-top: 40px;
  padding-bottom: 30px; }
  @media screen and (max-width: 430px) {
    .photogall {
      margin: 0; } }
  .photogall:after {
    content: '';
    display: block;
    clear: both;
    height: 0; }
  .photogall a {
    display: block;
    width: 33.3%;
    float: left;
    padding: 10px;
    box-sizing: border-box;
    height: 260px;
    height: 19vw;
    overflow: hidden; }
    @media screen and (max-width: 768px) {
      .photogall a {
        width: 50%;
        height: 33vw; } }
    @media screen and (max-width: 430px) {
      .photogall a {
        width: 100%;
        padding-right: 0;
        padding-left: 0;
        height: auto;
        padding-bottom: 5px;
        padding-top: 5px; } }
    .photogall a img {
      margin: 0;
      width: 100%;
      height: auto; }

@media screen and (max-width: 992px) {
  .sale--header {
    padding-top: 80px; } }

.sale--header h1, .sale--header .promo h2, .promo .sale--header h2, .sale--header .serteficats h2, .serteficats .sale--header h2, .sale--header .typesofpay h2, .typesofpay .sale--header h2, .sale--header .fuelcoupons h2, .fuelcoupons .sale--header h2, .sale--header .fuellist h2, .fuellist .sale--header h2, .sale--header .textblock h2, .textblock .sale--header h2, .sale--header .coopscheme h2, .coopscheme .sale--header h2, .sale--header .supplyfuel h2, .supplyfuel .sale--header h2, .sale--header .locations h2, .locations .sale--header h2 {
  line-height: .7;
  padding-bottom: 15px; }

.sale .catlist {
  padding-top: 40px;
  padding-bottom: 40px;
  text-align: center;
  font-weight: bold;
  font-size: 36px; }
  @media screen and (max-width: 768px) {
    .sale .catlist {
      font-size: 24px;
      padding-top: 15px;
      padding-bottom: 15px; } }
  .sale .catlist li {
    display: inline-block; }
    .sale .catlist li:after {
      content: '/';
      display: inline-block;
      margin-left: 10px; }
    .sale .catlist li:last-child:after {
      display: none; }
    .sale .catlist li.current-cat a {
      color: #DC2234; }

.sale--items {
  padding-right: 30px; }
  @media screen and (max-width: 992px) {
    .sale--items {
      padding-right: 0; } }

.sale--item {
  margin-bottom: 40px; }

.sale--media {
  vertical-align: top;
  width: 33.33333%;
  display: table-cell;
  vertical-align: top;
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: cover; }
  @media screen and (max-width: 600px) {
    .sale--media {
      width: 100%;
      display: block;
      height: 60vw; } }
  .sale--media img {
    width: 100%;
    height: auto; }

.sale--img {
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: cover; }

.sale--img1 {
  width: 100%;
  height: 240px; }

.sale--img2 {
  height: 112px;
  width: 50%;
  float: left; }

.sale--img3 {
  height: 112px;
  width: 50%;
  float: left; }

.sale h2 {
  padding-top: 5px;
  font-size: 36px;
  font-weight: bold; }
  @media screen and (max-width: 768px) {
    .sale h2 {
      font-size: 24px; } }

.sale--date {
  color: #DC2234;
  font-weight: bold;
  padding-bottom: 25px;
  padding-top: 4px; }
  @media screen and (max-width: 768px) {
    .sale--date {
      font-size: 16px; } }
  @media screen and (max-width: 600px) {
    .sale--date {
      padding-bottom: 0; } }

.sale--textwr {
  position: relative;
  width: 66.66667%;
  display: table-cell;
  vertical-align: top;
  padding-bottom: 32px;
  border-left: 2px solid #FEF24D;
  border-right: 2px solid #EE6840; }
  @media screen and (max-width: 600px) {
    .sale--textwr {
      display: block;
      width: 100%;
      box-sizing: border-box;
      padding-bottom: 0; } }
  .sale--textwr--top {
    right: 0;
    height: 2px;
    left: 0;
    width: 100%;
    position: absolute;
    background: #fff84d;
    background: -moz-linear-gradient(left, #fff84d 0%, #ee6940 100%);
    background: -webkit-linear-gradient(left, #fff84d 0%, #ee6940 100%);
    background: linear-gradient(to right, #fff84d 0%, #ee6940 100%); }
  .sale--textwr--bottom {
    bottom: 0;
    height: 2px;
    left: 0;
    width: 100%;
    position: absolute;
    background: #fff84d;
    background: -moz-linear-gradient(left, #fff84d 0%, #ee6940 100%);
    background: -webkit-linear-gradient(left, #fff84d 0%, #ee6940 100%);
    background: linear-gradient(to right, #fff84d 0%, #ee6940 100%); }

.sale--text {
  background: url(../img/media-more.svg) 98% 50% no-repeat;
  padding-right: 75px;
  padding-bottom: 15px;
  padding-left: 20px;
  box-sizing: border-box; }
  @media screen and (max-width: 600px) {
    .sale--text {
      background: none; } }

.sale p {
  padding-bottom: 0;
  font-size: 24px; }
  @media screen and (max-width: 768px) {
    .sale p {
      font-size: 14px; } }
  @media screen and (max-width: 600px) {
    .sale p {
      display: none; } }

.sale--data {
  display: block;
  font-size: 36px;
  font-weight: bold;
  text-align: center;
  color: #DC2234;
  padding-bottom: 25px; }

.sale .more--btn {
  background: url(../img/more--button.svg);
  background-size: 100% 100%;
  color: #DC2234;
  border-radius: 8px;
  display: block;
  margin: auto;
  width: 277px;
  height: 40px;
  line-height: 40px;
  text-align: center;
  font-weight: bold;
  font-size: 18px;
  margin-bottom: 40px; }

.locations h2 {
  padding-top: 40px;
  padding-bottom: 55px; }
  .locations h2 span {
    color: #DC2234; }

.locations--item {
  padding-bottom: 55px; }
  .locations--item img {
    vertical-align: middle;
    margin-right: 30px;
    margin-top: -10px; }
    @media screen and (max-width: 768px) {
      .locations--item img {
        width: 18px;
        margin-right: 10px; } }
  .locations--item strong {
    display: inline-block;
    padding-bottom: 35px;
    font-size: 36px; }
    @media screen and (max-width: 768px) {
      .locations--item strong {
        font-size: 24px;
        padding-bottom: 15px; } }
    @media screen and (max-width: 500px) {
      .locations--item strong {
        font-size: 18px; } }

.locations--img {
  box-sizing: border-box;
  width: 50%;
  float: left;
  padding-right: 10px;
  overflow: hidden; }
  @media screen and (max-width: 768px) {
    .locations--img {
      width: 100%;
      padding: 0; } }

.locations--imgwr {
  background-repeat: no-repeat;
  background-size: cover !important;
  height: 31vw;
  max-height: 360px;
  width: 100%; }
  @media screen and (max-width: 768px) {
    .locations--imgwr {
      max-height: 368px;
      height: 48vw; } }

.locations--text {
  box-sizing: border-box;
  width: 50%;
  float: left;
  padding-left: 10px;
  position: relative; }
  .locations--text .acf-map {
    max-height: 360px;
    height: 31vw;
    width: 100%; }
    @media screen and (max-width: 768px) {
      .locations--text .acf-map {
        max-height: 368px;
        height: 48vw; } }
  @media screen and (max-width: 768px) {
    .locations--text {
      width: 100%;
      padding-left: 0; } }
  .locations--text img {
    display: block;
    width: 100%;
    height: auto; }

.footer {
  background: #2F2F2F;
  font-size: 14px;
  color: #fff; }
  .footer a {
    color: #fff; }
  .footer p {
    padding-bottom: 15px;
    font-size: 14px; }
  .footer--btn {
    display: block;
    border-radius: 8px;
    max-width: 277px;
    height: 40px;
    line-height: 40px;
    text-align: center;
    font-size: 18px;
    font-weight: bold;
    background: url(../img/footer--btn.svg);
    background-size: 100% 100%; }
    .footer--btn:active {
      color: #E23638 !important;
      background: url(../img/footer--btn_active.svg) !important; }
  .footer--item {
    width: 33.33333%;
    float: left;
    box-sizing: border-box; }
    @media screen and (max-width: 992px) {
      .footer--item {
        padding-left: 10px; } }
    @media screen and (max-width: 768px) {
      .footer--item {
        padding-left: 0;
        float: none;
        width: 280px;
        margin: auto; } }
    .footer--item h3 {
      padding-top: 51px;
      padding-bottom: 26px;
      font-size: 18px;
      font-weight: bold;
      color: #DC2234; }
      @media screen and (max-width: 768px) {
        .footer--item h3 {
          padding-top: 30px; } }
  .footer--tel img {
    display: inline-block;
    margin-right: 10px; }
  .footer ul li {
    display: inline-block;
    vertical-align: bottom;
    margin-right: 22px; }
    .footer ul li a {
      background-position: 0 100%;
      display: block;
      width: 36px;
      height: 36px;
      background-size: 100%;
      background-repeat: no-repeat; }
    .footer ul li .insta {
      background-image: url(../img/instagram.svg); }
      .footer ul li .insta:hover {
        background-image: url(../img/instagram_hover.svg); }
    .footer ul li .fb {
      background-image: url(../img/facebook.svg); }
      .footer ul li .fb:hover {
        background-image: url(../img/facebook_hover.svg); }
    .footer ul li .yt {
      background-image: url(../img/youtube.svg); }
      .footer ul li .yt:hover {
        background-image: url(../img/youtube_hover.svg); }

.ttop {
  position: absolute;
  top: 0;
  width: 100%;
  left: 0; }

.ttopc {
  position: relative; }

.wholesale--header {
  max-height: 735px;
  height: calc(100% - 62px);
  background: url(../img/bg_wholesale_wholesaleheader.png) 50% 0 no-repeat; }
  @media screen and (max-width: 364px) {
    .wholesale--header .promo h2, .promo .wholesale--header h2, .wholesale--header .serteficats h2, .serteficats .wholesale--header h2, .wholesale--header .typesofpay h2, .typesofpay .wholesale--header h2, .wholesale--header .fuelcoupons h2, .fuelcoupons .wholesale--header h2, .wholesale--header .fuellist h2, .fuellist .wholesale--header h2, .wholesale--header .textblock h2, .textblock .wholesale--header h2, .wholesale--header .coopscheme h2, .coopscheme .wholesale--header h2, .wholesale--header .supplyfuel h2, .supplyfuel .wholesale--header h2, .wholesale--header .locations h2, .locations .wholesale--header h2, .wholesale--header h1 {
      padding-top: 60px; } }
  .wholesale--header .promo h2 span, .promo .wholesale--header h2 span, .wholesale--header .serteficats h2 span, .serteficats .wholesale--header h2 span, .wholesale--header .typesofpay h2 span, .typesofpay .wholesale--header h2 span, .wholesale--header .fuelcoupons h2 span, .fuelcoupons .wholesale--header h2 span, .wholesale--header .fuellist h2 span, .fuellist .wholesale--header h2 span, .wholesale--header .textblock h2 span, .textblock .wholesale--header h2 span, .wholesale--header .coopscheme h2 span, .coopscheme .wholesale--header h2 span, .wholesale--header .supplyfuel h2 span, .supplyfuel .wholesale--header h2 span, .wholesale--header .locations h2 span, .locations .wholesale--header h2 span, .wholesale--header h1 span {
    display: block;
    color: #DC2234;
    margin-top: 43px;
    padding-top: 54px;
    background: url(../img/delivery-truck.svg) 50% 0 no-repeat; }

.contacts--header {
  box-sizing: border-box;
  padding-top: 30px;
  padding-bottom: 30px;
  height: calc(100% - 62px);
  max-height: 810px;
  background: url(../img/contacts_header.jpg) 50% 0 no-repeat;
  background-size: cover; }
  @media screen and (max-width: 768px) {
    .contacts--header {
      padding-top: 0;
      padding-bottom: 0; } }
  @media screen and (max-height: 580px) {
    .contacts--header {
      padding-top: 80px;
      padding-bottom: 30px; } }
  .contacts--header--item {
    width: 50%;
    float: left;
    box-sizing: border-box; }
    @media screen and (max-width: 1340px) {
      .contacts--header--item {
        padding-left: 100px; } }
    @media screen and (max-width: 992px) {
      .contacts--header--item {
        padding-left: 55px; } }
    @media screen and (max-width: 768px) {
      .contacts--header--item {
        width: 380px;
        float: none;
        margin: auto; } }
    @media screen and (max-width: 400px) {
      .contacts--header--item {
        width: 270px; } }
    @media screen and (max-width: 360px) {
      .contacts--header--item {
        margin: 0;
        width: 100%; } }
  @media screen and (max-width: 768px) {
    .contacts--header--bottom {
      padding-top: 65px;
      padding-left: 0; } }
  .contacts--header h1, .contacts--header .promo h2, .promo .contacts--header h2, .contacts--header .serteficats h2, .serteficats .contacts--header h2, .contacts--header .typesofpay h2, .typesofpay .contacts--header h2, .contacts--header .fuelcoupons h2, .fuelcoupons .contacts--header h2, .contacts--header .fuellist h2, .fuellist .contacts--header h2, .contacts--header .textblock h2, .textblock .contacts--header h2, .contacts--header .coopscheme h2, .coopscheme .contacts--header h2, .contacts--header .supplyfuel h2, .supplyfuel .contacts--header h2, .contacts--header .locations h2, .locations .contacts--header h2 {
    padding-bottom: 100px; }
    @media screen and (max-width: 768px) {
      .contacts--header h1, .contacts--header .promo h2, .promo .contacts--header h2, .contacts--header .serteficats h2, .serteficats .contacts--header h2, .contacts--header .typesofpay h2, .typesofpay .contacts--header h2, .contacts--header .fuelcoupons h2, .fuelcoupons .contacts--header h2, .contacts--header .fuellist h2, .fuellist .contacts--header h2, .contacts--header .textblock h2, .textblock .contacts--header h2, .contacts--header .coopscheme h2, .coopscheme .contacts--header h2, .contacts--header .supplyfuel h2, .supplyfuel .contacts--header h2, .contacts--header .locations h2, .locations .contacts--header h2 {
        padding-bottom: 60px; } }
  .contacts--header span {
    color: #DC2234; }
  .contacts--header h3 {
    font-size: 36px;
    font-weight: bold; }
    @media screen and (max-width: 400px) {
      .contacts--header h3 {
        font-size: 24px; } }
    .contacts--header h3 a {
      display: block; }
  .contacts--header ul li {
    display: inline-block;
    vertical-align: bottom;
    margin-right: 22px; }
  .contacts--header .hasicon {
    position: relative; }
    .contacts--header .hasicon img {
      display: block;
      top: 16%;
      vertical-align: middle;
      position: absolute;
      left: -55px; }
  .contacts--header .hasicon2 {
    position: relative; }
    .contacts--header .hasicon2 img {
      display: block;
      top: 29%;
      vertical-align: middle;
      position: absolute;
      left: -55px; }
  .contacts--header .tel {
    padding-top: 20px;
    padding-bottom: 20px; }
    @media screen and (max-width: 400px) {
      .contacts--header .tel {
        padding-top: 10px;
        padding-bottom: 10px; } }
  .contacts--header .hesh {
    padding-bottom: 5px;
    font-size: 24px;
    padding-top: 24px; }
    @media screen and (max-width: 400px) {
      .contacts--header .hesh {
        padding-top: 10px; } }

.hiddennav {
  display: none;
  width: 100%;
  visibility: hidden;
  height: 0; }

@media screen and (max-width: 992px) {
  .single--header {
    padding-top: 80px; }
    .single--header .header--back {
      display: none; } }

.single--header h1, .single--header .promo h2, .promo .single--header h2, .single--header .serteficats h2, .serteficats .single--header h2, .single--header .typesofpay h2, .typesofpay .single--header h2, .single--header .fuelcoupons h2, .fuelcoupons .single--header h2, .single--header .fuellist h2, .fuellist .single--header h2, .single--header .textblock h2, .textblock .single--header h2, .single--header .coopscheme h2, .coopscheme .single--header h2, .single--header .supplyfuel h2, .supplyfuel .single--header h2, .single--header .locations h2, .locations .single--header h2 {
  line-height: .7;
  padding-bottom: 15px; }

form {
  position: relative; }

.wpcf7-form-control-wrap {
  position: relative; }

.wpcf7-not-valid-tip {
  left: 0;
  width: 100%;
  text-align: center;
  position: absolute;
  font-size: .7em !important; }
  @media screen and (max-width: 992px) {
    .wpcf7-not-valid-tip {
      position: static; } }

.ajax-loader {
  display: none !important; }

.wpcf7-mail-sent-ok {
  border-radius: 8px;
  position: absolute;
  bottom: -85px;
  z-index: 100;
  width: 100%;
  left: 0;
  background: #398F14;
  color: #fff;
  box-sizing: border-box;
  margin: auto !important;
  margin-top: 10px !important; }
  @media screen and (max-width: 992px) {
    .wpcf7-mail-sent-ok {
      position: static; } }

.wpcf7-validation-errors {
  border-radius: 8px;
  position: absolute;
  bottom: -85px;
  z-index: 100;
  width: 100%;
  left: 0;
  background: #F7E700;
  box-sizing: border-box;
  margin: auto !important;
  margin-top: 10px !important; }
  @media screen and (max-width: 992px) {
    .wpcf7-validation-errors {
      position: static; } }

@media screen and (max-width: 450px) {
  .formblok input,
  .formblok label {
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important; } }

.popup {
  position: relative;
  max-width: 600px;
  margin: auto; }
  .popup .formblok--title {
    padding-bottom: 20px; }
  .popup .formblok {
    padding: 30px; }
    @media screen and (max-width: 768px) {
      .popup .formblok {
        padding: 15px; } }
  .popup input {
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-top: 16px !important; }
  .popup label {
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-top: 16px !important; }
  .popup .wpcf7-validation-errors {
    position: static !important; }
  .popup .wpcf7-mail-sent-ok {
    position: static !important; }
  .popup .wpcf7-not-valid-tip {
    position: static !important; }

.mfp-close {
  color: #fff !important; }

input:focus::-webkit-input-placeholder {
  color: transparent; }

input:focus:-moz-placeholder {
  color: transparent; }

/* FF 4-18 */
input:focus::-moz-placeholder {
  color: transparent; }

/* FF 19+ */
input:focus:-ms-input-placeholder {
  color: transparent; }

/* IE 10+ */
textarea:focus::-webkit-input-placeholder {
  color: transparent; }

textarea:focus:-moz-placeholder {
  color: transparent; }

/* FF 4-18 */
textarea:focus::-moz-placeholder {
  color: transparent; }

/* FF 19+ */
textarea:focus:-ms-input-placeholder {
  color: transparent; }

/* IE 10+ */
.soc li:hover {
  animation: soc .3s; }

@-webkit-keyframes soc {
  0% {
    transform: scale(1) translateY(0); }
  50% {
    transform: scale(1.3) translateY(-5px); }
  100% {
    transform: scale(1) translateY(0); } }

.single_title h1, .single_title .promo h2, .promo .single_title h2, .single_title .serteficats h2, .serteficats .single_title h2, .single_title .typesofpay h2, .typesofpay .single_title h2, .single_title .fuelcoupons h2, .fuelcoupons .single_title h2, .single_title .fuellist h2, .fuellist .single_title h2, .single_title .textblock h2, .textblock .single_title h2, .single_title .coopscheme h2, .coopscheme .single_title h2, .single_title .supplyfuel h2, .supplyfuel .single_title h2, .single_title .locations h2, .locations .single_title h2 {
  line-height: 1.2; }

.logged-in-as + .form--right {
  width: 100%; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUubWluLmNzcyIsInNvdXJjZXMiOlsic3R5bGUubWluLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1yZXNldC1zY3NzL3Njc3MvX3Jlc2V0LnNjc3MiLCJfZ3JpZC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9fc3VzeS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9fc3VzeS1wcmVmaXguc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3MvX3ZlcnNpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9fdXRpbGl0aWVzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvX3N1LXZhbGlkYXRlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvX3N1LW1hdGguc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9fc2V0dGluZ3Muc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9fbm9ybWFsaXplLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvX3BhcnNlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvX3N5bnRheC1oZWxwZXJzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvX2FwaS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L191bnByZWZpeC5zY3NzIiwiX2ZvbnRzLnNjc3MiLCJfdmFyaWFibGVzLnNjc3MiLCJfY29tcG9uZW50cy5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgJ3Jlc2V0JztcclxuQGltcG9ydCAnZ3JpZCc7XHJcbkBpbXBvcnQgJ2ZvbnRzJztcclxuQGltcG9ydCAnc2xpY2tzbGlkZXIuY3NzJztcclxuQGltcG9ydCAnbWFnbmlmaWMtcG9wYXAuY3NzJztcclxuQGltcG9ydCAndmFyaWFibGVzJztcclxuXHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMnO1xyXG5cclxuXHJcbmgxIHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgZm9udC1zaXplOiA2NHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG5cclxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5MjNweCkge1xyXG4gICAgZm9udC1zaXplOiA1NHB4O1xyXG4gIH1cclxuXHJcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIGZvbnQtc2l6ZTogMzZweDtcclxuICB9XHJcblxyXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDMyMHB4KSB7XHJcbiAgICBmb250LXNpemU6IDMycHg7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLy8gaGVhZGVyXHJcbi5oZWFkZXIge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgJi0taXRlbSB7XHJcbiAgICB3aWR0aDogc3Bhbig2KTtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBmbG9hdDogbm9uZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWJ0bnMge1xyXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgIG1hcmdpbi10b3A6IDI1cHg7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDE0cHg7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB3aWR0aDogNzlweDtcclxuICAgIGhlaWdodDogNzlweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlO1xyXG4gICAgYmFja2dyb3VuZDogdXJsKC4uL2ltZy9oZWFkZXItLWJ0bnMuc3ZnKTtcclxuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IC4zcztcclxuXHJcbiAgICBzdmcgLmZpbGwge1xyXG4gICAgICBmaWxsOiAjRTUzRDNBO1xyXG4gICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuM3M7XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL2hlYWRlci0tYnRuc19ob3Zlci5zdmcpO1xyXG5cclxuICAgICAgc3ZnIC5maWxsIHtcclxuICAgICAgICBmaWxsOiAjZmZmO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc3BhbiB7XHJcbiAgICAgIHBhZGRpbmctdG9wOiAxMnB4O1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgd2lkdGg6IDc5cHg7XHJcbiAgICAgIGhlaWdodDogMzBweDtcclxuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgIGIge1xyXG4gICAgICBoZWlnaHQ6IDMwcHg7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgd2lkdGg6IDc5cHg7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcclxuICAgICAgbWFyZ2luOiAwIDVweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLXRlbCB7XHJcbiAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBtYXJnaW4tdG9wOiAyM3B4O1xyXG4gICAgZm9udC1zaXplOiAyNHB4O1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgaW1nIHtcclxuICAgICAgd2lkdGg6IDE5cHg7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0tZGF0ZSB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBjb2xvcjogI0RDMjIzNDtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgZm9udC1zaXplOiAzNnB4O1xyXG4gIH1cclxuXHJcbiAgJi0tYmFjayB7XHJcbiAgICBwYWRkaW5nLXRvcDogM3B4O1xyXG4gICAgY29sb3I6ICNEQzIyMzQ7XHJcbiAgICBmb250LXNpemU6IDI0cHg7XHJcbiAgICBtYXJnaW4tbGVmdDogLTI4cHg7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcblxyXG59XHJcblxyXG5cclxuLnRvcGJhciB7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbiAgei1pbmRleDogMjA7XHJcbiAgcGFkZGluZy10b3A6IDMycHg7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICBwYWRkaW5nLWxlZnQ6IDE2cHg7XHJcbiAgcGFkZGluZy1yaWdodDogMTZweDtcclxuICBwYWRkaW5nLWJvdHRvbTogMTZweDtcclxuICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMSkgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMTAwJSk7XHJcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDEwMCUpO1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMjU1LCAyNTUsIDI1NSwgMSkgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMTAwJSk7XHJcblxyXG4gICYtLWJ0biB7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIGhlaWdodDogMjBweDtcclxuICAgIHdpZHRoOiAzMnB4O1xyXG4gICAgei1pbmRleDogMTAwO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgYmFja2dyb3VuZDogdXJsKC4uL2ltZy9tZW51LnN2Zykgbm8tcmVwZWF0O1xyXG4gIH1cclxuXHJcbiAgJi0tdGVsIHtcclxuICAgIGZsb2F0OiByaWdodDtcclxuICAgIHdpZHRoOiAxODBweDtcclxuICAgIG1hcmdpbjogYXV0bztcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgY29sb3I6ICMyRjJGMkY7XHJcbiAgICBmb250LXNpemU6IDI0cHg7XHJcblxyXG4gICAgaW1nIHtcclxuICAgICAgd2lkdGg6IDE5cHg7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxufVxyXG5cclxuLm5hdiB7XHJcbiAgaGVpZ2h0OiA2MnB4O1xyXG4gIHBhZGRpbmctdG9wOiAycHg7XHJcbiAgcGFkZGluZy1ib3R0b206IDJweDtcclxuICBiYWNrZ3JvdW5kOiAkY19ibGFjaztcclxuXHJcbiAgbGkge1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICB3aWR0aDogc3BhbigxIG9mIDYpO1xyXG5cclxuICAgIGEge1xyXG4gICAgICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgbWF4LXdpZHRoOiAxNzhweDtcclxuICAgICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgaGVpZ2h0OiA2MHB4O1xyXG4gICAgICBsaW5lLWhlaWdodDogNjBweDtcclxuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgIGNvbG9yOiAjRTMzNzM4O1xyXG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkZHVyYXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgJiBhOmhvdmVyIHtcclxuICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICB9XHJcblxyXG4gICAgJi5jdXJyZW50LW1lbnUtaXRlbSBhIHtcclxuICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNFQTRGM0Q7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS10ZWwge1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgICBmb250LXNpemU6IDI0cHg7XHJcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgd2lkdGg6IDE4MHB4O1xyXG4gICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuXHJcbiAgICBpbWcge1xyXG4gICAgICB3aWR0aDogMThweDtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmNsb3NlIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICB6LWluZGV4OiAyMDtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICBwYWRkaW5nLXRvcDogMjRweDtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuM3M7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogNDBweDtcclxuXHJcbiAgICAmLm9wZW4ge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuXHJcbiAgICB9XHJcblxyXG4gICAgJi0tdGVsIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcblxyXG4gICAgbGkge1xyXG4gICAgICBmbG9hdDogbm9uZTtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAyNHB4O1xyXG5cclxuICAgICAgYSB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiA2MDBweDtcclxuICAgICAgfVxyXG5cclxuICAgICAgJiBhOmhvdmVyIHtcclxuICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5hY3RpdmUgYSB7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjRUE0RjNEO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLmhvbWUge1xyXG4gICYtLWhlYWRlciB7XHJcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDYycHgpO1xyXG4gICAgbWF4LWhlaWdodDogNzM1cHg7XHJcbiAgICBtaW4taGVpZ2h0OiA1MTBweDtcclxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgNXB4IDIwcHggcmdiYSgwLCAwLCAwLCAuMik7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgYmFja2dyb3VuZDogdXJsKC4uL2ltZy9iZ19ob21lX2hlYWRlci5qcGcpIDUwJSAxMDAlIG5vLXJlcGVhdDtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcblxyXG4gICAgLmhlYWRlci0tdGVsIHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiA1MXB4O1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcclxuICAgICAgaGVpZ2h0OiAxMDAlO1xyXG5cclxuICAgICAgLm9uZXNjcmVlbi0tY2VsbCB7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDgwcHg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5vbmVzY3JlZW4tLXRvcCB7XHJcbiAgICAgICAgYm90dG9tOiAzMHB4O1xyXG4gICAgICAgIHRvcDogYXV0bztcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5oZWFkZXItLXRlbCB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gaG9tZVxyXG5cclxuLy8gcHJpY2VibG9ja1xyXG4ucHJpY2VibG9jayB7XHJcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcclxuICAgIHBhZGRpbmctdG9wOiAzMHB4O1xyXG4gIH1cclxuXHJcbiAgJi0taGVhZGVyIHtcclxuICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWcvYmdfcHJpY2VfcHJpY2VibG9jay5qcGcpIDUwJSAwIG5vLXJlcGVhdDtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcblxyXG5cclxuICAgIGgxIHtcclxuICAgICAgcGFkZGluZy10b3A6IDM3cHg7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiA0MXB4O1xyXG5cclxuICAgICAgc3BhbiB7XHJcbiAgICAgICAgY29sb3I6ICNEQzIyMzQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICAmLS1zbGlkZSB7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIHdpZHRoOiBzcGFuKDQpO1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIHBhZGRpbmctbGVmdDogOHB4O1xyXG4gICAgcGFkZGluZy1yaWdodDogOHB4O1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgJjpudGgtY2hpbGQoMSkge1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgJjpudGgtY2hpbGQoMykge1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0taXRlbSB7XHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xyXG4gICAgICB3aWR0aDogMzI4cHg7XHJcbiAgICAgIG1hcmdpbjogYXV0bztcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICB3aWR0aDogMzAwcHg7XHJcbiAgICAgIG1hcmdpbjogYXV0bztcclxuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcclxuICAgIH1cclxuXHJcbiAgICAmLS1oZWFkYm94IHtcclxuICAgICAgcGFkZGluZzogMTlweCAxMXB4O1xyXG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICBoZWlnaHQ6IDgxcHg7XHJcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcvcHJpY2VibG9ja19faGVhZGJveC5zdmcpO1xyXG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG5cclxuICAgICAgJi0taW1nIHtcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XHJcbiAgICAgICAgd2lkdGg6IDUwcHg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYtLXRpdGxlIHtcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICAgIHdpZHRoOiAyMTBweDtcclxuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xyXG5cclxuICAgICAgICBoMiB7XHJcbiAgICAgICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuXHJcbiAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDU1cHgpIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk4MHB4KSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYtLW1ldGEge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICBjb2xvcjogI0RDMjIzNDtcclxuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xyXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcblxyXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExMTVweCkge1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgICBwYWRkaW5nOiA4cHggOHB4O1xyXG4gICAgICAgIGhlaWdodDogNjhweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYtLWJveCB7XHJcbiAgICAgIHBhZGRpbmc6IDlweDtcclxuICAgICAgbWFyZ2luLXRvcDogMTBweDtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBoZWlnaHQ6IDg5cHg7XHJcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcvcHJpY2VibG9ja19fYm94MS5zdmcpO1xyXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XHJcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcblxyXG4gICAgICAmOm50aC1jaGlsZCgyKSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy9wcmljZWJsb2NrX19ib3gxLnN2Zyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6bnRoLWNoaWxkKDMpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL3ByaWNlYmxvY2tfX2JveDIuc3ZnKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpudGgtY2hpbGQoNCkge1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcvcHJpY2VibG9ja19fYm94My5zdmcpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmOm50aC1jaGlsZCg1KSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy9wcmljZWJsb2NrX19ib3g0LnN2Zyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6bnRoLWNoaWxkKDYpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL3ByaWNlYmxvY2tfX2JveDUuc3ZnKTtcclxuXHJcbiAgICAgICAgLnByaWNlYmxvY2stLWl0ZW0tLWJveC0tbmFtZSB7XHJcbiAgICAgICAgICBwYWRkaW5nLXRvcDogMTBweDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICB3aWR0aDogOTQlO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIGhlaWdodDogMTBweDtcclxuICAgICAgICB0b3A6IC0xMHB4O1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzJTtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDMlO1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHJnYigyMzUsIDgxLCA2MSk7XHJcbiAgICAgICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgcmdiYSgyMzUsIDgxLCA2MSwgMSkgMCUsIHJnYmEoMjIxLCAzNywgNTMsIDEpIDEwMCUpO1xyXG4gICAgICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoMjM1LCA4MSwgNjEsIDEpIDAlLCByZ2JhKDIyMSwgMzcsIDUzLCAxKSAxMDAlKTtcclxuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjM1LCA4MSwgNjEsIDEpIDAlLCByZ2JhKDIyMSwgMzcsIDUzLCAxKSAxMDAlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi0tbmFtZSB7XHJcbiAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuICAgICAgICB3aWR0aDogMjAwcHg7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICAgICAgZm9udC1zaXplOiA0OHB4O1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICB0ZXh0LXNoYWRvdzogLTFweCAwICNFMTNFNEQsIDAgMXB4ICNFMTNFNEQsIDFweCAwICNFMTNFNEQsIDAgLTFweCAjRTEzRTREO1xyXG5cclxuICAgICAgICBzcGFuIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDtcclxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJi0tcHJpY2Uge1xyXG4gICAgICAgIGZvbnQtZmFtaWx5OiAnZGlnaXRhbCc7XHJcbiAgICAgICAgd2lkdGg6IDE2MHB4O1xyXG4gICAgICAgIGhlaWdodDogNjVweDtcclxuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICMxMTE7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAgICAgZm9udC1zaXplOiA2OHB4O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gICAgICAgIGxldHRlci1zcGFjaW5nOiA0cHg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgICAgaGVpZ2h0OiA2OHB4O1xyXG4gICAgICAgIHBhZGRpbmc6IDhweDtcclxuXHJcbiAgICAgICAgJi0tbmFtZSB7XHJcbiAgICAgICAgICBmb250LXNpemU6IDM2cHg7XHJcblxyXG4gICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYtLXByaWNlIHtcclxuICAgICAgICAgIGZvbnQtZmFtaWx5OiAnZGlnaXRhbCc7XHJcbiAgICAgICAgICB3aWR0aDogMTYwcHg7XHJcbiAgICAgICAgICBoZWlnaHQ6IDQ4cHg7XHJcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogIzExMTtcclxuICAgICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogNTRweDtcclxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDRweDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zbGljay1kb3RzIHtcclxuICAgIHBhZGRpbmctdG9wOiAxMHB4O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICAgIGxpIHtcclxuICAgICAgd2lkdGg6IDEycHg7XHJcbiAgICAgIGhlaWdodDogMTJweDtcclxuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjMDAwO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAxODBweDtcclxuICAgICAgbWFyZ2luOiA1cHg7XHJcblxyXG4gICAgICAmLnNsaWNrLWFjdGl2ZSB7XHJcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgI0UzM0QzQztcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjRTMzRDNDO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYnV0dG9uIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWhvbWUge1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICAgIHBhZGRpbmctdG9wOiAxNTVweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAxNTZweDtcclxuICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWcvYmdfaG9tZV9wcmljZWJsb2NrLmpwZyk1MCUgMCBuby1yZXBlYXQ7XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgICAgIHBhZGRpbmctdG9wOiAzMHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0tYmFyIHtcclxuICAgIGJhY2tncm91bmQ6IHJnYigyNTQsIDI0NCwgNzcpO1xyXG4gICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgcmdiYSgyNTQsIDI0NCwgNzcsIDEpIDAlLCByZ2JhKDIzNiwgODgsIDYyLCAxKSAxMDAlKTtcclxuICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoMjU0LCAyNDQsIDc3LCAxKSAwJSwgcmdiYSgyMzYsIDg4LCA2MiwgMSkgMTAwJSk7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU0LCAyNDQsIDc3LCAxKSAwJSwgcmdiYSgyMzYsIDg4LCA2MiwgMSkgMTAwJSk7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBtYXJnaW4tdG9wOiAzMnB4O1xyXG4gICAgLy8gaGVpZ2h0OiA4MHB4O1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgcGFkZGluZy10b3A6IDNweDtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IC0xMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIGltZyB7XHJcbiAgICAgIG1hcmdpbjogNXB4IDE1cHg7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHJcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDgwMHB4KSB7XHJcbiAgICAgICAgbWFyZ2luOiA1cHggNHB4O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MjVweCkge1xyXG4gICAgICAgIHdpZHRoOiA1MnB4O1xyXG4gICAgICAgIGhlaWdodDogNTJweDtcclxuICAgICAgfVxyXG5cclxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTIwcHgpIHtcclxuICAgICAgICB3aWR0aDogMzJweDtcclxuICAgICAgICBoZWlnaHQ6IDMycHg7XHJcbiAgICAgICAgbWFyZ2luOiAxNnB4IDRweDtcclxuICAgICAgfVxyXG5cclxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzUwcHgpIHtcclxuICAgICAgICB3aWR0aDogMzBweDtcclxuICAgICAgICBoZWlnaHQ6IDMwcHg7XHJcbiAgICAgICAgbWFyZ2luOiAxNnB4IDJweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gcHJpY2VibG9ja1xyXG4vLyBwaG90b2Jsb2NrXHJcbi5waG90b2Jsb2NrIHtcclxuICBiYWNrZ3JvdW5kOiAjMzMzO1xyXG5cclxuICAmX2Ege1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICB9XHJcblxyXG4gIGltZyB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgfVxyXG5cclxuICAmLS1pdGVtIHtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgICBoZWlnaHQ6IDMwM3B4O1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE0NTBweCkge1xyXG4gICAgICBoZWlnaHQ6IDI1MHB4O1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyMzBweCkge1xyXG4gICAgICBoZWlnaHQ6IDIwMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMDBweCkge1xyXG4gICAgICBoZWlnaHQ6IDE1MHB4O1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgIGhlaWdodDogMTI1cHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS1pdGVtMSB7XHJcbiAgICB3aWR0aDogNDUwcHg7XHJcbiAgICB3aWR0aDogMjMlO1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgIHdpZHRoOiAzMCU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS1pdGVtMiB7XHJcbiAgICB3aWR0aDogNDcwcHg7XHJcbiAgICB3aWR0aDogMjUlO1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgIHdpZHRoOiAzMCU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS1pdGVtMyB7XHJcbiAgICB3aWR0aDogNDgwcHg7XHJcbiAgICB3aWR0aDogMjUlO1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgIHdpZHRoOiA0MCU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS1pdGVtNCB7XHJcbiAgICB3aWR0aDogNTE2cHg7XHJcbiAgICB3aWR0aDogMjclO1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgIHdpZHRoOiAzMy4zJTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWl0ZW01IHtcclxuICAgIHdpZHRoOiAzMDJweDtcclxuICAgIHdpZHRoOiAxNSU7XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgd2lkdGg6IDMzLjMlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0taXRlbTYge1xyXG4gICAgd2lkdGg6IDQ3NHB4O1xyXG4gICAgd2lkdGg6IDI2JTtcclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICB3aWR0aDogMzMuMyU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS1pdGVtNyB7XHJcbiAgICB3aWR0aDogNDUycHg7XHJcbiAgICB3aWR0aDogMjMlO1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS1pdGVtOCB7XHJcbiAgICB3aWR0aDogNDQ5cHg7XHJcbiAgICB3aWR0aDogMjMlO1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS1pdGVtOSB7XHJcbiAgICB3aWR0aDogMTMlO1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBoZWlnaHQ6IDYycHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS1sYXN0IHtcclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhLnBob3RvYmxvY2stLWl0ZW05IHtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICBib3JkZXI6IDNweCBzb2xpZCByZWQ7XHJcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkZHVyYXRpb247XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL3Bob3RvX21vcmUuc3ZnKTtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy9waG90b19tb3JlXzM2MC5zdmcpO1xyXG4gICAgfVxyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL3Bob3RvX21vcmVfaG92ZXIuc3ZnKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIHBob3RvYmxvY2tcclxuLy8gcHJvbW9cclxuLnByb21vIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgbWF4LWhlaWdodDogMTAwMHB4O1xyXG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgYmFja2dyb3VuZDogdXJsKC4uL2ltZy9iZ19ob21lX3Byb21vLmpwZykgNTAlIDAgbm8tcmVwZWF0O1xyXG4gIHotaW5kZXg6IDE7XHJcblxyXG4gICY6YWZ0ZXIge1xyXG4gICAgei1pbmRleDogLTE7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMSkgMTAwJSk7XHJcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAxKSAxMDAlKTtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAxKSAxMDAlKTtcclxuICB9XHJcblxyXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XHJcbiAgICBwYWRkaW5nLXRvcDogMTAwcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTAwcHg7XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgcGFkZGluZy10b3A6IDMycHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xyXG4gIH1cclxuXHJcbiAgaDIge1xyXG4gICAgQGV4dGVuZCBoMTtcclxuICAgIHBhZGRpbmctYm90dG9tOiAyNXB4O1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMzZweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGgzIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgZm9udC1zaXplOiAzNnB4O1xyXG4gICAgY29sb3I6ICNEQzIyMzQ7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMzZweDtcclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAzMnB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3BhbiB7XHJcbiAgICBjb2xvcjogI0RDMjIzNDtcclxuICB9XHJcblxyXG4gIHAge1xyXG4gICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDQ1cHg7XHJcbiAgICBsaW5lLWhlaWdodDogMS43O1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDMycHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLyBwcm9tb1xyXG4vLyBpY29uYmxvY2tcclxuLmljb25ibG9jayB7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgYmFja2dyb3VuZDogdXJsKC4uL2ltZy9iZ19ob21lX2ljb25ibG9ja19mdWxsLnN2Zyk1MCUgMCBuby1yZXBlYXQ7XHJcbiAgbWF4LWhlaWdodDogODAwcHg7XHJcblxyXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICBwYWRkaW5nLXRvcDogMzBweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xyXG4gIH1cclxuXHJcbiAgJjphZnRlciB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgd2lkdGg6IDI2JTtcclxuICAgIG1hcmdpbi1sZWZ0OiAtMTMlO1xyXG4gICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDUwJTtcclxuICAgIHRyYW5zZm9ybTogc2tldygtNS41ZGVnKTtcclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTMwcHgpIHtcclxuICAgICAgd2lkdGg6IDM0JTtcclxuICAgICAgbWFyZ2luLWxlZnQ6IC0xNyU7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWl0ZW0ge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgei1pbmRleDogMTA7XHJcbiAgICB3aWR0aDogMzAlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgIHdpZHRoOiA0OSU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAkaWNvbmJsb2NrX2tvb2YgOjE7XHJcblxyXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEzNzBweCkge1xyXG4gICAgJGljb25ibG9ja19rb29mOiAxLjI7XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xyXG4gICAgJGljb25ibG9ja19rb29mOiAxLjM7XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgJGljb25ibG9ja19rb29mOiAxLjY7XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzNjBweCkge1xyXG4gICAgJGljb25ibG9ja19rb29mOiAxLjc7XHJcbiAgfVxyXG5cclxuICAmLS1pdGVtMSB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMTZweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDEwMHB4O1xyXG5cclxuICAgIHN2ZyB7XHJcbiAgICAgIHdpZHRoOiBjYWxjKDE1M3B4KTtcclxuICAgICAgaGVpZ2h0OiBhdXRvO1xyXG5cclxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTM3MHB4KSB7XHJcbiAgICAgICAgd2lkdGg6IGNhbGMoMTUzcHggLyAxLjIpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xyXG4gICAgICAgIHdpZHRoOiBjYWxjKDE1M3B4IC8gMS4zKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgICB3aWR0aDogY2FsYygxNTNweCAvIDEuNik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM2MHB4KSB7XHJcbiAgICAgICAgd2lkdGg6IGNhbGMoMTUzcHggLyAxLjcpO1xyXG4gICAgICB9XHJcblxyXG5cclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuXHJcbiAgJi0taXRlbTIge1xyXG4gICAgY29sb3I6ICMxMTExMTE7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxMDBweDtcclxuXHJcbiAgICBzdmcge1xyXG4gICAgICB3aWR0aDogMTYwcHg7XHJcbiAgICAgIGhlaWdodDogYXV0bztcclxuXHJcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEzNzBweCkge1xyXG4gICAgICAgIHdpZHRoOiBjYWxjKDE2MHB4IC8gMS4yKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcclxuICAgICAgICB3aWR0aDogY2FsYygxNjBweCAvIDEuMyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgICAgd2lkdGg6IGNhbGMoMTYwcHggLyAxLjYpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzNjBweCkge1xyXG4gICAgICAgIHdpZHRoOiBjYWxjKDE2MHB4IC8gMS43KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICBjb2xvcjogI2ZmZjtcclxuXHJcbiAgICAgIHN2ZyBnIHtcclxuICAgICAgICBmaWxsOiAjZmZmXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWl0ZW0zIHtcclxuICAgIHBhZGRpbmctbGVmdDogMTAwcHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxMDBweDtcclxuXHJcbiAgICBzdmcge1xyXG4gICAgICB3aWR0aDogMTcwcHg7XHJcbiAgICAgIGhlaWdodDogYXV0bztcclxuXHJcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEzNzBweCkge1xyXG4gICAgICAgIHdpZHRoOiBjYWxjKDE3MHB4IC8gMS4yKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcclxuICAgICAgICB3aWR0aDogY2FsYygxNzBweCAvIDEuMyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgICAgd2lkdGg6IGNhbGMoMTcwcHggLyAxLjYpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzNjBweCkge1xyXG4gICAgICAgIHdpZHRoOiBjYWxjKDE3MHB4IC8gMS43KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gICYtLWl0ZW00IHtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDExNnB4O1xyXG5cclxuICAgIHN2ZyB7XHJcbiAgICAgIHdpZHRoOiAxNTJweDtcclxuICAgICAgaGVpZ2h0OiBhdXRvO1xyXG5cclxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTM3MHB4KSB7XHJcbiAgICAgICAgd2lkdGg6IGNhbGMoMTUycHggLyAxLjIpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xyXG4gICAgICAgIHdpZHRoOiBjYWxjKDE1MnB4IC8gMS4zKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgICB3aWR0aDogY2FsYygxNTJweCAvIDEuNik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM2MHB4KSB7XHJcbiAgICAgICAgd2lkdGg6IGNhbGMoMTUycHggLyAxLjcpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS1pdGVtNSB7XHJcbiAgICBjb2xvcjogIzExMTExMTtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XHJcblxyXG4gICAgc3ZnIHtcclxuICAgICAgd2lkdGg6IDYwcHg7XHJcbiAgICAgIGhlaWdodDogYXV0bztcclxuXHJcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEzNzBweCkge1xyXG4gICAgICAgIHdpZHRoOiBjYWxjKDYwcHggLyAxLjIpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xyXG4gICAgICAgIHdpZHRoOiBjYWxjKDYwcHggLyAxLjMpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICAgIHdpZHRoOiBjYWxjKDYwcHggLyAxLjYpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzNjBweCkge1xyXG4gICAgICAgIHdpZHRoOiBjYWxjKDYwcHggLyAxLjcpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICAgIGNvbG9yOiAjZmZmO1xyXG5cclxuICAgICAgc3ZnIGcge1xyXG4gICAgICAgIGZpbGw6ICNmZmZcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0taXRlbTYge1xyXG4gICAgcGFkZGluZy1sZWZ0OiA3NXB4O1xyXG5cclxuICAgIHN2ZyB7XHJcbiAgICAgIHdpZHRoOiAxMjVweDtcclxuICAgICAgaGVpZ2h0OiBhdXRvO1xyXG5cclxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTM3MHB4KSB7XHJcbiAgICAgICAgd2lkdGg6IGNhbGMoMTI1cHggLyAxLjIpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xyXG4gICAgICAgIHdpZHRoOiBjYWxjKDEyNXB4IC8gMS4zKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgICB3aWR0aDogY2FsYygxMjVweCAvIDEuNik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM2MHB4KSB7XHJcbiAgICAgICAgd2lkdGg6IGNhbGMoMTI1cHggLyAxLjcpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgJi0taW1nd3Ige1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIH1cclxuXHJcbiAgJi0taW1nIHtcclxuICAgIGhlaWdodDogMTc5cHg7XHJcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xyXG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMzcwcHgpIHtcclxuICAgICAgaGVpZ2h0OiAxNTBweDtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICBoZWlnaHQ6IDE0MHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0tdGV4dCB7XHJcbiAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgZm9udC1zaXplOiAyMXB4O1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExNTBweCkge1xyXG4gICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgfVxyXG5cclxuICB9XHJcbn1cclxuXHJcbi5zbGljay1zbGlkZSB7XHJcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi8vIGljb25ibG9ja1xyXG4vLyBzZXJ0ZWZpY2F0c1xyXG4uc2VydGVmaWNhdHMge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL2JnX3NlcnRlZmljYXRzLnN2Zyk1MCUgMCBuby1yZXBlYXQ7XHJcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICB6LWluZGV4OiAxO1xyXG5cclxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTQwcHgpIHtcclxuICAgIGJhY2tncm91bmQ6IHJnYigyNTUsIDI0NiwgNzcpO1xyXG4gICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgcmdiYSgyNTUsIDI0NiwgNzcsIDEpIDAlLCByZ2JhKDIzNiwgOTQsIDYzLCAxKSAxMDAlKTtcclxuICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoMjU1LCAyNDYsIDc3LCAxKSAwJSwgcmdiYSgyMzYsIDk0LCA2MywgMSkgMTAwJSk7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAyNDYsIDc3LCAxKSAwJSwgcmdiYSgyMzYsIDk0LCA2MywgMSkgMTAwJSk7XHJcbiAgICBtYXJnaW4tdG9wOiA0cHg7XHJcblxyXG4gIH1cclxuXHJcbiAgJjphZnRlciB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgd2lkdGg6IDc4MHB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IC00NDVweDtcclxuICAgIHotaW5kZXg6IC0xO1xyXG4gICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDUwJTtcclxuICAgIHRyYW5zZm9ybTogc2tldygtMTMuNGRlZyk7XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE4MHB4KSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMzMlO1xyXG4gICAgICB3aWR0aDogNjYlO1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExNDBweCkge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaDIge1xyXG4gICAgQGV4dGVuZCBoMTtcclxuICAgIHBhZGRpbmctdG9wOiA0MHB4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDQwcHg7XHJcbiAgfVxyXG5cclxuICAmLS1pdGVtIHtcclxuICAgIGltZyB7XHJcbiAgICAgIG1heC13aWR0aDogMjc4cHg7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBtYXJnaW46IGF1dG87XHJcbiAgICAgIGhlaWdodDogYXV0bztcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWxlZnQge1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgdG9wOiA0MCU7XHJcbiAgICBtYXJnaW4tdG9wOiAtMjJweDtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHdpZHRoOiAyMnB4O1xyXG4gICAgaGVpZ2h0OiA0NHB4O1xyXG4gICAgYmFja2dyb3VuZDogdXJsKC4uL2ltZy9zbGlkZXJfbGVmdC5zdmcpIG5vLXJlcGVhdDtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSBhdXRvO1xyXG4gICAgei1pbmRleDogMTAwO1xyXG4gICAgbGVmdDogMzBweDtcclxuICAgIHRyYW5zaXRpb24tZHVyYXRpb246ICRkdXJhdGlvbjtcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgYmFja2dyb3VuZDogdXJsKC4uL2ltZy9zbGlkZXJfbGVmdF9ob3Zlci5zdmcpIG5vLXJlcGVhdDtcclxuICAgICAgb3BhY2l0eTogLjg7XHJcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSBhdXRvO1xyXG4gICAgfVxyXG5cclxuICAgICY6YWN0aXZlIHtcclxuICAgICAgYmFja2dyb3VuZDogdXJsKC4uL2ltZy9zbGlkZXJfbGVmdF9ob3Zlci5zdmcpIG5vLXJlcGVhdDtcclxuICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIGF1dG87XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS1yaWdodCB7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB0b3A6IDQwJTtcclxuICAgIG1hcmdpbi10b3A6IC0yMnB4O1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgd2lkdGg6IDIycHg7XHJcbiAgICBoZWlnaHQ6IDQ0cHg7XHJcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL3NsaWRlcl9yaWdodC5zdmcpIG5vLXJlcGVhdDtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSBhdXRvO1xyXG4gICAgei1pbmRleDogMTA7XHJcbiAgICByaWdodDogMzBweDtcclxuICAgIHRyYW5zaXRpb24tZHVyYXRpb246ICRkdXJhdGlvbjtcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgYmFja2dyb3VuZDogdXJsKC4uL2ltZy9zbGlkZXJfcmlnaHRfaG92ZXIuc3ZnKSBuby1yZXBlYXQ7XHJcbiAgICAgIG9wYWNpdHk6IC44O1xyXG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgYXV0bztcclxuICAgIH1cclxuXHJcbiAgICAmOmFjdGl2ZSB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWcvc2xpZGVyX3JpZ2h0X2hvdmVyLnN2Zykgbm8tcmVwZWF0O1xyXG4gICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgYXV0bztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zbGljay1kb3RzIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICBidXR0b24ge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIGxpIHtcclxuICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgYm9yZGVyLXJhZGl1czogMTgwcHg7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgd2lkdGg6IDEwcHg7XHJcbiAgICAgIGhlaWdodDogMTBweDtcclxuICAgICAgYm9yZGVyOiAycHggc29saWQgIzJFMkUyRTtcclxuICAgICAgbWFyZ2luOiAzNXB4IDVweDtcclxuXHJcbiAgICAgICYuc2xpY2stYWN0aXZlIHtcclxuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjRTQzMTM1O1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNFNDMxMzU7XHJcblxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLyBzZXJ0ZWZpY2F0c1xyXG4vLyB0eXBlc29mcGF5XHJcbi50eXBlc29mcGF5IHtcclxuICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL2JnX3ByaWNlX3R5cGVzb2ZwYXkuanBnKSA1MCUgMTAwJSBuby1yZXBlYXQ7XHJcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICBwYWRkaW5nLWJvdHRvbTogMTdweDtcclxuXHJcbiAgaDIge1xyXG4gICAgQGV4dGVuZCBoMTtcclxuICAgIHBhZGRpbmctdG9wOiA0MHB4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDQwcHg7XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTEwMHB4KSB7XHJcbiAgICAgIHBhZGRpbmctdG9wOiAzMHB4O1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0taXRlbSB7XHJcbiAgICBtYXJnaW4tdG9wOiA0MHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHdpZHRoOiBzcGFuKDYpO1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExMDBweCkge1xyXG4gICAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbiAgICB9XHJcblxyXG4gICAgJjpudGgtY2hpbGQob2RkKSB7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogNzBweDtcclxuXHJcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExMDBweCkge1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcclxuICAgICAgfVxyXG5cclxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJjpudGgtY2hpbGQoZXZlbikge1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiA3MHB4O1xyXG5cclxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTEwMHB4KSB7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS1pY29uIHtcclxuICAgIHdpZHRoOiAxMzhweDtcclxuICAgIGhlaWdodDogMTM4cHg7XHJcbiAgICBtYXJnaW46IGF1dG87XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTEwMHB4KSB7XHJcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC43KTtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XHJcbiAgICB9XHJcblxyXG4gICAgaW1nIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGhlaWdodDogYXV0bztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGgzIHtcclxuICAgIHBhZGRpbmctdG9wOiA0NHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBmb250LXNpemU6IDM2cHg7XHJcbiAgICBjb2xvcjogI0RDMjIzNDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExMDBweCkge1xyXG4gICAgICBwYWRkaW5nLXRvcDogMjBweDtcclxuICAgICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICBwYWRkaW5nLXRvcDogMDtcclxuICAgICAgbWFyZ2luLXRvcDogLTIwcHg7XHJcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHAge1xyXG4gICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgY29sb3I6ICRjX3RleHQ7XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTEwMHB4KSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLyB0eXBlc29mcGF5XHJcbi8vIGZ1ZWxjb3Vwb25zXHJcbi5mdWVsY291cG9ucyB7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGJhY2tncm91bmQ6IHVybCguLi9pbWcvYmdfcHJpY2VfZnVlbGNvdXBvbnMuanBnKTUwJSAxMDAlIG5vLXJlcGVhdDtcclxuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gIHBhZGRpbmctYm90dG9tOiA1NXB4O1xyXG5cclxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxuXHJcbiAgaDIge1xyXG4gICAgQGV4dGVuZCBoMTtcclxuICAgIHBhZGRpbmctdG9wOiAzNHB4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDI2cHg7XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgcGFkZGluZy10b3A6IDMycHg7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxNnB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0tdGV4dCB7XHJcbiAgICBtYXgtd2lkdGg6IDk3NXB4O1xyXG4gICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICB9XHJcblxyXG4gIHAge1xyXG4gICAgZm9udC1zaXplOiAyNHB4O1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk2NXB4KSB7XHJcbiAgICAgIGJyIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0taXRlbXMge1xyXG4gICAgcGFkZGluZy10b3A6IDgxcHg7XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgcGFkZGluZy10b3A6IDE2cHg7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAzMnB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaDMge1xyXG4gICAgZm9udC1zaXplOiAzNnB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0taXRlbSB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgcGFkZGluZzogNDJweCA3MnB4O1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg1MHB4KSB7XHJcbiAgICAgIHBhZGRpbmc6IDQycHggNDBweDtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICBwYWRkaW5nOiA5cHggMHB4O1xyXG4gICAgICB3aWR0aDogMzAlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0tY2lyY2xlIHtcclxuICAgIHdpZHRoOiAxMjBweDtcclxuICAgIGhlaWdodDogMTIwcHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxODBweDtcclxuICAgIGJvcmRlcjogNnB4IHNvbGlkICNEQzIyMzQ7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgcGFkZGluZy10b3A6IDMwcHg7XHJcbiAgICBmb250LXNpemU6IDM4cHg7XHJcbiAgICBmb250LXdlaWdodDogJHdfbWVkaXVtO1xyXG4gICAgY29sb3I6ICNFODQ4M0M7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAzMXB4O1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgIG1hcmdpbjogYXV0bztcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMzFweDtcclxuICAgICAgd2lkdGg6IDg1cHg7XHJcbiAgICAgIGhlaWdodDogODVweDtcclxuICAgICAgcGFkZGluZy10b3A6IDIwcHg7XHJcbiAgICAgIGJvcmRlcjogM3B4IHNvbGlkICNEQzIyMzQ7XHJcbiAgICAgIGZvbnQtc2l6ZTogMjhweDtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcclxuICAgIH1cclxuXHJcbiAgICBzcGFuIHtcclxuICAgICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgbGluZS1oZWlnaHQ6IC4yO1xyXG5cclxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWJhbG9vbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMnB4O1xyXG4gICAgZm9udC1zaXplOiAzMnB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBjb2xvcjogI0RFMjgzNTtcclxuICAgIGJvcmRlcjogNnB4IHNvbGlkICMyRjJGMkY7XHJcbiAgICBib3JkZXItcmFkaXVzOiA3M3B4O1xyXG4gICAgd2lkdGg6IDEyMHB4O1xyXG4gICAgaGVpZ2h0OiA1NHB4O1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIGxpbmUtaGVpZ2h0OiA0MnB4O1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgIG1hcmdpbjogYXV0bztcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMjJweDtcclxuICAgICAgYm9yZGVyOiAzcHggc29saWQgIzJGMkYyRjtcclxuICAgICAgd2lkdGg6IDg1cHg7XHJcbiAgICAgIGhlaWdodDogMzJweDtcclxuICAgICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgICBsaW5lLWhlaWdodDogMjhweDtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0tYm94ZXMge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgIHBhZGRpbmctYm90dG9tOiA3MXB4O1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxNnB4O1xyXG4gICAgfVxyXG5cclxuICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xyXG4gICAgfVxyXG5cclxuICAgIGg0IHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDk5cHg7XHJcbiAgICAgIG1hcmdpbi10b3A6IC0yMHB4O1xyXG4gICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgY29sb3I6ICNEQzIyMzQ7XHJcbiAgICAgIGZvbnQtc2l6ZTogMzZweDtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDQwcHg7XHJcblxyXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjRweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0tYm94IHtcclxuICAgIG1heC13aWR0aDogNzAwcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTlweDtcclxuXHJcbiAgICAmLWltZyB7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogNDVweDtcclxuICAgICAgd2lkdGg6IDk5cHg7XHJcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XHJcblxyXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgICB3aWR0aDogNTBweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYtdGV4dCB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcclxuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuXHJcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi10ZXh0MiB7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogOTlweDtcclxuICAgICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG5cclxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLyBmdWVsY291cG9uc1xyXG4vLyBmdWVsbGlzdFxyXG4uZnVlbGxpc3Qge1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL2JnX3ByaWNlX2Z1ZWxsaXN0LmpwZyk1MCUgMTAwJSBuby1yZXBlYXQ7XHJcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcclxuXHJcbiAgaDIge1xyXG4gICAgQGV4dGVuZCBoMTtcclxuICAgIHBhZGRpbmctdG9wOiAzN3B4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDI2cHg7XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgcGFkZGluZy10b3A6IDMycHg7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxNnB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0tbGVmdCB7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIHdpZHRoOiBzcGFuKDcpO1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0tcmlnaHQge1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICB3aWR0aDogc3Bhbig1KTtcclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIGltZyB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgaGVpZ2h0OiBhdXRvO1xyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLXRleHQge1xyXG4gICAgbWF4LXdpZHRoOiA5NzVweDtcclxuICAgIG1hcmdpbjogYXV0bztcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogODBweDtcclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMTZweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHAge1xyXG4gICAgZm9udC1zaXplOiAyNHB4O1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk2NXB4KSB7XHJcbiAgICAgIGJyIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0taXRlbXMge1xyXG4gICAgcGFkZGluZy10b3A6IDgxcHg7XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgcGFkZGluZy10b3A6IDE2cHg7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAzMnB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaDMge1xyXG4gICAgZm9udC1zaXplOiAzNnB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0taXRlbSB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgcGFkZGluZzogNDJweCA3MnB4O1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg1MHB4KSB7XHJcbiAgICAgIHBhZGRpbmc6IDQycHggNDBweDtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICBwYWRkaW5nOiA5cHggMHB4O1xyXG4gICAgICB3aWR0aDogMzAlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gICYtLWJveGVzIHtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMzRweDtcclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMTZweDtcclxuICAgIH1cclxuXHJcbiAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICAgIH1cclxuXHJcbiAgICBoNCB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiA5OHB4O1xyXG4gICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgY29sb3I6ICNEQzIyMzQ7XHJcbiAgICAgIGZvbnQtc2l6ZTogMzZweDtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDQwcHg7XHJcblxyXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjRweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0tYm94IHtcclxuICAgIG1heC13aWR0aDogNzAwcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMjdweDtcclxuXHJcbiAgICAmLWltZyB7XHJcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xyXG4gICAgICB3aWR0aDogOTlweDtcclxuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuXHJcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICAgIHdpZHRoOiA1MHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi10ZXh0IHtcclxuICAgICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xyXG5cclxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLXRleHQyIHtcclxuICAgICAgcGFkZGluZy1sZWZ0OiA5OXB4O1xyXG4gICAgICBmb250LXNpemU6IDI0cHg7XHJcblxyXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ0MHB4KSB7XHJcbiAgICAgICAgYnIge1xyXG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIGZ1ZWxsaXN0XHJcbi8vIGZvcm1ibG9rXHJcbi5mb3JtYmxvayB7XHJcbiAgcGFkZGluZy10b3A6IDQwcHg7XHJcbiAgcGFkZGluZy1ib3R0b206IDQwcHg7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGJhY2tncm91bmQ6IHJnYigyNTUsIDI0NCwgNzcpO1xyXG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoMjU1LCAyNDQsIDc3LCAxKSAwJSwgcmdiYSgyMzYsIDg4LCA2MywgMSkgMTAwJSk7XHJcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgcmdiYSgyNTUsIDI0NCwgNzcsIDEpIDAlLCByZ2JhKDIzNiwgODgsIDYzLCAxKSAxMDAlKTtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAyNDQsIDc3LCAxKSAwJSwgcmdiYSgyMzYsIDg4LCA2MywgMSkgMTAwJSk7XHJcblxyXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICBwYWRkaW5nLXRvcDogMzBweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xyXG4gIH1cclxuXHJcbiAgJi0tdGl0bGUge1xyXG4gICAgZm9udC1zaXplOiAzNnB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICAgIHBhZGRpbmctYm90dG9tOiA0MHB4O1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDE2cHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbnB1dCB7XHJcbiAgICBjb2xvcjogJGNfdGV4dDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBib3JkZXI6IDA7XHJcbiAgICB3aWR0aDogMjc3cHg7XHJcbiAgICBoZWlnaHQ6IDQwcHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAyN3B4O1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgbWFyZ2luOiAwIDEwcHg7XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIG1hcmdpbjogN3B4IGF1dG87XHJcbiAgICAgIHdpZHRoOiA0MDBweDtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgbWFyZ2luOiA0cHggYXV0bztcclxuICAgICAgd2lkdGg6IDI3N3B4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuXHJcbiAgbGFiZWwge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB3aWR0aDogMjc3cHg7XHJcbiAgICBoZWlnaHQ6IDQwcHg7XHJcbiAgICBsaW5lLWhlaWdodDogNDBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIGJvcmRlcjogMnB4IHNvbGlkICNmZmY7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgbWFyZ2luOiAwIDEwcHg7XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcclxuICAgICAgd2lkdGg6IDQwMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgIHdpZHRoOiAyNzdweDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIGZvcm1ibG9rXHJcbi8vIHRleHRibG9ja1xyXG4udGV4dGJsb2NrIHtcclxuICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL2JnX3dob2xlc2FsZV90ZXh0YmxvY2sucG5nKTUwJSAwIG5vLXJlcGVhdDtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgbWF4LWhlaWdodDogMTAwMHB4O1xyXG4gIHBhZGRpbmctdG9wOiAzMHB4O1xyXG4gIHBhZGRpbmctYm90dG9tOiAzMHB4O1xyXG5cclxuICBoMiB7XHJcbiAgICBAZXh0ZW5kIGgxO1xyXG4gICAgcGFkZGluZy1ib3R0b206IDcwcHg7XHJcbiAgfVxyXG5cclxuICBwIHtcclxuICAgIGZvbnQtc2l6ZTogMjRweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMjdweDtcclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLyB0ZXh0YmxvY2tcclxuLy8gY29vcHNjaGVtZVxyXG4uY29vcHNjaGVtZSB7XHJcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHt9XHJcblxyXG4gIHBhZGRpbmctYm90dG9tOiAyMHB4O1xyXG5cclxuICBoMiB7XHJcbiAgICBwYWRkaW5nLXRvcDogNDBweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiA0MHB4O1xyXG4gICAgQGV4dGVuZCBoMTtcclxuICB9XHJcblxyXG4gICYtLWl0ZW0ge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICB3aWR0aDogMzMuMyU7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogNDBweDtcclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgICBtYXgtd2lkdGg6IDQwMHB4O1xyXG4gICAgICBmbG9hdDogbm9uZTtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDIwcHg7XHJcblxyXG4gICAgICAmOmxhc3QtY2hpbGQ6YWZ0ZXIge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIGNsZWFyOiBib3RoO1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWcvci5zdmcpO1xyXG4gICAgICAgIHdpZHRoOiAxNnB4O1xyXG4gICAgICAgIGhlaWdodDogMjRweDtcclxuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gICAgICAgIG1hcmdpbjogMzBweCBhdXRvIDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWljb24ge1xyXG4gICAgaGVpZ2h0OiAxNDBweDtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoLjkpO1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XHJcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoLjcpO1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgIHdpZHRoOiA2MHB4O1xyXG4gICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcclxuICAgICAgaGVpZ2h0OiA4MHB4O1xyXG5cclxuICAgICAgc3BhbiB7XHJcbiAgICAgICAgaGVpZ2h0OiA4MHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGltZyB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNwYW4ge1xyXG4gICAgICBoZWlnaHQ6IDE0MHB4O1xyXG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xyXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaDMge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgY29sb3I6ICNEQzIyMzQ7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIGZvbnQtc2l6ZTogMzNweDtcclxuICAgIHBhZGRpbmctdG9wOiAzMnB4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDE2cHg7XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcclxuICAgICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgICBwYWRkaW5nLXRvcDogMDtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDkwcHg7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkwcHgpIHtcclxuICAgICAgcGFkZGluZy1sZWZ0OiA3MHB4O1xyXG4gICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwIHtcclxuICAgIGZvbnQtc2l6ZTogMjRweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xyXG4gICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgcGFkZGluZy1sZWZ0OiA5MHB4O1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5MHB4KSB7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogNzBweDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIGNvb3BzY2hlbWVcclxuLy8gc3VwcGx5ZnVlbFxyXG4uc3VwcGx5ZnVlbCB7XHJcbiAgcGFkZGluZy1ib3R0b206IDQwcHg7XHJcblxyXG4gIC5jb250YWluZXIge1xyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE3MHB4KSB7XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoMiB7XHJcbiAgICBAZXh0ZW5kIGgxO1xyXG4gICAgcGFkZGluZy10b3A6IDQwcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogNDBweDtcclxuICB9XHJcblxyXG4gICYtLWl0ZW0ge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICB3aWR0aDogc3Bhbig0KTtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICAgIGhlaWdodDogMzN2dztcclxuICAgIG1heC1oZWlnaHQ6IDM4OXB4O1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgIHdpZHRoOiA1MCU7XHJcbiAgICAgIGhlaWdodDogNDh2dztcclxuICAgICAgbWF4LWhlaWdodDogMzcwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS10YWJsZSB7XHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICBkaXNwbGF5OiB0YWJsZTtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGhlaWdodDogMTAwJTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWNlbGwge1xyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgYmFja2dyb3VuZDogcmdiYSgjZmZmLCAuNSk7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAgIHBhZGRpbmc6IDE1cHg7XHJcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoMyB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHBhZGRpbmctbGVmdDogNXB4O1xyXG4gICAgcGFkZGluZy1yaWdodDogNXB4O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIGJvdHRvbTogMTZweDtcclxuICAgIGZvbnQtc2l6ZTogMjRweDtcclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLyBzdXBwbHlmdWVsXHJcbi8vIG91cmxpZmVcclxuLm91cmxpZmUge1xyXG4gICYtLWhlYWRlciB7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTMzcHg7XHJcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL2JnX291cmxpZmVfb3VybGlmZWhlYWRlci5qcGcpNTAlIDAgbm8tcmVwZWF0O1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMzBweDtcclxuICAgICAgcGFkZGluZy10b3A6IDgwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGgxIHtcclxuICAgICAgbGluZS1oZWlnaHQ6IC43O1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogNDNweDtcclxuICAgIH1cclxuXHJcbiAgICBpbWcge1xyXG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgIGhlaWdodDogYXV0bztcclxuICAgIH1cclxuXHJcbiAgICBzcGFuIHtcclxuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgIGNvbG9yOiAjREMyMjM0O1xyXG4gICAgfVxyXG5cclxuICAgIHAge1xyXG4gICAgICBmb250LXNpemU6IDI0cHg7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAyOHB4O1xyXG5cclxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcclxuICAgICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS1pdGVtMSB7XHJcbiAgICB3aWR0aDogc3Bhbig0KTtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG5cclxuICAgIGltZyB7XHJcbiAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0taXRlbTIge1xyXG4gICAgd2lkdGg6IHNwYW4oNik7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xyXG4gICAgICB3aWR0aDogc3Bhbig4KTtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmNhdGxpc3Qge1xyXG4gICAgcGFkZGluZy10b3A6IDQwcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogNDBweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgZm9udC1zaXplOiAzNnB4O1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcclxuICAgICAgcGFkZGluZy10b3A6IDE1cHg7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xyXG4gICAgfVxyXG5cclxuICAgIGxpIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cclxuICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogJy8nO1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpsYXN0LWNoaWxkOmFmdGVyIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLmN1cnJlbnQtY2F0IHtcclxuICAgICAgICBhIHtcclxuICAgICAgICAgIGNvbG9yOiAjREMyMjM0O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0taXRlbXMge1xyXG4gICAgcGFkZGluZy1yaWdodDogMzBweDtcclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0taXRlbSB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xyXG4gIH1cclxuXHJcbiAgJi0tbWVkaWEge1xyXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgIHdpZHRoOiBzcGFuKDQpO1xyXG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBoZWlnaHQ6IDYwdnc7XHJcbiAgICB9XHJcblxyXG4gICAgaW1nIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGhlaWdodDogYXV0bztcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWltZyB7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgfVxyXG5cclxuICAmLS1pbWcxIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAyNDBweDtcclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDUwcHgpIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWltZzIge1xyXG4gICAgaGVpZ2h0OiAxMTJweDtcclxuICAgIHdpZHRoOiA1MCU7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDUwcHgpIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWltZzMge1xyXG4gICAgaGVpZ2h0OiAxMTJweDtcclxuICAgIHdpZHRoOiA1MCU7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDUwcHgpIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGgyIHtcclxuICAgIHBhZGRpbmctdG9wOiA2cHg7XHJcbiAgICBmb250LXNpemU6IDM2cHg7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICBmb250LXNpemU6IDI0cHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS1kYXRlIHtcclxuICAgIGNvbG9yOiAjREMyMjM0O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMjVweDtcclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS10ZXh0d3Ige1xyXG4gICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAjRkVGMjREO1xyXG4gICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgI0VFNjg0MDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHdpZHRoOiBzcGFuKDgpO1xyXG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICAgIH1cclxuXHJcbiAgICAmLS10b3Age1xyXG4gICAgICByaWdodDogMDtcclxuICAgICAgaGVpZ2h0OiAycHg7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY4NGQ7XHJcbiAgICAgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsICNmZmY4NGQgMCUsICNlZTY5NDAgMTAwJSk7XHJcbiAgICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsICNmZmY4NGQgMCUsICNlZTY5NDAgMTAwJSk7XHJcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2ZmZjg0ZCAwJSwgI2VlNjk0MCAxMDAlKTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgJi0tYm90dG9tIHtcclxuICAgICAgYm90dG9tOiAwO1xyXG4gICAgICBoZWlnaHQ6IDJweDtcclxuICAgICAgbGVmdDogMDtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgYmFja2dyb3VuZDogI2ZmZjg0ZDtcclxuICAgICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgI2ZmZjg0ZCAwJSwgI2VlNjk0MCAxMDAlKTtcclxuICAgICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgI2ZmZjg0ZCAwJSwgI2VlNjk0MCAxMDAlKTtcclxuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjZmZmODRkIDAlLCAjZWU2OTQwIDEwMCUpO1xyXG5cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICAmLS10ZXh0IHtcclxuICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWcvbWVkaWEtbW9yZS5zdmcpIDk2JSA1NyUgbm8tcmVwZWF0O1xyXG4gICAgcGFkZGluZy1yaWdodDogNzVweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxOHB4O1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xyXG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgfVxyXG5cclxuICBwIHtcclxuICAgIHBhZGRpbmctYm90dG9tOiAwO1xyXG4gICAgZm9udC1zaXplOiAyNHB4O1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0tZGF0YSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGZvbnQtc2l6ZTogMzZweDtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgY29sb3I6ICNEQzIyMzQ7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMjVweDtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgLm1vcmUtLWJ0biB7XHJcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL21vcmUtLWJ1dHRvbi5zdmcpO1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XHJcbiAgICBjb2xvcjogI0RDMjIzNDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgd2lkdGg6IDI3N3B4O1xyXG4gICAgaGVpZ2h0OiA0MHB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDQwcHg7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBvdXJsaWZlXHJcbi8vIG1haW5cclxuLmNvbnRlbnQge1xyXG4gIHBhZGRpbmctdG9wOiAyNXB4O1xyXG5cclxuICBwIHtcclxuICAgIGZvbnQtc2l6ZTogMjRweDtcclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xyXG4gICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbWcge1xyXG4gICAgbWFyZ2luOiAyMHB4O1xyXG4gICAgbWFyZ2luLXRvcDogMDtcclxuXHJcbiAgICAmLmFsaWducmlnaHQge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgJi5hbGlnbmxlZnQge1xyXG4gICAgICBtYXJnaW4tbGVmdDogMDtcclxuXHJcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uY29tbWVudHMge1xyXG4gIGgzIHtcclxuICAgIGZvbnQtc2l6ZTogMzZweDtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgcGFkZGluZy1ib3R0b206IDMxcHg7XHJcbiAgfVxyXG5cclxuICAmLS1pdGVtIHtcclxuICAgIHBhZGRpbmctYm90dG9tOiAyN3B4O1xyXG4gIH1cclxuXHJcbiAgLmF2YXRhciB7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIHdpZHRoOiA1N3B4O1xyXG4gICAgaGVpZ2h0OiA1N3B4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTgwcHg7XHJcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL2RhZmF1bHQtYXZhLnBuZyk7XHJcbiAgfVxyXG5cclxuICAuY2hpbGRyZW4ge1xyXG4gICAgcGFkZGluZy10b3A6IDIwcHg7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMzBweDtcclxuXHJcbiAgICAuYXZhdGFyIHtcclxuXHJcbiAgICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWcvYWRtaW4ucG5nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLW5hbWUge1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBjb2xvcjogI0RDMjIzNDtcclxuICAgIGZvbnQtc2l6ZTogMjRweDtcclxuICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xyXG5cclxuICB9XHJcblxyXG4gICYtLXRleHQge1xyXG4gICAgZm9udC1zaXplOiAyNHB4O1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWZvcm0ge1xyXG4gICAgcGFkZGluZy10b3A6IDE2cHg7XHJcblxyXG4gICAgaDMge1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMThweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZvcm0ge1xyXG4gICAgcGFkZGluZy10b3A6IDEwcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogNDBweDtcclxuICB9XHJcblxyXG4gIHRleHRhcmVhIHtcclxuICAgIHJlc2l6ZTogbm9uZTtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xyXG4gICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgcGFkZGluZzogMTlweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIGhlaWdodDogMTAwcHg7XHJcbiAgICBib3JkZXI6IDA7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjRUM1NjQzO1xyXG5cclxuICB9XHJcblxyXG4gIGlucHV0IHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIGhlaWdodDogNDBweDtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgYm9yZGVyOiAwO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xyXG4gICAgYm9yZGVyOiAycHggc29saWQgI0VDNTY0MztcclxuICAgIG1hcmdpbi1ib3R0b206IDIycHg7XHJcbiAgfVxyXG5cclxuICBsYWJlbCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgaGVpZ2h0OiA0MHB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDQwcHg7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcclxuICAgIGJhY2tncm91bmQ6IHJnYigyMzUsIDgyLCA2Mik7XHJcbiAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDIzNSwgODIsIDYyLCAxKSAwJSwgcmdiYSgyMjAsIDM1LCA1MiwgMSkgMTAwJSk7XHJcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDIzNSwgODIsIDYyLCAxKSAwJSwgcmdiYSgyMjAsIDM1LCA1MiwgMSkgMTAwJSk7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjM1LCA4MiwgNjIsIDEpIDAlLCByZ2JhKDIyMCwgMzUsIDUyLCAxKSAxMDAlKTtcclxuXHJcblxyXG4gIH1cclxuXHJcbiAgc3BhbiB7XHJcbiAgICBtYXJnaW4tdG9wOiAtMjBweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAzcHg7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxuXHJcbiAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuXHJcblxyXG4uZm9ybS0tbGVmdCB7XHJcbiAgcGFkZGluZy1yaWdodDogMTVweDtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIHdpZHRoOiBzcGFuKDMpO1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG5cclxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xyXG4gICAgd2lkdGg6IHNwYW4oNik7XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gIH1cclxufVxyXG5cclxuLmZvcm0tLXJpZ2h0IHtcclxuICBwYWRkaW5nLWxlZnQ6IDVweDtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIHdpZHRoOiBzcGFuKDkpO1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG5cclxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xyXG4gICAgd2lkdGg6IHNwYW4oNik7XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gIH1cclxufVxyXG5cclxuLmFsaWducmlnaHQge1xyXG4gIGZsb2F0OiByaWdodDtcclxufVxyXG5cclxuLmFsaWdubGVmdCB7XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcbn1cclxuXHJcbi5hbGlnbmNlbnRlciB7XHJcbiAgbWFyZ2luOiBhdXRvO1xyXG59XHJcblxyXG4ucGhvdG9nYWxsIHtcclxuICBtYXJnaW4tbGVmdDogLTEwcHg7XHJcbiAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcclxuICBwYWRkaW5nLXRvcDogNDBweDtcclxuICBwYWRkaW5nLWJvdHRvbTogMzBweDtcclxuXHJcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDMwcHgpIHtcclxuICAgIG1hcmdpbjogMDtcclxuICB9XHJcblxyXG4gICY6YWZ0ZXIge1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGNsZWFyOiBib3RoO1xyXG4gICAgaGVpZ2h0OiAwO1xyXG4gIH1cclxuXHJcbiAgYSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHdpZHRoOiAzMy4zJTtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgcGFkZGluZzogMTBweDtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICBoZWlnaHQ6IDI2MHB4O1xyXG4gICAgaGVpZ2h0OiAxOXZ3O1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICB3aWR0aDogNTAlO1xyXG4gICAgICBoZWlnaHQ6IDMzdnc7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDMwcHgpIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBpbWcge1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLyBtYWluXHJcbi8vIHNhbGVcclxuLnNhbGUge1xyXG5cclxuICAmLS1oZWFkZXIge1xyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcclxuICAgICAgcGFkZGluZy10b3A6IDgwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgaDEge1xyXG4gICAgICBsaW5lLWhlaWdodDogLjc7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmNhdGxpc3Qge1xyXG4gICAgcGFkZGluZy10b3A6IDQwcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogNDBweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgZm9udC1zaXplOiAzNnB4O1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcclxuICAgICAgcGFkZGluZy10b3A6IDE1cHg7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xyXG4gICAgfVxyXG5cclxuICAgIGxpIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cclxuICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogJy8nO1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpsYXN0LWNoaWxkOmFmdGVyIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLmN1cnJlbnQtY2F0IHtcclxuICAgICAgICBhIHtcclxuICAgICAgICAgIGNvbG9yOiAjREMyMjM0O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0taXRlbXMge1xyXG4gICAgcGFkZGluZy1yaWdodDogMzBweDtcclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0taXRlbSB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xyXG4gIH1cclxuXHJcbiAgJi0tbWVkaWEge1xyXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgIHdpZHRoOiBzcGFuKDQpO1xyXG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBoZWlnaHQ6IDYwdnc7XHJcbiAgICB9XHJcblxyXG4gICAgaW1nIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGhlaWdodDogYXV0bztcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWltZyB7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgfVxyXG5cclxuICAmLS1pbWcxIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAyNDBweDtcclxuICB9XHJcblxyXG4gICYtLWltZzIge1xyXG4gICAgaGVpZ2h0OiAxMTJweDtcclxuICAgIHdpZHRoOiA1MCU7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICB9XHJcblxyXG4gICYtLWltZzMge1xyXG4gICAgaGVpZ2h0OiAxMTJweDtcclxuICAgIHdpZHRoOiA1MCU7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICB9XHJcblxyXG4gIGgyIHtcclxuICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICBmb250LXNpemU6IDM2cHg7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICBmb250LXNpemU6IDI0cHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS1kYXRlIHtcclxuICAgIGNvbG9yOiAjREMyMjM0O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMjVweDtcclxuICAgIHBhZGRpbmctdG9wOiA0cHg7XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0tdGV4dHdyIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHdpZHRoOiBzcGFuKDgpO1xyXG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMzJweDtcclxuICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgI0ZFRjI0RDtcclxuICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICNFRTY4NDA7XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICAgIH1cclxuXHJcbiAgICAmLS10b3Age1xyXG4gICAgICByaWdodDogMDtcclxuICAgICAgaGVpZ2h0OiAycHg7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY4NGQ7XHJcbiAgICAgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsICNmZmY4NGQgMCUsICNlZTY5NDAgMTAwJSk7XHJcbiAgICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsICNmZmY4NGQgMCUsICNlZTY5NDAgMTAwJSk7XHJcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2ZmZjg0ZCAwJSwgI2VlNjk0MCAxMDAlKTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgJi0tYm90dG9tIHtcclxuICAgICAgYm90dG9tOiAwO1xyXG4gICAgICBoZWlnaHQ6IDJweDtcclxuICAgICAgbGVmdDogMDtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgYmFja2dyb3VuZDogI2ZmZjg0ZDtcclxuICAgICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgI2ZmZjg0ZCAwJSwgI2VlNjk0MCAxMDAlKTtcclxuICAgICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgI2ZmZjg0ZCAwJSwgI2VlNjk0MCAxMDAlKTtcclxuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjZmZmODRkIDAlLCAjZWU2OTQwIDEwMCUpO1xyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLXRleHQge1xyXG4gICAgYmFja2dyb3VuZDogdXJsKC4uL2ltZy9tZWRpYS1tb3JlLnN2ZykgOTglIDUwJSBuby1yZXBlYXQ7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiA3NXB4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDE1cHg7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XHJcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XHJcbiAgICB9XHJcblxyXG5cclxuICB9XHJcblxyXG4gIHAge1xyXG4gICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgICBmb250LXNpemU6IDI0cHg7XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS1kYXRhIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgZm9udC1zaXplOiAzNnB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBjb2xvcjogI0RDMjIzNDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAyNXB4O1xyXG4gIH1cclxuXHJcblxyXG5cclxuICAubW9yZS0tYnRuIHtcclxuICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWcvbW9yZS0tYnV0dG9uLnN2Zyk7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTAwJTtcclxuICAgIGNvbG9yOiAjREMyMjM0O1xyXG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBtYXJnaW46IGF1dG87XHJcbiAgICB3aWR0aDogMjc3cHg7XHJcbiAgICBoZWlnaHQ6IDQwcHg7XHJcbiAgICBsaW5lLWhlaWdodDogNDBweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcclxuICB9XHJcbn1cclxuXHJcbi8vIHNhbGVcclxuXHJcblxyXG4vLyBsb2NhdGlvbnNcclxuLmxvY2F0aW9ucyB7XHJcblxyXG4gIGgyIHtcclxuICAgIHBhZGRpbmctdG9wOiA0MHB4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDU1cHg7XHJcbiAgICBAZXh0ZW5kIGgxO1xyXG5cclxuICAgIHNwYW4ge1xyXG4gICAgICBjb2xvcjogI0RDMjIzNDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWl0ZW0ge1xyXG4gICAgcGFkZGluZy1ib3R0b206IDU1cHg7XHJcblxyXG4gICAgaW1nIHtcclxuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAzMHB4O1xyXG4gICAgICBtYXJnaW4tdG9wOiAtMTBweDtcclxuXHJcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgICAgd2lkdGg6IDE4cHg7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc3Ryb25nIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMzVweDtcclxuICAgICAgZm9udC1zaXplOiAzNnB4O1xyXG5cclxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgICBmb250LXNpemU6IDI0cHg7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDE1cHg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDUwMHB4KSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS1pbWcge1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIHdpZHRoOiBzcGFuKDYpO1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWltZ3dyIHtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyICFpbXBvcnRhbnQ7XHJcbiAgICBoZWlnaHQ6IDMxdnc7XHJcbiAgICBtYXgtaGVpZ2h0OiAzNjBweDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgIG1heC1oZWlnaHQ6IDM2OHB4O1xyXG4gICAgICBoZWlnaHQ6IDQ4dnc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLS10ZXh0IHtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICB3aWR0aDogc3Bhbig2KTtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgIC5hY2YtbWFwIHtcclxuICAgICAgbWF4LWhlaWdodDogMzYwcHg7XHJcbiAgICAgIGhlaWdodDogMzF2dztcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcblxyXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICAgIG1heC1oZWlnaHQ6IDM2OHB4O1xyXG4gICAgICAgIGhlaWdodDogNDh2dztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgaW1nIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuXHJcbi8vIGZvb3RlclxyXG4uZm9vdGVyIHtcclxuICBiYWNrZ3JvdW5kOiAjMkYyRjJGO1xyXG4gIGZvbnQtc2l6ZTogMTRweDtcclxuICBjb2xvcjogI2ZmZjtcclxuXHJcbiAgYSB7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICB9XHJcblxyXG4gIHAge1xyXG4gICAgcGFkZGluZy1ib3R0b206IDE1cHg7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgfVxyXG5cclxuICAmLS1idG4ge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgICBtYXgtd2lkdGg6IDI3N3B4O1xyXG4gICAgaGVpZ2h0OiA0MHB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDQwcHg7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWcvZm9vdGVyLS1idG4uc3ZnKTtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlO1xyXG5cclxuICAgIC8vIHRyYW5zaXRpb24tZHVyYXRpb246IC4zcztcclxuICAgICY6YWN0aXZlIHtcclxuICAgICAgY29sb3I6ICNFMjM2MzggIWltcG9ydGFudDtcclxuICAgICAgYmFja2dyb3VuZDogdXJsKC4uL2ltZy9mb290ZXItLWJ0bl9hY3RpdmUuc3ZnKSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICBAZXh0ZW5kIC5ncl9yZWRfb3JhbmdlO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gICYtLWl0ZW0ge1xyXG4gICAgd2lkdGg6IHNwYW4oNCk7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICAgIHdpZHRoOiAyODBweDtcclxuICAgICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgfVxyXG5cclxuICAgIGgzIHtcclxuICAgICAgcGFkZGluZy10b3A6IDUxcHg7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAyNnB4O1xyXG4gICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICBjb2xvcjogI0RDMjIzNDtcclxuXHJcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDMwcHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLXRlbCB7XHJcbiAgICBpbWcge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVsIHtcclxuICAgIGxpIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDIycHg7XHJcblxyXG4gICAgICBhIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDEwMCU7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgd2lkdGg6IDM2cHg7XHJcbiAgICAgICAgaGVpZ2h0OiAzNnB4O1xyXG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcclxuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgIC8vIHRyYW5zaXRpb24tZHVyYXRpb246IC4zcztcclxuICAgICAgfVxyXG5cclxuICAgICAgLmluc3RhIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL2luc3RhZ3JhbS5zdmcpO1xyXG5cclxuICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcvaW5zdGFncmFtX2hvdmVyLnN2Zyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAuZmIge1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcvZmFjZWJvb2suc3ZnKTtcclxuXHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL2ZhY2Vib29rX2hvdmVyLnN2Zyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAueXQge1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcveW91dHViZS5zdmcpO1xyXG5cclxuICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcveW91dHViZV9ob3Zlci5zdmcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gZm9vdGVyXHJcbi8vICNhbGwge1xyXG4vLyAgIHdpZHRoOiAxNDAwcHg7XHJcbi8vICAgbWFyZ2luOiBhdXRvO1xyXG4vLyAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xyXG4vLyAtby10cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XHJcbi8vIC1tcy10cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XHJcbi8vIC1tb3otdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xyXG4vLyB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7IH1cclxuLnR0b3Age1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbGVmdDogMDtcclxufVxyXG5cclxuLnR0b3BjIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbi53aG9sZXNhbGUge1xyXG4gICYtLWhlYWRlciB7XHJcbiAgICBtYXgtaGVpZ2h0OiA3MzVweDtcclxuICAgIGhlaWdodDogY2FsYygxMDAlIC0gNjJweCk7XHJcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL2JnX3dob2xlc2FsZV93aG9sZXNhbGVoZWFkZXIucG5nKTUwJSAwIG5vLXJlcGVhdDtcclxuXHJcbiAgICBoMSB7XHJcbiAgICAgIEBleHRlbmQgaDE7XHJcblxyXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzNjRweCkge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA2MHB4O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBzcGFuIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBjb2xvcjogI0RDMjIzNDtcclxuICAgICAgICBtYXJnaW4tdG9wOiA0M3B4O1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA1NHB4O1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWcvZGVsaXZlcnktdHJ1Y2suc3ZnKSA1MCUgMCBuby1yZXBlYXQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5jb250YWN0cyB7XHJcbiAgJi0taGVhZGVyIHtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICBwYWRkaW5nLXRvcDogMzBweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xyXG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA2MnB4KTtcclxuICAgIG1heC1oZWlnaHQ6IDgxMHB4O1xyXG4gICAgYmFja2dyb3VuZDogdXJsKC4uL2ltZy9jb250YWN0c19oZWFkZXIuanBnKSA1MCUgMCBuby1yZXBlYXQ7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LWhlaWdodDogNTgwcHgpIHtcclxuICAgICAgcGFkZGluZy10b3A6IDgwcHg7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xyXG4gICAgfVxyXG5cclxuICAgICYtLWl0ZW0ge1xyXG4gICAgICB3aWR0aDogNTAlO1xyXG4gICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHJcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEzNDBweCkge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMTAwcHg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA1NXB4O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICAgIHdpZHRoOiAzODBweDtcclxuICAgICAgICBmbG9hdDogbm9uZTtcclxuICAgICAgICBtYXJnaW46IGF1dG87XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQwMHB4KSB7XHJcbiAgICAgICAgd2lkdGg6IDI3MHB4O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzNjBweCkge1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYtLWJvdHRvbSB7XHJcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDY1cHg7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaDEge1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMTAwcHg7XHJcblxyXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA2MHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc3BhbiB7XHJcbiAgICAgIGNvbG9yOiAjREMyMjM0O1xyXG4gICAgfVxyXG5cclxuICAgIGgzIHtcclxuICAgICAgZm9udC1zaXplOiAzNnB4O1xyXG4gICAgICBmb250LXdlaWdodDogYm9sZDtcclxuXHJcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQwMHB4KSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBhIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVsIHtcclxuICAgICAgbGkge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMjJweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5oYXNpY29uIHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgICAgaW1nIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICB0b3A6IDE2JTtcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICBsZWZ0OiAtNTVweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5oYXNpY29uMiB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAgIGltZyB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgdG9wOiAyOSU7XHJcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgbGVmdDogLTU1cHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAudGVsIHtcclxuICAgICAgcGFkZGluZy10b3A6IDIwcHg7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xyXG5cclxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDAwcHgpIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogMTBweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5oZXNoIHtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgICBwYWRkaW5nLXRvcDogMjRweDtcclxuXHJcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQwMHB4KSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5oaWRkZW5uYXYge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gIGhlaWdodDogMDtcclxuICAvLyBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4uc2luZ2xlIHtcclxuICAmLS1oZWFkZXIge1xyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcclxuICAgICAgcGFkZGluZy10b3A6IDgwcHg7XHJcblxyXG4gICAgICAuaGVhZGVyLS1iYWNrIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaDEge1xyXG4gICAgICBsaW5lLWhlaWdodDogLjc7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZm9ybSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4ud3BjZjctZm9ybS1jb250cm9sLXdyYXAge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLndwY2Y3LW5vdC12YWxpZC10aXAge1xyXG4gIGxlZnQ6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBmb250LXNpemU6IC43ZW0gIWltcG9ydGFudDtcclxuXHJcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcclxuICAgIHBvc2l0aW9uOiBzdGF0aWM7XHJcbiAgfVxyXG59XHJcblxyXG4uYWpheC1sb2FkZXIge1xyXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxufVxyXG5cclxuLndwY2Y3LW1haWwtc2VudC1vayB7XHJcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBib3R0b206IC04NXB4O1xyXG4gIHotaW5kZXg6IDEwMDtcclxuICB3aWR0aDogMTAwJTtcclxuICBsZWZ0OiAwO1xyXG4gIGJhY2tncm91bmQ6ICMzOThGMTQ7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICBtYXJnaW46IGF1dG8gIWltcG9ydGFudDtcclxuICBtYXJnaW4tdG9wOiAxMHB4ICFpbXBvcnRhbnQ7XHJcblxyXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XHJcbiAgICBwb3NpdGlvbjogc3RhdGljO1xyXG4gIH1cclxufVxyXG5cclxuLndwY2Y3LXZhbGlkYXRpb24tZXJyb3JzIHtcclxuICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGJvdHRvbTogLTg1cHg7XHJcbiAgei1pbmRleDogMTAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGxlZnQ6IDA7XHJcbiAgYmFja2dyb3VuZDogI0Y3RTcwMDtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIG1hcmdpbjogYXV0byAhaW1wb3J0YW50O1xyXG4gIG1hcmdpbi10b3A6IDEwcHggIWltcG9ydGFudDtcclxuXHJcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcclxuICAgIHBvc2l0aW9uOiBzdGF0aWM7XHJcbiAgfVxyXG59XHJcblxyXG4uZm9ybWJsb2sge1xyXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ1MHB4KSB7XHJcblxyXG4gICAgaW5wdXQsXHJcbiAgICBsYWJlbCB7XHJcbiAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnBvcHVwIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgbWF4LXdpZHRoOiA2MDBweDtcclxuICBtYXJnaW46IGF1dG87XHJcblxyXG4gIC5mb3JtYmxvay0tdGl0bGUge1xyXG4gICAgcGFkZGluZy1ib3R0b206IDIwcHg7XHJcbiAgfVxyXG5cclxuICAuZm9ybWJsb2sge1xyXG5cclxuICAgIHBhZGRpbmc6IDMwcHg7XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgICAgcGFkZGluZzogMTVweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlucHV0IHtcclxuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW4tdG9wOiAxNnB4ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICBsYWJlbCB7XHJcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDtcclxuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgbWFyZ2luLXRvcDogMTZweCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLndwY2Y3LXZhbGlkYXRpb24tZXJyb3JzIHtcclxuICAgIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC53cGNmNy1tYWlsLXNlbnQtb2sge1xyXG4gICAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLndwY2Y3LW5vdC12YWxpZC10aXAge1xyXG4gICAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xyXG4gIH1cclxufVxyXG5cclxuLm1mcC1jbG9zZSB7XHJcbiAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcclxufVxyXG5cclxuaW5wdXQ6Zm9jdXM6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xyXG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcclxufVxyXG5cclxuaW5wdXQ6Zm9jdXM6LW1vei1wbGFjZWhvbGRlciB7XHJcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xyXG59XHJcblxyXG4vKiBGRiA0LTE4ICovXHJcbmlucHV0OmZvY3VzOjotbW96LXBsYWNlaG9sZGVyIHtcclxuICBjb2xvcjogdHJhbnNwYXJlbnQ7XHJcbn1cclxuXHJcbi8qIEZGIDE5KyAqL1xyXG5pbnB1dDpmb2N1czotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xyXG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcclxufVxyXG5cclxuLyogSUUgMTArICovXHJcbnRleHRhcmVhOmZvY3VzOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcclxuICBjb2xvcjogdHJhbnNwYXJlbnQ7XHJcbn1cclxuXHJcbnRleHRhcmVhOmZvY3VzOi1tb3otcGxhY2Vob2xkZXIge1xyXG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcclxufVxyXG5cclxuLyogRkYgNC0xOCAqL1xyXG50ZXh0YXJlYTpmb2N1czo6LW1vei1wbGFjZWhvbGRlciB7XHJcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xyXG59XHJcblxyXG4vKiBGRiAxOSsgKi9cclxudGV4dGFyZWE6Zm9jdXM6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcclxuICBjb2xvcjogdHJhbnNwYXJlbnQ7XHJcbn1cclxuXHJcbi8qIElFIDEwKyAqL1xyXG5cclxuXHJcbi5zb2MgbGkge1xyXG5cclxuICAvLyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuNTtcclxuICAmOmhvdmVyIHtcclxuXHJcbiAgICBhbmltYXRpb246IHNvYyAuM3M7XHJcbiAgfVxyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgc29jIHtcclxuICAwJSB7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7XHJcbiAgfVxyXG5cclxuICA1MCUge1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjMpIHRyYW5zbGF0ZVkoLTVweCk7XHJcbiAgfVxyXG5cclxuICAxMDAlIHtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKTtcclxuICB9XHJcbn1cclxuXHJcbi8vIEAtby1rZXlmcmFtZXMgc29jIHtcclxuLy8gICBmcm9tIHsgIH1cclxuLy8gICB0byB7ICB9XHJcbi8vIH1cclxuLy8gQC1tb3ota2V5ZnJhbWVzIHNvYyB7XHJcbi8vICAgZnJvbSB7ICB9XHJcbi8vICAgdG8geyAgfVxyXG4vLyB9XHJcbi8vIEBrZXlmcmFtZXMgc29jIHtcclxuLy8gICBmcm9tIHsgIH1cclxuLy8gICB0byB7ICB9XHJcbi8vIH1cclxuLnNpbmdsZV90aXRsZSB7XHJcbiAgaDEge1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcclxuICB9XHJcbn1cclxuXHJcbi5sb2dnZWQtaW4tYXMrLmZvcm0tLXJpZ2h0e1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59IiwiLyogaHR0cDovL21leWVyd2ViLmNvbS9lcmljL3Rvb2xzL2Nzcy9yZXNldC8gXG4gICB2Mi4wIHwgMjAxMTAxMjZcbiAgIExpY2Vuc2U6IG5vbmUgKHB1YmxpYyBkb21haW4pXG4qL1xuXG5odG1sLCBib2R5LCBkaXYsIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLCBibG9ja3F1b3RlLCBwcmUsXG5hLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsXG5kZWwsIGRmbiwgZW0sIGltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsXG5zbWFsbCwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0dCwgdmFyLFxuYiwgdSwgaSwgY2VudGVyLFxuZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSxcbmZpZWxkc2V0LCBmb3JtLCBsYWJlbCwgbGVnZW5kLFxudGFibGUsIGNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQsXG5hcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLCBlbWJlZCwgXG5maWd1cmUsIGZpZ2NhcHRpb24sIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIFxubWVudSwgbmF2LCBvdXRwdXQsIHJ1YnksIHNlY3Rpb24sIHN1bW1hcnksXG50aW1lLCBtYXJrLCBhdWRpbywgdmlkZW8ge1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDA7XG5cdGJvcmRlcjogMDtcblx0Zm9udC1zaXplOiAxMDAlO1xuXHRmb250OiBpbmhlcml0O1xuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG4vKiBIVE1MNSBkaXNwbGF5LXJvbGUgcmVzZXQgZm9yIG9sZGVyIGJyb3dzZXJzICovXG5hcnRpY2xlLCBhc2lkZSwgZGV0YWlscywgZmlnY2FwdGlvbiwgZmlndXJlLCBcbmZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIG1lbnUsIG5hdiwgc2VjdGlvbiB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuYm9keSB7XG5cdGxpbmUtaGVpZ2h0OiAxO1xufVxub2wsIHVsIHtcblx0bGlzdC1zdHlsZTogbm9uZTtcbn1cbmJsb2NrcXVvdGUsIHEge1xuXHRxdW90ZXM6IG5vbmU7XG59XG5ibG9ja3F1b3RlOmJlZm9yZSwgYmxvY2txdW90ZTphZnRlcixcbnE6YmVmb3JlLCBxOmFmdGVyIHtcblx0Y29udGVudDogJyc7XG5cdGNvbnRlbnQ6IG5vbmU7XG59XG50YWJsZSB7XG5cdGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG5cdGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG4iLCIvKlxyXG4qIEdyaWRcclxuKi9cclxuXHJcbkBpbXBvcnQgJ3N1c3knO1xyXG4kc3VzeTogKCdjb2x1bW5zJzogc3VzeS1yZXBlYXQoMTIpLFxyXG4nZ3V0dGVycyc6IDAsXHJcbidzcHJlYWQnOiAnbmFycm93JyxcclxuJ2NvbnRhaW5lci1zcHJlYWQnOiAnbmFycm93Jyk7XHJcblxyXG4ucm93OmFmdGVyIHtcclxuICBjb250ZW50OiAnJztcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBoZWlnaHQ6IDA7XHJcbiAgY2xlYXI6IGJvdGg7XHJcbn1cclxuXHJcbi5jb250YWluZXIge1xyXG4gIG1hcmdpbjogYXV0bztcclxuICBtYXgtd2lkdGg6IDExNzBweDtcclxuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgcGFkZGluZy1yaWdodDogMTBweDtcclxufSIsIi8vIFN1c3kgKFVuLVByZWZpeGVkKVxuLy8gPT09PT09PT09PT09PT09PT09XG5cbkBpbXBvcnQgJ3N1c3ktcHJlZml4JztcbkBpbXBvcnQgJ3N1c3kvdW5wcmVmaXgnO1xuIiwiLy8gU3VzeSAoUHJlZml4ZWQpXG4vLyA9PT09PT09PT09PT09PT1cblxuXG5AaW1wb3J0ICd2ZXJzaW9uJztcbkBpbXBvcnQgJ3N1c3kvdXRpbGl0aWVzJztcbkBpbXBvcnQgJ3N1c3kvc3UtdmFsaWRhdGUnO1xuQGltcG9ydCAnc3VzeS9zdS1tYXRoJztcbkBpbXBvcnQgJ3N1c3kvc2V0dGluZ3MnO1xuQGltcG9ydCAnc3VzeS9ub3JtYWxpemUnO1xuQGltcG9ydCAnc3VzeS9wYXJzZSc7XG5AaW1wb3J0ICdzdXN5L3N5bnRheC1oZWxwZXJzJztcbkBpbXBvcnQgJ3N1c3kvYXBpJztcbiIsIi8vIFJlbGVhc2UgTWFuYWdlbWVudCBpbiBTdXN5XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFN1c3kgVmVyc2lvbiBbdmFyaWFibGVdXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIFRoZSBjdXJyZW50IHZlcnNpb24gb2YgU3VzeSBiZWluZyB1c2VkLlxuLy8vIC0gV2Ugd2lsbCByZWxlYXNlIGEgbWFqb3IgdmVyc2lvbiBmb3IgYW55IEJSRUFLSU5HIGNoYW5nZXMuXG4vLy8gLSBXZSB3aWxsIHJlbGVhc2UgYSBtaW5vciB2ZXJzaW9uIGZvciBhbnkgc2lnbmlmaWNhbnQgTkVXIGZlYXR1cmVzLlxuLy8vIC0gV2Ugd2lsbCByZWxlYXNlIGEgcGF0Y2ggZm9yIGFueSBCVUdGSVggY2hhbmdlcy5cbi8vL1xuLy8vIEBncm91cCBfdmVyc2lvblxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vIEBzaW5jZSAzLjAuMVxuLy8vXG4vLy8gQHByb3Age2ludGVnZXJ9ICdtYWpvcicgLSB0aGUgbWFqb3IgcmVsZWFzZSBudW1iZXJcbi8vLyBAcHJvcCB7aW50ZWdlcn0gJ21pbm9yJyAtIHRoZSBtaW5vciByZWxlYXNlIG51bWJlclxuLy8vIEBwcm9wIHtpbnRlZ2VyfSAncGF0Y2gnIC0gdGhlIHBhdGNoIG51bWJlclxuJF9zdXN5LXZlcnNpb246IChcbiAgJ21ham9yJzogMyxcbiAgJ21pbm9yJzogMCxcbiAgJ3BhdGNoJzogNSxcbik7XG5cblxuLy8gU3VzeSBWZXJzaW9uIFtmdW5jdGlvbl1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gUmV0dXJucyB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIFN1c3lcbi8vLyBhcyBhIHN0cmluZyBpbiB0aGUgY29tbW9uIGBtYWpvci5taW5vci5wYXRjaGAgZm9ybWF0IOKAk1xuLy8vIG9yIHJldHVybnMgb25lIHBhcnQgKG1ham9yIHwgbWlub3IgfCBwYXRjaCkgYXMgYSBudW1iZXJcbi8vLyBmb3IgdmVyc2lvbiBjb21wYXJpc29ucy5cbi8vLyBTaW5jZSB2ZXJzaW9uIG51bWJlcnMgYXJlbid0IGFjdHVhbCBkZWNpbWFscyxcbi8vLyB0aGVyZSBpcyBubyBzaW1wbGUgd2F5IHRvIHJldHVybiB0aGUgZnVsbCB2ZXJzaW9uXG4vLy8gYXMgYSBjb21wYXJhYmxlIG51bWJlciBpbiBTYXNzLlxuLy8vXG4vLy8gQGdyb3VwIF92ZXJzaW9uXG4vLy9cbi8vLyBAcGFyYW0geydtYWpvcicgfCAnbWlub3InIHwgJ3BhdGNoJ30gJHBhcnQgW251bGxdIC1cbi8vLyAgIFRoZSBwYXJ0IChtYWpvciB8IG1pbm9yIHwgcGF0Y2gpIHRvIHJldHVybiBhcyBhIG51bWJlci5cbi8vLyAgIEFueSBvdGhlciB2YWx1ZSB3aWxsIHJldHVybiB0aGUgZnVsbCB2ZXJzaW9uIGFzIGEgc3RyaW5nLlxuLy8vIEBleGFtcGxlIHNjc3MgLSBDdXJyZW50IFN1c3kgVmVyc2lvblxuLy8vICAgLyogRnVsbCBWZXJzaW9uOiAje3N1c3ktdmVyc2lvbigpfSAqL1xuLy8vICAgLyogTWFqb3IgUmVsZWFzZTogI3tzdXN5LXZlcnNpb24oJ21ham9yJyl9ICovXG5AZnVuY3Rpb24gc3VzeS12ZXJzaW9uKFxuICAkcGFydDogbnVsbFxuKSB7XG4gICRtYWpvcjogbWFwLWdldCgkX3N1c3ktdmVyc2lvbiwgJ21ham9yJyk7XG4gICRtaW5vcjogbWFwLWdldCgkX3N1c3ktdmVyc2lvbiwgJ21pbm9yJyk7XG4gICRwYXRjaDogbWFwLWdldCgkX3N1c3ktdmVyc2lvbiwgJ3BhdGNoJyk7XG4gICRmdWxsOiAnI3skbWFqb3J9LiN7JG1pbm9yfS4jeyRwYXRjaH0nO1xuXG4gIEByZXR1cm4gbWFwLWdldCgkX3N1c3ktdmVyc2lvbiwgJHBhcnQpIG9yICRmdWxsO1xufVxuIiwiLy8gU2FzcyBVdGlsaXRpZXNcbi8vID09PT09PT09PT09PT09XG4vLyAtIFN1c3kgRXJyb3IgT3V0cHV0IE92ZXJyaWRlIFt2YXJpYWJsZV1cbi8vIC0gU3VzeSBFcnJvciBbZnVuY3Rpb25dXG5cblxuXG4vLyBTdXN5IEVycm9yIE91dHB1dCBPdmVycmlkZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBUdXJuIG9mZiBlcnJvciBvdXRwdXQgZm9yIHRlc3Rpbmdcbi8vLyBAZ3JvdXAgeC11dGlsaXR5XG4vLy8gQGFjY2VzcyBwcml2YXRlXG4kX3N1c3ktZXJyb3Itb3V0cHV0LW92ZXJyaWRlOiBmYWxzZSAhZGVmYXVsdDtcblxuXG5cbi8vIFN1c3kgRXJyb3Jcbi8vIC0tLS0tLS0tLS1cbi8vLyBPcHRpb25hbGx5IHJldHVybiBlcnJvciBtZXNzYWdlcyB3aXRob3V0IGZhaWxpbmcsXG4vLy8gYXMgYSB3YXkgdG8gdGVzdCBlcnJvciBjYXNlc1xuLy8vXG4vLy8gQGdyb3VwIHgtdXRpbGl0eVxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtzdHJpbmd9ICRtZXNzYWdlIC1cbi8vLyAgIEEgdXNlZnVsIGVycm9yIG1lc3NhZ2UsIGV4cGxhaW5pbmcgdGhlIHByb2JsZW1cbi8vLyBAcGFyYW0ge3N0cmluZ30gJHNvdXJjZSAtXG4vLy8gICBUaGUgb3JpZ2luYWwgc291cmNlIG9mIHRoZSBlcnJvciBmb3IgZGVidWdnaW5nXG4vLy8gQHBhcmFtIHtib29sfSAkb3ZlcnJpZGUgWyRfc3VzeS1lcnJvci1vdXRwdXQtb3ZlcnJpZGVdIC1cbi8vLyAgIE9wdGlvbmFsbHkgcmV0dXJuIHRoZSBlcnJvciByYXRoZXIgdGhhbiBmYWlsaW5nXG4vLy8gQHJldHVybiB7c3RyaW5nfSAtXG4vLy8gICBDb21iaW5lZCBlcnJvciB3aXRoIHNvdXJjZSBhbmQgbWVzc2FnZVxuLy8vIEB0aHJvd3MgV2hlbiBgJG92ZXJyaWRlID09IHRydWVgXG5AZnVuY3Rpb24gX3N1c3ktZXJyb3IoXG4gICRtZXNzYWdlLFxuICAkc291cmNlLFxuICAkb3ZlcnJpZGU6ICRfc3VzeS1lcnJvci1vdXRwdXQtb3ZlcnJpZGVcbikge1xuICBAaWYgJG92ZXJyaWRlIHtcbiAgICBAcmV0dXJuICdFUlJPUiBbI3skc291cmNlfV0gI3skbWVzc2FnZX0nO1xuICB9XG5cbiAgQGVycm9yICdbI3skc291cmNlfV0gI3skbWVzc2FnZX0nO1xufVxuXG5cbi8vIFN1IElzIENvbXBhcmFibGVcbi8vIC0tLS0tLS0tLS0tLS0tLS1cbi8vLyBDaGVjayB0aGF0IHRoZSB1bml0cyBpbiBhIGdyaWQgYXJlIGNvbXBhcmFibGVcbi8vL1xuLy8vIEBncm91cCBfdmFsaWRhdGlvblxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtudW1iZXJzfSAkbGVuZ3Roc+KApiAtXG4vLy8gICBBcmdsaXN0IG9mIGFsbCB0aGUgbnVtYmVyIHZhbHVlcyB0byBjb21wYXJlXG4vLy8gICAoY29sdW1ucywgZ3V0dGVycywgc3BhbiwgZXRjKVxuLy8vXG4vLy8gQHJldHVybiB7J2ZsdWlkJyB8ICdzdGF0aWMnIHwgZmFsc2V9IC1cbi8vLyAgIFRoZSB0eXBlIG9mIHNwYW4gKGZsdWlkIG9yIHN0YXRpYykgd2hlbiB1bml0cyBtYXRjaCxcbi8vLyAgIG9yIGBmYWxzZWAgZm9yIG1pc21hdGNoZWQgdW5pdHNcbkBmdW5jdGlvbiBfc3UtaXMtY29tcGFyYWJsZShcbiAgJGxlbmd0aHMuLi5cbikge1xuICAkZmlyc3Q6IG50aCgkbGVuZ3RocywgMSk7XG5cbiAgQGlmIChsZW5ndGgoJGxlbmd0aHMpID09IDEpIHtcbiAgICBAcmV0dXJuIGlmKHVuaXRsZXNzKCRmaXJzdCksICdmbHVpZCcsICdzdGF0aWMnKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggbGVuZ3RoKCRsZW5ndGhzKSB7XG4gICAgJGNvbXA6IG50aCgkbGVuZ3RocywgJGkpO1xuXG4gICAgJGZhaWw6IG5vdCBjb21wYXJhYmxlKCRmaXJzdCwgJGNvbXApO1xuICAgICRmYWlsOiAkZmFpbCBvciAodW5pdGxlc3MoJGZpcnN0KSBhbmQgbm90IHVuaXRsZXNzKCRjb21wKSk7XG4gICAgJGZhaWw6ICRmYWlsIG9yICh1bml0bGVzcygkY29tcCkgYW5kIG5vdCB1bml0bGVzcygkZmlyc3QpKTtcblxuICAgIEBpZiAkZmFpbCB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gaWYodW5pdGxlc3MoJGZpcnN0KSwgJ2ZsdWlkJywgJ3N0YXRpYycpO1xufVxuXG5cbi8vIFN1IE1hcCBBZGQgVW5pdHNcbi8vIC0tLS0tLS0tLS0tLS0tLS1cbi8vLyBUaGUgY2FsYyBmZWF0dXJlcyB1c2UgYSBtYXAgb2YgdW5pdHMgYW5kIHZhbHVlc1xuLy8vIHRvIGNvbXBpbGUgdGhlIHByb3BlciBhbGdvcnl0aG0uXG4vLy8gVGhpcyBmdW5jdGlvbiBhZGRzIGEgbmV3IHZhbHVlIHRvIGFueSBjb21wYXJhYmxlIGV4aXN0aW5nIHVuaXQvdmFsdWUsXG4vLy8gb3IgYWRkcyBhIG5ldyB1bml0L3ZhbHVlIHBhaXIgdG8gdGhlIG1hcFxuLy8vXG4vLy8gQGdyb3VwIHgtdXRpbGl0eVxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHttYXB9ICRtYXAgLVxuLy8vICAgQSBtYXAgb2YgdW5pdC92YWx1ZSBwYWlycywgZS5nLiAoJ3B4JzogMTIwcHgpXG4vLy8gQHBhcmFtIHtsZW5ndGh9ICR2YWx1ZSAtXG4vLy8gICBBIG5ldyBsZW5ndGggdG8gYmUgYWRkZWQgdG8gdGhlIG1hcFxuLy8vIEByZXR1cm4ge21hcH0gLVxuLy8vICAgVGhlIHVwZGF0ZWQgbWFwLCB3aXRoIG5ldyB2YWx1ZSBhZGRlZFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtXG4vLy8gICAkbWFwOiAoMHB4OiAxMjBweCk7XG4vLy8gICAkbWFwOiBfc3UtbWFwLWFkZC11bml0cygkbWFwLCAxaW4pOyAvLyBhZGQgYSBjb21wYXJhYmxlIHVuaXRcbi8vLyAgICRtYXA6IF9zdS1tYXAtYWRkLXVuaXRzKCRtYXAsIDN2dyk7IC8vIGFkZCBhIG5ldyB1bml0XG4vLy9cbi8vLyAgIEBlYWNoICR1bml0cywgJHZhbHVlIGluICRtYXAge1xuLy8vICAgICAvKiAjeyR1bml0c306ICN7JHZhbHVlfSAqL1xuLy8vICAgfVxuQGZ1bmN0aW9uIF9zdS1tYXAtYWRkLXVuaXRzKFxuICAkbWFwLFxuICAkdmFsdWVcbikge1xuICAkdW5pdDogJHZhbHVlICogMDtcbiAgJGhhczogbWFwLWdldCgkbWFwLCAkdW5pdCkgb3IgMDtcblxuICBAaWYgKCRoYXMgPT0gMCkge1xuICAgIEBlYWNoICR0cnksICRjb3VsZCBpbiAkbWFwIHtcbiAgICAgICRtYXRjaDogY29tcGFyYWJsZSgkdHJ5LCAkdmFsdWUpO1xuICAgICAgJHVuaXQ6IGlmKCRtYXRjaCwgJHRyeSwgJHVuaXQpO1xuICAgICAgJGhhczogaWYoJG1hdGNoLCAkY291bGQsICRoYXMpO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gbWFwLW1lcmdlKCRtYXAsICgkdW5pdDogJGhhcyArICR2YWx1ZSkpO1xufVxuXG5cbi8vIFN1c3kgRmxhdHRlblxuLy8gLS0tLS0tLS0tLS0tXG4vLy8gRmxhdHRlbiBhIG11bHRpZGltZW5zaW9uYWwgbGlzdFxuLy8vXG4vLy8gQGdyb3VwIHgtdXRpbGl0eVxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtsaXN0fSAkbGlzdCAtXG4vLy8gICBUaGUgbGlzdCB0byBiZSBmbGF0dGVuZWRcbi8vLyBAcmV0dXJuIHtsaXN0fSAtXG4vLy8gICBUaGUgZmxhdHRlbmVkIGxpc3Rcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLVxuLy8vICAgJGxpc3Q6IDEyMHB4ICgzMGVtIDMwZW0pIDEyMHB4O1xuLy8vICAgLyogI3tfc3VzeS1mbGF0dGVuKCRsaXN0KX0gKi9cbkBmdW5jdGlvbiBfc3VzeS1mbGF0dGVuKFxuICAkbGlzdFxuKSB7XG4gICRmbGF0OiAoKTtcblxuICAvLyBEb24ndCBpdGVyYXRlIG92ZXIgbWFwc1xuICBAaWYgKHR5cGUtb2YoJGxpc3QpID09ICdtYXAnKSB7XG4gICAgQHJldHVybiAkbGlzdDtcbiAgfVxuXG4gIC8vIEl0ZXJhdGUgb3ZlciBsaXN0cyAob3Igc2luZ2xlIGl0ZW1zKVxuICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XG4gICAgQGlmICh0eXBlLW9mKCRpdGVtKSA9PSAnbGlzdCcpIHtcbiAgICAgICRpdGVtOiBfc3VzeS1mbGF0dGVuKCRpdGVtKTtcbiAgICAgICRmbGF0OiBqb2luKCRmbGF0LCAkaXRlbSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkZmxhdDogYXBwZW5kKCRmbGF0LCAkaXRlbSk7XG4gICAgfVxuICB9XG5cbiAgLy8gUmV0dXJuIGZsYXR0ZW5lZCBsaXN0XG4gIEByZXR1cm4gJGZsYXQ7XG59XG4iLCIvLy8gVmFsaWRhdGlvblxuLy8vID09PT09PT09PT1cbi8vLyBFYWNoIGFyZ3VtZW50IHRvIFN1IGhhcyBhIHNpbmdsZSBjYW5vbmljYWwgc3ludGF4LlxuLy8vIFRoZXNlIHZhbGlkYXRpb24gZnVuY3Rpb25zIGNoZWNrIHRvIGVuc3VyZVxuLy8vIHRoYXQgZWFjaCBhcmd1bWVudCBpcyB2YWxpZCxcbi8vLyBpbiBvcmRlciB0byBwcm92aWRlIHVzZWZ1bCBlcnJvcnNcbi8vLyBiZWZvcmUgYXR0ZW1wdGluZyB0byBjYWxjdWxhdGUgdGhlIHJlc3VsdHMvXG4vLy9cbi8vLyBAZ3JvdXAgX3ZhbGlkYXRpb25cbi8vL1xuLy8vIEBzZWUgc3UtdmFsaWQtY29sdW1uc1xuLy8vIEBzZWUgc3UtdmFsaWQtZ3V0dGVyc1xuLy8vIEBzZWUgc3UtdmFsaWQtc3ByZWFkXG4vLy8gQHNlZSBzdS12YWxpZC1sb2NhdGlvblxuXG5cblxuLy8gVmFsaWQgU3BhblxuLy8gLS0tLS0tLS0tLVxuLy8vIENoZWNrIHRoYXQgdGhlIGBzcGFuYCBhcmd1bWVudFxuLy8vIGlzIGEgbnVtYmVyLCBsZW5ndGgsIG9yIGNvbHVtbi1saXN0XG4vLy9cbi8vLyBAZ3JvdXAgX3ZhbGlkYXRpb25cbi8vL1xuLy8vIEBwYXJhbSB7bnVtYmVyIHwgbGlzdH0gJHNwYW4gLVxuLy8vICAgTnVtYmVyIG9mIGNvbHVtbnMsIG9yIGxlbmd0aCBvZiBzcGFuXG4vLy9cbi8vLyBAcmV0dXJuIHtudW1iZXIgfCBsaXN0fSAtXG4vLy8gICBWYWxpZGF0ZWQgYCRzcGFuYCBudW1iZXIsIGxlbmd0aCwgb3IgY29sdW1ucyBsaXN0XG4vLy9cbi8vLyBAdGhyb3dcbi8vLyAgIHdoZW4gc3BhbiB2YWx1ZSBpcyBub3QgYSBudW1iZXIsIG9yIHZhbGlkIGNvbHVtbiBsaXN0XG5AZnVuY3Rpb24gc3UtdmFsaWQtc3BhbihcbiAgJHNwYW5cbikge1xuICAkdHlwZTogdHlwZS1vZigkc3Bhbik7XG4gIEBpZiAoJHR5cGUgPT0gJ251bWJlcicpIHtcbiAgICBAcmV0dXJuICRzcGFuO1xuICB9IEBlbHNlIGlmICgkdHlwZSA9PSAnbGlzdCcpIGFuZCBzdS12YWxpZC1jb2x1bW5zKCRzcGFuLCAnc2lsZW50LWZhaWx1cmUnKSB7XG4gICAgQHJldHVybiAkc3BhbjtcbiAgfVxuXG4gICRhY3R1YWw6ICdbI3t0eXBlLW9mKCRzcGFuKX1dIGAje2luc3BlY3QoJHNwYW4pfWAnO1xuICBAcmV0dXJuIF9zdXN5LWVycm9yKFxuICAgICcjeyRhY3R1YWx9IGlzIG5vdCBhIHZhbGlkIG51bWJlciwgbGVuZ3RoLCBvciBjb2x1bW4tbGlzdCBmb3IgJHNwYW4uJyxcbiAgICAnc3UtdmFsaWQtc3BhbicpO1xufVxuXG5cblxuLy8gVmFsaWQgQ29sdW1uc1xuLy8gLS0tLS0tLS0tLS0tLVxuLy8vIENoZWNrIHRoYXQgdGhlIGBjb2x1bW5zYCBhcmd1bWVudCBpcyBhIHZhbGlkXG4vLy8gbGlzdCBvZiBjb2x1bW4tbGVuZ3Roc1xuLy8vXG4vLy8gQGdyb3VwIF92YWxpZGF0aW9uXG4vLy9cbi8vLyBAcGFyYW0ge2xpc3R9ICRjb2x1bW5zIC1cbi8vLyAgIExpc3Qgb2YgY29sdW1uLWxlbmd0aHNcbi8vLyBAcGFyYW0ge2Jvb2x9ICRzaWxlbnQtZmFpbHVyZSBbdHJ1ZV0gLVxuLy8vICAgU2V0IGZhbHNlIHRvIHJldHVybiBudWxsIG9uIGZhaWx1cmVcbi8vL1xuLy8vIEByZXR1cm4ge2xpc3R9IC1cbi8vLyAgIFZhbGlkYXRlZCBgJGNvbHVtbnNgIGxpc3Rcbi8vL1xuLy8vIEB0aHJvd1xuLy8vICAgd2hlbiBjb2x1bW4gdmFsdWUgaXMgbm90IGEgdmFsaWQgbGlzdCBvZiBudW1iZXJzXG5AZnVuY3Rpb24gc3UtdmFsaWQtY29sdW1ucyhcbiAgJGNvbHVtbnMsXG4gICRzaWxlbnQtZmFpbHVyZTogZmFsc2Vcbikge1xuICBAaWYgKHR5cGUtb2YoJGNvbHVtbnMpID09ICdsaXN0Jykge1xuICAgICRmYWlsOiBmYWxzZTtcblxuICAgIEBlYWNoICRjb2wgaW4gJGNvbHVtbnMge1xuICAgICAgQGlmICh0eXBlLW9mKCRjb2wpICE9ICdudW1iZXInKSB7XG4gICAgICAgICRmYWlsOiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiBub3QgJGZhaWwge1xuICAgICAgQHJldHVybiAkY29sdW1ucztcbiAgICB9XG4gIH1cblxuICAvLyBTaWxlbnQgRmFpbHVyZVxuICBAaWYgJHNpbGVudC1mYWlsdXJlIHtcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBFcnJvciBNZXNzYWdlXG4gICRhY3R1YWw6ICdbI3t0eXBlLW9mKCRjb2x1bW5zKX1dIGAje2luc3BlY3QoJGNvbHVtbnMpfWAnO1xuXG4gIEByZXR1cm4gX3N1c3ktZXJyb3IoXG4gICAgJyN7JGFjdHVhbH0gaXMgbm90IGEgdmFsaWQgbGlzdCBvZiBudW1iZXJzIGZvciAkY29sdW1ucy4nLFxuICAgICdzdS12YWxpZC1jb2x1bW5zJyk7XG59XG5cblxuXG4vLyBWYWxpZCBHdXR0ZXJzXG4vLyAtLS0tLS0tLS0tLS0tXG4vLy8gQ2hlY2sgdGhhdCB0aGUgYGd1dHRlcnNgIGFyZ3VtZW50IGlzIGEgdmFsaWQgbnVtYmVyXG4vLy9cbi8vLyBAZ3JvdXAgX3ZhbGlkYXRpb25cbi8vL1xuLy8vIEBwYXJhbSB7bnVtYmVyfSAkZ3V0dGVycyAtXG4vLy8gICBXaWR0aCBvZiBhIGd1dHRlclxuLy8vXG4vLy8gQHJldHVybiB7bnVtYmVyfSAtXG4vLy8gICBWYWxpZGF0ZWQgYCRndXR0ZXJzYCBudW1iZXJcbi8vL1xuLy8vIEB0aHJvd1xuLy8vICAgd2hlbiBndXR0ZXIgdmFsdWUgaXMgbm90IGEgbnVtYmVyXG5AZnVuY3Rpb24gc3UtdmFsaWQtZ3V0dGVycyhcbiAgJGd1dHRlcnNcbikge1xuICAkdHlwZTogdHlwZS1vZigkZ3V0dGVycyk7XG5cbiAgQGlmICgkdHlwZSA9PSAnbnVtYmVyJykge1xuICAgIEByZXR1cm4gJGd1dHRlcnM7XG4gIH1cblxuICAkYWN0dWFsOiAnWyN7JHR5cGV9XSBgI3tpbnNwZWN0KCRndXR0ZXJzKX1gJztcbiAgQHJldHVybiBfc3VzeS1lcnJvcihcbiAgICAnI3skYWN0dWFsfSBpcyBub3QgYSBudW1iZXIgb3IgbGVuZ3RoIGZvciAkZ3V0dGVycy4nLFxuICAgICdzdS12YWxpZC1ndXR0ZXJzJyk7XG59XG5cblxuXG4vLyBWYWxpZCBTcHJlYWRcbi8vIC0tLS0tLS0tLS0tLVxuLy8vIENoZWNrIHRoYXQgdGhlIGBzcHJlYWRgIGFyZ3VtZW50IGlzIGEgdmFsaWRcbi8vLyBpbnRpZ2VyIGJldHdlZW4gYC0xYCBhbmQgYDFgXG4vLy9cbi8vLyBAZ3JvdXAgX3ZhbGlkYXRpb25cbi8vL1xuLy8vIEBwYXJhbSB7MCB8IDEgfCAtMX0gJHNwcmVhZCAtXG4vLy8gICBOdW1iZXIgb2YgZ3V0dGVycyB0byBpbmNsdWRlIGluIGEgc3Bhbixcbi8vLyAgIHJlbGF0aXZlIHRvIHRoZSBudW1iZXIgY29sdW1uc1xuLy8vXG4vLy8gQHJldHVybiB7MCB8IDEgfCAtMX0gLVxuLy8vICAgVmFsaWRhdGVkIGAkc3ByZWFkYCBudW1iZXJcbi8vL1xuLy8vIEB0aHJvd1xuLy8vICAgd2hlbiBzcHJlYWQgdmFsdWUgaXMgbm90IGEgdmFsaWQgc3ByZWFkXG5AZnVuY3Rpb24gc3UtdmFsaWQtc3ByZWFkKFxuICAkc3ByZWFkXG4pIHtcbiAgQGlmIGluZGV4KDAgMSAtMSwgJHNwcmVhZCkge1xuICAgIEByZXR1cm4gJHNwcmVhZDtcbiAgfVxuXG4gICRhY3R1YWw6ICdbI3t0eXBlLW9mKCRzcHJlYWQpfV0gYCN7aW5zcGVjdCgkc3ByZWFkKX1gJztcbiAgQHJldHVybiBfc3VzeS1lcnJvcihcbiAgICAnI3skYWN0dWFsfSBpcyBub3QgYSBub3JtYWxpemVkIFswIHwgMSB8IC0xXSB2YWx1ZSBmb3IgYCRzcHJlYWRgLicsXG4gICAgJ3N1LXZhbGlkLXNwcmVhZCcpO1xufVxuXG5cblxuLy8gVmFsaWQgTG9jYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tXG4vLy8gQ2hlY2sgdGhhdCB0aGUgYGxvY2F0aW9uYCBhcmd1bWVudCBpcyBhIHZhbGlkIG51bWJlcixcbi8vLyB3aXRoaW4gdGhlIHNjb3BlIG9mIGF2YWlsYWJsZSBjb2x1bW5zXG4vLy9cbi8vLyBAZ3JvdXAgX3ZhbGlkYXRpb25cbi8vL1xuLy8vIEBwYXJhbSB7bnVtYmVyfSAkc3BhbiAtXG4vLy8gICBOdW1iZXIgb2YgZ3JpZC1jb2x1bW5zIHRvIGJlIHNwYW5uZWRcbi8vLyBAcGFyYW0ge2ludGVnZXIgfCBzdHJpbmd9ICRsb2NhdGlvbiAtXG4vLy8gICBTdGFydGluZyAoMS1pbmRleGVkKSBjb2x1bW4tcG9zaXRpb24gb2YgdGhhdCBzcGFuXG4vLy8gQHBhcmFtIHtsaXN0fSAkY29sdW1ucyAtXG4vLy8gICBMaXN0IG9mIGF2YWlsYWJsZSBjb2x1bW5zIGluIHRoZSBncmlkXG4vLy9cbi8vLyBAcmV0dXJuIHtpbnRlZ2VyfSAtXG4vLy8gICBWYWxpZGF0ZWQgYCRsb2NhdGlvbmAgaW50aWdlclxuLy8vXG4vLy8gQHRocm93XG4vLy8gICB3aGVuIGxvY2F0aW9uIHZhbHVlIGlzIG5vdCBhIHZhbGlkIGluZGV4LFxuLy8vICAgZ2l2ZW4gdGhlIGNvbnRleHQgYW5kIHNwYW4uXG5AZnVuY3Rpb24gc3UtdmFsaWQtbG9jYXRpb24oXG4gICRzcGFuLFxuICAkbG9jYXRpb24sXG4gICRjb2x1bW5zXG4pIHtcbiAgJGNvdW50OiBsZW5ndGgoJGNvbHVtbnMpO1xuXG4gIEBpZiAkbG9jYXRpb24ge1xuICAgIEBpZiAodHlwZS1vZigkbG9jYXRpb24pICE9ICdudW1iZXInKSBvciAobm90IHVuaXRsZXNzKCRsb2NhdGlvbikpIHtcbiAgICAgICRhY3R1YWw6ICdbI3t0eXBlLW9mKCRsb2NhdGlvbil9XSBgI3skbG9jYXRpb259YCc7XG4gICAgICBAcmV0dXJuIF9zdXN5LWVycm9yKFxuICAgICAgICAnI3skYWN0dWFsfSBpcyBub3QgYSB1bml0bGVzcyBudW1iZXIgZm9yICRsb2NhdGlvbi4nLFxuICAgICAgICAnc3UtdmFsaWQtbG9jYXRpb24nKTtcbiAgICB9IEBlbHNlIGlmIChyb3VuZCgkbG9jYXRpb24pICE9ICRsb2NhdGlvbikge1xuICAgICAgQHJldHVybiBfc3VzeS1lcnJvcihcbiAgICAgICAgJ0xvY2F0aW9uIChgI3skbG9jYXRpb259YCkgbXVzdCBiZSBhIDEtaW5kZXhlZCBpbnRpZ2VyIHBvc2l0aW9uLicsXG4gICAgICAgICdzdS12YWxpZC1sb2NhdGlvbicpO1xuICAgIH0gQGVsc2UgaWYgKCRsb2NhdGlvbiA+ICRjb3VudCkgb3IgKCRsb2NhdGlvbiA8IDEpIHtcbiAgICAgIEByZXR1cm4gX3N1c3ktZXJyb3IoXG4gICAgICAgICdQb3NpdGlvbiBgI3skbG9jYXRpb259YCBkb2VzIG5vdCBleGlzdCBpbiBncmlkIGAjeyRjb2x1bW5zfWAuJyxcbiAgICAgICAgJ3N1LXZhbGlkLWxvY2F0aW9uJyk7XG4gICAgfSBAZWxzZSBpZiAoJGxvY2F0aW9uICsgJHNwYW4gLSAxID4gJGNvdW50KSB7XG4gICAgICAkZGV0YWlsczogJ2dyaWQgYCN7JGNvbHVtbnN9YCBmb3Igc3BhbiBgI3skc3Bhbn1gIGF0IGAjeyRsb2NhdGlvbn1gJztcbiAgICAgIEByZXR1cm4gX3N1c3ktZXJyb3IoXG4gICAgICAgICdUaGVyZSBhcmUgbm90IGVub3VnaCBjb2x1bW5zIGluICN7JGRldGFpbHN9LicsXG4gICAgICAgICdzdS12YWxpZC1sb2NhdGlvbicpO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJGxvY2F0aW9uO1xufVxuIiwiLy8vIEdyaWQgTWF0aCBFbmdpbmVcbi8vLyA9PT09PT09PT09PT09PT09XG4vLy8gVGhlIGBzdWAgZnVuY3Rpb25zIGdpdmUgeW91IGRpcmVjdCBhY2Nlc3MgdG8gdGhlIG1hdGggbGF5ZXIsXG4vLy8gd2l0aG91dCBhbnkgc3ludGF4LXN1Z2FyIGxpa2Ugc2hvcnRoYW5kIHBhcnNpbmcsIGFuZCBub3JtYWxpemF0aW9uLlxuLy8vIElmIHlvdSBwcmVmZXIgbmFtZWQgYXJndW1lbnRzLCBhbmQgc3RyaXBwZWQtZG93biBzeW50YXgsXG4vLy8geW91IGNhbiB1c2UgdGhlc2UgZnVuY3Rpb25zIGRpcmVjdGx5IGluIHlvdXIgY29kZSDigJNcbi8vLyByZXBsYWNpbmcgYHNwYW5gLCBgZ3V0dGVyYCwgYW5kIGBzbGljZWAuXG4vLy9cbi8vLyBUaGVzZSBmdW5jdGlvbnMgYXJlIGFsc28gdXNlZnVsXG4vLy8gZm9yIGJ1aWxkaW5nIG1peGlucyBvciBvdGhlciBleHRlbnNpb25zIHRvIFN1c3kuXG4vLy8gQXBwbHkgdGhlIFN1c3kgc3ludGF4IHRvIG5ldyBtaXhpbnMgYW5kIGZ1bmN0aW9ucyxcbi8vLyB1c2luZyBvdXIgXCJQbHVnaW4gSGVscGVyc1wiLFxuLy8vIG9yIHdyaXRlIHlvdXIgb3duIHN5bnRheCBhbmQgcGFzcyB0aGUgbm9ybWFsaXplZCByZXN1bHRzIGFsb25nXG4vLy8gdG8gYHN1YCBmb3IgY29tcGlsYXRpb24uXG4vLy9cbi8vLyBAZ3JvdXAgc3UtbWF0aFxuLy8vXG4vLy8gQHNlZSBzdS1zcGFuXG4vLy8gQHNlZSBzdS1ndXR0ZXJcbi8vLyBAc2VlIHN1LXNsaWNlXG4vLy8gQGlnbm9yZSBfc3Utc3VtXG4vLy8gQGlnbm9yZSBfc3UtY2FsYy1zcGFuXG4vLy8gQGlnbm9yZSBfc3UtY2FsYy1zdW1cbi8vLyBAaWdub3JlIF9zdS1uZWVkcy1jYWxjLW91dHB1dFxuXG5cblxuLy8gU3UgU3BhblxuLy8gLS0tLS0tLVxuLy8vIENhbGN1bGF0ZXMgYW5kIHJldHVybnMgYSBDU1MtcmVhZHkgc3BhbiB3aWR0aCxcbi8vLyBiYXNlZCBvbiBub3JtYWxpemVkIHNwYW4gYW5kIGNvbnRleHQgZGF0YSDigJNcbi8vLyBhIGxvdy1sZXZlbCB2ZXJzaW9uIG9mIGBzdXN5LXNwYW5gLFxuLy8vIHdpdGggYWxsIG9mIHRoZSBsb2dpYyBhbmQgbm9uZSBvZiB0aGUgc3ludGF4IHN1Z2FyLlxuLy8vXG4vLy8gLSBHcmlkcyBkZWZpbmVkIHdpdGggdW5pdGxlc3MgbnVtYmVycyB3aWxsIHJldHVybiBgJWAgdmFsdWVzLlxuLy8vIC0gR3JpZHMgZGVmaW5lZCB3aXRoIGNvbXBhcmFibGUgdW5pdHNcbi8vLyAgIHdpbGwgcmV0dXJuIGEgdmFsdWUgaW4gdGhlIHVuaXRzIHByb3ZpZGVkLlxuLy8vIC0gR3JpZHMgZGVmaW5lZCB3aXRoIGEgbWl4IG9mIHVuaXRzLFxuLy8vICAgb3IgYSBjb21iaW5hdGlvbiBvZiB1bnRpbGVzcyBudW1iZXJzIGFuZCB1bml0LWxlbmd0aHMsXG4vLy8gICB3aWxsIHJldHVybiBhIGBjYWxjKClgIHN0cmluZy5cbi8vL1xuLy8vIEBncm91cCBzdS1tYXRoXG4vLy8gQHNlZSBzdXN5LXNwYW5cbi8vL1xuLy8vIEBwYXJhbSB7bnVtYmVyIHwgbGlzdH0gJHNwYW4gLVxuLy8vICAgTnVtYmVyIG9yIGxpc3Qgb2YgZ3JpZCBjb2x1bW5zIHRvIHNwYW5cbi8vLyBAcGFyYW0ge2xpc3R9ICRjb2x1bW5zIC1cbi8vLyAgIExpc3Qgb2YgY29sdW1ucyBhdmFpbGFibGVcbi8vLyBAcGFyYW0ge251bWJlcn0gJGd1dHRlcnMgLVxuLy8vICAgV2lkdGggb2YgYSBndXR0ZXIgaW4gY29sdW1uLWNvbXBhcmFibGUgdW5pdHNcbi8vLyBAcGFyYW0gezAgfCAxIHwgLTF9ICRzcHJlYWQgLVxuLy8vICAgTnVtYmVyIG9mIGd1dHRlcnMgc3Bhbm5lZCxcbi8vLyAgIHJlbGF0aXZlIHRvIGBzcGFuYCBjb3VudFxuLy8vIEBwYXJhbSB7MCB8IDEgfCAtMX0gJGNvbnRhaW5lci1zcHJlYWQgWyRzcHJlYWRdIC1cbi8vLyAgIE51bWJlciBvZiBndXR0ZXJzIHNwYW5uZWQsXG4vLy8gICByZWxhdGl2ZSB0byBgY29sdW1uc2AgY291bnRcbi8vLyBAcGFyYW0ge2ludGVnZXJ9ICRsb2NhdGlvbiBbMV0gLVxuLy8vICAgT3B0aW9uYWwgcG9zaXRpb24gb2Ygc3ViLXNwYW4gYW1vbmcgZnVsbCBzZXQgb2YgY29sdW1uc1xuLy8vXG4vLy8gQHJldHVybiB7bGVuZ3RofSAtXG4vLy8gICBSZWxhdGl2ZSBvciBzdGF0aWMgbGVuZ3RoIG9mIGEgc3BhbiBvbiB0aGUgZ3JpZFxuQGZ1bmN0aW9uIHN1LXNwYW4oXG4gICRzcGFuLFxuICAkY29sdW1ucyxcbiAgJGd1dHRlcnMsXG4gICRzcHJlYWQsXG4gICRjb250YWluZXItc3ByZWFkOiAkc3ByZWFkLFxuICAkbG9jYXRpb246IDFcbikge1xuICAkc3Bhbjogc3UtdmFsaWQtc3Bhbigkc3Bhbik7XG4gICRjb2x1bW5zOiBzdS12YWxpZC1jb2x1bW5zKCRjb2x1bW5zKTtcbiAgJGd1dHRlcnM6IHN1LXZhbGlkLWd1dHRlcnMoJGd1dHRlcnMpO1xuICAkc3ByZWFkOiBzdS12YWxpZC1zcHJlYWQoJHNwcmVhZCk7XG5cbiAgQGlmICh0eXBlLW9mKCRzcGFuKSA9PSAnbnVtYmVyJykge1xuICAgIEBpZiAobm90IHVuaXRsZXNzKCRzcGFuKSkge1xuICAgICAgQHJldHVybiAkc3BhbjtcbiAgICB9XG5cbiAgICAkbG9jYXRpb246IHN1LXZhbGlkLWxvY2F0aW9uKCRzcGFuLCAkbG9jYXRpb24sICRjb2x1bW5zKTtcbiAgICAkc3Bhbjogc3Utc2xpY2UoJHNwYW4sICRjb2x1bW5zLCAkbG9jYXRpb24sICR2YWxpZGF0ZTogZmFsc2UpO1xuICB9XG5cbiAgQGlmIF9zdS1uZWVkcy1jYWxjLW91dHB1dCgkc3BhbiwgJGNvbHVtbnMsICRndXR0ZXJzLCAkc3ByZWFkLCBub3QgJ3ZhbGlkYXRlJykge1xuICAgIEByZXR1cm4gX3N1LWNhbGMtc3Bhbigkc3BhbiwgJGNvbHVtbnMsICRndXR0ZXJzLCAkc3ByZWFkLCAkY29udGFpbmVyLXNwcmVhZCwgbm90ICd2YWxpZGF0ZScpO1xuICB9XG5cbiAgJHNwYW4td2lkdGg6IF9zdS1zdW0oJHNwYW4sICRndXR0ZXJzLCAkc3ByZWFkLCAkdmFsaWRhdGU6IGZhbHNlKTtcblxuICBAaWYgdW5pdGxlc3MoJHNwYW4td2lkdGgpIHtcbiAgICAkY29udGFpbmVyLXNwcmVhZDogc3UtdmFsaWQtc3ByZWFkKCRjb250YWluZXItc3ByZWFkKTtcbiAgICAkY29udGFpbmVyOiBfc3Utc3VtKCRjb2x1bW5zLCAkZ3V0dGVycywgJGNvbnRhaW5lci1zcHJlYWQsICR2YWxpZGF0ZTogZmFsc2UpO1xuICAgIEByZXR1cm4gcGVyY2VudGFnZSgkc3Bhbi13aWR0aCAvICRjb250YWluZXIpO1xuICB9XG5cbiAgQHJldHVybiAkc3Bhbi13aWR0aDtcbn1cblxuXG5cbi8vIFN1IEd1dHRlclxuLy8gLS0tLS0tLS0tXG4vLy8gQ2FsY3VsYXRlcyBhbmQgcmV0dXJucyBhIENTUy1yZWFkeSBndXR0ZXIgd2lkdGgsXG4vLy8gYmFzZWQgb24gbm9ybWFsaXplZCBncmlkIGRhdGEg4oCTXG4vLy8gYSBsb3ctbGV2ZWwgdmVyc2lvbiBvZiBgc3VzeS1ndXR0ZXJgLFxuLy8vIHdpdGggYWxsIG9mIHRoZSBsb2dpYyBhbmQgbm9uZSBvZiB0aGUgc3ludGF4IHN1Z2FyLlxuLy8vXG4vLy8gLSBHcmlkcyBkZWZpbmVkIHdpdGggdW5pdGxlc3MgbnVtYmVycyB3aWxsIHJldHVybiBgJWAgdmFsdWVzLlxuLy8vIC0gR3JpZHMgZGVmaW5lZCB3aXRoIGNvbXBhcmFibGUgdW5pdHNcbi8vLyAgIHdpbGwgcmV0dXJuIGEgdmFsdWUgaW4gdGhlIHVuaXRzIHByb3ZpZGVkLlxuLy8vIC0gR3JpZHMgZGVmaW5lZCB3aXRoIGEgbWl4IG9mIHVuaXRzLFxuLy8vICAgb3IgYSBjb21iaW5hdGlvbiBvZiB1bnRpbGVzcyBudW1iZXJzIGFuZCB1bml0LWxlbmd0aHMsXG4vLy8gICB3aWxsIHJldHVybiBhIGBjYWxjKClgIHN0cmluZy5cbi8vL1xuLy8vIEBncm91cCBzdS1tYXRoXG4vLy8gQHNlZSBzdXN5LWd1dHRlclxuLy8vXG4vLy8gQHBhcmFtIHtsaXN0fSAkY29sdW1ucyAtXG4vLy8gICBMaXN0IG9mIGNvbHVtbnMgaW4gdGhlIGdyaWRcbi8vLyBAcGFyYW0ge251bWJlcn0gJGd1dHRlcnMgLVxuLy8vICAgV2lkdGggb2YgYSBndXR0ZXIgaW4gY29sdW1uLWNvbXBhcmFibGUgdW5pdHNcbi8vLyBAcGFyYW0gezAgfCAxIHwgLTF9ICRjb250YWluZXItc3ByZWFkIC1cbi8vLyAgIE51bWJlciBvZiBndXR0ZXJzIHNwYW5uZWQsXG4vLy8gICByZWxhdGl2ZSB0byBgY29sdW1uc2AgY291bnRcbi8vL1xuLy8vIEByZXR1cm4ge2xlbmd0aH0gLVxuLy8vICAgUmVsYXRpdmUgb3Igc3RhdGljIGxlbmd0aCBvZiBvbmUgZ3V0dGVyIGluIGEgZ3JpZFxuQGZ1bmN0aW9uIHN1LWd1dHRlcihcbiAgJGNvbHVtbnMsXG4gICRndXR0ZXJzLFxuICAkY29udGFpbmVyLXNwcmVhZFxuKSB7XG4gIEBpZiAodHlwZS1vZigkZ3V0dGVycykgPT0gJ251bWJlcicpIHtcbiAgICBAaWYgKCRndXR0ZXJzID09IDApIG9yIChub3QgdW5pdGxlc3MoJGd1dHRlcnMpKSB7XG4gICAgICBAcmV0dXJuICRndXR0ZXJzO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfc3UtbmVlZHMtY2FsYy1vdXRwdXQoJGd1dHRlcnMsICRjb2x1bW5zLCAkZ3V0dGVycywgLTEsIG5vdCAndmFsaWRhdGUnKSB7XG4gICAgQHJldHVybiBfc3UtY2FsYy1zcGFuKCRndXR0ZXJzLCAkY29sdW1ucywgJGd1dHRlcnMsIC0xLCAkY29udGFpbmVyLXNwcmVhZCwgbm90ICd2YWxpZGF0ZScpO1xuICB9XG5cbiAgJGNvbnRhaW5lcjogX3N1LXN1bSgkY29sdW1ucywgJGd1dHRlcnMsICRjb250YWluZXItc3ByZWFkKTtcbiAgQHJldHVybiBwZXJjZW50YWdlKCRndXR0ZXJzIC8gJGNvbnRhaW5lcik7XG59XG5cblxuXG4vLyBTdSBTbGljZVxuLy8gLS0tLS0tLS1cbi8vLyBSZXR1cm5zIGEgbGlzdCBvZiBjb2x1bW5zXG4vLy8gYmFzZWQgb24gYSBnaXZlbiBzcGFuL2xvY2F0aW9uIHNsaWNlIG9mIHRoZSBncmlkIOKAk1xuLy8vIGEgbG93LWxldmVsIHZlcnNpb24gb2YgYHN1c3ktc2xpY2VgLFxuLy8vIHdpdGggYWxsIG9mIHRoZSBsb2dpYyBhbmQgbm9uZSBvZiB0aGUgc3ludGF4IHN1Z2FyLlxuLy8vXG4vLy8gQGdyb3VwIHN1LW1hdGhcbi8vLyBAc2VlIHN1c3ktc2xpY2Vcbi8vL1xuLy8vIEBwYXJhbSB7bnVtYmVyfSAkc3BhbiAtXG4vLy8gICBOdW1iZXIgb2YgZ3JpZCBjb2x1bW5zIHRvIHNwYW5cbi8vLyBAcGFyYW0ge2xpc3R9ICRjb2x1bW5zIC1cbi8vLyAgIExpc3Qgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZFxuLy8vIEBwYXJhbSB7bnVtYmVyfSAkbG9jYXRpb24gWzFdIC1cbi8vLyAgIFN0YXJ0aW5nIGluZGV4IG9mIGEgc3BhbiBpbiB0aGUgbGlzdCBvZiBjb2x1bW5zXG4vLy8gQHBhcmFtIHtib29sfSAkdmFsaWRhdGUgW3RydWVdIC1cbi8vLyAgIENoZWNrIHRoYXQgYXJndW1lbnRzIGFyZSB2YWxpZCBiZWZvcmUgcHJvY2VlZGluZ1xuLy8vXG4vLy8gQHJldHVybiB7bGlzdH0gLVxuLy8vICAgU3Vic2V0IGxpc3Qgb2YgZ3JpZCBjb2x1bW5zLCBiYXNlZCBvbiBzcGFuIGFuZCBsb2NhdGlvblxuQGZ1bmN0aW9uIHN1LXNsaWNlKFxuICAkc3BhbixcbiAgJGNvbHVtbnMsXG4gICRsb2NhdGlvbjogMSxcbiAgJHZhbGlkYXRlOiB0cnVlXG4pIHtcbiAgQGlmICR2YWxpZGF0ZSB7XG4gICAgJGNvbHVtbnM6IHN1LXZhbGlkLWNvbHVtbnMoJGNvbHVtbnMpO1xuICAgICRsb2NhdGlvbjogc3UtdmFsaWQtbG9jYXRpb24oJHNwYW4sICRsb2NhdGlvbiwgJGNvbHVtbnMpO1xuICB9XG5cbiAgJGZsb29yOiBmbG9vcigkc3Bhbik7XG4gICRzdWItY29sdW1uczogKCk7XG5cbiAgQGZvciAkaSBmcm9tICRsb2NhdGlvbiB0byAoJGxvY2F0aW9uICsgJGZsb29yKSB7XG4gICAgJHN1Yi1jb2x1bW5zOiBhcHBlbmQoJHN1Yi1jb2x1bW5zLCBudGgoJGNvbHVtbnMsICRpKSk7XG4gIH1cblxuICBAaWYgJGZsb29yICE9ICRzcGFuIHtcbiAgICAkcmVtYWluZGVyOiAkc3BhbiAtICRmbG9vcjtcbiAgICAkY29sdW1uOiAkbG9jYXRpb24gKyAkZmxvb3I7XG4gICAgJHN1Yi1jb2x1bW5zOiBhcHBlbmQoJHN1Yi1jb2x1bW5zLCBudGgoJGNvbHVtbnMsICRjb2x1bW4pICogJHJlbWFpbmRlcik7XG4gIH1cblxuICBAcmV0dXJuICRzdWItY29sdW1ucztcbn1cblxuXG5cbi8vIFN1IFN1bVxuLy8gLS0tLS0tXG4vLy8gR2V0IHRoZSB0b3RhbCBzdW0gb2YgY29sdW1uLXVuaXRzIGluIGEgbGF5b3V0LlxuLy8vXG4vLy8gQGdyb3VwIHN1LW1hdGhcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7bGlzdH0gJGNvbHVtbnMgLVxuLy8vICAgTGlzdCBvZiBjb2x1bW5zIGluIHRoZSBncmlkXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICRndXR0ZXJzIC1cbi8vLyAgIFdpZHRoIG9mIGEgZ3V0dGVyIGluIGNvbHVtbi1jb21wYXJhYmxlIHVuaXRzXG4vLy8gQHBhcmFtIHswIHwgMSB8IC0xfSAkc3ByZWFkIC1cbi8vLyAgIE51bWJlciBvZiBndXR0ZXJzIHNwYW5uZWQsXG4vLy8gICByZWxhdGl2ZSB0byBgY29sdW1uc2AgY291bnRcbi8vLyBAcGFyYW0ge2Jvb2x9ICR2YWxpZGF0ZSBbdHJ1ZV0gLVxuLy8vICAgQ2hlY2sgdGhhdCBhcmd1bWVudHMgYXJlIHZhbGlkIGJlZm9yZSBwcm9jZWVkaW5nXG4vLy9cbi8vLyBAcmV0dXJuIHtudW1iZXJ9IC1cbi8vLyAgIFRvdGFsIHN1bSBvZiBjb2x1bW4tdW5pdHMgaW4gYSBncmlkXG5AZnVuY3Rpb24gX3N1LXN1bShcbiAgJGNvbHVtbnMsXG4gICRndXR0ZXJzLFxuICAkc3ByZWFkLFxuICAkdmFsaWRhdGU6IHRydWVcbikge1xuICBAaWYgJHZhbGlkYXRlIHtcbiAgICAkY29sdW1uczogc3UtdmFsaWQtc3BhbigkY29sdW1ucyk7XG4gICAgJGd1dHRlcnM6IHN1LXZhbGlkLWd1dHRlcnMoJGd1dHRlcnMpO1xuICAgICRzcHJlYWQ6IHN1LXZhbGlkLXNwcmVhZCgkc3ByZWFkKTtcbiAgfVxuXG4gIC8vIENhbGN1bGF0ZSBjb2x1bW4tc3VtXG4gICRjb2x1bW4tc3VtOiAwO1xuICBAZWFjaCAkY29sdW1uIGluICRjb2x1bW5zIHtcbiAgICAkY29sdW1uLXN1bTogJGNvbHVtbi1zdW0gKyAkY29sdW1uO1xuICB9XG5cbiAgJGd1dHRlci1zdW06IChjZWlsKGxlbmd0aCgkY29sdW1ucykpICsgJHNwcmVhZCkgKiAkZ3V0dGVycztcbiAgJHRvdGFsOiBpZigoJGd1dHRlci1zdW0gPiAwKSwgJGNvbHVtbi1zdW0gKyAkZ3V0dGVyLXN1bSwgJGNvbHVtbi1zdW0pO1xuXG4gIEByZXR1cm4gJHRvdGFsO1xufVxuXG5cblxuLy8gU3UgQ2FsY1xuLy8gLS0tLS0tLVxuLy8vIFJldHVybiBhIHVzYWJsZSBzcGFuIHdpZHRoIGFzIGEgYGNhbGMoKWAgZnVuY3Rpb24sXG4vLy8gaW4gb3JkZXIgdG8gY3JlYXRlIG1peGVkLXVuaXQgZ3JpZHMuXG4vLy9cbi8vLyBAZ3JvdXAgc3UtbWF0aFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtudW1iZXIgfCBsaXN0fSAkc3BhbiAtXG4vLy8gICBQcmUtc2xpY2VkIGxpc3Qgb2YgZ3JpZCBjb2x1bW5zIHRvIHNwYW5cbi8vLyBAcGFyYW0ge2xpc3R9ICRjb2x1bW5zIC1cbi8vLyAgIExpc3Qgb2YgY29sdW1ucyBhdmFpbGFibGVcbi8vLyBAcGFyYW0ge251bWJlcn0gJGd1dHRlcnMgLVxuLy8vICAgV2lkdGggb2YgYSBndXR0ZXIgaW4gY29sdW1uLWNvbXBhcmFibGUgdW5pdHNcbi8vLyBAcGFyYW0gezAgfCAxIHwgLTF9ICRzcHJlYWQgLVxuLy8vICAgTnVtYmVyIG9mIGd1dHRlcnMgc3Bhbm5lZCxcbi8vLyAgIHJlbGF0aXZlIHRvIGBzcGFuYCBjb3VudFxuLy8vIEBwYXJhbSB7MCB8IDEgfCAtMX0gJGNvbnRhaW5lci1zcHJlYWQgWyRzcHJlYWRdIC1cbi8vLyAgIE51bWJlciBvZiBndXR0ZXJzIHNwYW5uZWQsXG4vLy8gICByZWxhdGl2ZSB0byBgY29sdW1uc2AgY291bnRcbi8vLyBAcGFyYW0ge2Jvb2x9ICR2YWxpZGF0ZSBbdHJ1ZV0gLVxuLy8vICAgQ2hlY2sgdGhhdCBhcmd1bWVudHMgYXJlIHZhbGlkIGJlZm9yZSBwcm9jZWVkaW5nXG4vLy9cbi8vLyBAcmV0dXJuIHtsZW5ndGh9IC1cbi8vLyAgIFJlbGF0aXZlIG9yIHN0YXRpYyBsZW5ndGggb2YgYSBzcGFuIG9uIHRoZSBncmlkXG5AZnVuY3Rpb24gX3N1LWNhbGMtc3BhbihcbiAgJHNwYW4sXG4gICRjb2x1bW5zLFxuICAkZ3V0dGVycyxcbiAgJHNwcmVhZCxcbiAgJGNvbnRhaW5lci1zcHJlYWQ6ICRzcHJlYWQsXG4gICR2YWxpZGF0ZTogdHJ1ZVxuKSB7XG4gIEBpZiAkdmFsaWRhdGUge1xuICAgICRzcGFuOiBzdS12YWxpZC1zcGFuKCRzcGFuKTtcbiAgICAkY29sdW1uczogc3UtdmFsaWQtY29sdW1ucygkY29sdW1ucyk7XG4gICAgJGd1dHRlcnM6IHN1LXZhbGlkLWd1dHRlcnMoJGd1dHRlcnMpO1xuICAgICRzcHJlYWQ6IHN1LXZhbGlkLXNwcmVhZCgkc3ByZWFkKTtcbiAgICAkY29udGFpbmVyLXNwcmVhZDogc3UtdmFsaWQtc3ByZWFkKCRjb250YWluZXItc3ByZWFkKTtcbiAgfVxuXG4gIC8vIFNwYW4gYW5kIGNvbnRleHRcbiAgJHNwYW46IF9zdS1jYWxjLXN1bSgkc3BhbiwgJGd1dHRlcnMsICRzcHJlYWQsIG5vdCAndmFsaWRhdGUnKTtcbiAgJGNvbnRleHQ6IF9zdS1jYWxjLXN1bSgkY29sdW1ucywgJGd1dHRlcnMsICRjb250YWluZXItc3ByZWFkLCBub3QgJ3ZhbGlkYXRlJyk7XG5cbiAgLy8gRml4ZWQgYW5kIGZsdWlkXG4gICRmaXhlZC1zcGFuOiBtYXAtZ2V0KCRzcGFuLCAnZml4ZWQnKTtcbiAgJGZsdWlkLXNwYW46IG1hcC1nZXQoJHNwYW4sICdmbHVpZCcpO1xuICAkZml4ZWQtY29udGV4dDogbWFwLWdldCgkY29udGV4dCwgJ2ZpeGVkJyk7XG4gICRmbHVpZC1jb250ZXh0OiBtYXAtZ2V0KCRjb250ZXh0LCAnZmx1aWQnKTtcblxuICAkY2FsYzogJyN7JGZpeGVkLXNwYW59JztcbiAgJGZsdWlkLWNhbGM6ICcoMTAwJSAtICN7JGZpeGVkLWNvbnRleHR9KSc7XG5cbiAgLy8gRmx1aWQtdmFsdWVzXG4gIEBpZiAobm90ICRmbHVpZC1zcGFuKSB7XG4gICAgJGZsdWlkLWNhbGM6IG51bGw7XG4gIH0gQGVsc2UgaWYgKCRmbHVpZC1zcGFuICE9ICRmbHVpZC1jb250ZXh0KSB7XG4gICAgJGZsdWlkLXNwYW46ICcqICN7JGZsdWlkLXNwYW59JztcbiAgICAkZmx1aWQtY29udGV4dDogaWYoJGZsdWlkLWNvbnRleHQsICcvICN7JGZsdWlkLWNvbnRleHR9JywgJycpO1xuICAgICRmbHVpZC1jYWxjOiAnKCN7JGZsdWlkLWNhbGMgJGZsdWlkLWNvbnRleHQgJGZsdWlkLXNwYW59KSc7XG4gIH1cblxuICBAaWYgJGZsdWlkLWNhbGMge1xuICAgICRjYWxjOiBpZigoJGNhbGMgIT0gJycpLCAnI3skY2FsY30gKyAnLCAnJyk7XG4gICAgJGNhbGM6ICcjeyRjYWxjICsgJGZsdWlkLWNhbGN9JztcbiAgfVxuXG4gIEByZXR1cm4gY2FsYygje3VucXVvdGUoJGNhbGMpfSk7XG59XG5cblxuXG4vLyBTdSBDYWxjLVN1bVxuLy8gLS0tLS0tLS0tLS1cbi8vLyBHZXQgdGhlIHRvdGFsIHN1bSBvZiBmaXhlZCBhbmQgZmx1aWQgY29sdW1uLXVuaXRzXG4vLy8gZm9yIGNyZWF0aW5nIGEgbWl4ZWQtdW5pdCBsYXlvdXQgd2l0aCBgY2FsYygpYCB2YWx1ZXMuXG4vLy9cbi8vLyBAZ3JvdXAgc3UtbWF0aFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtsaXN0fSAkY29sdW1ucyAtXG4vLy8gICBMaXN0IG9mIGNvbHVtbnMgYXZhaWxhYmxlXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICRndXR0ZXJzIC1cbi8vLyAgIFdpZHRoIG9mIGEgZ3V0dGVyIGluIGNvbHVtbi1jb21wYXJhYmxlIHVuaXRzXG4vLy8gQHBhcmFtIHswIHwgMSB8IC0xfSAkc3ByZWFkIC1cbi8vLyAgIE51bWJlciBvZiBndXR0ZXJzIHNwYW5uZWQsXG4vLy8gICByZWxhdGl2ZSB0byBgc3BhbmAgY291bnRcbi8vLyBAcGFyYW0ge2Jvb2x9ICR2YWxpZGF0ZSBbdHJ1ZV0gLVxuLy8vICAgQ2hlY2sgdGhhdCBhcmd1bWVudHMgYXJlIHZhbGlkIGJlZm9yZSBwcm9jZWVkaW5nXG4vLy9cbi8vLyBAcmV0dXJuIHttYXB9IC1cbi8vLyAgIE1hcCB3aXRoIGBmaXhlZGAgYW5kIGBmbHVpZGAga2V5c1xuLy8vICAgY29udGFpbmluZyB0aGUgcHJvcGVyIG1hdGggYXMgc3RyaW5nc1xuQGZ1bmN0aW9uIF9zdS1jYWxjLXN1bShcbiAgJGNvbHVtbnMsXG4gICRndXR0ZXJzLFxuICAkc3ByZWFkLFxuICAkdmFsaWRhdGU6IHRydWVcbikge1xuICBAaWYgJHZhbGlkYXRlIHtcbiAgICAkY29sdW1uczogc3UtdmFsaWQtc3BhbigkY29sdW1ucyk7XG4gICAgJGd1dHRlcnM6IHN1LXZhbGlkLWd1dHRlcnMoJGd1dHRlcnMpO1xuICAgICRzcHJlYWQ6IHN1LXZhbGlkLXNwcmVhZCgkc3ByZWFkKTtcbiAgfVxuXG4gICRmbHVpZDogMDtcbiAgJGZpeGVkOiAoKTtcbiAgJGNhbGM6IG51bGw7XG5cbiAgLy8gR3V0dGVyc1xuICAkZ3V0dGVyczogICRndXR0ZXJzICogKGxlbmd0aCgkY29sdW1ucykgKyAkc3ByZWFkKTtcblxuICAvLyBDb2x1bW5zXG4gIEBlYWNoICRjb2wgaW4gYXBwZW5kKCRjb2x1bW5zLCAkZ3V0dGVycykge1xuICAgIEBpZiB1bml0bGVzcygkY29sKSB7XG4gICAgICAkZmx1aWQ6ICRmbHVpZCArICRjb2w7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkZml4ZWQ6IF9zdS1tYXAtYWRkLXVuaXRzKCRmaXhlZCwgJGNvbCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29tcGlsZSBGaXhlZCBVbml0c1xuICBAZWFjaCAkdW5pdCwgJHRvdGFsIGluICRmaXhlZCB7XG4gICAgQGlmICgkdG90YWwgIT0gKDAgKiAkdG90YWwpKSB7XG4gICAgICAkY2FsYzogaWYoJGNhbGMsICcjeyRjYWxjfSArICN7JHRvdGFsfScsICcjeyR0b3RhbH0nKTtcbiAgICB9XG4gIH1cblxuICAvLyBDYWxjIG51bGwgb3Igc3RyaW5nXG4gIEBpZiAkY2FsYyB7XG4gICAgJGNhbGM6IGlmKHN0ci1pbmRleCgkY2FsYywgJysnKSwgJygjeyRjYWxjfSknLCAnI3skY2FsY30nKTtcbiAgfVxuXG4gIC8vIEZsdWlkIDAgPT4gbnVsbFxuICAkZmx1aWQ6IGlmKCgkZmx1aWQgPT0gMCksIG51bGwsICRmbHVpZCk7XG5cblxuICAvLyBSZXR1cm4gbWFwXG4gICRyZXR1cm46IChcbiAgICAnZml4ZWQnOiAkY2FsYyxcbiAgICAnZmx1aWQnOiAkZmx1aWQsXG4gICk7XG5cbiAgQHJldHVybiAkcmV0dXJuO1xufVxuXG5cblxuLy8gTmVlZHMgQ2FsY1xuLy8gLS0tLS0tLS0tLVxuLy8vIENoZWNrIGlmIGBjYWxjKClgIHdpbGwgYmUgbmVlZGVkIGluIGRlZmluaW5nIGEgc3Bhbixcbi8vLyBpZiB0aGUgbmVjZXNzYXJ5IHVuaXRzIGluIGEgZ3JpZCBhcmUgbm90IGNvbXBhcmFibGUuXG4vLy9cbi8vLyBAZ3JvdXAgc3UtbWF0aFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtsaXN0fSAkc3BhbiAtXG4vLy8gICBTbGljZSBvZiBjb2x1bW5zIHRvIHNwYW5cbi8vLyBAcGFyYW0ge2xpc3R9ICRjb2x1bW5zIC1cbi8vLyAgIExpc3Qgb2YgYXZhaWxhYmxlIGNvbHVtbnMgaW4gdGhlIGdyaWRcbi8vLyBAcGFyYW0ge251bWJlcn0gJGd1dHRlcnMgLVxuLy8vICAgV2lkdGggb2YgYSBndXR0ZXJcbi8vLyBAcGFyYW0gezAgfCAxIHwgLTF9ICRzcHJlYWQgLVxuLy8vICAgTnVtYmVyIG9mIGd1dHRlcnMgc3Bhbm5lZCxcbi8vLyAgIHJlbGF0aXZlIHRvIGBzcGFuYCBjb3VudFxuLy8vIEBwYXJhbSB7Ym9vbH0gJHZhbGlkYXRlIFt0cnVlXSAtXG4vLy8gICBDaGVjayB0aGF0IGFyZ3VtZW50cyBhcmUgdmFsaWQgYmVmb3JlIHByb2NlZWRpbmdcbi8vL1xuLy8vIEByZXR1cm4ge2Jvb2x9IC1cbi8vLyAgIGBUcnVlYCB3aGVuIHVuaXRzIGRvIG5vdCBtYXRjaCwgYW5kIGBjYWxjKClgIHdpbGwgYmUgcmVxdWlyZWRcbkBmdW5jdGlvbiBfc3UtbmVlZHMtY2FsYy1vdXRwdXQoXG4gICRzcGFuLFxuICAkY29sdW1ucyxcbiAgJGd1dHRlcnMsXG4gICRzcHJlYWQsXG4gICR2YWxpZGF0ZTogdHJ1ZVxuKSB7XG4gIEBpZiAkdmFsaWRhdGUge1xuICAgICRzcGFuOiBzdS12YWxpZC1zcGFuKCRzcGFuKTtcbiAgICAkY29sdW1uczogc3UtdmFsaWQtY29sdW1ucygkY29sdW1ucyk7XG4gICAgJGd1dHRlcnM6IHN1LXZhbGlkLWd1dHRlcnMoJGd1dHRlcnMpO1xuICB9XG5cbiAgJGhhcy1ndXR0ZXI6IGlmKChsZW5ndGgoJHNwYW4pID4gMSkgb3IgKCRzcHJlYWQgPj0gMCksIHRydWUsIGZhbHNlKTtcbiAgJGNoZWNrOiBpZigkaGFzLWd1dHRlciwgYXBwZW5kKCRzcGFuLCAkZ3V0dGVycyksICRzcGFuKTtcbiAgJHNhZmUtc3BhbjogX3N1LWlzLWNvbXBhcmFibGUoJGNoZWNrLi4uKTtcblxuICBAaWYgKCRzYWZlLXNwYW4gPT0gJ3N0YXRpYycpIHtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9IEBlbHNlIGlmIChub3QgJHNhZmUtc3Bhbikge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gICRzYWZlLWZsdWlkOiBfc3UtaXMtY29tcGFyYWJsZSgkZ3V0dGVycywgJGNvbHVtbnMuLi4pO1xuXG4gIEByZXR1cm4gbm90ICRzYWZlLWZsdWlkO1xufVxuIiwiLy8vIFN1c3kzIENvbmZpZ3VyYXRpb25cbi8vLyA9PT09PT09PT09PT09PT09PT09XG4vLy8gU3VzeTMgaGFzIDQgY29yZSBzZXR0aW5ncywgaW4gYSBzaW5nbGUgc2V0dGluZ3MgbWFwLlxuLy8vIFlvdSdsbCBub3RpY2UgYSBmZXcgZGlmZmVyZW5jZXMgZnJvbSBTdXN5Mjpcbi8vL1xuLy8vICoqQ29sdW1ucyoqIG5vIGxvbmdlciBhY2NlcHQgYSBzaW5nbGUgbnVtYmVyLCBsaWtlIGAxMmAsXG4vLy8gYnV0IHVzZSBhIHN5bnRheCBtb3JlIHNpbWlsYXIgdG8gdGhlIG5ld1xuLy8vIENTUyBbZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zXVtjb2x1bW5zXSDigJNcbi8vLyBhIGxpc3Qgb2YgcmVsYXRpdmUgc2l6ZXMgZm9yIGVhY2ggY29sdW1uIG9uIHRoZSBncmlkLlxuLy8vIFVuaXRsZXNzIG51bWJlcnMgaW4gU3VzeSBhY3QgdmVyeSBzaW1pbGFyIHRvIGBmcmAgdW5pdHMgaW4gQ1NTLFxuLy8vIGFuZCB0aGUgYHN1c3ktcmVwZWF0KClgIGZ1bmN0aW9uIChzaW1pbGFyIHRvIHRoZSBjc3MgYHJlcGVhdCgpYClcbi8vLyBoZWxwcyBxdWlja2x5IGVzdGFibGlzaCBlcXVhbC13aWR0aCBjb2x1bW5zLlxuLy8vXG4vLy8gW2NvbHVtbnNdOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zXG4vLy9cbi8vLyAtIGBzdXN5LXJlcGVhdCgxMilgIHdpbGwgY3JlYXRlIDEyIGZsdWlkLCBlcXVhbC13aWR0aCBjb2x1bW5zXG4vLy8gLSBgc3VzeS1yZXBlYXQoNiwgMTIwcHgpYCB3aWxsIGNyZWF0ZSA2IGVxdWFsIGAxMjBweGAtd2lkZSBjb2x1bW5zXG4vLy8gLSBgMTIwcHggc3VzeS1yZXBlYXQoNCkgMTIwcHhgIHdpbGwgY3JlYXRlIDYgY29sdW1ucyxcbi8vLyAgIHRoZSBmaXJzdCBhbmQgbGFzdCBhcmUgYDEyMHB4YCxcbi8vLyAgIHdoaWxlIHRoZSBtaWRkbGUgNCBhcmUgZXF1YWwgZnJhY3Rpb25zIG9mIHRoZSByZW1haW5kZXIuXG4vLy8gICBTdXN5IHdpbGwgb3V0cHV0IGBjYWxjKClgIHZhbHVlcyBpbiBvcmRlciB0byBhY2hpZXZlIHRoaXMuXG4vLy9cbi8vLyAqKkd1dHRlcnMqKiBoYXZlbid0IGNoYW5nZWQg4oCTXG4vLy8gYSBzaW5nbGUgZnJhY3Rpb24gb3IgZXhwbGljaXQgd2lkdGgg4oCTXG4vLy8gYnV0IHRoZSBgY2FsYygpYCBvdXRwdXQgZmVhdHVyZVxuLy8vIG1lYW5zIHlvdSBjYW4gbm93IHVzZSBhbnkgY29tYmluYXRpb24gb2YgdW5pdHMgYW5kIGZyYWN0aW9uc1xuLy8vIHRvIGNyZWF0ZSBzdGF0aWMtZ3V0dGVycyBvbiBhIGZsdWlkIGdyaWQsIGV0Yy5cbi8vL1xuLy8vICoqU3ByZWFkKiogZXhpc3RlZCBpbiB0aGUgU3VzeTIgQVBJIGFzIGEgc3BhbiBvcHRpb24sXG4vLy8gYW5kIHdhcyBvdGhlcndpc2UgaGFuZGxlZCBiZWhpbmQgdGhlIHNjZW5lcy5cbi8vLyBOb3cgd2UncmUgZ2l2aW5nIHlvdSBmdWxsIGNvbnRyb2wgb3ZlciBhbGwgc3ByZWFkIGlzc3Vlcy5cbi8vLyBZb3UgY2FuIGZpbmQgYSBtb3JlIFtkZXRhaWxlZCBleHBsYW5hdGlvbiBvZiBzcHJlYWQgb24gdGhlIGJsb2ddW3NwcmVhZF0uXG4vLy9cbi8vLyBbc3ByZWFkXTogaHR0cDovL29kZGJpcmQubmV0LzIwMTcvMDYvMTMvc3VzeS1zcHJlYWQvXG4vLy9cbi8vLyBZb3UgY2FuIGFjY2VzcyB5b3VyIGdsb2JhbCBzZXR0aW5ncyBhdCBhbnkgdGltZVxuLy8vIHdpdGggdGhlIGBzdXN5LXNldHRpbmdzKClgIGZ1bmN0aW9uLFxuLy8vIG9yIGdyYWIgYSBzaW5nbGUgc2V0dGluZyBmcm9tIHRoZSBnbG9iYWwgc2NvcGVcbi8vLyB3aXRoIGBzdXN5LWdldCgnY29sdW1ucycpYCwgYHN1c3ktZ2V0KCdndXR0ZXJzJylgIGV0Yy5cbi8vL1xuLy8vIEBncm91cCBjb25maWdcbi8vLyBAbGluayBodHRwOi8vb2RkYmlyZC5uZXQvMjAxNy8wNi8xMy9zdXN5LXNwcmVhZC9cbi8vLyAgIEFydGljbGU6IFVuZGVyc3RhbmRpbmcgU3ByZWFkIGluIFN1c3kzXG4vLy9cbi8vLyBAc2VlICRzdXN5XG4vLy8gQHNlZSBzdXN5LXNldHRpbmdzXG4vLy8gQHNlZSBzdXN5LWdldFxuXG5cblxuLy8gU3VzeVxuLy8gLS0tLVxuLy8vIFRoZSBncmlkIGlzIGRlZmluZWQgaW4gYSBzaW5nbGUgbWFwIHZhcmlhYmxlLFxuLy8vIHdpdGggZm91ciBpbml0aWFsIHByb3BlcnRpZXM6XG4vLy8gYGNvbHVtbnNgLCBgZ3V0dGVyc2AsIGBzcHJlYWRgIGFuZCBgY29udGFpbmVyLXNwcmVhZGAuXG4vLy8gQW55dGhpbmcgeW91IHB1dCBpbiB0aGUgcm9vdCBgJHN1c3lgIHZhcmlhYmxlIG1hcFxuLy8vIHdpbGwgYmUgdHJlYXRlZCBhcyBhIGdsb2JhbCBwcm9qZWN0IGRlZmF1bHQuXG4vLy8gWW91IGNhbiBjcmVhdGUgc2ltaWxhciBjb25maWd1cmF0aW9uIG1hcHNcbi8vLyB1bmRlciBkaWZmZXJlbnQgdmFyaWFibGUgbmFtZXMsXG4vLy8gdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHRzIGFzLW5lZWRlZC5cbi8vL1xuLy8vIEBncm91cCBjb25maWdcbi8vLyBAdHlwZSBNYXBcbi8vL1xuLy8vIEBzZWUgJF9zdXN5LWRlZmF1bHRzXG4vLy8gQHNlZSB7ZnVuY3Rpb259IHN1c3ktcmVwZWF0XG4vLy8gQGxpbmtcbi8vLyAgIGh0dHBzOi8vY29kZXBlbi5pby9taXJpc3V6YW5uZS9wZW4vRWdtSkpwP2VkaXRvcnM9MTEwMFxuLy8vICAgU3ByZWFkIGV4YW1wbGVzIG9uIENvZGVQZW5cbi8vL1xuLy8vIEBwcm9wIHtsaXN0fSBjb2x1bW5zIC1cbi8vLyAgIENvbHVtbnMgYXJlIGRlc2NyaWJlZCBieSBhIGxpc3Qgb2YgbnVtYmVycyxcbi8vLyAgIHJlcHJlc2VudGluZyB0aGUgcmVsYXRpdmUgd2lkdGggb2YgZWFjaCBjb2x1bW4uXG4vLy8gICBUaGUgc3ludGF4IGlzIGEgc2ltcGxpZmllZCB2ZXJzaW9uIG9mIENTUyBuYXRpdmVcbi8vLyAgIGBncmlkLXRlbXBsYXRlLWNvbHVtbnNgLFxuLy8vICAgZXhwZWN0aW5nIGEgbGlzdCBvZiBncmlkLWNvbHVtbiB3aWR0aHMuXG4vLy8gICBVbml0bGVzcyBudW1iZXJzIGNyZWF0ZSBmcmFjdGlvbmFsIGZsdWlkIGNvbHVtbnNcbi8vLyAgIChzaW1pbGFyIHRvIHRoZSBDU1MtbmF0aXZlIGBmcmAgdW5pdCksXG4vLy8gICB3aGlsZSBsZW5ndGggdmFsdWVzICh1bml0ZWQgbnVtYmVycylcbi8vLyAgIGFyZSB1c2VkIHRvIGRlZmluZSBzdGF0aWMgY29sdW1ucy5cbi8vLyAgIFlvdSBjYW4gbWl4LWFuZCBtYXRjaCB1bml0cyBhbmQgZnJhY3Rpb25zLFxuLy8vICAgdG8gY3JlYXRlIGEgbWl4ZWQgZ3JpZC5cbi8vLyAgIFN1c3kgd2lsbCBnZW5lcmF0ZSBgY2FsYygpYCB2YWx1ZXMgd2hlbiBuZWNlc3NhcnksXG4vLy8gICB0byBtYWtlIGFsbCB5b3VyIHVuaXRzIHdvcmsgdG9nZXRoZXIuXG4vLy9cbi8vLyAgIFVzZSB0aGUgYHN1c3ktcmVwZWF0KCRjb3VudCwgJHZhbHVlKWAgZnVuY3Rpb25cbi8vLyAgIHRvIG1vcmUgZWFzaWx5IHJlcGV0YXRpdmUgY29sdW1ucyxcbi8vLyAgIHNpbWlsYXIgdG8gdGhlIENTUy1uYXRpdmUgYHJlcGVhdCgpYC5cbi8vL1xuLy8vICAgLSBgc3VzeS1yZXBlYXQoOClgOlxuLy8vICAgICBhbiA4LWNvbHVtbiwgc3ltbWV0cmljYWwsIGZsdWlkIGdyaWQuXG4vLy8gICAgIDxiciAvPklkZW50aWNhbCB0byBgKDEgMSAxIDEgMSAxIDEgMSlgLlxuLy8vICAgLSBgc3VzeS1yZXBlYXQoNiwgOGVtKWA6XG4vLy8gICAgIGEgNi1jb2x1bW4sIHN5bW1ldHJpY2FsLCBlbS1iYXNlZCBncmlkLlxuLy8vICAgICA8YnIgLz5JZGVudGljYWwgdG8gYCg4ZW0gOGVtIDhlbSA4ZW0gOGVtIDhlbSlgLlxuLy8vICAgLSBgKDMwMHB4IHN1c3ktcmVwZWF0KDQpIDMwMHB4KWA6XG4vLy8gICAgIGEgNi1jb2x1bW4sIGFzeW1tZXRyaWNhbCwgbWl4ZWQgZmx1aWQvc3RhdGljIGdyaWRcbi8vLyAgICAgdXNpbmcgYGNhbGMoKWAgb3V0cHV0LlxuLy8vICAgICA8YnIgLz5JZGVudGljYWwgdG8gYCgzMDBweCAxIDEgMSAxIDMwMHB4KWAuXG4vLy9cbi8vLyAgICoqTk9URSoqIHRoYXQgYDEyYCBpcyBubyBsb25nZXIgYSB2YWxpZCAxMi1jb2x1bW4gZ3JpZCBkZWZpbml0aW9uLFxuLy8vICAgYW5kIHlvdSBtdXN0IGxpc3QgYWxsIHRoZSBjb2x1bW5zIGluZGl2aWR1YWxseVxuLy8vICAgKG9yIGJ5IHVzaW5nIHRoZSBgc3VzeS1yZXBlYXQoKWAgZnVuY3Rpb24pLlxuLy8vXG4vLy8gQHByb3Age251bWJlcn0gZ3V0dGVycyAtXG4vLy8gICBHdXR0ZXJzIGFyZSBkZWZpbmVkIGFzIGEgc2luZ2xlIHdpZHRoLFxuLy8vICAgb3IgZmx1aWQgcmF0aW8sIHNpbWlsYXIgdG8gdGhlIG5hdGl2ZS1DU1Ncbi8vLyAgIGBncmlkLWNvbHVtbi1nYXBgIHN5bnRheC5cbi8vLyAgIFNpbWlsYXIgdG8gY29sdW1ucyxcbi8vLyAgIGd1dHRlcnMgY2FuIHVzZSBhbnkgdmFsaWQgQ1NTIGxlbmd0aCB1bml0LFxuLy8vICAgb3IgdW5pdGxlc3MgbnVtYmVycyB0byBkZWZpbmUgYSByZWxhdGl2ZSBmcmFjdGlvbi5cbi8vL1xuLy8vICAgLSBgMC41YDpcbi8vLyAgICAgYSBmbHVpZCBndXR0ZXIsIGhhbGYgdGhlIHNpemUgb2YgYSBzaW5nbGUtZnJhY3Rpb24gY29sdW1uLlxuLy8vICAgLSBgMWVtYDpcbi8vLyAgICAgYSBzdGF0aWMgZ3V0dGVyLCBgMWVtYCB3aWRlLlxuLy8vXG4vLy8gICBNaXggc3RhdGljIGd1dHRlcnMgd2l0aCBmbHVpZCBjb2x1bW5zLCBvciB2aWNlIHZlcnNhLFxuLy8vICAgYW5kIFN1c3kgd2lsbCBnZW5lcmF0ZSB0aGUgcmVxdWlyZWQgYGNhbGMoKWAgdG8gbWFrZSBpdCB3b3JrLlxuLy8vXG4vLy8gQHByb3Age3N0cmluZ30gc3ByZWFkIFtuYXJyb3ddIC1cbi8vLyAgIFNwcmVhZCBvZiBhbiBlbGVtZW50IGFjcm9zcyBhZGphY2VudCBndXR0ZXJzOlxuLy8vICAgZWl0aGVyIGBuYXJyb3dgIChub25lKSwgYHdpZGVgIChvbmUpLCBvciBgd2lkZXJgICh0d28pXG4vLy9cbi8vLyAgIC0gQm90aCBzcHJlYWQgc2V0dGluZ3MgZGVmYXVsdCB0byBgbmFycm93YCxcbi8vLyAgICAgdGhlIG1vc3QgY29tbW9uIHVzZS1jYXNlLlxuLy8vICAgICBBIGBuYXJyb3dgIHNwcmVhZCBvbmx5IGhhcyBndXR0ZXJzICpiZXR3ZWVuKiBjb2x1bW5zXG4vLy8gICAgIChvbmUgbGVzcyBndXR0ZXIgdGhhbiBjb2x1bW5zKS5cbi8vLyAgICAgVGhpcyBpcyBob3cgYWxsIGNzcy1uYXRpdmUgZ3JpZHMgd29yayxcbi8vLyAgICAgYW5kIG1vc3QgbWFyZ2luLWJhc2VkIGdyaWQgc3lzdGVtcy5cbi8vLyAgIC0gQSBgd2lkZWAgc3ByZWFkIGluY2x1ZGVzIHRoZSBzYW1lIG51bWJlciBvZiBndXR0ZXJzIGFzIGNvbHVtbnMsXG4vLy8gICAgIHNwYW5uaW5nIGFjcm9zcyBhIHNpbmdsZSBzaWRlLWd1dHRlci5cbi8vLyAgICAgVGhpcyBpcyBob3cgbW9zdCBwYWRkaW5nLWJhc2VkIGdyaWQgc3lzdGVtcyBvZnRlbiB3b3JrLFxuLy8vICAgICBhbmQgaXMgYWxzbyB1c2VmdWwgZm9yIHB1c2hpbmcgYW5kIHB1bGxpbmcgZWxlbWVudHMgaW50byBwbGFjZS5cbi8vLyAgIC0gVGhlIHJhcmUgYHdpZGVyYCBzcHJlYWQgaW5jbHVkZXMgZ3V0dGVyc1xuLy8vICAgICBvbiBib3RoIHNpZGVzIG9mIHRoZSBjb2x1bW4tc3BhblxuLy8vICAgICAob25lIG1vcmUgZ3V0dGVycyB0aGFuIGNvbHVtbnMpLlxuLy8vXG4vLy8gQHByb3Age3N0cmluZ30gY29udGFpbmVyLXNwcmVhZCBbbmFycm93XSAtXG4vLy8gICBTcHJlYWQgb2YgYSBjb250YWluZXIgYXJvdW5kIGFkamFjZW50IGd1dHRlcnM6XG4vLy8gICBlaXRoZXIgYG5hcnJvd2AgKG5vbmUpLCBgd2lkZWAgKG9uZSksIG9yIGB3aWRlcmAgKHR3bykuXG4vLy8gICBTZWUgYHNwcmVhZGAgcHJvcGVydHkgZm9yIGRldGFpbHMuXG4vLy9cbi8vLyBAc2luY2UgMy4wLjAtYmV0YS4xIC1cbi8vLyAgIGBjb2x1bW5zYCBzZXR0aW5nIG5vIGxvbmdlciBhY2NlcHRzIG51bWJlcnNcbi8vLyAgIChlLmcuIGAxMmApIGZvciBzeW1tZXRyaWNhbCBmbHVpZCBncmlkcyxcbi8vLyAgIG9yIHRoZSBpbml0aWFsIGAxMiB4IDEyMHB4YCBzeW50YXggZm9yXG4vLy8gICBzeW1tZXRyaWNhbCBmaXhlZC11bml0IGdyaWRzLlxuLy8vICAgVXNlIGBzdXN5LXJlcGVhdCgxMilgIG9yIGBzdXN5LXJlcGVhdCgxMiwgMTIwcHgpYCBpbnN0ZWFkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIGRlZmF1bHQgdmFsdWVzXG4vLy8gICAvLyA0IHN5bW1ldHJpY2FsLCBmbHVpZCBjb2x1bW5zXG4vLy8gICAvLyBndXR0ZXJzIGFyZSAxLzQgdGhlIHNpemUgb2YgYSBjb2x1bW5cbi8vLyAgIC8vIGVsZW1lbnRzIHNwYW4gMSBsZXNzIGd1dHRlciB0aGFuIGNvbHVtbnNcbi8vLyAgIC8vIGNvbnRhaW5lcnMgc3BhbiAxIGxlc3MgZ3V0dGVyIGFzIHdlbGxcbi8vLyAgICRzdXN5OiAoXG4vLy8gICAgICdjb2x1bW5zJzogc3VzeS1yZXBlYXQoNCksXG4vLy8gICAgICdndXR0ZXJzJzogMC4yNSxcbi8vLyAgICAgJ3NwcmVhZCc6ICduYXJyb3cnLFxuLy8vICAgICAnY29udGFpbmVyLXNwcmVhZCc6ICduYXJyb3cnLFxuLy8vICAgKTtcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBpbnNpZGUtc3RhdGljIGd1dHRlcnNcbi8vLyAgIC8vIDYgc3ltbWV0cmljYWwsIGZsdWlkIGNvbHVtbnPigKZcbi8vLyAgIC8vIGd1dHRlcnMgYXJlIHN0YXRpYywgdHJpZ2dlcmluZyBjYWxjKCnigKZcbi8vLyAgIC8vIGVsZW1lbnRzIHNwYW4gZXF1YWwgY29sdW1ucyAmIGd1dHRlcnPigKZcbi8vLyAgIC8vIGNvbnRhaW5lcnMgc3BhbiBlcXVhbCBjb2x1bW5zICYgZ3V0dGVyc+KAplxuLy8vICAgJHN1c3k6IChcbi8vLyAgICAgJ2NvbHVtbnMnOiBzdXN5LXJlcGVhdCg2KSxcbi8vLyAgICAgJ2d1dHRlcnMnOiAwLjVlbSxcbi8vLyAgICAgJ3NwcmVhZCc6ICd3aWRlJyxcbi8vLyAgICAgJ2NvbnRhaW5lci1zcHJlYWQnOiAnd2lkZScsXG4vLy8gICApO1xuJHN1c3k6ICgpICFkZWZhdWx0O1xuXG5cblxuLy8gU3VzeSBSZXBlYXRcbi8vIC0tLS0tLS0tLS0tXG4vLy8gU2ltaWxhciB0byB0aGUgYHJlcGVhdCg8Y291bnQ+LCA8dmFsdWU+KWAgZnVuY3Rpb25cbi8vLyB0aGF0IGlzIGF2YWlsYWJsZSBpbiBuYXRpdmUgQ1NTIEdyaWQgdGVtcGxhdGVzLFxuLy8vIHRoZSBgc3VzeS1yZXBlYXQoKWAgZnVuY3Rpb24gaGVscHMgZ2VuZXJhdGUgcmVwZXRhdGl2ZSBsYXlvdXRzXG4vLy8gYnkgcmVwZWF0aW5nIGFueSB2YWx1ZSBhIGdpdmVuIG51bWJlciBvZiB0aW1lcy5cbi8vLyBXaGVyZSBTdXN5IHByZXZpb3VzbHkgYWxsb3dlZCBgOGAgYXMgYSBjb2x1bW4gZGVmaW5pdGlvblxuLy8vIGZvciA4IGVxdWFsIGNvbHVtbnMsIHlvdSBzaG91bGQgbm93IHVzZSBgc3VzeS1yZXBlYXQoOClgLlxuLy8vXG4vLy8gQGdyb3VwIGNvbmZpZ1xuLy8vXG4vLy8gQHBhcmFtIHtpbnRlZ2VyfSAkY291bnQgLVxuLy8vICAgVGhlIG51bWJlciBvZiByZXBldGl0aW9ucywgZS5nLiBgMTJgIGZvciBhIDEyLWNvbHVtbiBncmlkLlxuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlIFsxXSAtXG4vLy8gICBUaGUgdmFsdWUgdG8gYmUgcmVwZWF0ZWQuXG4vLy8gICBUZWNobmljYWxseSBhbnkgdmFsdWUgY2FuIGJlIHJlcGVhdGVkIGhlcmUsXG4vLy8gICBidXQgdGhlIGZ1bmN0aW9uIGV4aXN0cyB0byByZXBlYXQgY29sdW1uLXdpZHRoIGRlc2NyaXB0aW9uczpcbi8vLyAgIGUuZy4gdGhlIGRlZmF1bHQgYDFgIGZvciBzaW5nbGUtZnJhY3Rpb24gZmx1aWQgY29sdW1ucyxcbi8vLyAgIGA1ZW1gIGZvciBhIHN0YXRpYyBjb2x1bW4sXG4vLy8gICBvciBldmVuIGA1ZW0gMTIwcHhgIGlmIHlvdSBhcmUgYWx0ZXJuYXRpbmcgY29sdW1uIHdpZHRocy5cbi8vL1xuLy8vIEByZXR1cm4ge2xpc3R9IC1cbi8vLyAgIExpc3Qgb2YgcmVwZWF0ZWQgdmFsdWVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAvLyAxMiBjb2x1bW4gZ3JpZCwgd2l0aCA1ZW0gY29sdW1uc1xuLy8vICAgJHN1c3k6IChcbi8vLyAgICAgY29sdW1uczogc3VzeS1yZXBlYXQoMTIsIDVlbSksXG4vLy8gICApO1xuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLy8gYXN5bW1ldHJpY2FsIDUtY29sdW1uIGdyaWRcbi8vLyAgICRzdXN5OiAoXG4vLy8gICAgIGNvbHVtbnM6IDIwcHggc3VzeS1yZXBlYXQoMywgMTAwcHgpIDIwcHgsXG4vLy8gICApO1xuLy8vXG4vLy8gICAvKiByZXN1bHQ6ICN7c3VzeS1nZXQoJ2NvbHVtbnMnKX0gKi9cbkBmdW5jdGlvbiBzdXN5LXJlcGVhdChcbiAgJGNvdW50LFxuICAkdmFsdWU6IDFcbikge1xuICAkcmV0dXJuOiAoKTtcblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb3VudCB7XG4gICAgJHJldHVybjogam9pbigkcmV0dXJuLCAkdmFsdWUpO1xuICB9XG5cbiAgQHJldHVybiAkcmV0dXJuO1xufVxuXG5cblxuLy8gU3VzeSBEZWZhdWx0c1xuLy8gLS0tLS0tLS0tLS0tLVxuLy8vIENvbmZpZ3VyYXRpb24gbWFwIG9mIFN1c3kgZmFjdG9yeSBkZWZhdWx0cy5cbi8vLyBEbyBub3Qgb3ZlcnJpZGUgdGhpcyBtYXAgZGlyZWN0bHkg4oCTXG4vLy8gdXNlIGAkc3VzeWAgZm9yIHVzZXIgYW5kIHByb2plY3Qgc2V0dGluZyBvdmVycmlkZXMuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLyBAdHlwZSBNYXBcbi8vL1xuLy8vIEBzZWUgJHN1c3lcbi8vL1xuLy8vIEBwcm9wIHtudW1iZXIgfCBsaXN0fSBjb2x1bW5zIFtzdXN5LXJlcGVhdCg0KV1cbi8vLyBAcHJvcCB7bnVtYmVyfSBndXR0ZXJzIFswLjI1XVxuLy8vIEBwcm9wIHtzdHJpbmd9IHNwcmVhZCBbJ25hcnJvdyddXG4vLy8gQHByb3Age3N0cmluZ30gY29udGFpbmVyLXNwcmVhZCBbJ25hcnJvdyddXG4kX3N1c3ktZGVmYXVsdHM6IChcbiAgJ2NvbHVtbnMnOiBzdXN5LXJlcGVhdCg0KSxcbiAgJ2d1dHRlcnMnOiAwLjI1LFxuICAnc3ByZWFkJzogJ25hcnJvdycsXG4gICdjb250YWluZXItc3ByZWFkJzogJ25hcnJvdycsXG4pO1xuXG5cblxuLy8gU3VzeSBTZXR0aW5nc1xuLy8gLS0tLS0tLS0tLS0tLVxuLy8vIFJldHVybiBhIGNvbWJpbmVkIG1hcCBvZiBTdXN5IHNldHRpbmdzLFxuLy8vIGJhc2VkIG9uIHRoZSBmYWN0b3J5IGRlZmF1bHRzIChgJF9zdXN5LWRlZmF1bHRzYCksXG4vLy8gdXNlci1kZWZpbmVkIHByb2plY3QgY29uZmlndXJhdGlvbiAoYCRzdXN5YCksXG4vLy8gYW5kIGFueSBsb2NhbCBvdmVycmlkZXMgcmVxdWlyZWQg4oCTXG4vLy8gc3VjaCBhcyBhIGNvbmZpZ3VyYXRpb24gbWFwIHBhc3NlZCBpbnRvIGEgZnVuY3Rpb24uXG4vLy9cbi8vLyBAZ3JvdXAgY29uZmlnXG4vLy9cbi8vLyBAcGFyYW0ge21hcHN9ICRvdmVycmlkZXPigKYgLVxuLy8vICAgT3B0aW9uYWwgbWFwIG92ZXJyaWRlIG9mIGdsb2JhbCBjb25maWd1cmF0aW9uIHNldHRpbmdzLlxuLy8vICAgU2VlIGAkc3VzeWAgYWJvdmUgZm9yIHByb3BlcnRpZXMuXG4vLy9cbi8vLyBAcmV0dXJuIHttYXB9IC1cbi8vLyAgIENvbWJpbmVkIG1hcCBvZiBTdXN5IGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MsXG4vLy8gICBpbiBvcmRlciBvZiBzcGVjaWZpY2l0eTpcbi8vLyAgIGFueSBgJG92ZXJyaWRlcy4uLmAsXG4vLy8gICB0aGVuIGAkc3VzeWAgcHJvamVjdCBzZXR0aW5ncyxcbi8vLyAgIGFuZCBmaW5hbGx5IHRoZSBgJF9zdXN5LWRlZmF1bHRzYFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIGdsb2JhbCBzZXR0aW5nc1xuLy8vICAgQGVhY2ggJGtleSwgJHZhbHVlIGluIHN1c3ktc2V0dGluZ3MoKSB7XG4vLy8gICAgIC8qICN7JGtleX06ICN7JHZhbHVlfSAqL1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIGxvY2FsIHNldHRpbmdzXG4vLy8gICAkbG9jYWw6ICgnY29sdW1ucyc6IDEgMiAzIDUgOCk7XG4vLy9cbi8vLyAgIEBlYWNoICRrZXksICR2YWx1ZSBpbiBzdXN5LXNldHRpbmdzKCRsb2NhbCkge1xuLy8vICAgICAvKiAjeyRrZXl9OiAjeyR2YWx1ZX0gKi9cbi8vLyAgIH1cbkBmdW5jdGlvbiBzdXN5LXNldHRpbmdzKFxuICAkb3ZlcnJpZGVzLi4uXG4pIHtcbiAgJHNldHRpbmdzOiBtYXAtbWVyZ2UoJF9zdXN5LWRlZmF1bHRzLCAkc3VzeSk7XG5cbiAgQGVhY2ggJGNvbmZpZyBpbiAkb3ZlcnJpZGVzIHtcbiAgICAkc2V0dGluZ3M6IG1hcC1tZXJnZSgkc2V0dGluZ3MsICRjb25maWcpO1xuICB9XG5cbiAgQHJldHVybiAkc2V0dGluZ3M7XG59XG5cblxuXG4vLyBTdXN5IEdldFxuLy8gLS0tLS0tLS1cbi8vLyBSZXR1cm4gdGhlIGN1cnJlbnQgZ2xvYmFsIHZhbHVlIG9mIGFueSBTdXN5IHNldHRpbmdcbi8vL1xuLy8vIEBncm91cCBjb25maWdcbi8vL1xuLy8vIEBwYXJhbSB7c3RyaW5nfSAka2V5IC1cbi8vLyAgIFNldHRpbmcgdG8gcmV0cmlldmUgZnJvbSB0aGUgY29uZmlndXJhdGlvbi5cbi8vL1xuLy8vIEByZXR1cm4geyp9IC1cbi8vLyAgIFZhbHVlIG1hcHBlZCB0byBgJGtleWAgaW4gdGhlIGNvbmZpZ3VyYXRpb24gbWFwcyxcbi8vLyAgIGluIG9yZGVyIG9mIHNwZWNpZmljaXR5OlxuLy8vICAgYCRzdXN5YCwgdGhlbiBgJF9zdXN5LWRlZmF1bHRzYFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtXG4vLy8gICAvKiBjb2x1bW5zOiAje3N1c3ktZ2V0KCdjb2x1bW5zJyl9ICovXG4vLy8gICAvKiBndXR0ZXJzOiAje3N1c3ktZ2V0KCdndXR0ZXJzJyl9ICovXG5AZnVuY3Rpb24gc3VzeS1nZXQoXG4gICRrZXlcbikge1xuICAkc2V0dGluZ3M6IHN1c3ktc2V0dGluZ3MoKTtcblxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRzZXR0aW5ncywgJGtleSkge1xuICAgIEByZXR1cm4gX3N1c3ktZXJyb3IoXG4gICAgICAnVGhlcmUgaXMgbm8gU3VzeSBzZXR0aW5nIGNhbGxlZCBgI3ska2V5fWAnLFxuICAgICAgJ3N1c3ktZ2V0Jyk7XG4gIH1cblxuICBAcmV0dXJuIG1hcC1nZXQoJHNldHRpbmdzLCAka2V5KTtcbn1cbiIsIi8vLyBTeW50YXggTm9ybWFsaXphdGlvblxuLy8vID09PT09PT09PT09PT09PT09PT09XG4vLy8gU3VzeSBpcyBkaXZpZGVkIGludG8gdHdvIGxheWVyczpcbi8vLyBcIlN1XCIgcHJvdmlkZXMgdGhlIGNvcmUgbWF0aCBmdW5jdGlvbnMgd2l0aCBhIHN0cmlwcGVkLWRvd24gc3ludGF4LFxuLy8vIHdoaWxlIFwiU3VzeVwiIGFkZHMgZ2xvYmFsIHNldHRpbmdzLCBzaG9ydGhhbmQgc3ludGF4LFxuLy8vIGFuZCBvdGhlciBoZWxwZXJzLlxuLy8vIEVhY2ggc2V0dGluZyAoZS5nLiBzcGFuLCBsb2NhdGlvbiwgY29sdW1ucywgc3ByZWFkLCBldGMuKVxuLy8vIGhhcyBhIHNpbmdsZSBjYW5vbmljYWwgc3ludGF4IGluIFN1LlxuLy8vXG4vLy8gVGhpcyBub3JtYWxpemF0aW9uIG1vZHVsZSBoZWxwcyB0cmFuc2xhdGUgYmV0d2VlbiB0aG9zZSBsYXllcnMsXG4vLy8gdHJhbnNmb3JtaW5nIHBhcnNlZCBTdXN5IGlucHV0IGludG9cbi8vLyB2YWx1ZXMgdGhhdCBTdSB3aWxsIHVuZGVyc3RhbmQuXG4vLy9cbi8vLyBAZ3JvdXAgX25vcm1hbFxuLy8vXG4vLy8gQHNlZSBzdXN5LW5vcm1hbGl6ZVxuLy8vIEBzZWUgc3VzeS1ub3JtYWxpemUtc3BhblxuLy8vIEBzZWUgc3VzeS1ub3JtYWxpemUtY29sdW1uc1xuLy8vIEBzZWUgc3VzeS1ub3JtYWxpemUtc3ByZWFkXG4vLy8gQHNlZSBzdXN5LW5vcm1hbGl6ZS1sb2NhdGlvblxuXG5cblxuLy8gU3VzeSBOb3JtYWxpemVcbi8vIC0tLS0tLS0tLS0tLS0tXG4vLy8gTm9ybWFsaXplIHRoZSB2YWx1ZXMgaW4gYSBjb25maWd1cmF0aW9uIG1hcC5cbi8vLyBJbiBhZGRpdGlvbiB0byB0aGUgZ2xvYmFsIGAkc3VzeWAgcHJvcGVydGllcyxcbi8vLyB0aGlzIG1hcCBjYW4gaW5jbHVkZSBsb2NhbCBzcGFuLXJlbGF0ZWQgaW1mb3JtYXRpb24sXG4vLy8gbGlrZSBgc3BhbmAgYW5kIGBsb2NhdGlvbmAuXG4vLy9cbi8vLyBOb3JtYWxpemF0aW9uIGRvZXMgbm90IGNoZWNrIHRoYXQgdmFsdWVzIGFyZSB2YWxpZCxcbi8vLyB3aGljaCB3aWxsIGhhcHBlbiBpbiB0aGUgU3UgbWF0aCBsYXllci5cbi8vLyBUaGVzZSBmdW5jdGlvbnMgbWVyZWx5IGxvb2sgZm9yIGtub3duIFN1c3kgc3ludGF4IOKAk1xuLy8vIHJldHVybmluZyBhIG1hcCB3aXRoIHRob3NlIHNob3J0aGFuZCB2YWx1ZXNcbi8vLyBjb252ZXJ0ZWQgaW50byBsb3ctbGV2ZWwgZGF0YSBmb3IgU3UuXG4vLy8gRm9yIGV4YW1wbGUgYHNwYW46IGFsbGAgYW5kIGBsb2NhdGlvbjogZmlyc3RgXG4vLy8gd2lsbCBiZSBjb252ZXJ0ZWQgaW50byBzcGVjaWZpYyBudW1iZXJzLlxuLy8vXG4vLy8gQGdyb3VwIF9ub3JtYWxcbi8vLyBAc2VlICRzdXN5XG4vLy8gQHNlZSBzdXN5LXBhcnNlXG4vLy9cbi8vLyBAcGFyYW0ge21hcH0gJGNvbmZpZyAtXG4vLy8gICBNYXAgb2YgU3VzeSBjb25maWd1cmF0aW9uIHNldHRpbmdzIHRvIG5vcm1hbGl6ZS5cbi8vLyAgIFNlZSBgJHN1c3lgIGFuZCBgc3VzeS1wYXJzZSgpYCBkb2N1bWVudGF0aW9uIGZvciBkZXRhaWxzLlxuLy8vIEBwYXJhbSB7bWFwIHwgbnVsbH0gJGNvbnRleHQgW251bGxdIC1cbi8vLyAgIE1hcCBvZiBTdXN5IGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgdG8gdXNlIGFzIGdsb2JhbCByZWZlcmVuY2UsXG4vLy8gICBvciBgbnVsbGAgdG8gdXNlIGdsb2JhbCBzZXR0aW5ncy5cbi8vL1xuLy8vIEByZXR1cm4ge21hcH0gLVxuLy8vICAgTWFwIG9mIFN1c3kgY29uZmlndXJhdGlvbiBzZXR0aW5ncyxcbi8vLyAgIHdpdGggYWxsIHZhbHVlcyBub3JtYWxpemVkIGZvciBTdSBtYXRoIGZ1bmN0aW9ucy5cbkBmdW5jdGlvbiBzdXN5LW5vcm1hbGl6ZShcbiAgJGNvbmZpZyxcbiAgJGNvbnRleHQ6IG51bGxcbikge1xuICAvLyBTcHJlYWRcbiAgQGVhY2ggJHNldHRpbmcgaW4gKCdzcHJlYWQnLCAnY29udGFpbmVyLXNwcmVhZCcpIHtcbiAgICAkdmFsdWU6IG1hcC1nZXQoJGNvbmZpZywgJHNldHRpbmcpO1xuXG4gICAgQGlmICR2YWx1ZSB7XG4gICAgICAkdmFsdWU6IHN1c3ktbm9ybWFsaXplLXNwcmVhZCgkdmFsdWUpO1xuICAgICAgJGNvbmZpZzogbWFwLW1lcmdlKCRjb25maWcsICgkc2V0dGluZzogJHZhbHVlKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29sdW1uc1xuICAkY29sdW1uczogbWFwLWdldCgkY29uZmlnLCAnY29sdW1ucycpO1xuXG4gIEBpZiAkY29sdW1ucyB7XG4gICAgJGNvbHVtbnM6IHN1c3ktbm9ybWFsaXplLWNvbHVtbnMoJGNvbHVtbnMsICRjb250ZXh0KTtcbiAgICAkY29uZmlnOiBtYXAtbWVyZ2UoJGNvbmZpZywgKCdjb2x1bW5zJzogJGNvbHVtbnMpKTtcbiAgfVxuXG4gIEBpZiBub3QgJGNvbHVtbnMge1xuICAgICRtYXA6IHR5cGUtb2YoJGNvbnRleHQpID09ICdtYXAnO1xuICAgICRjb2x1bW5zOiBpZigkbWFwLCBtYXAtZ2V0KCRjb250ZXh0LCAnY29sdW1ucycpLCBudWxsKTtcbiAgICAkY29sdW1uczogJGNvbHVtbnMgb3Igc3VzeS1nZXQoJ2NvbHVtbnMnKTtcbiAgfVxuXG4gIC8vIFNwYW5cbiAgJHNwYW46IG1hcC1nZXQoJGNvbmZpZywgJ3NwYW4nKTtcblxuICBAaWYgJHNwYW4ge1xuICAgICRzcGFuOiBzdXN5LW5vcm1hbGl6ZS1zcGFuKCRzcGFuLCAkY29sdW1ucyk7XG4gICAgJGNvbmZpZzogbWFwLW1lcmdlKCRjb25maWcsICgnc3Bhbic6ICRzcGFuKSk7XG4gIH1cblxuICAvLyBMb2NhdGlvblxuICAkbG9jYXRpb246IG1hcC1nZXQoJGNvbmZpZywgJ2xvY2F0aW9uJyk7XG5cbiAgQGlmICRsb2NhdGlvbiB7XG4gICAgJGxvY2F0aW9uOiBzdXN5LW5vcm1hbGl6ZS1sb2NhdGlvbigkc3BhbiwgJGxvY2F0aW9uLCAkY29sdW1ucyk7XG4gICAgJGNvbmZpZzogbWFwLW1lcmdlKCRjb25maWcsICgnbG9jYXRpb24nOiAkbG9jYXRpb24pKTtcbiAgfVxuXG4gIEByZXR1cm4gJGNvbmZpZztcbn1cblxuXG5cbi8vIE5vcm1hbGl6ZSBTcGFuXG4vLyAtLS0tLS0tLS0tLS0tLVxuLy8vIE5vcm1hbGl6ZSBgc3BhbmAgc2hvcnRoYW5kIGZvciBTdS5cbi8vLyBTdSBzcGFuIHN5bnRheCBhbGxvd3MgYW4gZXhwbGljaXQgbGVuZ3RoIChlLmcuIGAzZW1gKSxcbi8vLyB1bml0bGVzcyBjb2x1bW4tc3BhbiBudW1iZXIgKGUuZy4gYDNgIGNvbHVtbnMpLFxuLy8vIG9yIGFuIGV4cGxpY2l0IGxpc3Qgb2YgY29sdW1ucyAoZS5nLiBgKDMgNSA4KWApLlxuLy8vXG4vLy8gU3VzeSBzcGFuIHN5bnRheCBhbHNvIGFsbG93cyB0aGUgYGFsbGAga2V5d29yZCxcbi8vLyB3aGljaCB3aWxsIGJlIGNvbnZlcnRlZCB0byBhIHNsaWNlIG9mIHRoZSBjb250ZXh0XG4vLy8gaW4gbm9ybWFsaXphdGlvbi5cbi8vL1xuLy8vIEBncm91cCBfbm9ybWFsXG4vLy9cbi8vLyBAcGFyYW0ge251bWJlciB8IGxpc3QgfCAnYWxsJ30gJHNwYW4gLVxuLy8vICAgU3BhbiB2YWx1ZSB0byBub3JtYWxpemUuXG4vLy8gQHBhcmFtIHtsaXN0fSAkY29sdW1ucyAtXG4vLy8gICBOb3JtYWxpemVkIGxpc3Qgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZFxuLy8vXG4vLy8gQHJldHVybiB7bnVtYmVyIHwgbGlzdH0gLVxuLy8vICAgTnVtYmVyIG9yIGxpc3QgdmFsdWUgZm9yIGAkc3BhbmBcbkBmdW5jdGlvbiBzdXN5LW5vcm1hbGl6ZS1zcGFuKFxuICAkc3BhbixcbiAgJGNvbHVtbnM6IHN1c3ktZ2V0KCdjb2x1bW5zJylcbikge1xuICBAaWYgKCRzcGFuID09ICdhbGwnKSB7XG4gICAgQHJldHVybiBsZW5ndGgoJGNvbHVtbnMpO1xuICB9XG5cbiAgQHJldHVybiAkc3Bhbjtcbn1cblxuXG5cbi8vIE5vcm1hbGl6ZSBDb2x1bW5zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuLy8vIE5vcm1hbGl6ZSBgY29sdW1uYCBzaG9ydGhhbmQgZm9yIFN1LlxuLy8vIFN1IGNvbHVtbiBzeW50YXggb25seSBhbGxvd3MgY29sdW1uIGxpc3RzIChlLmcuIGAxMjBweCAxIDEgMSAxMjBweGApLlxuLy8vXG4vLy8gU3VzeSBzcGFuIHN5bnRheCBhbHNvIGFsbG93cyBhIHVuaXRsZXNzIGBzbGljZWAgbnVtYmVyIChlLmcgYG9mIDVgKSxcbi8vLyB3aGljaCB3aWxsIGJlIGNvbnZlcnRlZCB0byBhIHNsaWNlIG9mIHRoZSBjb250ZXh0XG4vLy8gaW4gbm9ybWFsaXphdGlvbi5cbi8vL1xuLy8vIEBncm91cCBfbm9ybWFsXG4vLy9cbi8vLyBAcGFyYW0ge2xpc3QgfCBpbnRlZ2VyfSAkY29sdW1ucyAtXG4vLy8gICBMaXN0IG9mIGF2YWlsYWJsZSBjb2x1bW5zLFxuLy8vICAgb3IgdW5pdGxlc3MgaW50ZWdlciByZXByZXNlbnRpbmcgYSBzbGljZSBvZlxuLy8vICAgdGhlIGF2YWlsYWJsZSBjb250ZXh0LlxuLy8vIEBwYXJhbSB7bWFwIHwgbnVsbH0gJGNvbnRleHQgW251bGxdIC1cbi8vLyAgIE1hcCBvZiBTdXN5IGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgdG8gdXNlIGFzIGdsb2JhbCByZWZlcmVuY2UsXG4vLy8gICBvciBgbnVsbGAgdG8gYWNjZXNzIGdsb2JhbCBzZXR0aW5ncy5cbi8vL1xuLy8vIEByZXR1cm4ge2xpc3R9IC1cbi8vLyAgIENvbHVtbnMgbGlzdCB2YWx1ZSwgbm9ybWFsaXplZCBmb3IgU3UgaW5wdXQuXG4vLy9cbi8vLyBAdGhyb3dzXG4vLy8gICB3aGVuIGF0dGVtcHRpbmcgdG8gYWNjZXNzIGEgc2xpY2Ugb2YgYXN5bW1ldHJpY2FsIGNvbnRleHRcbkBmdW5jdGlvbiBzdXN5LW5vcm1hbGl6ZS1jb2x1bW5zKFxuICAkY29sdW1ucyxcbiAgJGNvbnRleHQ6IG51bGxcbikge1xuICAkY29udGV4dDogJGNvbnRleHQgb3Igc3VzeS1zZXR0aW5ncygpO1xuXG4gIEBpZiB0eXBlLW9mKCRjb2x1bW5zKSA9PSAnbGlzdCcge1xuICAgIEByZXR1cm4gX3N1c3ktZmxhdHRlbigkY29sdW1ucyk7XG4gIH1cblxuICBAaWYgKHR5cGUtb2YoJGNvbHVtbnMpID09ICdudW1iZXInKSBhbmQgKHVuaXRsZXNzKCRjb2x1bW5zKSkge1xuICAgICRzcGFuOiAkY29sdW1ucztcbiAgICAkY29udGV4dDogbWFwLWdldCgkY29udGV4dCwgJ2NvbHVtbnMnKTtcbiAgICAkc3ltbWV0cmljYWw6IHN1c3ktcmVwZWF0KGxlbmd0aCgkY29udGV4dCksIG50aCgkY29udGV4dCwgMSkpO1xuXG4gICAgQGlmICgkY29udGV4dCA9PSAkc3ltbWV0cmljYWwpIHtcbiAgICAgIEByZXR1cm4gc3VzeS1yZXBlYXQoJHNwYW4sIG50aCgkY29udGV4dCwgMSkpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJGFjdHVhbDogJ29mIGAjeyRzcGFufWAnO1xuICAgICAgJGNvbHVtbnM6ICdncmlkLWNvbHVtbnMgYCN7JGNvbnRleHR9YCc7XG4gICAgICBAcmV0dXJuIF9zdXN5LWVycm9yKFxuICAgICAgICAnY29udGV4dC1zbGljZSAjeyRhY3R1YWx9IGNhbiBub3QgYmUgZGV0ZXJtaW5lZCBiYXNlZCBvbiAjeyRjb2x1bW5zfS4nLFxuICAgICAgICAnc3VzeS1ub3JtYWxpemUtY29sdW1ucycpO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJGNvbHVtbnM7XG59XG5cblxuXG4vLyBOb3JtYWxpemUgU3ByZWFkXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG4vLy8gTm9ybWFsaXplIGBzcHJlYWRgIHNob3J0aGFuZCBmb3IgU3UuXG4vLy8gU3Ugc3ByZWFkIHN5bnRheCBvbmx5IGFsbG93cyB0aGUgbnVtYmVycyBgLTFgLCBgMGAsIG9yIGAxYCDigJNcbi8vLyByZXByZXNlbnRpbmcgdGhlIG51bWJlciBvZiBndXR0ZXJzIGNvdmVyZWRcbi8vLyBpbiByZWxhdGlvbiB0byBjb2x1bW5zIHNwYW5uZWQuXG4vLy9cbi8vLyBTdXN5IHNwcmVhZCBzeW50YXggYWxzbyBhbGxvd3Mga2V5d29yZHMgZm9yIGVhY2ggdmFsdWUg4oCTXG4vLy8gYG5hcnJvd2AgZm9yIGAtMWAsIGB3aWRlYCBmb3IgYDBgLCBvciBgd2lkZXJgIGZvciBgMWAg4oCTXG4vLy8gd2hpY2ggd2lsbCBiZSBjb252ZXJ0ZWQgdG8gdGhlaXIgcmVzcGVjdGl2ZSBpbnRlZ2Vyc1xuLy8vIGluIG5vcm1hbGl6YXRpb24uXG4vLy9cbi8vLyBAZ3JvdXAgX25vcm1hbFxuLy8vXG4vLy8gQHBhcmFtIHswIHwgMSB8IC0xIHwgJ25hcnJvdycgfCAnd2lkZScgfCAnd2lkZXInfSAkc3ByZWFkIC1cbi8vLyAgIFNwcmVhZCBhY3Jvc3MgYWRqYWNlbnQgZ3V0dGVycywgcmVsYXRpdmUgdG8gYSBjb2x1bW4tY291bnQg4oCUXG4vLy8gICBlaXRoZXIgYG5hcnJvd2AgKC0xKSwgYHdpZGVgICgwKSwgb3IgYHdpZGVyYCAoMSlcbi8vL1xuLy8vIEByZXR1cm4ge251bWJlcn0gLVxuLy8vICAgTnVtZXJpYyB2YWx1ZSBmb3IgYCRzcHJlYWRgXG5AZnVuY3Rpb24gc3VzeS1ub3JtYWxpemUtc3ByZWFkKFxuICAkc3ByZWFkXG4pIHtcbiAgJG5vcm1hbC1zcHJlYWQ6IChcbiAgICAnbmFycm93JzogLTEsXG4gICAgJ3dpZGUnOiAwLFxuICAgICd3aWRlcic6IDEsXG4gICk7XG5cbiAgQHJldHVybiBtYXAtZ2V0KCRub3JtYWwtc3ByZWFkLCAkc3ByZWFkKSBvciAkc3ByZWFkO1xufVxuXG5cblxuLy8gTm9ybWFsaXplIExvY2F0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBOb3JtYWxpemUgYGxvY2F0aW9uYCBzaG9ydGhhbmQgZm9yIFN1LlxuLy8vIFN1IGxvY2F0aW9uIHN5bnRheCByZXF1aXJlcyB0aGUgKDEtaW5kZXhlZCkgbnVtYmVyIGZvciBhIGNvbHVtbi5cbi8vL1xuLy8vIFN1c3kgYWxzbyBhbGxvd3MgdGhlIGBmaXJzdGAgYW5kIGBsYXN0YCBrZXl3b3Jkcyxcbi8vLyB3aGVyZSBgZmlyc3RgIGlzIGFsd2F5cyBgMWAsXG4vLy8gYW5kIGBsYXN0YCBpcyBjYWxjdWxhdGVkIGJhc2VkIG9uIHNwYW4gYW5kIGNvbHVtbiB2YWx1ZXMuXG4vLy8gQm90aCBrZXl3b3JkcyBhcmUgbm9ybWFsaXplZCBpbnRvIGFuIGludGVnZXIgaW5kZXhcbi8vLyBpbiBub3JtYWxpemF0aW9uLlxuLy8vXG4vLy8gQGdyb3VwIF9ub3JtYWxcbi8vL1xuLy8vIEBwYXJhbSB7bnVtYmVyfSAkc3BhbiAtXG4vLy8gICBOdW1iZXIgb2YgZ3JpZC1jb2x1bW5zIHRvIGJlIHNwYW5uZWRcbi8vLyBAcGFyYW0ge2ludGVnZXIgfCAnZmlyc3QnIHwgJ2xhc3QnfSAkbG9jYXRpb24gLVxuLy8vICAgU3RhcnRpbmcgKDEtaW5kZXhlZCkgY29sdW1uIHBvc2l0aW9uIG9mIGEgc3Bhbixcbi8vLyAgIG9yIGEgbmFtZWQgbG9jYXRpb24ga2V5d29yZC5cbi8vLyBAcGFyYW0ge2xpc3R9ICRjb2x1bW5zIC1cbi8vLyAgIEFscmVhZHktbm9ybWFsaXplZCBsaXN0IG9mIGNvbHVtbnMgaW4gdGhlIGdyaWQuXG4vLy9cbi8vLyBAcmV0dXJuIHtpbnRlZ2VyfSAtXG4vLy8gICBOdW1lcmljIHZhbHVlIGZvciBgJGxvY2F0aW9uYFxuQGZ1bmN0aW9uIHN1c3ktbm9ybWFsaXplLWxvY2F0aW9uKFxuICAkc3BhbixcbiAgJGxvY2F0aW9uLFxuICAkY29sdW1uc1xuKSB7XG4gICRjb3VudDogbGVuZ3RoKCRjb2x1bW5zKTtcbiAgJG5vcm1hbC1sb2NhdGlvbnM6IChcbiAgICAnZmlyc3QnOiAxLFxuICAgICdhbHBoYSc6IDEsXG4gICAgJ2xhc3QnOiAkY291bnQgLSAkc3BhbiArIDEsXG4gICAgJ29tZWdhJzogJGNvdW50IC0gJHNwYW4gKyAxLFxuICApO1xuXG4gIEByZXR1cm4gbWFwLWdldCgkbm9ybWFsLWxvY2F0aW9ucywgJGxvY2F0aW9uKSBvciAkbG9jYXRpb247XG59XG4iLCIvLy8gU2hvcnRoYW5kIFN5bnRheCBQYXJzZXJcbi8vLyA9PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIFRoZSBzeW50YXggcGFyc2VyIGNvbnZlcnRzIFtzaG9ydGhhbmQgc3ludGF4XVtzaG9ydF1cbi8vLyBpbnRvIGEgbWFwIG9mIHNldHRpbmdzIHRoYXQgY2FuIGJlIGNvbXBhcmVkL21lcmdlZCB3aXRoXG4vLy8gb3RoZXIgY29uZmlnIG1hcHMgYW5kIGdsb2JhbCBzZXR0aW5nLlxuLy8vXG4vLy8gW3Nob3J0XTogYXBpLmh0bWxcbi8vL1xuLy8vIEBncm91cCBfcGFyc2VyXG5cblxuXG4vLyBQYXJzZVxuLy8gLS0tLS1cbi8vLyBUaGUgYHBhcnNlYCBmdW5jdGlvbiBwcm92aWRlcyBhbGwgdGhlIHN5bnRheC1zdWdhciBpbiBTdXN5LFxuLy8vIGNvbnZlcnRpbmcgdXNlciBzaG9ydGhhbmRcbi8vLyBpbnRvIGEgdXNhYmxlIG1hcCBvZiBrZXlzIGFuZCB2YWx1ZXNcbi8vLyB0aGF0IGNhbiBiZSBub3JtYWxpemVkIGFuZCBwYXNzZWQgdG8gU3UuXG4vLy9cbi8vLyBAZ3JvdXAgX3BhcnNlclxuLy8vIEBzZWUgJHN1c3lcbi8vL1xuLy8vIEBwYXJhbSB7bGlzdH0gJHNob3J0aGFuZCAtXG4vLy8gICBTaG9ydGhhbmQgZXhwcmVzc2lvbiB0byBkZWZpbmUgdGhlIHdpZHRoIG9mIHRoZSBzcGFuLFxuLy8vICAgb3B0aW9uYWxseSBjb250YWluaW5nOlxuLy8vICAgLSBhIGNvdW50LCBsZW5ndGgsIG9yIGNvbHVtbi1saXN0IHNwYW47XG4vLy8gICAtIGBhdCAkbmAsIGBmaXJzdGAsIG9yIGBsYXN0YCBsb2NhdGlvbiBvbiBhc3ltbWV0cmljYWwgZ3JpZHM7XG4vLy8gICAtIGBuYXJyb3dgLCBgd2lkZWAsIG9yIGB3aWRlcmAgZm9yIG9wdGlvbmFsbHkgc3ByZWFkaW5nXG4vLy8gICAgIGFjcm9zcyBhZGphY2VudCBndXR0ZXJzO1xuLy8vICAgLSBgb2YgJG4gPHNwcmVhZD5gIGZvciBhdmFpbGFibGUgZ3JpZCBjb2x1bW5zXG4vLy8gICAgIGFuZCBzcHJlYWQgb2YgdGhlIGNvbnRhaW5lclxuLy8vICAgICAoc3BhbiBjb3VudHMgbGlrZSBgb2YgNmAgYXJlIG9ubHkgdmFsaWRcbi8vLyAgICAgaW4gdGhlIGNvbnRleHQgb2Ygc3ltbWV0cmljYWwgZ3JpZHMpO1xuLy8vICAgLSBhbmQgYHNldC1ndXR0ZXJzICRuYCB0byBvdmVycmlkZSBnbG9iYWwgZ3V0dGVyIHNldHRpbmdzXG4vLy8gQHBhcmFtIHtib29sfSAkY29udGV4dC1vbmx5IFtmYWxzZV0gLVxuLy8vICAgQWxsb3cgdGhlIHBhcnNlciB0byBpZ25vcmUgc3BhbiBhbmQgc3Bhbi1zcHJlYWQgdmFsdWVzLFxuLy8vICAgb25seSBwYXJzaW5nIGNvbnRleHQgYW5kIGNvbnRhaW5lci1zcHJlYWQuXG4vLy8gICBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGFjY2VwdCBzcGFubGVzcyB2YWx1ZXMsXG4vLy8gICBsaWtlIHRoZSBgZ3V0dGVycygpYCBzeW50YXguXG4vLy8gICBXaGVuIHBhcnNpbmcgY29udGV4dC1vbmx5LFxuLy8vICAgdGhlIGBvZmAgaW5kaWNhdG9yIGlzIG9wdGlvbmFsLlxuLy8vXG4vLy8gQHJldHVybiB7bWFwfSAtXG4vLy8gICBNYXAgb2Ygc3BhbiBhbmQgZ3JpZCBzZXR0aW5nc1xuLy8vICAgcGFyc2VkIGZyb20gc2hvcnRoYW5kIGlucHV0IOKAk1xuLy8vICAgaW5jbHVkaW5nIGFsbCB0aGUgcHJvcGVydGllcyBhdmFpbGFibGUgZ2xvYmFsbHkg4oCTXG4vLy8gICBgY29sdW1uc2AsIGBndXR0ZXJzYCwgYHNwcmVhZGAsIGBjb250YWluZXItc3ByZWFkYCDigJNcbi8vLyAgIGFsb25nIHdpdGggdGhlIHNwYW4tc3BlY2lmaWMgcHJvcGVydGllc1xuLy8vICAgYHNwYW5gLCBhbmQgYGxvY2F0aW9uYC5cbi8vL1xuLy8vIEB0aHJvd1xuLy8vICAgd2hlbiBhIHNob3J0aGFuZCB2YWx1ZSBpcyBub3QgcmVjb2duaXplZFxuQGZ1bmN0aW9uIHN1c3ktcGFyc2UoXG4gICRzaG9ydGhhbmQsXG4gICRjb250ZXh0LW9ubHk6IGZhbHNlXG4pIHtcbiAgJHBhcnNlLWVycm9yOiAnVW5rbm93biBzaG9ydGhhbmQgcHJvcGVydHk6JztcbiAgJG9wdGlvbnM6IChcbiAgICAnZmlyc3QnOiAnbG9jYXRpb24nLFxuICAgICdsYXN0JzogJ2xvY2F0aW9uJyxcbiAgICAnYWxwaGEnOiAnbG9jYXRpb24nLFxuICAgICdvbWVnYSc6ICdsb2NhdGlvbicsXG4gICAgJ25hcnJvdyc6ICdzcHJlYWQnLFxuICAgICd3aWRlJzogJ3NwcmVhZCcsXG4gICAgJ3dpZGVyJzogJ3NwcmVhZCcsXG4gICk7XG5cbiAgJHJldHVybjogKCk7XG4gICRzcGFuOiBudWxsO1xuICAkY29sdW1uczogbnVsbDtcblxuICAkb2Y6IG51bGw7XG4gICRuZXh0OiBmYWxzZTtcblxuICAvLyBBbGxvdyBjb250ZXh0LW9ubHkgc2hvcnRoYW5kLCB3aXRob3V0IHNwYW5cbiAgQGlmICgkY29udGV4dC1vbmx5KSBhbmQgKG5vdCBpbmRleCgkc2hvcnRoYW5kLCAnb2YnKSkge1xuICAgIEBpZiBzdS12YWxpZC1jb2x1bW5zKCRzaG9ydGhhbmQsICdmYWlsLXNpbGVudCcpIHtcbiAgICAgICRzaG9ydGhhbmQ6ICdvZicgJHNob3J0aGFuZDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRzaG9ydGhhbmQ6IGpvaW4oJ29mJywgJHNob3J0aGFuZCk7XG4gICAgfVxuICB9XG5cbiAgLy8gbG9vcCB0aHJvdWdoIHRoZSBzaG9ydGhhbmQgbGlzdFxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkc2hvcnRoYW5kKSB7XG4gICAgJGl0ZW06IG50aCgkc2hvcnRoYW5kLCAkaSk7XG4gICAgJHR5cGU6IHR5cGUtb2YoJGl0ZW0pO1xuICAgICRlcnJvcjogZmFsc2U7XG4gICAgJGRldGFpbHM6ICdbI3skdHlwZX1dIGAjeyRpdGVtfWAnO1xuXG4gICAgLy8gaWYgd2Uga25vdyB3aGF0J3Mgc3VwcG9zZWQgdG8gYmUgY29taW5nIG5leHTigKZcbiAgICBAaWYgJG5leHQge1xuXG4gICAgICAvLyBBZGQgdG8gdGhlIHJldHVybiBtYXBcbiAgICAgICRyZXR1cm46IG1hcC1tZXJnZSgkcmV0dXJuLCAoJG5leHQ6ICRpdGVtKSk7XG5cbiAgICAgIC8vIFJlc2V0IG5leHQgdG8gYGZhbHNlYFxuICAgICAgJG5leHQ6IGZhbHNlO1xuXG4gICAgfSBAZWxzZSB7IC8vIElmIHdlIGRvbid0IGtub3cgd2hhdCdzIHN1cHBvc2VkIHRvIGJlIGNvbWluZ+KAplxuXG4gICAgICAvLyBLZXl3b3Jkc+KAplxuICAgICAgQGlmICgkdHlwZSA9PSAnc3RyaW5nJykge1xuICAgICAgICAvLyBDaGVjayB0aGUgbWFwIGZvciBrZXl3b3Jkc+KAplxuICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJG9wdGlvbnMsICRpdGVtKSB7XG4gICAgICAgICAgJHNldHRpbmc6IG1hcC1nZXQoJG9wdGlvbnMsICRpdGVtKTtcblxuICAgICAgICAgIC8vIFNwcmVhZCBjb3VsZCBiZSBvbiB0aGUgc3BhbiBvciB0aGUgY29udGFpbmVy4oCmXG4gICAgICAgICAgQGlmICgkc2V0dGluZyA9PSAnc3ByZWFkJykgYW5kICgkb2YpIHtcbiAgICAgICAgICAgICRyZXR1cm46IG1hcC1tZXJnZSgkcmV0dXJuLCAoJ2NvbnRhaW5lci1zcHJlYWQnOiAkaXRlbSkpO1xuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgJHJldHVybjogbWFwLW1lcmdlKCRyZXR1cm4sICgkc2V0dGluZzogJGl0ZW0pKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgfSBAZWxzZSBpZiAoJGl0ZW0gPT0gJ2FsbCcpIHtcbiAgICAgICAgICAvLyBgQWxsYCBpcyBhIHNwYW4gc2hvcnRjdXRcbiAgICAgICAgICAkc3BhbjogJ2FsbCc7XG4gICAgICAgIH0gQGVsc2UgaWYgKCRpdGVtID09ICdhdCcpIHtcbiAgICAgICAgICAvLyBTb21lIGtleXdvcmRzIHNldHVwIHdoYXQncyBuZXh04oCmXG4gICAgICAgICAgJG5leHQ6ICdsb2NhdGlvbic7XG4gICAgICAgIH0gQGVsc2UgaWYgKCRpdGVtID09ICdzZXQtZ3V0dGVycycpIHtcbiAgICAgICAgICAkbmV4dDogJ2d1dHRlcnMnO1xuICAgICAgICB9IEBlbHNlIGlmICgkaXRlbSA9PSAnb2YnKSB7XG4gICAgICAgICAgJG9mOiB0cnVlO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAkZXJyb3I6IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgfSBAZWxzZSBpZiAoJHR5cGUgPT0gJ251bWJlcicpIG9yICgkdHlwZSA9PSAnbGlzdCcpIHsgLy8gTnVtYmVycyAmIGxpc3Rz4oCmXG5cbiAgICAgICAgQGlmIG5vdCAoJHNwYW4gb3IgJG9mKSB7XG4gICAgICAgICAgLy8gV2UgZG9uJ3QgaGF2ZSBhIHNwYW4sIGFuZCB3ZSdyZSBub3QgZXhwZWN0aW5nIGNvbnRleHTigKZcbiAgICAgICAgICAkc3BhbjogJGl0ZW07XG4gICAgICAgIH0gQGVsc2UgaWYgKCRvZikgYW5kIChub3QgJGNvbHVtbnMpIHtcbiAgICAgICAgICAvLyBXZSBhcmUgZXhwZWN0aW5nIGNvbnRleHTigKZcbiAgICAgICAgICAkY29sdW1uczogJGl0ZW07XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICRlcnJvcjogdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJGVycm9yOiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkZXJyb3Ige1xuICAgICAgQHJldHVybiBfc3VzeS1lcnJvcignI3skcGFyc2UtZXJyb3J9ICN7JGRldGFpbHN9JywgJ3N1c3ktcGFyc2UnKTtcbiAgICB9XG4gIH1cblxuICAvLyBJZiB3ZSBoYXZlIHNwYW4sIG1lcmdlIGl0IGluXG4gIEBpZiAkc3BhbiB7XG4gICAgJHJldHVybjogbWFwLW1lcmdlKCRyZXR1cm4sICgnc3Bhbic6ICRzcGFuKSk7XG4gIH1cblxuICAvLyBJZiB3ZSBoYXZlIGNvbHVtbnMsIG1lcmdlIHRoZW0gaW5cbiAgQGlmICRjb2x1bW5zIHtcbiAgICAkcmV0dXJuOiBtYXAtbWVyZ2UoJHJldHVybiwgKCdjb2x1bW5zJzogJGNvbHVtbnMpKTtcbiAgfVxuXG4gIC8vIFJldHVybiB0aGUgbWFwIG9mIHNldHRpbmdz4oCmXG4gIEByZXR1cm4gJHJldHVybjtcbn1cbiIsIi8vLyBTeW50YXggVXRpbGl0aWVzIGZvciBFeHRlbmRpbmcgU3VzeVxuLy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLy8gVGhlcmUgYXJlIG1hbnkgc3RlcHMgaW52b2x2ZWRcbi8vLyB3aGVuIHRyYW5zbGF0aW5nIGJldHdlZW4gdGhlIFN1c3kgc3ludGF4IGxheWVyLFxuLy8vIGFuZCB0aGUgU3UgY29yZSBtYXRoLlxuLy8vIFRoYXQgZW50aXJlIHByb2Nlc3MgY2FuIGJlIGNvbmRlbnNlZCB3aXRoIHRoZXNlIHR3byBmdW5jdGlvbnMuXG4vLy8gRm9yIGFueW9uZSB0aGF0IHdhbnRzIHRvIGFjY2VzcyB0aGUgZnVsbCBwb3dlciBvZiBTdXN5LFxuLy8vIGFuZCBidWlsZCB0aGVpciBvd24gcGx1Z2lucywgZnVuY3Rpb25zLCBvciBtaXhpbnMg4oCTXG4vLy8gdGhpcyBpcyB0aGUgcHJpbWFyeSBBUEkgZm9yIGNvbXBpbGluZyB1c2VyIGlucHV0LFxuLy8vIGFuZCBhY2Nlc3NpbmcgdGhlIGNvcmUgbWF0aC5cbi8vL1xuLy8vIFRoaXMgaXMgdGhlIHNhbWUgdGVjaG5pcXVlIHdlIHVzZSBpbnRlcm5hbGx5LFxuLy8vIHRvIGtlZXAgb3VyIEFQSSBsYXllciBzaW1wbGUgYW5kIGxpZ2h0LXdlaWdodC5cbi8vLyBFdmVyeSBmdW5jdGlvbiBhY2NlcHRzIHR3byBhcmd1bWVudHMsXG4vLy8gYSBcInNob3J0aGFuZFwiIGRlc2NyaXB0aW9uIG9mIHRoZSBzcGFuIG9yIGNvbnRleHQsXG4vLy8gYW5kIGFuIG9wdGlvbmFsIHNldHRpbmdzLW1hcCB0byBvdmVycmlkZSBnbG9iYWwgZGVmYXVsdHMuXG4vLy9cbi8vLyAtIFVzZSBgc3VzeS1jb21waWxlKClgIHRvIHBhcnNlLCBtZXJnZSwgYW5kIG5vcm1hbGl6ZVxuLy8vICAgYWxsIHRoZSB1c2VyIHNldHRpbmdzIGludG8gYSBzaW5nbGUgbWFwLlxuLy8vIC0gVGhlbiB1c2UgYHN1LWNhbGwoKWAgdG8gY2FsbCBvbmUgb2YgdGhlIGNvcmUgbWF0aCBmdW5jdGlvbnMsXG4vLy8gICB3aXRoIHdoYXRldmVyIGRhdGEgaXMgbmVlZGVkIGZvciB0aGF0IGZ1bmN0aW9uLlxuLy8vXG4vLy8gQGdyb3VwIHBsdWdpbi11dGlsc1xuLy8vIEBzZWUgc3VzeS1jb21waWxlXG4vLy8gQHNlZSBzdS1jYWxsXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gU3VzeSBBUEkgYGd1dHRlcmAgZnVuY3Rpb25cbi8vLyAgIEBmdW5jdGlvbiBzdXN5LWd1dHRlcihcbi8vLyAgICAgJGNvbnRleHQ6IHN1c3ktZ2V0KCdjb2x1bW5zJyksXG4vLy8gICAgICRjb25maWc6ICgpXG4vLy8gICApIHtcbi8vLyAgICAgLy8gY29tcGlsZSBhbmQgbm9ybWFsaXplIGFsbCB1c2VyIGFyZ3VtZW50cyBhbmQgZ2xvYmFsIHNldHRpbmdzXG4vLy8gICAgICRjb250ZXh0OiBzdXN5LWNvbXBpbGUoJGNvbnRleHQsICRjb25maWcsICdjb250ZXh0LW9ubHknKTtcbi8vLyAgICAgLy8gY2FsbCBgc3UtZ3V0dGVyYCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBkYXRhXG4vLy8gICAgIEByZXR1cm4gc3UtY2FsbCgnc3UtZ3V0dGVyJywgJGNvbnRleHQpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFNhbXBsZSBgc3BhbmAgbWl4aW4gZm9yIGZsb2F0ZWQgZ3JpZHNcbi8vLyAgIEBtaXhpbiBzcGFuKFxuLy8vICAgICAkc3Bhbixcbi8vLyAgICAgJGNvbmZpZzogKClcbi8vLyAgICkge1xuLy8vICAgICAkY29udGV4dDogc3VzeS1jb21waWxlKCRzcGFuLCAkY29uZmlnKTtcbi8vLyAgICAgd2lkdGg6IHN1LWNhbGwoJ3N1LXNwYW4nLCAkY29udGV4dCk7XG4vLy9cbi8vLyAgICAgQGlmIGluZGV4KCRzcGFuLCAnbGFzdCcpIHtcbi8vLyAgICAgICBmbG9hdDogcmlnaHQ7XG4vLy8gICAgIH0gQGVsc2Uge1xuLy8vICAgICAgIGZsb2F0OiBsZWZ0O1xuLy8vICAgICAgIG1hcmdpbi1yaWdodDogc3UtY2FsbCgnc3UtZ3V0dGVyJywgJGNvbnRleHQpO1xuLy8vICAgICB9XG4vLy8gICB9XG5cblxuXG4vLyBDb21waWxlXG4vLyAtLS0tLS0tXG4vLy8gU3VzeSdzIHN5bnRheCBsYXllciBoYXMgdmFyaW91cyBtb3ZpbmcgcGFydHMsXG4vLy8gd2l0aCBzeW50YXgtcGFyc2luZyBmb3IgdGhlIGdyaWQvc3BhbiBzaG9ydGhhbmQsXG4vLy8gYW5kIG5vcm1hbGl6YXRpb24gZm9yIGVhY2ggb2YgdGhlIHJlc3VsdGluZyB2YWx1ZXMuXG4vLy8gVGhlIGNvbXBpbGUgZnVuY3Rpb24gcm9sbHMgdGhpcyBhbGwgdG9nZXRoZXJcbi8vLyBpbiBhIHNpbmdsZSBjYWxsIOKAk1xuLy8vIGZvciBxdWljayBhY2Nlc3MgZnJvbSBvdXIgaW50ZXJuYWwgQVBJIGZ1bmN0aW9ucyxcbi8vLyBvciBhbnkgYWRkaXRpb25hbCBmdW5jdGlvbnMgYW5kIG1peGlucyB5b3UgYWRkIHRvIHlvdXIgcHJvamVjdC5cbi8vLyBQYXNzIHVzZXIgaW5wdXQgYW5kIGNvbmZpZ3VyYXRpb24gbWFwcyB0byB0aGUgY29tcGlsZXIsXG4vLy8gYW5kIGl0IHdpbGwgaGFuZCBiYWNrIGEgbWFwIG9mIHZhbHVlcyByZWFkeSBmb3IgU3UuXG4vLy8gQ29tYmluZSB0aGlzIHdpdGggdGhlIGBzdS1jYWxsYCBmdW5jdGlvblxuLy8vIHRvIHF1aWNrbHkgcGFyc2UsIG5vcm1hbGl6ZSwgYW5kIHByb2Nlc3MgZ3JpZCBjYWxjdWxhdGlvbnMuXG4vLy9cbi8vLyBAZ3JvdXAgcGx1Z2luLXV0aWxzXG4vLy8gQHNlZSBzdS1jYWxsXG4vLy9cbi8vLyBAcGFyYW0ge2xpc3QgfCBtYXB9ICRzaG9ydCBbbnVsbF0gLVxuLy8vICAgU2hvcnRoYW5kIGV4cHJlc3Npb24gdG8gZGVmaW5lIHRoZSB3aWR0aCBvZiB0aGUgc3Bhbixcbi8vLyAgIG9wdGlvbmFsbHkgY29udGFpbmluZzpcbi8vLyAgIC0gYSBjb3VudCwgbGVuZ3RoLCBvciBjb2x1bW4tbGlzdCBzcGFuO1xuLy8vICAgLSBgYXQgJG5gLCBgZmlyc3RgLCBvciBgbGFzdGAgbG9jYXRpb24gb24gYXN5bW1ldHJpY2FsIGdyaWRzO1xuLy8vICAgLSBgbmFycm93YCwgYHdpZGVgLCBvciBgd2lkZXJgIGZvciBvcHRpb25hbGx5IHNwcmVhZGluZ1xuLy8vICAgICBhY3Jvc3MgYWRqYWNlbnQgZ3V0dGVycztcbi8vLyAgIC0gYG9mICRuIDxzcHJlYWQ+YCBmb3IgYXZhaWxhYmxlIGdyaWQgY29sdW1uc1xuLy8vICAgICBhbmQgc3ByZWFkIG9mIHRoZSBjb250YWluZXJcbi8vLyAgICAgKHNwYW4gY291bnRzIGxpa2UgYG9mIDZgIGFyZSBvbmx5IHZhbGlkXG4vLy8gICAgIGluIHRoZSBjb250ZXh0IG9mIHN5bW1ldHJpY2FsIGdyaWRzKTtcbi8vLyAgIC0gYW5kIGBzZXQtZ3V0dGVycyAkbmAgdG8gb3ZlcnJpZGUgZ2xvYmFsIGd1dHRlciBzZXR0aW5nc1xuLy8vIEBwYXJhbSB7bWFwfSAkY29uZmlnIFtudWxsXSAtXG4vLy8gICBPcHRpb25hbCBtYXAgb2YgU3VzeSBncmlkIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3Ncbi8vLyBAcGFyYW0ge2Jvb2x9ICRjb250ZXh0LW9ubHkgW2ZhbHNlXSAtXG4vLy8gICBBbGxvdyB0aGUgcGFyc2VyIHRvIGlnbm9yZSBzcGFuIGFuZCBzcGFuLXNwcmVhZCB2YWx1ZXMsXG4vLy8gICBvbmx5IHBhcnNpbmcgY29udGV4dCBhbmQgY29udGFpbmVyLXNwcmVhZFxuLy8vXG4vLy8gQHJldHVybiB7bWFwfSAtXG4vLy8gICBQYXJzZWQgYW5kIG5vcm1hbGl6ZWQgbWFwIG9mIHNldHRpbmdzLFxuLy8vICAgYmFzZWQgb24gZ2xvYmFsIGFuZCBsb2NhbCBjb25maWd1cmF0aW9uLFxuLy8vICAgYWxvbmd3aXRoIHNob3J0aGFkIGFkanVzdG1lbnRzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtXG4vLy8gICAkdXNlci1pbnB1dDogMyB3aWRlIG9mIHN1c3ktcmVwZWF0KDYsIDEyMHB4KSBzZXQtZ3V0dGVycyAxMHB4O1xuLy8vICAgJGdyaWQtZGF0YTogc3VzeS1jb21waWxlKCR1c2VyLWlucHV0LCAkc3VzeSk7XG4vLy9cbi8vLyAgIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkZ3JpZC1kYXRhIHtcbi8vLyAgICAgLyogI3ska2V5fTogI3skdmFsdWV9LCAqL1xuLy8vICAgfVxuQGZ1bmN0aW9uIHN1c3ktY29tcGlsZShcbiAgJHNob3J0OiBudWxsLFxuICAkY29uZmlnOiBudWxsLFxuICAkY29udGV4dC1vbmx5OiBmYWxzZVxuKSB7XG4gIC8vIEdldCBhbmQgbm9ybWFsaXplIGNvbmZpZ1xuICAkY29uZmlnOiBpZigkY29uZmlnLCBzdXN5LXNldHRpbmdzKCRjb25maWcpLCBzdXN5LXNldHRpbmdzKCkpO1xuICAkbm9ybWFsLWNvbmZpZzogc3VzeS1ub3JtYWxpemUoJGNvbmZpZyk7XG5cbiAgLy8gUGFyc2UgYW5kIG5vcm1hbGl6ZSBzaG9ydGhhbmRcbiAgJG5vcm1hbC1zaG9ydDogKCk7XG5cbiAgQGlmICRzaG9ydCB7XG4gICAgQGlmICh0eXBlLW9mKCRzaG9ydCkgIT0gJ21hcCcpIGFuZCAobGVuZ3RoKCRzaG9ydCkgPiAwKSB7XG4gICAgICAkc2hvcnQ6IHN1c3ktcGFyc2UoJHNob3J0LCAkY29udGV4dC1vbmx5KTtcbiAgICB9XG5cbiAgICAkbm9ybWFsLXNob3J0OiBzdXN5LW5vcm1hbGl6ZSgkc2hvcnQsICRub3JtYWwtY29uZmlnKTtcbiAgfVxuXG4gIC8vIE1lcmdlIGFuZCByZXR1cm5cbiAgQHJldHVybiBtYXAtbWVyZ2UoJG5vcm1hbC1jb25maWcsICRub3JtYWwtc2hvcnQpO1xufVxuXG5cblxuLy8gQ2FsbFxuLy8gLS0tLVxuLy8vIFRoZSBTdXN5IHBhcnNpbmcgYW5kIG5vcm1hbGl6YXRpb24gcHJvY2Vzc1xuLy8vIHJlc3VsdHMgaW4gYSBtYXAgb2YgY29uZmlndXJhdGlvbiBzZXR0aW5ncyxcbi8vLyBtdWNoIGxpa2UgdGhlIGdsb2JhbCBgJHN1c3lgIHNldHRpbmdzIG1hcC5cbi8vLyBJbiBvcmRlciB0byBwYXNzIHRoYXQgaW5mb3JtYXRpb24gYWxvbmcgdG8gU3UgbWF0aCBmdW5jdGlvbnMsXG4vLy8gdGhlIHByb3BlciB2YWx1ZXMgaGF2ZSB0byBiZSBwaWNrZWQgb3V0LFxuLy8vIGFuZCBjb252ZXJ0ZWQgdG8gYXJndW1lbnRzLlxuLy8vXG4vLy8gVGhlIGBzdS1jYWxsYCBmdW5jdGlvbiBzdHJlYW1saW5lcyB0aGF0IHByb2Nlc3MsXG4vLy8gd2VlZGluZyBvdXQgdGhlIHVubmVjZXNzYXJ5IGRhdGEsXG4vLy8gYW5kIHBhc3NpbmcgdGhlIHJlc3QgYWxvbmcgdG8gU3UgaW4gdGhlIHByb3BlciBmb3JtYXQuXG4vLy8gQ29tYmluZSB0aGlzIHdpdGggYHN1c3ktY29tcGlsZWAgdG8gcXVpY2tseSBwYXJzZSxcbi8vLyBub3JtYWxpemUsIGFuZCBwcm9jZXNzIGdyaWQgY2FsY3VsYXRpb25zLlxuLy8vXG4vLy8gQGdyb3VwIHBsdWdpbi11dGlsc1xuLy8vXG4vLy8gQHJlcXVpcmUgc3Utc3BhblxuLy8vIEByZXF1aXJlIHN1LWd1dHRlclxuLy8vIEByZXF1aXJlIHN1LXNsaWNlXG4vLy8gQHNlZSBzdXN5LWNvbXBpbGVcbi8vL1xuLy8vIEBwYXJhbSB7J3N1LXNwYW4nIHwgJ3N1LWd1dHRlcicgfCAnc3Utc2xpY2UnfSAkbmFtZSAtXG4vLy8gICBOYW1lIG9mIHRoZSBTdSBtYXRoIGZ1bmN0aW9uIHRvIGNhbGwuXG4vLy8gQHBhcmFtIHttYXB9ICRjb25maWcgLVxuLy8vICAgUGFyc2VkIGFuZCBub3JtYWxpemVkIG1hcCBvZiBTdXN5IGNvbmZpZ3VyYXRpb24gc2V0dGluZ3Ncbi8vLyAgIHRvIHVzZSBmb3IgbWF0aC1mdW5jdGlvbiBhcmd1bWVudHMuXG4vLy9cbi8vLyBAcmV0dXJuIHsqfSAtXG4vLy8gICBSZXN1bHRzIG9mIHRoZSBmdW5jdGlvbiBiZWluZyBjYWxsZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC1cbi8vLyAgICR1c2VyLWlucHV0OiAzIHdpZGUgb2Ygc3VzeS1yZXBlYXQoNiwgMTIwcHgpIHNldC1ndXR0ZXJzIDEwcHg7XG4vLy8gICAkZ3JpZC1kYXRhOiBzdXN5LWNvbXBpbGUoJHVzZXItaW5wdXQsICRzdXN5KTtcbi8vL1xuLy8vICAgLnN1LXNwYW4ge1xuLy8vICAgICB3aWR0aDogc3UtY2FsbCgnc3Utc3BhbicsICRncmlkLWRhdGEpO1xuLy8vICAgfVxuQGZ1bmN0aW9uIHN1LWNhbGwoXG4gICRuYW1lLFxuICAkY29uZmlnXG4pIHtcbiAgJGdyaWQtZnVuY3Rpb24tYXJnczogKFxuICAgICdzdS1zcGFuJzogKCdzcGFuJywgJ2NvbHVtbnMnLCAnZ3V0dGVycycsICdzcHJlYWQnLCAnY29udGFpbmVyLXNwcmVhZCcsICdsb2NhdGlvbicpLFxuICAgICdzdS1ndXR0ZXInOiAoJ2NvbHVtbnMnLCAnZ3V0dGVycycsICdjb250YWluZXItc3ByZWFkJyksXG4gICAgJ3N1LXNsaWNlJzogKCdzcGFuJywgJ2NvbHVtbnMnLCAnbG9jYXRpb24nKSxcbiAgKTtcblxuICAkYXJnczogbWFwLWdldCgkZ3JpZC1mdW5jdGlvbi1hcmdzLCAkbmFtZSk7XG5cbiAgQGlmIG5vdCAkYXJncyB7XG4gICAgJG9wdGlvbnM6ICdUcnkgb25lIG9mIHRoZXNlOiAje21hcC1rZXlzKCRncmlkLWZ1bmN0aW9uLWFyZ3MpfSc7XG4gICAgQHJldHVybiBfc3VzeS1lcnJvcihcbiAgICAgICcjeyRuYW1lfSBpcyBub3QgYSBwdWJsaWMgU3UgZnVuY3Rpb24uICN7JG9wdGlvbnN9JyxcbiAgICAgICdzdS1jYWxsJyk7XG4gIH1cblxuICAkY2FsbDogaWYoZnVuY3Rpb24tZXhpc3RzKCdnZXQtZnVuY3Rpb24nKSwgZ2V0LWZ1bmN0aW9uKCRuYW1lKSwgJG5hbWUpO1xuICAkb3V0cHV0OiAoKTtcblxuICBAZWFjaCAkYXJnIGluICRhcmdzIHtcbiAgICAkdmFsdWU6IG1hcC1nZXQoJGNvbmZpZywgJGFyZyk7XG4gICAgJG91dHB1dDogaWYoJHZhbHVlLCBtYXAtbWVyZ2UoJG91dHB1dCwgKCRhcmc6ICR2YWx1ZSkpLCAkb3V0cHV0KTtcbiAgfVxuXG4gIEByZXR1cm4gY2FsbCgkY2FsbCwgJG91dHB1dC4uLik7XG59XG4iLCIvLy8gU3VzeTMgQVBJIEZ1bmN0aW9uc1xuLy8vID09PT09PT09PT09PT09PT09PT1cbi8vLyBUaGVzZSB0aHJlZSBmdW5jdGlvbnMgZm9ybSB0aGUgY29yZSBvZiBTdXN5J3Ncbi8vLyBsYXlvdXQtYnVpbGRpbmcgZ3JpZCBBUEkuXG4vLy9cbi8vLyAtIFVzZSBgc3BhbigpYCBhbmQgYGd1dHRlcigpYCB0byByZXR1cm4gYW55IGdyaWQtd2lkdGgsXG4vLy8gICBhbmQgYXBwbHkgdGhlIHJlc3VsdHMgd2hlcmV2ZXIgeW91IG5lZWQgdGhlbTpcbi8vLyAgIENTUyBgd2lkdGhgLCBgbWFyZ2luYCwgYHBhZGRpbmdgLCBgZmxleC1iYXNpc2AsIGB0cmFuc2Zvcm1gLCBldGMuXG4vLy8gLSBGb3IgYXN5bW1ldHJpY2FsLWZsdWlkIGdyaWRzLFxuLy8vICAgYHNsaWNlKClgIGNhbiBoZWxwIG1hbmFnZSB5b3VyIG5lc3RpbmcgY29udGV4dC5cbi8vL1xuLy8vIEFsbCB0aHJlZSBmdW5jdGlvbnMgY29tZSB3aXRoIGFuIHVucHJlZml4ZWQgYWxpYXMgYnkgZGVmYXVsdCxcbi8vLyB1c2luZyB0aGUgYHN1c3lgIGltcG9ydC5cbi8vLyBJbXBvcnQgdGhlIGBzdXN5LXByZWZpeGAgcGFydGlhbCBpbnN0ZWFkLFxuLy8vIGlmIHlvdSBvbmx5IG9ubHkgd2FudCBwcmVmaXhlZCB2ZXJzaW9ucyBvZiB0aGUgQVBJLlxuLy8vXG4vLy8gVGhpcyBpcyBhIHRoaW4gc3ludGF4LXN1Z2FyIHNoZWxsIGFyb3VuZFxuLy8vIHRoZSBcIlN1XCIgY29yZS1tYXRoIGZ1bmN0aW9uczogYHN1LXNwYW5gLCBgc3UtZ3V0dGVyYCwgYW5kIGBzdS1zbGljZWAuXG4vLy8gSWYgeW91IHByZWZlciB0aGUgbW9yZSBjb25zdHJhaW5lZCBzeW50YXggb2YgdGhlIG1hdGggZW5naW5lLFxuLy8vIHlvdSBhcmUgd2VsY29tZSB0byB1c2UgdGhvc2UgZnVuY3Rpb25zIGluc3RlYWQuXG4vLy9cbi8vLyBAZ3JvdXAgYXBpXG4vLy8gQHNlZSBzdXN5LXNwYW5cbi8vLyBAc2VlIHN1c3ktZ3V0dGVyXG4vLy8gQHNlZSBzdXN5LXNsaWNlXG4vLy8gQHNlZSBzdS1zcGFuXG4vLy8gQHNlZSBzdS1ndXR0ZXJcbi8vLyBAc2VlIHN1LXNsaWNlXG5cblxuXG4vLy8gIyMgU2hvcnRoYW5kXG4vLy9cbi8vLyBBbGwgZnVuY3Rpb25zIGRyYXcgb24gdGhlIHNhbWUgc2hvcnRoYW5kIHN5bnRheCBpbiB0d28gcGFydHMsXG4vLy8gc2VwZXJhdGVkIGJ5IHRoZSB3b3JkIGBvZmAuXG4vLy9cbi8vLyAjIyMgU3BhbiBTeW50YXg6IGA8d2lkdGg+YCBbYDxsb2NhdGlvbj5gIGA8c3ByZWFkPmBdXG4vLy8gVGhlIGZpcnN0IHBhcnQgZGVzY3JpYmVzIHRoZVxuLy8vICoqc3BhbioqIHdpZHRoLCBsb2NhdGlvbiwgYW5kIHNwcmVhZCBpbiBhbnkgb3JkZXIuXG4vLy8gT25seSB0aGUgd2lkdGggaXMgcmVxdWlyZWQ6XG4vLy9cbi8vLyAtIGBzcGFuKDIpYCB3aWxsIHJldHVybiB0aGUgd2lkdGggb2YgMiBjb2x1bW5zLlxuLy8vIC0gYHNwYW4oMyB3aWRlKWAgd2lsbCByZXR1cm4gMy1jb2x1bW5zLCB3aXRoIGFuIGFkZGl0aW9uYWwgZ3V0dGVyLlxuLy8vIC0gbG9jYXRpb24gaXMgb25seSBuZWVkZWQgd2l0aCBhc3ltbWV0cmljYWwgZ3JpZHMsXG4vLy8gICB3aGVyZSBgc3BhbigzIGF0IDIpYCB3aWxsIHJldHVybiB0aGUgd2lkdGggb2Zcbi8vLyAgIHNwZWNpZmljIGNvbHVtbnMgb24gdGhlIGdyaWQuXG4vLy8gICBTaW5jZSB0aGVzZSBhcmUgZnVuY3Rpb25zLCB0aGV5IHdpbGwgbm90IGhhbmRsZSBwbGFjZW1lbnQgZm9yIHlvdS5cbi8vL1xuLy8vICMjIyBDb250ZXh0IFN5bnRheDogYFtvZiA8Y29sdW1ucz4gPGNvbnRhaW5lci1zcHJlYWQ+IDxndXR0ZXJzPl1gXG4vLy8gVGhlIHNlY29uZCBoYWxmIG9mIFN1c3kncyBzaG9ydGhhbmRcbi8vLyBkZXNjcmliZXMgdGhlIGdyaWQtKipjb250ZXh0Kiog4oCTXG4vLy8gYXZhaWxhYmxlIGNvbHVtbnMsIGNvbnRhaW5lci1zcHJlYWQsIGFuZCBvcHRpb25hbCBndXR0ZXIgb3ZlcnJpZGUg4oCTXG4vLy8gaW4gYW55IG9yZGVyLlxuLy8vIEFsbCBvZiB0aGVzZSBzZXR0aW5ncyBoYXZlIGdsb2JhbGx5LWRlZmluZWQgZGVmYXVsdHM6XG4vLy9cbi8vLyAtIGBzcGFuKDIgb2YgNilgIHdpbGwgc2V0IHRoZSBjb250ZXh0IHRvXG4vLy8gICBhIHNsaWNlIG9mIDYgY29sdW1ucyBmcm9tIHRoZSBnbG9iYWwgZ3JpZC5cbi8vLyAgIE1vcmUgZGV0YWlscyBiZWxvdy5cbi8vLyAtIGBzcGFuKDIgb2YgMTIgd2lkZSlgIGNoYW5nZXMgdGhlIGNvbnRhaW5lci1zcHJlYWRcbi8vLyAgIGFzIHdlbGwgYXMgdGhlIGNvbHVtbi1jb250ZXh0LlxuLy8vIC0gYHNwYW4oMiBvZiAxMiBzZXQtZ3V0dGVycyAwLjVlbSlgXG4vLy8gICB3aWxsIG92ZXJyaWRlIHRoZSBnbG9iYWwgZ3V0dGVycyBzZXR0aW5nXG4vLy8gICBmb3IgdGhpcyBvbmUgY2FsY3VsYXRpb24uXG4vLy9cbi8vLyBBIHNpbmdsZSB1bml0bGVzcyBudW1iZXIgZm9yIGBjb2x1bW5zYFxuLy8vIHdpbGwgYmUgdHJlYXRlZCBhcyBhIHNsaWNlIG9mIHRoZSBwYXJlbnQgZ3JpZC5cbi8vLyBPbiBhIGdyaWQgd2l0aCBgY29sdW1uczogc3VzeS1yZXBlYXQoMTIsIDEyMHB4KWAsXG4vLy8gdGhlIHNob3J0aGFuZCBgb2YgNGAgd2lsbCB1c2UgdGhlIHBhcmVudCBgMTIwcHhgIGNvbHVtbi13aWR0aC5cbi8vLyBZb3UgY2FuIGFsc28gYmUgbW9yZSBleHBsaWNpdCxcbi8vLyBhbmQgc2F5IGBvZiBzdXN5LXJlcGVhdCg0LCAxMDBweClgLlxuLy8vIElmIHlvdSBhcmUgdXNpbmcgYXN5bW1ldHJpY2FsIGdyaWRzLFxuLy8vIGxpa2UgYGNvbHVtbnM6ICgxIDEgMiAzIDUgOClgLFxuLy8vIFN1c3kgY2FuJ3Qgc2xpY2UgaXQgZm9yIHlvdSB3aXRob3V0IGtub3dpbmcgd2hpY2ggY29sdW1ucyB5b3Ugd2FudC5cbi8vLyBUaGUgYHNsaWNlYCBmdW5jdGlvbiBhY2NlcHRzIGV4YWN0bHkgdGhlIHNhbWUgc3ludGF4IGFzIGBzcGFuYCxcbi8vLyBidXQgcmV0dXJucyBhIGxpc3Qgb2YgY29sdW1ucyByYXRoZXIgdGhhbiBhIHdpZHRoLlxuLy8vIFVzZSBpdCBpbiB5b3VyIGNvbnRleHQgbGlrZSBgb2Ygc2xpY2UoZmlyc3QgMylgLlxuLy8vXG4vLy8gQGdyb3VwIGFwaVxuXG5cblxuLy8gU3VzeSBTcGFuXG4vLyAtLS0tLS0tLS1cbi8vLyBUaGlzIGlzIHRoZSBwcmltYXJ5IGZ1bmN0aW9uIGluIFN1c3kg4oCUXG4vLy8gdXNlZCB0byByZXR1cm4gdGhlIHdpZHRoIG9mIGEgc3BhbiBhY3Jvc3Mgb25lIG9yIG1vcmUgY29sdW1ucyxcbi8vLyBhbmQgYW55IHJlbGV2YW50IGd1dHRlcnMgYWxvbmcgdGhlIHdheS5cbi8vLyBXaXRoIHRoZSBkZWZhdWx0IHNldHRpbmdzLFxuLy8vIGBzcGFuKDMpYCB3aWxsIHJldHVybiB0aGUgd2lkdGggb2YgMyBjb2x1bW5zLFxuLy8vIGFuZCB0aGUgMiBpbnRlcm1lZGlhdGUgZ3V0dGVycy5cbi8vLyBUaGlzIGNhbiBiZSB1c2VkIHRvIHNldCB0aGUgYHdpZHRoYCBwcm9wZXJ0eSBvZiBncmlkIGVsZW1lbnRzLFxuLy8vIG9yIGBtYXJnaW5gIGFuZCBgcGFkZGluZ2Bcbi8vLyB0byBwdXNoLCBwdWxsLCBhbmQgcGFkIHlvdXIgZWxlbWVudHMuXG4vLy9cbi8vLyAtIFRoaXMgaXMgYSB0aGluIHN5bnRheC1zdWdhciBzaGVsbCBhcm91bmRcbi8vLyAgIHRoZSBjb3JlLW1hdGggYHN1LXNwYW4oKWAgZnVuY3Rpb24uXG4vLy8gLSBUaGUgdW4tcHJlZml4ZWQgYWxpYXMgYHNwYW4oKWAgaXMgYXZhaWxhYmxlIGJ5IGRlZmF1bHQuXG4vLy9cbi8vLyBAZ3JvdXAgYXBpXG4vLy8gQHNlZSBzdS1zcGFuXG4vLy8gQHNlZSAkc3VzeVxuLy8vXG4vLy8gQHBhcmFtIHtsaXN0fSAkc3BhbiAtXG4vLy8gICBTaG9ydGhhbmQgZXhwcmVzc2lvbiB0byBkZWZpbmUgdGhlIHdpZHRoIG9mIHRoZSBzcGFuLFxuLy8vICAgb3B0aW9uYWxseSBjb250YWluaW5nOlxuLy8vICAgLSBhIGNvdW50LCBsZW5ndGgsIG9yIGNvbHVtbi1saXN0IHNwYW4uXG4vLy8gICAtIGBhdCAkbmAsIGBmaXJzdGAsIG9yIGBsYXN0YCBsb2NhdGlvbiBvbiBhc3ltbWV0cmljYWwgZ3JpZHMsXG4vLy8gICAgIHdoZXJlIGBhdCAxID09IGZpcnN0YCxcbi8vLyAgICAgYW5kIGBsYXN0YCB3aWxsIGNhbGN1bGF0ZSB0aGUgcHJvcGVyIGxvY2F0aW9uXG4vLy8gICAgIGJhc2VkIG9uIGNvbHVtbnMgYW5kIHNwYW4uXG4vLy8gICAtIGBuYXJyb3dgLCBgd2lkZWAsIG9yIGB3aWRlcmAgZm9yIG9wdGlvbmFsbHkgc3ByZWFkaW5nXG4vLy8gICAgIGFjcm9zcyBhZGphY2VudCBndXR0ZXJzLlxuLy8vICAgLSBgb2YgJG4gPHNwcmVhZD5gIGZvciBhdmFpbGFibGUgZ3JpZCBjb2x1bW5zXG4vLy8gICAgIGFuZCBzcHJlYWQgb2YgdGhlIGNvbnRhaW5lci5cbi8vLyAgICAgU3BhbiBjb3VudHMgbGlrZSBgb2YgNmAgYXJlIHZhbGlkXG4vLy8gICAgIGluIHRoZSBjb250ZXh0IG9mIHN5bW1ldHJpY2FsIGdyaWRzLFxuLy8vICAgICB3aGVyZSBTdXN5IGNhbiBzYWZlbHkgaW5mZXIgYSBzbGljZSBvZiB0aGUgcGFyZW50IGNvbHVtbnMuXG4vLy8gICAtIGFuZCBgc2V0LWd1dHRlcnMgJG5gIHRvIG92ZXJyaWRlIGdsb2JhbCBndXR0ZXIgc2V0dGluZ3MuXG4vLy9cbi8vLyBAcGFyYW0ge21hcH0gJGNvbmZpZyBbKCldIC1cbi8vLyAgIE9wdGlvbmFsIG1hcCBvZiBTdXN5IGdyaWQgY29uZmlndXJhdGlvbiBzZXR0aW5ncy5cbi8vLyAgIFNlZSBgJHN1c3lgIGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuXG4vLy9cbi8vLyBAcmV0dXJuIHtsZW5ndGh9IC1cbi8vLyAgIENhbGN1bGF0ZWQgbGVuZ3RoIHZhbHVlLCB1c2luZyB0aGUgdW5pdHMgZ2l2ZW4sXG4vLy8gICBvciBjb252ZXJ0aW5nIHRvIGAlYCBmb3IgZnJhY3Rpb24tYmFzZWQgZ3JpZHMsXG4vLy8gICBvciBhIGZ1bGwgYGNhbGNgIGZ1bmN0aW9uIHdoZW4gdW5pdHMvZnJhY3Rpb25zXG4vLy8gICBhcmUgbm90IGNvbXBhcmFibGUgb3V0c2lkZSB0aGUgYnJvd3Nlci5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBzcGFuIGhhbGYgdGhlIGdyaWRcbi8vLyAgIC5mb28ge1xuLy8vICAgICAvLyB0aGUgcmVzdWx0IGlzIGEgYml0IHVuZGVyIDUwJSB0byBhY2NvdW50IGZvciBndXR0ZXJzXG4vLy8gICAgIHdpZHRoOiBzdXN5LXNwYW4oNiBvZiAxMik7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gc3BhbiBhIHNwZWNpZmljIHNlZ21lbnQgb2YgYXN5bW1ldHJpY2FsIGdyaWRcbi8vLyAgIC5mb28ge1xuLy8vICAgICB3aWR0aDogc3VzeS1zcGFuKDMgYXQgMyBvZiAoMSAyIDMgNSA4KSk7XG4vLy8gICB9XG5AZnVuY3Rpb24gc3VzeS1zcGFuKFxuICAkc3BhbixcbiAgJGNvbmZpZzogKClcbikge1xuICAkb3V0cHV0OiBzdXN5LWNvbXBpbGUoJHNwYW4sICRjb25maWcpO1xuXG4gIEBpZiBtYXAtZ2V0KCRvdXRwdXQsICdzcGFuJykge1xuICAgIEByZXR1cm4gc3UtY2FsbCgnc3Utc3BhbicsICRvdXRwdXQpO1xuICB9XG5cbiAgJGFjdHVhbDogJ1sje3R5cGUtb2YoJHNwYW4pfV0gYCN7aW5zcGVjdCgkc3Bhbil9YCc7XG4gIEByZXR1cm4gX3N1c3ktZXJyb3IoXG4gICAgJ1VuYWJsZSB0byBkZXRlcm1pbmUgc3BhbiB2YWx1ZSBmcm9tICN7JGFjdHVhbH0uJyxcbiAgICAnc3VzeS1zcGFuJyk7XG59XG5cblxuXG4vLyBTdXN5IEd1dHRlclxuLy8gLS0tLS0tLS0tLS1cbi8vLyBUaGUgZ3V0dGVyIGZ1bmN0aW9uIHJldHVybnNcbi8vLyB0aGUgd2lkdGggb2YgYSBzaW5nbGUgZ3V0dGVyIG9uIHlvdXIgZ3JpZCxcbi8vLyB0byBiZSBhcHBsaWVkIHdoZXJlIHlvdSBzZWUgZml0IOKAk1xuLy8vIG9uIGBtYXJnaW5zYCwgYHBhZGRpbmdgLCBgdHJhbnNmb3JtYCwgb3IgZWxlbWVudCBgd2lkdGhgLlxuLy8vXG4vLy8gLSBUaGlzIGlzIGEgdGhpbiBzeW50YXgtc3VnYXIgc2hlbGwgYXJvdW5kXG4vLy8gICB0aGUgY29yZS1tYXRoIGBzdS1ndXR0ZXIoKWAgZnVuY3Rpb24uXG4vLy8gLSBUaGUgdW4tcHJlZml4ZWQgYWxpYXMgYGd1dHRlcigpYCBpcyBhdmFpbGFibGUgYnkgZGVmYXVsdC5cbi8vL1xuLy8vIEBncm91cCBhcGlcbi8vLyBAc2VlIHN1LWd1dHRlclxuLy8vIEBzZWUgJHN1c3lcbi8vL1xuLy8vIEBwYXJhbSB7bGlzdCB8IG51bWJlcn0gJGNvbnRleHQgW251bGxdIC1cbi8vLyAgIE9wdGlvbmFsIGNvbnRleHQgZm9yIG5lc3RlZCBndXR0ZXJzLFxuLy8vICAgaW5jbHVkaW5nIHNob3J0aGFuZCBmb3Jcbi8vLyAgIGBjb2x1bW5zYCwgYGd1dHRlcnNgLCBhbmQgYGNvbnRhaW5lci1zcHJlYWRgXG4vLy8gICAoYWRkaXRpb25hbCBzaG9ydGhhbmQgd2lsbCBiZSBpZ25vcmVkKVxuLy8vXG4vLy8gQHBhcmFtIHttYXB9ICRjb25maWcgWygpXSAtXG4vLy8gICBPcHRpb25hbCBtYXAgb2YgU3VzeSBncmlkIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MuXG4vLy8gICBTZWUgYCRzdXN5YCBkb2N1bWVudGF0aW9uIGZvciBkZXRhaWxzLlxuLy8vXG4vLy8gQHJldHVybiB7bGVuZ3RofSAtXG4vLy8gICBXaWR0aCBvZiBhIGd1dHRlciBhcyBgJWAgb2YgY3VycmVudCBjb250ZXh0LFxuLy8vICAgb3IgaW4gdGhlIHVuaXRzIGRlZmluZWQgYnkgYGNvbHVtbi13aWR0aGAgd2hlbiBhdmFpbGFibGVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBhZGQgZ3V0dGVycyBiZWZvcmUgb3IgYWZ0ZXIgYW4gZWxlbWVudFxuLy8vICAgLmZsb2F0cyB7XG4vLy8gICAgIGZsb2F0OiBsZWZ0O1xuLy8vICAgICB3aWR0aDogc3BhbigzIG9mIDYpO1xuLy8vICAgICBtYXJnaW4tbGVmdDogZ3V0dGVyKG9mIDYpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIGFkZCBndXR0ZXJzIHRvIHBhZGRpbmdcbi8vLyAgIC5mbGV4Ym94IHtcbi8vLyAgICAgZmxleDogMSAxIHNwYW4oMyB3aWRlIG9mIDYgd2lkZSk7XG4vLy8gICAgIHBhZGRpbmc6IGd1dHRlcihvZiA2KSAvIDI7XG4vLy8gICB9XG4vLy9cbkBmdW5jdGlvbiBzdXN5LWd1dHRlcihcbiAgJGNvbnRleHQ6IG51bGwsXG4gICRjb25maWc6ICgpXG4pIHtcbiAgJGNvbnRleHQ6IHN1c3ktY29tcGlsZSgkY29udGV4dCwgJGNvbmZpZywgJ2NvbnRleHQtb25seScpO1xuXG4gIEByZXR1cm4gc3UtY2FsbCgnc3UtZ3V0dGVyJywgJGNvbnRleHQpO1xufVxuXG5cblxuLy8gU3VzeSBTbGljZVxuLy8gLS0tLS0tLS0tLVxuLy8vIFdvcmtpbmcgd2l0aCBhc3ltbWV0cmljYWwgZ3JpZHMgKHVuLWVxdWFsIGNvbHVtbiB3aWR0aHMpXG4vLy8gY2FuIGJlIGNoYWxsZW5naW5nIOKAk8KgXG4vLy8gZXhwZWNpYWxseSB3aGVuIHRoZXkgaW52b2x2ZSBmbHVpZC9mcmFjdGlvbmFsIGVsZW1lbnRzLlxuLy8vIERlc2NyaWJpbmcgYSBjb250ZXh0IGBvZiAoMTVlbSA2ZW0gNmVtIDZlbSAxNWVtKWAgaXMgYSBsb3Rcbi8vLyB0byBwdXQgaW5zaWRlIHRoZSBzcGFuIG9yIGd1dHRlciBmdW5jdGlvbiBzaG9ydGhhbmQuXG4vLy8gVGhpcyBzbGljZSBmdW5jdGlvbiByZXR1cm5zIGEgc3ViLXNsaWNlIG9mIGFzeW1tZXRyaWNhbCBjb2x1bW5zIHRvIHVzZVxuLy8vIGZvciBhIG5lc3RlZCBjb250ZXh0LlxuLy8vIGBzbGljZSgzIGF0IDIpYCB3aWxsIGdpdmUgeW91IGEgc3Vic2V0IG9mIHRoZSBnbG9iYWwgZ3JpZCxcbi8vLyBzcGFubmluZyAzIGNvbHVtbnMsIHN0YXJ0aW5nIHdpdGggdGhlIHNlY29uZC5cbi8vL1xuLy8vIC0gVGhpcyBpcyBhIHRoaW4gc3ludGF4LXN1Z2FyIHNoZWxsIGFyb3VuZFxuLy8vICAgdGhlIGNvcmUtbWF0aCBgc3Utc2xpY2UoKWAgZnVuY3Rpb24uXG4vLy8gLSBUaGUgdW4tcHJlZml4ZWQgYWxpYXMgYHNsaWNlKClgIGlzIGF2YWlsYWJsZSBieSBkZWZhdWx0LlxuLy8vXG4vLy8gQGdyb3VwIGFwaVxuLy8vIEBzZWUgc3Utc2xpY2Vcbi8vLyBAc2VlICRzdXN5XG4vLy9cbi8vLyBAcGFyYW0ge2xpc3R9ICRzcGFuIC1cbi8vLyAgIFNob3J0aGFuZCBleHByZXNzaW9uIHRvIGRlZmluZSB0aGUgc3Vic2V0IHNwYW4sIG9wdGlvbmFsbHkgY29udGFpbmluZzpcbi8vLyAgIC0gYGF0ICRuYCwgYGZpcnN0YCwgb3IgYGxhc3RgIGxvY2F0aW9uIG9uIGFzeW1tZXRyaWNhbCBncmlkcztcbi8vLyAgIC0gYG9mICRuIDxzcHJlYWQ+YCBmb3IgYXZhaWxhYmxlIGdyaWQgY29sdW1uc1xuLy8vICAgICBhbmQgc3ByZWFkIG9mIHRoZSBjb250YWluZXJcbi8vLyAgICAgLSBTcGFuLWNvdW50cyBsaWtlIGBvZiA2YCBhcmUgb25seSB2YWxpZFxuLy8vICAgICAgIGluIHRoZSBjb250ZXh0IG9mIHN5bW1ldHJpY2FsIGdyaWRzXG4vLy8gICAgIC0gVmFsaWQgc3ByZWFkcyBpbmNsdWRlIGBuYXJyb3dgLCBgd2lkZWAsIG9yIGB3aWRlcmBcbi8vL1xuLy8vIEBwYXJhbSB7bWFwfSAkY29uZmlnIFsoKV0gLVxuLy8vICAgT3B0aW9uYWwgbWFwIG9mIFN1c3kgZ3JpZCBjb25maWd1cmF0aW9uIHNldHRpbmdzLlxuLy8vICAgU2VlIGAkc3VzeWAgZG9jdW1lbnRhdGlvbiBmb3IgZGV0YWlscy5cbi8vL1xuLy8vIEByZXR1cm4ge2xpc3R9IC1cbi8vLyAgIFN1YnNldCBsaXN0IG9mIGNvbHVtbnMgZm9yIHVzZSBmb3IgYSBuZXN0ZWQgY29udGV4dFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFJldHVybiBhIG5lc3RlZCBzZWdtZW50IG9mIGFzeW1tZXRyaWNhbCBncmlkXG4vLy8gICAkY29udGV4dDogc3VzeS1zbGljZSgzIGF0IDMgb2YgKDEgMiAzIDUgOCkpO1xuLy8vICAgLyogJGNvbnRleHQ6ICN7JGNvbnRleHR9OyAqL1xuQGZ1bmN0aW9uIHN1c3ktc2xpY2UoXG4gICRzcGFuLFxuICAkY29uZmlnOiAoKVxuKSB7XG4gICRzcGFuOiBzdXN5LWNvbXBpbGUoJHNwYW4sICRjb25maWcpO1xuXG4gIEByZXR1cm4gc3UtY2FsbCgnc3Utc2xpY2UnLCAkc3Bhbik7XG59XG5cblxuXG4vLy8gIyMgQnVpbGRpbmcgR3JpZHNcbi8vLyBUaGUgd2ViIGhhcyBjb21lIGEgbG9uZyB3YXlcbi8vLyBzaW5jZSB0aGUgZGF5cyBvZiBkb3VibGUtbWFyZ2luLWhhY2tzXG4vLy8gYW5kIGluY29uc2lzdGVudCBzdWJwaXhlbCByb3VuZGluZy5cbi8vLyBJbiBhZGRpdGlvbiB0byBmbG9hdHMgYW5kIHRhYmxlcyxcbi8vLyB3ZSBjYW4gbm93IHVzZSBtdWNoIG1vcmUgcG93ZXJmdWwgdG9vbHMsXG4vLy8gbGlrZSBmbGV4Ym94IGFuZCBDU1MgZ3JpZCxcbi8vLyB0byBidWlsZCBtb3JlIGludGVyZXN0aW5nIGFuZCByZXNwb25zaXZlIGxheW91dHMuXG4vLy9cbi8vLyBXaXRoIFN1c3kzLCB3ZSBob3BlIHlvdSdsbCBzdGFydCBtb3ZpbmcgaW4gdGhhdCBkaXJlY3Rpb24uXG4vLy8gWW91IGNhbiBzdGlsbCBidWlsZCBjbGFzc2ljIDEyLWNvbHVtbiBHcmlkIFN5c3RlbXMsXG4vLy8gYW5kIHdlJ2xsIGhlbHAgeW91IGdldCB0aGVyZSxcbi8vLyBidXQgU3VzeTMgaXMgcHJpbWFyaWx5IGRlc2lnbmVkIGZvciBhIGdyaWQtbWF0aC1vbi1kZW1hbmRcbi8vLyBhcHByb2FjaCB0byBsYXlvdXQ6XG4vLy8gYXBwbHlpbmcgb3VyIGZ1bmN0aW9ucyBvbmx5IHdoZXJlIHlvdSByZWFsbHkgbmVlZCBncmlkIG1hdGguXG4vLy8gUmVhZCB0aGUgW2ludHJvIGFydGljbGUgYnkgT2RkQmlyZF1bd2VsY29tZV0gZm9yIG1vcmUgZGV0YWlscy5cbi8vL1xuLy8vIFt3ZWxjb21lXTogaHR0cDovL29kZGJpcmQubmV0LzIwMTcvMDYvMjgvc3VzeTMvXG4vLy9cbi8vLyBAZ3JvdXAgYXBpXG4vLy8gQGxpbmsgaHR0cDovL29kZGJpcmQubmV0LzIwMTcvMDYvMjgvc3VzeTMvIEFydGljbGU6IFdlbGNvbWUgdG8gU3VzeTNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBmbG9hdHNcbi8vLyAgIC5mbG9hdCB7XG4vLy8gICAgIHdpZHRoOiBzcGFuKDMpO1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IGd1dHRlcigpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIGZsZXhib3hcbi8vLyAgIC5mbGV4Ym94IHtcbi8vLyAgICAgZmxleDogMSAxIHNwYW4oMyk7XG4vLy8gICAgIC8vIGhhbGYgYSBndXR0ZXIgb24gZWl0aGVyIHNpZGXigKZcbi8vLyAgICAgcGFkZGluZzogMCBndXR0ZXIoKSAvIDI7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gcHVzaGluZyBhbmQgcHVsbGluZ1xuLy8vICAgLnB1c2gtMyB7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiBzcGFuKDMgd2lkZSk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5wdWxsLTMge1xuLy8vICAgICBtYXJnaW4tbGVmdDogMCAtIHNwYW4oMyB3aWRlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBidWlsZGluZyBhbiBhdHRyaWJ1dGUgc3lzdGVtXG4vLy8gICAvLyBtYXJrdXAgZXhhbXBsZTogPGRpdiBkYXRhLXNwYW49XCJsYXN0IDNcIj48L2Rpdj5cbi8vLyAgIFtkYXRhLXNwYW5dIHtcbi8vLyAgICAgZmxvYXQ6IGxlZnQ7XG4vLy9cbi8vLyAgICAgJjpub3QoW2RhdGEtc3Bhbio9J2xhc3QnXSkge1xuLy8vICAgICAgIG1hcmdpbi1yaWdodDogZ3V0dGVyKCk7XG4vLy8gICAgIH1cbi8vLyAgIH1cbi8vL1xuLy8vICAgQGZvciAkc3BhbiBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoc3VzeS1nZXQoJ2NvbHVtbnMnKSkge1xuLy8vICAgICBbZGF0YS1zcGFuKj0nI3skc3Bhbn0nXSB7XG4vLy8gICAgICAgd2lkdGg6IHNwYW4oJHNwYW4pO1xuLy8vICAgICB9XG4vLy8gICB9XG4iLCIvLyBVbnByZWZpeCBTdXN5XG4vLyA9PT09PT09PT09PT09XG5cblxuLy8gU3BhblxuLy8gLS0tLVxuLy8vIFVuLXByZWZpeGVkIGFsaWFzIGZvciBgc3VzeS1zcGFuYFxuLy8vIChhdmFpbGFibGUgYnkgZGVmYXVsdClcbi8vL1xuLy8vIEBncm91cCBhcGlcbi8vLyBAYWxpYXMgc3VzeS1zcGFuXG4vLy9cbi8vLyBAcGFyYW0ge2xpc3R9ICRzcGFuXG4vLy8gQHBhcmFtIHttYXB9ICRjb25maWcgWygpXVxuQGZ1bmN0aW9uIHNwYW4oXG4gICRzcGFuLFxuICAkY29uZmlnOiAoKVxuKSB7XG4gIEByZXR1cm4gc3VzeS1zcGFuKCRzcGFuLCAkY29uZmlnKTtcbn1cblxuXG4vLyBHdXR0ZXJcbi8vIC0tLS0tLVxuLy8vIFVuLXByZWZpeGVkIGFsaWFzIGZvciBgc3VzeS1ndXR0ZXJgXG4vLy8gKGF2YWlsYWJsZSBieSBkZWZhdWx0KVxuLy8vXG4vLy8gQGdyb3VwIGFwaVxuLy8vIEBhbGlhcyBzdXN5LWd1dHRlclxuLy8vXG4vLy8gQHBhcmFtIHtpbnRlZ2VyIHwgbGlzdH0gJGNvbnRleHQgW251bGxdIC1cbi8vLyBAcGFyYW0ge21hcH0gJGNvbmZpZyBbKCldXG5AZnVuY3Rpb24gZ3V0dGVyKFxuICAkY29udGV4dDogbnVsbCxcbiAgJGNvbmZpZzogKClcbikge1xuICBAcmV0dXJuIHN1c3ktZ3V0dGVyKCRjb250ZXh0LCAkY29uZmlnKTtcbn1cblxuXG4vLyBTbGljZVxuLy8gLS0tLS1cbi8vLyBVbi1wcmVmaXhlZCBhbGlhcyBmb3IgYHN1c3ktc2xpY2VgXG4vLy8gKGF2YWlsYWJsZSBieSBkZWZhdWx0KVxuLy8vXG4vLy8gQGdyb3VwIGFwaVxuLy8vIEBhbGlhcyBzdXN5LXNsaWNlXG4vLy9cbi8vLyBAcGFyYW0ge2xpc3R9ICRzcGFuXG4vLy8gQHBhcmFtIHttYXB9ICRjb25maWcgWygpXVxuQGZ1bmN0aW9uIHNsaWNlKFxuICAkc3BhbixcbiAgJGNvbmZpZzogKClcbikge1xuICBAcmV0dXJuIHN1c3ktc2xpY2UoJHNwYW4sICRjb25maWcpO1xufVxuIiwiQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Sb2JvdG86MTAwLDMwMCw0MDAsNTAwLDcwMCw5MDAmc3Vic2V0PWdyZWVrJyk7XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ2RpZ2l0YWwnO1xyXG4gIHNyYzogdXJsKCcuLi9mb250cy9kaWdpdGFsLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxyXG4gICAgdXJsKCcuLi9mb250cy9kaWdpdGFsLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcclxuICAgIHVybCgnLi4vZm9udHMvZGlnaXRhbC50dGYnKSBmb3JtYXQoJ3R0ZicpO1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG59IiwiLy8gLS0tLS0tLS0tLSBWYXJpYWJsZXMgLS0tLS0tLS0tLSAgLy9cclxuLy8gZm9udC13ZWlnaHRcclxuJHdfdGhpbjogMTAwO1xyXG4kd19saWdodDogMzAwO1xyXG4kd19yZWd1bGFyOiA0MDA7XHJcbiR3X21lZGl1bTogNTAwO1xyXG4kd19ib2xkOiA3MDA7XHJcbiR3X2JsYWNrOiA5MDA7XHJcbi8vXHJcbiRkdXJhdGlvbjouM3M7XHJcbi8vIGNvbG9yXHJcbiRjX3JlZDojREMyMjM0O1xyXG4kY195ZWxsb3c6I0ZGRjg0RDtcclxuJGNfd2hpdGU6I2ZmZjtcclxuJGNfb3JhbmdlOiNGRkI5MzE7XHJcbiRjX3JlZG9yYW5nZTojRUI1MjNFO1xyXG4kY190ZXh0OiMxMTExMTE7XHJcbiRjX2Rhcms6IzJGMkYyRjtcclxuJGNfYmxhY2s6IzAwMDtcclxuXHJcbi8vIC0tLS0tLS0tLS0gRW5kIFZhcmlhYmxlcyAtLS0tLS0tLS0tICAvL1xyXG4uZ3JfeWVsbG93X29yYW5nZSB7XHJcbiAgYmFja2dyb3VuZDogcmdiKDIzNSwgODIsIDYyKTtcclxuICBiYWNrZ3JvdW5kOiAtbW96LXJhZGlhbC1ncmFkaWVudChjZW50ZXIsIGVsbGlwc2UgY292ZXIsIHJnYmEoMjM1LCA4MiwgNjIsIDEpIDAlLCByZ2JhKDI1NSwgMjQ4LCA3NywgMSkgMTAwJSk7XHJcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoY2VudGVyLCBlbGxpcHNlIGNvdmVyLCByZ2JhKDIzNSwgODIsIDYyLCAxKSAwJSwgcmdiYSgyNTUsIDI0OCwgNzcsIDEpIDEwMCUpO1xyXG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IGNlbnRlciwgcmdiYSgyMzUsIDgyLCA2MiwgMSkgMCUsIHJnYmEoMjU1LCAyNDgsIDc3LCAxKSAxMDAlKTtcclxuICAvLyBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjZWI1MjNlJywgZW5kQ29sb3JzdHI9JyNmZmY4NGQnLCBHcmFkaWVudFR5cGU9MSk7XHJcbn1cclxuXHJcbi5ncl9yZWRfb3JhbmdlIHtcclxuICBiYWNrZ3JvdW5kOiByZ2IoMjIwLCAzNCwgNTIpO1xyXG4gIGJhY2tncm91bmQ6IC1tb3otcmFkaWFsLWdyYWRpZW50KGNlbnRlciwgZWxsaXBzZSBjb3ZlciwgcmdiYSgyMjAsIDM0LCA1MiwgMSkgMCUsIHJnYmEoMjM1LCA4MiwgNjIsIDEpIDEwMCUpO1xyXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KGNlbnRlciwgZWxsaXBzZSBjb3ZlciwgcmdiYSgyMjAsIDM0LCA1MiwgMSkgMCUsIHJnYmEoMjM1LCA4MiwgNjIsIDEpIDEwMCUpO1xyXG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IGNlbnRlciwgcmdiYSgyMjAsIDM0LCA1MiwgMSkgMCUsIHJnYmEoMjM1LCA4MiwgNjIsIDEpIDEwMCUpO1xyXG4gIC8vIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyNkYzIyMzQnLCBlbmRDb2xvcnN0cj0nI2ViNTIzZScsIEdyYWRpZW50VHlwZT0xKTtcclxufVxyXG5cclxuLmdyX2JvcmRlcl9yZWRfb3JhbmdlIHtcclxuICAtbW96LWJvcmRlci1pbWFnZTogLW1vei1yYWRpYWwtZ3JhZGllbnQoY2VudGVyLCBlbGxpcHNlIGNvdmVyLCByZ2JhKDIyMCwgMzQsIDUyLCAxKSAwJSwgcmdiYSgyMzUsIDgyLCA2MiwgMSkgMTAwJSk7XHJcbiAgLXdlYmtpdC1ib3JkZXItaW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KGNlbnRlciwgZWxsaXBzZSBjb3ZlciwgcmdiYSgyMjAsIDM0LCA1MiwgMSkgMCUsIHJnYmEoMjM1LCA4MiwgNjIsIDEpIDEwMCUpO1xyXG4gIGJvcmRlci1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgY2VudGVyLCByZ2JhKDIyMCwgMzQsIDUyLCAxKSAwJSwgcmdiYSgyMzUsIDgyLCA2MiwgMSkgMTAwJSk7XHJcbiAgLy8gZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2RjMjIzNCcsIGVuZENvbG9yc3RyPScjZWI1MjNlJywgR3JhZGllbnRUeXBlPTEpO1xyXG59IiwiQGltcG9ydCAnZ3JpZCc7XHJcbkBpbXBvcnQgJ3ZhcmlhYmxlcyc7XHJcbmh0bWwsXHJcbmJvZHkge1xyXG4gIGhlaWdodDogMTAwJTtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuYm9keSB7XHJcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nLCBzYW5zLXNlcmlmO1xyXG4gIGZvbnQtc2l6ZTogMThweDtcclxuICBjb2xvcjogJGNfdGV4dDtcclxuICBsaW5lLWhlaWdodDogMS4yO1xyXG59XHJcblxyXG4ucHNkIHtcclxuICB0b3A6IDA7XHJcbiAgbGVmdDogMDtcclxuICBvcGFjaXR5OiAwLjU7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuM3M7XHJcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgei1pbmRleDogMTAwMDA7XHJcblxyXG4gICYuaGQge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcblxyXG4gICYuaW52IHtcclxuICAgIC13ZWJraXQtZmlsdGVyOiBpbnZlcnQoMTAwJSlcclxuICB9XHJcblxyXG4gICYtLWhvbWUge1xyXG4gICAgaGVpZ2h0OiA0NDQ0cHg7XHJcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL3BzZC9ob21lLmpwZyk1MCUgMCBuby1yZXBlYXQ7XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzIwcHgpIHtcclxuICAgICAgYmFja2dyb3VuZDogdXJsKC4uL2ltZy9wc2QvaG9tZV8zMjAuanBnKTUwJSAwIG5vLXJlcGVhdDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLXByaWNlIHtcclxuICAgIGhlaWdodDogNDk5NnB4O1xyXG4gICAgYmFja2dyb3VuZDogdXJsKC4uL2ltZy9wc2QvUHJpY2UuanBnKTUwJSAwIG5vLXJlcGVhdDtcclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzMjBweCkge1xyXG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL3BzZC9wcmljZV8zMjAuanBnKTUwJSAwIG5vLXJlcGVhdDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLXdob2xlc2FsZSB7XHJcbiAgICBoZWlnaHQ6IDM4NjFweDtcclxuICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWcvcHNkL3dob2xlc2FsZS5qcGcpNTAlIDAgbm8tcmVwZWF0O1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDMyMHB4KSB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWcvcHNkL3dob2xlc2FsZV8zMjAuanBnKTUwJSAwIG5vLXJlcGVhdDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWxpZmUge1xyXG4gICAgaGVpZ2h0OiAzNjc4cHg7XHJcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL3BzZC9saWZlLmpwZyk1MCUgMCBuby1yZXBlYXQ7XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzIwcHgpIHtcclxuICAgICAgYmFja2dyb3VuZDogdXJsKC4uL2ltZy9wc2QvbGlmZV8zMjAuanBnKTUwJSAwIG5vLXJlcGVhdDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLXNhbGUge1xyXG4gICAgaGVpZ2h0OiAxNzc1cHg7XHJcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL3BzZC9zYWxlLmpwZyk1MCUgMCBuby1yZXBlYXQ7XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzIwcHgpIHtcclxuICAgICAgYmFja2dyb3VuZDogdXJsKC4uL2ltZy9wc2Qvc2FsZV8zMjAuanBnKTUwJSAwIG5vLXJlcGVhdDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWNvbnRhY3RzIHtcclxuICAgIGhlaWdodDogMjc1OXB4O1xyXG4gICAgYmFja2dyb3VuZDogdXJsKC4uL2ltZy9wc2QvY29udGFjdHMuanBnKTUwJSAwIG5vLXJlcGVhdDtcclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzMjBweCkge1xyXG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL3BzZC9jb250YWN0c18zMjAuanBnKTUwJSAwIG5vLXJlcGVhdDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWxpZmVfbW9yZSB7XHJcbiAgICBoZWlnaHQ6IDE5MDZweDtcclxuICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWcvcHNkL2xpZmVfbW9yZS5qcGcpNTAlIDAgbm8tcmVwZWF0O1xyXG5cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDMyMHB4KSB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWcvcHNkL2xpZmVfc2luZ2xlXzMyMC5qcGcpNTAlIDAgbm8tcmVwZWF0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi0tc2FsZV9tb3JlIHtcclxuICAgIGhlaWdodDogMjE5MHB4O1xyXG4gICAgYmFja2dyb3VuZDogdXJsKC4uL2ltZy9wc2Qvc2FsZV9tb3JlLmpwZyk1MCUgMCBuby1yZXBlYXQ7XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzIwcHgpIHtcclxuICAgICAgYmFja2dyb3VuZDogdXJsKC4uL2ltZy9wc2Qvc2FsZV9zaW5nbGVfMzIwLmpwZyk1MCUgMCBuby1yZXBlYXQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ucHNkX2hpZGUge1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBjb2xvcjogI2ZmZjtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgbGVmdDogMDtcclxuICB0b3A6IDUwJTtcclxuICBsaW5lLWhlaWdodDogNDBweDtcclxuICB3aWR0aDogNjBweDtcclxuICBoZWlnaHQ6IDQwcHg7XHJcbiAgYmFja2dyb3VuZDogcmVkO1xyXG4gIGJvcmRlci1yYWRpdXM6IDAgMTgwcHggMTgwcHggMDtcclxuICB6LWluZGV4OiAxMDA7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG4ucHNkX2ludiB7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGNvbG9yOiAjZmZmO1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICByaWdodDogMDtcclxuICB0b3A6IDUwJTtcclxuICBsaW5lLWhlaWdodDogNDBweDtcclxuICB3aWR0aDogNjBweDtcclxuICBoZWlnaHQ6IDQwcHg7XHJcbiAgYmFja2dyb3VuZDogYmx1ZTtcclxuICBib3JkZXItcmFkaXVzOiAxODBweCAwIDAgMTgwcHg7XHJcbiAgei1pbmRleDogMTAwO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuLy9cclxuOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcclxuICBjb2xvcjogJGNfdGV4dDtcclxufVxyXG5cclxuOjotbW96LXBsYWNlaG9sZGVyIHtcclxuICBjb2xvcjogJGNfdGV4dDtcclxufVxyXG5cclxuOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XHJcbiAgY29sb3I6ICRjX3RleHQ7XHJcbn1cclxuXHJcbjotbW96LXBsYWNlaG9sZGVyIHtcclxuICBjb2xvcjogJGNfdGV4dDtcclxufVxyXG5cclxuYSxcclxuYTpob3ZlciB7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIGNvbG9yOiAkY190ZXh0O1xyXG59XHJcblxyXG5zdHJvbmcge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcbi8vIG9uZXNjcmVlblxyXG4ub25lc2NyZWVuIHtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGRpc3BsYXk6IHRhYmxlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG5cclxuICAmLS1jZWxsIHtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgfVxyXG5cclxuICAmLS10b3Age1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIH1cclxufSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUNBQTs7O0VBR0U7QWNIRixPQUFPLENBQUMsMEZBQUk7QWZHWixPQUFPLENBQVAsb0JBQU87QUFDUCxPQUFPLENBQVAsdUJBQU87QUNDUCxBQUFBLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU07QUFDN0Ms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 */