@charset "UTF-8";

/**
 * 値が2つ以上の配列かどうか判定する関数
 * @param  {array} $_list 配列か判定したい値
 * @return {boole}        値が2つ以上の配列ならtrue
 */

/**
 * 数値をremに変換する関数です
 * @param  {Number} $target        remにしたい数値
 * @param  {Number} $threshold [1] しきい値
 * @return {Number}                数値にremが付いた数値を返します
 */

/**
 * 数値をemに変換する関数です
 * @param  {Number} $target           emにしたい数値
 * @param  {Number} $parentValue [16] しきい値
 * @return {Number}                   数値にremが付いた数値を返します
 */

/**
 * 数値をpxに変換する関数です
 * @param  {Number} $arget          pxにしたい数値
 * @param  {Number} $threshold [1]  しきい値
 * @return {Number}                 数値にpxが付いた数値を返します
 */

/**
 * line-heightが1の時と同じになるようにline-height分の差分を返す関数です
 * @param  {Number} $lineHeight lineHeightの値
 * @param  {Number} $fontSize   fontの値
 * @return {Number}             差分の数値
 */

/**
 * 深い階層のmapの値を取得して返す関数です。
 * @param  {map} $map   map本体
 * @param  {map} $keys  mapのkey
 * @return {map}        指定したmapのkey
 */

/**
 * $breakpointsの中の数値を@mediaに入れてemにして返すmixin
 * @param  {array}  $breakpoint [sm]  $breakpointsのkeyのarray
 * @param  {string} $key        [min] min or max
 * @return {void}                     @media ($key-width) {}
 */

/**
 * font-weightの数値を返す関数
 * @param  {String} $weight weightのキーワード値
 * @return {Number}         weightのnumber
 */

/**
 * 色をmapから取得する関数です
 * @param  {array}  $keys      配列
 * @param  {number} $_opacity  0.0 ~ 1
 * @return {map}               $colorsの任意のkey
 */

/**
 * z-indexをmapから取得する関数です
 * @param  {array} $keys  配列
 * @return {map}   $z-indexの任意のkey
 */

/**
 * 擬似要素でアスペクト比の領域を確保するmixin
 * @param  {$_width}                   横の値
 * @param  {$_height}                  縦の値
 * @param  {$_pseudo_element} [before] 消費する疑似要素 before or after
 * @return {void}
 */

/**
 * fontをmapから取得する関数です
 * @param  {array} $keys  配列
 * @return {map}   $fontsの任意のkey
 */

.blog-pagenation {
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 320px;
  padding-top: 30px;
  margin: auto;
}

.blog-pagenation__prev > a, .blog-pagenation__next > a {
  padding-bottom: 2px;
  font-size: 0.875rem;
  color: #231815;
  text-decoration: underline;
  transition: opacity 0.4s;
}

.blog-pagenation__prev > a:hover, .blog-pagenation__next > a:hover {
  opacity: 0.7;
}

.blog-pagenation__numbers {
  display: inline-block;
  padding: 0;
  margin: 0 18px;
  list-style-type: none;
}

.blog-pagenation__numbers > li {
  display: inline-block;
  width: 33px;
  height: 33px;
  margin: 0 3px;
  background-color: #efefef;
  border-radius: 5px;
}

.blog-pagenation__numbers > li > a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  padding-bottom: 3px;
  font-size: 1rem;
  color: #575757;
  text-decoration: none;
  border-radius: 5px;
  transition: background-color 0.4s, color 0.4s;
}

.blog-pagenation__numbers > li > a:hover {
  color: #fff;
  background-color: #dc263f;
}

.blog-pagenation__numbers > li.is-current {
  background-color: #dc263f;
}

.blog-pagenation__numbers > li.is-current > a {
  color: #fff;
  transition: opacity 0.4s;
}

.blog-pagenation__numbers > li.is-current > a:hover {
  opacity: 0.7;
}

.blog-pagenation__toindex {
  width: 133px;
  height: 33px;
  background-color: #dc263f;
  border-radius: 5px;
}

.blog-pagenation__toindex > a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  padding-bottom: 2px;
  font-size: 0.875rem;
  color: #fff;
  text-decoration: none;
  transition: opacity 0.4s;
}

.blog-pagenation__toindex > a:hover {
  opacity: 0.7;
}

.white-dot {
  position: relative;
  background-image: url(/assets/img/2021usedcar/white-dot_bg@2x.png);
  background-position: center;
  background-size: contain;
}

.white-dot::before, .white-dot::after {
  position: absolute;
  display: block;
  width: 103px;
  height: 50px;
  content: "";
  background-position: center;
  background-size: cover;
}

.white-dot::before {
  top: 0;
  left: 0;
  background-image: url(/assets/img/2021usedcar/decoration_left@2x.png);
}

.white-dot::after {
  top: 0;
  right: 0;
  background-image: url(/assets/img/2021usedcar/decoration_right@2x.png);
}

@media (min-width: 48.0625rem) {
  .white-dot::before, .white-dot::after {
    width: 217px;
    height: 105px;
  }
}

.present {
  position: relative;
}

.present::before, .present::after {
  position: absolute;
  top: -30px;
  left: 50%;
  z-index: 2;
  display: block;
  width: 51.6px;
  height: 56.36px;
  content: "";
  background-position: center;
  background-size: cover;
}

.present::before {
  background-image: url(/assets/img/2021usedcar/present_yellow@2x.png);
  transform: translateX(calc(-50% - 24px));
}

.present::after {
  background-image: url(/assets/img/2021usedcar/present_blue@2x.png);
  transform: translateX(calc(-50% + 24px));
}

@media (min-width: 48.0625rem) {
  .present::before, .present::after {
    top: -60px;
    width: 111px;
    height: 121.26px;
    transform: none;
  }

  .present::before {
    left: 30px;
  }

  .present::after {
    right: 30px;
    left: auto;
  }
}

.heading-title {
  height: 60px;
  position: relative;
  color: #fff;
  font-size: 1.25rem;
  font-weight: 900;
  background-color: #000;
}

.heading-title::before, .heading-title::after {
  position: absolute;
  bottom: 0;
  display: block;
  width: 76px;
  height: 10px;
  content: "";
  background-image: url(/assets/img/2021usedcar/rectangle.svg);
  background-position: center;
  background-size: cover;
}

@media (min-width: 56.25rem) {
  .heading-title::before, .heading-title::after {
    top: 50%;
    width: 152px;
    height: 20px;
    transform: translateY(-50%);
  }
}

.heading-title::before {
  right: 0;
}

@media (min-width: 56.25rem) {
  .heading-title::before {
    right: calc(50vw - 490px);
  }
}

.heading-title::after {
  left: 0;
}

@media (min-width: 56.25rem) {
  .heading-title::after {
    left: calc(50vw - 490px);
  }
}

