﻿@charset "UTF-8";
.wpcf7-response-output {
  display: none !important;
}

.wpcf7 .screen-reader-response {
  position: absolute;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  width: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  word-wrap: normal !important;
}

.wpcf7 .hidden-fields-container {
  display: none;
}

.wpcf7 form .wpcf7-response-output {
  margin: 2em 0.5em 1em;
  padding: 0.2em 1em;
  border: 2px solid #00a0d2; /* Blue */
}

.wpcf7 form.init .wpcf7-response-output,
.wpcf7 form.resetting .wpcf7-response-output,
.wpcf7 form.submitting .wpcf7-response-output {
  display: none;
}

.wpcf7 form.sent .wpcf7-response-output {
  border-color: #46b450; /* Green */
}

.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output {
  border-color: #dc3232; /* Red */
}

.wpcf7 form.spam .wpcf7-response-output {
  border-color: #f56e28; /* Orange */
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
  border-color: #ffb900; /* Yellow */
}

.wpcf7-form-control-wrap {
  position: relative;
}

.wpcf7-not-valid-tip {
  color: #dc3232; /* Red */
  font-size: 1em;
  font-weight: normal;
  display: block;
}

.use-floating-validation-tip .wpcf7-not-valid-tip {
  position: relative;
  top: -2ex;
  left: 1em;
  z-index: 100;
  border: 1px solid #dc3232;
  background: #fff;
  padding: 0.2em 0.8em;
  width: 24em;
}

.wpcf7-list-item {
  display: inline-block;
  margin: 0 0 0 1em;
}

.wpcf7-list-item-label::before,
.wpcf7-list-item-label::after {
  content: " ";
}

.wpcf7-spinner {
  visibility: hidden;
  display: inline-block;
  background-color: #23282d; /* Dark Gray 800 */
  opacity: 0.75;
  width: 24px;
  height: 24px;
  border: none;
  border-radius: 100%;
  padding: 0;
  margin: 0 24px;
  position: relative;
}

form.submitting .wpcf7-spinner {
  visibility: visible;
}

.wpcf7-spinner::before {
  content: "";
  position: absolute;
  background-color: #fbfbfc; /* Light Gray 100 */
  top: 4px;
  left: 4px;
  width: 6px;
  height: 6px;
  border: none;
  border-radius: 100%;
  transform-origin: 8px 8px;
  animation-name: spin;
  animation-duration: 1000ms;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}

