@charset "UTF-8";
/**
 * 공통코드 관리 (OP > 시스템 관리 > 02) — 좌: 코드 트리 / 우: 상세·등록.
 * 트리 렌더링은 modules/_tree.scss(.code-tree/.mtree-*) 재사용. Figma 1844:81130.
 */
/**
 * SCSS 변수 (연산/믹스인용) — CSS 출력 없음. 어디서든 @use 해도 중복 생성 안 됨.
 * (CSS custom properties(:root)는 _tokens.scss 에서 출력.)
 */
/* 레이아웃 폭 (PC 전용) */
/**
 * 타이포 스케일 (단일 소스) — @Guide_Typography 기준. key = font-size(px).
 * 여기만 고치면 font() 믹스인과 --fs-* / --lh-* 토큰이 함께 갱신됨.
 */
/**
 * 공통코드 관리 (OP > 시스템 관리 > 02) — 좌: 코드 트리 / 우: 상세·등록.
 * 트리 렌더링은 modules/_tree.scss(.code-tree/.mtree-*) 재사용. Figma 1844:81130.
 */
/**
 * 공용 믹스인 — `@use '../common/mixins' as *;`
 */
/**
 * 타이포 스케일 적용(size + line-height 한 쌍). 예: `@include font(20);`
 * weight는 별도(`font-weight: var(--fw-bold);`). 허용 키는 $font-scale.
 */
/* 팀 스크롤바 패턴(_lnb.scss) — thumb 상시 N-300 → hover N-400, JS 없음 */
.code-layout {
  display: flex;
  align-items: stretch; /* 좌·우 카드 높이 동일(Figma 806 고정) */
  gap: 20px;
}

/* ───── 좌측: 검색 + 등록 버튼 + 코드 트리 ───── */
.code-side {
  flex: 0 0 350px;
  display: flex;
  flex-direction: column;
  height: 758px; /* 고정 높이 — 트리는 내부 스크롤(Figma 806 고정) */
  padding: 24px;
}

.code-search {
  display: flex;
  gap: 8px;
}
.code-search .input {
  flex: 1 1 auto;
}

/* 코드그룹 등록 / 공통코드 등록 — 2등분 */
.code-btns {
  display: flex;
  gap: 8px;
  margin: 16px 0;
}
.code-btns .btn {
  flex: 1 1 0;
}

/* 트리 영역이 카드 남은 높이를 채우고 넘치면 스크롤(기획서 02) */
.code-tree-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: var(--n-300) transparent;
}
.code-tree-body:hover {
  scrollbar-color: var(--n-400) transparent;
}
.code-tree-body::-webkit-scrollbar {
  width: 5px;
}
.code-tree-body::-webkit-scrollbar-thumb {
  background: var(--n-300);
  border-radius: 3px;
}
.code-tree-body:hover::-webkit-scrollbar-thumb {
  background: var(--n-400);
}

/* 검색 결과 없음(트리) — 트리 영역 가운데 */
.code-tree-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 100%;
}
.code-tree-empty p {
  font-size: 15px;
  line-height: 22px;
  color: var(--n-900);
}
.code-tree-empty[hidden] {
  display: none;
}

/* 2Depth(하위 코드) — Figma 14-M (1Depth 15) */
.code-tree .mtree-children .mtree-name,
.code-tree .mtree-children .mtree-code {
  font-size: 14px;
  line-height: 20px;
}

/* ───── 우측: 상세/등록 패널 ───── */
.code-detail-card {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
  align-self: stretch;
}
.code-detail-card .info-actions {
  margin-top: 0;
}
.code-detail-card[hidden] {
  display: none;
}

/* 선택 전 — Figma 점선 보더 DB-100 */
.code-detail-card--empty {
  align-items: center;
  justify-content: center;
  padding: 24px;
  border: 1px dashed var(--db-100);
  border-radius: 14px;
}

.code-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.code-empty img {
  width: 48px;
  height: 48px;
}
.code-empty p {
  font-size: 15px;
  line-height: 22px;
  color: var(--n-900);
}

/* 상세/등록 테이블 — Figma th 160, 행 52(구분선 inset) */
.info-table.code-table {
  border-top: 0;
}
.info-table.code-table .col-th {
  width: 160px;
}
.info-table.code-table th,
.info-table.code-table td {
  border-bottom: 0;
  box-shadow: inset 0 -1px 0 var(--n-200);
}
.info-table.code-table tbody tr:first-child th,
.info-table.code-table tbody tr:first-child td {
  box-shadow: inset 0 1px 0 var(--n-200), inset 0 -1px 0 var(--n-200);
}

/* 그룹명/상위코드 셀렉트 폭 */
.code-table .select-box {
  width: 340px;
}

/* ID + 중복체크 — Figma gap6 (모듈 기본 gap8) */
.code-table .input-group {
  gap: 6px;
}

/* 사용여부 라디오 */
.code-radios {
  display: flex;
  align-items: center;
  gap: 10px;
}