.gradient-red {
  background: linear-gradient(#e53e5e, #e6386e);
}

.sprite-red {
  background-color: #b90015;
  background-image: repeating-linear-gradient(-45deg, transparent, transparent 6px, #af0014 6px, #af0014 12px);
  background-size: auto auto;
}

.sprite-white {
  background-color: rgba(255, 255, 255, 0);
  background-image: repeating-linear-gradient(-45deg, transparent, transparent 6px, rgba(0, 0, 0, 0.05) 6px, rgba(0, 0, 0, 0.05) 12px);
  background-size: auto auto;
}

.lineup {
  position: relative;
  background-color: #ffd600;
  background-image: url(/assets/img/2021usedcar/lineup_bg_sp@2x.png);
  background-position: center;
  background-size: contain;
}

@media (min-width: 48.0625rem) {
  .lineup {
    background-image: url(/assets/img/2021usedcar/lineup_bg@2x.png);
  }
}

.lineup::before {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 64.2vw;
  content: none;
  background-image: url(/assets/img/2021usedcar/lineup_bg_decoration@2x.png);
  background-position: center;
  background-size: cover;
}

@media (min-width: 48.0625rem) {
  .lineup::before {
    content: "";
  }
}

.anker-list {
  display: flex;
  flex-wrap: wrap;
}

.anker-list__item {
  border-bottom: 1px solid #fff;
  width: 50%;
}

.anker-list__item:nth-child(odd) {
  border-right: 1px solid #fff;
}

.anker-list__link {
  padding: 0.5rem;
  color: #fff;
  text-align: center;
  font-weight: 900;
  line-height: 1.5;
}

.day {
  color: #000;
  font-size: 0.875rem;
  border-radius: 9999px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 0.5rem;
  width: 22px;
  height: 22px;
  background-color: #fee200;
}

@media (min-width: 48.0625rem) {
  .day {
    font-size: 1.25rem;
    width: 30px;
    height: 30px;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vMjAyMW5ld2xpbWl0ZWRjYXIuc2NzcyIsIndlYnBhY2s6Ly8vLi9jb21tb24vc2Nzcy9AZm91bmRhdGlvbi9fZnVuY3Rpb25zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vY29tbW9uL3Njc3MvQGZvdW5kYXRpb24vYnJlYWtwb2ludHMuc2NzcyIsIndlYnBhY2s6Ly8vLi9jb21tb24vc2Nzcy9AZm91bmRhdGlvbi9mb250LXdlaWdodC5zY3NzIiwid2VicGFjazovLy8uL2NvbW1vbi9zY3NzL0Bmb3VuZGF0aW9uL2NvbG9ycy5zY3NzIiwid2VicGFjazovLy8uL2NvbW1vbi9zY3NzL0Bmb3VuZGF0aW9uL3otaW5kZXguc2NzcyIsIndlYnBhY2s6Ly8vLi9jb21tb24vc2Nzcy9AZm91bmRhdGlvbi9hc3BlY3Quc2NzcyIsIndlYnBhY2s6Ly8vLi9jb21tb24vc2Nzcy9AZm91bmRhdGlvbi9fZm9udHMuc2NzcyIsIndlYnBhY2s6Ly8vLi9jb21tb24vc2Nzcy9AZm91bmRhdGlvbi9fYmxvZy1wYWdlbmF0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcGFnZXMvMjAyMW5ld2xpbWl0ZWRjYXIvMjAyMW5ld2xpbWl0ZWRjYXIuc2NzcyIsIndlYnBhY2s6Ly8vPG5vIHNvdXJjZT4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCOztBQ0FoQjs7OztFQUFBOztBQVNBOzs7OztFQUFBOztBQStCQTs7Ozs7RUFBQTs7QUFnQ0E7Ozs7O0VBQUE7O0FBK0JBOzs7OztFQUFBOztBQWdCQTs7Ozs7RUFBQTs7QUN2R0E7Ozs7O0VBQUE7O0FDUEE7Ozs7RUFBQTs7QUNxREE7Ozs7O0VBQUE7O0FDakRBOzs7O0VBQUE7O0FDYkE7Ozs7OztFQUFBOztBQ1lBOzs7O0VBQUE7O0FDWkE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QVJ1RUY7O0FRcEVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBUnVFRjs7QVFwRUE7RUFDRTtBUnVFRjs7QVFwRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBUnVFRjs7QVFwRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QVJ1RUY7O0FRcEVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBUnVFRjs7QVFwRUE7RUFDRTtFQUNBO0FSdUVGOztBUXBFQTtFQUNFO0FSdUVGOztBUXBFQTtFQUNFO0VBQ0E7QVJ1RUY7O0FRcEVBO0VBQ0U7QVJ1RUY7O0FRcEVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QVJ1RUY7O0FRcEVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QVJ1RUY7O0FRcEVBO0VBQ0U7QVJ1RUY7O0FTOUpBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QVRpS0Y7O0FTL0pFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QVRpS0o7O0FTL0pFO0VBQ0U7RUFDQTtFQUNBO0FUaUtKOztBUy9KRTtFQUNFO0VBQ0E7RUFDQTtBVGlLSjs7QVMvSkU7RUFDRTtJQUNFO0lBQ0E7RVRpS0o7QUFDRjs7QVM3SkE7RUNwQ0E7QVZxTUE7O0FTOUpFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QVRnS0o7O0FTOUpFO0VBQ0U7RUFDQTtBVGdLSjs7QVM5SkU7RUFDRTtFQUNBO0FUZ0tKOztBUzdKRTtFQUVFO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7RVQ4Sko7O0VTNUpFO0lBQ0U7RVQ4Sko7O0VTNUpFO0lBQ0U7SUFDQTtFVDhKSjtBQUNGOztBUzFKQTtFQUNFO0VDL0VGO0VBQUE7RUFBQTtFQUFBO0VBQUE7QVY2T0E7O0FTM0pFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FUNkpKOztBUzVKSTtFQVZGO0lBV0k7SUFDQTtJQUNBO0lBQ0E7RVQrSko7QUFDRjs7QVM3SkU7RUFDRTtBVCtKSjs7QVM5Skk7RUFGRjtJQUdJO0VUaUtKO0FBQ0Y7O0FTL0pFO0VBQ0U7QVRpS0o7O0FTaEtJO0VBRkY7SUFHSTtFVG1LSjtBQUNGOztBUy9KQTtFQUNFO0FUa0tGOztBUy9KQTtFQUNFO0VBQ0E7RUFDQTtBVGtLRjs7QVMvSkE7RUFDRTtFQUNBO0VBQ0E7QVRrS0Y7O0FTL0pBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBVGtLRjs7QVNoS0U7RUFQRjtJQVFJO0VUbUtGO0FBQ0Y7O0FTaktFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QVRtS0o7O0FTaktJO0VBWkY7SUFhSTtFVG9LSjtBQUNGOztBU2hLQTtFQzlKQTtFQUFBO0FWa1VBOztBU2pLRTtFQUNFO0VDbEtKO0FWc1VBOztBU2xLSTtFQUNFO0FUb0tOOztBU2hLRTtFQ3pLRjtFQUFBO0VBQUE7RUFBQTtFQUFBO0FWNFVBOztBUzlKQTtFQzlLQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFRGdMRTtFQUNBO0VBQ0E7QVRpS0Y7O0FTaEtFO0VBTEY7SUM5S0E7SURxTEk7SUFDQTtFVG1LRjtBQUNGLEMiLCJmaWxlIjoiZGFpaGF0c3UvYXNzZXRzL2Nzcy8yMDIxbmV3bGltaXRlZGNhci5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG4vKipcbiAqIOWApOOBjDLjgaTku6XkuIrjga7phY3liJfjgYvjganjgYbjgYvliKTlrprjgZnjgovplqLmlbBcbiAqIEBwYXJhbSAge2FycmF5fSAkX2xpc3Qg6YWN5YiX44GL5Yik5a6a44GX44Gf44GE5YCkXG4gKiBAcmV0dXJuIHtib29sZX0gICAgICAgIOWApOOBjDLjgaTku6XkuIrjga7phY3liJfjgarjgol0cnVlXG4gKi9cbi8qKlxuICog5pWw5YCk44KScmVt44Gr5aSJ5o+b44GZ44KL6Zai5pWw44Gn44GZXG4gKiBAcGFyYW0gIHtOdW1iZXJ9ICR0YXJnZXQgICAgICAgIHJlbeOBq+OBl+OBn+OBhOaVsOWApFxuICogQHBhcmFtICB7TnVtYmVyfSAkdGhyZXNob2xkIFsxXSDjgZfjgY3jgYTlgKRcbiAqIEByZXR1cm4ge051bWJlcn0gICAgICAgICAgICAgICAg5pWw5YCk44GrcmVt44GM5LuY44GE44Gf5pWw5YCk44KS6L+U44GX44G+44GZXG4gKi9cbi8qKlxuICog5pWw5YCk44KSZW3jgavlpInmj5vjgZnjgovplqLmlbDjgafjgZlcbiAqIEBwYXJhbSAge051bWJlcn0gJHRhcmdldCAgICAgICAgICAgZW3jgavjgZfjgZ/jgYTmlbDlgKRcbiAqIEBwYXJhbSAge051bWJlcn0gJHBhcmVudFZhbHVlIFsxNl0g44GX44GN44GE5YCkXG4gKiBAcmV0dXJuIHtOdW1iZXJ9ICAgICAgICAgICAgICAgICAgIOaVsOWApOOBq3JlbeOBjOS7mOOBhOOBn+aVsOWApOOCkui/lOOBl+OBvuOBmVxuICovXG4vKipcbiAqIOaVsOWApOOCknB444Gr5aSJ5o+b44GZ44KL6Zai5pWw44Gn44GZXG4gKiBAcGFyYW0gIHtOdW1iZXJ9ICRhcmdldCAgICAgICAgICBweOOBq+OBl+OBn+OBhOaVsOWApFxuICogQHBhcmFtICB7TnVtYmVyfSAkdGhyZXNob2xkIFsxXSAg44GX44GN44GE5YCkXG4gKiBAcmV0dXJuIHtOdW1iZXJ9ICAgICAgICAgICAgICAgICDmlbDlgKTjgatweOOBjOS7mOOBhOOBn+aVsOWApOOCkui/lOOBl+OBvuOBmVxuICovXG4vKipcbiAqIGxpbmUtaGVpZ2h044GMMeOBruaZguOBqOWQjOOBmOOBq+OBquOCi+OCiOOBhuOBq2xpbmUtaGVpZ2h05YiG44Gu5beu5YiG44KS6L+U44GZ6Zai5pWw44Gn44GZXG4gKiBAcGFyYW0gIHtOdW1iZXJ9ICRsaW5lSGVpZ2h0IGxpbmVIZWlnaHTjga7lgKRcbiAqIEBwYXJhbSAge051bWJlcn0gJGZvbnRTaXplICAgZm9udOOBruWApFxuICogQHJldHVybiB7TnVtYmVyfSAgICAgICAgICAgICDlt67liIbjga7mlbDlgKRcbiAqL1xuLyoqXG4gKiDmt7HjgYTpmo7lsaTjga5tYXDjga7lgKTjgpLlj5blvpfjgZfjgabov5TjgZnplqLmlbDjgafjgZnjgIJcbiAqIEBwYXJhbSAge21hcH0gJG1hcCAgIG1hcOacrOS9k1xuICogQHBhcmFtICB7bWFwfSAka2V5cyAgbWFw44Gua2V5XG4gKiBAcmV0dXJuIHttYXB9ICAgICAgICDmjIflrprjgZfjgZ9tYXDjga5rZXlcbiAqL1xuLyoqXG4gKiAkYnJlYWtwb2ludHPjga7kuK3jga7mlbDlgKTjgpJAbWVkaWHjgavlhaXjgozjgaZlbeOBq+OBl+OBpui/lOOBmW1peGluXG4gKiBAcGFyYW0gIHthcnJheX0gICRicmVha3BvaW50IFtzbV0gICRicmVha3BvaW50c+OBrmtleeOBrmFycmF5XG4gKiBAcGFyYW0gIHtzdHJpbmd9ICRrZXkgICAgICAgIFttaW5dIG1pbiBvciBtYXhcbiAqIEByZXR1cm4ge3ZvaWR9ICAgICAgICAgICAgICAgICAgICAgQG1lZGlhICgka2V5LXdpZHRoKSB7fVxuICovXG4vKipcbiAqIGZvbnQtd2VpZ2h044Gu5pWw5YCk44KS6L+U44GZ6Zai5pWwXG4gKiBAcGFyYW0gIHtTdHJpbmd9ICR3ZWlnaHQgd2VpZ2h044Gu44Kt44O844Ov44O844OJ5YCkXG4gKiBAcmV0dXJuIHtOdW1iZXJ9ICAgICAgICAgd2VpZ2h044GubnVtYmVyXG4gKi9cbi8qKlxuICog6Imy44KSbWFw44GL44KJ5Y+W5b6X44GZ44KL6Zai5pWw44Gn44GZXG4gKiBAcGFyYW0gIHthcnJheX0gICRrZXlzICAgICAg6YWN5YiXXG4gKiBAcGFyYW0gIHtudW1iZXJ9ICRfb3BhY2l0eSAgMC4wIH4gMVxuICogQHJldHVybiB7bWFwfSAgICAgICAgICAgICAgICRjb2xvcnPjga7ku7vmhI/jga5rZXlcbiAqL1xuLyoqXG4gKiB6LWluZGV444KSbWFw44GL44KJ5Y+W5b6X44GZ44KL6Zai5pWw44Gn44GZXG4gKiBAcGFyYW0gIHthcnJheX0gJGtleXMgIOmFjeWIl1xuICogQHJldHVybiB7bWFwfSAgICR6LWluZGV444Gu5Lu75oSP44Gua2V5XG4gKi9cbi8qKlxuICog5pOs5Ly86KaB57Sg44Gn44Ki44K544Oa44Kv44OI5q+U44Gu6aCY5Z+f44KS56K65L+d44GZ44KLbWl4aW5cbiAqIEBwYXJhbSAgeyRfd2lkdGh9ICAgICAgICAgICAgICAgICAgIOaoquOBruWApFxuICogQHBhcmFtICB7JF9oZWlnaHR9ICAgICAgICAgICAgICAgICAg57im44Gu5YCkXG4gKiBAcGFyYW0gIHskX3BzZXVkb19lbGVtZW50fSBbYmVmb3JlXSDmtojosrvjgZnjgovnlpHkvLzopoHntKAgYmVmb3JlIG9yIGFmdGVyXG4gKiBAcmV0dXJuIHt2b2lkfVxuICovXG4vKipcbiAqIGZvbnTjgpJtYXDjgYvjgonlj5blvpfjgZnjgovplqLmlbDjgafjgZlcbiAqIEBwYXJhbSAge2FycmF5fSAka2V5cyAg6YWN5YiXXG4gKiBAcmV0dXJuIHttYXB9ICAgJGZvbnRz44Gu5Lu75oSP44Gua2V5XG4gKi9cbi5ibG9nLXBhZ2VuYXRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWF4LXdpZHRoOiAzMjBweDtcbiAgcGFkZGluZy10b3A6IDMwcHg7XG4gIG1hcmdpbjogYXV0bztcbn1cblxuLmJsb2ctcGFnZW5hdGlvbl9fcHJldiA+IGEsIC5ibG9nLXBhZ2VuYXRpb25fX25leHQgPiBhIHtcbiAgcGFkZGluZy1ib3R0b206IDJweDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgY29sb3I6ICMyMzE4MTU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHM7XG59XG5cbi5ibG9nLXBhZ2VuYXRpb25fX3ByZXYgPiBhOmhvdmVyLCAuYmxvZy1wYWdlbmF0aW9uX19uZXh0ID4gYTpob3ZlciB7XG4gIG9wYWNpdHk6IDAuNztcbn1cblxuLmJsb2ctcGFnZW5hdGlvbl9fbnVtYmVycyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwIDE4cHg7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLmJsb2ctcGFnZW5hdGlvbl9fbnVtYmVycyA+IGxpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMzNweDtcbiAgaGVpZ2h0OiAzM3B4O1xuICBtYXJnaW46IDAgM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWZlZmVmO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbi5ibG9nLXBhZ2VuYXRpb25fX251bWJlcnMgPiBsaSA+IGEge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZy1ib3R0b206IDNweDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBjb2xvcjogIzU3NTc1NztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC40cywgY29sb3IgMC40cztcbn1cblxuLmJsb2ctcGFnZW5hdGlvbl9fbnVtYmVycyA+IGxpID4gYTpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGMyNjNmO1xufVxuXG4uYmxvZy1wYWdlbmF0aW9uX19udW1iZXJzID4gbGkuaXMtY3VycmVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkYzI2M2Y7XG59XG5cbi5ibG9nLXBhZ2VuYXRpb25fX251bWJlcnMgPiBsaS5pcy1jdXJyZW50ID4gYSB7XG4gIGNvbG9yOiAjZmZmO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHM7XG59XG5cbi5ibG9nLXBhZ2VuYXRpb25fX251bWJlcnMgPiBsaS5pcy1jdXJyZW50ID4gYTpob3ZlciB7XG4gIG9wYWNpdHk6IDAuNztcbn1cblxuLmJsb2ctcGFnZW5hdGlvbl9fdG9pbmRleCB7XG4gIHdpZHRoOiAxMzNweDtcbiAgaGVpZ2h0OiAzM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGMyNjNmO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbi5ibG9nLXBhZ2VuYXRpb25fX3RvaW5kZXggPiBhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmctYm90dG9tOiAycHg7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cztcbn1cblxuLmJsb2ctcGFnZW5hdGlvbl9fdG9pbmRleCA+IGE6aG92ZXIge1xuICBvcGFjaXR5OiAwLjc7XG59XG5cbi53aGl0ZS1kb3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvYXNzZXRzL2ltZy8yMDIxdXNlZGNhci93aGl0ZS1kb3RfYmdAMngucG5nKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG59XG4ud2hpdGUtZG90OjpiZWZvcmUsIC53aGl0ZS1kb3Q6OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwM3B4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcbn1cbi53aGl0ZS1kb3Q6OmJlZm9yZSB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9hc3NldHMvaW1nLzIwMjF1c2VkY2FyL2RlY29yYXRpb25fbGVmdEAyeC5wbmcpO1xufVxuLndoaXRlLWRvdDo6YWZ0ZXIge1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2Fzc2V0cy9pbWcvMjAyMXVzZWRjYXIvZGVjb3JhdGlvbl9yaWdodEAyeC5wbmcpO1xufVxuQHNjcmVlbiBzbSB7XG4gIC53aGl0ZS1kb3Q6OmJlZm9yZSwgLndoaXRlLWRvdDo6YWZ0ZXIge1xuICAgIHdpZHRoOiAyMTdweDtcbiAgICBoZWlnaHQ6IDEwNXB4O1xuICB9XG59XG5cbi5wcmVzZW50IHtcbiAgQGFwcGx5IHJlbGF0aXZlO1xufVxuLnByZXNlbnQ6OmJlZm9yZSwgLnByZXNlbnQ6OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0zMHB4O1xuICBsZWZ0OiA1MCU7XG4gIHotaW5kZXg6IDI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogNTEuNnB4O1xuICBoZWlnaHQ6IDU2LjM2cHg7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcbn1cbi5wcmVzZW50OjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2Fzc2V0cy9pbWcvMjAyMXVzZWRjYXIvcHJlc2VudF95ZWxsb3dAMngucG5nKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoLTUwJSAtIDI0cHgpKTtcbn1cbi5wcmVzZW50OjphZnRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvYXNzZXRzL2ltZy8yMDIxdXNlZGNhci9wcmVzZW50X2JsdWVAMngucG5nKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoLTUwJSArIDI0cHgpKTtcbn1cbkBzY3JlZW4gc20ge1xuICAucHJlc2VudDo6YmVmb3JlLCAucHJlc2VudDo6YWZ0ZXIge1xuICAgIHRvcDogLTYwcHg7XG4gICAgd2lkdGg6IDExMXB4O1xuICAgIGhlaWdodDogMTIxLjI2cHg7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG4gIC5wcmVzZW50OjpiZWZvcmUge1xuICAgIGxlZnQ6IDMwcHg7XG4gIH1cbiAgLnByZXNlbnQ6OmFmdGVyIHtcbiAgICByaWdodDogMzBweDtcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG59XG5cbi5oZWFkaW5nLXRpdGxlIHtcbiAgaGVpZ2h0OiA2MHB4O1xuICBAYXBwbHkgcmVsYXRpdmUgdGV4dC13aGl0ZSB0ZXh0LTIwIGZvbnQtYmxhY2sgYmctYmxhY2s7XG59XG4uaGVhZGluZy10aXRsZTo6YmVmb3JlLCAuaGVhZGluZy10aXRsZTo6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiA3NnB4O1xuICBoZWlnaHQ6IDEwcHg7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvYXNzZXRzL2ltZy8yMDIxdXNlZGNhci9yZWN0YW5nbGUuc3ZnKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xufVxuQHNjcmVlbiBtZCB7XG4gIC5oZWFkaW5nLXRpdGxlOjpiZWZvcmUsIC5oZWFkaW5nLXRpdGxlOjphZnRlciB7XG4gICAgdG9wOiA1MCU7XG4gICAgd2lkdGg6IDE1MnB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIH1cbn1cbi5oZWFkaW5nLXRpdGxlOjpiZWZvcmUge1xuICByaWdodDogMDtcbn1cbkBzY3JlZW4gbWQge1xuICAuaGVhZGluZy10aXRsZTo6YmVmb3JlIHtcbiAgICByaWdodDogY2FsYyg1MHZ3IC0gNDkwcHgpO1xuICB9XG59XG4uaGVhZGluZy10aXRsZTo6YWZ0ZXIge1xuICBsZWZ0OiAwO1xufVxuQHNjcmVlbiBtZCB7XG4gIC5oZWFkaW5nLXRpdGxlOjphZnRlciB7XG4gICAgbGVmdDogY2FsYyg1MHZ3IC0gNDkwcHgpO1xuICB9XG59XG5cbi5ncmFkaWVudC1yZWQge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoI2U1M2U1ZSwgI2U2Mzg2ZSk7XG59XG5cbi5zcHJpdGUtcmVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2I5MDAxNTtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCgtNDVkZWcsIHRyYW5zcGFyZW50LCB0cmFuc3BhcmVudCA2cHgsICNhZjAwMTQgNnB4LCAjYWYwMDE0IDEycHgpO1xuICBiYWNrZ3JvdW5kLXNpemU6IGF1dG8gYXV0bztcbn1cblxuLnNwcml0ZS13aGl0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoLTQ1ZGVnLCB0cmFuc3BhcmVudCwgdHJhbnNwYXJlbnQgNnB4LCByZ2JhKDAsIDAsIDAsIDAuMDUpIDZweCwgcmdiYSgwLCAwLCAwLCAwLjA1KSAxMnB4KTtcbiAgYmFja2dyb3VuZC1zaXplOiBhdXRvIGF1dG87XG59XG5cbi5saW5ldXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmQ2MDA7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvYXNzZXRzL2ltZy8yMDIxdXNlZGNhci9saW5ldXBfYmdfc3BAMngucG5nKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG59XG5Ac2NyZWVuIHNtIHtcbiAgLmxpbmV1cCB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9hc3NldHMvaW1nLzIwMjF1c2VkY2FyL2xpbmV1cF9iZ0AyeC5wbmcpO1xuICB9XG59XG4ubGluZXVwOjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDY0LjJ2dztcbiAgY29udGVudDogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9hc3NldHMvaW1nLzIwMjF1c2VkY2FyL2xpbmV1cF9iZ19kZWNvcmF0aW9uQDJ4LnBuZyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcbn1cbkBzY3JlZW4gc20ge1xuICAubGluZXVwOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gIH1cbn1cblxuLmFua2VyLWxpc3Qge1xuICBAYXBwbHkgZmxleCBmbGV4LXdyYXA7XG59XG4uYW5rZXItbGlzdF9faXRlbSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZmZmO1xuICBAYXBwbHkgdy0xLzI7XG59XG4uYW5rZXItbGlzdF9faXRlbTpudGgtY2hpbGQob2RkKSB7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNmZmY7XG59XG4uYW5rZXItbGlzdF9fbGluayB7XG4gIEBhcHBseSBwLTIgdGV4dC13aGl0ZSB0ZXh0LWNlbnRlciBmb250LWJsYWNrIGxlYWRpbmctbm9ybWFsO1xufVxuXG4uZGF5IHtcbiAgQGFwcGx5IHRleHQtYmxhY2sgdGV4dC0xNCByb3VuZGVkLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgbXItMjtcbiAgd2lkdGg6IDIycHg7XG4gIGhlaWdodDogMjJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZTIwMDtcbn1cbkBzY3JlZW4gc20ge1xuICAuZGF5IHtcbiAgICBAYXBwbHkgdGV4dC0yMDtcbiAgICB3aWR0aDogMzBweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gIH1cbn0iLCIvKipcbiAqIOWApOOBjDLjgaTku6XkuIrjga7phY3liJfjgYvjganjgYbjgYvliKTlrprjgZnjgovplqLmlbBcbiAqIEBwYXJhbSAge2FycmF5fSAkX2xpc3Qg6YWN5YiX44GL5Yik5a6a44GX44Gf44GE5YCkXG4gKiBAcmV0dXJuIHtib29sZX0gICAgICAgIOWApOOBjDLjgaTku6XkuIrjga7phY3liJfjgarjgol0cnVlXG4gKi9cbkBmdW5jdGlvbiBpc19hcnJheSgkX2xpc3QpIHtcbiAgQHJldHVybiB0eXBlLW9mKCRfbGlzdCkgPT0gbGlzdCBvciB0eXBlLW9mKCRfbGlzdCkgPT0gYXJnbGlzdDtcbn1cblxuLyoqXG4gKiDmlbDlgKTjgpJyZW3jgavlpInmj5vjgZnjgovplqLmlbDjgafjgZlcbiAqIEBwYXJhbSAge051bWJlcn0gJHRhcmdldCAgICAgICAgcmVt44Gr44GX44Gf44GE5pWw5YCkXG4gKiBAcGFyYW0gIHtOdW1iZXJ9ICR0aHJlc2hvbGQgWzFdIOOBl+OBjeOBhOWApFxuICogQHJldHVybiB7TnVtYmVyfSAgICAgICAgICAgICAgICDmlbDlgKTjgatyZW3jgYzku5jjgYTjgZ/mlbDlgKTjgpLov5TjgZfjgb7jgZlcbiAqL1xuQGZ1bmN0aW9uIF9yZW0oJHRhcmdldCwgJHRocmVzaG9sZCkge1xuICBAaWYodW5pdCgkdGFyZ2V0KSAhPSAnJykge1xuICAgIEBlcnJvciAncmVt44Gr44GX44Gf44GE5pWw5YCk44Gr5Y2Y5L2N44KS5LuY44GR44Gq44GE44Gn44GP44Gg44GV44GEJztcbiAgfSBAZWxzZSBpZih1bml0KCR0aHJlc2hvbGQpICE9ICcnKSB7XG4gICAgQGVycm9yICfjgZfjgY3jgYTlgKTjgavljZjkvY3jgpLku5jjgZHjgarjgYTjgafjgY/jgaDjgZXjgYQnXG4gIH0gQGVsc2UgaWYoJHRhcmdldCA9PSAwKSB7XG4gICAgQHJldHVybiAkdGFyZ2V0O1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuICgoKCR0YXJnZXQgLyAxNikgKiAkdGhyZXNob2xkKSAqIDFyZW0pO1xuICB9XG59XG5cbi8v56ys5LiA5byV5pWw44Gr6YWN5YiX44KS5rih44GZ44GT44Go44GM5Y+v6IO944Gr44Gq44Gj44GfXG5AZnVuY3Rpb24gcmVtKCR0YXJnZXQsICR0aHJlc2hvbGQ6IDEpIHtcbiAgQGlmKGlzX2FycmF5KCR0YXJnZXQpKSB7XG4gICAgJG5ld19yZW1fYXJyYXk6ICgpO1xuICAgIEBlYWNoICR0YXJnZXRfaXRlbSBpbiAkdGFyZ2V0IHtcbiAgICAgICRuZXdfcmVtX2FycmF5OiBhcHBlbmQoJG5ld19yZW1fYXJyYXksIF9yZW0oJHRhcmdldF9pdGVtLCAkdGhyZXNob2xkKSk7XG4gICAgfVxuICAgIEByZXR1cm4gJG5ld19yZW1fYXJyYXk7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gX3JlbSgkdGFyZ2V0LCR0aHJlc2hvbGQpO1xuICB9XG59XG5cbi8qKlxuICog5pWw5YCk44KSZW3jgavlpInmj5vjgZnjgovplqLmlbDjgafjgZlcbiAqIEBwYXJhbSAge051bWJlcn0gJHRhcmdldCAgICAgICAgICAgZW3jgavjgZfjgZ/jgYTmlbDlgKRcbiAqIEBwYXJhbSAge051bWJlcn0gJHBhcmVudFZhbHVlIFsxNl0g44GX44GN44GE5YCkXG4gKiBAcmV0dXJuIHtOdW1iZXJ9ICAgICAgICAgICAgICAgICAgIOaVsOWApOOBq3JlbeOBjOS7mOOBhOOBn+aVsOWApOOCkui/lOOBl+OBvuOBmVxuICovXG5AZnVuY3Rpb24gX2VtKCR0YXJnZXQsICRwYXJlbnRWYWx1ZSkge1xuICBAaWYodW5pdCgkdGFyZ2V0KSAhPSAnJykge1xuICAgIEBlcnJvciAnZW3jgavjgZfjgZ/jgYTmlbDlgKTjgavljZjkvY3jgpLku5jjgZHjgarjgYTjgafjgY/jgaDjgZXjgYQnO1xuICB9IEBlbHNlIGlmKHVuaXQoJHBhcmVudFZhbHVlKSAhPSAnJykge1xuICAgIEBlcnJvciAn6Kaq6KaB57Sg44Gu5pWw5YCk44Gr5Y2Y5L2N44KS5LuY44GR44Gq44GE44Gn44GP44Gg44GV44GEJ1xuICB9IEBlbHNlIGlmKCR0YXJnZXQgPT0gMCkge1xuICAgIEByZXR1cm4gJHRhcmdldDtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiAoKCR0YXJnZXQgLyAxNikgKiAxZW0pO1xuICB9XG59XG5cbi8v56ys5LiA5byV5pWw44Gr6YWN5YiX44KS5rih44GZ44GT44Go44GM5Y+v6IO944Gr44Gq44Gj44GfXG5AZnVuY3Rpb24gZW0oJHRhcmdldCwgJHBhcmVudFZhbHVlOiAxNikge1xuICBAaWYoaXNfYXJyYXkoJHRhcmdldCkpIHtcbiAgICAkbmV3X2VtX2FycmF5OiAoKTtcbiAgICBAZWFjaCAkdGFyZ2V0X2l0ZW0gaW4gJHRhcmdldCB7XG4gICAgICAkbmV3X2VtX2FycmF5OiBhcHBlbmQoJG5ld19lbV9hcnJheSwgX2VtKCR0YXJnZXRfaXRlbSwgJHBhcmVudFZhbHVlKSk7XG4gICAgfVxuICAgIEByZXR1cm4gJG5ld19lbV9hcnJheTtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiBfZW0oJHRhcmdldCwkcGFyZW50VmFsdWUpO1xuICB9XG59XG5cblxuLyoqXG4gKiDmlbDlgKTjgpJweOOBq+WkieaPm+OBmeOCi+mWouaVsOOBp+OBmVxuICogQHBhcmFtICB7TnVtYmVyfSAkYXJnZXQgICAgICAgICAgcHjjgavjgZfjgZ/jgYTmlbDlgKRcbiAqIEBwYXJhbSAge051bWJlcn0gJHRocmVzaG9sZCBbMV0gIOOBl+OBjeOBhOWApFxuICogQHJldHVybiB7TnVtYmVyfSAgICAgICAgICAgICAgICAg5pWw5YCk44GrcHjjgYzku5jjgYTjgZ/mlbDlgKTjgpLov5TjgZfjgb7jgZlcbiAqL1xuQGZ1bmN0aW9uIF9weCgkdGFyZ2V0LCAkdGhyZXNob2xkKSB7XG4gIEBpZih1bml0KCR0YXJnZXQpICE9ICcnKSB7XG4gICAgQGVycm9yICdweOOBq+OBl+OBn+OBhOaVsOWApOOBq+WNmOS9jeOCkuS7mOOBkeOBquOBhOOBp+OBj+OBoOOBleOBhCc7XG4gIH0gQGVsc2UgaWYodW5pdCgkdGhyZXNob2xkKSAhPSAnJykge1xuICAgIEBlcnJvciAn44GX44GN44GE5YCk44Gr5Y2Y5L2N44KS5LuY44GR44Gq44GE44Gn44GP44Gg44GV44GEJ1xuICB9IEBlbHNlIGlmKCR0YXJnZXQgPT0gMCkge1xuICAgIEByZXR1cm4gJHRhcmdldDtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiAoKCR0YXJnZXQgKiAkdGhyZXNob2xkKSAqIDFweCk7XG4gIH1cbn1cblxuLy/nrKzkuIDlvJXmlbDjgavphY3liJfjgpLmuKHjgZnjgZPjgajjgYzlj6/og73jgavjgarjgaPjgZ9cbkBmdW5jdGlvbiBweCgkdGFyZ2V0LCAkdGhyZXNob2xkOiAxKSB7XG4gIEBpZihpc19hcnJheSgkdGFyZ2V0KSkge1xuICAgICRuZXdfcHhfYXJyYXk6ICgpO1xuICAgIEBlYWNoICR0YXJnZXRfaXRlbSBpbiAkdGFyZ2V0IHtcbiAgICAgICRuZXdfcHhfYXJyYXk6IGFwcGVuZCgkbmV3X3B4X2FycmF5LCBfcHgoJHRhcmdldF9pdGVtLCAkdGhyZXNob2xkKSk7XG4gICAgfVxuICAgIEByZXR1cm4gJG5ld19weF9hcnJheTtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiBfcHgoJHRhcmdldCwkdGhyZXNob2xkKTtcbiAgfVxufVxuXG4vKipcbiAqIGxpbmUtaGVpZ2h044GMMeOBruaZguOBqOWQjOOBmOOBq+OBquOCi+OCiOOBhuOBq2xpbmUtaGVpZ2h05YiG44Gu5beu5YiG44KS6L+U44GZ6Zai5pWw44Gn44GZXG4gKiBAcGFyYW0gIHtOdW1iZXJ9ICRsaW5lSGVpZ2h0IGxpbmVIZWlnaHTjga7lgKRcbiAqIEBwYXJhbSAge051bWJlcn0gJGZvbnRTaXplICAgZm9udOOBruWApFxuICogQHJldHVybiB7TnVtYmVyfSAgICAgICAgICAgICDlt67liIbjga7mlbDlgKRcbiAqL1xuQGZ1bmN0aW9uIG1hcmdpbigkX2xpbmVIZWlnaHQsICRfZm9udFNpemUpIHtcbiAgQGlmKHVuaXQoJF9saW5lSGVpZ2h0KSAhPSAnJykge1xuICAgIEBlcnJvciAnbGluZS1oZWlnaHTjgavljZjkvY3jgpLku5jjgZHjgarjgYTjgafjgY/jgaDjgZXjgYQnO1xuICB9IEBlbHNlIGlmKHVuaXQoJF9mb250U2l6ZSkgIT0gJycpIHtcbiAgICBAZXJyb3IgJ2ZvbnQtc2l6ZeOBq+WNmOS9jeOCkuS7mOOBkeOBquOBhOOBp+OBj+OBoOOBleOBhCc7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gKCRfZm9udFNpemUgKiAkX2xpbmVIZWlnaHQgLSAkX2ZvbnRTaXplKSAvIDI7XG4gIH1cbn1cblxuLyoqXG4gKiDmt7HjgYTpmo7lsaTjga5tYXDjga7lgKTjgpLlj5blvpfjgZfjgabov5TjgZnplqLmlbDjgafjgZnjgIJcbiAqIEBwYXJhbSAge21hcH0gJG1hcCAgIG1hcOacrOS9k1xuICogQHBhcmFtICB7bWFwfSAka2V5cyAgbWFw44Gua2V5XG4gKiBAcmV0dXJuIHttYXB9ICAgICAgICDmjIflrprjgZfjgZ9tYXDjga5rZXlcbiAqL1xuQGZ1bmN0aW9uIG1hcC1kZWVwLWdldCgkbWFwLCAka2V5cy4uLikge1xuICBAZWFjaCAka2V5IGluICRrZXlzIHtcbiAgICBAaWYgKG5vdCBtYXAtaGFzLWtleSgkbWFwLCAka2V5KSkge1xuICAgICAgQHJldHVybiBudWxsO1xuICAgIH1cbiAgICAkbWFwOiBtYXAtZ2V0KCRtYXAsICRrZXkpO1xuICB9XG4gIEByZXR1cm4gJG1hcDtcbn1cbiIsIi8v44OW44Os44O844Kv44Od44Kk44Oz44OI44Gu5a6a576pXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy/jg6Hjg4fjgqPjgqLjgq/jgqjjg6rjga7lpInmlbBcbiRicmVha3BvaW50czogKFxuICB4czogMzY1LFxuICBzbTogNzIwLFxuICBtZDogOTgwLFxuICBsZzogMTIwMCxcbik7XG5cbi8v44Kr44Oz44OX44Gu44Kk44Oz44OK44O85qiq5bmFXG4kd3JhcHBlci13aWR0aDogbWFwLWdldCgkYnJlYWtwb2ludHMsIG1kICk7XG4vL+OCueODnuODm+aZguOBruW3puWPs+OBrnBhZGRpbmdcbiR3cmFwcGVyLXBhZGRpbmc6IDIwO1xuXG4vKipcbiAqICRicmVha3BvaW50c+OBruS4reOBruaVsOWApOOCkkBtZWRpYeOBq+WFpeOCjOOBpmVt44Gr44GX44Gm6L+U44GZbWl4aW5cbiAqIEBwYXJhbSAge2FycmF5fSAgJGJyZWFrcG9pbnQgW3NtXSAgJGJyZWFrcG9pbnRz44Gua2V544GuYXJyYXlcbiAqIEBwYXJhbSAge3N0cmluZ30gJGtleSAgICAgICAgW21pbl0gbWluIG9yIG1heFxuICogQHJldHVybiB7dm9pZH0gICAgICAgICAgICAgICAgICAgICBAbWVkaWEgKCRrZXktd2lkdGgpIHt9XG4gKi9cbkBtaXhpbiBtZWRpYSgkX2JyZWFrcG9pbnRzOiBzbSwgJF9rZXk6IG1pbikge1xuICAvLyRfYnJlYWtwb2ludHPjga5FcnJvcuaknOWHulxuICBAZWFjaCAkX2hhc19icmVha3BvaW50IGluICRfYnJlYWtwb2ludHMge1xuICAgICRfY3VycmVudF9pbmRleDogaW5kZXgoJF9icmVha3BvaW50cywgJF9oYXNfYnJlYWtwb2ludCk7XG4gICAgQGlmKG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJF9oYXNfYnJlYWtwb2ludCkgPT0gZmFsc2UpIHtcbiAgICAgIEBlcnJvciAn56ys5LiA5byV5pWw44GuI3skX2N1cnJlbnRfaW5kZXh955uu44Gu5YCkI3skX2hhc19icmVha3BvaW50feOBr+eEoeWKueOBquWApOOBp+OBmeOAgic7XG4gICAgfVxuICB9XG4gIC8vJF9rZXnjgYxtaW7jgYttYXjjgYvjga5FcnJvcuaknOWHulxuICAka2V5X2FycmF5OiAobWluLG1heCk7XG4gIEBpZihpbmRleCgka2V5X2FycmF5LCAkX2tleSkgPT0gbnVsbCkge1xuICAgIEBlcnJvciAn56ys5LqM5byV5pWwI3skX2tleX3jga/nhKHlirnjgarlgKTjgafjgZnjgIJtaW4gb3IgbWF444Gn5oyH5a6a44GX44Gm44GP44Gg44GV44GE44CCJ1xuICB9XG5cbiAgJF9icmVha3BvaW50LWxlbmd0aDogbGVuZ3RoKCRfYnJlYWtwb2ludHMpO1xuICBAaWYoJF9icmVha3BvaW50LWxlbmd0aCA9PSAxKSB7XG5cbiAgICAkX2ZpcnN0X2JyZWFrcG9pbnQ6IG50aCgkX2JyZWFrcG9pbnRzLDEpO1xuICAgICRfZmlyc3RfYnJlYWtwb2ludF92YWx1ZTogbWFwX2dldCgkYnJlYWtwb2ludHMsJF9maXJzdF9icmVha3BvaW50KTtcbiAgICBAaWYgKCRfa2V5ID09IG1heCkge1xuICAgICAgQG1lZGlhICgjeyRfa2V5fS13aWR0aDogZW0oJF9maXJzdF9icmVha3BvaW50X3ZhbHVlKSAtIC4wMDExKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBAaWYgKCRfa2V5ID09IG1pbikge1xuICAgICAgQG1lZGlhICgjeyRfa2V5fS13aWR0aDogZW0oJF9maXJzdF9icmVha3BvaW50X3ZhbHVlKSkge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgfSBAZWxzZSBpZigkX2JyZWFrcG9pbnQtbGVuZ3RoID09IDIpIHtcblxuICAgICRfZmlyc3RfYnJlYWtwb2ludDogbnRoKCRfYnJlYWtwb2ludHMsMSk7XG4gICAgJF9zZWNvbmRfYnJlYWtwb2ludDogbnRoKCRfYnJlYWtwb2ludHMsMik7XG4gICAgJF9maXJzdF9icmVha3BvaW50X3ZhbHVlOiBtYXBfZ2V0KCRicmVha3BvaW50cywkX2ZpcnN0X2JyZWFrcG9pbnQpO1xuICAgICRfc2Vjb25kX2JyZWFrcG9pbnRfdmFsdWU6IG1hcF9nZXQoJGJyZWFrcG9pbnRzLCRfc2Vjb25kX2JyZWFrcG9pbnQpO1xuICAgICRfbWF4X3ZhbHVlOiBtYXgoJF9maXJzdF9icmVha3BvaW50X3ZhbHVlLCRfc2Vjb25kX2JyZWFrcG9pbnRfdmFsdWUpO1xuICAgICRfbWluX3ZhbHVlOiBtaW4oJF9maXJzdF9icmVha3BvaW50X3ZhbHVlLCRfc2Vjb25kX2JyZWFrcG9pbnRfdmFsdWUpO1xuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IGVtKCRfbWluX3ZhbHVlKSkgYW5kIChtYXgtd2lkdGg6IGVtKCRfbWF4X3ZhbHVlKSAtIC4wMDExKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG5cbiAgfSBAZWxzZSB7XG4gICAgQGVycm9yICfnrKzkuIDlvJXmlbDjga/mnIDlpKcy44Gk44GX44GL6Kit5a6a44Gn44GN44G+44Gb44KT44CCJ1xuICB9XG59XG4iLCIkZm9udC13ZWlnaHQ6IChcbiAgdGhpbjogMTAwLFxuICBsaWdodDogMzAwLFxuICByZWd1bGFyOiA0MDAsXG4gIG1lZGl1bTogNTAwLFxuICBib2xkOiA3MDAsXG4gIGJsYWNrOiA5MDBcbik7XG5cbi8qKlxuICogZm9udC13ZWlnaHTjga7mlbDlgKTjgpLov5TjgZnplqLmlbBcbiAqIEBwYXJhbSAge1N0cmluZ30gJHdlaWdodCB3ZWlnaHTjga7jgq3jg7zjg6/jg7zjg4nlgKRcbiAqIEByZXR1cm4ge051bWJlcn0gICAgICAgICB3ZWlnaHTjga5udW1iZXJcbiAqL1xuQGZ1bmN0aW9uIGZvbnQtd2VpZ2h0KCRfd2VpZ2h0KSB7XG4gIEBpZihtYXAtaGFzLWtleSgkZm9udC13ZWlnaHQsICRfd2VpZ2h0KSkge1xuICAgIEByZXR1cm4gbWFwLWdldCgkZm9udC13ZWlnaHQsICRfd2VpZ2h0KTtcbiAgfSBAZWxzZSB7XG4gICAgQGVycm9yICfkvb/jgYjjgovlgKTjga/ku6XkuIvjgafjgZnihpIje21hcC1rZXlzKCRmb250LXdlaWdodCl9J1xuICB9XG59IiwiLy/oibLjga7lrprnvqlcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJGNvbG9yczogKFxuICB3aGl0ZTogI2ZmZixcbiAgYmxhY2s6ICMwMDAsXG4gIHJlZDogI2Q4M2U0ZixcbiAgZ3JheTogIzU5NTc1NyxcbiAgc25vdzogI2VmZWZlZixcbiAgc2lsdmVyOiAjY2NjLFxuICBuYXZ5OiAjMDA0MGE3LFxuICBibHVlOiAjMDBhMGU5LFxuICBncmVlbjogIzAwOTEzYSxcbiAgcGluazogI2Y3ZDhkYyxcbiAgdGV4dDogKFxuICAgIGJsYWNrOiAjMjIxODE1LFxuICAgIGRlZXByZWQ6ICNkYzI2M2YsXG4gICAgbGlnaHRyZWQ6ICNlNzNlNTEsXG4gICksXG4gIGJkOiAoXG4gICAgZ3JheTogI2NjYyxcbiAgICBibGFjazogIzIyMTgxNSxcbiAgICBkZWVwcmVkOiAjZGMyNjNmLFxuICAgIGxpZ2h0cmVkOiAjZTczZTUxLFxuICApLFxuICBiZzogKFxuICAgIGdyYXk6ICNlZmVmZWYsXG4gICAgYmxhY2s6ICMyMjE4MTUsXG4gICAgZGVlcHJlZDogI2RjMjYzZixcbiAgICBsaWdodHJlZDogI2U3M2U1MSxcbiAgKSxcbiAgZWxlYzogKFxuICAgIHBpbms6I2ZmYjJiYyxcbiAgICB5ZWxsb3c6ICNmZmUyNDAsXG4gICAgc2lsdmVyOiAjNzA3MDcwLFxuICAgIGxpZ2h0c2lsdmVyOiAjY2RjZWNlLFxuICAgIGwtcGluazogI2ZkZDBkMCxcbiAgICBkLXBpbms6ICNmZmRiZGIsXG4gICAgby1waW5rOiAjZmZlYmVlLFxuICAgIGdvbGQ6ICNlN2UzZGEsXG4gICksXG4gIGRodHY6IChcbiAgICByZWQ6ICNiYjBhMmZcbiAgKSxcbiAgZHdhc2g6IChcbiAgICBibGFjazogIzA4MDgwOCxcbiAgICBncmVlbjogIzMzYWYzMyxcbiAgICBibHVlOiAjMDA0MGE3LFxuICAgIGxpZ2h0Ymx1ZTogIzE1NWRkMSxcbiAgKSxcbiAgc2RnczogKFxuICAgIGJsdWU6ICMwMDllZGIsXG4gICAgbGlnaHRibHVlOiAjZjJmNWY5LFxuICAgIGJvcmRlcmJsdWU6ICMwMDdlYWYsXG4gICksXG4gIGV0YWppbWE6IChcbiAgICByZWQ6ICNiNzIzMWQsXG4gICAgYmx1ZTogIzAwOTNmZixcbiAgICBiZy1ibHVlOiAjM2I4YWM0LFxuICAgIHllbGxvdzogI2ZmZDgzNCxcbiAgKVxuKTtcblxuLyoqXG4gKiDoibLjgpJtYXDjgYvjgonlj5blvpfjgZnjgovplqLmlbDjgafjgZlcbiAqIEBwYXJhbSAge2FycmF5fSAgJGtleXMgICAgICDphY3liJdcbiAqIEBwYXJhbSAge251bWJlcn0gJF9vcGFjaXR5ICAwLjAgfiAxXG4gKiBAcmV0dXJuIHttYXB9ICAgICAgICAgICAgICAgJGNvbG9yc+OBruS7u+aEj+OBrmtleVxuICovXG5AZnVuY3Rpb24gY29sb3IoJF9rZXlzLCRfb3BhY2l0eTogbnVsbCkge1xuICBAaWYoJF9vcGFjaXR5ICE9IG51bGwpIHtcbiAgICBAcmV0dXJuIHJnYmEobWFwLWRlZXAtZ2V0KCRjb2xvcnMsICRfa2V5cy4uLiksJF9vcGFjaXR5KVxuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuIG1hcC1kZWVwLWdldCgkY29sb3JzLCAkX2tleXMuLi4pXG4gIH1cbn1cbiIsIiR6LWluZGV4OiAoXG4gIGhhbTogNTAyLFxuICBnbmF2OiA1MDEsXG4gIHJlc2VydmVkOiA1MDAsXG4gIGZyb250OiAyMDAsXG4gIG1vZGFsOiAoXG4gICAgbWFpbjogMTAxLFxuICApLFxuICBtYWluOiAxLFxuICBiYWNrOiAtMVxuKTtcblxuXG4vKipcbiAqIHotaW5kZXjjgpJtYXDjgYvjgonlj5blvpfjgZnjgovplqLmlbDjgafjgZlcbiAqIEBwYXJhbSAge2FycmF5fSAka2V5cyAg6YWN5YiXXG4gKiBAcmV0dXJuIHttYXB9ICAgJHotaW5kZXjjga7ku7vmhI/jga5rZXlcbiAqL1xuQGZ1bmN0aW9uIHotaW5kZXgoJGtleXMpIHtcbiAgQHJldHVybiBtYXAtZGVlcC1nZXQoJHotaW5kZXgsICRrZXlzLi4uKTtcbn1cbiIsIi8qKlxuICog5pOs5Ly86KaB57Sg44Gn44Ki44K544Oa44Kv44OI5q+U44Gu6aCY5Z+f44KS56K65L+d44GZ44KLbWl4aW5cbiAqIEBwYXJhbSAgeyRfd2lkdGh9ICAgICAgICAgICAgICAgICAgIOaoquOBruWApFxuICogQHBhcmFtICB7JF9oZWlnaHR9ICAgICAgICAgICAgICAgICAg57im44Gu5YCkXG4gKiBAcGFyYW0gIHskX3BzZXVkb19lbGVtZW50fSBbYmVmb3JlXSDmtojosrvjgZnjgovnlpHkvLzopoHntKAgYmVmb3JlIG9yIGFmdGVyXG4gKiBAcmV0dXJuIHt2b2lkfVxuICovXG5AbWl4aW4gYXNwZWN0KCRfd2lkdGgsICRfaGVpZ2h0LCAkX3BzZXVkb19lbGVtZW50OiBiZWZvcmUpIHtcbiAgLy8gbWF4LXdpZHRoOiAkX2hlaWdodCArIHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAmOjojeyRfcHNldWRvX2VsZW1lbnR9IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLXRvcDogcGVyY2VudGFnZSgkX3dpZHRoLyRfaGVpZ2h0KTtcbiAgICBjb250ZW50OiAnJztcbiAgfVxuICA+IGltZywgc3Zne1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uO1xuICB9XG59XG4iLCIkZm9udHM6IChcbiAgamE6IChcbiAgICBzYW5zOiAoJ05vdG8gU2FucyBKUCcsIHNhbnMtc2VyaWYpLFxuICAgIHNlcmlmOiAoJ05vdG8gU2VyaWYgSlAnLCBzZXJpZilcbiAgKSxcbiAgZW46IChcbiAgICByb2JvdG86ICgnUm9ib3RvJywgc2Fucy1zZXJpZiksXG4gICAgZGFuY2luZzogKCdEYW5jaW5nIFNjcmlwdCcsIGN1cnNpdmUpLFxuICAgIGpvc2VmaW46ICgnSm9zZWZpbiBTbGFiJywgc2VyaWYpXG4gIClcbik7XG5cbi8qKlxuICogZm9udOOCkm1hcOOBi+OCieWPluW+l+OBmeOCi+mWouaVsOOBp+OBmVxuICogQHBhcmFtICB7YXJyYXl9ICRrZXlzICDphY3liJdcbiAqIEByZXR1cm4ge21hcH0gICAkZm9udHPjga7ku7vmhI/jga5rZXlcbiAqL1xuQGZ1bmN0aW9uIGZvbnQoJGtleXMpIHtcbiAgQHJldHVybiBtYXAtZGVlcC1nZXQoJGZvbnRzLCAka2V5cy4uLik7XG59XG4iLCIuYmxvZy1wYWdlbmF0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1heC13aWR0aDogMzIwcHg7XG4gIHBhZGRpbmctdG9wOiAzMHB4O1xuICBtYXJnaW46IGF1dG87XG59XG5cbi5ibG9nLXBhZ2VuYXRpb25fX3ByZXYgPiBhLCAuYmxvZy1wYWdlbmF0aW9uX19uZXh0ID4gYSB7XG4gIHBhZGRpbmctYm90dG9tOiAycHg7XG4gIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgY29sb3I6ICMyMzE4MTU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC40cztcbn1cblxuLmJsb2ctcGFnZW5hdGlvbl9fcHJldiA+IGE6aG92ZXIsIC5ibG9nLXBhZ2VuYXRpb25fX25leHQgPiBhOmhvdmVyIHtcbiAgb3BhY2l0eTogLjc7XG59XG5cbi5ibG9nLXBhZ2VuYXRpb25fX251bWJlcnMge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMCAxOHB4O1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG5cbi5ibG9nLXBhZ2VuYXRpb25fX251bWJlcnMgPiBsaSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDMzcHg7XG4gIGhlaWdodDogMzNweDtcbiAgbWFyZ2luOiAwIDNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VmZWZlZjtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuXG4uYmxvZy1wYWdlbmF0aW9uX19udW1iZXJzID4gbGkgPiBhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmctYm90dG9tOiAzcHg7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgY29sb3I6ICM1NzU3NTc7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC40cywgY29sb3IgLjRzO1xufVxuXG4uYmxvZy1wYWdlbmF0aW9uX19udW1iZXJzID4gbGkgPiBhOmhvdmVyIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkYzI2M2Y7XG59XG5cbi5ibG9nLXBhZ2VuYXRpb25fX251bWJlcnMgPiBsaS5pcy1jdXJyZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RjMjYzZjtcbn1cblxuLmJsb2ctcGFnZW5hdGlvbl9fbnVtYmVycyA+IGxpLmlzLWN1cnJlbnQgPiBhIHtcbiAgY29sb3I6ICNmZmY7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgLjRzO1xufVxuXG4uYmxvZy1wYWdlbmF0aW9uX19udW1iZXJzID4gbGkuaXMtY3VycmVudCA+IGE6aG92ZXIge1xuICBvcGFjaXR5OiAuNztcbn1cblxuLmJsb2ctcGFnZW5hdGlvbl9fdG9pbmRleCB7XG4gIHdpZHRoOiAxMzNweDtcbiAgaGVpZ2h0OiAzM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGMyNjNmO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbi5ibG9nLXBhZ2VuYXRpb25fX3RvaW5kZXggPiBhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmctYm90dG9tOiAycHg7XG4gIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNHM7XG59XG5cbi5ibG9nLXBhZ2VuYXRpb25fX3RvaW5kZXggPiBhOmhvdmVyIHtcbiAgb3BhY2l0eTogLjc7XG59XG4iLCJAaW1wb3J0ICcuLi8uLi9jb21tb24vc2Nzcy9AZm91bmRhdGlvbi9mb3VuZGF0aW9uJztcbi8vQGltcG9ydCAnbW9kdWxlcy8qKic7XG5cbi53aGl0ZS1kb3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvYXNzZXRzL2ltZy8yMDIxdXNlZGNhci93aGl0ZS1kb3RfYmdAMngucG5nKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG5cbiAgJjo6YmVmb3JlLCAmOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDNweDtcbiAgICBoZWlnaHQ6IDUwcHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIH1cbiAgJjo6YmVmb3JlIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2Fzc2V0cy9pbWcvMjAyMXVzZWRjYXIvZGVjb3JhdGlvbl9sZWZ0QDJ4LnBuZyk7XG4gIH1cbiAgJjo6YWZ0ZXIge1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2Fzc2V0cy9pbWcvMjAyMXVzZWRjYXIvZGVjb3JhdGlvbl9yaWdodEAyeC5wbmcpO1xuICB9XG4gIEBzY3JlZW4gc20ge1xuICAgICY6OmJlZm9yZSwgJjo6YWZ0ZXIge1xuICAgICAgd2lkdGg6IDIxN3B4O1xuICAgICAgaGVpZ2h0OiAxMDVweDtcbiAgICB9XG4gIH1cbn1cblxuLnByZXNlbnQge1xuICBAYXBwbHkgcmVsYXRpdmU7XG5cbiAgJjo6YmVmb3JlLCAmOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTMwcHg7XG4gICAgbGVmdDogNTAlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDUxLjZweDtcbiAgICBoZWlnaHQ6IDU2LjM2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIH1cbiAgJjo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2Fzc2V0cy9pbWcvMjAyMXVzZWRjYXIvcHJlc2VudF95ZWxsb3dAMngucG5nKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygtNTAlIC0gMjRweCkpO1xuICB9XG4gICY6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2Fzc2V0cy9pbWcvMjAyMXVzZWRjYXIvcHJlc2VudF9ibHVlQDJ4LnBuZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoLTUwJSArIDI0cHgpKTtcbiAgfVxuXG4gIEBzY3JlZW4gc20ge1xuXG4gICAgJjo6YmVmb3JlLCAmOjphZnRlciB7XG4gICAgICB0b3A6IC02MHB4O1xuICAgICAgd2lkdGg6IDExMXB4O1xuICAgICAgaGVpZ2h0OiAxMjEuMjZweDtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGxlZnQ6IDMwcHg7XG4gICAgfVxuICAgICY6OmFmdGVyIHtcbiAgICAgIHJpZ2h0OiAzMHB4O1xuICAgICAgbGVmdDogYXV0bztcbiAgICB9XG4gIH1cbn1cblxuLmhlYWRpbmctdGl0bGUge1xuICBoZWlnaHQ6IDYwcHg7XG4gIEBhcHBseSByZWxhdGl2ZSB0ZXh0LXdoaXRlIHRleHQtMjAgZm9udC1ibGFjayBiZy1ibGFjaztcblxuICAmOjpiZWZvcmUsICY6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiA3NnB4O1xuICAgIGhlaWdodDogMTBweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2Fzc2V0cy9pbWcvMjAyMXVzZWRjYXIvcmVjdGFuZ2xlLnN2Zyk7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgQHNjcmVlbiBtZCB7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHdpZHRoOiAxNTJweDtcbiAgICAgIGhlaWdodDogMjBweDtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB9XG4gIH1cbiAgJjo6YmVmb3JlIHtcbiAgICByaWdodDogMDtcbiAgICBAc2NyZWVuIG1kIHtcbiAgICAgIHJpZ2h0OiBjYWxjKDUwdncgLSA0OTBweCk7XG4gICAgfVxuICB9XG4gICY6OmFmdGVyIHtcbiAgICBsZWZ0OiAwO1xuICAgIEBzY3JlZW4gbWQge1xuICAgICAgbGVmdDogY2FsYyg1MHZ3IC0gNDkwcHgpO1xuICAgIH1cbiAgfVxufVxuXG4uZ3JhZGllbnQtcmVkIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCNlNTNlNWUsICNlNjM4NmUpO1xufVxuXG4uc3ByaXRlLXJlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTg1LCAwLCAyMSwgMSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoLTQ1ZGVnLCB0cmFuc3BhcmVudCwgdHJhbnNwYXJlbnQgNnB4LCByZ2JhKDE3NSwgMCwgMjAsIDEpIDZweCwgcmdiYSgxNzUsIDAsIDIwLCAxKSAxMnB4ICk7XG4gIGJhY2tncm91bmQtc2l6ZTogYXV0byBhdXRvO1xufVxuXG4uc3ByaXRlLXdoaXRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCgtNDVkZWcsIHRyYW5zcGFyZW50LCB0cmFuc3BhcmVudCA2cHgsIHJnYmEoMCwgMCwgMCwgLjA1KSA2cHgsIHJnYmEoMCwgMCwgMCwgLjA1KSAxMnB4ICk7XG4gIGJhY2tncm91bmQtc2l6ZTogYXV0byBhdXRvO1xufVxuXG4ubGluZXVwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkNjAwO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2Fzc2V0cy9pbWcvMjAyMXVzZWRjYXIvbGluZXVwX2JnX3NwQDJ4LnBuZyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuXG4gIEBzY3JlZW4gc20ge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvYXNzZXRzL2ltZy8yMDIxdXNlZGNhci9saW5ldXBfYmdAMngucG5nKTtcbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNjQuMnZ3O1xuICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9hc3NldHMvaW1nLzIwMjF1c2VkY2FyL2xpbmV1cF9iZ19kZWNvcmF0aW9uQDJ4LnBuZyk7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cbiAgICBAc2NyZWVuIHNtIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgIH1cbiAgfVxufVxuXG4uYW5rZXItbGlzdCB7XG4gIEBhcHBseSBmbGV4IGZsZXgtd3JhcDtcblxuICAmX19pdGVtIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ZmZjtcbiAgICBAYXBwbHkgIHctMS8yO1xuICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2ZmZjtcbiAgICB9XG4gIH1cblxuICAmX19saW5rIHtcbiAgICBAYXBwbHkgcC0yIHRleHQtd2hpdGUgdGV4dC1jZW50ZXIgZm9udC1ibGFjayBsZWFkaW5nLW5vcm1hbDtcbiAgfVxufVxuXG4uZGF5IHtcbiAgQGFwcGx5IHRleHQtYmxhY2sgdGV4dC0xNCByb3VuZGVkLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgbXItMjtcbiAgd2lkdGg6IDIycHg7XG4gIGhlaWdodDogMjJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZTIwMDtcbiAgQHNjcmVlbiBzbSB7XG4gICAgQGFwcGx5IHRleHQtMjA7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICB9XG59XG4iLG51bGxdLCJzb3VyY2VSb290IjoiIn0=*/