@media (prefers-reduced-motion: reduce) {
  .wpcf7-spinner::before {
    animation-name: blink;
    animation-duration: 2000ms;
  }
}
@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
@keyframes blink {
  from {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
.wpcf7 [inert] {
  opacity: 0.5;
}

.wpcf7 input[type=file] {
  cursor: pointer;
}

.wpcf7 input[type=file]:disabled {
  cursor: default;
}

.wpcf7 .wpcf7-submit:disabled {
  cursor: not-allowed;
}

.wpcf7 input[type=url],
.wpcf7 input[type=email],
.wpcf7 input[type=tel] {
  direction: ltr;
}

.wpcf7-reflection > output {
  display: list-item;
  list-style: none;
}

.wpcf7-reflection > output[hidden] {
  display: none;
}

:root {
  --pc-contents-max-width:1200px;
  --z-index-header:1000;
  --hover-opacity-duration:.2s;
  --hover-opacity-ease:ease;
  --color-white:#FFFFFF;
  --color-black:#000000;
  --color-gray900:#222222;
  --color-gray800:#323232;
  --color-gray600:#505050;
  --color-gray500:#666666;
  --color-gray400:#B0B0B0;
  --color-gray300:#D7D7D7;
  --color-gray200:#EDEDED;
  --color-gray100:#F0F0F0;
  --color-blue1200:#1D60B0;
  --color-blue1000:#2588FE;
  --color-blue900:#2577D8;
  --color-blue800:#4085D6;
  --color-blue400:#A6C5E5;
  --color-blue300:#C0D9F2;
  --color-blue200:#EAF3FC;
  --color-blue100:#F0F6FB;
  --color-green100:#DDF1D9;
  --color-red900:#EE2F34;
}

/*
pxをvwに変換
*/
/************************************************************
header用
*************************************************************/
/*
メディアクエリ
記述例
body{
  @include mixin.ms-w('max',1200){
    background-color: red;
  }
}
*/
/*
フォームリセット
*/
/*
ICON FONT
*/
[class^=icons-], [class*=" icons-"] {
  display: inline-block;
  font-family: "icons";
  font-style: normal;
  font-weight: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icons-arrow-1:before {
  content: "\ea01";
}

.icons-arrow-2:before {
  content: "\ea02";
}

.icons-search:before {
  content: "\ea03";
}

.icons-lang:before {
  content: "\ea04";
}

.icons-circle-plus:before {
  content: "\ea05";
}

.icons-check:before {
  content: "\ea06";
}

.icons-close:before {
  content: "\ea07";
}

.icons-slash:before {
  content: "\ea08";
}

.icons-download:before {
  content: "\ea09";
}

.icons-blank:before {
  content: "\ea0a";
}

.icons-circle-minus:before {
  content: "\ea0b";
}

.icons-bldg:before {
  content: "\ea0c";
}

.icons-pen:before {
  content: "\ea0d";
}

.icons-flow:before {
  content: "\ea0e";
}

.icons-prize:before {
  content: "\ea0f";
}

.icons-global:before {
  content: "\ea10";
}

.icons-strength:before {
  content: "\ea11";
}

.icons-tel:before {
  content: "\ea12";
}

.icons-mail:before {
  content: "\ea13";
}

.icons-wakaba:before {
  content: "\ea14";
}

.icons-faq:before {
  content: "\ea15";
}

.icons-x:before {
  content: "\ea16";
}

.icons-facebook:before {
  content: "\ea17";
}

.icons-instagram:before {
  content: "\ea18";
}

.icons-youtube:before {
  content: "\ea19";
}

.icons-line:before {
  content: "\ea1a";
}

/*
mixin
*/
/************************************************************
SCREEN RESPONSIVE
*************************************************************/
@media only screen and (min-width:769px) {
  .c-page-ttl {
    padding-top: 5.6rem;
  }
}
@media only screen and (max-width:768px) {
  .c-page-ttl {
    padding-top: 3.3rem;
  }
}
@media only screen and (min-width:769px) {
  .c-page-ttl {
    padding-bottom: 6.4rem;
  }
}
@media only screen and (max-width:768px) {
  .c-page-ttl {
    padding-bottom: 4.8rem;
  }
}
.c-page-ttl__main {
  text-align: center;
}

/*
*
CTA お問合せ　メルマガ
*
*/
/************************************************************
SCREEN RESPONSIVE
*************************************************************/
.l-about-download {
  padding-bottom: 8rem;
}
@media only screen and (min-width:769px) {
  .l-about-download {
    padding-top: 8rem;
  }
}
@media only screen and (max-width:768px) {
  .l-about-download {
    padding-top: 6.4rem;
  }
}
.l-about-download__inner {
  border-radius: 8px;
  background: var(--color-gray100);
}
@media only screen and (min-width:769px) {
  .l-about-download__inner {
    padding: 3.2rem;
  }
}
@media only screen and (max-width:768px) {
  .l-about-download__inner {
    padding: 6.1538461538vw 4.1025641026vw 4.1025641026vw;
  }
}
.l-about-download__title {
  color: var(--color-gray900);
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 150%;
}
.l-about-download__text {
  color: var(--color-gray900);
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 170%;
}
.l-about-download__text-note {
  display: inline-block;
  text-indent: -0.5em;
  padding-left: 0.5em;
}
.l-about-download__text a {
  color: var(--color-blue900);
  text-decoration: underline;
}
.l-about-download__text b {
  font-weight: 500;
}
.l-about-download__title + .l-about-download__text {
  margin-top: 0.8rem;
}
.l-about-download__text + .l-about-download__text {
  margin-top: 0.8rem;
}
.l-about-download__text--cookie + .l-about-download__text--cookie {
  margin-top: 0.8rem;
}
.l-about-download__cookie {
  margin-top: 1.6rem;
  border-radius: 4px;
  background: var(--color-white);
}
@media only screen and (min-width:769px) {
  .l-about-download__cookie {
    padding: 1.6rem;
  }
}
@media only screen and (max-width:768px) {
  .l-about-download__cookie {
    padding: 4.1025641026vw;
  }
}

/************************************************************
SCREEN SP
*************************************************************/
/************************************************************
SCREEN PC
*************************************************************/
/************************************************************
SCREEN RESPONSIVE
*************************************************************/
.l-about-download {
  padding: 0;
}

/************************************************************
SCREEN RESPONSIVE
*************************************************************/
::placeholder {
  color: var(--color-gray400);
}

input[type=text],
input[type=tel],
input[type=email],
input[type=date],
input[type=url],
input[type=num],
select,
textarea {
  width: 100%;
  font-weight: 400;
  color: var(--color-gray900);
  background-color: var(--color-white);
  border: 1px solid var(--color-gray300);
  border-radius: 0.4rem;
}
@media only screen and (min-width:769px) {
  input[type=text],
input[type=tel],
input[type=email],
input[type=date],
input[type=url],
input[type=num],
select,
textarea {
    font-size: 1.6rem;
  }
}
@media only screen and (max-width:768px) {
  input[type=text],
input[type=tel],
input[type=email],
input[type=date],
input[type=url],
input[type=num],
select,
textarea {
    font-size: 1.4rem;
  }
}
@media only screen and (min-width:769px) {
  input[type=text],
input[type=tel],
input[type=email],
input[type=date],
input[type=url],
input[type=num],
select,
textarea {
    padding: 1.4rem 1.6rem 1.6rem;
  }
}
@media only screen and (max-width:768px) {
  input[type=text],
input[type=tel],
input[type=email],
input[type=date],
input[type=url],
input[type=num],
select,
textarea {
    padding: 1.65rem 1.6rem;
  }
}
input[type=text].wpcf7-not-valid,
input[type=tel].wpcf7-not-valid,
input[type=email].wpcf7-not-valid,
input[type=date].wpcf7-not-valid,
input[type=url].wpcf7-not-valid,
input[type=num].wpcf7-not-valid,
select.wpcf7-not-valid,
textarea.wpcf7-not-valid {
  border-color: var(--color-red900);
}

.wpcf7-not-valid-tip {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.5;
  color: var(--color-red900);
  margin-top: 0.8rem;
}

.wpcf7-form-control-wrap .wpcf7-form-control .wpcf7-list-item {
  display: block;
  margin: 0;
}
.wpcf7-form-control-wrap .wpcf7-form-control .wpcf7-list-item:nth-child(n+2) {
  margin-top: 1.2rem;
}
.wpcf7-form-control-wrap .wpcf7-form-control .wpcf7-list-item label input[type=radio] {
  width: 0 !important;
  height: 0 !important;
  position: absolute !important;
  display: block !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
.wpcf7-form-control-wrap .wpcf7-form-control .wpcf7-list-item label input[type=radio] + .wpcf7-list-item-label {
  font-size: 1.4rem;
  font-weight: 400;
  position: relative;
  padding-left: 2.4rem;
  cursor: pointer;
}
.wpcf7-form-control-wrap .wpcf7-form-control .wpcf7-list-item label input[type=radio] + .wpcf7-list-item-label::before, .wpcf7-form-control-wrap .wpcf7-form-control .wpcf7-list-item label input[type=radio] + .wpcf7-list-item-label::after {
  content: "";
  width: 1.6rem;
  height: 1.6rem;
  border-radius: 50%;
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  transition: 0.3s;
}
.wpcf7-form-control-wrap .wpcf7-form-control .wpcf7-list-item label input[type=radio] + .wpcf7-list-item-label::before {
  background-color: var(--color-white);
  border: 1px solid var(--color-gray300);
}
.wpcf7-form-control-wrap .wpcf7-form-control .wpcf7-list-item label input[type=radio] + .wpcf7-list-item-label::after {
  background-color: var(--color-white);
  border: 5px solid var(--color-blue900);
  opacity: 0;
}
.wpcf7-form-control-wrap .wpcf7-form-control .wpcf7-list-item label input[type=radio]:checked + .wpcf7-list-item-label::after {
  opacity: 1;
}
.wpcf7-form-control-wrap .wpcf7-form-control .wpcf7-list-item label input[type=checkbox] {
  width: 0 !important;
  height: 0 !important;
  position: absolute !important;
  display: block !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
.wpcf7-form-control-wrap .wpcf7-form-control .wpcf7-list-item label input[type=checkbox] + .wpcf7-list-item-label {
  font-size: 1.4rem;
  font-weight: 400;
  position: relative;
  padding-left: 4rem;
  cursor: pointer;
  overflow: hidden;
}
.wpcf7-form-control-wrap .wpcf7-form-control .wpcf7-list-item label input[type=checkbox] + .wpcf7-list-item-label::before, .wpcf7-form-control-wrap .wpcf7-form-control .wpcf7-list-item label input[type=checkbox] + .wpcf7-list-item-label::after {
  content: "";
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 2px;
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto;
}
.wpcf7-form-control-wrap .wpcf7-form-control .wpcf7-list-item label input[type=checkbox] + .wpcf7-list-item-label::before {
  background-color: var(--color-white);
  border: 1px solid var(--color-gray300);
  transition: background-color 0.2s, border 0.2s;
}
.wpcf7-form-control-wrap .wpcf7-form-control .wpcf7-list-item label input[type=checkbox] + .wpcf7-list-item-label::after {
  content: "\ea06";
  font-family: "icons";
  font-style: normal;
  font-weight: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color: var(--color-white);
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: 0;
  transform: translateY(-200%);
  transition: opacity 0.2s, transform 0.3s;
}
.wpcf7-form-control-wrap .wpcf7-form-control .wpcf7-list-item label input[type=checkbox]:checked + .wpcf7-list-item-label::before {
  background-color: var(--color-blue900);
  border: 1px solid var(--color-blue900);
}
.wpcf7-form-control-wrap .wpcf7-form-control .wpcf7-list-item label input[type=checkbox]:checked + .wpcf7-list-item-label::after {
  opacity: 1;
  transform: translateY(0);
}
.wpcf7-form-control-wrap .wpcf7-form-control.wpcf7-acceptance .wpcf7-list-item {
  text-align: center;
}

/************************************************************
SCREEN RESPONSIVE
*************************************************************/
.fieldset-list {
  color: var(--color-gray900);
  background-color: var(--color-blue100);
}
@media only screen and (min-width:769px) {
  .fieldset-list {
    border-radius: 1.6rem;
  }
}
@media only screen and (max-width:768px) {
  .fieldset-list {
    border-radius: 0.8rem;
  }
}
@media only screen and (min-width:769px) {
  .fieldset-list {
    padding: 4.8rem 5.6rem;
  }
}
@media only screen and (max-width:768px) {
  .fieldset-list {
    padding: 3.2rem 1.6rem;
  }
}
.fieldset-list .fieldset:nth-child(n+2) {
  margin-top: 3.2rem;
}
.fieldset-list .fieldset .label {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.5;
}
html:lang(en) .fieldset-list .fieldset .label {
  font-weight: bold;
}
.fieldset-list .fieldset .label.required {
  display: flex;
  align-items: center;
}
.fieldset-list .fieldset .label.required::after {
  content: "必須";
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.5;
  color: var(--color-red900);
  margin-left: 0.8rem;
}
html:lang(en) .fieldset-list .fieldset .label.required::after {
  content: "Required";
}
html:lang(zh-hans) .fieldset-list .fieldset .label.required::after {
  content: "必填";
}
.fieldset-list .fieldset .input-box {
  margin-top: 0.8rem;
}

.agreement {
  margin-top: 3.2rem;
}
.agreement, .agreement a {
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 1.7;
}
.agreement a {
  color: var(--color-blue900);
  text-decoration: underline;
}

.h-captcha {
  text-align: center;
}
@media only screen and (min-width:769px) {
  .h-captcha {
    margin-top: 3.2rem;
  }
}
@media only screen and (max-width:768px) {
  .h-captcha {
    margin-top: 2.4rem;
  }
}

@media only screen and (min-width:769px) {
  .submit {
    margin-top: 3.2rem;
  }
}
@media only screen and (max-width:768px) {
  .submit {
    margin-top: 2.4rem;
  }
}
.submit input[type=submit] {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.5;
  height: 5.6rem;
  color: var(--color-white);
  background-color: var(--color-blue900);
  border: 1px solid var(--color-blue900);
  display: block;
  padding: 1.6rem;
  margin: 0 auto;
  cursor: pointer;
  transition: background-color var(--hover-opacity-duration) var(--hover-opacity-ease), color var(--hover-opacity-duration) var(--hover-opacity-ease), border-color var(--hover-opacity-duration) var(--hover-opacity-ease);
}
@media only screen and (min-width:769px) {
  .submit input[type=submit] {
    width: 32rem;
  }
}
@media only screen and (max-width:768px) {
  .submit input[type=submit] {
    width: 24rem;
  }
}
@media (hover: hover) {
  .submit input[type=submit]:not(:disabled):hover {
    background-color: var(--color-blue1000);
  }
}
.submit input[type=submit]:disabled {
  background-color: var(--color-gray400);
  border: 1px solid var(--color-gray400);
}
.submit .wpcf7-spinner {
  display: block;
  margin: 1.2rem auto 0;
}

/************************************************************
SCREEN RESPONSIVE
*************************************************************/
.form {
  color: var(--color-gray900);
}
@media only screen and (min-width:769px) {
  .form {
    margin-top: 4rem;
  }
}
@media only screen and (max-width:768px) {
  .form {
    margin-top: 2.4rem;
  }
}
@media only screen and (min-width:769px) {
  .form {
    padding-bottom: 11.6rem;
  }
}
@media only screen and (max-width:768px) {
  .form {
    padding-bottom: 6rem;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwYWdlcy9jb250YWN0L2NvbnRhY3Rfc3R5bGVzL193cGNmNy5zY3NzIiwiX2ZvdW5kYXRpb24vX3ZhcnMuc2NzcyIsIl9mb3VuZGF0aW9uL19mdW5jdGlvbi5zY3NzIiwiX2ZvdW5kYXRpb24vX21lZGlhLnNjc3MiLCJfZm91bmRhdGlvbi9fbWl4aW4uc2NzcyIsIl9mb3VuZGF0aW9uL19pY29uZm9udC5zY3NzIiwicGFnZXMvZG93bmxvYWQvY29udGFjdF9zdHlsZXMvX3BhZ2UtdHRsLnNjc3MiLCJfbGF5b3V0L19hYm91dC1kb3dubG9hZC5zY3NzIiwicGFnZXMvZG93bmxvYWQvY29udGFjdF9zdHlsZXMvX2Fib3V0LWRvd25sb2FkLnNjc3MiLCJwYWdlcy9jb250YWN0L2NvbnRhY3Rfc3R5bGVzL19mb3JtLXBhcnRzLnNjc3MiLCJwYWdlcy9jb250YWN0L2NvbnRhY3Rfc3R5bGVzL19mb3JtLWxheW91dC5zY3NzIiwicGFnZXMvZG93bmxvYWQvY29udGFjdF9zdHlsZXMvX2Zvcm0uc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7RUFDQzs7O0FBRUQ7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7OztBQUdEO0FBQUE7QUFBQTtFQUdDOzs7QUFHRDtFQUNDOzs7QUFHRDtBQUFBO0VBRUM7OztBQUdEO0VBQ0M7OztBQUdEO0FBQUE7QUFBQTtFQUdDOzs7QUFHRDtFQUNDOzs7QUFHRDtFQUNDO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRDtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdEO0VBQ0M7RUFDQTs7O0FBR0Q7QUFBQTtFQUVDOzs7QUFHRDtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdEO0VBQ0M7OztBQUdE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O0FBSUo7RUFDRTs7QVB6REE7RU93REY7SVBsRGdCLFlPb0RrQjs7O0FQdkRoQztFT3FERjtJUGpEZ0IsWU9tRDBCOzs7O0FQMUR4QztFTzZERjtJUHZEZ0IsWU93RGtCOzs7QVAzRGhDO0VPMERGO0lQdERnQixZT3VEMEI7OztBQUN4QztFQUNFO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QVA1RUY7RU8rREE7SVB6RGMsT082RGU7OztBUGhFN0I7RU80REE7SVB4RGMsT080RHNCOzs7QVB4RHBDO0VBQ0U7SU9tRUk7OztBQUdKO0VBQ0U7RUFDQTs7QUFHSjtFQUNFO0VBQ0E7OztBQ25GSjtBQUFBO0FBQUE7QUFJQTtFQUNFOztBUlhBO0VRVUY7SVJKZ0IsWVFNa0I7OztBUlRoQztFUU9GO0lSSGdCLFlRS3dCOzs7QVJadEM7RVFVRjtJUkpnQixnQlFPc0I7OztBUlZwQztFUU9GO0lSSGdCLGdCUU0rQiIsImZpbGUiOiJwYWdlcy9kb3dubG9hZC9jb250YWN0LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi53cGNmNy1yZXNwb25zZS1vdXRwdXQge1xuXHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4ud3BjZjcgLnNjcmVlbi1yZWFkZXItcmVzcG9uc2Uge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcblx0Y2xpcC1wYXRoOiBpbnNldCg1MCUpO1xuXHRoZWlnaHQ6IDFweDtcblx0d2lkdGg6IDFweDtcblx0bWFyZ2luOiAtMXB4O1xuXHRwYWRkaW5nOiAwO1xuXHRib3JkZXI6IDA7XG5cdHdvcmQtd3JhcDogbm9ybWFsICFpbXBvcnRhbnQ7XG59XG5cbi53cGNmNyAuaGlkZGVuLWZpZWxkcy1jb250YWluZXIge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4ud3BjZjcgZm9ybSAud3BjZjctcmVzcG9uc2Utb3V0cHV0IHtcblx0bWFyZ2luOiAyZW0gMC41ZW0gMWVtO1xuXHRwYWRkaW5nOiAwLjJlbSAxZW07XG5cdGJvcmRlcjogMnB4IHNvbGlkICMwMGEwZDI7IC8qIEJsdWUgKi9cbn1cblxuLndwY2Y3IGZvcm0uaW5pdCAud3BjZjctcmVzcG9uc2Utb3V0cHV0LFxuLndwY2Y3IGZvcm0ucmVzZXR0aW5nIC53cGNmNy1yZXNwb25zZS1vdXRwdXQsXG4ud3BjZjcgZm9ybS5zdWJtaXR0aW5nIC53cGNmNy1yZXNwb25zZS1vdXRwdXQge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4ud3BjZjcgZm9ybS5zZW50IC53cGNmNy1yZXNwb25zZS1vdXRwdXQge1xuXHRib3JkZXItY29sb3I6ICM0NmI0NTA7IC8qIEdyZWVuICovXG59XG5cbi53cGNmNyBmb3JtLmZhaWxlZCAud3BjZjctcmVzcG9uc2Utb3V0cHV0LFxuLndwY2Y3IGZvcm0uYWJvcnRlZCAud3BjZjctcmVzcG9uc2Utb3V0cHV0IHtcblx0Ym9yZGVyLWNvbG9yOiAjZGMzMjMyOyAvKiBSZWQgKi9cbn1cblxuLndwY2Y3IGZvcm0uc3BhbSAud3BjZjctcmVzcG9uc2Utb3V0cHV0IHtcblx0Ym9yZGVyLWNvbG9yOiAjZjU2ZTI4OyAvKiBPcmFuZ2UgKi9cbn1cblxuLndwY2Y3IGZvcm0uaW52YWxpZCAud3BjZjctcmVzcG9uc2Utb3V0cHV0LFxuLndwY2Y3IGZvcm0udW5hY2NlcHRlZCAud3BjZjctcmVzcG9uc2Utb3V0cHV0LFxuLndwY2Y3IGZvcm0ucGF5bWVudC1yZXF1aXJlZCAud3BjZjctcmVzcG9uc2Utb3V0cHV0IHtcblx0Ym9yZGVyLWNvbG9yOiAjZmZiOTAwOyAvKiBZZWxsb3cgKi9cbn1cblxuLndwY2Y3LWZvcm0tY29udHJvbC13cmFwIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ud3BjZjctbm90LXZhbGlkLXRpcCB7XG5cdGNvbG9yOiAjZGMzMjMyOyAvKiBSZWQgKi9cblx0Zm9udC1zaXplOiAxZW07XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4udXNlLWZsb2F0aW5nLXZhbGlkYXRpb24tdGlwIC53cGNmNy1ub3QtdmFsaWQtdGlwIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR0b3A6IC0yZXg7XG5cdGxlZnQ6IDFlbTtcblx0ei1pbmRleDogMTAwO1xuXHRib3JkZXI6IDFweCBzb2xpZCAjZGMzMjMyO1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRwYWRkaW5nOiAuMmVtIC44ZW07XG5cdHdpZHRoOiAyNGVtO1xufVxuXG4ud3BjZjctbGlzdC1pdGVtIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRtYXJnaW46IDAgMCAwIDFlbTtcbn1cblxuLndwY2Y3LWxpc3QtaXRlbS1sYWJlbDo6YmVmb3JlLFxuLndwY2Y3LWxpc3QtaXRlbS1sYWJlbDo6YWZ0ZXIge1xuXHRjb250ZW50OiBcIiBcIjtcbn1cblxuLndwY2Y3LXNwaW5uZXIge1xuXHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0YmFja2dyb3VuZC1jb2xvcjogIzIzMjgyZDsgLyogRGFyayBHcmF5IDgwMCAqL1xuXHRvcGFjaXR5OiAwLjc1O1xuXHR3aWR0aDogMjRweDtcblx0aGVpZ2h0OiAyNHB4O1xuXHRib3JkZXI6IG5vbmU7XG5cdGJvcmRlci1yYWRpdXM6IDEwMCU7XG5cdHBhZGRpbmc6IDA7XG5cdG1hcmdpbjogMCAyNHB4O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbmZvcm0uc3VibWl0dGluZyAud3BjZjctc3Bpbm5lciB7XG5cdHZpc2liaWxpdHk6IHZpc2libGU7XG59XG5cbi53cGNmNy1zcGlubmVyOjpiZWZvcmUge1xuXHRjb250ZW50OiAnJztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmJmYmZjOyAvKiBMaWdodCBHcmF5IDEwMCAqL1xuXHR0b3A6IDRweDtcblx0bGVmdDogNHB4O1xuXHR3aWR0aDogNnB4O1xuXHRoZWlnaHQ6IDZweDtcblx0Ym9yZGVyOiBub25lO1xuXHRib3JkZXItcmFkaXVzOiAxMDAlO1xuXHR0cmFuc2Zvcm0tb3JpZ2luOiA4cHggOHB4O1xuXHRhbmltYXRpb24tbmFtZTogc3Bpbjtcblx0YW5pbWF0aW9uLWR1cmF0aW9uOiAxMDAwbXM7XG5cdGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcblx0YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cdC53cGNmNy1zcGlubmVyOjpiZWZvcmUge1xuXHRcdGFuaW1hdGlvbi1uYW1lOiBibGluaztcblx0XHRhbmltYXRpb24tZHVyYXRpb246IDIwMDBtcztcblx0fVxufVxuXG5Aa2V5ZnJhbWVzIHNwaW4ge1xuXHRmcm9tIHtcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcblx0fVxuXG5cdHRvIHtcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgYmxpbmsge1xuXHRmcm9tIHtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG5cblx0NTAlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG5cblx0dG8ge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cbn1cblxuLndwY2Y3IFtpbmVydF0ge1xuXHRvcGFjaXR5OiAwLjU7XG59XG5cbi53cGNmNyBpbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG5cdGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLndwY2Y3IGlucHV0W3R5cGU9XCJmaWxlXCJdOmRpc2FibGVkIHtcblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4ud3BjZjcgLndwY2Y3LXN1Ym1pdDpkaXNhYmxlZCB7XG5cdGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi53cGNmNyBpbnB1dFt0eXBlPVwidXJsXCJdLFxuLndwY2Y3IGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbi53cGNmNyBpbnB1dFt0eXBlPVwidGVsXCJdIHtcblx0ZGlyZWN0aW9uOiBsdHI7XG59XG5cbi53cGNmNy1yZWZsZWN0aW9uID4gb3V0cHV0IHtcblx0ZGlzcGxheTogbGlzdC1pdGVtO1xuXHRsaXN0LXN0eWxlOiBub25lO1xufVxuXG4ud3BjZjctcmVmbGVjdGlvbiA+IG91dHB1dFtoaWRkZW5dIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cbiIsIiRzY3JlZW5fc3A6XCJzY3JlZW4gYW5kIChtYXgtd2lkdGg6NzY4cHgpXCI7XG4kc2NyZWVuX3BjOlwic2NyZWVuIGFuZCAobWluLXdpZHRoOjc2OXB4KVwiO1xuXG4kc2NyZWVuX2hlYWRlcl9zcDpcInNjcmVlbiBhbmQgKG1heC13aWR0aDoxMDgwcHgpXCI7XG4kc2NyZWVuX2hlYWRlcl9wYzpcInNjcmVlbiBhbmQgKG1pbi13aWR0aDoxMDgxcHgpXCI7XG5cbjpyb290IHtcbiAgLS1wYy1jb250ZW50cy1tYXgtd2lkdGg6MTIwMHB4OyAvL1BD44Gu44Kz44Oz44OG44Oz44OE5bmF44Gu5pyA5aSnXG4gIC0tei1pbmRleC1oZWFkZXI6MTAwMDsgLy/jg5jjg4Pjg4Djg7zjga56LWluZGV4XG5cbiAgLy/pgI/pgY7jgoToibLlpInmm7Tns7vjga7jgqLjg4vjg6Hjg7zjgrfjg6fjg7PlgKRcbiAgLS1ob3Zlci1vcGFjaXR5LWR1cmF0aW9uOi4ycztcbiAgLS1ob3Zlci1vcGFjaXR5LWVhc2U6ZWFzZTtcblxuICAtLWNvbG9yLXdoaXRlOiNGRkZGRkY7XG4gIC0tY29sb3ItYmxhY2s6IzAwMDAwMDtcbiAgLS1jb2xvci1ncmF5OTAwOiMyMjIyMjI7XG4gIC0tY29sb3ItZ3JheTgwMDojMzIzMjMyO1xuICAtLWNvbG9yLWdyYXk2MDA6IzUwNTA1MDtcbiAgLS1jb2xvci1ncmF5NTAwOiM2NjY2NjY7XG4gIC0tY29sb3ItZ3JheTQwMDojQjBCMEIwO1xuICAtLWNvbG9yLWdyYXkzMDA6I0Q3RDdENztcbiAgLS1jb2xvci1ncmF5MjAwOiNFREVERUQ7XG4gIC0tY29sb3ItZ3JheTEwMDojRjBGMEYwO1xuICAtLWNvbG9yLWJsdWUxMjAwOiMxRDYwQjA7XG4gIC0tY29sb3ItYmx1ZTEwMDA6IzI1ODhGRTtcbiAgLS1jb2xvci1ibHVlOTAwOiMyNTc3RDg7XG4gIC0tY29sb3ItYmx1ZTgwMDojNDA4NUQ2O1xuICAtLWNvbG9yLWJsdWU0MDA6I0E2QzVFNTtcbiAgLS1jb2xvci1ibHVlMzAwOiNDMEQ5RjI7XG4gIC0tY29sb3ItYmx1ZTIwMDojRUFGM0ZDO1xuICAtLWNvbG9yLWJsdWUxMDA6I0YwRjZGQjtcbiAgLS1jb2xvci1ncmVlbjEwMDojRERGMUQ5O1xuICAtLWNvbG9yLXJlZDkwMDojRUUyRjM0O1xufVxuXG5cbiIsIkB1c2UgXCJzYXNzOm1hdGhcIjtcblxuLypcbnB444KSdnfjgavlpInmj5tcbiovXG5AZnVuY3Rpb24gZ2V0dncoJHNpemUsICR2aWV3cG9ydDozOTApe1xuICAkcmF0ZTogbWF0aC5kaXYoMTAwLCR2aWV3cG9ydCk7XG4gIEByZXR1cm4gJHJhdGUgKiAkc2l6ZSAqIDF2dztcbn1cblxuLy/vvIXjgpLov5TjgZlcbkBmdW5jdGlvbiBnZXRwZXIoJHNpemUsICRwYXJlbnQpe1xuICAkcmF0ZTogbWF0aC5kaXYoMTAwLCRwYXJlbnQpO1xuICBAcmV0dXJuICRyYXRlICogJHNpemUgKiAxJTtcbn1cblxuLy/ljYrliIbjga7jgrXjgqTjgrrjgpJweOOBp+i/lOOBmVxuQGZ1bmN0aW9uIGdldGhhbGYoJHNpemUpe1xuICBAcmV0dXJuICRzaXplICogMC41cHg7XG59XG5cbi8vcmVt44KS6L+U44GZXG5AZnVuY3Rpb24gZ2V0cmVtKCRzaXplLCAkYmFzZTogMTYpIHtcblx0QHJldHVybiBtYXRoLmRpdigkc2l6ZSwgJGJhc2UpICsgcmVtO1xufVxuXG4vL2xpbmUtaGVpZ2h044GuZW3jgpLoqIjnrpdcbkBmdW5jdGlvbiBnZXRsaGVtKCRmb250LXNpemUsICRsaW5lLWhlaWdodCkge1xuXHRAcmV0dXJuIG1hdGguZGl2KCRsaW5lLWhlaWdodCwkZm9udC1zaXplKSArIGVtO1xufVxuXG4vL2xldHRlci1zcGFjaW5n44GuZW3jgpLoqIjnrpdcbkBmdW5jdGlvbiBnZXRsc2VtKCRmb250LXNpemUsICRweCkge1xuXHRAcmV0dXJuIG1hdGguZGl2KCRweCwkZm9udC1zaXplKSArIGVtO1xufSIsIkB1c2UgXCIuLi9fZm91bmRhdGlvbi92YXJzXCIgYXMgdmFycztcblxuQG1peGluIHBjIHtcbiAgQG1lZGlhIG9ubHkgI3t2YXJzLiRzY3JlZW5fcGN9IHsgQGNvbnRlbnQ7IH1cbn1cbkBtaXhpbiBzcCB7XG4gIEBtZWRpYSBvbmx5ICN7dmFycy4kc2NyZWVuX3NwfSB7IEBjb250ZW50OyB9XG59XG5AbWl4aW4gcmVzcCgkYXRyLCAkcGMsICRzcCkge1xuICBAaW5jbHVkZSBwYyB7ICN7JGF0cn06ICRwYzsgfVxuICBAaW5jbHVkZSBzcCB7ICN7JGF0cn06ICRzcDsgfVxufVxuXG5AbWl4aW4gaG92ZXJ7XG4gIEBtZWRpYShob3Zlcjpob3Zlcikge1xuICAgICY6aG92ZXJ7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuaGVhZGVy55SoXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AbWl4aW4gaGVhZGVyX3BjIHtcbiAgQG1lZGlhIG9ubHkgI3t2YXJzLiRzY3JlZW5faGVhZGVyX3BjfSB7IEBjb250ZW50OyB9XG59XG5AbWl4aW4gaGVhZGVyX3NwIHtcbiAgQG1lZGlhIG9ubHkgI3t2YXJzLiRzY3JlZW5faGVhZGVyX3NwfSB7IEBjb250ZW50OyB9XG59XG5AbWl4aW4gaGVhZGVyX3Jlc3AoJGF0ciwgJHBjLCAkc3ApIHtcbiAgQGluY2x1ZGUgaGVhZGVyX3BjIHsgI3skYXRyfTogJHBjOyB9XG4gIEBpbmNsdWRlIGhlYWRlcl9zcCB7ICN7JGF0cn06ICRzcDsgfVxufVxuIiwiQHVzZSBcInNhc3M6bWF0aFwiO1xuQHVzZSBcIi4vbWVkaWFcIiBhcyBtZWRpYTtcblxuLypcbuODoeODh+OCo+OCouOCr+OCqOODqlxu6KiY6L+w5L6LXG5ib2R5e1xuICBAaW5jbHVkZSBtaXhpbi5tcy13KCdtYXgnLDEyMDApe1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDtcbiAgfVxufVxuKi9cbkBtaXhpbiBtcy13KCRtYXhtaW4sJHZhbCl7XG4gIEBtZWRpYSBzY3JlZW4gYW5kICgjeyRtYXhtaW59LXdpZHRoOiN7JHZhbH1weCl7XG4gICAgQGNvbnRlbnQ7XG4gIH07XG59XG5cbi8qXG7jg5Xjgqnjg7zjg6Djg6rjgrvjg4Pjg4hcbiovXG5AbWl4aW4gZm9ybS1yZXNldHtcbiAgYnV0dG9uLFxuICBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBjb2xvcjppbmhlcml0O1xuICB9XG5cbiAgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4gIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4gIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXG4gIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbiAgaW5wdXRbdHlwZT1cInVybFwiXSxcbiAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuICB0ZXh0YXJlYXtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICB9XG59XG5cbi8qXG5JQ09OIEZPTlRcbiovXG5cbkBtaXhpbiBpY29ucy1mb250e1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcImljb25zXCI7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG5AbWl4aW4gaWNvbnMteHsgY29udGVudDogXCJcXEVBMDRcIjsgQGluY2x1ZGUgaWNvbnMtZm9udDsgfVxuQG1peGluIGljb25zLWZhY2Vib29reyBjb250ZW50OiBcIlxcRUEwNVwiOyBAaW5jbHVkZSBpY29ucy1mb250OyB9XG5AbWl4aW4gaWNvbnMtaW5zdGFncmFteyBjb250ZW50OiBcIlxcRUEwNlwiOyBAaW5jbHVkZSBpY29ucy1mb250OyB9XG5AbWl4aW4gaWNvbnMteW91dHViZXsgY29udGVudDogXCJcXEVBMDdcIjsgQGluY2x1ZGUgaWNvbnMtZm9udDsgfVxuQG1peGluIGljb25zLWxpbmV7IGNvbnRlbnQ6IFwiXFxFQTA4XCI7IEBpbmNsdWRlIGljb25zLWZvbnQ7IH1cblxuQG1peGluIGRyb3BzaGFkb3dGcmFtZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcbiAgYm9yZGVyLXJhZGl1czogMS42cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIEBpbmNsdWRlIG1lZGlhLnJlc3AocGFkZGluZyw0cmVtLDIuNHJlbSAxLjZyZW0pO1xuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiAwLjhyZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmx1ZTEyMDApO1xuICAgIGZpbHRlcjogYmx1cigxLjZyZW0pO1xuICAgIGJvcmRlci1yYWRpdXM6IDEuNnJlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwLjhyZW07XG4gICAgbGVmdDogMC44cmVtO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIG9wYWNpdHk6IDAuMjtcbiAgfVxufVxuXG5AbWl4aW4gaGlkZSB7XG4gIHdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMCAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7XG59IiwiW2NsYXNzXj1cImljb25zLVwiXSwgW2NsYXNzKj1cIiBpY29ucy1cIl17XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtZmFtaWx5OiBcImljb25zXCI7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cbi5pY29ucy1hcnJvdy0xOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxFQTAxXCIgfVxuLmljb25zLWFycm93LTI6YmVmb3JlIHsgY29udGVudDogXCJcXEVBMDJcIiB9XG4uaWNvbnMtc2VhcmNoOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxFQTAzXCIgfVxuLmljb25zLWxhbmc6YmVmb3JlIHsgY29udGVudDogXCJcXEVBMDRcIiB9XG4uaWNvbnMtY2lyY2xlLXBsdXM6YmVmb3JlIHsgY29udGVudDogXCJcXEVBMDVcIiB9XG4uaWNvbnMtY2hlY2s6YmVmb3JlIHsgY29udGVudDogXCJcXEVBMDZcIiB9XG4uaWNvbnMtY2xvc2U6YmVmb3JlIHsgY29udGVudDogXCJcXEVBMDdcIiB9XG4uaWNvbnMtc2xhc2g6YmVmb3JlIHsgY29udGVudDogXCJcXEVBMDhcIiB9XG4uaWNvbnMtZG93bmxvYWQ6YmVmb3JlIHsgY29udGVudDogXCJcXEVBMDlcIiB9XG4uaWNvbnMtYmxhbms6YmVmb3JlIHsgY29udGVudDogXCJcXEVBMEFcIiB9XG4uaWNvbnMtY2lyY2xlLW1pbnVzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxFQTBCXCIgfVxuLmljb25zLWJsZGc6YmVmb3JlIHsgY29udGVudDogXCJcXEVBMENcIiB9XG4uaWNvbnMtcGVuOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxFQTBEXCIgfVxuLmljb25zLWZsb3c6YmVmb3JlIHsgY29udGVudDogXCJcXEVBMEVcIiB9XG4uaWNvbnMtcHJpemU6YmVmb3JlIHsgY29udGVudDogXCJcXEVBMEZcIiB9XG4uaWNvbnMtZ2xvYmFsOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxFQTEwXCIgfVxuLmljb25zLXN0cmVuZ3RoOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxFQTExXCIgfVxuLmljb25zLXRlbDpiZWZvcmUgeyBjb250ZW50OiBcIlxcRUExMlwiIH1cbi5pY29ucy1tYWlsOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxFQTEzXCIgfVxuLmljb25zLXdha2FiYTpiZWZvcmUgeyBjb250ZW50OiBcIlxcRUExNFwiIH1cbi5pY29ucy1mYXE6YmVmb3JlIHsgY29udGVudDogXCJcXEVBMTVcIiB9XG4uaWNvbnMteDpiZWZvcmUgeyBjb250ZW50OiBcIlxcRUExNlwiIH1cbi5pY29ucy1mYWNlYm9vazpiZWZvcmUgeyBjb250ZW50OiBcIlxcRUExN1wiIH1cbi5pY29ucy1pbnN0YWdyYW06YmVmb3JlIHsgY29udGVudDogXCJcXEVBMThcIiB9XG4uaWNvbnMteW91dHViZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcRUExOVwiIH1cbi5pY29ucy1saW5lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxFQTFBXCIgfVxuXG5cbi8qXG5taXhpblxuKi9cblxuQG1peGluIGljb25zLWZvbnR7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtZmFtaWx5OiBcImljb25zXCI7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuQG1peGluIGljb25zLWFycm93LTEgeyBjb250ZW50OiBcIlxcRUEwMVwiOyBAaW5jbHVkZSBpY29ucy1mb250OyB9XG5AbWl4aW4gaWNvbnMtYXJyb3ctMiB7IGNvbnRlbnQ6IFwiXFxFQTAyXCI7IEBpbmNsdWRlIGljb25zLWZvbnQ7IH1cbkBtaXhpbiBpY29ucy1zZWFyY2ggeyBjb250ZW50OiBcIlxcRUEwM1wiOyBAaW5jbHVkZSBpY29ucy1mb250OyB9XG5AbWl4aW4gaWNvbnMtbGFuZyB7IGNvbnRlbnQ6IFwiXFxFQTA0XCI7IEBpbmNsdWRlIGljb25zLWZvbnQ7IH1cbkBtaXhpbiBpY29ucy1jaXJjbGUtcGx1cyB7IGNvbnRlbnQ6IFwiXFxFQTA1XCI7IEBpbmNsdWRlIGljb25zLWZvbnQ7IH1cbkBtaXhpbiBpY29ucy1jaGVjayB7IGNvbnRlbnQ6IFwiXFxFQTA2XCI7IEBpbmNsdWRlIGljb25zLWZvbnQ7IH1cbkBtaXhpbiBpY29ucy1jbG9zZSB7IGNvbnRlbnQ6IFwiXFxFQTA3XCI7IEBpbmNsdWRlIGljb25zLWZvbnQ7IH1cbkBtaXhpbiBpY29ucy1zbGFzaCB7IGNvbnRlbnQ6IFwiXFxFQTA4XCI7IEBpbmNsdWRlIGljb25zLWZvbnQ7IH1cbkBtaXhpbiBpY29ucy1kb3dubG9hZCB7IGNvbnRlbnQ6IFwiXFxFQTA5XCI7IEBpbmNsdWRlIGljb25zLWZvbnQ7IH1cbkBtaXhpbiBpY29ucy1ibGFuayB7IGNvbnRlbnQ6IFwiXFxFQTBBXCI7IEBpbmNsdWRlIGljb25zLWZvbnQ7IH1cbkBtaXhpbiBpY29ucy1jaXJjbGUtbWludXMgeyBjb250ZW50OiBcIlxcRUEwQlwiOyBAaW5jbHVkZSBpY29ucy1mb250OyB9XG5AbWl4aW4gaWNvbnMtYmxkZyB7IGNvbnRlbnQ6IFwiXFxFQTBDXCI7IEBpbmNsdWRlIGljb25zLWZvbnQ7IH1cbkBtaXhpbiBpY29ucy1wZW4geyBjb250ZW50OiBcIlxcRUEwRFwiOyBAaW5jbHVkZSBpY29ucy1mb250OyB9XG5AbWl4aW4gaWNvbnMtZmxvdyB7IGNvbnRlbnQ6IFwiXFxFQTBFXCI7IEBpbmNsdWRlIGljb25zLWZvbnQ7IH1cbkBtaXhpbiBpY29ucy1wcml6ZSB7IGNvbnRlbnQ6IFwiXFxFQTBGXCI7IEBpbmNsdWRlIGljb25zLWZvbnQ7IH1cbkBtaXhpbiBpY29ucy1nbG9iYWwgeyBjb250ZW50OiBcIlxcRUExMFwiOyBAaW5jbHVkZSBpY29ucy1mb250OyB9XG5AbWl4aW4gaWNvbnMtc3RyZW5ndGggeyBjb250ZW50OiBcIlxcRUExMVwiOyBAaW5jbHVkZSBpY29ucy1mb250OyB9XG5AbWl4aW4gaWNvbnMtdGVsIHsgY29udGVudDogXCJcXEVBMTJcIjsgQGluY2x1ZGUgaWNvbnMtZm9udDsgfVxuQG1peGluIGljb25zLW1haWwgeyBjb250ZW50OiBcIlxcRUExM1wiOyBAaW5jbHVkZSBpY29ucy1mb250OyB9XG5AbWl4aW4gaWNvbnMtd2FrYWJhIHsgY29udGVudDogXCJcXEVBMTRcIjsgQGluY2x1ZGUgaWNvbnMtZm9udDsgfVxuQG1peGluIGljb25zLWZhcSB7IGNvbnRlbnQ6IFwiXFxFQTE1XCI7IEBpbmNsdWRlIGljb25zLWZvbnQ7IH1cbkBtaXhpbiBpY29ucy14IHsgY29udGVudDogXCJcXEVBMTZcIjsgQGluY2x1ZGUgaWNvbnMtZm9udDsgfVxuQG1peGluIGljb25zLWZhY2Vib29rIHsgY29udGVudDogXCJcXEVBMTdcIjsgQGluY2x1ZGUgaWNvbnMtZm9udDsgfVxuQG1peGluIGljb25zLWluc3RhZ3JhbSB7IGNvbnRlbnQ6IFwiXFxFQTE4XCI7IEBpbmNsdWRlIGljb25zLWZvbnQ7IH1cbkBtaXhpbiBpY29ucy15b3V0dWJlIHsgY29udGVudDogXCJcXEVBMTlcIjsgQGluY2x1ZGUgaWNvbnMtZm9udDsgfVxuQG1peGluIGljb25zLWxpbmUgeyBjb250ZW50OiBcIlxcRUExQVwiOyBAaW5jbHVkZSBpY29ucy1mb250OyB9XG5cbiIsIkB1c2UgXCIuLi8uLi8uLi9fZm91bmRhdGlvbi92YXJzXCIgYXMgdmFycztcbkB1c2UgXCIuLi8uLi8uLi9fZm91bmRhdGlvbi9mdW5jdGlvblwiIGFzIGZ1bmM7XG5AdXNlIFwiLi4vLi4vLi4vX2ZvdW5kYXRpb24vbWl4aW5cIiBhcyBtaXhpbjtcbkB1c2UgXCIuLi8uLi8uLi9fZm91bmRhdGlvbi9tZWRpYVwiIGFzIG1lZGlhO1xuQHVzZSBcIi4uLy4uLy4uL19mb3VuZGF0aW9uL2ljb25mb250XCIgYXMgaWNvbnM7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblNDUkVFTiBSRVNQT05TSVZFXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLmMtcGFnZS10dGx7XG4gIEBpbmNsdWRlIG1lZGlhLnJlc3AocGFkZGluZy10b3AsIDUuNnJlbSwgMy4zcmVtKTtcbiAgQGluY2x1ZGUgbWVkaWEucmVzcChwYWRkaW5nLWJvdHRvbSwgNi40cmVtLCA0LjhyZW0pO1xuICAmX19tYWlue1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuIiwiQHVzZSBcIi4uL19mb3VuZGF0aW9uL3ZhcnNcIiBhcyB2YXJzO1xuQHVzZSBcIi4uL19mb3VuZGF0aW9uL2Z1bmN0aW9uXCIgYXMgZnVuYztcbkB1c2UgXCIuLi9fZm91bmRhdGlvbi9taXhpblwiIGFzIG1peGluO1xuQHVzZSBcIi4uL19mb3VuZGF0aW9uL21lZGlhXCIgYXMgbWVkaWE7XG5AdXNlIFwiLi4vX2ZvdW5kYXRpb24vaWNvbmZvbnRcIiBhcyBpY29ucztcblxuLypcbipcbkNUQSDjgYrllY/lkIjjgZvjgIDjg6Hjg6vjg57jgqxcbipcbiovXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblNDUkVFTiBSRVNQT05TSVZFXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4ubC1hYm91dC1kb3dubG9hZHtcbiAgQGluY2x1ZGUgbWVkaWEucmVzcChwYWRkaW5nLXRvcCw4cmVtLDYuNHJlbSk7XG4gIHBhZGRpbmctYm90dG9tOiA4cmVtO1xuXG4gICZfX2lubmVye1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5MTAwKTtcbiAgICBAaW5jbHVkZSBtZWRpYS5yZXNwKHBhZGRpbmcsMy4ycmVtLGZ1bmMuZ2V0dncoMjQpIGZ1bmMuZ2V0dncoMTYpIGZ1bmMuZ2V0dncoMTYpKTtcbiAgfVxuICAmX190aXRsZXtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheTkwMCk7XG4gICAgZm9udC1zaXplOjEuOHJlbTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxNTAlO1xuICB9XG4gICZfX3RleHR7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXk5MDApO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE3MCU7XG4gICAgJi1ub3Rle1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdGV4dC1pbmRlbnQ6IC0uNWVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAuNWVtO1xuICAgIH1cbiAgICBhe1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWJsdWU5MDApO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuICAgIGJ7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgIH1cbiAgfVxuICAmX190aXRsZSArICZfX3RleHR7XG4gICAgbWFyZ2luLXRvcDogLjhyZW07XG4gIH1cbiAgJl9fdGV4dCArICZfX3RleHR7XG4gICAgbWFyZ2luLXRvcDogLjhyZW07XG4gIH1cbiAgJl9fdGV4dC0tY29va2llICsgJl9fdGV4dC0tY29va2lle1xuICAgIG1hcmdpbi10b3A6IC44cmVtO1xuICB9XG4gICZfX2Nvb2tpZXtcbiAgICBtYXJnaW4tdG9wOiAxLjZyZW07XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXdoaXRlKTtcbiAgICBAaW5jbHVkZSBtZWRpYS5yZXNwKHBhZGRpbmcsMS42cmVtLGZ1bmMuZ2V0dncoMTYpKTtcbiAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5TQ1JFRU4gU1BcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbkBtZWRpYSAje3ZhcnMuJHNjcmVlbl9zcH17XG5cblxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5TQ1JFRU4gUENcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbkBtZWRpYSAje3ZhcnMuJHNjcmVlbl9wY317XG5cblxufVxuIiwiQHVzZSBcIi4uLy4uLy4uL19mb3VuZGF0aW9uL3ZhcnNcIiBhcyB2YXJzO1xuQHVzZSBcIi4uLy4uLy4uL19mb3VuZGF0aW9uL2Z1bmN0aW9uXCIgYXMgZnVuYztcbkB1c2UgXCIuLi8uLi8uLi9fZm91bmRhdGlvbi9taXhpblwiIGFzIG1peGluO1xuQHVzZSBcIi4uLy4uLy4uL19mb3VuZGF0aW9uL21lZGlhXCIgYXMgbWVkaWE7XG5AdXNlIFwiLi4vLi4vLi4vX2ZvdW5kYXRpb24vaWNvbmZvbnRcIiBhcyBpY29ucztcblxuQHVzZSBcIi4uLy4uL19sYXlvdXQvYWJvdXQtZG93bmxvYWRcIjtcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuU0NSRUVOIFJFU1BPTlNJVkVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi5sLWFib3V0LWRvd25sb2FkIHtcbiAgcGFkZGluZzogMDtcbn1cbiIsIkB1c2UgXCIuLi8uLi8uLi9fZm91bmRhdGlvbi92YXJzXCIgYXMgdmFycztcbkB1c2UgXCIuLi8uLi8uLi9fZm91bmRhdGlvbi9mdW5jdGlvblwiIGFzIGZ1bmM7XG5AdXNlIFwiLi4vLi4vLi4vX2ZvdW5kYXRpb24vbWl4aW5cIiBhcyBtaXhpbjtcbkB1c2UgXCIuLi8uLi8uLi9fZm91bmRhdGlvbi9tZWRpYVwiIGFzIG1lZGlhO1xuQHVzZSBcIi4uLy4uLy4uL19mb3VuZGF0aW9uL2ljb25mb250XCIgYXMgaWNvbnM7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblNDUkVFTiBSRVNQT05TSVZFXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5NDAwKTtcbn1cblxuaW5wdXRbdHlwZT1cInRleHRcIl0sXG5pbnB1dFt0eXBlPVwidGVsXCJdLFxuaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuaW5wdXRbdHlwZT1cImRhdGVcIl0sXG5pbnB1dFt0eXBlPVwidXJsXCJdLFxuaW5wdXRbdHlwZT1cIm51bVwiXSxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgd2lkdGg6IDEwMCU7XG4gIEBpbmNsdWRlIG1lZGlhLnJlc3AoZm9udC1zaXplLCAxLjZyZW0sIDEuNHJlbSk7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5OTAwKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5MzAwKTtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xuICBAaW5jbHVkZSBtZWRpYS5yZXNwKHBhZGRpbmcsIDEuNHJlbSAxLjZyZW0gMS42cmVtLCAxLjY1cmVtIDEuNnJlbSk7XG4gICYud3BjZjctbm90LXZhbGlkIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXJlZDkwMCk7XG4gIH1cbn1cblxuLndwY2Y3LW5vdC12YWxpZC10aXAge1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXJlZDkwMCk7XG4gIG1hcmdpbi10b3A6IDAuOHJlbTtcbn1cblxuLndwY2Y3LWZvcm0tY29udHJvbC13cmFwIHtcbiAgLndwY2Y3LWZvcm0tY29udHJvbCB7XG4gICAgLndwY2Y3LWxpc3QtaXRlbSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgICY6bnRoLWNoaWxkKG4rMikge1xuICAgICAgICBtYXJnaW4tdG9wOiAxLjJyZW07XG4gICAgICB9XG4gICAgICBsYWJlbCB7XG4gICAgICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICAgICAgQGluY2x1ZGUgbWl4aW4uaGlkZTtcbiAgICAgICAgICArIC53cGNmNy1saXN0LWl0ZW0tbGFiZWwge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBjYWxjKDEuNnJlbSArIDAuOHJlbSk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAmOjpiZWZvcmUsICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgIHdpZHRoOiAxLjZyZW07XG4gICAgICAgICAgICAgIGhlaWdodDogMS42cmVtO1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgIHRyYW5zaXRpb246IDAuM3M7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG4gICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXkzMDApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG4gICAgICAgICAgICAgIGJvcmRlcjogNXB4IHNvbGlkIHZhcigtLWNvbG9yLWJsdWU5MDApO1xuICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAmOmNoZWNrZWQgKyAud3BjZjctbGlzdC1pdGVtLWxhYmVsIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICAgICAgICBAaW5jbHVkZSBtaXhpbi5oaWRlO1xuICAgICAgICAgICsgLndwY2Y3LWxpc3QtaXRlbS1sYWJlbCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoMi40cmVtICsgMS42cmVtKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAmOjpiZWZvcmUsICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgIHdpZHRoOiAyLjRyZW07XG4gICAgICAgICAgICAgIGhlaWdodDogMi40cmVtO1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG4gICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXkzMDApO1xuICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMsIGJvcmRlciAwLjJzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICBjb250ZW50OiAnXFxFQTA2JztcbiAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IFwiaWNvbnNcIjtcbiAgICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAgICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwMCUpO1xuICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMsIHRyYW5zZm9ybSAwLjNzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAmOmNoZWNrZWQgKyAud3BjZjctbGlzdC1pdGVtLWxhYmVsIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJsdWU5MDApO1xuICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ibHVlOTAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAmLndwY2Y3LWFjY2VwdGFuY2Uge1xuICAgICAgLndwY2Y3LWxpc3QtaXRlbSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJAdXNlIFwiLi4vLi4vLi4vX2ZvdW5kYXRpb24vdmFyc1wiIGFzIHZhcnM7XG5AdXNlIFwiLi4vLi4vLi4vX2ZvdW5kYXRpb24vZnVuY3Rpb25cIiBhcyBmdW5jO1xuQHVzZSBcIi4uLy4uLy4uL19mb3VuZGF0aW9uL21peGluXCIgYXMgbWl4aW47XG5AdXNlIFwiLi4vLi4vLi4vX2ZvdW5kYXRpb24vbWVkaWFcIiBhcyBtZWRpYTtcbkB1c2UgXCIuLi8uLi8uLi9fZm91bmRhdGlvbi9pY29uZm9udFwiIGFzIGljb25zO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5TQ1JFRU4gUkVTUE9OU0lWRVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLmZpZWxkc2V0LWxpc3Qge1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheTkwMCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJsdWUxMDApO1xuICBAaW5jbHVkZSBtZWRpYS5yZXNwKGJvcmRlci1yYWRpdXMsIDEuNnJlbSwgMC44cmVtKTtcbiAgQGluY2x1ZGUgbWVkaWEucmVzcChwYWRkaW5nLCA0LjhyZW0gNS42cmVtLCAzLjJyZW0gMS42cmVtKTtcbiAgLmZpZWxkc2V0IHtcbiAgICAmOm50aC1jaGlsZChuKzIpIHtcbiAgICAgIG1hcmdpbi10b3A6IDMuMnJlbTtcbiAgICB9XG4gICAgLmxhYmVsIHtcbiAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICBodG1sOmxhbmcoZW4pICYgeyBmb250LXdlaWdodDogYm9sZDsgfVxuICAgICAgJi5yZXF1aXJlZCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiAn5b+F6aCIJztcbiAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1yZWQ5MDApO1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjhyZW07XG5cbiAgICAgICAgfVxuICAgICAgICBodG1sOmxhbmcoZW4pICY6OmFmdGVyIHsgY29udGVudDogJ1JlcXVpcmVkJzsgfVxuICAgICAgICBodG1sOmxhbmcoemgtaGFucykgJjo6YWZ0ZXIgeyBjb250ZW50OiAn5b+F5aGrJzsgfVxuICAgICAgfVxuICAgIH1cbiAgICAuaW5wdXQtYm94IHtcbiAgICAgIG1hcmdpbi10b3A6IDAuOHJlbTtcbiAgICB9XG4gIH1cbn1cblxuLmFncmVlbWVudCB7XG4gIG1hcmdpbi10b3A6IDMuMnJlbTtcbiAgJiwgYSB7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsaW5lLWhlaWdodDogMS43O1xuICB9XG4gIGEge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ibHVlOTAwKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgfVxufVxuXG4uaC1jYXB0Y2hhIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBAaW5jbHVkZSBtZWRpYS5yZXNwKG1hcmdpbi10b3AsIDMuMnJlbSwgMi40cmVtKTtcbn1cblxuLnN1Ym1pdCB7XG4gIEBpbmNsdWRlIG1lZGlhLnJlc3AobWFyZ2luLXRvcCwgMy4ycmVtLCAyLjRyZW0pO1xuICBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgQGluY2x1ZGUgbWVkaWEucmVzcCh3aWR0aCwgMzJyZW0sIDI0cmVtKTtcbiAgICBoZWlnaHQ6IDUuNnJlbTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJsdWU5MDApO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJsdWU5MDApO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDEuNnJlbTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS1ob3Zlci1vcGFjaXR5LWR1cmF0aW9uKSB2YXIoLS1ob3Zlci1vcGFjaXR5LWVhc2UpLGNvbG9yIHZhcigtLWhvdmVyLW9wYWNpdHktZHVyYXRpb24pIHZhcigtLWhvdmVyLW9wYWNpdHktZWFzZSksYm9yZGVyLWNvbG9yIHZhcigtLWhvdmVyLW9wYWNpdHktZHVyYXRpb24pIHZhcigtLWhvdmVyLW9wYWNpdHktZWFzZSk7XG4gICAgJjpub3QoOmRpc2FibGVkKSB7XG4gICAgICBAaW5jbHVkZSBtZWRpYS5ob3ZlcntcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmx1ZTEwMDApO1xuICAgICAgfVxuICAgIH1cbiAgICAmOmRpc2FibGVkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyYXk0MDApO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheTQwMCk7XG4gICAgfVxuICB9XG4gIC53cGNmNy1zcGlubmVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDEuMnJlbSBhdXRvIDA7XG4gIH1cbn0iLCJAdXNlIFwiLi4vLi4vLi4vX2ZvdW5kYXRpb24vdmFyc1wiIGFzIHZhcnM7XG5AdXNlIFwiLi4vLi4vLi4vX2ZvdW5kYXRpb24vZnVuY3Rpb25cIiBhcyBmdW5jO1xuQHVzZSBcIi4uLy4uLy4uL19mb3VuZGF0aW9uL21peGluXCIgYXMgbWl4aW47XG5AdXNlIFwiLi4vLi4vLi4vX2ZvdW5kYXRpb24vbWVkaWFcIiBhcyBtZWRpYTtcbkB1c2UgXCIuLi8uLi8uLi9fZm91bmRhdGlvbi9pY29uZm9udFwiIGFzIGljb25zO1xuXG5AdXNlIFwiLi4vLi4vY29udGFjdC9jb250YWN0X3N0eWxlcy9mb3JtLXBhcnRzXCI7XG5AdXNlIFwiLi4vLi4vY29udGFjdC9jb250YWN0X3N0eWxlcy9mb3JtLWxheW91dFwiO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5TQ1JFRU4gUkVTUE9OU0lWRVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLmZvcm0ge1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheTkwMCk7XG4gIEBpbmNsdWRlIG1lZGlhLnJlc3AobWFyZ2luLXRvcCwgNHJlbSwgMi40cmVtKTtcbiAgQGluY2x1ZGUgbWVkaWEucmVzcChwYWRkaW5nLWJvdHRvbSwgMTEuNnJlbSwgNnJlbSk7XG59Il19 */