@charset "UTF-8";
/**
 * pages/login — 로그인(로그인_1) 페이지 전용 레이아웃.
 * 공통 컴포넌트 재사용, 이 페이지 고유 배치만. head { "css": "login" }.
 */
/**
 * SCSS 변수 (연산/믹스인용) — CSS 출력 없음(어디서 @use 해도 중복 없음).
 * :root 토큰은 _tokens.scss 에서 출력.
 */
/* 레이아웃 폭 (PC 전용) */
/**
 * 타이포 스케일 (단일 소스) — @Guide_Typography 기준. key = font-size(px).
 * 여기만 고치면 font() 믹스인과 --fs-* / --lh-* 토큰이 함께 갱신됨.
 */
/**
 * pages/login — 로그인(로그인_1) 페이지 전용 레이아웃.
 * 공통 컴포넌트 재사용, 이 페이지 고유 배치만. head { "css": "login" }.
 */
/**
 * 공용 믹스인 — `@use '../common/mixins' as *;`
 */
/**
 * 타이포 스케일 적용(size+line-height 한 쌍). `@include font(20);` → 20px/30px.
 * 허용 키는 $font-scale. weight는 별도(--fw-* 토큰).
 */
/* 중앙 카드형 → 전역 최소폭(#wrap 1200) 해제: 축소 시 좌우 여백이 균등히 줄어
 * fixed 모달과 흐름 콘텐츠 중앙이 항상 일치. (login.css 로드 페이지 한정) */
#wrap {
  min-width: 0;
}

/* 이 화면군 한정 — 푸터 .inner 도 축소 시 좌우 패딩만 줄여 가로 오버플로 방지 */
.inner {
  width: 100%;
  max-width: calc(var(--content-width) + 48px);
  padding: 0 24px;
}

.login {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: calc(100vh - 140px);
  padding: 40px 0 60px;
  background: var(--n-50);
}

/* 카드 (폭 536 = 440 + 좌우 48) */
.login-box {
  width: 536px;
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
}

.login-form {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 40px 48px;
}

.login-heads {
  display: flex;
  flex-direction: column;
  gap: 2px;
  text-align: center;
}

.login-sub {
  font-size: 14px;
  line-height: 20px;
  font-weight: var(--fw-medium);
  color: var(--n-500);
}

.login-title {
  font-size: 24px;
  line-height: 36px;
  font-weight: var(--fw-bold);
  color: var(--n-900);
}

/* 비밀번호 변경(90일 경과) — 안내 문구('90일 마다' 강조) + 규칙 목록 */
.login-desc {
  font-size: 14px;
  line-height: 20px;
  font-weight: var(--fw-medium);
  color: var(--n-600);
  text-align: center;
}
.login-desc b {
  font-weight: var(--fw-bold);
  color: var(--color-point);
}

.login-rules {
  margin: 0;
  padding-left: 20px;
  list-style: disc;
  font-size: 13px;
  line-height: 20px;
  color: var(--n-600);
}
.login-rules li {
  margin: 0;
}

/* 90일 경과 비밀번호 변경 — 눈 아이콘 좌우반전(Figma 인스턴스 scaleX(-1) 대응) */
.pw-expired .login-pw-toggle .ico {
  transform: scaleX(-1);
}