/* 하위메뉴 추가 w110 */
.info-actions .btn-w110 {
  width: 110px;
}

/* ───── 팝업 ───── */
.code-page-modal .modal-head {
  height: 50px;
}

/* 소형 알림 팝업 — Figma 360 */
.modal-box--sm {
  width: 360px;
}
.modal-box--sm .modal-body {
  min-height: 0;
  padding: 0 20px 30px;
}
.modal-box--sm .modal-foot {
  justify-content: center;
}

/* 제목 없는 알림 — X만, 구분선 없음 */
.modal-head--bare {
  justify-content: flex-end;
  border-bottom: 0;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhZ2VzL3N5c3RlbS9jb2RlLmNzcyIsInBhZ2VzL3N5c3RlbS9jb2RlLnNjc3MiLCJjb21tb24vX3ZhcmlhYmxlcy5zY3NzIiwiY29tbW9uL19taXhpbnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnQkFBZ0I7QUNBaEI7OztFQUFBO0FDQUE7OztFQUFBO0FBS0EsbUJBQUE7QUFVQTs7O0VBQUE7QURmQTs7O0VBQUE7QUVBQTs7RUFBQTtBQU1BOzs7RUFBQTtBRkNBLCtEQUFBO0FBb0JBO0VBQ0UsYUFBQTtFQUNBLG9CQUFBLEVBQUEsK0JBQUE7RUFDQSxTQUFBO0FEQUY7O0FDR0EsdUNBQUE7QUFDQTtFQUNFLGVBQUE7RUFDQSxhQUFBO0VBQ0Esc0JBQUE7RUFDQSxhQUFBLEVBQUEscUNBQUE7RUFDQSxhQUFBO0FEQUY7O0FDRUE7RUFDRSxhQUFBO0VBQ0EsUUFBQTtBRENGO0FDQ0U7RUFDRSxjQUFBO0FEQ0o7O0FDRUEsNEJBQUE7QUFDQTtFQUNFLGFBQUE7RUFDQSxRQUFBO0VBQ0EsY0FBQTtBRENGO0FDQ0U7RUFDRSxXQUFBO0FEQ0o7O0FDRUEseUNBQUE7QUFDQTtFQUNFLGNBQUE7RUFDQSxhQUFBO0VBQ0EsZ0JBQUE7RUF0REEsNEJBQUE7RUFDQSxxQkFBQTtFQUNBLHlDQUFBO0FEd0RGO0FDdkRFO0VBQ0UseUNBQUE7QUR5REo7QUN2REU7RUFDRSxVQUFBO0FEeURKO0FDdkRFO0VBQ0Usd0JBQUE7RUFDQSxrQkFBQTtBRHlESjtBQ3ZERTtFQUNFLHdCQUFBO0FEeURKOztBQ2RBLDZCQUFBO0FBQ0E7RUFDRSxhQUFBO0VBQ0Esc0JBQUE7RUFDQSxtQkFBQTtFQUNBLHVCQUFBO0VBQ0EsUUFBQTtFQUNBLGdCQUFBO0FEaUJGO0FDZkU7RUU1REEsZUFBQTtFQUNBLGlCQUFBO0VGNkRFLG1CQUFBO0FEa0JKO0FDaEJFO0VBQ0UsYUFBQTtBRGtCSjs7QUNkQSwyQ0FBQTtBQUVFOztFRXZFQSxlQUFBO0VBQ0EsaUJBQUE7QUh5RkY7O0FDYkEsNkJBQUE7QUFDQTtFQUNFLGFBQUE7RUFDQSxjQUFBO0VBQ0Esc0JBQUE7RUFDQSxTQUFBO0VBQ0EsWUFBQTtFQUNBLG1CQUFBO0FEZ0JGO0FDZEU7RUFDRSxhQUFBO0FEZ0JKO0FDZEU7RUFDRSxhQUFBO0FEZ0JKOztBQ2JBLDhCQUFBO0FBQ0E7RUFDRSxtQkFBQTtFQUNBLHVCQUFBO0VBQ0EsYUFBQTtFQUNBLGdDQUFBO0VBQ0EsbUJBQUE7QURnQkY7O0FDZEE7RUFDRSxhQUFBO0VBQ0Esc0JBQUE7RUFDQSxtQkFBQTtFQUNBLFFBQUE7QURpQkY7QUNmRTtFQUNFLFdBQUE7RUFDQSxZQUFBO0FEaUJKO0FDZkU7RUUvR0EsZUFBQTtFQUNBLGlCQUFBO0VGZ0hFLG1CQUFBO0FEa0JKOztBQ2RBLDhDQUFBO0FBQ0E7RUFDRSxhQUFBO0FEaUJGO0FDZkU7RUFDRSxZQUFBO0FEaUJKO0FDZkU7O0VBRUUsZ0JBQUE7RUFDQSx1Q0FBQTtBRGlCSjtBQ2ZFOztFQUVFLG1FQUNFO0FEZ0JOOztBQ1pBLG1CQUFBO0FBQ0E7RUFDRSxZQUFBO0FEZUY7O0FDYkEsd0NBQUE7QUFDQTtFQUNFLFFBQUE7QURnQkY7O0FDZEEsYUFBQTtBQUNBO0VBQ0UsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsU0FBQTtBRGlCRjs7QUNmQSxpQkFBQTtBQUNBO0VBQ0UsWUFBQTtBRGtCRjs7QUNmQSxtQkFBQTtBQUNBO0VBQ0UsWUFBQTtBRGtCRjs7QUNoQkEseUJBQUE7QUFDQTtFQUNFLFlBQUE7QURtQkY7QUNqQkU7RUFDRSxhQUFBO0VBQ0Esb0JBQUE7QURtQko7QUNqQkU7RUFDRSx1QkFBQTtBRG1CSjs7QUNoQkEsMEJBQUE7QUFDQTtFQUNFLHlCQUFBO0VBQ0EsZ0JBQUE7QURtQkYiLCJmaWxlIjoicGFnZXMvc3lzdGVtL2NvZGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyoqXG4gKiDqs7XthrXsvZTrk5wg6rSA66asIChPUCA+IOyLnOyKpO2FnCDqtIDrpqwgPiAwMikg4oCUIOyijDog7L2U65OcIO2KuOumrCAvIOyasDog7IOB7IS4wrfrk7HroZ0uXG4gKiDtirjrpqwg66CM642U66eB7J2AIG1vZHVsZXMvX3RyZWUuc2NzcyguY29kZS10cmVlLy5tdHJlZS0qKSDsnqzsgqzsmqkuIEZpZ21hIDE4NDQ6ODExMzAuXG4gKi9cbi8qKlxuICogU0NTUyDrs4DsiJggKOyXsOyCsC/rr7nsiqTsnbjsmqkpIOKAlCBDU1Mg7Lac66ClIOyXhuydjC4g7Ja065SU7ISc65OgIEB1c2Ug7ZW064+EIOykkeuztSDsg53shLEg7JWIIOuQqC5cbiAqIChDU1MgY3VzdG9tIHByb3BlcnRpZXMoOnJvb3Qp64qUIF90b2tlbnMuc2NzcyDsl5DshJwg7Lac66ClLilcbiAqL1xuLyog66CI7J207JWE7JuDIO2PrSAoUEMg7KCE7JqpKSAqL1xuLyoqXG4gKiDtg4DsnbTtj6wg7Iqk7LyA7J28ICjri6jsnbwg7IaM7IqkKSDigJQgQEd1aWRlX1R5cG9ncmFwaHkg6riw7KSALiBrZXkgPSBmb250LXNpemUocHgpLlxuICog7Jes6riw66eMIOqzoOy5mOuptCBmb250KCkg66+57Iqk7J246rO8IC0tZnMtKiAvIC0tbGgtKiDthqDtgbDsnbQg7ZWo6ruYIOqwseyLoOuQqC5cbiAqL1xuLyoqXG4gKiDqs7XthrXsvZTrk5wg6rSA66asIChPUCA+IOyLnOyKpO2FnCDqtIDrpqwgPiAwMikg4oCUIOyijDog7L2U65OcIO2KuOumrCAvIOyasDog7IOB7IS4wrfrk7HroZ0uXG4gKiDtirjrpqwg66CM642U66eB7J2AIG1vZHVsZXMvX3RyZWUuc2NzcyguY29kZS10cmVlLy5tdHJlZS0qKSDsnqzsgqzsmqkuIEZpZ21hIDE4NDQ6ODExMzAuXG4gKi9cbi8qKlxuICog6rO17JqpIOuvueyKpOyduCDigJQgYEB1c2UgJy4uL2NvbW1vbi9taXhpbnMnIGFzICo7YFxuICovXG4vKipcbiAqIO2DgOydtO2PrCDsiqTsvIDsnbwg7KCB7JqpKHNpemUgKyBsaW5lLWhlaWdodCDtlZwg7IyNKS4g7JiIOiBgQGluY2x1ZGUgZm9udCgyMCk7YFxuICogd2VpZ2h064qUIOuzhOuPhChgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LWJvbGQpO2ApLiDtl4jsmqkg7YKk64qUICRmb250LXNjYWxlLlxuICovXG4vKiDtjIAg7Iqk7YGs66Gk67CUIO2MqO2EtChfbG5iLnNjc3MpIOKAlCB0aHVtYiDsg4Hsi5wgTi0zMDAg4oaSIGhvdmVyIE4tNDAwLCBKUyDsl4bsnYwgKi9cbi5jb2RlLWxheW91dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoOyAvKiDsoozCt+yasCDsubTrk5wg64aS7J20IOuPmeydvChGaWdtYSA4MDYg6rOg7KCVKSAqL1xuICBnYXA6IDIwcHg7XG59XG5cbi8qIOKUgOKUgOKUgOKUgOKUgCDsoozsuKE6IOqygOyDiSArIOuTseuhnSDrsoTtirwgKyDsvZTrk5wg7Yq466asIOKUgOKUgOKUgOKUgOKUgCAqL1xuLmNvZGUtc2lkZSB7XG4gIGZsZXg6IDAgMCAzNTBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgaGVpZ2h0OiA3NThweDsgLyog6rOg7KCVIOuGkuydtCDigJQg7Yq466as64qUIOuCtOu2gCDsiqTtgazroaQoRmlnbWEgODA2IOqzoOyglSkgKi9cbiAgcGFkZGluZzogMjRweDtcbn1cblxuLmNvZGUtc2VhcmNoIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiA4cHg7XG59XG4uY29kZS1zZWFyY2ggLmlucHV0IHtcbiAgZmxleDogMSAxIGF1dG87XG59XG5cbi8qIOy9lOuTnOq3uOujuSDrk7HroZ0gLyDqs7XthrXsvZTrk5wg65Ox66GdIOKAlCAy65Ox67aEICovXG4uY29kZS1idG5zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiA4cHg7XG4gIG1hcmdpbjogMTZweCAwO1xufVxuLmNvZGUtYnRucyAuYnRuIHtcbiAgZmxleDogMSAxIDA7XG59XG5cbi8qIO2KuOumrCDsmIHsl63snbQg7Lm065OcIOuCqOydgCDrhpLsnbTrpbwg7LGE7Jqw6rOgIOuEmOy5mOuptCDsiqTtgazroaQo6riw7ZqN7IScIDAyKSAqL1xuLmNvZGUtdHJlZS1ib2R5IHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG4gIHNjcm9sbGJhci13aWR0aDogdGhpbjtcbiAgc2Nyb2xsYmFyLWNvbG9yOiB2YXIoLS1uLTMwMCkgdHJhbnNwYXJlbnQ7XG59XG4uY29kZS10cmVlLWJvZHk6aG92ZXIge1xuICBzY3JvbGxiYXItY29sb3I6IHZhcigtLW4tNDAwKSB0cmFuc3BhcmVudDtcbn1cbi5jb2RlLXRyZWUtYm9keTo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogNXB4O1xufVxuLmNvZGUtdHJlZS1ib2R5Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQ6IHZhcigtLW4tMzAwKTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLmNvZGUtdHJlZS1ib2R5OmhvdmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQ6IHZhcigtLW4tNDAwKTtcbn1cblxuLyog6rKA7IOJIOqysOqzvCDsl4bsnYwo7Yq466asKSDigJQg7Yq466asIOyYgeyXrSDqsIDsmrTrjbAgKi9cbi5jb2RlLXRyZWUtZW1wdHkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG59XG4uY29kZS10cmVlLWVtcHR5IHAge1xuICBmb250LXNpemU6IDE1cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICBjb2xvcjogdmFyKC0tbi05MDApO1xufVxuLmNvZGUtdHJlZS1lbXB0eVtoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogMkRlcHRoKO2VmOychCDsvZTrk5wpIOKAlCBGaWdtYSAxNC1NICgxRGVwdGggMTUpICovXG4uY29kZS10cmVlIC5tdHJlZS1jaGlsZHJlbiAubXRyZWUtbmFtZSxcbi5jb2RlLXRyZWUgLm10cmVlLWNoaWxkcmVuIC5tdHJlZS1jb2RlIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbn1cblxuLyog4pSA4pSA4pSA4pSA4pSAIOyasOy4oTog7IOB7IS4L+uTseuhnSDtjKjrhJAg4pSA4pSA4pSA4pSA4pSAICovXG4uY29kZS1kZXRhaWwtY2FyZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDE2cHg7XG4gIG1pbi13aWR0aDogMDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbn1cbi5jb2RlLWRldGFpbC1jYXJkIC5pbmZvLWFjdGlvbnMge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLmNvZGUtZGV0YWlsLWNhcmRbaGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIOyEoO2DnSDsoIQg4oCUIEZpZ21hIOygkOyEoCDrs7TrjZQgREItMTAwICovXG4uY29kZS1kZXRhaWwtY2FyZC0tZW1wdHkge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogMjRweDtcbiAgYm9yZGVyOiAxcHggZGFzaGVkIHZhcigtLWRiLTEwMCk7XG4gIGJvcmRlci1yYWRpdXM6IDE0cHg7XG59XG5cbi5jb2RlLWVtcHR5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG59XG4uY29kZS1lbXB0eSBpbWcge1xuICB3aWR0aDogNDhweDtcbiAgaGVpZ2h0OiA0OHB4O1xufVxuLmNvZGUtZW1wdHkgcCB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgbGluZS1oZWlnaHQ6IDIycHg7XG4gIGNvbG9yOiB2YXIoLS1uLTkwMCk7XG59XG5cbi8qIOyDgeyEuC/rk7HroZ0g7YWM7J2067iUIOKAlCBGaWdtYSB0aCAxNjAsIO2WiSA1MijqtazrtoTshKAgaW5zZXQpICovXG4uaW5mby10YWJsZS5jb2RlLXRhYmxlIHtcbiAgYm9yZGVyLXRvcDogMDtcbn1cbi5pbmZvLXRhYmxlLmNvZGUtdGFibGUgLmNvbC10aCB7XG4gIHdpZHRoOiAxNjBweDtcbn1cbi5pbmZvLXRhYmxlLmNvZGUtdGFibGUgdGgsXG4uaW5mby10YWJsZS5jb2RlLXRhYmxlIHRkIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgdmFyKC0tbi0yMDApO1xufVxuLmluZm8tdGFibGUuY29kZS10YWJsZSB0Ym9keSB0cjpmaXJzdC1jaGlsZCB0aCxcbi5pbmZvLXRhYmxlLmNvZGUtdGFibGUgdGJvZHkgdHI6Zmlyc3QtY2hpbGQgdGQge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIHZhcigtLW4tMjAwKSwgaW5zZXQgMCAtMXB4IDAgdmFyKC0tbi0yMDApO1xufVxuXG4vKiDqt7jro7nrqoUv7IOB7JyE7L2U65OcIOyFgOugie2KuCDtj60gKi9cbi5jb2RlLXRhYmxlIC5zZWxlY3QtYm94IHtcbiAgd2lkdGg6IDM0MHB4O1xufVxuXG4vKiBJRCArIOykkeuzteyytO2BrCDigJQgRmlnbWEgZ2FwNiAo66qo65OIIOq4sOuzuCBnYXA4KSAqL1xuLmNvZGUtdGFibGUgLmlucHV0LWdyb3VwIHtcbiAgZ2FwOiA2cHg7XG59XG5cbi8qIOyCrOyaqeyXrOu2gCDrnbzrlJTsmKQgKi9cbi5jb2RlLXJhZGlvcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTBweDtcbn1cblxuLyog7ZWY7JyE66mU64m0IOy2lOqwgCB3MTEwICovXG4uaW5mby1hY3Rpb25zIC5idG4tdzExMCB7XG4gIHdpZHRoOiAxMTBweDtcbn1cblxuLyog4pSA4pSA4pSA4pSA4pSAIO2MneyXhSDilIDilIDilIDilIDilIAgKi9cbi5jb2RlLXBhZ2UtbW9kYWwgLm1vZGFsLWhlYWQge1xuICBoZWlnaHQ6IDUwcHg7XG59XG5cbi8qIOyGjO2YlSDslYzrprwg7Yyd7JeFIOKAlCBGaWdtYSAzNjAgKi9cbi5tb2RhbC1ib3gtLXNtIHtcbiAgd2lkdGg6IDM2MHB4O1xufVxuLm1vZGFsLWJveC0tc20gLm1vZGFsLWJvZHkge1xuICBtaW4taGVpZ2h0OiAwO1xuICBwYWRkaW5nOiAwIDIwcHggMzBweDtcbn1cbi5tb2RhbC1ib3gtLXNtIC5tb2RhbC1mb290IHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi8qIOygnOuqqSDsl4bripQg7JWM66a8IOKAlCBY66eMLCDqtazrtoTshKAg7JeG7J2MICovXG4ubW9kYWwtaGVhZC0tYmFyZSB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGJvcmRlci1ib3R0b206IDA7XG59IiwiLyoqXG4gKiDqs7XthrXsvZTrk5wg6rSA66asIChPUCA+IOyLnOyKpO2FnCDqtIDrpqwgPiAwMikg4oCUIOyijDog7L2U65OcIO2KuOumrCAvIOyasDog7IOB7IS4wrfrk7HroZ0uXG4gKiDtirjrpqwg66CM642U66eB7J2AIG1vZHVsZXMvX3RyZWUuc2NzcyguY29kZS10cmVlLy5tdHJlZS0qKSDsnqzsgqzsmqkuIEZpZ21hIDE4NDQ6ODExMzAuXG4gKi9cbkB1c2UgXCIuLi8uLi9jb21tb24vdmFyaWFibGVzXCIgYXMgKjtcbkB1c2UgXCIuLi8uLi9jb21tb24vbWl4aW5zXCIgYXMgKjtcblxuLyog7YyAIOyKpO2BrOuhpOuwlCDtjKjthLQoX2xuYi5zY3NzKSDigJQgdGh1bWIg7IOB7IucIE4tMzAwIOKGkiBob3ZlciBOLTQwMCwgSlMg7JeG7J2MICovXG5AbWl4aW4gY3VzdG9tLXNjcm9sbCB7XG4gIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG4gIHNjcm9sbGJhci13aWR0aDogdGhpbjtcbiAgc2Nyb2xsYmFyLWNvbG9yOiB2YXIoLS1uLTMwMCkgdHJhbnNwYXJlbnQ7XG4gICY6aG92ZXIge1xuICAgIHNjcm9sbGJhci1jb2xvcjogdmFyKC0tbi00MDApIHRyYW5zcGFyZW50O1xuICB9XG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogNXB4O1xuICB9XG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1uLTMwMCk7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICB9XG4gICY6aG92ZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1uLTQwMCk7XG4gIH1cbn1cblxuLmNvZGUtbGF5b3V0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IC8qIOyijMK37JqwIOy5tOuTnCDrhpLsnbQg64+Z7J28KEZpZ21hIDgwNiDqs6DsoJUpICovXG4gIGdhcDogMjBweDtcbn1cblxuLyog4pSA4pSA4pSA4pSA4pSAIOyijOy4oTog6rKA7IOJICsg65Ox66GdIOuyhO2KvCArIOy9lOuTnCDtirjrpqwg4pSA4pSA4pSA4pSA4pSAICovXG4uY29kZS1zaWRlIHtcbiAgZmxleDogMCAwIDM1MHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBoZWlnaHQ6IDc1OHB4OyAvKiDqs6DsoJUg64aS7J20IOKAlCDtirjrpqzripQg64K067aAIOyKpO2BrOuhpChGaWdtYSA4MDYg6rOg7KCVKSAqL1xuICBwYWRkaW5nOiAyNHB4O1xufVxuLmNvZGUtc2VhcmNoIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiA4cHg7XG5cbiAgLmlucHV0IHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgfVxufVxuLyog7L2U65Oc6re466O5IOuTseuhnSAvIOqzte2Gtey9lOuTnCDrk7HroZ0g4oCUIDLrk7HrtoQgKi9cbi5jb2RlLWJ0bnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDhweDtcbiAgbWFyZ2luOiAxNnB4IDA7XG5cbiAgLmJ0biB7XG4gICAgZmxleDogMSAxIDA7XG4gIH1cbn1cbi8qIO2KuOumrCDsmIHsl63snbQg7Lm065OcIOuCqOydgCDrhpLsnbTrpbwg7LGE7Jqw6rOgIOuEmOy5mOuptCDsiqTtgazroaQo6riw7ZqN7IScIDAyKSAqL1xuLmNvZGUtdHJlZS1ib2R5IHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIEBpbmNsdWRlIGN1c3RvbS1zY3JvbGw7XG59XG4vKiDqsoDsg4kg6rKw6rO8IOyXhuydjCjtirjrpqwpIOKAlCDtirjrpqwg7JiB7JetIOqwgOyatOuNsCAqL1xuLmNvZGUtdHJlZS1lbXB0eSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgbWluLWhlaWdodDogMTAwJTtcblxuICBwIHtcbiAgICBAaW5jbHVkZSBmb250KDE1KTtcbiAgICBjb2xvcjogdmFyKC0tbi05MDApO1xuICB9XG4gICZbaGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vKiAyRGVwdGgo7ZWY7JyEIOy9lOuTnCkg4oCUIEZpZ21hIDE0LU0gKDFEZXB0aCAxNSkgKi9cbi5jb2RlLXRyZWUgLm10cmVlLWNoaWxkcmVuIHtcbiAgLm10cmVlLW5hbWUsXG4gIC5tdHJlZS1jb2RlIHtcbiAgICBAaW5jbHVkZSBmb250KDE0KTtcbiAgfVxufVxuXG4vKiDilIDilIDilIDilIDilIAg7Jqw7LihOiDsg4HshLgv65Ox66GdIO2MqOuEkCDilIDilIDilIDilIDilIAgKi9cbi5jb2RlLWRldGFpbC1jYXJkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMSAxIGF1dG87XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMTZweDsgLy8g7YWM7J2067iUIOKGlCDrsoTtirztlokgKEZpZ21hKVxuICBtaW4td2lkdGg6IDA7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG5cbiAgLmluZm8tYWN0aW9ucyB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuICAmW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi8qIOyEoO2DnSDsoIQg4oCUIEZpZ21hIOygkOyEoCDrs7TrjZQgREItMTAwICovXG4uY29kZS1kZXRhaWwtY2FyZC0tZW1wdHkge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogMjRweDtcbiAgYm9yZGVyOiAxcHggZGFzaGVkIHZhcigtLWRiLTEwMCk7XG4gIGJvcmRlci1yYWRpdXM6IDE0cHg7XG59XG4uY29kZS1lbXB0eSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuXG4gIGltZyB7XG4gICAgd2lkdGg6IDQ4cHg7XG4gICAgaGVpZ2h0OiA0OHB4O1xuICB9XG4gIHAge1xuICAgIEBpbmNsdWRlIGZvbnQoMTUpO1xuICAgIGNvbG9yOiB2YXIoLS1uLTkwMCk7XG4gIH1cbn1cblxuLyog7IOB7IS4L+uTseuhnSDthYzsnbTruJQg4oCUIEZpZ21hIHRoIDE2MCwg7ZaJIDUyKOq1rOu2hOyEoCBpbnNldCkgKi9cbi5pbmZvLXRhYmxlLmNvZGUtdGFibGUge1xuICBib3JkZXItdG9wOiAwO1xuXG4gIC5jb2wtdGgge1xuICAgIHdpZHRoOiAxNjBweDtcbiAgfVxuICB0aCxcbiAgdGQge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgdmFyKC0tbi0yMDApO1xuICB9XG4gIHRib2R5IHRyOmZpcnN0LWNoaWxkIHRoLFxuICB0Ym9keSB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgIGluc2V0IDAgMXB4IDAgdmFyKC0tbi0yMDApLFxuICAgICAgaW5zZXQgMCAtMXB4IDAgdmFyKC0tbi0yMDApO1xuICB9XG59XG4vKiDqt7jro7nrqoUv7IOB7JyE7L2U65OcIOyFgOugie2KuCDtj60gKi9cbi5jb2RlLXRhYmxlIC5zZWxlY3QtYm94IHtcbiAgd2lkdGg6IDM0MHB4O1xufVxuLyogSUQgKyDspJHrs7XssrTtgawg4oCUIEZpZ21hIGdhcDYgKOuqqOuTiCDquLDrs7ggZ2FwOCkgKi9cbi5jb2RlLXRhYmxlIC5pbnB1dC1ncm91cCB7XG4gIGdhcDogNnB4O1xufVxuLyog7IKs7Jqp7Jes67aAIOudvOuUlOyYpCAqL1xuLmNvZGUtcmFkaW9zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMHB4O1xufVxuLyog7ZWY7JyE66mU64m0IOy2lOqwgCB3MTEwICovXG4uaW5mby1hY3Rpb25zIC5idG4tdzExMCB7XG4gIHdpZHRoOiAxMTBweDtcbn1cblxuLyog4pSA4pSA4pSA4pSA4pSAIO2MneyXhSDilIDilIDilIDilIDilIAgKi9cbi5jb2RlLXBhZ2UtbW9kYWwgLm1vZGFsLWhlYWQge1xuICBoZWlnaHQ6IDUwcHg7XG59XG4vKiDshoztmJUg7JWM66a8IO2MneyXhSDigJQgRmlnbWEgMzYwICovXG4ubW9kYWwtYm94LS1zbSB7XG4gIHdpZHRoOiAzNjBweDtcblxuICAubW9kYWwtYm9keSB7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBwYWRkaW5nOiAwIDIwcHggMzBweDtcbiAgfVxuICAubW9kYWwtZm9vdCB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbn1cbi8qIOygnOuqqSDsl4bripQg7JWM66a8IOKAlCBY66eMLCDqtazrtoTshKAg7JeG7J2MICovXG4ubW9kYWwtaGVhZC0tYmFyZSB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGJvcmRlci1ib3R0b206IDA7XG59XG4iLCIvKipcbiAqIFNDU1Mg67OA7IiYICjsl7DsgrAv66+57Iqk7J247JqpKSDigJQgQ1NTIOy2nOugpSDsl4bsnYwuIOyWtOuUlOyEnOuToCBAdXNlIO2VtOuPhCDspJHrs7Ug7IOd7ISxIOyViCDrkKguXG4gKiAoQ1NTIGN1c3RvbSBwcm9wZXJ0aWVzKDpyb290KeuKlCBfdG9rZW5zLnNjc3Mg7JeQ7IScIOy2nOugpS4pXG4gKi9cblxuLyog66CI7J207JWE7JuDIO2PrSAoUEMg7KCE7JqpKSAqL1xuJHNjcmVlbi1tYXg6IDE5MjBweDsgLy8g7KeA7JuQIOy1nOuMgCDtlbTsg4Hrj4RcbiRjb250ZW50LXdpZHRoOiAxMjAwcHg7IC8vIFvtg4DsnoUgQV0g7KSR7JWZIOygleugrCDsvZjthZDsuKAg7Y+tICgxMzY4IOyghOyXreyghO2ZmOydgCDtjIAg7KGw7JyoIO2bhClcbiRzaWRlYmFyLXdpZHRoOiAyNzBweDsgLy8gW+2DgOyehSBCXSDsoozsuKEgTE5CIC0g7Y687LmoXG4kc2lkZWJhci13aWR0aC1jb2xsYXBzZWQ6IDY2cHg7IC8vIFvtg4DsnoUgQl0g7KKM7LihIExOQiAtIOygke2emFxuJGdyaWQtZ3V0dGVyOiAyMHB4O1xuJGhlYWRlci1oZWlnaHQ6IDcwcHg7IC8vIOqzoOyglSBHTkIg7Zek642UIOuGkuydtCAo67O466y4IOyYpO2UhOyFi+qzvCDrj5nsnbwpXG4kZm9vdGVyLWhlaWdodDogNjBweDsgLy8g7Iqk7Yuw7YKk7ZKL7YSwIOqzhOyCsOyaqSAoTE5CIG1pbi1oZWlnaHQg7JeQ7IScIOygnOyZuClcbiR6LWhlYWRlcjogMTAwO1xuXG4vKipcbiAqIO2DgOydtO2PrCDsiqTsvIDsnbwgKOuLqOydvCDshozsiqQpIOKAlCBAR3VpZGVfVHlwb2dyYXBoeSDquLDspIAuIGtleSA9IGZvbnQtc2l6ZShweCkuXG4gKiDsl6zquLDrp4wg6rOg7LmY66m0IGZvbnQoKSDrr7nsiqTsnbjqs7wgLS1mcy0qIC8gLS1saC0qIO2GoO2BsOydtCDtlajqu5gg6rCx7Iug65CoLlxuICovXG4kZm9udC1zY2FsZTogKFxuICAzMjogKFxuICAgIHNpemU6IDMycHgsXG4gICAgbGluZS1oZWlnaHQ6IDQ0cHgsXG4gICksXG4gIDI4OiAoXG4gICAgc2l6ZTogMjhweCxcbiAgICBsaW5lLWhlaWdodDogNDBweCxcbiAgKSxcbiAgMjQ6IChcbiAgICBzaXplOiAyNHB4LFxuICAgIGxpbmUtaGVpZ2h0OiAzNnB4LFxuICApLFxuICAyMDogKFxuICAgIHNpemU6IDIwcHgsXG4gICAgbGluZS1oZWlnaHQ6IDMwcHgsXG4gICksXG4gIDE4OiAoXG4gICAgc2l6ZTogMThweCxcbiAgICBsaW5lLWhlaWdodDogMjhweCxcbiAgKSxcbiAgMTY6IChcbiAgICBzaXplOiAxNnB4LFxuICAgIGxpbmUtaGVpZ2h0OiAyNHB4LFxuICApLFxuICAxNTogKFxuICAgIHNpemU6IDE1cHgsXG4gICAgbGluZS1oZWlnaHQ6IDIycHgsXG4gICksXG4gIDE0OiAoXG4gICAgc2l6ZTogMTRweCxcbiAgICBsaW5lLWhlaWdodDogMjBweCxcbiAgKSxcbiAgMTM6IChcbiAgICBzaXplOiAxM3B4LFxuICAgIGxpbmUtaGVpZ2h0OiAyMHB4LFxuICApLFxuICAxMjogKFxuICAgIHNpemU6IDEycHgsXG4gICAgbGluZS1oZWlnaHQ6IDE4cHgsXG4gICksXG4pO1xuIiwiLyoqXG4gKiDqs7Xsmqkg66+57Iqk7J24IOKAlCBgQHVzZSAnLi4vY29tbW9uL21peGlucycgYXMgKjtgXG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuQHVzZSBcInZhcmlhYmxlc1wiIGFzICo7XG5cbi8qKlxuICog7YOA7J207Y+sIOyKpOy8gOydvCDsoIHsmqkoc2l6ZSArIGxpbmUtaGVpZ2h0IO2VnCDsjI0pLiDsmIg6IGBAaW5jbHVkZSBmb250KDIwKTtgXG4gKiB3ZWlnaHTripQg67OE64+EKGBmb250LXdlaWdodDogdmFyKC0tZnctYm9sZCk7YCkuIO2XiOyaqSDtgqTripQgJGZvbnQtc2NhbGUuXG4gKi9cbkBtaXhpbiBmb250KCRzaXplKSB7XG4gIEBpZiBub3QgbWFwLmhhcy1rZXkoJGZvbnQtc2NhbGUsICRzaXplKSB7XG4gICAgQGVycm9yIFwiZm9udCgjeyRzaXplfSkg4oCUIOygleydmOuQmOyngCDslYrsnYAg7YOA7J207Y+sIOyCrOydtOymiC4g7ZeI7JqpOiAje21hcC5rZXlzKCRmb250LXNjYWxlKX1cIjtcbiAgfVxuICAkdDogbWFwLmdldCgkZm9udC1zY2FsZSwgJHNpemUpO1xuICBmb250LXNpemU6IG1hcC5nZXQoJHQsIHNpemUpO1xuICBsaW5lLWhlaWdodDogbWFwLmdldCgkdCwgbGluZS1oZWlnaHQpO1xufVxuXG5AbWl4aW4gcmVzcG9uZC11cCgkYnApIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6ICRicCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiByZXNwb25kLWRvd24oJGJwKSB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAoJGJwIC0gMC4wMnB4KSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBlbGxpcHNpcyB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG5AbWl4aW4gZWxsaXBzaXMtbXVsdGkoJGxpbmU6IDIpIHtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogJGxpbmU7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4iXX0= */