.login-fields {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.login-inputs {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.login-pw {
  position: relative;
}
.login-pw .input {
  padding-right: 44px;
}
.login-pw-toggle {
  position: absolute;
  top: 50%;
  right: 12px;
  transform: translateY(-50%);
  display: inline-flex;
  padding: 0;
  border: 0;
  background: none;
  color: var(--n-500);
  cursor: pointer;
}

/* OTP 인증번호 입력 행 — 기본 숨김, 로그인 시도 후(.is-otp-sent) 노출.
 * Figma: input 332 + gap 8 + button/basic_line 100 = 440 */
.login-otp {
  display: none;
  gap: 8px;
}
.login-otp .input {
  flex: 1 1 auto;
  min-width: 0;
}
.login-otp-btn {
  flex: 0 0 100px;
}

/* 로그인 버튼 라벨 — 기본 '로그인' / OTP 단계 'OTP 인증번호 로그인' */
.login-submit-label-otp {
  display: none;
}

/* OTP 단계 (JS 가 .is-otp-sent 부여) */
.login-form.is-otp-sent .login-otp {
  display: flex;
}
.login-form.is-otp-sent .login-submit-label {
  display: none;
}
.login-form.is-otp-sent .login-submit-label-otp {
  display: inline;
}
.login-form.is-otp-sent {
  /* ID·비밀번호는 입력 완료 상태로 잠김(Figma: N-100). 개발 연동 시 disabled 부여 */
}
.login-form.is-otp-sent .login-inputs > .input,
.login-form.is-otp-sent .login-pw .input {
  background: var(--n-100);
  border-color: var(--n-200);
}

.login-remember {
  gap: 5px;
}

.login-actions {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.login-links {
  display: flex;
  align-items: center;
}
.login-links a {
  flex: 1 1 0;
  font-size: 15px;
  line-height: 22px;
  color: var(--n-600);
  text-align: center;
}

.login-links-sep {
  flex: 0 0 auto;
  width: 1px;
  height: 12px;
  background: var(--n-300);
}

/* 로그인 오류 — 기본 숨김, .is-error 시 노출 */
.login-error {
  display: none;
}

.login-form.is-error .login-error {
  display: flex;
}
.login-form.is-error {
  /* Figma 오류 프레임: 잘못 입력한 OTP 인증번호 칸에 오류 테두리.
     특정 필드만 표시하려면 개발에서 해당 input 에 .is-error 를 붙여도 동일 */
}
.login-form.is-error .login-otp .input {
  border-color: var(--color-error);
}

/* 가입신청 내역 조회 (카드 하단, 상단 구분선) */
.login-inquiry {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 40px 48px;
  /* 상단 구분선은 inset 그림자로 — Figma 는 선을 프레임 안쪽에 그려 높이를 먹지 않는다.
     border-top 으로 두면 이 블록이 212 → 213 이 된다. */
  box-shadow: inset 0 1px 0 var(--n-100);
}
.login-inquiry-text {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.login-inquiry-title {
  font-size: 16px;
  line-height: 24px;
  font-weight: var(--fw-bold);
  color: var(--n-900);
}
.login-inquiry-desc {
  font-size: 13px;
  line-height: 20px;
  color: var(--n-600);
}
.login-inquiry-form {
  display: flex;
  gap: 6px;
}
.login-inquiry-form .input {
  flex: 1 1 0;
  min-width: 0;
}
.login-inquiry-form .btn {
  flex: 0 0 auto;
}

/* 문의 이메일 (카드 아래) */
.login-contact {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  width: 536px;
  padding-top: 30px;
}
.login-contact-desc {
  font-size: 14px;
  line-height: 20px;
  color: var(--n-600);
  text-align: center;
}
.login-contact-mail {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 14px;
  line-height: 20px;
  font-weight: var(--fw-semibold);
  color: var(--n-800);
}
.login-contact-mail .ico {
  color: var(--n-800);
}

/* 회원가입 신청 처리 현황 모달 콘텐츠 (.popup 컴포넌트 안) */
.status-msg {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  width: 100%;
}

/* 상태 아이콘 — N-50 원(80) + 상태 그래픽(멀티컬러) */
.status-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: var(--n-50);
}
.status-icon img {
  width: 48px;
  height: 48px;
}

.status-text {
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  color: var(--n-900);
  text-align: center;
}
.status-text b {
  font-weight: var(--fw-bold);
}

.status-word--apply {
  color: var(--g-600);
}

.status-word--receipt {
  color: var(--db-500);
}

.status-word--approve {
  color: var(--color-point);
}

.status-word--reject {
  color: var(--color-error);
}

.status-info {
  display: flex;
  flex-direction: column;
  gap: 6px;
  width: 100%;
  padding: 20px;
  border: 1px solid var(--n-200);
  border-radius: 10px;
  font-size: 14px;
  line-height: 20px;
}

.status-info-row {
  display: flex;
  align-items: flex-start;
}

.status-info-key {
  flex: 0 0 60px;
  font-weight: var(--fw-bold);
  color: var(--n-900);
}

.status-info-val {
  flex: 1 1 0;
  min-width: 0;
  font-weight: var(--fw-medium);
  color: var(--n-600);
}

/* 약관 동의 모달 (넓은 팝업 690) */
.popup--terms {
  width: 690px;
}

.terms-list {
  display: flex;
  flex-direction: column;
  gap: 30px;
  width: 100%;
}

.terms-block {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* 약관 본문 박스 — Figma 형태 커스텀 스크롤바. 짧은 문구여도 아래 빈 여백으로 스크롤 작동 */
.terms-text {
  box-sizing: border-box;
  height: 190px;
  padding: 20px;
  border-right: 8px solid transparent;
  overflow-y: scroll;
  background: var(--n-40);
  border-radius: 10px;
}
.terms-text::-webkit-scrollbar {
  width: 5px;
}
.terms-text::-webkit-scrollbar-track {
  margin: 8px 0;
  background: transparent;
}
.terms-text::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.2);
  border-radius: 50px;
}

/* 본문 — 짧은 문구 + 아래 빈 여백(스크롤 작동이 눈에 보이도록) */
.terms-text-body {
  min-height: 210px;
  font-size: 14px;
  line-height: 20px;
  font-weight: var(--fw-medium);
  color: #616161;
}

.terms-check {
  gap: 5px;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhZ2VzL2xvZ2luLmNzcyIsInBhZ2VzL2xvZ2luLnNjc3MiLCJjb21tb24vX3ZhcmlhYmxlcy5zY3NzIiwiY29tbW9uL19taXhpbnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnQkFBZ0I7QUNFaEI7OztFQUFBO0FDRkE7OztFQUFBO0FBS0EsbUJBQUE7QUFVQTs7O0VBQUE7QURiQTs7O0VBQUE7QUVGQTs7RUFBQTtBQU1BOzs7RUFBQTtBRkdBO3NEQUFBO0FBRUE7RUFDRSxZQUFBO0FEaUJGOztBQ2RBLHFEQUFBO0FBQ0E7RUFDRSxXQUFBO0VBQ0EsNENBQUE7RUFDQSxlQUFBO0FEaUJGOztBQ2RBO0VBQ0UsYUFBQTtFQUNBLHNCQUFBO0VBQ0EsbUJBQUE7RUFDQSwrQkFBQTtFQUNBLG9CQUFBO0VBQ0EsdUJBQUE7QURpQkY7O0FDZEEsNkJBQUE7QUFDQTtFQUNFLFlBQUE7RUFDQSxnQkFBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7QURpQkY7O0FDZEE7RUFDRSxhQUFBO0VBQ0Esc0JBQUE7RUFDQSxTQUFBO0VBQ0Esa0JBQUE7QURpQkY7O0FDZEE7RUFDRSxhQUFBO0VBQ0Esc0JBQUE7RUFDQSxRQUFBO0VBQ0Esa0JBQUE7QURpQkY7O0FDZEE7RUV0Q0UsZUFBQTtFQUNBLGlCQUFBO0VGdUNBLDZCQUFBO0VBQ0EsbUJBQUE7QURrQkY7O0FDZkE7RUU1Q0UsZUFBQTtFQUNBLGlCQUFBO0VGNkNBLDJCQUFBO0VBQ0EsbUJBQUE7QURtQkY7O0FDaEJBLGlEQUFBO0FBQ0E7RUVuREUsZUFBQTtFQUNBLGlCQUFBO0VGb0RBLDZCQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTtBRG9CRjtBQ2xCRTtFQUNFLDJCQUFBO0VBQ0EseUJBQUE7QURvQko7O0FDaEJBO0VBQ0UsU0FBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUVsRUEsZUFBQTtFQUNBLGlCQUFBO0VGbUVBLG1CQUFBO0FEb0JGO0FDbEJFO0VBQ0UsU0FBQTtBRG9CSjs7QUNoQkEs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QSxRQUFBO0VBQ0EsV0FBQTtFQUNBLGFBQUE7RUFDQSw4QkFBQTtFQUNBLG1CQUFBO0VFdlVBLGVBQUE7RUFDQSxpQkFBQTtBSGtWRjs7QUNSQTtFQUNFLGFBQUE7RUFDQSx1QkFBQTtBRFdGOztBQ1JBO0VBQ0UsY0FBQTtFQUNBLDJCQUFBO0VBQ0EsbUJBQUE7QURXRjs7QUNSQTtFQUNFLFdBQUE7RUFDQSxZQUFBO0VBQ0EsNkJBQUE7RUFDQSxtQkFBQTtBRFdGOztBQ1JBLHlCQUFBO0FBQ0E7RUFDRSxZQUFBO0FEV0Y7O0FDUkE7RUFDRSxhQUFBO0VBQ0Esc0JBQUE7RUFDQSxTQUFBO0VBQ0EsV0FBQTtBRFdGOztBQ1JBO0VBQ0UsYUFBQTtFQUNBLHNCQUFBO0VBQ0EsU0FBQTtBRFdGOztBQ1JBLDJEQUFBO0FBQ0E7RUFDRSxzQkFBQTtFQUNBLGFBQUE7RUFDQSxhQUFBO0VBQ0EsbUNBQUE7RUFDQSxrQkFBQTtFQUNBLHVCQUFBO0VBQ0EsbUJBQUE7QURXRjtBQ1RFO0VBQ0UsVUFBQTtBRFdKO0FDUkU7RUFDRSxhQUFBO0VBQ0EsdUJBQUE7QURVSjtBQ1BFO0VBQ0UsOEJBQUE7RUFDQSxtQkFBQTtBRFNKOztBQ0xBLDBDQUFBO0FBQ0E7RUFDRSxpQkFBQTtFRTFZQSxlQUFBO0VBQ0EsaUJBQUE7RUYyWUEsNkJBQUE7RUFDQSxjQUFBO0FEU0Y7O0FDTkE7RUFDRSxRQUFBO0FEU0YiLCJmaWxlIjoicGFnZXMvbG9naW4uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyoqXG4gKiBwYWdlcy9sb2dpbiDigJQg66Gc6re47J24KOuhnOq3uOyduF8xKSDtjpjsnbTsp4Ag7KCE7JqpIOugiOydtOyVhOybgy5cbiAqIOqzte2GtSDsu7Ttj6zrhIztirgg7J6s7IKs7JqpLCDsnbQg7Y6Y7J207KeAIOqzoOycoCDrsLDsuZjrp4wuIGhlYWQgeyBcImNzc1wiOiBcImxvZ2luXCIgfS5cbiAqL1xuLyoqXG4gKiBTQ1NTIOuzgOyImCAo7Jew7IKwL+uvueyKpOyduOyaqSkg4oCUIENTUyDstpzroKUg7JeG7J2MKOyWtOuUlOyEnCBAdXNlIO2VtOuPhCDspJHrs7Ug7JeG7J2MKS5cbiAqIDpyb290IO2GoO2BsOydgCBfdG9rZW5zLnNjc3Mg7JeQ7IScIOy2nOugpS5cbiAqL1xuLyog66CI7J207JWE7JuDIO2PrSAoUEMg7KCE7JqpKSAqL1xuLyoqXG4gKiDtg4DsnbTtj6wg7Iqk7LyA7J28ICjri6jsnbwg7IaM7IqkKSDigJQgQEd1aWRlX1R5cG9ncmFwaHkg6riw7KSALiBrZXkgPSBmb250LXNpemUocHgpLlxuICog7Jes6riw66eMIOqzoOy5mOuptCBmb250KCkg66+57Iqk7J246rO8IC0tZnMtKiAvIC0tbGgtKiDthqDtgbDsnbQg7ZWo6ruYIOqwseyLoOuQqC5cbiAqL1xuLyoqXG4gKiBwYWdlcy9sb2dpbiDigJQg66Gc6re47J24KOuhnOq3uOyduF8xKSDtjpjsnbTsp4Ag7KCE7JqpIOugiOydtOyVhOybgy5cbiAqIOqzte2GtSDsu7Ttj6zrhIztirgg7J6s7IKs7JqpLCDsnbQg7Y6Y7J207KeAIOqzoOycoCDrsLDsuZjrp4wuIGhlYWQgeyBcImNzc1wiOiBcImxvZ2luXCIgfS5cbiAqL1xuLyoqXG4gKiDqs7Xsmqkg66+57Iqk7J24IOKAlCBgQHVzZSAnLi4vY29tbW9uL21peGlucycgYXMgKjtgXG4gKi9cbi8qKlxuICog7YOA7J207Y+sIOyKpOy8gOydvCDsoIHsmqkoc2l6ZStsaW5lLWhlaWdodCDtlZwg7IyNKS4gYEBpbmNsdWRlIGZvbnQoMjApO2Ag4oaSIDIwcHgvMzBweC5cbiAqIO2XiOyaqSDtgqTripQgJGZvbnQtc2NhbGUuIHdlaWdodOuKlCDrs4Trj4QoLS1mdy0qIO2GoO2BsCkuXG4gKi9cbi8qIOykkeyVmSDsubTrk5ztmJUg4oaSIOyghOyXrSDstZzshoztj60oI3dyYXAgMTIwMCkg7ZW07KCcOiDstpXshowg7IucIOyijOyasCDsl6zrsLHsnbQg6reg65Ox7Z6IIOykhOyWtFxuICogZml4ZWQg66qo64us6rO8IO2dkOumhCDsvZjthZDsuKAg7KSR7JWZ7J20IO2VreyDgSDsnbzsuZguIChsb2dpbi5jc3Mg66Gc65OcIO2OmOydtOyngCDtlZzsoJUpICovXG4jd3JhcCB7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLyog7J20IO2ZlOuptOq1sCDtlZzsoJUg4oCUIO2RuO2EsCAuaW5uZXIg64+EIOy2leyGjCDsi5wg7KKM7JqwIO2MqOuUqeunjCDspITsl6wg6rCA66GcIOyYpOuyhO2UjOuhnCDrsKnsp4AgKi9cbi5pbm5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IGNhbGModmFyKC0tY29udGVudC13aWR0aCkgKyA0OHB4KTtcbiAgcGFkZGluZzogMCAyNHB4O1xufVxuXG4ubG9naW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtaW4taGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTQwcHgpO1xuICBwYWRkaW5nOiA0MHB4IDAgNjBweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tbi01MCk7XG59XG5cbi8qIOy5tOuTnCAo7Y+tIDUzNiA9IDQ0MCArIOyijOyasCA0OCkgKi9cbi5sb2dpbi1ib3gge1xuICB3aWR0aDogNTM2cHg7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5sb2dpbi1mb3JtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAyMHB4O1xuICBwYWRkaW5nOiA0MHB4IDQ4cHg7XG59XG5cbi5sb2dpbi1oZWFkcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5sb2dpbi1zdWIge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBmb250LXdlaWdodDogdmFyKC0tZnctbWVkaXVtKTtcbiAgY29sb3I6IHZhcigtLW4tNTAwKTtcbn1cblxuLmxvZ2luLXRpdGxlIHtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBsaW5lLWhlaWdodDogMzZweDtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LWJvbGQpO1xuICBjb2xvcjogdmFyKC0tbi05MDApO1xufVxuXG4vKiDruYTrsIDrsojtmLgg67OA6rK9KDkw7J28IOqyveqzvCkg4oCUIOyViOuCtCDrrLjqtawoJzkw7J28IOuniOuLpCcg6rCV7KGwKSArIOq3nOy5mSDrqqnroZ0gKi9cbi5sb2dpbi1kZXNjIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LW1lZGl1bSk7XG4gIGNvbG9yOiB2YXIoLS1uLTYwMCk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5sb2dpbi1kZXNjIGIge1xuICBmb250LXdlaWdodDogdmFyKC0tZnctYm9sZCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludCk7XG59XG5cbi5sb2dpbi1ydWxlcyB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBsaXN0LXN0eWxlOiBkaXNjO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBjb2xvcjogdmFyKC0tbi02MDApO1xufVxuLmxvZ2luLXJ1bGVzIGxpIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiA5MOydvCDqsr3qs7wg67mE67CA67KI7Zi4IOuzgOqyvSDigJQg64iIIOyVhOydtOy9mCDsoozsmrDrsJjsoIQoRmlnbWEg7J247Iqk7YS07IqkIHNjYWxlWCgtMSkg64yA7J2RKSAqL1xuLnB3LWV4cGlyZWQgLmxvZ2luLXB3LXRvZ2dsZSAuaWNvIHtcbiAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpO1xufVxuXG4ubG9naW4tZmllbGRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxMHB4O1xufVxuXG4ubG9naW4taW5wdXRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxMHB4O1xufVxuXG4ubG9naW4tcHcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ubG9naW4tcHcgLmlucHV0IHtcbiAgcGFkZGluZy1yaWdodDogNDRweDtcbn1cbi5sb2dpbi1wdy10b2dnbGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICByaWdodDogMTJweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBjb2xvcjogdmFyKC0tbi01MDApO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8qIE9UUCDsnbjspp3rsojtmLgg7J6F66ClIO2WiSDigJQg6riw67O4IOyIqOq5gCwg66Gc6re47J24IOyLnOuPhCDtm4QoLmlzLW90cC1zZW50KSDrhbjstpwuXG4gKiBGaWdtYTogaW5wdXQgMzMyICsgZ2FwIDggKyBidXR0b24vYmFzaWNfbGluZSAxMDAgPSA0NDAgKi9cbi5sb2dpbi1vdHAge1xuICBkaXNwbGF5OiBub25lO1xuICBnYXA6IDhweDtcbn1cbi5sb2dpbi1vdHAgLmlucHV0IHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbn1cbi5sb2dpbi1vdHAtYnRuIHtcbiAgZmxleDogMCAwIDEwMHB4O1xufVxuXG4vKiDroZzqt7jsnbgg67KE7Yq8IOudvOuyqCDigJQg6riw67O4ICfroZzqt7jsnbgnIC8gT1RQIOuLqOqzhCAnT1RQIOyduOymneuyiO2YuCDroZzqt7jsnbgnICovXG4ubG9naW4tc3VibWl0LWxhYmVsLW90cCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIE9UUCDri6jqs4QgKEpTIOqwgCAuaXMtb3RwLXNlbnQg67aA7JesKSAqL1xuLmxvZ2luLWZvcm0uaXMtb3RwLXNlbnQgLmxvZ2luLW90cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4ubG9naW4tZm9ybS5pcy1vdHAtc2VudCAubG9naW4tc3VibWl0LWxhYmVsIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5sb2dpbi1mb3JtLmlzLW90cC1zZW50IC5sb2dpbi1zdWJtaXQtbGFiZWwtb3RwIHtcbiAgZGlzcGxheTogaW5saW5lO1xufVxuLmxvZ2luLWZvcm0uaXMtb3RwLXNlbnQge1xuICAvKiBJRMK367mE67CA67KI7Zi464qUIOyeheugpSDsmYTro4wg7IOB7YOc66GcIOyeoOq5gChGaWdtYTogTi0xMDApLiDqsJzrsJwg7Jew64+ZIOyLnCBkaXNhYmxlZCDrtoDsl6wgKi9cbn1cbi5sb2dpbi1mb3JtLmlzLW90cC1zZW50IC5sb2dpbi1pbnB1dHMgPiAuaW5wdXQsXG4ubG9naW4tZm9ybS5pcy1vdHAtc2VudCAubG9naW4tcHcgLmlucHV0IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tbi0xMDApO1xuICBib3JkZXItY29sb3I6IHZhcigtLW4tMjAwKTtcbn1cblxuLmxvZ2luLXJlbWVtYmVyIHtcbiAgZ2FwOiA1cHg7XG59XG5cbi5sb2dpbi1hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxNHB4O1xufVxuXG4ubG9naW4tbGlua3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmxvZ2luLWxpbmtzIGEge1xuICBmbGV4OiAxIDEgMDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBsaW5lLWhlaWdodDogMjJweDtcbiAgY29sb3I6IHZhcigtLW4tNjAwKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubG9naW4tbGlua3Mtc2VwIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMTJweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tbi0zMDApO1xufVxuXG4vKiDroZzqt7jsnbgg7Jik66WYIOKAlCDquLDrs7gg7Iio6rmALCAuaXMtZXJyb3Ig7IucIOuFuOy2nCAqL1xuLmxvZ2luLWVycm9yIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmxvZ2luLWZvcm0uaXMtZXJyb3IgLmxvZ2luLWVycm9yIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbi5sb2dpbi1mb3JtLmlzLWVycm9yIHtcbiAgLyogRmlnbWEg7Jik66WYIO2UhOugiOyehDog7J6Y66q7IOyeheugpe2VnCBPVFAg7J247Kad67KI7Zi4IOy5uOyXkCDsmKTrpZgg7YWM65GQ66asLlxuICAgICDtirnsoJUg7ZWE65Oc66eMIO2RnOyLnO2VmOugpOuptCDqsJzrsJzsl5DshJwg7ZW064u5IGlucHV0IOyXkCAuaXMtZXJyb3Ig66W8IOu2meyXrOuPhCDrj5nsnbwgKi9cbn1cbi5sb2dpbi1mb3JtLmlzLWVycm9yIC5sb2dpbi1vdHAgLmlucHV0IHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1lcnJvcik7XG59XG5cbi8qIOqwgOyeheyLoOyyrSDrgrTsl60g7KGw7ZqMICjsubTrk5wg7ZWY64uoLCDsg4Hri6gg6rWs67aE7ISgKSAqL1xuLmxvZ2luLWlucXVpcnkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDE2cHg7XG4gIHBhZGRpbmc6IDQwcHggNDhweDtcbiAgLyog7IOB64uoIOq1rOu2hOyEoOydgCBpbnNldCDqt7jrprzsnpDroZwg4oCUIEZpZ21hIOuKlCDshKDsnYQg7ZSE66CI7J6EIOyViOyqveyXkCDqt7jroKQg64aS7J2066W8IOuoueyngCDslYrripTri6QuXG4gICAgIGJvcmRlci10b3Ag7Jy866GcIOuRkOuptCDsnbQg67iU66Gd7J20IDIxMiDihpIgMjEzIOydtCDrkJzri6QuICovXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgdmFyKC0tbi0xMDApO1xufVxuLmxvZ2luLWlucXVpcnktdGV4dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogOHB4O1xufVxuLmxvZ2luLWlucXVpcnktdGl0bGUge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBmb250LXdlaWdodDogdmFyKC0tZnctYm9sZCk7XG4gIGNvbG9yOiB2YXIoLS1uLTkwMCk7XG59XG4ubG9naW4taW5xdWlyeS1kZXNjIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgY29sb3I6IHZhcigtLW4tNjAwKTtcbn1cbi5sb2dpbi1pbnF1aXJ5LWZvcm0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDZweDtcbn1cbi5sb2dpbi1pbnF1aXJ5LWZvcm0gLmlucHV0IHtcbiAgZmxleDogMSAxIDA7XG4gIG1pbi13aWR0aDogMDtcbn1cbi5sb2dpbi1pbnF1aXJ5LWZvcm0gLmJ0biB7XG4gIGZsZXg6IDAgMCBhdXRvO1xufVxuXG4vKiDrrLjsnZgg7J2066mU7J28ICjsubTrk5wg7JWE656YKSAqL1xuLmxvZ2luLWNvbnRhY3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbiAgd2lkdGg6IDUzNnB4O1xuICBwYWRkaW5nLXRvcDogMzBweDtcbn1cbi5sb2dpbi1jb250YWN0LWRlc2Mge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBjb2xvcjogdmFyKC0tbi02MDApO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4ubG9naW4tY29udGFjdC1tYWlsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA0cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pYm9sZCk7XG4gIGNvbG9yOiB2YXIoLS1uLTgwMCk7XG59XG4ubG9naW4tY29udGFjdC1tYWlsIC5pY28ge1xuICBjb2xvcjogdmFyKC0tbi04MDApO1xufVxuXG4vKiDtmozsm5DqsIDsnoUg7Iug7LKtIOyymOumrCDtmITtmakg66qo64usIOy9mO2FkOy4oCAoLnBvcHVwIOy7tO2PrOuEjO2KuCDslYgpICovXG4uc3RhdHVzLW1zZyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMjBweDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi8qIOyDge2DnCDslYTsnbTsvZgg4oCUIE4tNTAg7JuQKDgwKSArIOyDge2DnCDqt7jrnpjtlL0o66mA7Yuw7Lus65+sKSAqL1xuLnN0YXR1cy1pY29uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiA4MHB4O1xuICBoZWlnaHQ6IDgwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tbi01MCk7XG59XG4uc3RhdHVzLWljb24gaW1nIHtcbiAgd2lkdGg6IDQ4cHg7XG4gIGhlaWdodDogNDhweDtcbn1cblxuLnN0YXR1cy10ZXh0IHtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBsaW5lLWhlaWdodDogMjJweDtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LW1lZGl1bSk7XG4gIGNvbG9yOiB2YXIoLS1uLTkwMCk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5zdGF0dXMtdGV4dCBiIHtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LWJvbGQpO1xufVxuXG4uc3RhdHVzLXdvcmQtLWFwcGx5IHtcbiAgY29sb3I6IHZhcigtLWctNjAwKTtcbn1cblxuLnN0YXR1cy13b3JkLS1yZWNlaXB0IHtcbiAgY29sb3I6IHZhcigtLWRiLTUwMCk7XG59XG5cbi5zdGF0dXMtd29yZC0tYXBwcm92ZSB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludCk7XG59XG5cbi5zdGF0dXMtd29yZC0tcmVqZWN0IHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWVycm9yKTtcbn1cblxuLnN0YXR1cy1pbmZvIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA2cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAyMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1uLTIwMCk7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG59XG5cbi5zdGF0dXMtaW5mby1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cblxuLnN0YXR1cy1pbmZvLWtleSB7XG4gIGZsZXg6IDAgMCA2MHB4O1xuICBmb250LXdlaWdodDogdmFyKC0tZnctYm9sZCk7XG4gIGNvbG9yOiB2YXIoLS1uLTkwMCk7XG59XG5cbi5zdGF0dXMtaW5mby12YWwge1xuICBmbGV4OiAxIDEgMDtcbiAgbWluLXdpZHRoOiAwO1xuICBmb250LXdlaWdodDogdmFyKC0tZnctbWVkaXVtKTtcbiAgY29sb3I6IHZhcigtLW4tNjAwKTtcbn1cblxuLyog7JW96rSAIOuPmeydmCDrqqjri6wgKOuEk+ydgCDtjJ3sl4UgNjkwKSAqL1xuLnBvcHVwLS10ZXJtcyB7XG4gIHdpZHRoOiA2OTBweDtcbn1cblxuLnRlcm1zLWxpc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDMwcHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4udGVybXMtYmxvY2sge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDEwcHg7XG59XG5cbi8qIOyVveq0gCDrs7jrrLgg67CV7IqkIOKAlCBGaWdtYSDtmJXtg5wg7Luk7Iqk7YWAIOyKpO2BrOuhpOuwlC4g7Ken7J2AIOusuOq1rOyXrOuPhCDslYTrnpgg67mIIOyXrOuwseycvOuhnCDsiqTtgazroaQg7J6R64+ZICovXG4udGVybXMtdGV4dCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGhlaWdodDogMTkwcHg7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGJvcmRlci1yaWdodDogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIGJhY2tncm91bmQ6IHZhcigtLW4tNDApO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xufVxuLnRlcm1zLXRleHQ6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDVweDtcbn1cbi50ZXJtcy10ZXh0Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gIG1hcmdpbjogOHB4IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLnRlcm1zLXRleHQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBib3JkZXItcmFkaXVzOiA1MHB4O1xufVxuXG4vKiDrs7jrrLgg4oCUIOynp+ydgCDrrLjqtawgKyDslYTrnpgg67mIIOyXrOuwsSjsiqTtgazroaQg7J6R64+Z7J20IOuIiOyXkCDrs7TsnbTrj4TroZ0pICovXG4udGVybXMtdGV4dC1ib2R5IHtcbiAgbWluLWhlaWdodDogMjEwcHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1tZWRpdW0pO1xuICBjb2xvcjogIzYxNjE2MTtcbn1cblxuLnRlcm1zLWNoZWNrIHtcbiAgZ2FwOiA1cHg7XG59IiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vKipcbiAqIHBhZ2VzL2xvZ2luIOKAlCDroZzqt7jsnbgo66Gc6re47J24XzEpIO2OmOydtOyngCDsoITsmqkg66CI7J207JWE7JuDLlxuICog6rO17Ya1IOy7tO2PrOuEjO2KuCDsnqzsgqzsmqksIOydtCDtjpjsnbTsp4Ag6rOg7JygIOuwsOy5mOunjC4gaGVhZCB7IFwiY3NzXCI6IFwibG9naW5cIiB9LlxuICovXG5AdXNlIFwiLi4vY29tbW9uL3ZhcmlhYmxlc1wiIGFzICo7XG5AdXNlIFwiLi4vY29tbW9uL21peGluc1wiIGFzICo7XG5cbi8qIOykkeyVmSDsubTrk5ztmJUg4oaSIOyghOyXrSDstZzshoztj60oI3dyYXAgMTIwMCkg7ZW07KCcOiDstpXshowg7IucIOyijOyasCDsl6zrsLHsnbQg6reg65Ox7Z6IIOykhOyWtFxuICogZml4ZWQg66qo64us6rO8IO2dkOumhCDsvZjthZDsuKAg7KSR7JWZ7J20IO2VreyDgSDsnbzsuZguIChsb2dpbi5jc3Mg66Gc65OcIO2OmOydtOyngCDtlZzsoJUpICovXG4jd3JhcCB7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLyog7J20IO2ZlOuptOq1sCDtlZzsoJUg4oCUIO2RuO2EsCAuaW5uZXIg64+EIOy2leyGjCDsi5wg7KKM7JqwIO2MqOuUqeunjCDspITsl6wg6rCA66GcIOyYpOuyhO2UjOuhnCDrsKnsp4AgKi9cbi5pbm5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IGNhbGModmFyKC0tY29udGVudC13aWR0aCkgKyA0OHB4KTsgLy8g4omlMTI0OCDsl5DshKAg7L2Y7YWQ7LigIDEyMDAg7Jyg7KeAXG4gIHBhZGRpbmc6IDAgMjRweDtcbn1cblxuLmxvZ2luIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWluLWhlaWdodDogY2FsYygxMDB2aCAtIDE0MHB4KTsgLy8g7Zek642UIDcwICsg7ZG47YSwIDcwIOyCrOydtCDssYTsm4BcbiAgcGFkZGluZzogNDBweCAwIDYwcHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLW4tNTApO1xufVxuXG4vKiDsubTrk5wgKO2PrSA1MzYgPSA0NDAgKyDsoozsmrAgNDgpICovXG4ubG9naW4tYm94IHtcbiAgd2lkdGg6IDUzNnB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubG9naW4tZm9ybSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMjBweDtcbiAgcGFkZGluZzogNDBweCA0OHB4O1xufVxuXG4ubG9naW4taGVhZHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDJweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubG9naW4tc3ViIHtcbiAgQGluY2x1ZGUgZm9udCgxNCk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1tZWRpdW0pO1xuICBjb2xvcjogdmFyKC0tbi01MDApO1xufVxuXG4ubG9naW4tdGl0bGUge1xuICBAaW5jbHVkZSBmb250KDI0KTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LWJvbGQpO1xuICBjb2xvcjogdmFyKC0tbi05MDApO1xufVxuXG4vKiDruYTrsIDrsojtmLgg67OA6rK9KDkw7J28IOqyveqzvCkg4oCUIOyViOuCtCDrrLjqtawoJzkw7J28IOuniOuLpCcg6rCV7KGwKSArIOq3nOy5mSDrqqnroZ0gKi9cbi5sb2dpbi1kZXNjIHtcbiAgQGluY2x1ZGUgZm9udCgxNCk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1tZWRpdW0pO1xuICBjb2xvcjogdmFyKC0tbi02MDApO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgYiB7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LWJvbGQpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludCk7XG4gIH1cbn1cblxuLmxvZ2luLXJ1bGVzIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIGxpc3Qtc3R5bGU6IGRpc2M7XG4gIEBpbmNsdWRlIGZvbnQoMTMpO1xuICBjb2xvcjogdmFyKC0tbi02MDApO1xuXG4gIGxpIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cblxuLyogOTDsnbwg6rK96rO8IOu5hOuwgOuyiO2YuCDrs4Dqsr0g4oCUIOuIiCDslYTsnbTsvZgg7KKM7Jqw67CY7KCEKEZpZ21hIOyduOyKpO2EtOyKpCBzY2FsZVgoLTEpIOuMgOydkSkgKi9cbi5wdy1leHBpcmVkIC5sb2dpbi1wdy10b2dnbGUgLmljbyB7XG4gIHRyYW5zZm9ybTogc2NhbGVYKC0xKTtcbn1cblxuLmxvZ2luLWZpZWxkcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMTBweDtcbn1cblxuLmxvZ2luLWlucHV0cyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMTBweDtcbn1cblxuLmxvZ2luLXB3IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC5pbnB1dCB7XG4gICAgcGFkZGluZy1yaWdodDogNDRweDsgLy8g7JWE7J207L2YIOyekOumrFxuICB9XG5cbiAgJi10b2dnbGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogMTJweDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBjb2xvcjogdmFyKC0tbi01MDApO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuXG4vKiBPVFAg7J247Kad67KI7Zi4IOyeheugpSDtlokg4oCUIOq4sOuzuCDsiKjquYAsIOuhnOq3uOyduCDsi5zrj4Qg7ZuEKC5pcy1vdHAtc2VudCkg64W47LacLlxuICogRmlnbWE6IGlucHV0IDMzMiArIGdhcCA4ICsgYnV0dG9uL2Jhc2ljX2xpbmUgMTAwID0gNDQwICovXG4ubG9naW4tb3RwIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgZ2FwOiA4cHg7XG5cbiAgLmlucHV0IHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAmLWJ0biB7XG4gICAgZmxleDogMCAwIDEwMHB4O1xuICB9XG59XG5cbi8qIOuhnOq3uOyduCDrsoTtirwg652867KoIOKAlCDquLDrs7ggJ+uhnOq3uOyduCcgLyBPVFAg64uo6rOEICdPVFAg7J247Kad67KI7Zi4IOuhnOq3uOyduCcgKi9cbi5sb2dpbi1zdWJtaXQtbGFiZWwtb3RwIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogT1RQIOuLqOqzhCAoSlMg6rCAIC5pcy1vdHAtc2VudCDrtoDsl6wpICovXG4ubG9naW4tZm9ybS5pcy1vdHAtc2VudCB7XG4gIC5sb2dpbi1vdHAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cblxuICAubG9naW4tc3VibWl0LWxhYmVsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5sb2dpbi1zdWJtaXQtbGFiZWwtb3RwIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gIH1cblxuICAvKiBJRMK367mE67CA67KI7Zi464qUIOyeheugpSDsmYTro4wg7IOB7YOc66GcIOyeoOq5gChGaWdtYTogTi0xMDApLiDqsJzrsJwg7Jew64+ZIOyLnCBkaXNhYmxlZCDrtoDsl6wgKi9cbiAgLmxvZ2luLWlucHV0cyA+IC5pbnB1dCxcbiAgLmxvZ2luLXB3IC5pbnB1dCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbi0xMDApO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbi0yMDApO1xuICB9XG59XG5cbi5sb2dpbi1yZW1lbWJlciB7XG4gIGdhcDogNXB4O1xufVxuXG4ubG9naW4tYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMTRweDtcbn1cblxuLmxvZ2luLWxpbmtzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhIHtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBAaW5jbHVkZSBmb250KDE1KTtcbiAgICBjb2xvcjogdmFyKC0tbi02MDApO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuXG4ubG9naW4tbGlua3Mtc2VwIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMTJweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tbi0zMDApO1xufVxuXG4vKiDroZzqt7jsnbgg7Jik66WYIOKAlCDquLDrs7gg7Iio6rmALCAuaXMtZXJyb3Ig7IucIOuFuOy2nCAqL1xuLmxvZ2luLWVycm9yIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5sb2dpbi1mb3JtLmlzLWVycm9yIHtcbiAgLmxvZ2luLWVycm9yIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG5cbiAgLyogRmlnbWEg7Jik66WYIO2UhOugiOyehDog7J6Y66q7IOyeheugpe2VnCBPVFAg7J247Kad67KI7Zi4IOy5uOyXkCDsmKTrpZgg7YWM65GQ66asLlxuICAgICDtirnsoJUg7ZWE65Oc66eMIO2RnOyLnO2VmOugpOuptCDqsJzrsJzsl5DshJwg7ZW064u5IGlucHV0IOyXkCAuaXMtZXJyb3Ig66W8IOu2meyXrOuPhCDrj5nsnbwgKi9cbiAgLmxvZ2luLW90cCAuaW5wdXQge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItZXJyb3IpO1xuICB9XG59XG5cbi8qIOqwgOyeheyLoOyyrSDrgrTsl60g7KGw7ZqMICjsubTrk5wg7ZWY64uoLCDsg4Hri6gg6rWs67aE7ISgKSAqL1xuLmxvZ2luLWlucXVpcnkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDE2cHg7XG4gIHBhZGRpbmc6IDQwcHggNDhweDtcbiAgLyog7IOB64uoIOq1rOu2hOyEoOydgCBpbnNldCDqt7jrprzsnpDroZwg4oCUIEZpZ21hIOuKlCDshKDsnYQg7ZSE66CI7J6EIOyViOyqveyXkCDqt7jroKQg64aS7J2066W8IOuoueyngCDslYrripTri6QuXG4gICAgIGJvcmRlci10b3Ag7Jy866GcIOuRkOuptCDsnbQg67iU66Gd7J20IDIxMiDihpIgMjEzIOydtCDrkJzri6QuICovXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgdmFyKC0tbi0xMDApO1xuXG4gICYtdGV4dCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xuICB9XG5cbiAgJi10aXRsZSB7XG4gICAgQGluY2x1ZGUgZm9udCgxNik7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LWJvbGQpO1xuICAgIGNvbG9yOiB2YXIoLS1uLTkwMCk7XG4gIH1cblxuICAmLWRlc2Mge1xuICAgIEBpbmNsdWRlIGZvbnQoMTMpO1xuICAgIGNvbG9yOiB2YXIoLS1uLTYwMCk7XG4gIH1cblxuICAmLWZvcm0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiA2cHg7XG5cbiAgICAuaW5wdXQge1xuICAgICAgZmxleDogMSAxIDA7XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuXG4gICAgLmJ0biB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG4gIH1cbn1cblxuLyog66y47J2YIOydtOuplOydvCAo7Lm065OcIOyVhOuemCkgKi9cbi5sb2dpbi1jb250YWN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIHdpZHRoOiA1MzZweDtcbiAgcGFkZGluZy10b3A6IDMwcHg7XG5cbiAgJi1kZXNjIHtcbiAgICBAaW5jbHVkZSBmb250KDE0KTtcbiAgICBjb2xvcjogdmFyKC0tbi02MDApO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gICYtbWFpbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICAgIEBpbmNsdWRlIGZvbnQoMTQpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pYm9sZCk7XG4gICAgY29sb3I6IHZhcigtLW4tODAwKTtcblxuICAgIC5pY28ge1xuICAgICAgY29sb3I6IHZhcigtLW4tODAwKTtcbiAgICB9XG4gIH1cbn1cblxuLyog7ZqM7JuQ6rCA7J6FIOyLoOyyrSDsspjrpqwg7ZiE7ZmpIOuqqOuLrCDsvZjthZDsuKAgKC5wb3B1cCDsu7Ttj6zrhIztirgg7JWIKSAqL1xuLnN0YXR1cy1tc2cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDIwcHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4vKiDsg4Htg5wg7JWE7J207L2YIOKAlCBOLTUwIOybkCg4MCkgKyDsg4Htg5wg6re4656Y7ZS9KOupgO2LsOy7rOufrCkgKi9cbi5zdGF0dXMtaWNvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogODBweDtcbiAgaGVpZ2h0OiA4MHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLW4tNTApO1xuXG4gIGltZyB7XG4gICAgd2lkdGg6IDQ4cHg7IC8vIOybkCA4MCDslYgg7KSR7JWZLCBzdGF0ZSBpY29uIDQ4IOuwleyKpFxuICAgIGhlaWdodDogNDhweDtcbiAgfVxufVxuXG4uc3RhdHVzLXRleHQge1xuICBAaW5jbHVkZSBmb250KDE1KTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LW1lZGl1bSk7XG4gIGNvbG9yOiB2YXIoLS1uLTkwMCk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBiIHtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZnctYm9sZCk7XG4gIH1cbn1cblxuLnN0YXR1cy13b3JkLS1hcHBseSB7XG4gIGNvbG9yOiB2YXIoLS1nLTYwMCk7IC8vIOyLoOyyrVxufVxuLnN0YXR1cy13b3JkLS1yZWNlaXB0IHtcbiAgY29sb3I6IHZhcigtLWRiLTUwMCk7IC8vIOygkeyImFxufVxuLnN0YXR1cy13b3JkLS1hcHByb3ZlIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXBvaW50KTsgLy8g7Iq57J24XG59XG4uc3RhdHVzLXdvcmQtLXJlamVjdCB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1lcnJvcik7IC8vIOuwmOugpFxufVxuXG4uc3RhdHVzLWluZm8ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDZweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW4tMjAwKTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgQGluY2x1ZGUgZm9udCgxNCk7XG59XG5cbi5zdGF0dXMtaW5mby1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cblxuLnN0YXR1cy1pbmZvLWtleSB7XG4gIGZsZXg6IDAgMCA2MHB4O1xuICBmb250LXdlaWdodDogdmFyKC0tZnctYm9sZCk7XG4gIGNvbG9yOiB2YXIoLS1uLTkwMCk7XG59XG5cbi5zdGF0dXMtaW5mby12YWwge1xuICBmbGV4OiAxIDEgMDtcbiAgbWluLXdpZHRoOiAwO1xuICBmb250LXdlaWdodDogdmFyKC0tZnctbWVkaXVtKTtcbiAgY29sb3I6IHZhcigtLW4tNjAwKTtcbn1cblxuLyog7JW96rSAIOuPmeydmCDrqqjri6wgKOuEk+ydgCDtjJ3sl4UgNjkwKSAqL1xuLnBvcHVwLS10ZXJtcyB7XG4gIHdpZHRoOiA2OTBweDtcbn1cblxuLnRlcm1zLWxpc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDMwcHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4udGVybXMtYmxvY2sge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDEwcHg7XG59XG5cbi8qIOyVveq0gCDrs7jrrLgg67CV7IqkIOKAlCBGaWdtYSDtmJXtg5wg7Luk7Iqk7YWAIOyKpO2BrOuhpOuwlC4g7Ken7J2AIOusuOq1rOyXrOuPhCDslYTrnpgg67mIIOyXrOuwseycvOuhnCDsiqTtgazroaQg7J6R64+ZICovXG4udGVybXMtdGV4dCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGhlaWdodDogMTkwcHg7IC8vIO2FjeyKpO2KuCAxNTAgKyDsg4HtlZggcGFkZGluZyAyMFxuICBwYWRkaW5nOiAyMHB4O1xuICBib3JkZXItcmlnaHQ6IDhweCBzb2xpZCB0cmFuc3BhcmVudDsgLy8g7Iqk7YGs66GkIOyasOy4oSA4cHgg7J247IWLKO2IrOuqhSDrs7TrjZQg7JWI7Kq97JeQIOyKpO2BrOuhpOuwlCDroIzrjZQpXG4gIG92ZXJmbG93LXk6IHNjcm9sbDsgLy8g7ZWt7IOBIOuFuOy2nFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1uLTQwKTsgLy8gYmFja2dyb3VuZC1jbGlwIOq4sOuzuCBib3JkZXItYm94IOKGkiDrs7TrjZQg7JiB7Jet64+EIO2ajOyDiVxuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogNXB4O1xuICB9XG5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICAgIG1hcmdpbjogOHB4IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgYmFja2dyb3VuZDogcmdiKDAgMCAwIC8gMjAlKTsgLy8gRmlnbWEgc2Nyb2xsIHJnYmEoMCwwLDAsMC4yKSDigJQg7Yag7YGwIOyXhuydjFxuICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gIH1cbn1cblxuLyog67O466y4IOKAlCDsp6fsnYAg66y46rWsICsg7JWE656YIOu5iCDsl6zrsLEo7Iqk7YGs66GkIOyekeuPmeydtCDriIjsl5Ag67O07J2064+E66GdKSAqL1xuLnRlcm1zLXRleHQtYm9keSB7XG4gIG1pbi1oZWlnaHQ6IDIxMHB4OyAvLyDqsIDsi5zsmIHsl60oMTUwKeuztOuLpCDtgazqsowg4oaSIOyKpO2BrOuhpCDrsJzsg51cbiAgQGluY2x1ZGUgZm9udCgxNCk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1tZWRpdW0pO1xuICBjb2xvcjogIzYxNjE2MTsgLy8gRmlnbWEg7JW96rSAIOuzuOusuCDsoJXtmZXqsJIo7Yag7YGwIOyXhuydjCDigJQg7IKs7Jqp7J6QIOyngOyLnOuhnCDsm5DqsJIg6rOg7KCVKVxufVxuXG4udGVybXMtY2hlY2sge1xuICBnYXA6IDVweDtcbn1cbiIsIi8qKlxuICogU0NTUyDrs4DsiJggKOyXsOyCsC/rr7nsiqTsnbjsmqkpIOKAlCBDU1Mg7Lac66ClIOyXhuydjCjslrTrlJTshJwgQHVzZSDtlbTrj4Qg7KSR67O1IOyXhuydjCkuXG4gKiA6cm9vdCDthqDtgbDsnYAgX3Rva2Vucy5zY3NzIOyXkOyEnCDstpzroKUuXG4gKi9cblxuLyog66CI7J207JWE7JuDIO2PrSAoUEMg7KCE7JqpKSAqL1xuJHNjcmVlbi1tYXg6IDE5MjBweDsgLy8g7KeA7JuQIOy1nOuMgCDtlbTsg4Hrj4RcbiRjb250ZW50LXdpZHRoOiAxMjAwcHg7IC8vIFvtg4DsnoUgQV0g7KSR7JWZIOy9mO2FkOy4oCDtj60gKDEzNjgg7KCE7Jet7KCE7ZmY7J2AIO2MgCDsobDsnKgg7ZuEKVxuJHNpZGViYXItd2lkdGg6IDI0MHB4OyAvLyBb7YOA7J6FIEJdIOyijOy4oSDsgqzsnbTrk5ztjKjrhJAgLSDtjrzsuahcbiRzaWRlYmFyLXdpZHRoLWNvbGxhcHNlZDogNThweDsgLy8gW+2DgOyehSBCXSDsoozsuKEg7IKs7J2065Oc7Yyo64SQIC0g7KCR7Z6YXG4kZ3JpZC1ndXR0ZXI6IDIwcHg7XG4kaGVhZGVyLWhlaWdodDogNzBweDsgLy8g6rOg7KCVIEdOQiDrhpLsnbQgKOuzuOusuCDsmKTtlITshYvqs7wg64+Z7J28KVxuJGhlYWRlci1jZW50ZXItd2lkdGg6IDEzNjhweDsgLy8g7Zek642UIOykkeyVmSDruJTroZ0oR05CK+ygleuztCkgPSDrqZTqsIDrqZTribQg7Lus65+8IOygleugrCDquLDspIAg7Y+tXG4kei1oZWFkZXI6IDEwMDtcbiRzY3JvbGwtd2lkdGg6IDE3MDBweDsgLy8gbWluLXdpZHRoIOyKpO2BrOuhpOuMgOydkVxuLyoqXG4gKiDtg4DsnbTtj6wg7Iqk7LyA7J28ICjri6jsnbwg7IaM7IqkKSDigJQgQEd1aWRlX1R5cG9ncmFwaHkg6riw7KSALiBrZXkgPSBmb250LXNpemUocHgpLlxuICog7Jes6riw66eMIOqzoOy5mOuptCBmb250KCkg66+57Iqk7J246rO8IC0tZnMtKiAvIC0tbGgtKiDthqDtgbDsnbQg7ZWo6ruYIOqwseyLoOuQqC5cbiAqL1xuJGZvbnQtc2NhbGU6IChcbiAgMzI6IChcbiAgICBzaXplOiAzMnB4LFxuICAgIGxpbmUtaGVpZ2h0OiA0NHB4LFxuICApLFxuICAvLyBEaXNwbGF5XG4gIDI4OiAoXG4gICAgICBzaXplOiAyOHB4LFxuICAgICAgbGluZS1oZWlnaHQ6IDQwcHgsXG4gICAgKSxcbiAgLy8gRGlzcGxheSDigJQgMjQgKEBHdWlkZV9UeXBvZ3JhcGh5IOyLoOq3nCAyMDI2LTA3LTAzKVxuICAyNDogKFxuICAgICAgc2l6ZTogMjRweCxcbiAgICAgIGxpbmUtaGVpZ2h0OiAzNnB4LFxuICAgICksXG4gIC8vIFRpdGxlIOKAlCBIMSAoUGFnZSBUaXRsZSlcbiAgMjA6IChcbiAgICAgIHNpemU6IDIwcHgsXG4gICAgICBsaW5lLWhlaWdodDogMzBweCxcbiAgICApLFxuICAvLyBUaXRsZSDigJQgSDIgKFNuYiBUaXRsZSlcbiAgMTg6IChcbiAgICAgIHNpemU6IDE4cHgsXG4gICAgICBsaW5lLWhlaWdodDogMjhweCxcbiAgICApLFxuICAvLyBCb2R5XG4gIDE2OiAoXG4gICAgICBzaXplOiAxNnB4LFxuICAgICAgbGluZS1oZWlnaHQ6IDI0cHgsXG4gICAgKSxcbiAgLy8gQm9keSDigJQg6riw67O4XG4gIDE1OiAoXG4gICAgICBzaXplOiAxNXB4LFxuICAgICAgbGluZS1oZWlnaHQ6IDIycHgsXG4gICAgKSxcbiAgLy8gQm9keVxuICAxNDogKFxuICAgICAgc2l6ZTogMTRweCxcbiAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4LFxuICAgICksXG4gIC8vIEJvZHlcbiAgMTM6IChcbiAgICAgIHNpemU6IDEzcHgsXG4gICAgICBsaW5lLWhlaWdodDogMjBweCxcbiAgICApLFxuICAvLyBCb2R5IOKAlCAxMiAoQEd1aWRlX1R5cG9ncmFwaHkg7Iug6recIDIwMjYtMDctMDMpXG4gIDEyOiAoXG4gICAgICBzaXplOiAxMnB4LFxuICAgICAgbGluZS1oZWlnaHQ6IDE4cHgsXG4gICAgKSwgLy8gQm9keVxuKTtcbiIsIi8qKlxuICog6rO17JqpIOuvueyKpOyduCDigJQgYEB1c2UgJy4uL2NvbW1vbi9taXhpbnMnIGFzICo7YFxuICovXG5AdXNlIFwic2FzczptYXBcIjtcbkB1c2UgXCJ2YXJpYWJsZXNcIiBhcyAqO1xuXG4vKipcbiAqIO2DgOydtO2PrCDsiqTsvIDsnbwg7KCB7JqpKHNpemUrbGluZS1oZWlnaHQg7ZWcIOyMjSkuIGBAaW5jbHVkZSBmb250KDIwKTtgIOKGkiAyMHB4LzMwcHguXG4gKiDtl4jsmqkg7YKk64qUICRmb250LXNjYWxlLiB3ZWlnaHTripQg67OE64+EKC0tZnctKiDthqDtgbApLlxuICovXG5AbWl4aW4gZm9udCgkc2l6ZSkge1xuICBAaWYgbm90IG1hcC5oYXMta2V5KCRmb250LXNjYWxlLCAkc2l6ZSkge1xuICAgIEBlcnJvciBcImZvbnQoI3skc2l6ZX0pIOKAlCDsoJXsnZjrkJjsp4Ag7JWK7J2AIO2DgOydtO2PrCDsgqzsnbTspoguIO2XiOyaqTogI3ttYXAua2V5cygkZm9udC1zY2FsZSl9XCI7XG4gIH1cbiAgJHQ6IG1hcC5nZXQoJGZvbnQtc2NhbGUsICRzaXplKTtcbiAgZm9udC1zaXplOiBtYXAuZ2V0KCR0LCBzaXplKTtcbiAgbGluZS1oZWlnaHQ6IG1hcC5nZXQoJHQsIGxpbmUtaGVpZ2h0KTtcbn1cblxuQG1peGluIHJlc3BvbmQtdXAoJGJwKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiAkYnApIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gcmVzcG9uZC1kb3duKCRicCkge1xuICBAbWVkaWEgKG1heC13aWR0aDogKCRicCAtIDAuMDJweCkpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gZWxsaXBzaXMge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuQG1peGluIGVsbGlwc2lzLW11bHRpKCRsaW5lOiAyKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWxpbmUtY2xhbXA6ICRsaW5lO1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuIl19 */
