/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%
}

body {
  margin: 0
}

main {
  display: block
}

h1 {
  font-size: 2em;
  margin: .67em 0
}

hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible
}

pre {
  font-family: monospace, monospace;
  font-size: 1em
}

a {
  background-color: transparent
}

abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  text-decoration: underline dotted
}

b,
strong {
  font-weight: bolder
}

code,
kbd,
samp {
  font-family: monospace, monospace;
  font-size: 1em
}

small {
  font-size: 80%
}

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline
}

sub {
  bottom: -.25em
}

sup {
  top: -.5em
}

img {
  border-style: none
}

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
  margin: 0
}

button,
input {
  overflow: visible
}

button,
select {
  text-transform: none
}

[type=button],
[type=reset],
[type=submit],
button {
  -webkit-appearance: button
}

[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner,
button::-moz-focus-inner {
  border-style: none;
  padding: 0
}

[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring,
button:-moz-focusring {
  outline: 1px dotted ButtonText
}

fieldset {
  padding: .35em .75em .625em
}

legend {
  box-sizing: border-box;
  color: inherit;
  display: table;
  max-width: 100%;
  padding: 0;
  white-space: normal
}

progress {
  vertical-align: baseline
}

textarea {
  overflow: auto
}

[type=checkbox],
[type=radio] {
  box-sizing: border-box;
  padding: 0
}

[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto
}

[type=search] {
  -webkit-appearance: textfield;
  outline-offset: -2px
}

[type=search]::-webkit-search-decoration {
  -webkit-appearance: none
}

::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit
}

details {
  display: block
}

summary {
  display: list-item
}

template {
  display: none
}

[hidden] {
  display: none
}
.limit-one-line,
.container .flink .flink-item-name,
.container .flink .flink-item-desc,
#aside-content .card-archives ul.card-archive-list > .card-archive-list-item a span,
#aside-content .card-categories ul.card-category-list > .card-category-list-item a span,
.site-data > a .headline,
#nav #blog-info,
#sidebar #sidebar-menus .menus_items .site-page {
  overflow: hidden;
  -o-text-overflow: ellipsis;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.limit-more-line,
.type-404 .error-content .error-info .error_subtitle,
.article-sort-item-title,
#recent-posts .recent-post-item >.recent-post-info > .article-title,
#recent-posts .recent-post-item >.recent-post-info > .content,
#aside-content .aside-list > .aside-list-item .content > .name,
#aside-content .aside-list > .aside-list-item .content > .title,
#aside-content .aside-list > .aside-list-item .content > .comment,
#post-info .post-title,
.pagination-related .info .info-1 .info-item-2,
.pagination-related .info .info-2 .info-item-1,
.container figure.gallery-group p,
.container figure.gallery-group .gallery-group-name {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
}
.fontawesomeIcon,
.custom-hr:before,
.container.post-content h1:before,
.container.post-content h2:before,
.container.post-content h3:before,
.container.post-content h4:before,
.container.post-content h5:before,
.container.post-content h6:before,
.container.post-content hr:before,
#post .post-copyright:before,
#post #post-outdate-notice:before,
.note:not(.no-icon)::before,
.search-dialog hr:before {
  display: inline-block;
  font-weight: 600;
  font-family: 'Font Awesome 7 Free', 'Font Awesome 6 Free';
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
}
.cardHover,
.type-404 .error-content,
.layout > div:first-child:not(.nc),
#recent-posts .recent-post-item,
#article-container .shuoshuo-item,
#aside-content .card-widget,
.layout .pagination > *:not(.space) {
  background: var(--card-bg);
  -webkit-box-shadow: var(--card-box-shadow);
  box-shadow: var(--card-box-shadow);
  -webkit-transition: all 0.3s;
  -moz-transition: all 0.3s;
  -o-transition: all 0.3s;
  -ms-transition: all 0.3s;
  transition: all 0.3s;
  border-radius: 8px;
}
.cardHover:hover,
.type-404 .error-content:hover,
.layout > div:first-child:not(.nc):hover,
#recent-posts .recent-post-item:hover,
#article-container .shuoshuo-item:hover,
#aside-content .card-widget:hover,
.layout .pagination > *:not(.space):hover {
  -webkit-box-shadow: var(--card-hover-box-shadow);
  box-shadow: var(--card-hover-box-shadow);
}
.imgHover,
.type-404 .error-content .error-img img,
.article-sort-item-img :first-child,
#recent-posts .recent-post-item .post_cover .post-bg,
#aside-content .aside-list > .aside-list-item .thumbnail :first-child {
  width: 100%;
  height: 100%;
  -webkit-transition: filter 375ms ease-in 0.2s, -webkit-transform 0.6s;
  -moz-transition: filter 375ms ease-in 0.2s, -moz-transform 0.6s;
  -o-transition: filter 375ms ease-in 0.2s, -o-transform 0.6s;
  -ms-transition: filter 375ms ease-in 0.2s, -ms-transform 0.6s;
  transition: filter 375ms ease-in 0.2s, transform 0.6s;
  object-fit: cover;
}
.imgHover:hover,
.type-404 .error-content .error-img img:hover,
.article-sort-item-img :first-child:hover,
#recent-posts .recent-post-item .post_cover .post-bg:hover,
#aside-content .aside-list > .aside-list-item .thumbnail :first-child:hover {
  -webkit-transform: scale(1.1);
  -moz-transform: scale(1.1);
  -o-transform: scale(1.1);
  -ms-transform: scale(1.1);
  transform: scale(1.1);
}
.postImgHover:hover .cover,
.pagination-related:hover .cover {
  opacity: 0.5;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
  filter: alpha(opacity=50);
  -webkit-transform: scale(1.1);
  -moz-transform: scale(1.1);
  -o-transform: scale(1.1);
  -ms-transform: scale(1.1);
  transform: scale(1.1);
}
.postImgHover .cover,
.pagination-related .cover {
  width: 100%;
  height: 100%;
  opacity: 0.4;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";
  filter: alpha(opacity=40);
  -webkit-transition: all 0.6s, filter 375ms ease-in 0.2s;
  -moz-transition: all 0.6s, filter 375ms ease-in 0.2s;
  -o-transition: all 0.6s, filter 375ms ease-in 0.2s;
  -ms-transition: all 0.6s, filter 375ms ease-in 0.2s;
  transition: all 0.6s, filter 375ms ease-in 0.2s;
  object-fit: cover;
}
.list-beauty,
.category-lists ul {
  list-style: none;
}
.list-beauty li,
.category-lists ul li {
  position: relative;
  padding: 0.12em 0.4em 0.12em 1.4em;
}
.list-beauty li:hover:before,
.category-lists ul li:hover:before {
  border-color: var(--pseudo-hover);
}
.list-beauty li:before,
.category-lists ul li:before {
  position: absolute;
  top: 0.67em;
  left: 0;
  width: 0.43em;
  height: 0.43em;
  border: 0.215em solid #49b1f5;
  border-radius: 0.43em;
  background: transparent;
  content: '';
  cursor: pointer;
  -webkit-transition: all 0.3s ease-out;
  -moz-transition: all 0.3s ease-out;
  -o-transition: all 0.3s ease-out;
  -ms-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
}
.custom-hr,
.container.post-content hr,
.search-dialog hr {
  position: relative;
  margin: 40px auto;
  border: 2px dashed var(--hr-border);
  width: calc(100% - 4px);
}
.custom-hr:hover:before,
.container.post-content hr:hover:before,
.search-dialog hr:hover:before {
  left: calc(95% - 20px);
}
.custom-hr:before,
.container.post-content hr:before,
.search-dialog hr:before {
  position: absolute;
  top: -10px;
  left: 5%;
  z-index: 1;
  color: var(--hr-before-color);
  content: '\f0c4';
  font-size: 20px;
  line-height: 1;
  -webkit-transition: all 1s ease-in-out;
  -moz-transition: all 1s ease-in-out;
  -o-transition: all 1s ease-in-out;
  -ms-transition: all 1s ease-in-out;
  transition: all 1s ease-in-out;
}
.verticalCenter,
.pagination-related .info .info-1,
.pagination-related .info .info-2 {
  position: absolute;
  top: 50%;
  width: 100%;
  -webkit-transform: translate(0, -50%);
  -moz-transform: translate(0, -50%);
  -o-transform: translate(0, -50%);
  -ms-transform: translate(0, -50%);
  transform: translate(0, -50%);
}
#content-inner,
#footer {
  -webkit-animation: bottom-top 1s;
  -moz-animation: bottom-top 1s;
  -o-animation: bottom-top 1s;
  -ms-animation: bottom-top 1s;
  animation: bottom-top 1s;
}
#page-header:not(.full_page),
#nav.show {
  -webkit-animation: header-effect 1s;
  -moz-animation: header-effect 1s;
  -o-animation: header-effect 1s;
  -ms-animation: header-effect 1s;
  animation: header-effect 1s;
}
#site-title,
#site-subtitle {
  -webkit-animation: titleScale 1s;
  -moz-animation: titleScale 1s;
  -o-animation: titleScale 1s;
  -ms-animation: titleScale 1s;
  animation: titleScale 1s;
}
canvas:not(#ribbon-canvas),
#web_bg {
  -webkit-animation: to_show 4s;
  -moz-animation: to_show 4s;
  -o-animation: to_show 4s;
  -ms-animation: to_show 4s;
  animation: to_show 4s;
}
#ribbon-canvas {
  -webkit-animation: ribbon_to_show 4s;
  -moz-animation: ribbon_to_show 4s;
  -o-animation: ribbon_to_show 4s;
  -ms-animation: ribbon_to_show 4s;
  animation: ribbon_to_show 4s;
}
#sidebar-menus.open > :nth-child(1) {
  -webkit-animation: sidebarItem 0.2s;
  -moz-animation: sidebarItem 0.2s;
  -o-animation: sidebarItem 0.2s;
  -ms-animation: sidebarItem 0.2s;
  animation: sidebarItem 0.2s;
}
#sidebar-menus.open > :nth-child(2) {
  -webkit-animation: sidebarItem 0.4s;
  -moz-animation: sidebarItem 0.4s;
  -o-animation: sidebarItem 0.4s;
  -ms-animation: sidebarItem 0.4s;
  animation: sidebarItem 0.4s;
}
#sidebar-menus.open > :nth-child(3) {
  -webkit-animation: sidebarItem 0.6s;
  -moz-animation: sidebarItem 0.6s;
  -o-animation: sidebarItem 0.6s;
  -ms-animation: sidebarItem 0.6s;
  animation: sidebarItem 0.6s;
}
#sidebar-menus.open > :nth-child(4) {
  -webkit-animation: sidebarItem 0.8s;
  -moz-animation: sidebarItem 0.8s;
  -o-animation: sidebarItem 0.8s;
  -ms-animation: sidebarItem 0.8s;
  animation: sidebarItem 0.8s;
}
.scroll-down-effects {
  -webkit-animation: scroll-down-effect 1.5s infinite;
  -moz-animation: scroll-down-effect 1.5s infinite;
  -o-animation: scroll-down-effect 1.5s infinite;
  -ms-animation: scroll-down-effect 1.5s infinite;
  animation: scroll-down-effect 1.5s infinite;
}
.reward-main {
  -webkit-animation: donate_effcet 0.3s 0.1s ease both;
  -moz-animation: donate_effcet 0.3s 0.1s ease both;
  -o-animation: donate_effcet 0.3s 0.1s ease both;
  -ms-animation: donate_effcet 0.3s 0.1s ease both;
  animation: donate_effcet 0.3s 0.1s ease both;
}
@-moz-keyframes scroll-down-effect {
  0% {
    opacity: 0.4;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";
    filter: alpha(opacity=40);
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    transform: translate(0, 0);
  }
  50% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
    -webkit-transform: translate(0, -16px);
    -moz-transform: translate(0, -16px);
    -o-transform: translate(0, -16px);
    -ms-transform: translate(0, -16px);
    transform: translate(0, -16px);
  }
  100% {
    opacity: 0.4;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";
    filter: alpha(opacity=40);
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    transform: translate(0, 0);
  }
}
@-webkit-keyframes scroll-down-effect {
  0% {
    opacity: 0.4;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";
    filter: alpha(opacity=40);
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    transform: translate(0, 0);
  }
  50% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
    -webkit-transform: translate(0, -16px);
    -moz-transform: translate(0, -16px);
    -o-transform: translate(0, -16px);
    -ms-transform: translate(0, -16px);
    transform: translate(0, -16px);
  }
  100% {
    opacity: 0.4;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";
    filter: alpha(opacity=40);
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    transform: translate(0, 0);
  }
}
@-o-keyframes scroll-down-effect {
  0% {
    opacity: 0.4;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";
    filter: alpha(opacity=40);
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    transform: translate(0, 0);
  }
  50% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
    -webkit-transform: translate(0, -16px);
    -moz-transform: translate(0, -16px);
    -o-transform: translate(0, -16px);
    -ms-transform: translate(0, -16px);
    transform: translate(0, -16px);
  }
  100% {
    opacity: 0.4;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";
    filter: alpha(opacity=40);
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    transform: translate(0, 0);
  }
}
@keyframes scroll-down-effect {
  0% {
    opacity: 0.4;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";
    filter: alpha(opacity=40);
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    transform: translate(0, 0);
  }
  50% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
    -webkit-transform: translate(0, -16px);
    -moz-transform: translate(0, -16px);
    -o-transform: translate(0, -16px);
    -ms-transform: translate(0, -16px);
    transform: translate(0, -16px);
  }
  100% {
    opacity: 0.4;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";
    filter: alpha(opacity=40);
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    transform: translate(0, 0);
  }
}
@-moz-keyframes header-effect {
  0% {
    -webkit-transform: translateY(-35px);
    -moz-transform: translateY(-35px);
    -o-transform: translateY(-35px);
    -ms-transform: translateY(-35px);
    transform: translateY(-35px);
  }
  100% {
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -o-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
@-webkit-keyframes header-effect {
  0% {
    -webkit-transform: translateY(-35px);
    -moz-transform: translateY(-35px);
    -o-transform: translateY(-35px);
    -ms-transform: translateY(-35px);
    transform: translateY(-35px);
  }
  100% {
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -o-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
@-o-keyframes header-effect {
  0% {
    -webkit-transform: translateY(-35px);
    -moz-transform: translateY(-35px);
    -o-transform: translateY(-35px);
    -ms-transform: translateY(-35px);
    transform: translateY(-35px);
  }
  100% {
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -o-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
@keyframes header-effect {
  0% {
    -webkit-transform: translateY(-35px);
    -moz-transform: translateY(-35px);
    -o-transform: translateY(-35px);
    -ms-transform: translateY(-35px);
    transform: translateY(-35px);
  }
  100% {
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -o-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
@-moz-keyframes bottom-top {
  0% {
    -webkit-transform: translateY(35px);
    -moz-transform: translateY(35px);
    -o-transform: translateY(35px);
    -ms-transform: translateY(35px);
    transform: translateY(35px);
  }
  100% {
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -o-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
@-webkit-keyframes bottom-top {
  0% {
    -webkit-transform: translateY(35px);
    -moz-transform: translateY(35px);
    -o-transform: translateY(35px);
    -ms-transform: translateY(35px);
    transform: translateY(35px);
  }
  100% {
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -o-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
@-o-keyframes bottom-top {
  0% {
    -webkit-transform: translateY(35px);
    -moz-transform: translateY(35px);
    -o-transform: translateY(35px);
    -ms-transform: translateY(35px);
    transform: translateY(35px);
  }
  100% {
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -o-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
@keyframes bottom-top {
  0% {
    -webkit-transform: translateY(35px);
    -moz-transform: translateY(35px);
    -o-transform: translateY(35px);
    -ms-transform: translateY(35px);
    transform: translateY(35px);
  }
  100% {
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -o-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
@-moz-keyframes titleScale {
  0% {
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter: alpha(opacity=0);
    -webkit-transform: scale(0.7);
    -moz-transform: scale(0.7);
    -o-transform: scale(0.7);
    -ms-transform: scale(0.7);
    transform: scale(0.7);
  }
  100% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -o-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
  }
}
@-webkit-keyframes titleScale {
  0% {
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter: alpha(opacity=0);
    -webkit-transform: scale(0.7);
    -moz-transform: scale(0.7);
    -o-transform: scale(0.7);
    -ms-transform: scale(0.7);
    transform: scale(0.7);
  }
  100% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -o-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
  }
}
@-o-keyframes titleScale {
  0% {
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter: alpha(opacity=0);
    -webkit-transform: scale(0.7);
    -moz-transform: scale(0.7);
    -o-transform: scale(0.7);
    -ms-transform: scale(0.7);
    transform: scale(0.7);
  }
  100% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -o-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
  }
}
@keyframes titleScale {
  0% {
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter: alpha(opacity=0);
    -webkit-transform: scale(0.7);
    -moz-transform: scale(0.7);
    -o-transform: scale(0.7);
    -ms-transform: scale(0.7);
    transform: scale(0.7);
  }
  100% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -o-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
  }
}
@-moz-keyframes search_close {
  0% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -o-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
  }
  100% {
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter: alpha(opacity=0);
    -webkit-transform: scale(0.7);
    -moz-transform: scale(0.7);
    -o-transform: scale(0.7);
    -ms-transform: scale(0.7);
    transform: scale(0.7);
  }
}
@-webkit-keyframes search_close {
  0% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -o-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
  }
  100% {
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter: alpha(opacity=0);
    -webkit-transform: scale(0.7);
    -moz-transform: scale(0.7);
    -o-transform: scale(0.7);
    -ms-transform: scale(0.7);
    transform: scale(0.7);
  }
}
@-o-keyframes search_close {
  0% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -o-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
  }
  100% {
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter: alpha(opacity=0);
    -webkit-transform: scale(0.7);
    -moz-transform: scale(0.7);
    -o-transform: scale(0.7);
    -ms-transform: scale(0.7);
    transform: scale(0.7);
  }
}
@keyframes search_close {
  0% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -o-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
  }
  100% {
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter: alpha(opacity=0);
    -webkit-transform: scale(0.7);
    -moz-transform: scale(0.7);
    -o-transform: scale(0.7);
    -ms-transform: scale(0.7);
    transform: scale(0.7);
  }
}
@-moz-keyframes to_show {
  0% {
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter: alpha(opacity=0);
  }
  100% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
  }
}
@-webkit-keyframes to_show {
  0% {
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter: alpha(opacity=0);
  }
  100% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
  }
}
@-o-keyframes to_show {
  0% {
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter: alpha(opacity=0);
  }
  100% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
  }
}
@keyframes to_show {
  0% {
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter: alpha(opacity=0);
  }
  100% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
  }
}
@-moz-keyframes to_hide {
  0% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
  }
  100% {
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter: alpha(opacity=0);
  }
}
@-webkit-keyframes to_hide {
  0% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
  }
  100% {
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter: alpha(opacity=0);
  }
}
@-o-keyframes to_hide {
  0% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
  }
  100% {
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter: alpha(opacity=0);
  }
}
@keyframes to_hide {
  0% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
  }
  100% {
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter: alpha(opacity=0);
  }
}
@-moz-keyframes ribbon_to_show {
  0% {
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter: alpha(opacity=0);
  }
  100% {
    opacity: 0.6;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
    filter: alpha(opacity=60);
  }
}
@-webkit-keyframes ribbon_to_show {
  0% {
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter: alpha(opacity=0);
  }
  100% {
    opacity: 0.6;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
    filter: alpha(opacity=60);
  }
}
@-o-keyframes ribbon_to_show {
  0% {
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter: alpha(opacity=0);
  }
  100% {
    opacity: 0.6;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
    filter: alpha(opacity=60);
  }
}
@keyframes ribbon_to_show {
  0% {
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter: alpha(opacity=0);
  }
  100% {
    opacity: 0.6;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
    filter: alpha(opacity=60);
  }
}
@-moz-keyframes avatar_turn_around {
  from {
    -webkit-transform: rotate(0);
    -moz-transform: rotate(0);
    -o-transform: rotate(0);
    -ms-transform: rotate(0);
    transform: rotate(0);
  }
  to {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@-webkit-keyframes avatar_turn_around {
  from {
    -webkit-transform: rotate(0);
    -moz-transform: rotate(0);
    -o-transform: rotate(0);
    -ms-transform: rotate(0);
    transform: rotate(0);
  }
  to {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@-o-keyframes avatar_turn_around {
  from {
    -webkit-transform: rotate(0);
    -moz-transform: rotate(0);
    -o-transform: rotate(0);
    -ms-transform: rotate(0);
    transform: rotate(0);
  }
  to {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@keyframes avatar_turn_around {
  from {
    -webkit-transform: rotate(0);
    -moz-transform: rotate(0);
    -o-transform: rotate(0);
    -ms-transform: rotate(0);
    transform: rotate(0);
  }
  to {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@-moz-keyframes sub_menus {
  0% {
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter: alpha(opacity=0);
    -webkit-transform: translateY(10px);
    -moz-transform: translateY(10px);
    -o-transform: translateY(10px);
    -ms-transform: translateY(10px);
    transform: translateY(10px);
  }
  100% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -o-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
@-webkit-keyframes sub_menus {
  0% {
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter: alpha(opacity=0);
    -webkit-transform: translateY(10px);
    -moz-transform: translateY(10px);
    -o-transform: translateY(10px);
    -ms-transform: translateY(10px);
    transform: translateY(10px);
  }
  100% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -o-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
@-o-keyframes sub_menus {
  0% {
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter: alpha(opacity=0);
    -webkit-transform: translateY(10px);
    -moz-transform: translateY(10px);
    -o-transform: translateY(10px);
    -ms-transform: translateY(10px);
    transform: translateY(10px);
  }
  100% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -o-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
@keyframes sub_menus {
  0% {
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter: alpha(opacity=0);
    -webkit-transform: translateY(10px);
    -moz-transform: translateY(10px);
    -o-transform: translateY(10px);
    -ms-transform: translateY(10px);
    transform: translateY(10px);
  }
  100% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -o-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
@-moz-keyframes donate_effcet {
  0% {
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter: alpha(opacity=0);
    -webkit-transform: translateY(-20px);
    -moz-transform: translateY(-20px);
    -o-transform: translateY(-20px);
    -ms-transform: translateY(-20px);
    transform: translateY(-20px);
  }
  100% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -o-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
@-webkit-keyframes donate_effcet {
  0% {
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter: alpha(opacity=0);
    -webkit-transform: translateY(-20px);
    -moz-transform: translateY(-20px);
    -o-transform: translateY(-20px);
    -ms-transform: translateY(-20px);
    transform: translateY(-20px);
  }
  100% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -o-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
@-o-keyframes donate_effcet {
  0% {
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter: alpha(opacity=0);
    -webkit-transform: translateY(-20px);
    -moz-transform: translateY(-20px);
    -o-transform: translateY(-20px);
    -ms-transform: translateY(-20px);
    transform: translateY(-20px);
  }
  100% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -o-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
@keyframes donate_effcet {
  0% {
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter: alpha(opacity=0);
    -webkit-transform: translateY(-20px);
    -moz-transform: translateY(-20px);
    -o-transform: translateY(-20px);
    -ms-transform: translateY(-20px);
    transform: translateY(-20px);
  }
  100% {
    opacity: 1;
    -ms-filter: none;
    filter: none;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -o-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
@-moz-keyframes sidebarItem {
  0% {
    -webkit-transform: translateX(200px);
    -moz-transform: translateX(200px);
    -o-transform: translateX(200px);
    -ms-transform: translateX(200px);
    transform: translateX(200px);
  }
  100% {
    -webkit-transform: translateX(0);
    -moz-transform: translateX(0);
    -o-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
  }
}
@-webkit-keyframes sidebarItem {
  0% {
    -webkit-transform: translateX(200px);
    -moz-transform: translateX(200px);
    -o-transform: translateX(200px);
    -ms-transform: translateX(200px);
    transform: translateX(200px);
  }
  100% {
    -webkit-transform: translateX(0);
    -moz-transform: translateX(0);
    -o-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
  }
}
@-o-keyframes sidebarItem {
  0% {
    -webkit-transform: translateX(200px);
    -moz-transform: translateX(200px);
    -o-transform: translateX(200px);
    -ms-transform: translateX(200px);
    transform: translateX(200px);
  }
  100% {
    -webkit-transform: translateX(0);
    -moz-transform: translateX(0);
    -o-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
  }
}
@keyframes sidebarItem {
  0% {
    -webkit-transform: translateX(200px);
    -moz-transform: translateX(200px);
    -o-transform: translateX(200px);
    -ms-transform: translateX(200px);
    transform: translateX(200px);
  }
  100% {
    -webkit-transform: translateX(0);
    -moz-transform: translateX(0);
    -o-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
  }
}
:root {
  --global-font-size: 14px;
  --global-bg: #fff;
  --font-color: #4c4948;
  --hr-border: #a4d8fa;
  --hr-before-color: #80c8f8;
  --search-bg: #f6f8fa;
  --search-input-color: #4c4948;
  --search-a-color: #4c4948;
  --preloader-bg: #37474f;
  --preloader-color: #fff;
  --tab-border-color: #f0f0f0;
  --tab-button-bg: #f0f0f0;
  --tab-button-color: #1f2d3d;
  --tab-button-hover-bg: #dcdcdc;
  --tab-button-active-bg: #fff;
  --card-bg: #fff;
  --card-meta: #858585;
  --sidebar-bg: #f6f8fa;
  --sidebar-menu-bg: #fff;
  --btn-hover-color: #ff7242;
  --btn-color: #fff;
  --btn-bg: #49b1f5;
  --text-bg-hover: rgba(73,177,245,0.7);
  --light-grey: #eee;
  --dark-grey: #cacaca;
  --white: #fff;
  --text-highlight-color: #1f2d3d;
  --blockquote-color: #6a737d;
  --blockquote-bg: rgba(73,177,245,0.1);
  --reward-pop: #f5f5f5;
  --toc-link-color: #666261;
  --card-box-shadow: 0 3px 8px 6px rgba(7,17,27,0.05);
  --card-hover-box-shadow: 0 3px 8px 6px rgba(7,17,27,0.09);
  --pseudo-hover: #ff7242;
  --headline-presudo: #a0a0a0;
  --scrollbar-color: #49b1f5;
  --default-bg-color: #49b1f5;
  --zoom-bg: #fff;
  --mark-bg: rgba(0,0,0,0.3);
}
body {
  position: relative;
  overflow-y: scroll;
  min-height: 100%;
  background: var(--global-bg);
  color: var(--font-color);
  font-size: var(--global-font-size);
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', Lato, Roboto, 'PingFang SC', 'Microsoft YaHei', sans-serif;
  line-height: 2;
  -webkit-tap-highlight-color: rgba(0,0,0,0);
  scroll-behavior: smooth;
}
@-moz-document url-prefix() {
  * {
    scrollbar-width: thin;
    scrollbar-color: var(--scrollbar-color) transparent;
  }
}
*::-webkit-scrollbar {
  width: 5px;
  height: 5px;
}
*::-webkit-scrollbar-thumb {
  background: var(--scrollbar-color);
}
*::-webkit-scrollbar-track {
  background-color: transparent;
}
input::placeholder {
  color: var(--font-color);
}
h1,
h2,
h3,
h4,
h5,
h6 {
  position: relative;
  margin: 20px 0 14px;
  color: var(--text-highlight-color);
  font-weight: bold;
}
h1 code,
h2 code,
h3 code,
h4 code,
h5 code,
h6 code {
  font-size: inherit !important;
}
* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
.table-wrap {
  overflow-x: scroll;
  margin: 0 0 20px;
  border-radius: 5px;
}
.table-wrap table {
  border-radius: 5px;
}
.table-wrap table thead > tr:first-child th:first-child {
  border-top-left-radius: 5px;
}
.table-wrap table thead > tr:first-child th:last-child {
  border-top-right-radius: 5px;
}
.table-wrap table tbody > tr:last-child td:first-child {
  border-bottom-left-radius: 5px;
}
.table-wrap table tbody > tr:last-child td:last-child {
  border-bottom-right-radius: 5px;
}
table {
  display: table;
  width: 100%;
  border-spacing: 0;
  border-collapse: separate;
  border-top: 1px solid var(--light-grey);
  border-left: 1px solid var(--light-grey);
  empty-cells: show;
}
table thead {
  background: rgba(153,169,191,0.1);
}
table th,
table td {
  padding: 6px 12px;
  border: 1px solid var(--light-grey);
  border-top: none;
  border-left: none;
  vertical-align: middle;
}
*::selection {
  background: #00c4b6;
  color: #f7f7f7;
}
button {
  padding: 0;
  outline: 0;
  border: none;
  background: none;
  cursor: pointer;
  touch-action: manipulation;
}
a {
  color: #99a9bf;
  text-decoration: none;
  word-wrap: break-word;
  -webkit-transition: all 0.2s;
  -moz-transition: all 0.2s;
  -o-transition: all 0.2s;
  -ms-transition: all 0.2s;
  transition: all 0.2s;
  overflow-wrap: break-word;
}
a:hover {
  color: #49b1f5;
}
.text-center {
  text-align: center;
}
.text-right {
  text-align: right;
}
img[src=''],
img:not([src]) {
  opacity: 0;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  filter: alpha(opacity=0);
}
.img-alt {
  margin: -10px 0 10px;
  color: #858585;
}
.img-alt:hover {
  text-decoration: none !important;
}
blockquote {
  margin: 0 0 20px;
  padding: 7px 15px;
  border-left: 4px solid #49b1f5;
  background-color: var(--blockquote-bg);
  color: var(--blockquote-color);
  border-radius: 6px;
}
blockquote footer cite:before {
  padding: 0 5px;
  content: '—';
}
blockquote > :last-child {
  margin-bottom: 0 !important;
}
.fa-fw {
  width: 1.25em;
  text-align: center;
}
:root {
  --hl-color: #eff;
  --hl-bg: #212121;
  --hltools-bg: #1c1c1c;
  --hltools-color: rgba(238,255,255,0.8);
  --hlnumber-bg: #212121;
  --hlnumber-color: rgba(238,255,255,0.5);
  --hlscrollbar-bg: #353535;
  --hlexpand-bg: linear-gradient(180deg, rgba(33,33,33,0.6), rgba(33,33,33,0.9));
}
[data-theme='dark'] {
  --hl-color: rgba(255,255,255,0.7);
  --hl-bg: #171717;
  --hltools-bg: #1a1a1a;
  --hltools-color: #90a4ae;
  --hlnumber-bg: #171717;
  --hlnumber-color: rgba(255,255,255,0.4);
  --hlscrollbar-bg: #1f1f1f;
  --hlexpand-bg: linear-gradient(180deg, rgba(23,23,23,0.6), rgba(23,23,23,0.9));
}
@-moz-document url-prefix() {
  scrollbar-color: var(--hlscrollbar-bg) transparent;
}
figure.highlight table::-webkit-scrollbar-thumb {
  background: var(--hlscrollbar-bg);
}
figure.highlight pre .deletion {
  color: #bf42bf;
}
figure.highlight pre .addition {
  color: #105ede;
}
figure.highlight pre .meta {
  color: #c792ea;
}
figure.highlight pre .comment {
  color: #969896;
}
figure.highlight pre .variable,
figure.highlight pre .attribute,
figure.highlight pre .regexp,
figure.highlight pre .ruby .constant,
figure.highlight pre .xml .tag .title,
figure.highlight pre .xml .pi,
figure.highlight pre .xml .doctype,
figure.highlight pre .html .doctype,
figure.highlight pre .css .id,
figure.highlight pre .tag .name,
figure.highlight pre .css .class,
figure.highlight pre .css .pseudo {
  color: #ff5370;
}
figure.highlight pre .tag {
  color: #89ddff;
}
figure.highlight pre .number,
figure.highlight pre .preprocessor,
figure.highlight pre .literal,
figure.highlight pre .params,
figure.highlight pre .constant,
figure.highlight pre .command {
  color: #f78c6c;
}
figure.highlight pre .built_in {
  color: #ffcb6b;
}
figure.highlight pre .ruby .class .title,
figure.highlight pre .css .rules .attribute,
figure.highlight pre .string,
figure.highlight pre .value,
figure.highlight pre .inheritance,
figure.highlight pre .header,
figure.highlight pre .ruby .symbol,
figure.highlight pre .xml .cdata,
figure.highlight pre .special,
figure.highlight pre .number,
figure.highlight pre .formula {
  color: #c3e88d;
}
figure.highlight pre .keyword,
figure.highlight pre .title,
figure.highlight pre .css .hexcolor {
  color: #89ddff;
}
figure.highlight pre .function,
figure.highlight pre .python .decorator,
figure.highlight pre .python .title,
figure.highlight pre .ruby .function .title,
figure.highlight pre .ruby .title .keyword,
figure.highlight pre .perl .sub,
figure.highlight pre .javascript .title,
figure.highlight pre .coffeescript .title {
  color: #82aaff;
}
figure.highlight pre .tag .attr,
figure.highlight pre .javascript .function {
  color: #c792ea;
}
.container figure.highlight .line.marked {
  background-color: rgba(97,97,97,0.314);
}
.container figure.highlight table {
  display: block;
  overflow: auto;
  border: none;
}
.container figure.highlight table td {
  padding: 0;
  border: none;
}
.container figure.highlight .gutter pre {
  padding-right: 10px;
  padding-left: 10px;
  background-color: var(--hlnumber-bg);
  color: var(--hlnumber-color);
  text-align: right;
}
.container figure.highlight .code pre {
  padding-right: 10px;
  padding-left: 10px;
  width: 100%;
}
.container pre,
.container figure.highlight {
  overflow: auto;
  margin: 0 0 20px;
  padding: 0;
  background: var(--hl-bg);
  color: var(--hl-color);
  line-height: 1.6;
}
.container pre,
.container code {
  font-size: var(--global-font-size);
  font-family: consolas, Menlo, monospace, 'PingFang SC', 'Microsoft YaHei', sans-serif !important;
  border-radius: 6px;
}
.container code {
  padding: 2px 5px;
  background: rgba(27,31,35,0.05);
  color: #f47466;
}
.container pre {
  padding: 10px 20px;
}
.container pre code {
  padding: 0;
  background: none;
  color: var(--hl-color);
  text-shadow: none;
}
.container figure.highlight {
  position: relative;
  border-radius: 6px;
}
.container figure.highlight pre {
  margin: 0;
  padding: 8px 0;
  border: none;
}
.container figure.highlight figcaption,
.container figure.highlight .caption {
  padding: 6px 0 2px 14px;
  font-size: var(--global-font-size);
  line-height: 1em;
}
.container figure.highlight figcaption a,
.container figure.highlight .caption a {
  float: right;
  padding-right: 10px;
  color: var(--hl-color);
}
.container figure.highlight figcaption a:hover,
.container figure.highlight .caption a:hover {
  border-bottom-color: var(--hl-color);
}
.container figure.highlight.copy-true {
  -webkit-user-select: all;
  -moz-user-select: all;
  -ms-user-select: all;
  user-select: all;
  -webkit-user-select: all;
}
.container figure.highlight.copy-true > table,
.container figure.highlight.copy-true > pre {
  display: block !important;
  opacity: 0;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  filter: alpha(opacity=0);
}
.container .highlight-tools {
  display: -webkit-box;
  display: -moz-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: box;
  display: flex;
  -webkit-box-align: center;
  -moz-box-align: center;
  -o-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  align-items: center;
  padding: 0 8px;
  min-height: 24px;
  height: 2.15em;
  background: var(--hltools-bg);
  color: var(--hltools-color);
  font-size: var(--global-font-size);
  overflow: hidden;
}
.container .highlight-tools > * {
  padding: 5px;
}
.container .highlight-tools i {
  cursor: pointer;
  -webkit-transition: all 0.3s;
  -moz-transition: all 0.3s;
  -o-transition: all 0.3s;
  -ms-transition: all 0.3s;
  transition: all 0.3s;
}
.container .highlight-tools i:hover {
  color: #49b1f5;
}
.container .highlight-tools.closed ~ * {
  display: none;
}
.container .highlight-tools.closed .expand {
  -webkit-transform: rotate(-90deg);
  -moz-transform: rotate(-90deg);
  -o-transform: rotate(-90deg);
  -ms-transform: rotate(-90deg);
  transform: rotate(-90deg);
}
.container .highlight-tools .code-lang {
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  -o-box-flex: 1;
  box-flex: 1;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  text-transform: uppercase;
  font-weight: bold;
  font-size: 1.15em;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-user-select: none;
  padding: 2px;
}
.container .highlight-tools .copy-notice {
  padding-right: 2px;
  opacity: 0;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  filter: alpha(opacity=0);
  -webkit-transition: opacity 0.4s;
  -moz-transition: opacity 0.4s;
  -o-transition: opacity 0.4s;
  -ms-transition: opacity 0.4s;
  transition: opacity 0.4s;
}
.container .highlight-tools .code-lang {
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  -o-box-flex: 1;
  box-flex: 1;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}
.container .gutter {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-user-select: none;
}
.container .gist table {
  width: auto;
}
.container .gist table td {
  border: none;
}
.container figure.highlight {
  margin: 0 0 24px;
  border-radius: 7px;
  -webkit-box-shadow: 0 5px 10px 0 rgba(0,0,0,0.4);
  box-shadow: 0 5px 10px 0 rgba(0,0,0,0.4);
  -webkit-transform: translateZ(0);
}
.container figure.highlight .highlight-tools .macStyle {
  display: -webkit-box;
  display: -moz-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: box;
  display: flex;
}
.container figure.highlight .highlight-tools .macStyle > * {
  margin-right: 8px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
}
.container figure.highlight .highlight-tools .macStyle > :last-child {
  margin-right: 5px;
}
.container figure.highlight .highlight-tools .macStyle .mac-close {
  background: #fc625d;
}
.container figure.highlight .highlight-tools .macStyle .mac-minimize {
  background: #fdbc40;
}
.container figure.highlight .highlight-tools .macStyle .mac-maximize {
  background: #35cd4b;
}
.container figure.highlight .highlight-tools > :nth-child(2) {
  -webkit-box-ordinal-group: 8;
  -moz-box-ordinal-group: 8;
  -o-box-ordinal-group: 8;
  -ms-flex-order: 8;
  -webkit-order: 8;
  order: 8;
}
.container figure.highlight .highlight-tools.closed .expand {
  -webkit-transform: rotate(90deg);
  -moz-transform: rotate(90deg);
  -o-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  transform: rotate(90deg);
}
.container .code-expand-btn {
  position: absolute;
  bottom: 0;
  z-index: 10;
  width: 100%;
  background: var(--hlexpand-bg);
  text-align: center;
  font-size: var(--global-font-size);
  cursor: pointer;
}
.container .code-expand-btn i {
  padding: 6px 0;
  color: var(--hlnumber-color);
  -webkit-animation: code-expand-key 1.2s infinite;
  -moz-animation: code-expand-key 1.2s infinite;
  -o-animation: code-expand-key 1.2s infinite;
  -ms-animation: code-expand-key 1.2s infinite;
  animation: code-expand-key 1.2s infinite;
}
.container .code-expand-btn.expand-done > i {
  -webkit-transform: rotate(180deg);
  -moz-transform: rotate(180deg);
  -o-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  transform: rotate(180deg);
}
.container .code-expand-btn.expand-done + table,
.container .code-expand-btn.expand-done + pre {
  margin-bottom: 1.8em;
}
.container .code-expand-btn:not(.expand-done) ~ table,
.container .code-expand-btn:not(.expand-done) ~ pre {
  overflow: hidden;
  height: 500px;
}
@-moz-keyframes code-expand-key {
  0% {
    opacity: 0.6;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
    filter: alpha(opacity=60);
  }
  50% {
    opacity: 0.1;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=10)";
    filter: alpha(opacity=10);
  }
  100% {
    opacity: 0.6;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
    filter: alpha(opacity=60);
  }
}
@-webkit-keyframes code-expand-key {
  0% {
    opacity: 0.6;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
    filter: alpha(opacity=60);
  }
  50% {
    opacity: 0.1;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=10)";
    filter: alpha(opacity=10);
  }
  100% {
    opacity: 0.6;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
    filter: alpha(opacity=60);
  }
}
@-o-keyframes code-expand-key {
  0% {
    opacity: 0.6;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
    filter: alpha(opacity=60);
  }
  50% {
    opacity: 0.1;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=10)";
    filter: alpha(opacity=10);
  }
  100% {
    opacity: 0.6;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
    filter: alpha(opacity=60);
  }
}
@keyframes code-expand-key {
  0% {
    opacity: 0.6;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
    filter: alpha(opacity=60);
  }
  50% {
    opacity: 0.1;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=10)";
    filter: alpha(opacity=10);
  }
  100% {
    opacity: 0.6;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
    filter: alpha(opacity=60);
  }
}
.container figure.highlight.code-fullpage {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 9999;
  margin: 0;
  border-radius: 0;
  -webkit-animation: code-fullpage 0.3s;
  -moz-animation: code-fullpage 0.3s;
  -o-animation: code-fullpage 0.3s;
  -ms-animation: code-fullpage 0.3s;
  animation: code-fullpage 0.3s;
}
.container figure.highlight.code-fullpage .code-expand-btn,
.container figure.highlight.code-fullpage .expand {
  display: none;
}
.container figure.highlight.code-fullpage .highlight-tools ~ pre,
.container figure.highlight.code-fullpage .highlight-tools ~ table {
  display: block;
  overflow: auto;
  height: calc(100vh - 2.15em);
  margin-bottom: 0;
}
@-moz-keyframes code-fullpage {
  0%, 100% {
    -webkit-transform: translateX(0);
    -moz-transform: translateX(0);
    -o-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
  }
  20%, 60% {
    -webkit-transform: translateX(-5px);
    -moz-transform: translateX(-5px);
    -o-transform: translateX(-5px);
    -ms-transform: translateX(-5px);
    transform: translateX(-5px);
  }
  40%, 80% {
    -webkit-transform: translateX(5px);
    -moz-transform: translateX(5px);
    -o-transform: translateX(5px);
    -ms-transform: translateX(5px);
    transform: translateX(5px);
  }
}
@-webkit-keyframes code-fullpage {
  0%, 100% {
    -webkit-transform: translateX(0);
    -moz-transform: translateX(0);
    -o-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
  }
  20%, 60% {
    -webkit-transform: translateX(-5px);
    -moz-transform: translateX(-5px);
    -o-transform: translateX(-5px);
    -ms-transform: translateX(-5px);
    transform: translateX(-5px);
  }
  40%, 80% {
    -webkit-transform: translateX(5px);
    -moz-transform: translateX(5px);
    -o-transform: translateX(5px);
    -ms-transform: translateX(5px);
    transform: translateX(5px);
  }
}
@-o-keyframes code-fullpage {
  0%, 100% {
    -webkit-transform: translateX(0);
    -moz-transform: translateX(0);
    -o-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
  }
  20%, 60% {
    -webkit-transform: translateX(-5px);
    -moz-transform: translateX(-5px);
    -o-transform: translateX(-5px);
    -ms-transform: translateX(-5px);
    transform: translateX(-5px);
  }
  40%, 80% {
    -webkit-transform: translateX(5px);
    -moz-transform: translateX(5px);
    -o-transform: translateX(5px);
    -ms-transform: translateX(5px);
    transform: translateX(5px);
  }
}
@keyframes code-fullpage {
  0%, 100% {
    -webkit-transform: translateX(0);
    -moz-transform: translateX(0);
    -o-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
  }
  20%, 60% {
    -webkit-transform: translateX(-5px);
    -moz-transform: translateX(-5px);
    -o-transform: translateX(-5px);
    -ms-transform: translateX(-5px);
    transform: translateX(-5px);
  }
  40%, 80% {
    -webkit-transform: translateX(5px);
    -moz-transform: translateX(5px);
    -o-transform: translateX(5px);
    -ms-transform: translateX(5px);
    transform: translateX(5px);
  }
}
.type-404 .error-content {
  overflow: hidden;
  margin: 0 20px;
  height: 360px;
}
@media screen and (max-width: 768px) {
  .type-404 .error-content {
    margin: 0;
    height: 500px;
  }
}
.type-404 .error-content .error-img {
  display: inline-block;
  overflow: hidden;
  width: 50%;
  height: 100%;
}
@media screen and (max-width: 768px) {
  .type-404 .error-content .error-img {
    width: 100%;
    height: 45%;
  }
}
.type-404 .error-content .error-img img {
  background-color: #49b1f5;
}
.type-404 .error-content .error-info {
  display: -webkit-inline-box;
  display: -moz-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-box;
  display: inline-flex;
  -webkit-box-orient: vertical;
  -moz-box-orient: vertical;
  -o-box-orient: vertical;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-pack: center;
  -moz-box-pack: center;
  -o-box-pack: center;
  -ms-flex-pack: center;
  -webkit-justify-content: center;
  justify-content: center;
  -ms-flex-line-pack: center;
  -webkit-align-content: center;
  align-content: center;
  width: 50%;
  height: 100%;
  vertical-align: top;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .type-404 .error-content .error-info {
    width: 100%;
    height: 55%;
  }
}
.type-404 .error-content .error-info .error_title {
  margin-top: -0.6em;
  font-size: 9em;
}
@media screen and (max-width: 768px) {
  .type-404 .error-content .error-info .error_title {
    font-size: 8em;
  }
}
.type-404 .error-content .error-info .error_subtitle {
  margin-top: -3em;
  word-break: break-word;
  font-size: 1.6em;
  -webkit-line-clamp: 2;
}
.type-404 .nc {
  margin-top: 5%;
  padding: 0 20px;
}
.type-404 #footer {
  display: none;
}
.type-404 + #rightside {
  display: none;
}
.article-sort {
  margin-left: 10px;
  padding-left: 20px;
  border-left: 2px solid #aadafa;
}
.article-sort-title {
  position: relative;
  margin-left: 10px;
  padding-bottom: 20px;
  padding-left: 20px;
  font-size: 1.72em;
}
.article-sort-title:hover:before {
  border-color: var(--pseudo-hover);
}
.article-sort-title:before {
  position: absolute;
  top: calc(((100% - 36px) / 2));
  left: -9px;
  z-index: 1;
  width: 10px;
  height: 10px;
  border: 5px solid #49b1f5;
  border-radius: 10px;
  background: var(--card-bg);
  content: '';
  line-height: 10px;
  -webkit-transition: all 0.2s ease-in-out;
  -moz-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  -ms-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
}
.article-sort-title:after {
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 0;
  width: 2px;
  height: 1.5em;
  background: #aadafa;
  content: '';
}
.article-sort-item {
  position: relative;
  display: -webkit-box;
  display: -moz-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: box;
  display: flex;
  -webkit-box-align: center;
  -moz-box-align: center;
  -o-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  align-items: center;
  margin: 0 0 20px 10px;
  -webkit-transition: all 0.2s ease-in-out;
  -moz-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  -ms-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
}
.article-sort-item:hover:before {
  border-color: var(--pseudo-hover);
}
.article-sort-item:before {
  position: absolute;
  left: calc(-20px - 17px);
  width: 6px;
  height: 6px;
  border: 3px solid #49b1f5;
  border-radius: 6px;
  background: var(--card-bg);
  content: '';
  -webkit-transition: all 0.2s ease-in-out;
  -moz-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  -ms-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
}
.article-sort-item.no-article-cover {
  height: 80px;
}
.article-sort-item.no-article-cover .article-sort-item-info {
  padding: 0;
}
.article-sort-item.year {
  font-size: 1.43em;
  margin-bottom: 10px;
}
.article-sort-item.year:hover:before {
  border-color: #49b1f5;
}
.article-sort-item.year:before {
  border-color: var(--pseudo-hover);
}
.article-sort-item-time {
  color: var(--card-meta);
  font-size: 0.85em;
}
.article-sort-item-time time {
  padding-left: 6px;
  cursor: default;
}
.article-sort-item-title {
  color: var(--font-color);
  font-size: 1.05em;
  -webkit-transition: all 0.3s;
  -moz-transition: all 0.3s;
  -o-transition: all 0.3s;
  -ms-transition: all 0.3s;
  transition: all 0.3s;
  -webkit-line-clamp: 2;
}
.article-sort-item-title:hover {
  color: #49b1f5;
  -webkit-transform: translateX(10px);
  -moz-transform: translateX(10px);
  -o-transform: translateX(10px);
  -ms-transform: translateX(10px);
  transform: translateX(10px);
}
.article-sort-item-img {
  overflow: hidden;
  width: 100px;
  height: 70px;
  border-radius: 6px;
}
@media screen and (max-width: 768px) {
  .article-sort-item-img {
    width: 70px;
    height: 70px;
  }
}
.article-sort-item-info {
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  -o-box-flex: 1;
  box-flex: 1;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  padding: 0 16px;
}
.category-lists .category-title {
  font-size: 2.57em;
}
@media screen and (max-width: 768px) {
  .category-lists .category-title {
    font-size: 2em;
  }
}
.category-lists .category-list {
  margin-bottom: 0;
}
.category-lists .category-list a {
  color: var(--font-color);
}
.category-lists .category-list a:hover {
  color: #49b1f5;
}
.category-lists .category-list .category-list-count {
  margin-left: 8px;
  color: var(--card-meta);
}
.category-lists .category-list .category-list-count:before {
  content: '(';
}
.category-lists .category-list .category-list-count:after {
  content: ')';
}
.category-lists ul {
  padding: 0 0 0 20px;
}
.category-lists ul ul {
  padding-left: 4px;
}
.category-lists ul li {
  position: relative;
  margin: 6px 0;
  padding: 0.12em 0.4em 0.12em 1.4em;
}
#body-wrap {
  display: -webkit-box;
  display: -moz-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: box;
  display: flex;
  -webkit-box-orient: vertical;
  -moz-box-orient: vertical;
  -o-box-orient: vertical;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  min-height: 100vh;
}
.layout {
  display: -webkit-box;
  display: -moz-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: box;
  display: flex;
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  -o-box-flex: 1;
  box-flex: 1;
  -webkit-flex: 1 auto;
  -ms-flex: 1 auto;
  flex: 1 auto;
  margin: 0 auto;
  padding: 40px 15px;
  max-width: 1200px;
  width: 100%;
}
@media screen and (max-width: 900px) {
  .layout {
    -webkit-box-orient: vertical;
    -moz-box-orient: vertical;
    -o-box-orient: vertical;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
  }
}
@media screen and (max-width: 768px) {
  .layout {
    padding: 20px 5px;
  }
}
@media screen and (min-width: 2000px) {
  .layout {
    max-width: 70%;
  }
}
.layout > div:first-child:not(.nc) {
  -webkit-align-self: flex-start;
  align-self: flex-start;
  -ms-flex-item-align: start;
  padding: 50px 40px;
}
@media screen and (max-width: 768px) {
  .layout > div:first-child:not(.nc) {
    padding: 36px 14px;
  }
}
.layout > div:first-child {
  width: 74%;
  -webkit-transition: all 0.3s;
  -moz-transition: all 0.3s;
  -o-transition: all 0.3s;
  -ms-transition: all 0.3s;
  transition: all 0.3s;
}
@media screen and (max-width: 900px) {
  .layout > div:first-child {
    width: 100% !important;
  }
}
.layout.hide-aside {
  max-width: 1000px;
}
@media screen and (min-width: 2000px) {
  .layout.hide-aside {
    max-width: 1300px;
  }
}
.layout.hide-aside > div {
  width: 100% !important;
}
.apple #page-header.full_page {
  background-attachment: scroll !important;
}
.apple .recent-post-item,
.apple .avatar-img,
.apple .flink-item-icon {
  -webkit-transform: translateZ(0);
  -moz-transform: translateZ(0);
  -o-transform: translateZ(0);
  -ms-transform: translateZ(0);
  transform: translateZ(0);
}
.container .flink {
  margin-bottom: 20px;
}
.container .flink .flink-list {
  overflow: auto;
  padding: 10px 10px 0;
  text-align: center;
}
.container .flink .flink-list > .flink-list-item {
  position: relative;
  float: left;
  overflow: hidden;
  margin: 15px 7px;
  width: calc(100% / 3 - 15px);
  height: 90px;
  line-height: 17px;
  -webkit-transform: translateZ(0);
  border-radius: 8px;
}
@media screen and (max-width: 1024px) {
  .container .flink .flink-list > .flink-list-item {
    width: calc(50% - 15px) !important;
  }
}
@media screen and (max-width: 600px) {
  .container .flink .flink-list > .flink-list-item {
    width: calc(100% - 15px) !important;
  }
}
.container .flink .flink-list > .flink-list-item:hover .flink-item-icon {
  margin-left: -10px;
  width: 0;
}
.container .flink .flink-list > .flink-list-item:before {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: -1;
  background: var(--text-bg-hover);
  content: '';
  -webkit-transition: -webkit-transform 0.3s ease-out;
  -moz-transition: -moz-transform 0.3s ease-out;
  -o-transition: -o-transform 0.3s ease-out;
  -ms-transition: -ms-transform 0.3s ease-out;
  transition: transform 0.3s ease-out;
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  -o-transform: scale(0);
  -ms-transform: scale(0);
  transform: scale(0);
}
.container .flink .flink-list > .flink-list-item:hover:before,
.container .flink .flink-list > .flink-list-item:focus:before,
.container .flink .flink-list > .flink-list-item:active:before {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  -o-transform: scale(1);
  -ms-transform: scale(1);
  transform: scale(1);
}
.container .flink .flink-list > .flink-list-item a {
  color: var(--font-color);
  text-decoration: none;
}
.container .flink .flink-list > .flink-list-item a .flink-item-icon {
  float: left;
  overflow: hidden;
  margin: 15px 10px;
  width: 60px;
  height: 60px;
  border-radius: 7px;
  -webkit-transition: width 0.3s ease-out;
  -moz-transition: width 0.3s ease-out;
  -o-transition: width 0.3s ease-out;
  -ms-transition: width 0.3s ease-out;
  transition: width 0.3s ease-out;
}
.container .flink .flink-list > .flink-list-item a .flink-item-icon img {
  width: 100%;
  height: 100%;
  -webkit-transition: filter 375ms ease-in 0.2s, -webkit-transform 0.3s;
  -moz-transition: filter 375ms ease-in 0.2s, -moz-transform 0.3s;
  -o-transition: filter 375ms ease-in 0.2s, -o-transform 0.3s;
  -ms-transition: filter 375ms ease-in 0.2s, -ms-transform 0.3s;
  transition: filter 375ms ease-in 0.2s, transform 0.3s;
  object-fit: cover;
}
.container .flink .flink-list > .flink-list-item a .img-alt {
  display: none;
}
.container .flink .flink-item-name {
  padding: 16px 10px 0 0;
  height: 40px;
  font-weight: bold;
  font-size: 1.43em;
}
.container .flink .flink-item-desc {
  padding: 16px 10px 16px 0;
  height: 50px;
  font-size: 0.93em;
}
.container .flink .flink-name {
  margin-bottom: 5px;
  font-weight: bold;
  font-size: 1.5em;
}
#recent-posts .recent-post-item {
  position: relative;
  overflow: hidden;
  margin-bottom: 20px;
  display: -webkit-box;
  display: -moz-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: box;
  display: flex;
  -webkit-box-orient: horizontal;
  -moz-box-orient: horizontal;
  -o-box-orient: horizontal;
  -webkit-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-box-align: center;
  -moz-box-align: center;
  -o-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  align-items: center;
  height: 16.8em;
}
@media screen and (max-width: 768px) {
  #recent-posts .recent-post-item {
    -webkit-box-orient: vertical;
    -moz-box-orient: vertical;
    -o-box-orient: vertical;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    height: auto;
  }
}
@media screen and (min-width: 2000px) {
  #recent-posts .recent-post-item {
    height: 18.8em;
  }
}
#recent-posts .recent-post-item:hover .post-bg {
  -webkit-transform: scale(1.1);
  -moz-transform: scale(1.1);
  -o-transform: scale(1.1);
  -ms-transform: scale(1.1);
  transform: scale(1.1);
}
#recent-posts .recent-post-item.ads-wrap {
  display: block !important;
  height: auto !important;
}
#recent-posts .recent-post-item .post_cover {
  overflow: hidden;
  width: 42%;
  height: 100%;
}
@media screen and (max-width: 768px) {
  #recent-posts .recent-post-item .post_cover {
    width: 100%;
    height: 230px;
  }
}
#recent-posts .recent-post-item .post_cover.right {
  -webkit-box-ordinal-group: 1;
  -moz-box-ordinal-group: 1;
  -o-box-ordinal-group: 1;
  -ms-flex-order: 1;
  -webkit-order: 1;
  order: 1;
}
@media screen and (max-width: 768px) {
  #recent-posts .recent-post-item .post_cover.right {
    -webkit-box-ordinal-group: 0;
    -moz-box-ordinal-group: 0;
    -o-box-ordinal-group: 0;
    -ms-flex-order: 0;
    -webkit-order: 0;
    order: 0;
  }
}
#recent-posts .recent-post-item .post_cover .post-bg {
  z-index: -4;
}
#recent-posts .recent-post-item >.recent-post-info {
  padding: 0 40px;
  width: 58%;
}
@media screen and (max-width: 768px) {
  #recent-posts .recent-post-item >.recent-post-info {
    padding: 20px 20px 30px;
    width: 100%;
  }
}
#recent-posts .recent-post-item >.recent-post-info.no-cover {
  width: 100%;
}
@media screen and (max-width: 768px) {
  #recent-posts .recent-post-item >.recent-post-info.no-cover {
    padding: 30px 20px;
  }
}
#recent-posts .recent-post-item >.recent-post-info > .article-title {
  color: var(--text-highlight-color);
  font-size: 1.55em;
  line-height: 1.4;
  -webkit-transition: all 0.2s ease-in-out;
  -moz-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  -ms-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  -webkit-line-clamp: 2;
}
#recent-posts .recent-post-item >.recent-post-info > .article-title .sticky {
  margin-right: 10px;
  color: #ff7242;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -o-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}
@media screen and (max-width: 768px) {
  #recent-posts .recent-post-item >.recent-post-info > .article-title {
    font-size: 1.43em;
  }
}
#recent-posts .recent-post-item >.recent-post-info > .article-title:hover {
  color: #49b1f5;
}
#recent-posts .recent-post-item >.recent-post-info > .article-meta-wrap {
  margin: 6px 0;
  color: var(--card-meta);
  font-size: 0.9em;
}
#recent-posts .recent-post-item >.recent-post-info > .article-meta-wrap > .post-meta-date {
  cursor: default;
}
#recent-posts .recent-post-item >.recent-post-info > .article-meta-wrap i {
  margin: 0 4px 0 0;
}
#recent-posts .recent-post-item >.recent-post-info > .article-meta-wrap .fa-spinner {
  margin: 0;
}
#recent-posts .recent-post-item >.recent-post-info > .article-meta-wrap .article-meta-label {
  padding-right: 4px;
}
#recent-posts .recent-post-item >.recent-post-info > .article-meta-wrap .article-meta-separator {
  margin: 0 6px;
}
#recent-posts .recent-post-item >.recent-post-info > .article-meta-wrap .article-meta-link {
  margin: 0 4px;
}
#recent-posts .recent-post-item >.recent-post-info > .article-meta-wrap time {
  display: none;
}
#recent-posts .recent-post-item >.recent-post-info > .article-meta-wrap a {
  color: var(--card-meta);
}
#recent-posts .recent-post-item >.recent-post-info > .article-meta-wrap a:hover {
  color: #49b1f5;
  text-decoration: underline;
}
#recent-posts .recent-post-item >.recent-post-info > .content {
  -webkit-line-clamp: 2;
  word-break: break-word;
}
#article-container .shuoshuo-item {
  margin-bottom: 20px;
  padding: 35px 30px 30px;
}
@media screen and (max-width: 768px) {
  #article-container .shuoshuo-item {
    padding: 25px 20px 20px;
  }
}
#article-container .shuoshuo-item-header {
  display: -webkit-box;
  display: -moz-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: box;
  display: flex;
  -webkit-box-align: center;
  -moz-box-align: center;
  -o-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  align-items: center;
  cursor: default;
}
#article-container .shuoshuo-avatar {
  overflow: hidden;
  width: 40px;
  height: 40px;
  border-radius: 40px;
}
#article-container .shuoshuo-avatar img {
  margin: 0;
  width: 100%;
  height: 100%;
}
#article-container .shuoshuo-info {
  margin-left: 10px;
  line-height: 1.5;
}
#article-container .shuoshuo-date {
  color: #858585;
  font-size: 0.8em;
}
#article-container .shuoshuo-content {
  padding: 15px 0 10px;
}
#article-container .shuoshuo-content > *:last-child {
  margin-bottom: 0;
}
#article-container .shuoshuo-footer {
  display: -webkit-box;
  display: -moz-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: box;
  display: flex;
  -webkit-box-align: center;
  -moz-box-align: center;
  -o-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  align-items: center;
}
#article-container .shuoshuo-footer.flex-between {
  -webkit-box-pack: justify;
  -moz-box-pack: justify;
  -o-box-pack: justify;
  -ms-flex-pack: justify;
  -webkit-justify-content: space-between;
  justify-content: space-between;
}
#article-container .shuoshuo-footer.flex-end {
  -webkit-box-pack: end;
  -moz-box-pack: end;
  -o-box-pack: end;
  -ms-flex-pack: end;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
}
#article-container .shuoshuo-footer .shuoshuo-tag {
  display: inline-block;
  margin-right: 8px;
  padding: 0 8px;
  width: fit-content;
  border: 1px solid #49b1f5;
  border-radius: 12px;
  color: #49b1f5;
  font-size: 0.85em;
  cursor: default;
  -webkit-transition: all 0.2s ease-in-out;
  -moz-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  -ms-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
}
#article-container .shuoshuo-footer .shuoshuo-tag:hover {
  background: #49b1f5;
  color: var(--white);
}
#article-container .shuoshuo-footer .shuoshuo-comment-btn {
  padding: 2px;
  color: #90a4ae;
  cursor: pointer;
}
#article-container .shuoshuo-footer .shuoshuo-comment-btn:hover {
  color: #49b1f5;
}
#article-container .shuoshuo-comment {
  padding-top: 10px;
}
#article-container .shuoshuo-comment.no-comment {
  display: none;
}
.tag-cloud-list a {
  display: inline-block;
  margin: 2px;
  padding: 2px 7px;
  line-height: 1.7;
  -webkit-transition: all 0.3s;
  -moz-transition: all 0.3s;
  -o-transition: all 0.3s;
  -ms-transition: all 0.3s;
  transition: all 0.3s;
  border-radius: 5px;
}
.tag-cloud-list a:hover {
  background: var(--btn-bg) !important;
  -webkit-box-shadow: 2px 2px 6px rgba(0,0,0,0.2);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.2);
  color: var(--btn-color) !important;
}
@media screen and (max-width: 768px) {
  .tag-cloud-list a {
    zoom: 0.85;
  }
}
.tag-cloud-title {
  font-size: 2.57em;
}
@media screen and (max-width: 768px) {
  .tag-cloud-title {
    font-size: 2em;
  }
}
.page-title + .tag-cloud-list {
  text-align: left;
}
#aside-content {
  width: 26%;
}
@media screen and (min-width: 900px) {
  #aside-content {
    padding-left: 15px;
  }
}
@media screen and (max-width: 900px) {
  #aside-content {
    margin-top: 20px;
    width: 100%;
  }
}
#aside-content .card-widget {
  position: relative;
  overflow: hidden;
  margin-bottom: 20px;
  padding: 20px 24px;
}
#aside-content .card-info .author-info-name {
  font-weight: 500;
  font-size: 1.57em;
}
#aside-content .card-info .author-info-description {
  margin-top: -0.42em;
}
#aside-content .card-info .site-data {
  margin: 14px 0 4px;
}
#aside-content .card-info .card-info-social-icons {
  margin: 6px 0 -6px;
}
#aside-content .card-info .card-info-social-icons .social-icon {
  margin: 0 10px;
  color: var(--font-color);
  font-size: 1.4em;
}
#aside-content .card-info .card-info-social-icons i {
  -webkit-transition: all 0.3s;
  -moz-transition: all 0.3s;
  -o-transition: all 0.3s;
  -ms-transition: all 0.3s;
  transition: all 0.3s;
}
#aside-content .card-info .card-info-social-icons i:hover {
  -webkit-transform: rotate(360deg);
  -moz-transform: rotate(360deg);
  -o-transform: rotate(360deg);
  -ms-transform: rotate(360deg);
  transform: rotate(360deg);
}
#aside-content .card-info #card-info-btn {
  display: block;
  margin-top: 14px;
  background-color: var(--btn-bg);
  color: var(--btn-color);
  text-align: center;
  line-height: 2.4;
  border-radius: 7px;
}
#aside-content .card-info #card-info-btn:hover {
  background-color: var(--btn-hover-color);
}
#aside-content .card-info #card-info-btn span {
  padding-left: 10px;
}
#aside-content .item-headline {
  padding-bottom: 6px;
  font-size: 1.2em;
}
#aside-content .item-headline span {
  margin-left: 6px;
}
@media screen and (min-width: 900px) {
  #aside-content .sticky_layout {
    position: sticky;
    position: -webkit-sticky;
    top: 20px;
    -webkit-transition: top 0.3s;
    -moz-transition: top 0.3s;
    -o-transition: top 0.3s;
    -ms-transition: top 0.3s;
    transition: top 0.3s;
  }
}
#aside-content .card-tag-cloud a {
  display: inline-block;
  padding: 0 4px;
  line-height: 1.8;
}
#aside-content .card-tag-cloud a:hover {
  color: #49b1f5 !important;
}
#aside-content .aside-list > span {
  display: block;
  margin-bottom: 10px;
  text-align: center;
}
#aside-content .aside-list > .aside-list-item {
  display: -webkit-box;
  display: -moz-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: box;
  display: flex;
  -webkit-box-align: center;
  -moz-box-align: center;
  -o-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  align-items: center;
  padding: 6px 0;
}
#aside-content .aside-list > .aside-list-item:first-child {
  padding-top: 0;
}
#aside-content .aside-list > .aside-list-item:not(:last-child) {
  border-bottom: 1px dashed #f5f5f5;
}
#aside-content .aside-list > .aside-list-item:last-child {
  padding-bottom: 0;
}
#aside-content .aside-list > .aside-list-item .thumbnail {
  overflow: hidden;
  width: 4em;
  height: 4em;
  border-radius: 6px;
}
#aside-content .aside-list > .aside-list-item .content {
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  -o-box-flex: 1;
  box-flex: 1;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  padding-left: 10px;
  word-break: break-all;
}
#aside-content .aside-list > .aside-list-item .content > .name {
  -webkit-line-clamp: 1;
}
#aside-content .aside-list > .aside-list-item .content > time,
#aside-content .aside-list > .aside-list-item .content > .name {
  display: block;
  color: var(--card-meta);
  font-size: 0.85em;
}
#aside-content .aside-list > .aside-list-item .content > .title,
#aside-content .aside-list > .aside-list-item .content > .comment {
  color: var(--font-color);
  line-height: 1.5;
  -webkit-line-clamp: 2;
}
#aside-content .aside-list > .aside-list-item .content > .title:hover,
#aside-content .aside-list > .aside-list-item .content > .comment:hover {
  color: #49b1f5;
}
#aside-content .aside-list > .aside-list-item.no-cover {
  min-height: 4.4em;
}
#aside-content .card-archives ul.card-archive-list,
#aside-content .card-categories ul.card-category-list {
  margin: 0;
  padding: 0;
  list-style: none;
}
#aside-content .card-archives ul.card-archive-list > .card-archive-list-item a,
#aside-content .card-categories ul.card-category-list > .card-category-list-item a {
  display: -webkit-box;
  display: -moz-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: box;
  display: flex;
  -webkit-box-orient: horizontal;
  -moz-box-orient: horizontal;
  -o-box-orient: horizontal;
  -webkit-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row;
  margin: 2px 0;
  padding: 2px 8px;
  color: var(--font-color);
  -webkit-transition: all 0.3s;
  -moz-transition: all 0.3s;
  -o-transition: all 0.3s;
  -ms-transition: all 0.3s;
  transition: all 0.3s;
  border-radius: 6px;
}
#aside-content .card-archives ul.card-archive-list > .card-archive-list-item a:hover,
#aside-content .card-categories ul.card-category-list > .card-category-list-item a:hover {
  padding: 2px 12px;
  background-color: var(--text-bg-hover);
  color: var(--white);
}
#aside-content .card-archives ul.card-archive-list > .card-archive-list-item a span:first-child,
#aside-content .card-categories ul.card-category-list > .card-category-list-item a span:first-child {
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  -o-box-flex: 1;
  box-flex: 1;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}
#aside-content .card-categories .card-category-list.child {
  padding: 0 0 0 16px;
}
#aside-content .card-categories .card-category-list > .parent > a.expand i {
  -webkit-transform: rotate(-90deg);
  -moz-transform: rotate(-90deg);
  -o-transform: rotate(-90deg);
  -ms-transform: rotate(-90deg);
  transform: rotate(-90deg);
}
#aside-content .card-categories .card-category-list > .parent > a.expand + .child {
  display: block;
}
#aside-content .card-categories .card-category-list > .parent > a .card-category-list-name {
  width: 70% !important;
}
#aside-content .card-categories .card-category-list > .parent > a .card-category-list-count {
  width: calc(100% - 70% - 20px);
  text-align: right;
}
#aside-content .card-categories .card-category-list > .parent > a i {
  float: right;
  margin-right: -0.5em;
  padding: 0.5em;
  -webkit-transition: -webkit-transform 0.3s;
  -moz-transition: -moz-transform 0.3s;
  -o-transition: -o-transform 0.3s;
  -ms-transition: -ms-transform 0.3s;
  transition: transform 0.3s;
  -webkit-transform: rotate(0);
  -moz-transform: rotate(0);
  -o-transform: rotate(0);
  -ms-transform: rotate(0);
  transform: rotate(0);
}
#aside-content .card-webinfo .webinfo .webinfo-item {
  display: -webkit-box;
  display: -moz-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: box;
  display: flex;
  -webkit-box-align: center;
  -moz-box-align: center;
  -o-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  align-items: center;
  padding: 2px 10px 0;
}
#aside-content .card-webinfo .webinfo .webinfo-item div:first-child {
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  -o-box-flex: 1;
  box-flex: 1;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  padding-right: 20px;
}
@media screen and (min-width: 901px) {
  #aside-content #card-toc {
    right: 0 !important;
  }
}
@media screen and (max-width: 900px) {
  #aside-content #card-toc {
    position: fixed;
    right: 55px;
    bottom: 30px;
    z-index: 100;
    max-width: 380px;
    max-height: calc(100% - 60px);
    width: calc(100% - 80px);
    -webkit-transition: none;
    -moz-transition: none;
    -o-transition: none;
    -ms-transition: none;
    transition: none;
    -webkit-transform: scale(0);
    -moz-transform: scale(0);
    -o-transform: scale(0);
    -ms-transform: scale(0);
    transform: scale(0);
    -webkit-transform-origin: right bottom;
    -moz-transform-origin: right bottom;
    -o-transform-origin: right bottom;
    -ms-transform-origin: right bottom;
    transform-origin: right bottom;
  }
  #aside-content #card-toc.open {
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -o-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
  }
}
#aside-content #card-toc .toc-percentage {
  float: right;
  margin-top: -9px;
  color: #a9a9a9;
  font-style: italic;
  font-size: 140%;
}
#aside-content #card-toc .toc-content {
  overflow-y: scroll;
  overflow-y: overlay;
  margin: 0 -24px;
  max-height: calc(100vh - 120px);
  width: calc(100% + 48px);
}
@media screen and (max-width: 900px) {
  #aside-content #card-toc .toc-content {
    max-height: calc(100vh - 140px);
  }
}
#aside-content #card-toc .toc-content > * {
  margin: 0 20px !important;
}
#aside-content #card-toc .toc-content > * > .toc-item > .toc-child {
  margin-left: 10px;
  padding-left: 10px;
  border-left: 1px solid var(--dark-grey);
}
#aside-content #card-toc .toc-content:not(.is-expand) .toc-child {
  display: none;
}
@media screen and (max-width: 900px) {
  #aside-content #card-toc .toc-content:not(.is-expand) .toc-child {
    display: block !important;
  }
}
#aside-content #card-toc .toc-content:not(.is-expand) .toc-item.active .toc-child {
  display: block;
}
#aside-content #card-toc .toc-content ol,
#aside-content #card-toc .toc-content li {
  list-style: none;
}
#aside-content #card-toc .toc-content > ol {
  padding: 0 !important;
}
#aside-content #card-toc .toc-content ol {
  margin: 0;
  padding-left: 18px;
}
#aside-content #card-toc .toc-content .toc-link {
  display: block;
  margin: 4px 0;
  padding: 1px 8px;
  color: var(--toc-link-color);
  -webkit-transition: all 0.2s ease-in-out;
  -moz-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  -ms-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  border-radius: 6px;
}
#aside-content #card-toc .toc-content .toc-link:hover {
  color: #49b1f5;
}
#aside-content #card-toc .toc-content .toc-link.active {
  background: #00c4b6;
  color: #fff;
}
#aside-content .sticky_layout:only-child > :first-child {
  margin-top: 0;
}
#aside-content .card-more-btn {
  float: right;
  color: inherit;
}
#aside-content .card-more-btn:hover {
  -webkit-animation: more-btn-move 1s infinite;
  -moz-animation: more-btn-move 1s infinite;
  -o-animation: more-btn-move 1s infinite;
  -ms-animation: more-btn-move 1s infinite;
  animation: more-btn-move 1s infinite;
}
#aside-content .card-announcement .item-headline i {
  color: #f00;
}
.avatar-img {
  overflow: hidden;
  margin: 0 auto;
  width: 110px;
  height: 110px;
  border-radius: 70px;
}
.avatar-img img {
  width: 100%;
  height: 100%;
  -webkit-transition: filter 375ms ease-in 0.2s, -webkit-transform 0.3s;
  -moz-transition: filter 375ms ease-in 0.2s, -moz-transform 0.3s;
  -o-transition: filter 375ms ease-in 0.2s, -o-transform 0.3s;
  -ms-transition: filter 375ms ease-in 0.2s, -ms-transform 0.3s;
  transition: filter 375ms ease-in 0.2s, transform 0.3s;
  object-fit: cover;
}
.avatar-img img:hover {
  -webkit-transform: rotate(360deg);
  -moz-transform: rotate(360deg);
  -o-transform: rotate(360deg);
  -ms-transform: rotate(360deg);
  transform: rotate(360deg);
}
.site-data {
  display: table;
  width: 100%;
  table-layout: fixed;
}
.site-data > a {
  display: table-cell;
}
.site-data > a div {
  -webkit-transition: all 0.3s;
  -moz-transition: all 0.3s;
  -o-transition: all 0.3s;
  -ms-transition: all 0.3s;
  transition: all 0.3s;
}
.site-data > a:hover div {
  color: #49b1f5 !important;
}
.site-data > a .headline {
  color: var(--font-color);
  font-size: 0.95em;
}
.site-data > a .length-num {
  margin-top: -0.45em;
  color: var(--text-highlight-color);
  font-size: 1.2em;
}
@media screen and (min-width: 900px) {
  html.hide-aside .layout {
    -webkit-box-pack: center;
    -moz-box-pack: center;
    -o-box-pack: center;
    -ms-flex-pack: center;
    -webkit-justify-content: center;
    justify-content: center;
  }
  html.hide-aside .layout > .aside-content {
    display: none;
  }
  html.hide-aside .layout > div:first-child {
    width: 80%;
  }
}
.page .sticky_layout {
  display: -webkit-box;
  display: -moz-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: box;
  display: flex;
  -webkit-box-orient: vertical;
  -moz-box-orient: vertical;
  -o-box-orient: vertical;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
}
@-moz-keyframes more-btn-move {
  0%, 100% {
    -webkit-transform: translateX(0);
    -moz-transform: translateX(0);
    -o-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
  }
  50% {
    -webkit-transform: translateX(3px);
    -moz-transform: translateX(3px);
    -o-transform: translateX(3px);
    -ms-transform: translateX(3px);
    transform: translateX(3px);
  }
}
@-webkit-keyframes more-btn-move {
  0%, 100% {
    -webkit-transform: translateX(0);
    -moz-transform: translateX(0);
    -o-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
  }
  50% {
    -webkit-transform: translateX(3px);
    -moz-transform: translateX(3px);
    -o-transform: translateX(3px);
    -ms-transform: translateX(3px);
    transform: translateX(3px);
  }
}
@-o-keyframes more-btn-move {
  0%, 100% {
    -webkit-transform: translateX(0);
    -moz-transform: translateX(0);
    -o-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
  }
  50% {
    -webkit-transform: translateX(3px);
    -moz-transform: translateX(3px);
    -o-transform: translateX(3px);
    -ms-transform: translateX(3px);
    transform: translateX(3px);
  }
}
@keyframes more-btn-move {
  0%, 100% {
    -webkit-transform: translateX(0);
    -moz-transform: translateX(0);
    -o-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
  }
  50% {
    -webkit-transform: translateX(3px);
    -moz-transform: translateX(3px);
    -o-transform: translateX(3px);
    -ms-transform: translateX(3px);
    transform: translateX(3px);
  }
}
@-moz-keyframes toc-open {
  0% {
    -webkit-transform: scale(0.7);
    -moz-transform: scale(0.7);
    -o-transform: scale(0.7);
    -ms-transform: scale(0.7);
    transform: scale(0.7);
  }
  100% {
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -o-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
  }
}
@-webkit-keyframes toc-open {
  0% {
    -webkit-transform: scale(0.7);
    -moz-transform: scale(0.7);
    -o-transform: scale(0.7);
    -ms-transform: scale(0.7);
    transform: scale(0.7);
  }
  100% {
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -o-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
  }
}
@-o-keyframes toc-open {
  0% {
    -webkit-transform: scale(0.7);
    -moz-transform: scale(0.7);
    -o-transform: scale(0.7);
    -ms-transform: scale(0.7);
    transform: scale(0.7);
  }
  100% {
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -o-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
  }
}
@keyframes toc-open {
  0% {
    -webkit-transform: scale(0.7);
    -moz-transform: scale(0.7);
    -o-transform: scale(0.7);
    -ms-transform: scale(0.7);
    transform: scale(0.7);
  }
  100% {
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -o-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
  }
}
@-moz-keyframes toc-close {
  0% {
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -o-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
  }
  100% {
    -webkit-transform: scale(0.7);
    -moz-transform: scale(0.7);
    -o-transform: scale(0.7);
    -ms-transform: scale(0.7);
    transform: scale(0.7);
  }
}
@-webkit-keyframes toc-close {
  0% {
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -o-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
  }
  100% {
    -webkit-transform: scale(0.7);
    -moz-transform: scale(0.7);
    -o-transform: scale(0.7);
    -ms-transform: scale(0.7);
    transform: scale(0.7);
  }
}
@-o-keyframes toc-close {
  0% {
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -o-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
  }
  100% {
    -webkit-transform: scale(0.7);
    -moz-transform: scale(0.7);
    -o-transform: scale(0.7);
    -ms-transform: scale(0.7);
    transform: scale(0.7);
  }
}
@keyframes toc-close {
  0% {
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -o-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
  }
  100% {
    -webkit-transform: scale(0.7);
    -moz-transform: scale(0.7);
    -o-transform: scale(0.7);
    -ms-transform: scale(0.7);
    transform: scale(0.7);
  }
}
#post-comment .comment-head {
  margin-bottom: 20px;
}
#post-comment .comment-head:after {
  display: block;
  clear: both;
  content: '';
}
#post-comment .comment-head .comment-headline {
  display: inline-block;
  vertical-align: middle;
  font-weight: 700;
  font-size: 1.43em;
}
#post-comment .comment-head .comment-switch {
  display: inline-block;
  float: right;
  margin: 2px auto 0;
  padding: 4px 16px;
  width: max-content;
  border-radius: 8px;
  background: #f6f8fa;
}
#post-comment .comment-head .comment-switch .first-comment {
  color: #49b1f5;
}
#post-comment .comment-head .comment-switch .second-comment {
  color: #ff7242;
}
#post-comment .comment-head .comment-switch #switch-btn {
  position: relative;
  display: inline-block;
  margin: -4px 8px 0;
  width: 42px;
  height: 22px;
  border-radius: 34px;
  background-color: #49b1f5;
  vertical-align: middle;
  cursor: pointer;
  -webkit-transition: 0.4s;
  -moz-transition: 0.4s;
  -o-transition: 0.4s;
  -ms-transition: 0.4s;
  transition: 0.4s;
}
#post-comment .comment-head .comment-switch #switch-btn:before {
  position: absolute;
  bottom: 4px;
  left: 4px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background-color: #fff;
  content: '';
  -webkit-transition: 0.4s;
  -moz-transition: 0.4s;
  -o-transition: 0.4s;
  -ms-transition: 0.4s;
  transition: 0.4s;
}
#post-comment .comment-wrap > div {
  -webkit-animation: tabshow 0.5s;
  -moz-animation: tabshow 0.5s;
  -o-animation: tabshow 0.5s;
  -ms-animation: tabshow 0.5s;
  animation: tabshow 0.5s;
}
#post-comment .comment-wrap > div:nth-child(2) {
  display: none;
}
#post-comment.move #switch-btn {
  background-color: #ff7242;
}
#post-comment.move #switch-btn:before {
  -webkit-transform: translateX(20px);
  -moz-transform: translateX(20px);
  -o-transform: translateX(20px);
  -ms-transform: translateX(20px);
  transform: translateX(20px);
}
#post-comment.move .comment-wrap > div:first-child {
  display: none;
}
#post-comment.move .comment-wrap > div:last-child {
  display: block;
}
#footer {
  position: relative;
  background-color: #49b1f5;
  background-attachment: scroll;
  background-position: bottom;
  background-size: cover;
}
#footer > * {
  position: relative;
  color: var(--light-grey);
}
#footer a {
  color: var(--light-grey);
  -webkit-transition: all 0.3s ease-in-out;
  -moz-transition: all 0.3s ease-in-out;
  -o-transition: all 0.3s ease-in-out;
  -ms-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}
#footer a:hover {
  color: #49b1f5;
}
#footer .footer-separator {
  margin: 0 4px;
}
#footer .icp-icon {
  padding: 0 4px;
  max-height: 1.4em;
  width: auto;
  vertical-align: text-bottom;
}
#footer .footer-flex {
  display: -webkit-box;
  display: -moz-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: box;
  display: flex;
  -webkit-box-orient: horizontal;
  -moz-box-orient: horizontal;
  -o-box-orient: horizontal;
  -webkit-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-box-lines: multiple;
  -moz-box-lines: multiple;
  -o-box-lines: multiple;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: justify;
  -moz-box-pack: justify;
  -o-box-pack: justify;
  -ms-flex-pack: justify;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  margin: 0 auto;
  padding: 40px 60px;
  max-width: 1200px;
  width: 100%;
  text-align: left;
  gap: 13px;
}
@media screen and (max-width: 768px) {
  #footer .footer-flex {
    padding: 30px;
    gap: 10px;
  }
}
#footer .footer-flex .footer-flex-items {
  -webkit-flex-shrink: 0;
  flex-shrink: 0;
  min-width: 100px;
  text-align: left;
  white-space: nowrap;
}
#footer .footer-flex .footer-flex-title {
  margin-bottom: 5px;
  white-space: nowrap;
  font-weight: 600;
  font-size: 1.4em;
}
#footer .footer-flex .footer-flex-item {
  margin: 10px 0;
  white-space: nowrap;
}
#footer .footer-flex a {
  display: block;
  white-space: nowrap;
}
#footer .footer-other {
  padding: 40px 20px;
  width: 100%;
  text-align: center;
}
#footer .footer-other .framework-info {
  display: block;
}
#page-header {
  position: relative;
  width: 100%;
  background-color: #49b1f5;
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  -webkit-transition: all 0.5s;
  -moz-transition: all 0.5s;
  -o-transition: all 0.5s;
  -ms-transition: all 0.5s;
  transition: all 0.5s;
}
#page-header:not(.not-top-img):before {
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: var(--mark-bg);
  content: '';
}
#page-header.full_page {
  height: 100vh;
  background-attachment: fixed;
}
#page-header.full_page #site-info {
  position: absolute;
  top: 43%;
  padding: 0 10px;
  width: 100%;
}
#page-header #site-title,
#page-header #site-subtitle,
#page-header #scroll-down .scroll-down-effects {
  text-align: center;
  text-shadow: 2px 2px 4px rgba(0,0,0,0.15);
  line-height: 1.5;
}
#page-header #site-title {
  margin: 0;
  color: var(--white);
  font-size: 1.85em;
}
@media screen and (min-width: 768px) {
  #page-header #site-title {
    font-size: 2.85em;
  }
}
#page-header #site-subtitle {
  color: var(--light-grey);
  font-size: 1.15em;
}
@media screen and (min-width: 768px) {
  #page-header #site-subtitle {
    font-size: 1.72em;
  }
}
#page-header #site_social_icons {
  display: none;
  margin: 0 auto;
  text-align: center;
}
@media screen and (max-width: 768px) {
  #page-header #site_social_icons {
    display: block;
  }
}
#page-header #site_social_icons .social-icon {
  margin: 0 10px;
  color: var(--light-grey);
  text-shadow: 2px 2px 4px rgba(0,0,0,0.15);
  font-size: 1.43em;
}
#page-header #scroll-down {
  position: absolute;
  bottom: 10px;
  width: 100%;
  cursor: pointer;
}
#page-header #scroll-down .scroll-down-effects {
  position: relative;
  width: 100%;
  color: var(--light-grey);
  font-size: 20px;
}
#page-header.not-home-page {
  height: 400px;
}
@media screen and (max-width: 768px) {
  #page-header.not-home-page {
    height: 280px;
  }
}
#page-header #page-site-info {
  position: absolute;
  top: 200px;
  padding: 0 10px;
  width: 100%;
}
@media screen and (max-width: 768px) {
  #page-header #page-site-info {
    top: 140px;
  }
}
#page-header.post-bg {
  height: 400px;
}
@media screen and (max-width: 768px) {
  #page-header.post-bg {
    height: 360px;
  }
}
#page-header #post-info {
  position: absolute;
  width: 100%;
  bottom: 30px;
}
#page-header #post-info > * {
  margin: 0 auto;
  padding: 0 15px;
  max-width: 1200px;
}
@media screen and (min-width: 768px) and (max-width: 1300px) {
  #page-header #post-info > * {
    padding: 0 30px;
  }
}
@media screen and (min-width: 2000px) {
  #page-header #post-info > * {
    max-width: 70%;
  }
}
#page-header.not-top-img {
  margin-bottom: 10px;
  height: 60px;
  background: 0;
}
#page-header.not-top-img .title-seo {
  display: none;
}
#page-header.not-top-img #nav {
  background: rgba(255,255,255,0.8);
  -webkit-box-shadow: 0 5px 6px -5px rgba(133,133,133,0.6);
  box-shadow: 0 5px 6px -5px rgba(133,133,133,0.6);
}
#page-header.not-top-img #nav a,
#page-header.not-top-img #nav span.site-page,
#page-header.not-top-img #nav .site-name {
  color: var(--font-color);
  text-shadow: none;
}
#page-header.nav-fixed #nav {
  position: fixed;
  top: -60px;
  z-index: 91;
  background: rgba(255,255,255,0.7);
  -webkit-box-shadow: 0 5px 6px -5px rgba(133,133,133,0.6);
  box-shadow: 0 5px 6px -5px rgba(133,133,133,0.6);
  -webkit-transition: -webkit-transform 0.2s ease-in-out, opacity 0.2s ease-in-out;
  -moz-transition: -moz-transform 0.2s ease-in-out, opacity 0.2s ease-in-out;
  -o-transition: -o-transform 0.2s ease-in-out, opacity 0.2s ease-in-out;
  -ms-transition: -ms-transform 0.2s ease-in-out, opacity 0.2s ease-in-out;
  transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;
  will-change: transform;
  backdrop-filter: blur(7px);
}
#page-header.nav-fixed #nav #blog-info {
  color: var(--font-color);
}
#page-header.nav-fixed #nav #blog-info:hover {
  color: #49b1f5;
}
#page-header.nav-fixed #nav #blog-info .site-name {
  text-shadow: none;
}
#page-header.nav-fixed #nav #blog-info > a:first-child {
  display: none;
}
#page-header.nav-fixed #nav #blog-info > a:last-child {
  display: inline;
}
#page-header.nav-fixed #nav a,
#page-header.nav-fixed #nav span.site-page,
#page-header.nav-fixed #nav #toggle-menu {
  color: var(--font-color);
  text-shadow: none;
}
#page-header.nav-fixed #nav a:hover,
#page-header.nav-fixed #nav span.site-page:hover,
#page-header.nav-fixed #nav #toggle-menu:hover {
  color: #49b1f5;
}
#page-header.nav-fixed.fixed #nav {
  top: 0;
  -webkit-transition: all 0.5s;
  -moz-transition: all 0.5s;
  -o-transition: all 0.5s;
  -ms-transition: all 0.5s;
  transition: all 0.5s;
}
#page-header.nav-visible:not(.fixed) #nav {
  -webkit-transition: all 0.5s;
  -moz-transition: all 0.5s;
  -o-transition: all 0.5s;
  -ms-transition: all 0.5s;
  transition: all 0.5s;
  -webkit-transform: translate3d(0, 100%, 0);
  -moz-transform: translate3d(0, 100%, 0);
  -o-transform: translate3d(0, 100%, 0);
  -ms-transform: translate3d(0, 100%, 0);
  transform: translate3d(0, 100%, 0);
}
#page-header.nav-visible:not(.fixed) + .layout > .aside-content > .sticky_layout {
  top: 70px;
  -webkit-transition: top 0.5s;
  -moz-transition: top 0.5s;
  -o-transition: top 0.5s;
  -ms-transition: top 0.5s;
  transition: top 0.5s;
}
#page-header.fixed #nav {
  position: fixed;
}
#page-header.fixed + .layout > .aside-content > .sticky_layout {
  top: 70px;
  -webkit-transition: top 0.5s;
  -moz-transition: top 0.5s;
  -o-transition: top 0.5s;
  -ms-transition: top 0.5s;
  transition: top 0.5s;
}
#page-header.fixed + .layout #card-toc .toc-content {
  max-height: calc(100vh - 170px);
}
#page .page-title {
  margin: 0 0 10px;
  font-weight: bold;
  font-size: 2em;
}
#post > #post-info {
  margin-bottom: 30px;
}
#post > #post-info .post-title {
  padding-bottom: 4px;
  border-bottom: 1px solid var(--light-grey);
  color: var(--text-highlight-color);
}
#post > #post-info .post-title .post-edit-link {
  float: right;
}
#post > #post-info #post-meta,
#post > #post-info #post-meta a {
  color: #78818a;
}
#post-info .post-title {
  margin-bottom: 8px;
  color: var(--white);
  font-weight: normal;
  font-size: 2.5em;
  line-height: 1.5;
  -webkit-line-clamp: 3;
}
@media screen and (max-width: 768px) {
  #post-info .post-title {
    font-size: 2.1em;
  }
}
#post-info .post-title .post-edit-link {
  padding-left: 10px;
}
#post-info #post-meta {
  color: var(--light-grey);
  font-size: 95%;
}
@media screen and (min-width: 768px) {
  #post-info #post-meta > .meta-secondline > span:first-child {
    display: none;
  }
}
@media screen and (max-width: 768px) {
  #post-info #post-meta {
    font-size: 90%;
  }
  #post-info #post-meta > .meta-firstline,
  #post-info #post-meta > .meta-secondline {
    display: inline;
  }
}
#post-info #post-meta .post-meta-separator {
  margin: 0 5px;
}
#post-info #post-meta .post-meta-icon {
  margin-right: 4px;
}
#post-info #post-meta .post-meta-label {
  margin-right: 4px;
}
#post-info #post-meta a {
  color: var(--light-grey);
  -webkit-transition: all 0.3s ease-out;
  -moz-transition: all 0.3s ease-out;
  -o-transition: all 0.3s ease-out;
  -ms-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
}
#post-info #post-meta a:hover {
  color: #49b1f5;
  text-decoration: underline;
}
#post-info #post-meta time {
  display: none;
}
#nav {
  position: absolute;
  top: 0;
  z-index: 90;
  display: -webkit-box;
  display: -moz-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: box;
  display: flex;
  -webkit-box-align: center;
  -moz-box-align: center;
  -o-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  align-items: center;
  padding: 0 36px;
  width: 100%;
  height: 60px;
  font-size: 1.3em;
  opacity: 0;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  filter: alpha(opacity=0);
  -webkit-transition: all 0.5s;
  -moz-transition: all 0.5s;
  -o-transition: all 0.5s;
  -ms-transition: all 0.5s;
  transition: all 0.5s;
}
@media screen and (max-width: 768px) {
  #nav {
    padding: 0 16px;
  }
}
#nav.show {
  opacity: 1;
  -ms-filter: none;
  filter: none;
}
#nav #blog-info {
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  -o-box-flex: 1;
  box-flex: 1;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  color: var(--light-grey);
}
#nav #blog-info .site-icon {
  margin-right: 6px;
  height: 36px;
  vertical-align: middle;
}
#nav #blog-info .nav-page-title {
  display: none;
}
#nav #toggle-menu {
  display: none;
  padding: 2px 0 0 6px;
  vertical-align: top;
}
#nav #toggle-menu:hover {
  color: var(--white);
}
#nav a,
#nav span.site-page {
  color: var(--light-grey);
}
#nav a:hover,
#nav span.site-page:hover {
  color: var(--white);
}
#nav .site-name {
  text-shadow: 2px 2px 4px rgba(0,0,0,0.15);
  font-weight: bold;
}
#nav .menus_items {
  display: inline;
}
#nav .menus_items .menus_item {
  position: relative;
  display: inline-block;
  padding: 0 0 0 14px;
}
#nav .menus_items .menus_item:hover .menus_item_child {
  display: block;
}
#nav .menus_items .menus_item:hover > span > i:last-child {
  -webkit-transform: rotate(180deg);
  -moz-transform: rotate(180deg);
  -o-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  transform: rotate(180deg);
}
#nav .menus_items .menus_item > span > i:last-child {
  padding: 4px;
  -webkit-transition: -webkit-transform 0.3s;
  -moz-transition: -moz-transform 0.3s;
  -o-transition: -o-transform 0.3s;
  -ms-transition: -ms-transform 0.3s;
  transition: transform 0.3s;
}
#nav .menus_items .menus_item .menus_item_child {
  position: absolute;
  right: 0;
  display: none;
  margin-top: 8px;
  padding: 0;
  width: max-content;
  background-color: var(--sidebar-bg);
  -webkit-box-shadow: 0 5px 20px -4px rgba(0,0,0,0.5);
  box-shadow: 0 5px 20px -4px rgba(0,0,0,0.5);
  -webkit-animation: sub_menus 0.3s 0.1s ease both;
  -moz-animation: sub_menus 0.3s 0.1s ease both;
  -o-animation: sub_menus 0.3s 0.1s ease both;
  -ms-animation: sub_menus 0.3s 0.1s ease both;
  animation: sub_menus 0.3s 0.1s ease both;
  border-radius: 5px;
}
#nav .menus_items .menus_item .menus_item_child:before {
  position: absolute;
  top: -8px;
  left: 0;
  width: 100%;
  height: 20px;
  content: '';
}
#nav .menus_items .menus_item .menus_item_child li {
  list-style: none;
}
#nav .menus_items .menus_item .menus_item_child li:hover {
  background: var(--text-bg-hover);
}
#nav .menus_items .menus_item .menus_item_child li:first-child {
  border-top-left-radius: 5px;
  border-top-right-radius: 5px;
}
#nav .menus_items .menus_item .menus_item_child li:last-child {
  border-bottom-right-radius: 5px;
  border-bottom-left-radius: 5px;
}
#nav .menus_items .menus_item .menus_item_child li a {
  display: inline-block;
  padding: 8px 16px;
  width: 100%;
  color: var(--font-color) !important;
  text-shadow: none !important;
}
#nav.hide-menu #toggle-menu {
  display: inline-block !important;
}
#nav.hide-menu #toggle-menu .site-page {
  font-size: inherit;
}
#nav.hide-menu .menus_items {
  display: none;
}
#nav.hide-menu #search-button span:not(.site-page) {
  display: none;
}
#nav #search-button {
  display: inline;
  padding: 0 0 0 14px;
}
#nav .site-page {
  position: relative;
  padding-bottom: 6px;
  text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
  font-size: 0.78em;
  cursor: pointer;
}
#nav .site-page:not(.child):after {
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: -1;
  width: 0;
  height: 3px;
  background-color: #80c8f8;
  content: '';
  -webkit-transition: all 0.3s ease-in-out;
  -moz-transition: all 0.3s ease-in-out;
  -o-transition: all 0.3s ease-in-out;
  -ms-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
  border-radius: 6px;
}
#nav .site-page:not(.child):hover:after {
  width: 100%;
}
#nav .nav-page-title {
  position: relative;
  overflow: hidden;
}
#nav .nav-page-title > :first-child,
#nav .nav-page-title > :last-child {
  display: inline-block;
  -webkit-transition: all 0.3s ease-in-out;
  -moz-transition: all 0.3s ease-in-out;
  -o-transition: all 0.3s ease-in-out;
  -ms-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}
#nav .nav-page-title > :last-child {
  position: absolute;
  top: 50%;
  left: 0;
  opacity: 0;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  filter: alpha(opacity=0);
  -webkit-transform: translateY(-50%) translateY(-10px);
  -moz-transform: translateY(-50%) translateY(-10px);
  -o-transform: translateY(-50%) translateY(-10px);
  -ms-transform: translateY(-50%) translateY(-10px);
  transform: translateY(-50%) translateY(-10px);
}
#nav .nav-page-title:hover > :last-child {
  opacity: 1;
  -ms-filter: none;
  filter: none;
  -webkit-transform: translateY(-50%) translateY(0);
  -moz-transform: translateY(-50%) translateY(0);
  -o-transform: translateY(-50%) translateY(0);
  -ms-transform: translateY(-50%) translateY(0);
  transform: translateY(-50%) translateY(0);
}
#nav .nav-page-title:hover > :first-child {
  opacity: 0;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  filter: alpha(opacity=0);
  -webkit-transform: translateY(10px);
  -moz-transform: translateY(10px);
  -o-transform: translateY(10px);
  -ms-transform: translateY(10px);
  transform: translateY(10px);
}
#pagination .pagination {
  margin-top: 20px;
  text-align: center;
}
#pagination .page-number.current {
  background: #00c4b6;
  color: var(--white);
}
#pagination .full-width {
  width: 100% !important;
}
#pagination .pagination-related {
  height: 150px;
}
@media screen and (min-width: 768px) {
  #pagination .pagination-related {
    -webkit-box-flex: 1;
    -moz-box-flex: 1;
    -o-box-flex: 1;
    box-flex: 1;
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
  }
}
#pagination .pagination-related .info-1 .info-item-2 {
  -webkit-line-clamp: 1;
}
#pagination .pagination-related .info-2 .info-item-1 {
  -webkit-line-clamp: 2;
}
#pagination.pagination-post {
  overflow: hidden;
  margin-top: 40px;
  width: 100%;
  border-radius: 6px;
  display: -webkit-box;
  display: -moz-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: box;
  display: flex;
}
@media screen and (max-width: 768px) {
  #pagination.pagination-post {
    -webkit-box-orient: vertical;
    -moz-box-orient: vertical;
    -o-box-orient: vertical;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
  }
}
.layout .pagination > * {
  display: inline-block;
  margin: 0 6px;
  width: 2.5em;
  height: 2.5em;
  line-height: 2.5em;
}
.layout .pagination > *:not(.space):hover {
  background: var(--btn-hover-color);
  color: var(--btn-color);
}
#archive .pagination {
  margin-top: 30px;
}
#archive .pagination > *:not(.space) {
  -webkit-box-shadow: none;
  box-shadow: none;
}
.pagination-related {
  position: relative;
  display: inline-block;
  overflow: hidden;
  background: #000;
  vertical-align: bottom;
}
.pagination-related.next-post .info {
  text-align: right;
}
.pagination-related .info .info-1,
.pagination-related .info .info-2 {
  padding: 20px 40px;
  color: var(--white);
  -webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
  -moz-transition: -moz-transform 0.3s, opacity 0.3s;
  -o-transition: -o-transform 0.3s, opacity 0.3s;
  -ms-transition: -ms-transform 0.3s, opacity 0.3s;
  transition: transform 0.3s, opacity 0.3s;
}
.pagination-related .info .info-1 .info-item-1 {
  color: var(--light-grey);
  text-transform: uppercase;
  font-size: 90%;
}
.pagination-related .info .info-1 .info-item-2 {
  color: var(--white);
  font-weight: 500;
}
.pagination-related .info .info-2 {
  opacity: 0;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  filter: alpha(opacity=0);
  -webkit-transform: translate(0, 0);
  -moz-transform: translate(0, 0);
  -o-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  transform: translate(0, 0);
}
.pagination-related:not(.no-desc):hover .info-1 {
  opacity: 0;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  filter: alpha(opacity=0);
  -webkit-transform: translate(0, -100%);
  -moz-transform: translate(0, -100%);
  -o-transform: translate(0, -100%);
  -ms-transform: translate(0, -100%);
  transform: translate(0, -100%);
}
.pagination-related:not(.no-desc):hover .info-2 {
  opacity: 1;
  -ms-filter: none;
  filter: none;
  -webkit-transform: translate(0, -50%);
  -moz-transform: translate(0, -50%);
  -o-transform: translate(0, -50%);
  -ms-transform: translate(0, -50%);
  transform: translate(0, -50%);
}
.container {
  word-wrap: break-word;
  overflow-wrap: break-word;
}
.container a {
  color: #49b1f5;
}
.container a:hover {
  text-decoration: underline;
}
.container img {
  display: block;
  margin: 0 auto 20px;
  max-width: 100%;
  -webkit-transition: filter 375ms ease-in 0.2s;
  -moz-transition: filter 375ms ease-in 0.2s;
  -o-transition: filter 375ms ease-in 0.2s;
  -ms-transition: filter 375ms ease-in 0.2s;
  transition: filter 375ms ease-in 0.2s;
  border-radius: 6px;
}
.container p {
  margin: 0 0 16px;
}
.container iframe {
  margin: 0 0 20px;
}
.container kbd {
  margin: 0 3px;
  padding: 3px 5px;
  border: 1px solid #b4b4b4;
  background-color: #f8f8f8;
  -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.25), 0 2px 1px 0 rgba(255,255,255,0.6) inset;
  box-shadow: 0 1px 3px rgba(0,0,0,0.25), 0 2px 1px 0 rgba(255,255,255,0.6) inset;
  color: #34495e;
  white-space: nowrap;
  font-weight: 600;
  font-size: 0.9em;
  font-family: Monaco, 'Ubuntu Mono', monospace;
  line-height: 1em;
  border-radius: 3px;
}
.container h1,
.container h2,
.container h3,
.container h4,
.container h5,
.container h6 {
  width: fit-content;
}
.container h1 a:not(.headerlink),
.container h2 a:not(.headerlink),
.container h3 a:not(.headerlink),
.container h4 a:not(.headerlink),
.container h5 a:not(.headerlink),
.container h6 a:not(.headerlink) {
  position: relative;
  z-index: 10;
}
.container h1 a.headerlink,
.container h2 a.headerlink,
.container h3 a.headerlink,
.container h4 a.headerlink,
.container h5 a.headerlink,
.container h6 a.headerlink {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.container ol ol,
.container ul ol,
.container ol ul,
.container ul ul {
  padding-left: 20px;
}
.container ol li,
.container ul li {
  margin: 4px 0;
}
.container ol p,
.container ul p {
  margin: 0 0 8px;
}
.container > :last-child {
  margin-bottom: 0 !important;
}
.container hr {
  margin: 20px 0;
}
.container.post-content h1,
.container.post-content h2,
.container.post-content h3,
.container.post-content h4,
.container.post-content h5,
.container.post-content h6 {
  -webkit-transition: all 0.2s ease-out;
  -moz-transition: all 0.2s ease-out;
  -o-transition: all 0.2s ease-out;
  -ms-transition: all 0.2s ease-out;
  transition: all 0.2s ease-out;
}
.container.post-content h1:before,
.container.post-content h2:before,
.container.post-content h3:before,
.container.post-content h4:before,
.container.post-content h5:before,
.container.post-content h6:before {
  position: absolute;
  top: calc(50% - 7px);
  left: 0;
  color: #f47466;
  content: '\f0c1';
  line-height: 1;
  -webkit-transition: all 0.2s ease-out;
  -moz-transition: all 0.2s ease-out;
  -o-transition: all 0.2s ease-out;
  -ms-transition: all 0.2s ease-out;
  transition: all 0.2s ease-out;
}
.container.post-content h1:hover:before,
.container.post-content h2:hover:before,
.container.post-content h3:hover:before,
.container.post-content h4:hover:before,
.container.post-content h5:hover:before,
.container.post-content h6:hover:before {
  color: #49b1f5;
}
.container.post-content h1 {
  padding-left: 28px;
}
.container.post-content h1:before {
  font-size: 18px;
}
.container.post-content h1:hover {
  padding-left: 32px;
}
.container.post-content h2 {
  padding-left: 26px;
}
.container.post-content h2:before {
  font-size: 16px;
}
.container.post-content h2:hover {
  padding-left: 30px;
}
.container.post-content h3 {
  padding-left: 24px;
}
.container.post-content h3:before {
  font-size: 14px;
}
.container.post-content h3:hover {
  padding-left: 28px;
}
.container.post-content h4 {
  padding-left: 22px;
}
.container.post-content h4:before {
  font-size: 12px;
}
.container.post-content h4:hover {
  padding-left: 26px;
}
.container.post-content h5 {
  padding-left: 20px;
}
.container.post-content h5:before {
  font-size: 10px;
}
.container.post-content h5:hover {
  padding-left: 24px;
}
.container.post-content h6 {
  padding-left: 20px;
}
.container.post-content h6:before {
  font-size: 10px;
}
.container.post-content h6:hover {
  padding-left: 24px;
}
.container.post-content ol p,
.container.post-content ul p {
  margin: 0 0 8px;
}
.container.post-content li::marker {
  color: #49b1f5;
  font-weight: 600;
  font-size: 1.05em;
}
.container.post-content li:hover::marker {
  color: var(--pseudo-hover);
}
.container.post-content ul > li {
  list-style-type: circle;
}
#post .tag_share:after {
  display: block;
  clear: both;
  content: '';
}
#post .tag_share .post-meta__tag-list {
  display: inline-block;
}
#post .tag_share .post-meta__tags {
  display: inline-block;
  margin: 8px 8px 8px 0;
  padding: 0 12px;
  width: fit-content;
  border: 1px solid #49b1f5;
  border-radius: 12px;
  color: #49b1f5;
  font-size: 0.85em;
  -webkit-transition: all 0.2s ease-in-out;
  -moz-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  -ms-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
}
#post .tag_share .post-meta__tags:hover {
  background: #49b1f5;
  color: var(--white);
}
#post .tag_share .post-share {
  display: inline-block;
  float: right;
  margin: 8px 0 0;
  width: fit-content;
}
#post .tag_share .post-share .social-share {
  font-size: 0.85em;
}
#post .tag_share .post-share .social-share .social-share-icon {
  margin: 0 4px;
  width: 1.85em;
  height: 1.85em;
  font-size: 1.2em;
  line-height: 1.85em;
}
#post .post-copyright {
  position: relative;
  margin: 40px 0 10px;
  padding: 10px 16px;
  border: 1px solid var(--light-grey);
  -webkit-transition: box-shadow 0.3s ease-in-out;
  -moz-transition: box-shadow 0.3s ease-in-out;
  -o-transition: box-shadow 0.3s ease-in-out;
  -ms-transition: box-shadow 0.3s ease-in-out;
  transition: box-shadow 0.3s ease-in-out;
  border-radius: 6px;
}
#post .post-copyright:before {
  position: absolute;
  top: 2px;
  right: 12px;
  color: #49b1f5;
  content: '\f1f9';
  font-size: 1.3em;
}
#post .post-copyright:hover {
  -webkit-box-shadow: 0 0 8px 0 rgba(232,237,250,0.6), 0 2px 4px 0 rgba(232,237,250,0.5);
  box-shadow: 0 0 8px 0 rgba(232,237,250,0.6), 0 2px 4px 0 rgba(232,237,250,0.5);
}
#post .post-copyright .post-copyright-meta {
  color: #49b1f5;
  font-weight: bold;
}
#post .post-copyright .post-copyright-meta i {
  margin-right: 3px;
}
#post .post-copyright .post-copyright-info {
  padding-left: 6px;
}
#post .post-copyright .post-copyright-info a {
  text-decoration: underline;
  word-break: break-word;
}
#post .post-copyright .post-copyright-info a:hover {
  text-decoration: none;
}
#post #post-outdate-notice {
  position: relative;
  margin: 0 0 20px;
  padding: 0.5em 1.2em;
  background-color: #ffe6e6;
  color: #f66;
  border-radius: 3px;
  padding: 0.5em 1em 0.5em 2.6em;
  border-left: 5px solid #ff8080;
}
#post #post-outdate-notice .num {
  padding: 0 4px;
}
#post #post-outdate-notice:before {
  position: absolute;
  top: 50%;
  left: 0.9em;
  color: #ff8080;
  content: '\f071';
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
}
#post .ads-wrap {
  margin: 40px 0;
}
.relatedPosts {
  margin-top: 40px;
}
.relatedPosts > .headline {
  margin-bottom: 5px;
  font-weight: 700;
  font-size: 1.43em;
}
.relatedPosts > .relatedPosts-list > a {
  margin: 3px;
  width: calc(33.333% - 6px);
  height: 200px;
  border-radius: 6px;
}
@media screen and (max-width: 768px) {
  .relatedPosts > .relatedPosts-list > a {
    margin: 2px;
    width: calc(50% - 4px);
    height: 150px;
  }
}
@media screen and (max-width: 600px) {
  .relatedPosts > .relatedPosts-list > a {
    width: calc(100% - 4px);
  }
}
.relatedPosts > .relatedPosts-list .info .info-1 .info-item-2 {
  -webkit-line-clamp: 2;
}
.relatedPosts > .relatedPosts-list .info .info-2 .info-item-1 {
  -webkit-line-clamp: 3;
}
.post-reward {
  position: relative;
  margin-top: 80px;
  width: 100%;
  text-align: center;
  pointer-events: none;
}
.post-reward > * {
  pointer-events: auto;
}
.post-reward .reward-button {
  display: inline-block;
  padding: 4px 24px;
  background: var(--btn-bg);
  color: var(--btn-color);
  cursor: pointer;
  border-radius: 6px;
}
.post-reward .reward-button i {
  margin-right: 5px;
}
.post-reward:hover .reward-button {
  background: var(--btn-hover-color);
}
.post-reward:hover > .reward-main {
  display: block;
}
.post-reward .reward-main {
  position: absolute;
  bottom: 40px;
  left: 0;
  z-index: 100;
  display: none;
  padding: 0 0 15px;
  width: 100%;
  border-radius: 6px;
}
.post-reward .reward-main .reward-all {
  display: inline-block;
  margin: 0;
  padding: 20px 10px;
  background: var(--reward-pop);
}
.post-reward .reward-main .reward-all:before {
  position: absolute;
  bottom: -10px;
  left: 0;
  width: 100%;
  height: 20px;
  content: '';
}
.post-reward .reward-main .reward-all:after {
  position: absolute;
  right: 0;
  bottom: 2px;
  left: 0;
  margin: 0 auto;
  width: 0;
  height: 0;
  border-top: 13px solid var(--reward-pop);
  border-right: 13px solid transparent;
  border-left: 13px solid transparent;
  content: '';
}
.post-reward .reward-main .reward-all .reward-item {
  display: inline-block;
  padding: 0 8px;
  list-style-type: none;
  vertical-align: top;
}
.post-reward .reward-main .reward-all .reward-item img {
  width: 130px;
  height: 130px;
}
.post-reward .reward-main .reward-all .reward-item .post-qr-code-desc {
  width: 130px;
  color: #858585;
}
#rightside {
  position: fixed;
  right: -48px;
  bottom: 40px;
  z-index: 100;
  opacity: 0;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  filter: alpha(opacity=0);
  -webkit-transition: all 0.5s;
  -moz-transition: all 0.5s;
  -o-transition: all 0.5s;
  -ms-transition: all 0.5s;
  transition: all 0.5s;
}
#rightside.rightside-show {
  opacity: 0.8;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";
  filter: alpha(opacity=80);
  -webkit-transform: translate(-58px, 0);
  -moz-transform: translate(-58px, 0);
  -o-transform: translate(-58px, 0);
  -ms-transform: translate(-58px, 0);
  transform: translate(-58px, 0);
}
#rightside #rightside-config-hide {
  height: 0;
  opacity: 0;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  filter: alpha(opacity=0);
  -webkit-transition: -webkit-transform 0.4s;
  -moz-transition: -moz-transform 0.4s;
  -o-transition: -o-transform 0.4s;
  -ms-transition: -ms-transform 0.4s;
  transition: transform 0.4s;
  -webkit-transform: translate(45px, 0);
  -moz-transform: translate(45px, 0);
  -o-transform: translate(45px, 0);
  -ms-transform: translate(45px, 0);
  transform: translate(45px, 0);
}
#rightside #rightside-config-hide.show {
  height: auto;
  opacity: 1;
  -ms-filter: none;
  filter: none;
  -webkit-transform: translate(0, 0);
  -moz-transform: translate(0, 0);
  -o-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  transform: translate(0, 0);
}
#rightside #rightside-config-hide.status {
  height: auto;
  opacity: 1;
  -ms-filter: none;
  filter: none;
}
#rightside > div > button,
#rightside > div > a {
  display: block;
  margin-bottom: 5px;
  width: 35px;
  height: 35px;
  background-color: var(--btn-bg);
  color: var(--btn-color);
  text-align: center;
  font-size: 16px;
  line-height: 35px;
  border-radius: 5px;
}
#rightside > div > button:hover,
#rightside > div > a:hover {
  background-color: var(--btn-hover-color);
}
#rightside #mobile-toc-button {
  display: none;
}
@media screen and (max-width: 900px) {
  #rightside #mobile-toc-button {
    display: block;
  }
}
@media screen and (max-width: 900px) {
  #rightside #hide-aside-btn {
    display: none;
  }
}
#rightside #go-up .scroll-percent {
  display: none;
}
#rightside #go-up.show-percent .scroll-percent {
  display: block;
}
#rightside #go-up.show-percent .scroll-percent + i {
  display: none;
}
#rightside #go-up:hover .scroll-percent {
  display: none;
}
#rightside #go-up:hover .scroll-percent + i {
  display: block;
}
#sidebar #menu-mask {
  position: fixed;
  z-index: 102;
  display: none;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,0.8);
}
#sidebar #sidebar-menus {
  position: fixed;
  top: 0;
  right: -330px;
  z-index: 103;
  overflow-x: hidden;
  overflow-y: scroll;
  padding-left: 5px;
  width: 330px;
  height: 100%;
  background: var(--sidebar-bg);
  -webkit-transition: all 0.5s;
  -moz-transition: all 0.5s;
  -o-transition: all 0.5s;
  -ms-transition: all 0.5s;
  transition: all 0.5s;
}
#sidebar #sidebar-menus.open {
  -webkit-transform: translate3d(-100%, 0, 0);
  -moz-transform: translate3d(-100%, 0, 0);
  -o-transform: translate3d(-100%, 0, 0);
  -ms-transform: translate3d(-100%, 0, 0);
  transform: translate3d(-100%, 0, 0);
}
#sidebar #sidebar-menus > .avatar-img {
  margin: 20px auto;
}
#sidebar #sidebar-menus .site-data {
  padding: 0 10px;
}
#sidebar #sidebar-menus hr {
  margin: 20px auto;
}
#sidebar #sidebar-menus .menus_items {
  margin: 20px;
  padding: 15px;
  background: var(--sidebar-menu-bg);
  -webkit-box-shadow: 0 0 1px 1px rgba(7,17,27,0.05);
  box-shadow: 0 0 1px 1px rgba(7,17,27,0.05);
  border-radius: 10px;
}
#sidebar #sidebar-menus .menus_items .site-page {
  position: relative;
  display: block;
  margin: 4px 0;
  padding: 2px 23px 2px 15px;
  color: var(--font-color);
  font-size: 1.15em;
  cursor: pointer;
  border-radius: 6px;
}
#sidebar #sidebar-menus .menus_items .site-page:hover {
  background: var(--text-bg-hover);
  color: var(--white);
}
#sidebar #sidebar-menus .menus_items .site-page i:first-child {
  width: 15%;
  text-align: left;
}
#sidebar #sidebar-menus .menus_items .site-page.group > i:last-child {
  position: absolute;
  top: 0.6em;
  right: 10px;
  -webkit-transition: -webkit-transform 0.3s;
  -moz-transition: -moz-transform 0.3s;
  -o-transition: -o-transform 0.3s;
  -ms-transition: -ms-transform 0.3s;
  transition: transform 0.3s;
}
#sidebar #sidebar-menus .menus_items .site-page.group.hide > i:last-child {
  -webkit-transform: rotate(90deg);
  -moz-transform: rotate(90deg);
  -o-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  transform: rotate(90deg);
}
#sidebar #sidebar-menus .menus_items .site-page.group.hide + .menus_item_child {
  display: none;
}
#sidebar #sidebar-menus .menus_items .menus_item_child {
  margin: 0;
  padding-left: 25px;
  list-style: none;
}
#vcomment {
  font-size: 1.1em;
}
#vcomment .vbtn {
  border: none;
  background: var(--btn-bg);
  color: var(--btn-color);
}
#vcomment .vbtn:hover {
  background: var(--btn-hover-color);
}
#vcomment .vimg {
  -webkit-transition: all 0.3s;
  -moz-transition: all 0.3s;
  -o-transition: all 0.3s;
  -ms-transition: all 0.3s;
  transition: all 0.3s;
}
#vcomment .vimg:hover {
  -webkit-transform: rotate(360deg);
  -moz-transform: rotate(360deg);
  -o-transform: rotate(360deg);
  -ms-transform: rotate(360deg);
  transform: rotate(360deg);
}
#vcomment .vcards .vcard .vcontent.expand:before,
#vcomment .vcards .vcard .vcontent.expand:after {
  z-index: 22;
}
#waline-wrap {
  --waline-font-size: 1.1em;
  --waline-theme-color: #49b1f5;
  --waline-active-color: #ff7242;
}
#waline-wrap .wl-comment-actions > button:not(last-child) {
  padding-right: 4px;
}
#vcomment textarea {
  background: url("/img/comment_bg.png") 100% 100% no-repeat;
}
#vcomment textarea:focus {
  background-image: none;
}
.twikoo .tk-content p {
  margin: 3px 0;
}
.fireworks {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  pointer-events: none;
}
.medium-zoom-image--opened {
  z-index: 99999 !important;
  margin: 0 !important;
}
.medium-zoom-overlay {
  z-index: 99999 !important;
}
.mermaid-wrap {
  margin: 0 0 20px;
  text-align: center;
}
.mermaid-wrap > svg {
  height: 100%;
}
.utterances,
.fb-comments iframe {
  width: 100% !important;
}
#gitalk-container .gt-meta {
  margin: 0 0 0.8em;
  padding: 6px 0 16px;
}
.aplayer {
  color: #4c4948;
}
.container .aplayer {
  margin: 0 0 20px;
}
.container .aplayer ol,
.container .aplayer ul {
  margin: 0;
  padding: 0;
}
.container .aplayer ol li,
.container .aplayer ul li {
  margin: 0;
  padding: 0 15px;
}
.container .aplayer ol li:before,
.container .aplayer ul li:before {
  content: none;
}
.snackbar-container.snackbar-css {
  border-radius: 5px;
  opacity: 0.85 !important;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)" !important;
  filter: alpha(opacity=85) !important;
}
.abc-music-sheet {
  margin: 0 0 20px;
  opacity: 0;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  filter: alpha(opacity=0);
  -webkit-transition: opacity 0.3s;
  -moz-transition: opacity 0.3s;
  -o-transition: opacity 0.3s;
  -ms-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
.abc-music-sheet.abcjs-container {
  opacity: 1;
  -ms-filter: none;
  filter: none;
}
@media screen and (max-width: 768px) {
  .fancybox__toolbar__column.is-middle {
    display: none;
  }
}
.container .btn-center {
  margin: 0 0 20px;
  text-align: center;
}
.container .btn-beautify {
  display: inline-block;
  margin: 0 4px 6px;
  padding: 0 15px;
  background-color: var(--btn-beautify-color, #777);
  color: #fff;
  line-height: 2;
  border-radius: 6px;
}
.container .btn-beautify.blue {
  --btn-beautify-color: #428bca;
}
.container .btn-beautify.pink {
  --btn-beautify-color: #ff69b4;
}
.container .btn-beautify.red {
  --btn-beautify-color: #f00;
}
.container .btn-beautify.purple {
  --btn-beautify-color: #6f42c1;
}
.container .btn-beautify.orange {
  --btn-beautify-color: #ff8c00;
}
.container .btn-beautify.green {
  --btn-beautify-color: #5cb85c;
}
.container .btn-beautify:hover {
  background-color: var(--btn-hover-color);
}
.container .btn-beautify i + span {
  margin-left: 6px;
}
.container .btn-beautify:not(.block) + .btn-beautify:not(.block) {
  margin: 0 4px 20px;
}
.container .btn-beautify.block {
  display: block;
  margin: 0 0 20px;
  width: fit-content;
  width: -moz-fit-content;
}
.container .btn-beautify.block.center {
  margin: 0 auto 20px;
}
.container .btn-beautify.block.right {
  margin: 0 0 20px auto;
}
.container .btn-beautify.larger {
  padding: 6px 15px;
}
.container .btn-beautify:hover {
  text-decoration: none;
}
.container .btn-beautify.outline {
  border: 1px solid transparent;
  border-color: var(--btn-beautify-color, #777);
  background-color: transparent;
  color: var(--btn-beautify-color, #777);
}
.container .btn-beautify.outline:hover {
  background-color: var(--btn-beautify-color, #777);
}
.container .btn-beautify.outline:hover {
  color: #fff !important;
}
.container figure.gallery-group {
  position: relative;
  float: left;
  overflow: hidden;
  margin: 6px 4px;
  width: calc(50% - 8px);
  height: 250px;
  border-radius: 10px;
  background: #000;
  -webkit-transform: translate3d(0, 0, 0);
}
@media screen and (max-width: 600px) {
  .container figure.gallery-group {
    width: calc(100% - 8px);
  }
}
@media screen and (min-width: 1024px) {
  .container figure.gallery-group {
    width: calc(100% / 3 - 8px);
  }
}
.container figure.gallery-group:hover img {
  opacity: 0.4;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";
  filter: alpha(opacity=40);
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}
.container figure.gallery-group:hover .gallery-group-name::after {
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}
.container figure.gallery-group:hover p {
  opacity: 1;
  -ms-filter: none;
  filter: none;
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}
.container figure.gallery-group img {
  position: relative;
  margin: 0;
  max-width: none;
  width: calc(100% + 20px);
  height: 250px;
  -webkit-backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  -ms-backface-visibility: hidden;
  backface-visibility: hidden;
  opacity: 0.8;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";
  filter: alpha(opacity=80);
  -webkit-transition: all 0.3s, filter 375ms ease-in 0.2s;
  -moz-transition: all 0.3s, filter 375ms ease-in 0.2s;
  -o-transition: all 0.3s, filter 375ms ease-in 0.2s;
  -ms-transition: all 0.3s, filter 375ms ease-in 0.2s;
  transition: all 0.3s, filter 375ms ease-in 0.2s;
  -webkit-transform: translate3d(-10px, 0, 0);
  -moz-transform: translate3d(-10px, 0, 0);
  -o-transform: translate3d(-10px, 0, 0);
  -ms-transform: translate3d(-10px, 0, 0);
  transform: translate3d(-10px, 0, 0);
  object-fit: cover;
}
.container figure.gallery-group figcaption {
  position: absolute;
  top: 0;
  left: 0;
  padding: 30px;
  width: 100%;
  height: 100%;
  color: #fff;
  text-transform: uppercase;
  -webkit-backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  -ms-backface-visibility: hidden;
  backface-visibility: hidden;
}
.container figure.gallery-group figcaption > a {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1000;
  opacity: 0;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  filter: alpha(opacity=0);
}
.container figure.gallery-group p {
  margin: 0;
  padding: 8px 0 0;
  letter-spacing: 1px;
  font-size: 1.1em;
  line-height: 1.5;
  opacity: 0;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  filter: alpha(opacity=0);
  -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;
  -moz-transition: opacity 0.35s, -moz-transform 0.35s;
  -o-transition: opacity 0.35s, -o-transform 0.35s;
  -ms-transition: opacity 0.35s, -ms-transform 0.35s;
  transition: opacity 0.35s, transform 0.35s;
  -webkit-transform: translate3d(100%, 0, 0);
  -moz-transform: translate3d(100%, 0, 0);
  -o-transform: translate3d(100%, 0, 0);
  -ms-transform: translate3d(100%, 0, 0);
  transform: translate3d(100%, 0, 0);
  -webkit-line-clamp: 4;
}
.container figure.gallery-group .gallery-group-name {
  position: relative;
  margin: 0;
  padding: 8px 0;
  font-weight: bold;
  font-size: 1.65em;
  line-height: 1.5;
  -webkit-line-clamp: 2;
}
.container figure.gallery-group .gallery-group-name:after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background: #fff;
  content: '';
  -webkit-transition: -webkit-transform 0.35s;
  -moz-transition: -moz-transform 0.35s;
  -o-transition: -o-transform 0.35s;
  -ms-transition: -ms-transform 0.35s;
  transition: transform 0.35s;
  -webkit-transform: translate3d(-100%, 0, 0);
  -moz-transform: translate3d(-100%, 0, 0);
  -o-transform: translate3d(-100%, 0, 0);
  -ms-transform: translate3d(-100%, 0, 0);
  transform: translate3d(-100%, 0, 0);
}
.container .gallery-group-main {
  overflow: auto;
  padding: 0 0 16px;
}
.container .gallery-container {
  margin: 0 0 20px;
  text-align: center;
  opacity: 0;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  filter: alpha(opacity=0);
}
.container .gallery-container.loaded {
  opacity: 1;
  -ms-filter: none;
  filter: none;
}
.container .gallery-container img {
  display: initial;
  margin: 0;
  width: 100%;
  height: 100%;
}
.container .gallery-container .gallery-data {
  display: none;
}
.container .gallery-container button {
  margin-top: 25px;
  padding: 8px 14px;
  background: var(--btn-bg);
  color: var(--btn-color);
  font-weight: bold;
  font-size: 1.1em;
  -webkit-transition: all 0.3s;
  -moz-transition: all 0.3s;
  -o-transition: all 0.3s;
  -ms-transition: all 0.3s;
  transition: all 0.3s;
  border-radius: 5px;
}
.container .gallery-container button:hover {
  background: var(--btn-hover-color);
}
.container .gallery-container button:hover i {
  margin-left: 8px;
}
.container .gallery-container button i {
  margin-left: 4px;
  -webkit-transition: all 0.3s;
  -moz-transition: all 0.3s;
  -o-transition: all 0.3s;
  -ms-transition: all 0.3s;
  transition: all 0.3s;
}
.container .loading-container {
  display: inline-block;
  overflow: hidden;
  width: 154px;
  height: 154px;
}
.container .loading-container .loading-item {
  position: relative;
  width: 100%;
  height: 100%;
  -webkit-backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  -ms-backface-visibility: hidden;
  backface-visibility: hidden;
  -webkit-transform: translateZ(0) scale(1);
  -moz-transform: translateZ(0) scale(1);
  -o-transform: translateZ(0) scale(1);
  -ms-transform: translateZ(0) scale(1);
  transform: translateZ(0) scale(1);
  -webkit-transform-origin: 0 0;
  -moz-transform-origin: 0 0;
  -o-transform-origin: 0 0;
  -ms-transform-origin: 0 0;
  transform-origin: 0 0;
}
.container .loading-container .loading-item div {
  position: absolute;
  width: 30.8px;
  height: 30.8px;
  border-radius: 50%;
  background: #e15b64;
  -webkit-transform: translate(61.6px, 61.6px) scale(1);
  -moz-transform: translate(61.6px, 61.6px) scale(1);
  -o-transform: translate(61.6px, 61.6px) scale(1);
  -ms-transform: translate(61.6px, 61.6px) scale(1);
  transform: translate(61.6px, 61.6px) scale(1);
  -webkit-animation: loading-ball 1.92s infinite cubic-bezier(0, 0.5, 0.5, 1);
  -moz-animation: loading-ball 1.92s infinite cubic-bezier(0, 0.5, 0.5, 1);
  -o-animation: loading-ball 1.92s infinite cubic-bezier(0, 0.5, 0.5, 1);
  -ms-animation: loading-ball 1.92s infinite cubic-bezier(0, 0.5, 0.5, 1);
  animation: loading-ball 1.92s infinite cubic-bezier(0, 0.5, 0.5, 1);
}
.container .loading-container .loading-item div:nth-child(1) {
  background: #f47e60;
  -webkit-transform: translate(113.96px, 61.6px) scale(1);
  -moz-transform: translate(113.96px, 61.6px) scale(1);
  -o-transform: translate(113.96px, 61.6px) scale(1);
  -ms-transform: translate(113.96px, 61.6px) scale(1);
  transform: translate(113.96px, 61.6px) scale(1);
  -webkit-animation: loading-ball-r 0.48s infinite cubic-bezier(0, 0.5, 0.5, 1), loading-ball-c 1.92s infinite step-start;
  -moz-animation: loading-ball-r 0.48s infinite cubic-bezier(0, 0.5, 0.5, 1), loading-ball-c 1.92s infinite step-start;
  -o-animation: loading-ball-r 0.48s infinite cubic-bezier(0, 0.5, 0.5, 1), loading-ball-c 1.92s infinite step-start;
  -ms-animation: loading-ball-r 0.48s infinite cubic-bezier(0, 0.5, 0.5, 1), loading-ball-c 1.92s infinite step-start;
  animation: loading-ball-r 0.48s infinite cubic-bezier(0, 0.5, 0.5, 1), loading-ball-c 1.92s infinite step-start;
}
.container .loading-container .loading-item div:nth-child(2) {
  background: #e15b64;
  -webkit-animation-delay: -0.48s;
  -moz-animation-delay: -0.48s;
  -o-animation-delay: -0.48s;
  -ms-animation-delay: -0.48s;
  animation-delay: -0.48s;
}
.container .loading-container .loading-item div:nth-child(3) {
  background: #f47e60;
  -webkit-animation-delay: -0.96s;
  -moz-animation-delay: -0.96s;
  -o-animation-delay: -0.96s;
  -ms-animation-delay: -0.96s;
  animation-delay: -0.96s;
}
.container .loading-container .loading-item div:nth-child(4) {
  background: #f8b26a;
  -webkit-animation-delay: -1.44s;
  -moz-animation-delay: -1.44s;
  -o-animation-delay: -1.44s;
  -ms-animation-delay: -1.44s;
  animation-delay: -1.44s;
}
.container .loading-container .loading-item div:nth-child(5) {
  background: #abbd81;
  -webkit-animation-delay: -1.92s;
  -moz-animation-delay: -1.92s;
  -o-animation-delay: -1.92s;
  -ms-animation-delay: -1.92s;
  animation-delay: -1.92s;
}
@-moz-keyframes loading-ball {
  0% {
    -webkit-transform: translate(9.24px, 61.6px) scale(0);
    -moz-transform: translate(9.24px, 61.6px) scale(0);
    -o-transform: translate(9.24px, 61.6px) scale(0);
    -ms-transform: translate(9.24px, 61.6px) scale(0);
    transform: translate(9.24px, 61.6px) scale(0);
  }
  25% {
    -webkit-transform: translate(9.24px, 61.6px) scale(0);
    -moz-transform: translate(9.24px, 61.6px) scale(0);
    -o-transform: translate(9.24px, 61.6px) scale(0);
    -ms-transform: translate(9.24px, 61.6px) scale(0);
    transform: translate(9.24px, 61.6px) scale(0);
  }
  50% {
    -webkit-transform: translate(9.24px, 61.6px) scale(1);
    -moz-transform: translate(9.24px, 61.6px) scale(1);
    -o-transform: translate(9.24px, 61.6px) scale(1);
    -ms-transform: translate(9.24px, 61.6px) scale(1);
    transform: translate(9.24px, 61.6px) scale(1);
  }
  75% {
    -webkit-transform: translate(61.6px, 61.6px) scale(1);
    -moz-transform: translate(61.6px, 61.6px) scale(1);
    -o-transform: translate(61.6px, 61.6px) scale(1);
    -ms-transform: translate(61.6px, 61.6px) scale(1);
    transform: translate(61.6px, 61.6px) scale(1);
  }
  100% {
    -webkit-transform: translate(113.96px, 61.6px) scale(1);
    -moz-transform: translate(113.96px, 61.6px) scale(1);
    -o-transform: translate(113.96px, 61.6px) scale(1);
    -ms-transform: translate(113.96px, 61.6px) scale(1);
    transform: translate(113.96px, 61.6px) scale(1);
  }
}
@-webkit-keyframes loading-ball {
  0% {
    -webkit-transform: translate(9.24px, 61.6px) scale(0);
    -moz-transform: translate(9.24px, 61.6px) scale(0);
    -o-transform: translate(9.24px, 61.6px) scale(0);
    -ms-transform: translate(9.24px, 61.6px) scale(0);
    transform: translate(9.24px, 61.6px) scale(0);
  }
  25% {
    -webkit-transform: translate(9.24px, 61.6px) scale(0);
    -moz-transform: translate(9.24px, 61.6px) scale(0);
    -o-transform: translate(9.24px, 61.6px) scale(0);
    -ms-transform: translate(9.24px, 61.6px) scale(0);
    transform: translate(9.24px, 61.6px) scale(0);
  }
  50% {
    -webkit-transform: translate(9.24px, 61.6px) scale(1);
    -moz-transform: translate(9.24px, 61.6px) scale(1);
    -o-transform: translate(9.24px, 61.6px) scale(1);
    -ms-transform: translate(9.24px, 61.6px) scale(1);
    transform: translate(9.24px, 61.6px) scale(1);
  }
  75% {
    -webkit-transform: translate(61.6px, 61.6px) scale(1);
    -moz-transform: translate(61.6px, 61.6px) scale(1);
    -o-transform: translate(61.6px, 61.6px) scale(1);
    -ms-transform: translate(61.6px, 61.6px) scale(1);
    transform: translate(61.6px, 61.6px) scale(1);
  }
  100% {
    -webkit-transform: translate(113.96px, 61.6px) scale(1);
    -moz-transform: translate(113.96px, 61.6px) scale(1);
    -o-transform: translate(113.96px, 61.6px) scale(1);
    -ms-transform: translate(113.96px, 61.6px) scale(1);
    transform: translate(113.96px, 61.6px) scale(1);
  }
}
@-o-keyframes loading-ball {
  0% {
    -webkit-transform: translate(9.24px, 61.6px) scale(0);
    -moz-transform: translate(9.24px, 61.6px) scale(0);
    -o-transform: translate(9.24px, 61.6px) scale(0);
    -ms-transform: translate(9.24px, 61.6px) scale(0);
    transform: translate(9.24px, 61.6px) scale(0);
  }
  25% {
    -webkit-transform: translate(9.24px, 61.6px) scale(0);
    -moz-transform: translate(9.24px, 61.6px) scale(0);
    -o-transform: translate(9.24px, 61.6px) scale(0);
    -ms-transform: translate(9.24px, 61.6px) scale(0);
    transform: translate(9.24px, 61.6px) scale(0);
  }
  50% {
    -webkit-transform: translate(9.24px, 61.6px) scale(1);
    -moz-transform: translate(9.24px, 61.6px) scale(1);
    -o-transform: translate(9.24px, 61.6px) scale(1);
    -ms-transform: translate(9.24px, 61.6px) scale(1);
    transform: translate(9.24px, 61.6px) scale(1);
  }
  75% {
    -webkit-transform: translate(61.6px, 61.6px) scale(1);
    -moz-transform: translate(61.6px, 61.6px) scale(1);
    -o-transform: translate(61.6px, 61.6px) scale(1);
    -ms-transform: translate(61.6px, 61.6px) scale(1);
    transform: translate(61.6px, 61.6px) scale(1);
  }
  100% {
    -webkit-transform: translate(113.96px, 61.6px) scale(1);
    -moz-transform: translate(113.96px, 61.6px) scale(1);
    -o-transform: translate(113.96px, 61.6px) scale(1);
    -ms-transform: translate(113.96px, 61.6px) scale(1);
    transform: translate(113.96px, 61.6px) scale(1);
  }
}
@keyframes loading-ball {
  0% {
    -webkit-transform: translate(9.24px, 61.6px) scale(0);
    -moz-transform: translate(9.24px, 61.6px) scale(0);
    -o-transform: translate(9.24px, 61.6px) scale(0);
    -ms-transform: translate(9.24px, 61.6px) scale(0);
    transform: translate(9.24px, 61.6px) scale(0);
  }
  25% {
    -webkit-transform: translate(9.24px, 61.6px) scale(0);
    -moz-transform: translate(9.24px, 61.6px) scale(0);
    -o-transform: translate(9.24px, 61.6px) scale(0);
    -ms-transform: translate(9.24px, 61.6px) scale(0);
    transform: translate(9.24px, 61.6px) scale(0);
  }
  50% {
    -webkit-transform: translate(9.24px, 61.6px) scale(1);
    -moz-transform: translate(9.24px, 61.6px) scale(1);
    -o-transform: translate(9.24px, 61.6px) scale(1);
    -ms-transform: translate(9.24px, 61.6px) scale(1);
    transform: translate(9.24px, 61.6px) scale(1);
  }
  75% {
    -webkit-transform: translate(61.6px, 61.6px) scale(1);
    -moz-transform: translate(61.6px, 61.6px) scale(1);
    -o-transform: translate(61.6px, 61.6px) scale(1);
    -ms-transform: translate(61.6px, 61.6px) scale(1);
    transform: translate(61.6px, 61.6px) scale(1);
  }
  100% {
    -webkit-transform: translate(113.96px, 61.6px) scale(1);
    -moz-transform: translate(113.96px, 61.6px) scale(1);
    -o-transform: translate(113.96px, 61.6px) scale(1);
    -ms-transform: translate(113.96px, 61.6px) scale(1);
    transform: translate(113.96px, 61.6px) scale(1);
  }
}
@-moz-keyframes loading-ball-r {
  0% {
    -webkit-transform: translate(113.96px, 61.6px) scale(1);
    -moz-transform: translate(113.96px, 61.6px) scale(1);
    -o-transform: translate(113.96px, 61.6px) scale(1);
    -ms-transform: translate(113.96px, 61.6px) scale(1);
    transform: translate(113.96px, 61.6px) scale(1);
  }
  100% {
    -webkit-transform: translate(113.96px, 61.6px) scale(0);
    -moz-transform: translate(113.96px, 61.6px) scale(0);
    -o-transform: translate(113.96px, 61.6px) scale(0);
    -ms-transform: translate(113.96px, 61.6px) scale(0);
    transform: translate(113.96px, 61.6px) scale(0);
  }
}
@-webkit-keyframes loading-ball-r {
  0% {
    -webkit-transform: translate(113.96px, 61.6px) scale(1);
    -moz-transform: translate(113.96px, 61.6px) scale(1);
    -o-transform: translate(113.96px, 61.6px) scale(1);
    -ms-transform: translate(113.96px, 61.6px) scale(1);
    transform: translate(113.96px, 61.6px) scale(1);
  }
  100% {
    -webkit-transform: translate(113.96px, 61.6px) scale(0);
    -moz-transform: translate(113.96px, 61.6px) scale(0);
    -o-transform: translate(113.96px, 61.6px) scale(0);
    -ms-transform: translate(113.96px, 61.6px) scale(0);
    transform: translate(113.96px, 61.6px) scale(0);
  }
}
@-o-keyframes loading-ball-r {
  0% {
    -webkit-transform: translate(113.96px, 61.6px) scale(1);
    -moz-transform: translate(113.96px, 61.6px) scale(1);
    -o-transform: translate(113.96px, 61.6px) scale(1);
    -ms-transform: translate(113.96px, 61.6px) scale(1);
    transform: translate(113.96px, 61.6px) scale(1);
  }
  100% {
    -webkit-transform: translate(113.96px, 61.6px) scale(0);
    -moz-transform: translate(113.96px, 61.6px) scale(0);
    -o-transform: translate(113.96px, 61.6px) scale(0);
    -ms-transform: translate(113.96px, 61.6px) scale(0);
    transform: translate(113.96px, 61.6px) scale(0);
  }
}
@keyframes loading-ball-r {
  0% {
    -webkit-transform: translate(113.96px, 61.6px) scale(1);
    -moz-transform: translate(113.96px, 61.6px) scale(1);
    -o-transform: translate(113.96px, 61.6px) scale(1);
    -ms-transform: translate(113.96px, 61.6px) scale(1);
    transform: translate(113.96px, 61.6px) scale(1);
  }
  100% {
    -webkit-transform: translate(113.96px, 61.6px) scale(0);
    -moz-transform: translate(113.96px, 61.6px) scale(0);
    -o-transform: translate(113.96px, 61.6px) scale(0);
    -ms-transform: translate(113.96px, 61.6px) scale(0);
    transform: translate(113.96px, 61.6px) scale(0);
  }
}
@-moz-keyframes loading-ball-c {
  0% {
    background: #e15b64;
  }
  25% {
    background: #abbd81;
  }
  50% {
    background: #f8b26a;
  }
  75% {
    background: #f47e60;
  }
  100% {
    background: #e15b64;
  }
}
@-webkit-keyframes loading-ball-c {
  0% {
    background: #e15b64;
  }
  25% {
    background: #abbd81;
  }
  50% {
    background: #f8b26a;
  }
  75% {
    background: #f47e60;
  }
  100% {
    background: #e15b64;
  }
}
@-o-keyframes loading-ball-c {
  0% {
    background: #e15b64;
  }
  25% {
    background: #abbd81;
  }
  50% {
    background: #f8b26a;
  }
  75% {
    background: #f47e60;
  }
  100% {
    background: #e15b64;
  }
}
@keyframes loading-ball-c {
  0% {
    background: #e15b64;
  }
  25% {
    background: #abbd81;
  }
  50% {
    background: #f8b26a;
  }
  75% {
    background: #f47e60;
  }
  100% {
    background: #e15b64;
  }
}
blockquote.pullquote {
  position: relative;
  max-width: 45%;
  font-size: 110%;
}
blockquote.pullquote.left {
  float: left;
  margin: 1em 0.5em 0 0;
}
blockquote.pullquote.right {
  float: right;
  margin: 1em 0 0 0.5em;
}
.video-container {
  position: relative;
  overflow: hidden;
  margin-bottom: 16px;
  padding-top: 56.25%;
  height: 0;
}
.video-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  margin-top: 0;
  width: 100%;
  height: 100%;
}
.hide-inline > .hide-button,
.hide-block > .hide-button {
  display: inline-block;
  padding: 5px 18px;
  background: #49b1f5;
  color: var(--white);
  border-radius: 6px;
}
.hide-inline > .hide-button:hover,
.hide-block > .hide-button:hover {
  background-color: var(--btn-hover-color);
}
.hide-inline > .hide-button.open,
.hide-block > .hide-button.open {
  display: none;
}
.hide-inline > .hide-button.open + div,
.hide-block > .hide-button.open + div {
  display: block;
}
.hide-inline > .hide-button.open + span,
.hide-block > .hide-button.open + span {
  display: inline;
}
.hide-inline > .hide-content,
.hide-block > .hide-content {
  display: none;
}
.hide-inline > .hide-button {
  margin: 0 6px;
}
.hide-inline > .hide-content {
  margin: 0 6px;
}
.hide-block {
  margin: 0 0 16px;
}
.toggle {
  margin-bottom: 20px;
  border: 1px solid #f0f0f0;
  border-radius: 5px;
  overflow: hidden;
}
.toggle > .toggle-button {
  padding: 6px 15px;
  background: #f0f0f0;
  color: #1f2d3d;
  cursor: pointer;
}
.toggle > .toggle-content {
  margin: 30px 24px;
}
.container .inline-img {
  display: inline;
  margin: 0 3px;
  height: 1.1em;
  vertical-align: text-bottom;
}
.hl-label {
  padding: 2px 4px;
  color: #fff;
  border-radius: 3px;
}
.hl-label.default {
  background-color: #777;
}
.hl-label.blue {
  background-color: #428bca;
}
.hl-label.pink {
  background-color: #ff69b4;
}
.hl-label.red {
  background-color: #f00;
}
.hl-label.purple {
  background-color: #6f42c1;
}
.hl-label.orange {
  background-color: #ff8c00;
}
.hl-label.green {
  background-color: #5cb85c;
}
.note {
  position: relative;
  margin: 0 0 20px;
  padding: 15px;
  border-radius: 3px;
}
.note.icon-padding {
  padding-left: 3em;
}
.note > .note-icon {
  position: absolute;
  top: calc(50% - 0.5em);
  left: 0.8em;
  font-size: larger;
}
.note.blue:not(.disabled) {
  border-left-color: #428bca !important;
}
.note.blue:not(.disabled).modern {
  border-left-color: transparent !important;
  color: #428bca;
}
.note.blue:not(.disabled):not(.simple) {
  background: #e3eef7 !important;
}
.note.blue > .note-icon {
  color: #428bca;
}
.note.pink:not(.disabled) {
  border-left-color: #ff69b4 !important;
}
.note.pink:not(.disabled).modern {
  border-left-color: transparent !important;
  color: #ff69b4;
}
.note.pink:not(.disabled):not(.simple) {
  background: #ffe9f4 !important;
}
.note.pink > .note-icon {
  color: #ff69b4;
}
.note.red:not(.disabled) {
  border-left-color: #f00 !important;
}
.note.red:not(.disabled).modern {
  border-left-color: transparent !important;
  color: #f00;
}
.note.red:not(.disabled):not(.simple) {
  background: #ffd9d9 !important;
}
.note.red > .note-icon {
  color: #f00;
}
.note.purple:not(.disabled) {
  border-left-color: #6f42c1 !important;
}
.note.purple:not(.disabled).modern {
  border-left-color: transparent !important;
  color: #6f42c1;
}
.note.purple:not(.disabled):not(.simple) {
  background: #e9e3f6 !important;
}
.note.purple > .note-icon {
  color: #6f42c1;
}
.note.orange:not(.disabled) {
  border-left-color: #ff8c00 !important;
}
.note.orange:not(.disabled).modern {
  border-left-color: transparent !important;
  color: #ff8c00;
}
.note.orange:not(.disabled):not(.simple) {
  background: #ffeed9 !important;
}
.note.orange > .note-icon {
  color: #ff8c00;
}
.note.green:not(.disabled) {
  border-left-color: #5cb85c !important;
}
.note.green:not(.disabled).modern {
  border-left-color: transparent !important;
  color: #5cb85c;
}
.note.green:not(.disabled):not(.simple) {
  background: #e7f4e7 !important;
}
.note.green > .note-icon {
  color: #5cb85c;
}
.note.simple {
  border: 1px solid #eee;
  border-left-width: 5px;
}
.note.modern {
  border: 1px solid transparent !important;
  background-color: #f5f5f5;
  color: #4c4948;
}
.note.flat {
  border: initial;
  border-left: 5px solid #eee;
  background-color: #f9f9f9;
  color: #4c4948;
}
.note h2,
.note h3,
.note h4,
.note h5,
.note h6 {
  margin-top: 3px;
  margin-bottom: 0;
  padding-top: 0 !important;
  border-bottom: initial;
}
.note p:first-child,
.note ul:first-child,
.note ol:first-child,
.note table:first-child,
.note pre:first-child,
.note blockquote:first-child,
.note img:first-child {
  margin-top: 0 !important;
}
.note p:last-child,
.note ul:last-child,
.note ol:last-child,
.note table:last-child,
.note pre:last-child,
.note blockquote:last-child,
.note img:last-child {
  margin-bottom: 0 !important;
}
.note .img-alt {
  margin: 5px 0 10px;
}
.note:not(.no-icon) {
  padding-left: 3em;
}
.note:not(.no-icon)::before {
  position: absolute;
  top: calc(50% - 0.95em);
  left: 0.8em;
  font-size: larger;
}
.note.default.flat {
  background: #f7f7f7;
}
.note.default.modern {
  border-color: #e1e1e1;
  background: #f3f3f3;
  color: #666;
}
.note.default.modern a:not(.btn) {
  color: #666;
}
.note.default.modern a:not(.btn):hover {
  color: #454545;
}
.note.default:not(.modern) {
  border-left-color: #777;
}
.note.default:not(.modern) h2,
.note.default:not(.modern) h3,
.note.default:not(.modern) h4,
.note.default:not(.modern) h5,
.note.default:not(.modern) h6 {
  color: #777;
}
.note.default:not(.no-icon)::before {
  content: '\f0a9';
}
.note.default:not(.no-icon):not(.modern)::before {
  color: #777;
}
.note.primary.flat {
  background: #f5f0fa;
}
.note.primary.modern {
  border-color: #e1c2ff;
  background: #f3daff;
  color: #6f42c1;
}
.note.primary.modern a:not(.btn) {
  color: #6f42c1;
}
.note.primary.modern a:not(.btn):hover {
  color: #453298;
}
.note.primary:not(.modern) {
  border-left-color: #6f42c1;
}
.note.primary:not(.modern) h2,
.note.primary:not(.modern) h3,
.note.primary:not(.modern) h4,
.note.primary:not(.modern) h5,
.note.primary:not(.modern) h6 {
  color: #6f42c1;
}
.note.primary:not(.no-icon)::before {
  content: '\f055';
}
.note.primary:not(.no-icon):not(.modern)::before {
  color: #6f42c1;
}
.note.info.flat {
  background: #eef7fa;
}
.note.info.modern {
  border-color: #b3e5ef;
  background: #d9edf7;
  color: #31708f;
}
.note.info.modern a:not(.btn) {
  color: #31708f;
}
.note.info.modern a:not(.btn):hover {
  color: #215761;
}
.note.info:not(.modern) {
  border-left-color: #428bca;
}
.note.info:not(.modern) h2,
.note.info:not(.modern) h3,
.note.info:not(.modern) h4,
.note.info:not(.modern) h5,
.note.info:not(.modern) h6 {
  color: #428bca;
}
.note.info:not(.no-icon)::before {
  content: '\f05a';
}
.note.info:not(.no-icon):not(.modern)::before {
  color: #428bca;
}
.note.success.flat {
  background: #eff8f0;
}
.note.success.modern {
  border-color: #d0e6be;
  background: #dff0d8;
  color: #3c763d;
}
.note.success.modern a:not(.btn) {
  color: #3c763d;
}
.note.success.modern a:not(.btn):hover {
  color: #32562c;
}
.note.success:not(.modern) {
  border-left-color: #5cb85c;
}
.note.success:not(.modern) h2,
.note.success:not(.modern) h3,
.note.success:not(.modern) h4,
.note.success:not(.modern) h5,
.note.success:not(.modern) h6 {
  color: #5cb85c;
}
.note.success:not(.no-icon)::before {
  content: '\f058';
}
.note.success:not(.no-icon):not(.modern)::before {
  color: #5cb85c;
}
.note.warning.flat {
  background: #fdf8ea;
}
.note.warning.modern {
  border-color: #fae4cd;
  background: #fcf4e3;
  color: #8a6d3b;
}
.note.warning.modern a:not(.btn) {
  color: #8a6d3b;
}
.note.warning.modern a:not(.btn):hover {
  color: #714f30;
}
.note.warning:not(.modern) {
  border-left-color: #f0ad4e;
}
.note.warning:not(.modern) h2,
.note.warning:not(.modern) h3,
.note.warning:not(.modern) h4,
.note.warning:not(.modern) h5,
.note.warning:not(.modern) h6 {
  color: #f0ad4e;
}
.note.warning:not(.no-icon)::before {
  content: '\f06a';
}
.note.warning:not(.no-icon):not(.modern)::before {
  color: #f0ad4e;
}
.note.danger.flat {
  background: #fcf1f2;
}
.note.danger.modern {
  border-color: #ebcdd2;
  background: #f2dfdf;
  color: #a94442;
}
.note.danger.modern a:not(.btn) {
  color: #a94442;
}
.note.danger.modern a:not(.btn):hover {
  color: #84333f;
}
.note.danger:not(.modern) {
  border-left-color: #d9534f;
}
.note.danger:not(.modern) h2,
.note.danger:not(.modern) h3,
.note.danger:not(.modern) h4,
.note.danger:not(.modern) h5,
.note.danger:not(.modern) h6 {
  color: #d9534f;
}
.note.danger:not(.no-icon)::before {
  content: '\f056';
}
.note.danger:not(.no-icon):not(.modern)::before {
  color: #d9534f;
}
.container .series-items a:hover {
  color: var(--pseudo-hover);
}
.container .tabs {
  position: relative;
  margin: 0 0 20px;
  border-right: 1px solid var(--tab-border-color);
  border-bottom: 1px solid var(--tab-border-color);
  border-left: 1px solid var(--tab-border-color);
  border-radius: 6px;
  overflow: hidden;
}
.container .tabs > .nav-tabs {
  display: -webkit-box;
  display: -moz-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: box;
  display: flex;
  -webkit-box-lines: multiple;
  -moz-box-lines: multiple;
  -o-box-lines: multiple;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  margin: 0;
  padding: 0;
  background: var(--tab-button-bg);
}
.container .tabs > .nav-tabs > .tab {
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  -o-box-flex: 1;
  -ms-box-flex: 1;
  box-flex: 1;
  -webkit-flex-grow: 1;
  flex-grow: 1;
  padding: 8px 18px;
  border-top: 2px solid var(--tab-border-color);
  background: var(--tab-button-bg);
  color: var(--tab-button-color);
  line-height: 2;
  -webkit-transition: all 0.4s;
  -moz-transition: all 0.4s;
  -o-transition: all 0.4s;
  -ms-transition: all 0.4s;
  transition: all 0.4s;
}
.container .tabs > .nav-tabs > .tab i {
  width: 1.5em;
}
.container .tabs > .nav-tabs > .tab.active {
  border-top: 2px solid #49b1f5;
  background: var(--tab-button-active-bg);
  cursor: default;
}
.container .tabs > .nav-tabs > .tab:not(.active):hover {
  border-top: 2px solid var(--tab-button-hover-bg);
  background: var(--tab-button-hover-bg);
}
.container .tabs > .nav-tabs.no-default ~ .tab-to-top {
  display: none;
}
.container .tabs > .tab-contents .tab-item-content {
  position: relative;
  display: none;
  padding: 36px 24px 10px;
}
@media screen and (max-width: 768px) {
  .container .tabs > .tab-contents .tab-item-content {
    padding: 24px 14px;
  }
}
.container .tabs > .tab-contents .tab-item-content.active {
  display: block;
  -webkit-animation: tabshow 0.5s;
  -moz-animation: tabshow 0.5s;
  -o-animation: tabshow 0.5s;
  -ms-animation: tabshow 0.5s;
  animation: tabshow 0.5s;
}
.container .tabs > .tab-contents .tab-item-content > :last-child {
  margin-bottom: 0;
}
.container .tabs > .tab-to-top {
  padding: 0 16px 10px 0;
  width: 100%;
  text-align: right;
}
.container .tabs > .tab-to-top button {
  color: #99a9bf;
}
.container .tabs > .tab-to-top button:hover {
  color: #49b1f5;
}
@-moz-keyframes tabshow {
  0% {
    -webkit-transform: translateY(15px);
    -moz-transform: translateY(15px);
    -o-transform: translateY(15px);
    -ms-transform: translateY(15px);
    transform: translateY(15px);
  }
  100% {
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -o-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
@-webkit-keyframes tabshow {
  0% {
    -webkit-transform: translateY(15px);
    -moz-transform: translateY(15px);
    -o-transform: translateY(15px);
    -ms-transform: translateY(15px);
    transform: translateY(15px);
  }
  100% {
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -o-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
@-o-keyframes tabshow {
  0% {
    -webkit-transform: translateY(15px);
    -moz-transform: translateY(15px);
    -o-transform: translateY(15px);
    -ms-transform: translateY(15px);
    transform: translateY(15px);
  }
  100% {
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -o-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
@keyframes tabshow {
  0% {
    -webkit-transform: translateY(15px);
    -moz-transform: translateY(15px);
    -o-transform: translateY(15px);
    -ms-transform: translateY(15px);
    transform: translateY(15px);
  }
  100% {
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -o-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
.container .timeline {
  margin: 0 10px 20px;
  padding: 14px 0 5px 20px;
  border-left: 2px solid var(--timeline-color, #49b1f5);
}
.container .timeline.blue {
  --timeline-color: #428bca;
  --timeline-bg: rgba(66,139,202, 0.2);
}
.container .timeline.pink {
  --timeline-color: #ff69b4;
  --timeline-bg: rgba(255,105,180, 0.2);
}
.container .timeline.red {
  --timeline-color: #f00;
  --timeline-bg: rgba(255,0,0, 0.2);
}
.container .timeline.purple {
  --timeline-color: #6f42c1;
  --timeline-bg: rgba(111,66,193, 0.2);
}
.container .timeline.orange {
  --timeline-color: #ff8c00;
  --timeline-bg: rgba(255,140,0, 0.2);
}
.container .timeline.green {
  --timeline-color: #5cb85c;
  --timeline-bg: rgba(92,184,92, 0.2);
}
.container .timeline .timeline-item {
  margin: 0 0 15px;
}
.container .timeline .timeline-item:hover .item-circle:before {
  border-color: var(--timeline-color, #49b1f5);
}
.container .timeline .timeline-item.headline .timeline-item-title .item-circle > p {
  font-weight: 600;
  font-size: 1.2em;
}
.container .timeline .timeline-item.headline .timeline-item-title .item-circle:before {
  left: -28px;
  border: 4px solid var(--timeline-color, #49b1f5);
}
.container .timeline .timeline-item.headline:hover .item-circle:before {
  border-color: var(--pseudo-hover);
}
.container .timeline .timeline-item .timeline-item-title {
  position: relative;
}
.container .timeline .timeline-item .item-circle:before {
  position: absolute;
  top: 50%;
  left: -27px;
  width: 6px;
  height: 6px;
  border: 3px solid var(--pseudo-hover);
  border-radius: 50%;
  background: var(--card-bg);
  content: '';
  -webkit-transition: all 0.3s;
  -moz-transition: all 0.3s;
  -o-transition: all 0.3s;
  -ms-transition: all 0.3s;
  transition: all 0.3s;
  -webkit-transform: translate(0, -50%);
  -moz-transform: translate(0, -50%);
  -o-transform: translate(0, -50%);
  -ms-transform: translate(0, -50%);
  transform: translate(0, -50%);
}
.container .timeline .timeline-item .item-circle > p {
  margin: 0 0 8px;
  font-weight: 500;
}
.container .timeline .timeline-item .timeline-item-content {
  position: relative;
  padding: 12px 15px;
  border-radius: 8px;
  background: var(--timeline-bg, #e4f3fd);
  font-size: 0.93em;
}
.container .timeline .timeline-item .timeline-item-content > :last-child {
  margin-bottom: 0;
}
.container .timeline + .timeline {
  margin-top: -20px;
}
[data-theme='dark'] {
  --global-bg: #0d0d0d;
  --font-color: rgba(255,255,255,0.7);
  --hr-border: rgba(255,255,255,0.4);
  --hr-before-color: rgba(255,255,255,0.7);
  --search-bg: #121212;
  --search-input-color: rgba(255,255,255,0.7);
  --search-a-color: rgba(255,255,255,0.7);
  --preloader-bg: #0d0d0d;
  --preloader-color: rgba(255,255,255,0.7);
  --tab-border-color: #2c2c2c;
  --tab-button-bg: #2c2c2c;
  --tab-button-color: rgba(255,255,255,0.7);
  --tab-button-hover-bg: #383838;
  --tab-button-active-bg: #121212;
  --card-bg: #121212;
  --sidebar-bg: #121212;
  --sidebar-menu-bg: #1f1f1f;
  --btn-hover-color: #787878;
  --btn-color: rgba(255,255,255,0.7);
  --btn-bg: #1f1f1f;
  --text-bg-hover: #383838;
  --light-grey: rgba(255,255,255,0.7);
  --dark-grey: rgba(255,255,255,0.2);
  --white: rgba(255,255,255,0.9);
  --text-highlight-color: rgba(255,255,255,0.9);
  --blockquote-color: rgba(255,255,255,0.7);
  --blockquote-bg: #2c2c2c;
  --reward-pop: #2c2c2c;
  --toc-link-color: rgba(255,255,255,0.6);
  --scrollbar-color: #525252;
  --timeline-bg: #1f1f1f;
  --zoom-bg: #121212;
  --mark-bg: rgba(0,0,0,0.6);
}
[data-theme='dark'] #web_bg:before {
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: rgba(0,0,0,0.7);
  content: '';
}
[data-theme='dark'] .container code {
  background: #2c2c2c;
}
[data-theme='dark'] .container pre > code {
  background: #171717;
}
[data-theme='dark'] .container figure.highlight {
  -webkit-box-shadow: none;
  box-shadow: none;
}
[data-theme='dark'] .container .note code {
  background: rgba(27,31,35,0.05);
}
[data-theme='dark'] .container .aplayer {
  filter: brightness(0.8);
}
[data-theme='dark'] .container kbd {
  border-color: #696969;
  background-color: #525252;
  color: #e2f1ff;
}
[data-theme='dark'] #page-header.nav-fixed > #nav,
[data-theme='dark'] #page-header.not-top-img > #nav {
  background: rgba(18,18,18,0.8);
  -webkit-box-shadow: 0 5px 6px -5px rgba(133,133,133,0);
  box-shadow: 0 5px 6px -5px rgba(133,133,133,0);
}
[data-theme='dark'] #post-comment .comment-switch {
  background: #2c2c2c !important;
}
[data-theme='dark'] #post-comment .comment-switch #switch-btn {
  filter: brightness(0.8);
}
[data-theme='dark'] .note {
  filter: brightness(0.8);
}
[data-theme='dark'] .hide-button,
[data-theme='dark'] .btn-beautify,
[data-theme='dark'] .hl-label,
[data-theme='dark'] #post-outdate-notice,
[data-theme='dark'] .error-img,
[data-theme='dark'] .container iframe,
[data-theme='dark'] .gist,
[data-theme='dark'] .ads-wrap {
  filter: brightness(0.8);
}
[data-theme='dark'] img {
  filter: brightness(0.8);
}
[data-theme='dark'] #aside-content .aside-list > .aside-list-item:not(:last-child) {
  border-bottom: 1px dashed rgba(255,255,255,0.1);
}
[data-theme='dark'] #gitalk-container {
  filter: brightness(0.8);
}
[data-theme='dark'] #gitalk-container svg {
  fill: rgba(255,255,255,0.9) !important;
}
[data-theme='dark'] #disqusjs #dsqjs:hover,
[data-theme='dark'] #disqusjs #dsqjs:focus,
[data-theme='dark'] #disqusjs #dsqjs .dsqjs-tab-active,
[data-theme='dark'] #disqusjs #dsqjs .dsqjs-no-comment {
  color: rgba(255,255,255,0.7);
}
[data-theme='dark'] #disqusjs #dsqjs .dsqjs-order-label {
  background-color: #1f1f1f;
}
[data-theme='dark'] #disqusjs #dsqjs .dsqjs-post-body {
  color: rgba(255,255,255,0.7);
}
[data-theme='dark'] #disqusjs #dsqjs .dsqjs-post-body code,
[data-theme='dark'] #disqusjs #dsqjs .dsqjs-post-body pre {
  background: #2c2c2c;
}
[data-theme='dark'] #disqusjs #dsqjs .dsqjs-post-body blockquote {
  color: rgba(255,255,255,0.7);
}
[data-theme='dark'] #artitalk_main #lazy {
  background: #121212;
}
[data-theme='dark'] #operare_artitalk .c2 {
  background: #121212;
}
@media screen and (max-width: 900px) {
  [data-theme='dark'] #card-toc {
    background: #1f1f1f;
  }
}
[data-theme='dark'] .artalk.atk-dark-mode,
[data-theme='dark'] .atk-layer-wrap.atk-dark-mode {
  --at-color-font: rgba(255,255,255,0.7);
  --at-color-meta: rgba(255,255,255,0.7);
  --at-color-grey: rgba(255,255,255,0.7);
}
[data-theme='dark'] .atk-send-btn,
[data-theme='dark'] .atk-badge {
  color: rgba(255,255,255,0.7) !important;
}
[data-theme='dark'] #waline-wrap {
  --waline-color: rgba(255,255,255,0.7);
  --waline-dark-grey: rgba(255,255,255,0.7);
  --waline-info-color: rgba(255,255,255,0.5);
}
.read-mode {
  --font-color: #4c4948;
  --readmode-light-color: #fff;
  --white: #4c4948;
  --light-grey: #4c4948;
  --gray: #d6dbdf;
  --hr-border: #d6dbdf;
  --hr-before-color: #b9c2c9;
  --highlight-bg: #f7f7f7;
  --exit-btn-bg: #c0c0c0;
  --exit-btn-color: #fff;
  --exit-btn-hover: #8d8d8d;
  --pseudo-hover: none;
}
[data-theme='dark'] .read-mode {
  --font-color: rgba(255,255,255,0.7);
  --readmode-light-color: #0d0d0d;
  --white: rgba(255,255,255,0.9);
  --light-grey: rgba(255,255,255,0.7);
  --gray: rgba(255,255,255,0.7);
  --hr-border: rgba(255,255,255,0.5);
  --hr-before-color: rgba(255,255,255,0.7);
  --highlight-bg: #171717;
  --exit-btn-bg: #1f1f1f;
  --exit-btn-color: rgba(255,255,255,0.9);
  --exit-btn-hover: #525252;
}
.read-mode {
  background: var(--readmode-light-color);
}
.read-mode .exit-readmode {
  position: fixed;
  top: 30px;
  right: 30px;
  z-index: 100;
  width: 40px;
  height: 40px;
  background: var(--exit-btn-bg);
  color: var(--exit-btn-color);
  font-size: 16px;
  -webkit-transition: background 0.3s;
  -moz-transition: background 0.3s;
  -o-transition: background 0.3s;
  -ms-transition: background 0.3s;
  transition: background 0.3s;
  border-radius: 8px;
}
@media screen and (max-width: 768px) {
  .read-mode .exit-readmode {
    top: initial;
    bottom: 30px;
  }
}
.read-mode .exit-readmode:hover {
  background: var(--exit-btn-hover);
}
.read-mode #aside-content {
  display: none;
}
.read-mode #page-header.post-bg {
  background: none !important;
}
.read-mode #page-header.post-bg:before {
  opacity: 0;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  filter: alpha(opacity=0);
}
.read-mode #page-header.post-bg > #post-info {
  text-align: center;
}
.read-mode #post {
  margin: 0 auto;
  background: transparent;
  -webkit-box-shadow: none;
  box-shadow: none;
}
.read-mode #post:hover {
  -webkit-box-shadow: none;
  box-shadow: none;
}
.read-mode > canvas {
  display: none !important;
}
.read-mode .highlight-tools,
.read-mode #footer,
.read-mode #post > *:not(#post-info):not(.post-content),
.read-mode #nav,
.read-mode #post-outdate-notice,
.read-mode #web_bg,
.read-mode #rightside,
.read-mode .not-top-img {
  display: none !important;
}
.read-mode .container a {
  color: #99a9bf;
}
.read-mode .container pre,
.read-mode .container .highlight:not(.js-file-line-container) {
  background: var(--highlight-bg) !important;
}
.read-mode .container pre *,
.read-mode .container .highlight:not(.js-file-line-container) * {
  color: var(--font-color) !important;
}
.read-mode .container figure.highlight {
  border-radius: 0 !important;
  -webkit-box-shadow: none !important;
  box-shadow: none !important;
}
.read-mode .container figure.highlight > :not(.highlight-tools) {
  display: block !important;
}
.read-mode .container figure.highlight .line:before {
  color: var(--font-color) !important;
}
.read-mode .container figure.highlight .hljs {
  background: var(--highlight-bg) !important;
}
.read-mode .container h1,
.read-mode .container h2,
.read-mode .container h3,
.read-mode .container h4,
.read-mode .container h5,
.read-mode .container h6 {
  padding: 0;
}
.read-mode .container h1:before,
.read-mode .container h2:before,
.read-mode .container h3:before,
.read-mode .container h4:before,
.read-mode .container h5:before,
.read-mode .container h6:before {
  content: '';
}
.read-mode .container h1:hover,
.read-mode .container h2:hover,
.read-mode .container h3:hover,
.read-mode .container h4:hover,
.read-mode .container h5:hover,
.read-mode .container h6:hover {
  padding: 0;
}
.read-mode .container ul:hover:before,
.read-mode .container li:hover:before,
.read-mode .container ol:hover:before {
  -webkit-transform: none !important;
  -moz-transform: none !important;
  -o-transform: none !important;
  -ms-transform: none !important;
  transform: none !important;
}
.read-mode .container ol:before,
.read-mode .container li:before {
  background: transparent !important;
  color: var(--font-color) !important;
}
.read-mode .container ul >li:before {
  border-color: var(--gray) !important;
}
.read-mode .container .tabs {
  border: 2px solid var(--tab-border-color);
}
.read-mode .container .tabs > .nav-tabs {
  background: transparent;
}
.read-mode .container .tabs > .nav-tabs > .tab {
  border-top: none !important;
}
.read-mode .container .tabs > .tab-contents .tab-item-content.active {
  -webkit-animation: none;
  -moz-animation: none;
  -o-animation: none;
  -ms-animation: none;
  animation: none;
}
.read-mode .container code {
  color: var(--font-color);
}
.read-mode .container blockquote {
  border-color: var(--gray);
  background-color: var(--readmode-light-color);
}
.read-mode .container kbd {
  border: 1px solid var(--gray);
  background-color: transparent;
  -webkit-box-shadow: none;
  box-shadow: none;
  color: var(--font-color);
}
.read-mode .container .hide-toggle {
  border: 1px solid var(--gray) !important;
}
.read-mode .container .hide-button,
.read-mode .container .btn-beautify,
.read-mode .container .hl-label {
  border: 1px solid var(--gray) !important;
  background: var(--readmode-light-color) !important;
  color: var(--font-color) !important;
}
.read-mode .container .note {
  border: 2px solid var(--gray);
  border-left-color: var(--gray) !important;
  filter: none;
  background-color: var(--readmode-light-color) !important;
  color: var(--font-color);
}
.read-mode .container .note:before,
.read-mode .container .note .note-icon {
  color: var(--font-color);
}
.search-dialog {
  position: fixed;
  top: 10%;
  left: 50%;
  z-index: 1001;
  display: none;
  margin-left: -300px;
  padding: 20px;
  width: 600px;
  background: var(--search-bg);
  --search-height: 100vh;
  border-radius: 8px;
}
@media screen and (max-width: 768px) {
  .search-dialog {
    top: 0;
    left: 0;
    margin: 0;
    width: 100%;
    height: 100%;
    border-radius: 0;
  }
}
.search-dialog .search-nav {
  margin: 0 0 14px;
  color: #49b1f5;
  font-size: 1.4em;
  line-height: 1;
}
.search-dialog .search-nav .search-dialog-title {
  margin-right: 10px;
}
.search-dialog .search-nav .search-close-button {
  float: right;
  color: #858585;
  -webkit-transition: color 0.2s ease-in-out;
  -moz-transition: color 0.2s ease-in-out;
  -o-transition: color 0.2s ease-in-out;
  -ms-transition: color 0.2s ease-in-out;
  transition: color 0.2s ease-in-out;
}
.search-dialog .search-nav .search-close-button:hover {
  color: #49b1f5;
}
.search-dialog hr {
  margin: 15px auto;
}
#search-mask {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1000;
  display: none;
  background: rgba(0,0,0,0.6);
}
#local-search .search-dialog .local-search-box {
  margin: 0 auto;
  max-width: 100%;
  width: 100%;
}
#local-search .search-dialog .local-search-box input {
  padding: 5px 14px;
  width: 100%;
  outline: none;
  border: 2px solid #49b1f5;
  border-radius: 40px;
  background: var(--search-bg);
  color: var(--search-input-color);
  -webkit-appearance: none;
}
#local-search .search-dialog .search-wrap {
  display: none;
}
#local-search .search-dialog .local-search-hit-item {
  margin-left: 24px;
  padding-left: 3px;
  line-height: 1.8;
}
#local-search .search-dialog .local-search-hit-item::marker {
  color: #49b1f5;
  font-weight: bold;
  font-style: italic;
}
#local-search .search-dialog .local-search-hit-item a {
  color: var(--search-a-color);
}
#local-search .search-dialog .local-search-hit-item a:hover {
  color: #49b1f5;
}
#local-search .search-dialog .local-search-hit-item .search-result-title {
  font-weight: 600;
}
#local-search .search-dialog .local-search-hit-item .search-result {
  margin: 0 0 8px;
  word-break: break-all;
  font-size: 0.9em;
}
#local-search .search-dialog .search-result-list {
  overflow-y: overlay;
  margin: 0 -20px;
  padding: 0 22px;
  max-height: calc(80vh - 180px);
}
@media screen and (max-width: 768px) {
  #local-search .search-dialog .search-result-list {
    max-height: calc(var(--search-height) - 190px) !important;
  }
}
.search-keyword {
  background: transparent;
  color: #f47466;
  font-weight: 600;
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRoZW1lcy9idXR0ZXJmbHkvc291cmNlL2Nzcy9fdGhpcmQtcGFydHkvbm9ybWFsaXplLm1pbi5jc3MiLCJ0aGVtZXMvYnV0dGVyZmx5L3NvdXJjZS9jc3MvX2dsb2JhbC9mdW5jdGlvbi5zdHlsIiwidGhlbWVzL2J1dHRlcmZseS9zb3VyY2UvY3NzL19zZWFyY2gvbG9jYWwtc2VhcmNoLnN0eWwiLCJub2RlX21vZHVsZXMvbmliL2xpYi9uaWIvb3ZlcmZsb3cuc3R5bCIsIm5vZGVfbW9kdWxlcy9uaWIvbGliL25pYi92ZW5kb3Iuc3R5bCIsIm5vZGVfbW9kdWxlcy9uaWIvbGliL25pYi9mbGV4LnN0eWwiLCJub2RlX21vZHVsZXMvbmliL2xpYi9uaWIvYm9yZGVyLXJhZGl1cy5zdHlsIiwibm9kZV9tb2R1bGVzL25pYi9saWIvbmliL2JvcmRlci5zdHlsIiwidGhlbWVzL2J1dHRlcmZseS9zb3VyY2UvY3NzL19nbG9iYWwvaW5kZXguc3R5bCIsInRoZW1lcy9idXR0ZXJmbHkvc291cmNlL2Nzcy9faGlnaGxpZ2h0L2hpZ2hsaWdodC5zdHlsIiwidGhlbWVzL2J1dHRlcmZseS9zb3VyY2UvY3NzL19oaWdobGlnaHQvaGlnaGxpZ2h0L2RpZmYuc3R5bCIsInRoZW1lcy9idXR0ZXJmbHkvc291cmNlL2Nzcy9faGlnaGxpZ2h0L2hpZ2hsaWdodC9pbmRleC5zdHlsIiwibm9kZV9tb2R1bGVzL3N0eWx1cy9saWIvZnVuY3Rpb25zL2luZGV4LnN0eWwiLCJ0aGVtZXMvYnV0dGVyZmx5L3NvdXJjZS9jc3MvX3BhZ2UvNDA0LnN0eWwiLCJ0aGVtZXMvYnV0dGVyZmx5L3NvdXJjZS9jc3MvX3BhZ2UvYXJjaGl2ZXMuc3R5bCIsInRoZW1lcy9idXR0ZXJmbHkvc291cmNlL2Nzcy9fcGFnZS9jYXRlZ29yaWVzLnN0eWwiLCJ0aGVtZXMvYnV0dGVyZmx5L3NvdXJjZS9jc3MvX3BhZ2UvY29tbW9uLnN0eWwiLCJ0aGVtZXMvYnV0dGVyZmx5L3NvdXJjZS9jc3MvX3BhZ2UvZmxpbmsuc3R5bCIsInRoZW1lcy9idXR0ZXJmbHkvc291cmNlL2Nzcy9fcGFnZS9ob21lcGFnZS5zdHlsIiwidGhlbWVzL2J1dHRlcmZseS9zb3VyY2UvY3NzL19wYWdlL3NodW9zaHVvLnN0eWwiLCJ0aGVtZXMvYnV0dGVyZmx5L3NvdXJjZS9jc3MvX3BhZ2UvdGFncy5zdHlsIiwidGhlbWVzL2J1dHRlcmZseS9zb3VyY2UvY3NzL19sYXlvdXQvYXNpZGUuc3R5bCIsInRoZW1lcy9idXR0ZXJmbHkvc291cmNlL2Nzcy9fbGF5b3V0L2NvbW1lbnRzLnN0eWwiLCJ0aGVtZXMvYnV0dGVyZmx5L3NvdXJjZS9jc3MvX2xheW91dC9mb290ZXIuc3R5bCIsInRoZW1lcy9idXR0ZXJmbHkvc291cmNlL2Nzcy9fbGF5b3V0L2hlYWQuc3R5bCIsInRoZW1lcy9idXR0ZXJmbHkvc291cmNlL2Nzcy9fbGF5b3V0L3BhZ2luYXRpb24uc3R5bCIsInRoZW1lcy9idXR0ZXJmbHkvc291cmNlL2Nzcy9fbGF5b3V0L3Bvc3Quc3R5bCIsInRoZW1lcy9idXR0ZXJmbHkvc291cmNlL2Nzcy9fbGF5b3V0L3JlbGF0ZWRwb3N0cy5zdHlsIiwidGhlbWVzL2J1dHRlcmZseS9zb3VyY2UvY3NzL19sYXlvdXQvcmV3YXJkLnN0eWwiLCJ0aGVtZXMvYnV0dGVyZmx5L3NvdXJjZS9jc3MvX2xheW91dC9yaWdodHNpZGUuc3R5bCIsInRoZW1lcy9idXR0ZXJmbHkvc291cmNlL2Nzcy9fbGF5b3V0L3NpZGViYXIuc3R5bCIsInRoZW1lcy9idXR0ZXJmbHkvc291cmNlL2Nzcy9fbGF5b3V0L3RoaXJkLXBhcnR5LnN0eWwiLCJ0aGVtZXMvYnV0dGVyZmx5L3NvdXJjZS9jc3MvX3RhZ3MvYnV0dG9uLnN0eWwiLCJ0aGVtZXMvYnV0dGVyZmx5L3NvdXJjZS9jc3MvX3RhZ3MvZ2FsbGVyeS5zdHlsIiwidGhlbWVzL2J1dHRlcmZseS9zb3VyY2UvY3NzL190YWdzL2hleG8uc3R5bCIsInRoZW1lcy9idXR0ZXJmbHkvc291cmNlL2Nzcy9fdGFncy9oaWRlLnN0eWwiLCJ0aGVtZXMvYnV0dGVyZmx5L3NvdXJjZS9jc3MvX3RhZ3MvaW5saW5lSW1nLnN0eWwiLCJ0aGVtZXMvYnV0dGVyZmx5L3NvdXJjZS9jc3MvX3RhZ3MvbGFiZWwuc3R5bCIsInRoZW1lcy9idXR0ZXJmbHkvc291cmNlL2Nzcy9fdGFncy9ub3RlLnN0eWwiLCJ0aGVtZXMvYnV0dGVyZmx5L3NvdXJjZS9jc3MvX3RhZ3Mvc2VyaWVzLnN0eWwiLCJ0aGVtZXMvYnV0dGVyZmx5L3NvdXJjZS9jc3MvX3RhZ3MvdGFicy5zdHlsIiwidGhlbWVzL2J1dHRlcmZseS9zb3VyY2UvY3NzL190YWdzL3RpbWVsaW5lLnN0eWwiLCJ0aGVtZXMvYnV0dGVyZmx5L3NvdXJjZS9jc3MvX21vZGUvZGFya21vZGUuc3R5bCIsInRoZW1lcy9idXR0ZXJmbHkvc291cmNlL2Nzcy9fbW9kZS9yZWFkbW9kZS5zdHlsIiwidGhlbWVzL2J1dHRlcmZseS9zb3VyY2UvY3NzL19zZWFyY2gvaW5kZXguc3R5bCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0U7QUFDQTtBQUNGO0FBQ0E7QUFDQTtBQUNFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0U7QUFDRjtBQUNBO0FBQ0E7QUFDRTtBQUNBO0FBQ0Y7QUFDQTtBQUNBO0FBQ0U7QUFDQTtBQUNBO0FBQ0Y7QUFDQTtBQUNBO0FBQ0U7QUFDQTtBQUNGO0FBQ0E7QUFDQTtBQUNFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0U7QUFDQTtBQUNBO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDRTtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRTtBQUNBO0FBQ0Y7QUFDQTtBQUNBO0FBQ0U7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0Y7QUFDQTtBQUNBO0FBQ0U7QUFDRjtBQUNBO0FBQ0E7QUFDRTtBQUNGO0FBQ0E7QUFDQTtBQUNFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRTtBQUNBO0FBQ0E7QUFDQTtB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QUFPLHNCQUFQOztBQUVBO0VBQ0UsT0FBTyxRQUFQOztBQUVKO0VBQ0UsYUFBYSxJQUFiOztBQUVGO0VBQ0UsUUFBUSxRQUFSO0VBQ0EsWUFBWSxVQUFaO0VBQ0EsV0FBVyxNQUFYOztBQUVKO0VBQ0UsWUFBWSxRQUFaO0VBQ0EsUUFBUSxRQUFSO0VBQ0EsU0FBUyxPQUFUO0VBQ0EsWUFBWSxtQkFBWjs7QURtRStCO0FBQUE7SUNoRTdCLFlBQVksOENBQVo7OztBQUVSO0VFc2JJLFlBQVcsWUFBWDtFRnBiRixPQUFPLFFBQVA7RUFDQSxhQUFhLElBQWIiLCJmaWxlIjoiaW5kZXguY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCVcbn1cblxuYm9keSB7XG4gIG1hcmdpbjogMFxufVxuXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2tcbn1cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAuNjdlbSAwXG59XG5cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IHZpc2libGVcbn1cblxucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbVxufVxuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRcbn1cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkXG59XG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyXG59XG5cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbVxufVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlXG59XG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmVcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtLjI1ZW1cbn1cblxuc3VwIHtcbiAgdG9wOiAtLjVlbVxufVxuXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmVcbn1cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIG1hcmdpbjogMFxufVxuXG5idXR0b24sXG5pbnB1dCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlXG59XG5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lXG59XG5cblt0eXBlPWJ1dHRvbl0sXG5bdHlwZT1yZXNldF0sXG5bdHlwZT1zdWJtaXRdLFxuYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b25cbn1cblxuW3R5cGU9YnV0dG9uXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPXJlc2V0XTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPXN1Ym1pdF06Oi1tb3otZm9jdXMtaW5uZXIsXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDBcbn1cblxuW3R5cGU9YnV0dG9uXTotbW96LWZvY3VzcmluZyxcblt0eXBlPXJlc2V0XTotbW96LWZvY3VzcmluZyxcblt0eXBlPXN1Ym1pdF06LW1vei1mb2N1c3JpbmcsXG5idXR0b246LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHRcbn1cblxuZmllbGRzZXQge1xuICBwYWRkaW5nOiAuMzVlbSAuNzVlbSAuNjI1ZW1cbn1cblxubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWxcbn1cblxucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmVcbn1cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0b1xufVxuXG5bdHlwZT1jaGVja2JveF0sXG5bdHlwZT1yYWRpb10ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAwXG59XG5cblt0eXBlPW51bWJlcl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1udW1iZXJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvXG59XG5cblt0eXBlPXNlYXJjaF0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHhcbn1cblxuW3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZVxufVxuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIGZvbnQ6IGluaGVyaXRcbn1cblxuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrXG59XG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW1cbn1cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lXG59XG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZVxufSIsIi5saW1pdC1vbmUtbGluZVxuICBvdmVyZmxvdzogaGlkZGVuXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzXG4gIHdoaXRlLXNwYWNlOiBub3dyYXBcblxuLmxpbWl0LW1vcmUtbGluZVxuICBkaXNwbGF5OiAtd2Via2l0LWJveFxuICBvdmVyZmxvdzogaGlkZGVuXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWxcblxuLmZvbnRhd2Vzb21lSWNvblxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcbiAgZm9udC13ZWlnaHQ6IDYwMFxuICBmb250LWZhbWlseTogJ0ZvbnQgQXdlc29tZSA3IEZyZWUnLCAnRm9udCBBd2Vzb21lIDYgRnJlZSdcbiAgdGV4dC1yZW5kZXJpbmc6IGF1dG9cbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWRcblxuYWRkQm9yZGVyUmFkaXVzKHggPSA2LCBoaWRlID0gZmFsc2UpXG4gIGlmIGhleG8tY29uZmlnKCdyb3VuZGVkX2Nvcm5lcnNfdWknKVxuICAgIGJvcmRlci1yYWRpdXM6IHVuaXQoeCwgJ3B4JylcblxuICAgIGlmIGhpZGVcbiAgICAgIG92ZXJmbG93OiBoaWRkZW5cblxuLy8gY2FyZCBob3ZlclxuLmNhcmRIb3ZlclxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWJnKVxuICBib3gtc2hhZG93OiB2YXIoLS1jYXJkLWJveC1zaGFkb3cpXG4gIHRyYW5zaXRpb246IGFsbCAuM3NcbiAgYWRkQm9yZGVyUmFkaXVzKDgpXG5cbiAgJjpob3ZlclxuICAgIGJveC1zaGFkb3c6IHZhcigtLWNhcmQtaG92ZXItYm94LXNoYWRvdylcblxuLmltZ0hvdmVyXG4gIHdpZHRoOiAxMDAlXG4gIGhlaWdodDogMTAwJVxuICB0cmFuc2l0aW9uOiBmaWx0ZXIgMzc1bXMgZWFzZS1pbiAuMnMsIHRyYW5zZm9ybSAuNnNcbiAgb2JqZWN0LWZpdDogY292ZXJcblxuICAmOmhvdmVyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpXG5cbi5wb3N0SW1nSG92ZXJcbiAgJjpob3ZlclxuICAgIC5jb3ZlclxuICAgICAgb3BhY2l0eTogLjVcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKVxuXG4gIC5jb3ZlclxuICAgIHdpZHRoOiAxMDAlXG4gICAgaGVpZ2h0OiAxMDAlXG4gICAgb3BhY2l0eTogLjRcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjZzLCBmaWx0ZXIgMzc1bXMgZWFzZS1pbiAuMnNcbiAgICBvYmplY3QtZml0OiBjb3ZlclxuXG4ubGlzdC1iZWF1dHlcbiAgbGlzdC1zdHlsZTogbm9uZVxuXG4gIGxpXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXG4gICAgcGFkZGluZzogLjEyZW0gLjRlbSAuMTJlbSAxLjRlbVxuXG4gICAgJjpob3ZlclxuICAgICAgJjpiZWZvcmVcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wc2V1ZG8taG92ZXIpXG5cbiAgICAmOmJlZm9yZVxuICAgICAgcG9zaXRpb246IGFic29sdXRlXG4gICAgICB0b3A6IC42N2VtXG4gICAgICBsZWZ0OiAwXG4gICAgICB3aWR0aDogdyA9IC40M2VtXG4gICAgICBoZWlnaHQ6IGggPSB3XG4gICAgICBib3JkZXI6IC41ICogdyBzb2xpZCAkbGlnaHQtYmx1ZVxuICAgICAgYm9yZGVyLXJhZGl1czogd1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnRcbiAgICAgIGNvbnRlbnQ6ICcnXG4gICAgICBjdXJzb3I6IHBvaW50ZXJcbiAgICAgIHRyYW5zaXRpb246IGFsbCAuM3MgZWFzZS1vdXRcblxuLmN1c3RvbS1oclxuICBwb3NpdGlvbjogcmVsYXRpdmVcbiAgbWFyZ2luOiA0MHB4IGF1dG9cbiAgYm9yZGVyOiAycHggZGFzaGVkIHZhcigtLWhyLWJvcmRlcilcblxuICBpZiBoZXhvLWNvbmZpZygnaHJfaWNvbi5lbmFibGUnKVxuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA0cHgpXG5cbiAgICAmOmhvdmVyXG4gICAgICAmOmJlZm9yZVxuICAgICAgICBsZWZ0OiBjYWxjKDk1JSAtIDIwcHgpXG5cbiAgICAmOmJlZm9yZVxuICAgICAgcG9zaXRpb246IGFic29sdXRlXG4gICAgICB0b3A6ICRoci1pY29uLXRvcFxuICAgICAgbGVmdDogNSVcbiAgICAgIHotaW5kZXg6IDFcbiAgICAgIGNvbG9yOiB2YXIoLS1oci1iZWZvcmUtY29sb3IpXG4gICAgICBjb250ZW50OiAkaHItaWNvblxuICAgICAgZm9udC1zaXplOiAyMHB4XG4gICAgICBsaW5lLWhlaWdodDogMVxuICAgICAgdHJhbnNpdGlvbjogYWxsIDFzIGVhc2UtaW4tb3V0XG4gICAgICBAZXh0ZW5kIC5mb250YXdlc29tZUljb25cblxuLnZlcnRpY2FsQ2VudGVyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZVxuICB0b3A6IDUwJVxuICB3aWR0aDogMTAwJVxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKVxuXG5tYXhXaWR0aDYwMCgpXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KVxuICAgIHtibG9ja31cblxubWF4V2lkdGg3NjgoKVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweClcbiAgICB7YmxvY2t9XG5cbm1pbldpZHRoNzY4KClcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpXG4gICAge2Jsb2NrfVxuXG5tYXhXaWR0aDEwMjQoKVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpXG4gICAge2Jsb2NrfVxuXG5taW5XaWR0aDEwMjQoKVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpXG4gICAge2Jsb2NrfVxuXG5tYXhXaWR0aDkwMCgpXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDkwMHB4KVxuICAgIHtibG9ja31cblxubWluV2lkdGg5MDEoKVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDFweClcbiAgICB7YmxvY2t9XG5cbm1pbldpZHRoOTAwKClcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAwcHgpXG4gICAge2Jsb2NrfVxuXG5taW5XaWR0aDIwMDAoKVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAyMDAwcHgpXG4gICAge2Jsb2NrfVxuXG4vLyBhbmltYXRpb25cbmlmIGhleG8tY29uZmlnKCdlbnRlcl90cmFuc2l0aW9ucycpXG4gICNjb250ZW50LWlubmVyLFxuICAjZm9vdGVyXG4gICAgYW5pbWF0aW9uOiBib3R0b20tdG9wIDFzXG5cbiAgI3BhZ2UtaGVhZGVyOm5vdCguZnVsbF9wYWdlKSxcbiAgI25hdi5zaG93XG4gICAgYW5pbWF0aW9uOiBoZWFkZXItZWZmZWN0IDFzXG5cbiAgI3NpdGUtdGl0bGUsXG4gICNzaXRlLXN1YnRpdGxlXG4gICAgYW5pbWF0aW9uOiB0aXRsZVNjYWxlIDFzXG5cbiAgY2FudmFzOm5vdCgjcmliYm9uLWNhbnZhcyksXG4gICN3ZWJfYmdcbiAgICBhbmltYXRpb246IHRvX3Nob3cgNHNcblxuICAjcmliYm9uLWNhbnZhc1xuICAgIGFuaW1hdGlvbjogcmliYm9uX3RvX3Nob3cgNHNcblxuICAjc2lkZWJhci1tZW51c1xuICAgICYub3BlblxuICAgICAgZm9yIGkgaW4gMSAyIDMgNFxuICAgICAgICA+IDpudGgtY2hpbGQoe2l9KVxuICAgICAgICAgIGFuaW1hdGlvbjogc2lkZWJhckl0ZW0gKGkgLyA1cylcblxuLnNjcm9sbC1kb3duLWVmZmVjdHNcbiAgYW5pbWF0aW9uOiBzY3JvbGwtZG93bi1lZmZlY3QgMS41cyBpbmZpbml0ZVxuXG5pZiBoZXhvLWNvbmZpZygnYXZhdGFyLmVmZmVjdCcpID09IHRydWVcbiAgLmF2YXRhci1pbWdcbiAgICBhbmltYXRpb246IGF2YXRhcl90dXJuX2Fyb3VuZCAycyBsaW5lYXIgaW5maW5pdGVcblxuLnJld2FyZC1tYWluXG4gIGFuaW1hdGlvbjogZG9uYXRlX2VmZmNldCAuM3MgLjFzIGVhc2UgYm90aFxuXG5Aa2V5ZnJhbWVzIHNjcm9sbC1kb3duLWVmZmVjdFxuICAwJVxuICAgIG9wYWNpdHk6IC40XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMClcblxuICA1MCVcbiAgICBvcGFjaXR5OiAxXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE2cHgpXG5cbiAgMTAwJVxuICAgIG9wYWNpdHk6IC40XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMClcblxuQGtleWZyYW1lcyBoZWFkZXItZWZmZWN0XG4gIDAlXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zNXB4KVxuXG4gIDEwMCVcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMClcblxuQGtleWZyYW1lcyBib3R0b20tdG9wXG4gIDAlXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDM1cHgpXG5cbiAgMTAwJVxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKVxuXG5Aa2V5ZnJhbWVzIHRpdGxlU2NhbGVcbiAgMCVcbiAgICBvcGFjaXR5OiAwXG4gICAgdHJhbnNmb3JtOiBzY2FsZSguNylcblxuICAxMDAlXG4gICAgb3BhY2l0eTogMVxuICAgIHRyYW5zZm9ybTogc2NhbGUoMSlcblxuQGtleWZyYW1lcyBzZWFyY2hfY2xvc2VcbiAgMCVcbiAgICBvcGFjaXR5OiAxXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKVxuXG4gIDEwMCVcbiAgICBvcGFjaXR5OiAwXG4gICAgdHJhbnNmb3JtOiBzY2FsZSguNylcblxuQGtleWZyYW1lcyB0b19zaG93XG4gIDAlXG4gICAgb3BhY2l0eTogMFxuXG4gIDEwMCVcbiAgICBvcGFjaXR5OiAxXG5cbkBrZXlmcmFtZXMgdG9faGlkZVxuICAwJVxuICAgIG9wYWNpdHk6IDFcblxuICAxMDAlXG4gICAgb3BhY2l0eTogMFxuXG5Aa2V5ZnJhbWVzIHJpYmJvbl90b19zaG93XG4gIDAlXG4gICAgb3BhY2l0eTogMFxuXG4gIDEwMCVcbiAgICBvcGFjaXR5OiBoZXhvLWNvbmZpZygnY2FudmFzX3JpYmJvbi5hbHBoYScpXG5cbkBrZXlmcmFtZXMgYXZhdGFyX3R1cm5fYXJvdW5kXG4gIGZyb21cbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKVxuXG4gIHRvXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKVxuXG5Aa2V5ZnJhbWVzIHN1Yl9tZW51c1xuICAwJVxuICAgIG9wYWNpdHk6IDBcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweClcblxuICAxMDAlXG4gICAgb3BhY2l0eTogMVxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKVxuXG5Aa2V5ZnJhbWVzIGRvbmF0ZV9lZmZjZXRcbiAgMCVcbiAgICBvcGFjaXR5OiAwXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KVxuXG4gIDEwMCVcbiAgICBvcGFjaXR5OiAxXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApXG5cbkBrZXlmcmFtZXMgc2lkZWJhckl0ZW1cbiAgMCVcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjAwcHgpXG5cbiAgMTAwJVxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKVxuIiwiI2xvY2FsLXNlYXJjaFxuICAuc2VhcmNoLWRpYWxvZ1xuICAgIC5sb2NhbC1zZWFyY2gtYm94XG4gICAgICBtYXJnaW46IDAgYXV0b1xuICAgICAgbWF4LXdpZHRoOiAxMDAlXG4gICAgICB3aWR0aDogMTAwJVxuXG4gICAgICBpbnB1dFxuICAgICAgICBwYWRkaW5nOiA1cHggMTRweFxuICAgICAgICB3aWR0aDogMTAwJVxuICAgICAgICBvdXRsaW5lOiBub25lXG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRzZWFyY2gtY29sb3JcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNDBweFxuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWFyY2gtYmcpXG4gICAgICAgIGNvbG9yOiB2YXIoLS1zZWFyY2gtaW5wdXQtY29sb3IpXG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZVxuXG4gICAgLnNlYXJjaC13cmFwXG4gICAgICBkaXNwbGF5OiBub25lXG5cbiAgICAubG9jYWwtc2VhcmNoLWhpdC1pdGVtXG4gICAgICBtYXJnaW4tbGVmdDogMjRweFxuICAgICAgcGFkZGluZy1sZWZ0OiAzcHhcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjhcblxuICAgICAgJjo6bWFya2VyXG4gICAgICAgIGNvbG9yOiAkc2VhcmNoLWNvbG9yXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkXG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpY1xuXG4gICAgICBhXG4gICAgICAgIGNvbG9yOiB2YXIoLS1zZWFyY2gtYS1jb2xvcilcblxuICAgICAgICAmOmhvdmVyXG4gICAgICAgICAgY29sb3I6ICRzZWFyY2gtY29sb3JcblxuICAgICAgLnNlYXJjaC1yZXN1bHQtdGl0bGVcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMFxuXG4gICAgICAuc2VhcmNoLXJlc3VsdFxuICAgICAgICBtYXJnaW46IDAgMCA4cHhcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsXG4gICAgICAgIGZvbnQtc2l6ZTogLjllbVxuXG4gICAgLnNlYXJjaC1yZXN1bHQtbGlzdFxuICAgICAgb3ZlcmZsb3cteTogb3ZlcmxheVxuICAgICAgbWFyZ2luOiAwIC0yMHB4XG4gICAgICBwYWRkaW5nOiAwIDIycHhcbiAgICAgIG1heC1oZWlnaHQ6IGNhbGMoODB2aCAtIDE4MHB4KVxuXG4gICAgICArbWF4V2lkdGg3NjgoKVxuICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKHZhcigtLXNlYXJjaC1oZWlnaHQpIC0gMTkwcHgpICFpbXBvcnRhbnRcblxuLnNlYXJjaC1rZXl3b3JkXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50XG4gIGNvbG9yOiAkc2VhcmNoLWtleXdvcmQtaGlnaGxpZ2h0XG4gIGZvbnQtd2VpZ2h0OiA2MDAiLCIvKlxuICogT3ZlcmZsb3cgdXRpbGl0eS4gTWFwcyB0byByZWd1bGFyIG92ZXJmbG93LCBhbmQgYWRkcyBhbiBlbGxpcHNpcyB2YWx1ZS5cbiAqXG4gKiBTeW5vcHNpczpcbiAqXG4gKiAgIG92ZXJmbG93OiA8dHlwZT5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICAgb3ZlcmZsb3c6IGF1dG9cbiAqICAgICBvdmVyZmxvdzogaGlkZGVuXG4gKiAgICAgb3ZlcmZsb3c6IGVsbGlwc2lzXG4gKlxuICovXG5cbm92ZXJmbG93KClcbiAgaWYgYXJndW1lbnRzWzBdID09IGVsbGlwc2lzXG4gICAgZWxsaXBzaXMoKVxuICBlbHNlXG4gICAgb3ZlcmZsb3c6IGFyZ3VtZW50c1xuIiwidXNlKCcuLi9ub2Rlcy92ZW5kb3ItaGVscGVycy5qcycpXG5AaW1wb3J0ICdjb25maWcnXG5cbi8qXG4gKiBBbGlhcyBcIm5vd3JhcFwiIGFzIFwibm8td3JhcFwiLlxuICovXG5cbm5vLXdyYXAgPSB1bnF1b3RlKCdub3dyYXAnKVxuXG4vKlxuICogSGVscGVyIHRvIGZpbmQgb3V0IGlmIGEgZ2l2ZW4gdmFsdWUgaXMgYSB3aWR0aFxuICovXG5cbmlzLXdpZHRoKHZhbClcbiAgaWYgYXV0byA9PSB2YWxcbiAgICByZXR1cm4gdHJ1ZVxuICBlbHNlIGlmIHZhbCAmJiAndW5pdCcgPT0gdHlwZSh2YWwpXG4gICAgLy8gU3R5bHVzIGRvZXMgbm90IHNob3J0IGNpcmN1aXQgc28gd2UgbmVlZCB0byBwZXJmb3JtIHRoaXMgYXMgYSBkaXN0aW5jdFxuICAgIC8vIG9wZXJhdGlvbiB0byBwcmV2ZW50IGVycm9yc1xuICAgIHJldHVybiAnJyAhPSB1bml0KHZhbClcbiAgcmV0dXJuIGZhbHNlXG5cbi8qXG4gKiBWZW5kb3Igc3VwcG9ydCBmb3IgdGhlIGdpdmVuIHByb3AgLyBhcmd1bWVudHMsIG9wdGlvbmFsbHkgc3BlY2lmeWluZyB0aGVcbiAqIG9ubHkgcHJlZml4ZXMgdG8gdXRpbGl6ZSwgb3IgdGhvc2Ugd2hpY2ggc2hvdWxkIGJlIGlnbm9yZWQuXG4gKi9cblxudmVuZG9yKHByb3AsIGFyZ3MsIG9ubHkgPSBudWxsLCBpZ25vcmUgPSBudWxsLCB2ZW5kb3ItcHJvcGVydHkgPSB0cnVlKVxuICBuZWVkX25vcm1hbGl6ZSA9ICF2ZW5kb3ItcHJvcGVydHkgb3IgcHJvcCBpbiAoJ3RyYW5zaXRpb24nICd0cmFuc2l0aW9uLXByb3BlcnR5JyAnYm9yZGVyLWltYWdlJyAnYm9yZGVyLWltYWdlLXNsaWNlJylcbiAgZm9yIHByZWZpeCBpbiB2ZW5kb3ItcHJlZml4ZXNcbiAgICB1bmxlc3MgKG9ubHkgYW5kICEocHJlZml4IGluIG9ubHkpKSBvciAoaWdub3JlIGFuZCBwcmVmaXggaW4gaWdub3JlKVxuICAgICAgaWYgb2ZmaWNpYWwgPT0gcHJlZml4XG4gICAgICAgIGlmIG5lZWRfbm9ybWFsaXplXG4gICAgICAgICAge3Byb3B9OiBub3JtYWxpemUocHJvcCwoJyVzJyAlIGFyZ3MpKVxuICAgICAgICBlbHNlXG4gICAgICAgICAge3Byb3B9OiBhcmdzXG4gICAgICBlbHNlXG4gICAgICAgIG5ld3Byb3AgPSBwcm9wXG4gICAgICAgIG5ld3Byb3AgPSAnLScgKyBwcmVmaXggKyAnLScgKyBwcm9wIGlmIHZlbmRvci1wcm9wZXJ0eVxuXG4gICAgICAgIGlmIG5lZWRfbm9ybWFsaXplXG4gICAgICAgICAge25ld3Byb3B9OiBub3JtYWxpemUocHJvcCwoJyVzJyAlIGFyZ3MpLHByZWZpeClcbiAgICAgICAgZWxzZVxuICAgICAgICAgIHtuZXdwcm9wfTogYXJnc1xuLypcbiAqIFZlbmRvcml6ZSB0aGUgZ2l2ZW4gdmFsdWUuXG4gKi9cblxudmVuZG9yLXZhbHVlKGFyZywgb25seSA9IG51bGwsIGlnbm9yZSA9IG51bGwpXG4gIHByb3AgPSBjdXJyZW50LXByb3BlcnR5WzBdXG4gIGZvciBwcmVmaXggaW4gdmVuZG9yLXByZWZpeGVzXG4gICAgdW5sZXNzIChvbmx5IGFuZCAhKHByZWZpeCBpbiBvbmx5KSkgb3IgKGlnbm9yZSBhbmQgcHJlZml4IGluIGlnbm9yZSkgb3Igb2ZmaWNpYWwgPT0gcHJlZml4XG4gICAgICBhZGQtcHJvcGVydHkocHJvcCwgJy0lcy0lcycgJSAocHJlZml4IGFyZykpXG4gIGFyZ1xuXG4vKlxuICogVmVuZG9yIFwiYm94LXNoYWRvd1wiIHN1cHBvcnQuXG4gKi9cblxuYm94LXNoYWRvdygpXG4gIHZlbmRvcignYm94LXNoYWRvdycsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwidXNlci1zZWxlY3RcIiBzdXBwb3J0LlxuICovXG5cbnVzZXItc2VsZWN0KClcbiAgdmVuZG9yKCd1c2VyLXNlbGVjdCcsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBtcyBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImNvbHVtbi1jb3VudFwiIHN1cHBvcnQuXG4gKi9cblxuY29sdW1uLWNvdW50KClcbiAgdmVuZG9yKCdjb2x1bW4tY291bnQnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJjb2x1bW4tZ2FwXCIgc3VwcG9ydC5cbiAqL1xuXG5jb2x1bW4tZ2FwKClcbiAgdmVuZG9yKCdjb2x1bW4tZ2FwJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwiY29sdW1uLXJ1bGVcIiBzdXBwb3J0LlxuICovXG5cbmNvbHVtbi1ydWxlKClcbiAgdmVuZG9yKCdjb2x1bW4tcnVsZScsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImNvbHVtbi1ydWxlLWNvbG9yXCIgc3VwcG9ydC5cbiAqL1xuXG5jb2x1bW4tcnVsZS1jb2xvcigpXG4gIHZlbmRvcignY29sdW1uLXJ1bGUtY29sb3InLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJjb2x1bW4tcnVsZS13aWR0aFwiIHN1cHBvcnQuXG4gKi9cblxuY29sdW1uLXJ1bGUtd2lkdGgoKVxuICB2ZW5kb3IoJ2NvbHVtbi1ydWxlLXdpZHRoJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwiY29sdW1uLXJ1bGUtc3R5bGVcIiBzdXBwb3J0LlxuICovXG5cbmNvbHVtbi1ydWxlLXN0eWxlKClcbiAgdmVuZG9yKCdjb2x1bW4tcnVsZS1zdHlsZScsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImNvbHVtbi13aWR0aFwiIHN1cHBvcnQuXG4gKi9cblxuY29sdW1uLXdpZHRoKClcbiAgdmVuZG9yKCdjb2x1bW4td2lkdGgnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJjb2x1bW4tc3BhblwiIHN1cHBvcnQuXG4gKi9cblxuY29sdW1uLXNwYW4oKVxuICB2ZW5kb3IoJ2NvbHVtbi1zcGFuJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJjb2x1bW4tZmlsbFwiIHN1cHBvcnQuXG4gKi9cblxuY29sdW1uLWZpbGwoKVxuICB2ZW5kb3IoJ2NvbHVtbi1maWxsJywgYXJndW1lbnRzLCBvbmx5OiBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBMZWdhY3kgc3ludGF4IHN1cHBvcnQgZm9yIGJhY2tncm91bmQtY2xpcCBhbmQgYmFja2dyb3VuZC1vcmlnaW5cbiAqL1xuXG5sZWdhY3ktYmctdmFsdWVzKHByb3BlcnR5LCBhcmdzKVxuICBsZWdhY3lfYXJncyA9ICgpXG4gIGltcG9ydGFuY2UgPSB1bnF1b3RlKCcnKVxuICBmb3Igc3ViYXJncyBpbiBhcmdzXG4gICAgZm9yIGFyZyBpbiBzdWJhcmdzXG4gICAgICBpZiBhcmcgaW4gKGJvcmRlci1ib3ggcGFkZGluZy1ib3ggY29udGVudC1ib3gpXG4gICAgICAgIGFyZyA9IHVucXVvdGUoJ2JvcmRlcicpICBpZiBhcmcgPT0gYm9yZGVyLWJveFxuICAgICAgICBhcmcgPSB1bnF1b3RlKCdwYWRkaW5nJykgaWYgYXJnID09IHBhZGRpbmctYm94XG4gICAgICAgIGFyZyA9IHVucXVvdGUoJ2NvbnRlbnQnKSBpZiBhcmcgPT0gY29udGVudC1ib3hcbiAgICAgIGlmIGFyZyAhPSAnIWltcG9ydGFudCdcbiAgICAgICAgcHVzaChsZWdhY3lfYXJncyxhcmcpXG4gICAgICBlbHNlXG4gICAgICAgIGltcG9ydGFuY2UgPSAhaW1wb3J0YW50XG4gIHZlbmRvcihwcm9wZXJ0eSwgdW5xdW90ZShqb2luKCcsICcsbGVnYWN5X2FyZ3MpKSBpbXBvcnRhbmNlLCBvbmx5OiBtb3ogd2Via2l0KVxuXG4vKlxuICogVmVuZG9yIFwiYmFja2dyb3VuZC1jbGlwXCIgc3VwcG9ydC5cbiAqL1xuXG5iYWNrZ3JvdW5kLWNsaXAoKVxuICBpZiBhcmd1bWVudHNbMF0gPT0gdGV4dFxuICAgIHZlbmRvcignYmFja2dyb3VuZC1jbGlwJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQpXG4gIGVsc2VcbiAgICBsZWdhY3ktYmctdmFsdWVzKCdiYWNrZ3JvdW5kLWNsaXAnLCBhcmd1bWVudHMpXG4gICAgYmFja2dyb3VuZC1jbGlwOiBhcmd1bWVudHNcblxuLypcbiAqIFZlbmRvciBcImJhY2tncm91bmQtb3JpZ2luXCIgc3VwcG9ydC5cbiAqL1xuXG5iYWNrZ3JvdW5kLW9yaWdpbigpXG4gIGxlZ2FjeS1iZy12YWx1ZXMoJ2JhY2tncm91bmQtb3JpZ2luJywgYXJndW1lbnRzKVxuICBiYWNrZ3JvdW5kLW9yaWdpbjogYXJndW1lbnRzXG5cbi8qXG4gKiBWZW5kb3IgXCJ0cmFuc2Zvcm1cIiBzdXBwb3J0LlxuICovXG5cbnRyYW5zZm9ybSgpXG4gIHZlbmRvcigndHJhbnNmb3JtJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwidHJhbnNmb3JtLW9yaWdpblwiIHN1cHBvcnQuXG4gKi9cbnRyYW5zZm9ybS1vcmlnaW4oKVxuICAgIHZlbmRvcigndHJhbnNmb3JtLW9yaWdpbicsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcInRyYW5zZm9ybS1zdHlsZVwiIHN1cHBvcnQuXG4gKi9cblxudHJhbnNmb3JtLXN0eWxlKClcbiAgdmVuZG9yKCd0cmFuc2Zvcm0tc3R5bGUnLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJib3JkZXItaW1hZ2VcIiBzdXBwb3J0LlxuICovXG5cbmJvcmRlci1pbWFnZSgpXG4gIHZlbmRvcignYm9yZGVyLWltYWdlJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG8gb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJ0cmFuc2l0aW9uXCIgc3VwcG9ydC5cbiAqL1xuXG50cmFuc2l0aW9uKClcbiAgdmVuZG9yKCd0cmFuc2l0aW9uJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwidHJhbnNpdGlvbi1wcm9wZXJ0eVwiIHN1cHBvcnQuXG4gKi9cblxudHJhbnNpdGlvbi1wcm9wZXJ0eSgpXG4gIHZlbmRvcigndHJhbnNpdGlvbi1wcm9wZXJ0eScsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcInRyYW5zaXRpb24tZHVyYXRpb25cIiBzdXBwb3J0LlxuICovXG5cbnRyYW5zaXRpb24tZHVyYXRpb24oKVxuICB2ZW5kb3IoJ3RyYW5zaXRpb24tZHVyYXRpb24nLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJ0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvblwiIHN1cHBvcnQuXG4gKi9cblxudHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oKVxuICB2ZW5kb3IoJ3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwidHJhbnNpdGlvbi1kZWxheVwiIHN1cHBvcnQuXG4gKi9cblxudHJhbnNpdGlvbi1kZWxheSgpXG4gIHZlbmRvcigndHJhbnNpdGlvbi1kZWxheScsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcImJhY2tmYWNlLXZpc2liaWxpdHlcIiBzdXBwb3J0LlxuICovXG5cbmJhY2tmYWNlLXZpc2liaWxpdHkoKVxuICB2ZW5kb3IoJ2JhY2tmYWNlLXZpc2liaWxpdHknLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogbXMgb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJwZXJzcGVjdGl2ZVwiIHN1cHBvcnQuXG4gKi9cblxucGVyc3BlY3RpdmUoKVxuICBpZiBtaXhpblxuICAgIHZlbmRvcigncGVyc3BlY3RpdmUnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogbXMgb2ZmaWNpYWwpXG4gIGVsc2VcbiAgICAncGVyc3BlY3RpdmUoJXMpJyAlIGFyZ3VtZW50c1xuXG4vKlxuICogVmVuZG9yIFwicGVyc3BlY3RpdmUtb3JpZ2luXCIgc3VwcG9ydC5cbiAqL1xuXG5wZXJzcGVjdGl2ZS1vcmlnaW4oKVxuICB2ZW5kb3IoJ3BlcnNwZWN0aXZlLW9yaWdpbicsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBtcyBvZmZpY2lhbClcblxuLypcbiAqIE9wYWNpdHkgd2l0aCBjb25kaXRpb25hbCBJRSBzdXBwb3J0LlxuICovXG5cbm9wYWNpdHkobiwgYXJncy4uLilcbiAgb3BhY2l0eTogbiBhcmdzXG4gIGlmIHN1cHBvcnQtZm9yLWllXG4gICAgaWYgbiA9PSBpbmhlcml0IG9yIG4gPT0gaW5pdGlhbFxuICAgICAgLW1zLWZpbHRlcjogbiBhcmdzXG4gICAgICBmaWx0ZXI6IG4gYXJnc1xuICAgIGVsc2VcbiAgICAgIHZhbCA9IHJvdW5kKG4gKiAxMDApXG4gICAgICBpZiB2YWwgPT0gMTAwXG4gICAgICAgIC1tcy1maWx0ZXI6IG5vbmUgYXJnc1xuICAgICAgICBmaWx0ZXI6IG5vbmUgYXJnc1xuICAgICAgZWxzZVxuICAgICAgICAtbXMtZmlsdGVyOiAnXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0lcylcIicgJSB2YWwgYXJnc1xuICAgICAgICBmaWx0ZXI6ICdhbHBoYShvcGFjaXR5PSVzKScgJSB2YWwgYXJnc1xuXG4vKlxuICogVmVuZG9yIFwidGV4dC1zaXplLWFkanVzdFwiXG4gKi9cblxudGV4dC1zaXplLWFkanVzdCgpXG4gIHZlbmRvcigndGV4dC1zaXplLWFkanVzdCcsIGFyZ3VtZW50cylcblxuLypcbiAqIEFsaWFzIHRoZSBcIndoaXRlLXNwYWNlXCIgcHJvcGVydHkuXG4gKi9cblxud2hpdGVzcGFjZSgpXG4gIHdoaXRlLXNwYWNlOiBhcmd1bWVudHNcblxuLypcbiAqIFZlbmRvciBcImJveC1zaXppbmdcIiBzdXBwb3J0LlxuICovXG5cbmJveC1zaXppbmcoKVxuICB2ZW5kb3IoJ2JveC1zaXppbmcnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJib3gtb3JpZW50XCIgc3VwcG9ydC5cbiAqL1xuXG5ib3gtb3JpZW50KClcbiAgdmVuZG9yKCdib3gtb3JpZW50JywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwiYm94LWZsZXgtZ3JvdXBcIiBzdXBwb3J0LlxuICovXG5cbmJveC1mbGV4LWdyb3VwKClcbiAgdmVuZG9yKCdib3gtZmxleC1ncm91cCcsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImJveC1vcmRpbmFsLWdyb3VwXCIgc3VwcG9ydC5cbiAqL1xuXG5ib3gtb3JkaW5hbC1ncm91cCgpXG4gIHZlbmRvcignYm94LW9yZGluYWwtZ3JvdXAnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogbXMgb2ZmaWNpYWwpXG5cblxuLypcbiAqIFZlbmRvciBcImJveC1hbGlnblwiIHN1cHBvcnQuXG4gKi9cblxuYm94LWFsaWduKClcbiAgdmVuZG9yKCdib3gtYWxpZ24nLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogbXMgb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJib3gtcGFja1wiIHN1cHBvcnQuXG4gKi9cblxuYm94LXBhY2soKVxuICB2ZW5kb3IoJ2JveC1wYWNrJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG1zIG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwiYm94LWRpcmVjdGlvblwiIHN1cHBvcnQuXG4gKi9cblxuYm94LWRpcmVjdGlvbigpXG4gIHZlbmRvcignYm94LWRpcmVjdGlvbicsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBtcyBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImFuaW1hdGlvblwiIHN1cHBvcnQuXG4gKi9cblxuYW5pbWF0aW9uKClcbiAgdmVuZG9yKCdhbmltYXRpb24nLCBhcmd1bWVudHMpXG5cblxuLypcbiAqIFZlbmRvciBcImFuaW1hdGlvbi1uYW1lXCIgc3VwcG9ydC5cbiAqL1xuXG5hbmltYXRpb24tbmFtZSgpXG4gIHZlbmRvcignYW5pbWF0aW9uLW5hbWUnLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJhbmltYXRpb24tZHVyYXRpb25cIiBzdXBwb3J0LlxuICovXG5cbmFuaW1hdGlvbi1kdXJhdGlvbigpXG4gIHZlbmRvcignYW5pbWF0aW9uLWR1cmF0aW9uJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwiYW5pbWF0aW9uLWRlbGF5XCIgc3VwcG9ydC5cbiAqL1xuXG5hbmltYXRpb24tZGVsYXkoKVxuICB2ZW5kb3IoJ2FuaW1hdGlvbi1kZWxheScsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcImFuaW1hdGlvbi1kaXJlY3Rpb25cIiBzdXBwb3J0LlxuICovXG5cbmFuaW1hdGlvbi1kaXJlY3Rpb24oKVxuICB2ZW5kb3IoJ2FuaW1hdGlvbi1kaXJlY3Rpb24nLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJhbmltYXRpb24taXRlcmF0aW9uLWNvdW50XCIgc3VwcG9ydC5cbiAqL1xuXG5hbmltYXRpb24taXRlcmF0aW9uLWNvdW50KClcbiAgdmVuZG9yKCdhbmltYXRpb24taXRlcmF0aW9uLWNvdW50JywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwiYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvblwiIHN1cHBvcnQuXG4gKi9cblxuYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbigpXG4gIHZlbmRvcignYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbicsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcImFuaW1hdGlvbi1wbGF5LXN0YXRlXCIgc3VwcG9ydC5cbiAqL1xuXG5hbmltYXRpb24tcGxheS1zdGF0ZSgpXG4gIHZlbmRvcignYW5pbWF0aW9uLXBsYXktc3RhdGUnLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJhbmltYXRpb24tZmlsbC1tb2RlXCIgc3VwcG9ydC5cbiAqL1xuXG5hbmltYXRpb24tZmlsbC1tb2RlKClcbiAgdmVuZG9yKCdhbmltYXRpb24tZmlsbC1tb2RlJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwiaHlwaGVuc1wiIHN1cHBvcnQuXG4gKi9cblxuaHlwaGVucygpXG4gIHZlbmRvcignaHlwaGVucycsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBtcyBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImFwcGVhcmFuY2VcIiBzdXBwb3J0LlxuICovXG5cbmFwcGVhcmFuY2UoKVxuICB2ZW5kb3IoJ2FwcGVhcmFuY2UnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJ0YWItc2l6ZVwiIHN1cHBvcnQuXG4gKi9cblxudGFiLXNpemUoKVxuICB2ZW5kb3IoJ3RhYi1zaXplJywgYXJndW1lbnRzLCBvbmx5OiBtb3ogbyBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcIm92ZXJmbG93LXNjcm9sbGluZ1wiIHN1cHBvcnQuXG4gKi9cblxub3ZlcmZsb3ctc2Nyb2xsaW5nKClcbiAgdmVuZG9yKCdvdmVyZmxvdy1zY3JvbGxpbmcnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcInRleHQtb3ZlcmZsb3dcIiBzdXBwb3J0LCAsIC1vLSBmb3Igb3BlcmEgOS4qIC0gMTAuKlxuICovXG5cbnRleHQtb3ZlcmZsb3coKVxuICB2ZW5kb3IoJ3RleHQtb3ZlcmZsb3cnLCBhcmd1bWVudHMsIG9ubHk6IG9mZmljaWFsIG8pXG5cbi8qXG4gKiBWZW5kb3IgXCJ0ZXh0LXNpemUtYWRqdXN0XCIgc3VwcG9ydC5cbiAqL1xudGV4dC1zaXplLWFkanVzdCgpXG4gIHZlbmRvcigndGV4dC1zaXplLWFkanVzdCcsIGFyZ3VtZW50cywgb25seTogb2ZmaWNpYWwgd2Via2l0IG1zKVxuXG4vKlxuICogVmVuZG9yIFwiZm9udC1zbW9vdGhpbmdcIiBzdXBwb3J0LCB3ZWJraXQgb25seS5cbiAqL1xuZm9udC1zbW9vdGhpbmcoKVxuICB2ZW5kb3IoJ2ZvbnQtc21vb3RoaW5nJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQpXG5cblxuLyoqXG4gKiBWZW5kb3IgaW5wdXQtcGxhY2Vob2xkZXIvcGxhY2Vob2xkZXIgc3VwcG9ydC5cbiAqXG4gKiBFeGFtcGxlczpcbiAqICAgIC8vIERlZmF1bHQgc3ludGF4XG4gKiAgICBib2R5XG4gKiAgICAgIHBsYWNlaG9sZGVyKGNvbG9yICMzMzMsIGZvbnQtd2VpZ2h0IG5vcm1hbClcbiAqXG4gKiAgICAvLyBUaGUgY29tbWEgaXMgaW1wb3J0YW50XG4gKiAgICAucGxhY2Vob2xkZXItcmVkXG4gKiAgICAgIHBsYWNlaG9sZGVyKGNvbG9yIHJlZCwpXG4gKlxuICogICAgLy8gV2UgY2FuIHBhc3MgYSBmdW5jdGlvblxuICogICAgZ3JlZW4tcGxhY2Vob2xkZXIoKVxuICogICAgICBjb2xvciBncmVlblxuICogICAgLnBsYWNlaG9sZGVyLWdyZWVuXG4gKiAgICAgIHBsYWNlaG9sZGVyKGdyZWVuLXBsYWNlaG9sZGVyKVxuICpcbiAqICAgIC8vIFdlIGNhbiBwYXNzIGEgaGFzaFxuICogICAgdGV4dGFyZWFcbiAqICAgICAgcGxhY2Vob2xkZXIoKGZvbnQtc3R5bGUgaXRhbGljKSAoZm9udC13ZWlnaHQgYm9sZCkgKHBhZGRpbmcgJzRweCAxMHB4JykpXG4gKi9cbnBsYWNlaG9sZGVyKClcbiAgZm9yIHYgaW4gJzotd2Via2l0LWlucHV0JyAnLW1veicgJzotbW96JyAnLW1zLWlucHV0J1xuICAgICY6e3Z9LXBsYWNlaG9sZGVyXG4gICAgICBmb3IgcGFpciBpbiBhcmd1bWVudHNcbiAgICAgICAgaWYgdHlwZW9mKHBhaXIpID09ICdmdW5jdGlvbidcbiAgICAgICAgICBwYWlyKClcbiAgICAgICAgZWxzZSBpZiBwYWlyIGlzIG5vdCBudWxsICYmIHBhaXJbMF0gaXMgbm90IG51bGxcbiAgICAgICAgICB7cGFpclswXX06IHR5cGUocGFpclsxXSkgPT0gJ3N0cmluZycgPyBzKHBhaXJbMV0pIDogcGFpclsxXVxuaW5wdXQtcGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlclxuXG4vKlxuICogVmVuZG9yIGJhY2tncm91bmQgc3VwcG9ydCAoZ3JhZGllbnRzKS5cbiAqL1xuXG5iYWNrZ3JvdW5kKClcbiAgaWYgbWF0Y2goJy1ncmFkaWVudFxcKCcsICcnK2FyZ3VtZW50cylcbiAgICB2ZW5kb3IoJ2JhY2tncm91bmQnLCBhcmd1bWVudHMsIHZlbmRvci1wcm9wZXJ0eTogZmFsc2UpXG4gIGVsc2VcbiAgICBiYWNrZ3JvdW5kIGFyZ3VtZW50c1xuXG5iYWNrZ3JvdW5kLWltYWdlKClcbiAgaWYgbWF0Y2goJy1ncmFkaWVudFxcKCcsICcnK2FyZ3VtZW50cylcbiAgICB2ZW5kb3IoJ2JhY2tncm91bmQtaW1hZ2UnLCBhcmd1bWVudHMsIHZlbmRvci1wcm9wZXJ0eTogZmFsc2UpXG4gIGVsc2VcbiAgICBiYWNrZ3JvdW5kLWltYWdlIGFyZ3VtZW50c1xuXG5jdXJzb3IoKVxuICBpZiBtYXRjaCgnLWdyYWRpZW50XFwoJywgJycrYXJndW1lbnRzKVxuICAgIHZlbmRvcignY3Vyc29yJywgYXJndW1lbnRzLCB2ZW5kb3ItcHJvcGVydHk6IGZhbHNlKVxuICBlbHNlXG4gICAgY3Vyc29yIGFyZ3VtZW50c1xuXG5saXN0LXN0eWxlKClcbiAgaWYgbWF0Y2goJy1ncmFkaWVudFxcKCcsICcnK2FyZ3VtZW50cylcbiAgICB2ZW5kb3IoJ2xpc3Qtc3R5bGUnLCBhcmd1bWVudHMsIHZlbmRvci1wcm9wZXJ0eTogZmFsc2UpXG4gIGVsc2VcbiAgICBsaXN0LXN0eWxlIGFyZ3VtZW50c1xuXG5saXN0LXN0eWxlLWltYWdlKClcbiAgaWYgbWF0Y2goJy1ncmFkaWVudFxcKCcsICcnK2FyZ3VtZW50cylcbiAgICB2ZW5kb3IoJ2xpc3Qtc3R5bGUtaW1hZ2UnLCBhcmd1bWVudHMsIHZlbmRvci1wcm9wZXJ0eTogZmFsc2UpXG4gIGVsc2VcbiAgICBsaXN0LXN0eWxlLWltYWdlIGFyZ3VtZW50c1xuIiwiLypcbiAqIFZlbmRvciBcImRpc3BsYXk6IGZsZXhcIiBzdXBwb3J0IHdpdGggZmFsbGJhY2sgdG8gb2Jzb2xldGUgdmVyc2lvbnMuXG4gKi9cblxuZmxleC12ZXJzaW9uID89IGJveCBmbGV4XG5cbi8vXG4vLyAxLiBEaXNwbGF5IHZhbHVlc1xuLy8gICAgLSBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWZsZXhib3gvI2ZsZXgtY29udGFpbmVyc1xuLy9cbmRpc3BsYXkodHlwZSwgYXJncy4uLilcbiAgaWYgZmxleCA9PSB0eXBlIHx8IGlubGluZS1mbGV4ID09IHR5cGVcbiAgICBpZiBib3ggaW4gZmxleC12ZXJzaW9uXG4gICAgICBpZiBmbGV4ID09IHR5cGVcbiAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3ggYXJnc1xuICAgICAgICBkaXNwbGF5OiB2ZW5kb3ItdmFsdWUoYm94IGFyZ3MsIG9ubHk6IG1veiB3ZWJraXQpXG4gICAgICBlbHNlXG4gICAgICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveCBhcmdzXG4gICAgICAgIGRpc3BsYXk6IHZlbmRvci12YWx1ZShpbmxpbmUtYm94IGFyZ3MsIG9ubHk6IG1veiB3ZWJraXQpXG4gICAgaWYgZmxleCBpbiBmbGV4LXZlcnNpb25cbiAgICAgIGRpc3BsYXk6IHZlbmRvci12YWx1ZShhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBvZmZpY2lhbCkgLy8gb3ZlcndyaXRlcyBvbGQgd2Via2l0XG4gIGVsc2VcbiAgICBkaXNwbGF5OiBhcmd1bWVudHNcblxuLypcbiAqIE5ldyBzeW50YXggZm9yIGJyb3dzZXJzIGxpa2UgR29vZ2xlIENocm9tZS5cbiAqIFBsdXMgYSB0cmFuc2xhdGlvbiB0byB0aGUgb2xkIHN5bnRheCwgaWYgcG9zc2libGUuXG4gKi9cblxuXG4vL1xuLy8gNS4gT3JkZXJpbmcgYW5kIE9yaWVudGF0aW9uXG4vLyAgICAtIGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtZmxleGJveC8jb3JkZXJpbmctYW5kLW9yaWVudGF0aW9uXG4vL1xuLWZsZXgtb2Jzb2xldGUtZGlyZWN0aW9uKGRpcmVjdGlvbilcbiAgaWYgYm94IGluIGZsZXgtdmVyc2lvblxuICAgIGlmIHJvdy1yZXZlcnNlID09IGRpcmVjdGlvbiB8fCBjb2x1bW4tcmV2ZXJzZSA9PSBkaXJlY3Rpb25cbiAgICAgIHZlbmRvcignYm94LWRpcmVjdGlvbicsIHJldmVyc2UsIGlnbm9yZTogbXMgb2ZmaWNpYWwpXG5cbiAgICBpZiByb3cgPT0gZGlyZWN0aW9uIHx8IHJvdy1yZXZlcnNlID09IGRpcmVjdGlvblxuICAgICAgdmVuZG9yKCdib3gtb3JpZW50JywgaG9yaXpvbnRhbCwgaWdub3JlOiBtcyBvZmZpY2lhbClcbiAgICBlbHNlIGlmIGNvbHVtbiA9PSBkaXJlY3Rpb24gfHwgY29sdW1uLXJldmVyc2UgPT0gZGlyZWN0aW9uXG4gICAgICB2ZW5kb3IoJ2JveC1vcmllbnQnLCB2ZXJ0aWNhbCwgaWdub3JlOiBtcyBvZmZpY2lhbClcblxuLWZsZXgtb2Jzb2xldGUtd3JhcCh2YWx1ZSlcbiAgaWYgYm94IGluIGZsZXgtdmVyc2lvblxuICAgIC8vIFdBUk46IHdyYXAtcmV2ZXJzZSBkb2VzIG5vdCBoYXZlIGEgYm94IGVxdWl2YWxlbnQuIFRoaXMgd2lsbCByZW5kZXIgaW4gZGlmZmVyZW50IG1hbm5lcnNcbiAgICAvLyAgICBvbiBib3ggdnMuIGZsZXggdmFsdWVzLlxuICAgIGlmICd3cmFwJyA9PSB2YWx1ZSB8fCB3cmFwLXJldmVyc2UgPT0gdmFsdWVcbiAgICAgIHZlbmRvcignYm94LWxpbmVzJywgbXVsdGlwbGUsIGlnbm9yZTogbXMgb2ZmaWNpYWwpXG4gICAgZWxzZSBpZiBub3dyYXAgPT0gdmFsdWVcbiAgICAgIHZlbmRvcignYm94LWxpbmVzJywgc2luZ2xlLCBpZ25vcmU6IG1zIG9mZmljaWFsKVxuXG5mbGV4LWRpcmVjdGlvbihkaXJlY3Rpb24pXG4gIC8vIG9ic29sZXRlXG4gIC1mbGV4LW9ic29sZXRlLWRpcmVjdGlvbihkaXJlY3Rpb24pXG5cbiAgLy8gbmV3XG4gIGlmIGZsZXggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdmbGV4LWRpcmVjdGlvbicsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1zIG9mZmljaWFsKVxuXG5mbGV4LXdyYXAodmFsdWUpXG4gIC8vIG9ic29sZXRlXG4gIC1mbGV4LW9ic29sZXRlLXdyYXAodmFsdWUpXG5cbiAgaWYgZmxleCBpbiBmbGV4LXZlcnNpb25cbiAgICB2ZW5kb3IoJ2ZsZXgtd3JhcCcsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1zIG9mZmljaWFsKVxuXG5mbGV4LWZsb3coKVxuICAvLyBvYnNvbGV0ZVxuICAtZmxleC1vYnNvbGV0ZS1kaXJlY3Rpb24oYXJndW1lbnRzWzBdKVxuICAtZmxleC1vYnNvbGV0ZS1kaXJlY3Rpb24oYXJndW1lbnRzWzFdKVxuICAtZmxleC1vYnNvbGV0ZS13cmFwKGFyZ3VtZW50c1swXSlcbiAgLWZsZXgtb2Jzb2xldGUtd3JhcChhcmd1bWVudHNbMV0pXG5cbiAgLy8gbmV3XG4gIGlmIGZsZXggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdmbGV4LWZsb3cnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtcyBvZmZpY2lhbClcblxuXG5vcmRlcigpXG4gIC8vIG9ic29sZXRlXG4gIGlmIGJveCBpbiBmbGV4LXZlcnNpb25cbiAgICB2ZW5kb3IoJ2JveC1vcmRpbmFsLWdyb3VwJywgYXJndW1lbnRzLCBpZ25vcmU6IG1zIG9mZmljaWFsKVxuXG4gIC8vIG5ld1xuICBpZiBmbGV4IGluIGZsZXgtdmVyc2lvblxuICAgIHZlbmRvcignZmxleC1vcmRlcicsIGFyZ3VtZW50cywgb25seTogbXMpXG4gICAgdmVuZG9yKCdvcmRlcicsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG9mZmljaWFsKVxuXG5cbi8vXG4vLyA3LiBGbGV4aWJpbGl0eVxuLy8gICAgLSBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWZsZXhib3gvI2ZsZXhpYmlsaXR5XG4vL1xuZmxleC1ncm93KGdyb3d0aClcbiAgLy8gb2Jzb2xldGVcbiAgaWYgYm94IGluIGZsZXgtdmVyc2lvblxuICAgIHZlbmRvcignYm94LWZsZXgnLCBncm93dGgpXG5cbiAgLy8gbmV3XG4gIGlmIGZsZXggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdmbGV4LWdyb3cnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBvZmZpY2lhbClcblxuZmxleC1iYXNpcygpXG4gIGlmIGZsZXggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdmbGV4LWJhc2lzJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgb2ZmaWNpYWwpXG5cbmZsZXgtc2hyaW5rKClcbiAgaWYgZmxleCBpbiBmbGV4LXZlcnNpb25cbiAgICB2ZW5kb3IoJ2ZsZXgtc2hyaW5rJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgb2ZmaWNpYWwpXG5cbmZsZXgoZ3Jvd3RoKVxuXG4gIC8vIG9ic29sZXRlXG4gIGlmIGJveCBpbiBmbGV4LXZlcnNpb25cbiAgICBzaHJpbmsgPSAxXG5cbiAgICBpZiBub25lID09IGdyb3d0aCB8fCBpbml0aWFsID09IGdyb3d0aFxuICAgICAgLy8gV2VsbCBrbm93biB2YWx1ZXNcbiAgICAgIHNocmluayA9IDAgaWYgbm9uZSA9PSBncm93dGhcbiAgICAgIGdyb3d0aCA9IDBcbiAgICBlbHNlIGlmIGlzLXdpZHRoKGdyb3d0aCkgPT0gdHJ1ZVxuICAgICAgLy8gQmFzaXMgaXMgZGVmaW5lZCBhcyB0aGUgZmlyc3QgcGFyYW1ldGVyXG4gICAgICBncm93dGggPSBhcmd1bWVudHNbMV0gfHwgMFxuICAgICAgc2hyaW5rID0gYXJndW1lbnRzWzJdIGlmIDMgPD0gbGVuZ3RoKGFyZ3VtZW50cylcbiAgICBlbHNlIGlmIGFyZ3VtZW50c1sxXSAmJiBpcy13aWR0aChhcmd1bWVudHNbMV0pID09IGZhbHNlXG4gICAgICAvLyBHcm93dGggaXMgZmlyc3QgYW5kIHNocmluayBpcyBzZWNvbmRcbiAgICAgIHNocmluayA9IGFyZ3VtZW50c1sxXVxuXG4gICAgLy8gU2luY2Ugd2UgY2FuJ3QgbWFrZSB0aGUgZGlzdGluY3Rpb24gYmV0d2VlbiBncm93aW5nIGFuZCBzaHJpbmtpbmcgaW4gdGhlIGJveCBtb2RlbCwgdGFrZVxuICAgIC8vIHRoZSBvbmUgdGhhdCBwcm92aWRlcyB0aGUgbW9zdCBmbGV4aWJpbGl0eS5cbiAgICB2ZW5kb3IoJ2JveC1mbGV4JywgbWF4KGdyb3d0aCwgc2hyaW5rKSwgaWdub3JlOiBtcylcblxuICAvLyBuZXdcbiAgaWYgZmxleCBpbiBmbGV4LXZlcnNpb25cbiAgICB2ZW5kb3IoJ2ZsZXgnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtcyBvZmZpY2lhbClcblxuXG4vLyBjb252ZXJ0cyB0aGUganVzdGlmaWNhdGlvbiBhbGlnbm1lbnRcbi1jb252ZXJ0LWp1c3RpZnkoYWxpZ24pXG4gIGlmIGZsZXgtc3RhcnQgPT0gYWxpZ25cbiAgICByZXR1cm4gc3RhcnRcbiAgZWxzZSBpZiBmbGV4LWVuZCA9PSBhbGlnblxuICAgIHJldHVybiBlbmRcbiAgZWxzZSBpZiBzcGFjZS1hcm91bmQgPT0gYWxpZ25cbiAgICByZXR1cm4gZGlzdHJpYnV0ZVxuICBlbHNlIGlmIHNwYWNlLWJldHdlZW4gPT0gYWxpZ25cbiAgICByZXR1cm4ganVzdGlmeVxuICBlbHNlXG4gICAgcmV0dXJuIGFsaWduXG5cbi8vXG4vLyA4LiBBbGlnbm1lbnRcbi8vICAgIC0gaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1mbGV4Ym94LyNhbGlnbm1lbnRcbi8vXG5qdXN0aWZ5LWNvbnRlbnQoYWxpZ24pXG4gIC8vIG9ic29sZXRlXG4gIGlmIGJveCBpbiBmbGV4LXZlcnNpb25cbiAgICB2ZW5kb3IoJ2JveC1wYWNrJywgLWNvbnZlcnQtanVzdGlmeShhbGlnbiksIGlnbm9yZTogbXMgb2ZmaWNpYWwpXG5cbiAgLy8gbmV3XG4gIGlmIGZsZXggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdmbGV4LXBhY2snLCAtY29udmVydC1qdXN0aWZ5KGFsaWduKSwgb25seTogbXMpXG4gICAgdmVuZG9yKCdqdXN0aWZ5LWNvbnRlbnQnLCBhbGlnbiwgb25seTogd2Via2l0IG9mZmljaWFsKVxuXG5hbGlnbi1jb250ZW50KGFsaWduKVxuICAvLyBXQVJOOiBPYnNvbGV0ZSBzcGVjIGRvZXMgbm90IGFsbG93IGZvciBhZGp1c3RtZW50IGhlcmVcbiAgaWYgZmxleCBpbiBmbGV4LXZlcnNpb25cbiAgICB2ZW5kb3IoJ2ZsZXgtbGluZS1wYWNrJywgLWNvbnZlcnQtanVzdGlmeShhbGlnbiksIG9ubHk6IG1zKVxuICAgIHZlbmRvcignYWxpZ24tY29udGVudCcsIGFsaWduLCBvbmx5OiB3ZWJraXQgb2ZmaWNpYWwpXG5cbi8vIGNvbnZlcnRzIGFsaWdubWVudCBmcm9tICdmbGV4JyB0byBub3JtYWwgdmFsdWVcbi1jb252ZXJ0LWFsaWdubWVudChhbGlnbilcbiAgaWYgZmxleC1zdGFydCA9PSBhbGlnblxuICAgIHJldHVybiBzdGFydFxuICBlbHNlIGlmIGZsZXgtZW5kID09IGFsaWduXG4gICAgcmV0dXJuIGVuZFxuICBlbHNlXG4gICAgcmV0dXJuIGFsaWduXG5cbmFsaWduLWl0ZW1zKGFsaWduKVxuICAvLyBvYnNvbGV0ZVxuICBpZiBib3ggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdib3gtYWxpZ24nLCAtY29udmVydC1hbGlnbm1lbnQoYWxpZ24pLCBpZ25vcmU6IG1zIG9mZmljaWFsKVxuXG4gIC8vIG5ld1xuICBpZiBmbGV4IGluIGZsZXgtdmVyc2lvblxuICAgIHZlbmRvcignZmxleC1hbGlnbicsIC1jb252ZXJ0LWFsaWdubWVudChhbGlnbiksIG9ubHk6IG1zKVxuICAgIHZlbmRvcignYWxpZ24taXRlbXMnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBvZmZpY2lhbClcblxuYWxpZ24tc2VsZihhbGlnbilcbiAgLy8gV0FSTjogT2Jzb2xldGUgc3BlYyBkb2VzIG5vdCBhbGxvdyBmb3Igb3ZlcnJpZGluZyBhbGlnbm1lbnQgb24gaW5kaXZpZHVhbCBpdGVtcy5cbiAgaWYgZmxleCBpbiBmbGV4LXZlcnNpb25cbiAgICB2ZW5kb3IoJ2FsaWduLXNlbGYnLCBhbGlnbiwgb25seTogd2Via2l0IG9mZmljaWFsKVxuICAgIHZlbmRvcignZmxleC1pdGVtLWFsaWduJywgLWNvbnZlcnQtYWxpZ25tZW50KGFsaWduKSwgb25seTogbXMpXG4iLCIvKlxuICogSGVscGVyIGZvciBib3JkZXItcmFkaXVzKCkuXG4gKi9cblxuLWFwcGx5LWJvcmRlci1yYWRpdXMocG9zLCBpbXBvcnRhbmNlKVxuICBpZiBsZW5ndGgocG9zKSA9PSAzXG4gICAgLy8gYm9yZGVyLXJhZGl1czogPHRvcCB8IGJvdHRvbT4gPGxlZnQgfCByaWdodD4gPG4+XG4gICAgeSA9IHBvc1swXVxuICAgIHggPSBwb3NbMV1cbiAgICAvLyBXZSBkb24ndCB1c2UgdmVuZG9yIGZvciBib2Rlci1yYWRpdXMgYW55bW9yZVxuICAgIC8vIHZlbmRvcignYm9yZGVyLXJhZGl1cy0lcyVzJyAlIHBvcywgcG9zWzJdLCBvbmx5OiB3ZWJraXQgb2ZmaWNpYWwpXG4gICAgeydib3JkZXItJXMtJXMtcmFkaXVzJyAlIHBvc306IHBvc1syXSBpbXBvcnRhbmNlXG4gIGVsc2UgaWYgcG9zWzBdIGluICh0b3AgYm90dG9tKVxuICAgIC8vIGJvcmRlci1yYWRpdXM6IDx0b3AgfCBib3R0b20+IDxuPlxuICAgIC1hcHBseS1ib3JkZXItcmFkaXVzKHBvc1swXSBsZWZ0IHBvc1sxXSwgaW1wb3J0YW5jZSlcbiAgICAtYXBwbHktYm9yZGVyLXJhZGl1cyhwb3NbMF0gcmlnaHQgcG9zWzFdLCBpbXBvcnRhbmNlKVxuICBlbHNlIGlmIHBvc1swXSBpbiAobGVmdCByaWdodClcbiAgICAvLyBib3JkZXItcmFkaXVzOiA8bGVmdCB8IHJpZ2h0PiA8bj5cbiAgICB1bnNoaWZ0KHBvcywgdG9wKTtcbiAgICAtYXBwbHktYm9yZGVyLXJhZGl1cyhwb3MsIGltcG9ydGFuY2UpXG4gICAgcG9zWzBdID0gYm90dG9tXG4gICAgLWFwcGx5LWJvcmRlci1yYWRpdXMocG9zLCBpbXBvcnRhbmNlKVxuXG4vKlxuICogYm9yZGVyLXJhZGl1cyBzdXBwb3J0aW5nIGF1Z21lbnRlZCBiZWhhdmlvci5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICBib3JkZXItcmFkaXVzOiAycHggNXB4XG4gKiAgICBib3JkZXItcmFkaXVzOiB0b3AgNXB4IGJvdHRvbSAxMHB4XG4gKiAgICBib3JkZXItcmFkaXVzOiBsZWZ0IDVweFxuICogICAgYm9yZGVyLXJhZGl1czogdG9wIGxlZnQgNXB4XG4gKiAgICBib3JkZXItcmFkaXVzOiB0b3AgbGVmdCAxMHB4IGJvdHRvbSByaWdodCA1cHhcbiAqICAgIGJvcmRlci1yYWRpdXM6IHRvcCBsZWZ0IDEwcHgsIGJvdHRvbSByaWdodCA1cHhcbiAqXG4gKi9cblxuYm9yZGVyLXJhZGl1cygpXG4gIHBvcyA9ICgpXG4gIGF1Z21lbnRlZCA9IGZhbHNlXG4gIGltcG9ydGFuY2UgPSBhcmd1bWVudHNbbGVuZ3RoKGFyZ3VtZW50cykgLSAxXSA9PSAhaW1wb3J0YW50ID8gIWltcG9ydGFudCA6IHVucXVvdGUoJycpXG5cbiAgZm9yIGFyZ3MgaW4gYXJndW1lbnRzXG4gICAgZm9yIGFyZyBpbiBhcmdzXG4gICAgICBpZiBhcmcgaXMgYSAnaWRlbnQnXG4gICAgICAgIGFwcGVuZChwb3MsIGFyZylcbiAgICAgICAgYXVnbWVudGVkID0gdHJ1ZVxuICAgICAgZWxzZVxuICAgICAgICBhcHBlbmQocG9zLCBhcmcpXG4gICAgICAgIGlmIGF1Z21lbnRlZFxuICAgICAgICAgIC1hcHBseS1ib3JkZXItcmFkaXVzKHBvcywgaW1wb3J0YW5jZSlcbiAgICAgICAgICBwb3MgPSAoKVxuICBib3JkZXItcmFkaXVzIHBvcyB1bmxlc3MgYXVnbWVudGVkXG4iLCIvKlxuICogYm9yZGVyOiA8Y29sb3I+XG4gKiBib3JkZXI6IC4uLlxuICovXG5cbmJvcmRlcihjb2xvciwgYXJncy4uLilcbiAgaWYgY29sb3IgaXMgYSAnY29sb3InXG4gICAgYm9yZGVyOiAxcHggc29saWQgY29sb3IgYXJnc1xuICBlbHNlXG4gICAgYm9yZGVyOiBhcmd1bWVudHNcbiIsIjpyb290XG4gIC0tZ2xvYmFsLWZvbnQtc2l6ZTogJGZvbnQtc2l6ZVxuICAtLWdsb2JhbC1iZzogJGJvZHktYmdcbiAgLS1mb250LWNvbG9yOiAkZm9udC1ibGFja1xuICAtLWhyLWJvcmRlcjogbGlnaHRlbigkdGhlbWUtaHItY29sb3IsIDUwJSlcbiAgLS1oci1iZWZvcmUtY29sb3I6IGxpZ2h0ZW4oJHRoZW1lLWhyLWNvbG9yLCAzMCUpXG4gIC0tc2VhcmNoLWJnOiAkc2VhcmNoLWJnXG4gIC0tc2VhcmNoLWlucHV0LWNvbG9yOiAkc2VhcmNoLWlucHV0LWNvbG9yXG4gIC0tc2VhcmNoLWEtY29sb3I6ICRzZWFyY2gtYS1jb2xvclxuICAtLXByZWxvYWRlci1iZzogJHByZWxvYWRlci1iZ1xuICAtLXByZWxvYWRlci1jb2xvcjogJHByZWxvYWRlci13b3JkLWNvbG9yXG4gIC0tdGFiLWJvcmRlci1jb2xvcjogJHRhYi1ib3JkZXItY29sb3JcbiAgLS10YWItYnV0dG9uLWJnOiAkdGFiLWJ1dHRvbi1iZ1xuICAtLXRhYi1idXR0b24tY29sb3I6ICR0YWItYnV0dG9uLWNvbG9yXG4gIC0tdGFiLWJ1dHRvbi1ob3Zlci1iZzogJHRhYi1idXR0b24taG92ZXItYmdcbiAgLS10YWItYnV0dG9uLWFjdGl2ZS1iZzogJHRhYi1idXR0b24tYWN0aXZlLWJnXG4gIC0tY2FyZC1iZzogJGNhcmQtYmdcbiAgLS1jYXJkLW1ldGE6ICR0aGVtZS1tZXRhLWNvbG9yXG4gIC0tc2lkZWJhci1iZzogJHNpZGViYXItYmFja2dyb3VuZFxuICAtLXNpZGViYXItbWVudS1iZzogJHdoaXRlXG4gIC0tYnRuLWhvdmVyLWNvbG9yOiAkYnV0dG9uLWhvdmVyLWNvbG9yXG4gIC0tYnRuLWNvbG9yOiAkYnV0dG9uLWNvbG9yXG4gIC0tYnRuLWJnOiAkYnV0dG9uLWJnXG4gIC0tdGV4dC1iZy1ob3ZlcjogcmdiYSgkdGV4dC1iZy1ob3ZlciwgLjcpXG4gIC0tbGlnaHQtZ3JleTogJGxpZ2h0LWdyZXlcbiAgLS1kYXJrLWdyZXk6ICRkYXJrLWdyZXlcbiAgLS13aGl0ZTogJHdoaXRlXG4gIC0tdGV4dC1oaWdobGlnaHQtY29sb3I6ICR0ZXh0LWhpZ2hsaWdodC1jb2xvclxuICAtLWJsb2NrcXVvdGUtY29sb3I6ICRibG9ja3F1b3RlLWNvbG9yXG4gIC0tYmxvY2txdW90ZS1iZzogJGJsb2NrcXVvdGUtYmFja2dyb3VuZC1jb2xvclxuICAtLXJld2FyZC1wb3A6ICRyZXdhcmQtcG9wLXVwLWJnXG4gIC0tdG9jLWxpbmstY29sb3I6ICR0b2MtbGluay1jb2xvclxuICAtLWNhcmQtYm94LXNoYWRvdzogMCAzcHggOHB4IDZweCByZ2JhKDcsIDE3LCAyNywgLjA1KVxuICAtLWNhcmQtaG92ZXItYm94LXNoYWRvdzogMCAzcHggOHB4IDZweCByZ2JhKDcsIDE3LCAyNywgLjA5KVxuICAtLXBzZXVkby1ob3ZlcjogJHBzZXVkby1ob3ZlclxuICAtLWhlYWRsaW5lLXByZXN1ZG86ICNhMGEwYTBcbiAgLS1zY3JvbGxiYXItY29sb3I6ICRzY3JvbGxiYXItY29sb3JcbiAgLS1kZWZhdWx0LWJnLWNvbG9yOiAkdGhlbWUtY29sb3JcbiAgLS16b29tLWJnOiAjZmZmXG4gIC0tbWFyay1iZzogYWxwaGEoJGRhcmstYmxhY2ssIC4zKVxuXG5ib2R5XG4gIHBvc2l0aW9uOiByZWxhdGl2ZVxuICBvdmVyZmxvdy15OiBzY3JvbGxcbiAgbWluLWhlaWdodDogMTAwJVxuICBiYWNrZ3JvdW5kOiB2YXIoLS1nbG9iYWwtYmcpXG4gIGNvbG9yOiB2YXIoLS1mb250LWNvbG9yKVxuICBmb250LXNpemU6IHZhcigtLWdsb2JhbC1mb250LXNpemUpXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHlcbiAgbGluZS1oZWlnaHQ6ICR0ZXh0LWxpbmUtaGVpZ2h0XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKVxuICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aFxuXG4gIGlmICFoZXhvLWNvbmZpZygnY29weS5lbmFibGUnKVxuICAgIHVzZXItc2VsZWN0OiBub25lXG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZVxuXG4vLyBzY3JvbGxiYXIgLSBmaXJlZm94XG5ALW1vei1kb2N1bWVudCB1cmwtcHJlZml4KClcbiAgKlxuICAgIHNjcm9sbGJhci13aWR0aDogdGhpblxuICAgIHNjcm9sbGJhci1jb2xvcjogdmFyKC0tc2Nyb2xsYmFyLWNvbG9yKSB0cmFuc3BhcmVudFxuXG4vLyBzY3JvbGxiYXIgLSBjaHJvbWUvc2FmYXJpXG4qOjotd2Via2l0LXNjcm9sbGJhclxuICB3aWR0aDogNXB4XG4gIGhlaWdodDogNXB4XG5cbio6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iXG4gIGJhY2tncm91bmQ6IHZhcigtLXNjcm9sbGJhci1jb2xvcilcblxuKjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2tcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRcblxuaW5wdXQ6OnBsYWNlaG9sZGVyXG4gIGNvbG9yOiB2YXIoLS1mb250LWNvbG9yKVxuXG5pZiBoZXhvLWNvbmZpZygnYmFja2dyb3VuZCcpXG4gICN3ZWJfYmdcbiAgICBwb3NpdGlvbjogZml4ZWRcbiAgICB6LWluZGV4OiAtOTk5XG4gICAgd2lkdGg6IDEwMCVcbiAgICBoZWlnaHQ6IDEwMCVcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGxvY2FsXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXRcblxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2XG4gIHBvc2l0aW9uOiByZWxhdGl2ZVxuICBtYXJnaW46IDIwcHggMCAxNHB4XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWhpZ2hsaWdodC1jb2xvcilcbiAgZm9udC13ZWlnaHQ6IGJvbGRcblxuICBjb2RlXG4gICAgZm9udC1zaXplOiBpbmhlcml0ICFpbXBvcnRhbnRcblxuKlxuICBib3gtc2l6aW5nOiBib3JkZXItYm94XG5cbi50YWJsZS13cmFwXG4gIG92ZXJmbG93LXg6IHNjcm9sbFxuICBtYXJnaW46IDAgMCAyMHB4XG5cbiAgaWYgaGV4by1jb25maWcoJ3JvdW5kZWRfY29ybmVyc191aScpXG4gICAgJGJvcmRlclJhZGl1cyA9IDVweFxuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXJSYWRpdXNcblxuICAgIHRhYmxlXG4gICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyUmFkaXVzXG5cbiAgICAgIHRoZWFkID4gdHI6Zmlyc3QtY2hpbGRcbiAgICAgICAgdGg6Zmlyc3QtY2hpbGRcbiAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkYm9yZGVyUmFkaXVzXG5cbiAgICAgICAgdGg6bGFzdC1jaGlsZFxuICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkYm9yZGVyUmFkaXVzXG5cbiAgICAgIHRib2R5ID4gdHI6bGFzdC1jaGlsZFxuICAgICAgICB0ZDpmaXJzdC1jaGlsZFxuICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRib3JkZXJSYWRpdXNcblxuICAgICAgICB0ZDpsYXN0LWNoaWxkXG4gICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRib3JkZXJSYWRpdXNcblxudGFibGVcbiAgZGlzcGxheTogdGFibGVcbiAgd2lkdGg6IDEwMCVcbiAgYm9yZGVyLXNwYWNpbmc6IDBcbiAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZVxuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tbGlnaHQtZ3JleSlcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1saWdodC1ncmV5KVxuICBlbXB0eS1jZWxsczogc2hvd1xuXG4gIHRoZWFkXG4gICAgYmFja2dyb3VuZDogYWxwaGEoJHRhYmxlLXRoZWFkLWJnLCAxMCUpXG5cbiAgdGgsXG4gIHRkXG4gICAgcGFkZGluZzogNnB4IDEycHhcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saWdodC1ncmV5KVxuICAgIGJvcmRlci10b3A6IG5vbmVcbiAgICBib3JkZXItbGVmdDogbm9uZVxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGVcblxuKjo6c2VsZWN0aW9uXG4gIGJhY2tncm91bmQ6ICR0aGVtZS10ZXh0LXNlbGVjdGlvbi1jb2xvclxuICBjb2xvcjogI0Y3RjdGN1xuXG5idXR0b25cbiAgcGFkZGluZzogMFxuICBvdXRsaW5lOiAwXG4gIGJvcmRlcjogbm9uZVxuICBiYWNrZ3JvdW5kOiBub25lXG4gIGN1cnNvcjogcG9pbnRlclxuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvblxuXG5hXG4gIGNvbG9yOiAkYS1saW5rLWNvbG9yXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZVxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmRcbiAgdHJhbnNpdGlvbjogYWxsIC4yc1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkXG5cbiAgJjpob3ZlclxuICAgIGNvbG9yOiAkbGlnaHQtYmx1ZVxuXG4vLyBmb250XG5pZiAkc2l0ZS1uYW1lLWZvbnRcbiAgI3NpdGUtdGl0bGUsXG4gICNzaXRlLXN1YnRpdGxlLFxuICAuc2l0ZS1uYW1lLFxuICAjYXNpZGUtY29udGVudCAuYXV0aG9yLWluZm8tbmFtZSxcbiAgI2FzaWRlLWNvbnRlbnQgLmF1dGhvci1pbmZvLWRlc2NyaXB0aW9uXG4gICAgZm9udC1mYW1pbHk6ICRzaXRlLW5hbWUtZm9udFxuXG4udGV4dC1jZW50ZXJcbiAgdGV4dC1hbGlnbjogY2VudGVyXG5cbi50ZXh0LXJpZ2h0XG4gIHRleHQtYWxpZ246IHJpZ2h0XG5cbmltZ1xuICAmW3NyYz0nJ10sXG4gICY6bm90KFtzcmNdKVxuICAgIG9wYWNpdHk6IDBcblxuLy8gbGF6eWxvYWQgYmx1clxuaWYgaGV4by1jb25maWcoJ2xhenlsb2FkLmVuYWJsZScpICYmIGhleG8tY29uZmlnKCdsYXp5bG9hZC5ibHVyJykgJiYgIWhleG8tY29uZmlnKCdsYXp5bG9hZC5wbGFjZWhvbGRlcicpXG4gIGltZ1xuICAgICZbZGF0YS1sYXp5LXNyY106bm90KC5sb2FkZWQpXG4gICAgICBmaWx0ZXI6IGJsdXIoOHB4KSBicmlnaHRuZXNzKDEpXG5cbiAgICAmW2RhdGEtbGF6eS1zcmNdLmVycm9yXG4gICAgICBmaWx0ZXI6IG5vbmVcblxuLmltZy1hbHRcbiAgbWFyZ2luOiAtMTBweCAwIDEwcHhcbiAgY29sb3I6ICM4NTg1ODVcblxuICAmOmhvdmVyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnRcblxuYmxvY2txdW90ZVxuICBtYXJnaW46IDAgMCAyMHB4XG4gIHBhZGRpbmc6IDdweCAxNXB4XG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgJGJsb2NrcXVvdGUtcGFkZGluZy1jb2xvclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ibG9ja3F1b3RlLWJnKVxuICBjb2xvcjogdmFyKC0tYmxvY2txdW90ZS1jb2xvcilcbiAgYWRkQm9yZGVyUmFkaXVzKClcblxuICBmb290ZXJcbiAgICBjaXRlXG4gICAgICAmOmJlZm9yZVxuICAgICAgICBwYWRkaW5nOiAwIDVweFxuICAgICAgICBjb250ZW50OiAn4oCUJ1xuXG4gICYgPiA6bGFzdC1jaGlsZFxuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudFxuXG4uZmEtZndcbiAgd2lkdGg6IDEuMjVlbVxuICB0ZXh0LWFsaWduOiBjZW50ZXIiLCIkaGlnaGxpZ2h0X3RoZW1lID0gaGV4by1jb25maWcoJ2NvZGVfYmxvY2tzLnRoZW1lJylcbiRoaWdobGlnaHRfbWFjc3R5bGUgPSBoZXhvLWNvbmZpZygnY29kZV9ibG9ja3MubWFjU3R5bGUnKVxud29yZFdyYXAgPSAkaGlnaGxpZ2h0X2VuYWJsZSAmJiAhJGhpZ2hsaWdodF9saW5lX251bWJlciAmJiBoZXhvLWNvbmZpZygnY29kZV9ibG9ja3Mud29yZF93cmFwJylcblxuQHJlcXVpcmUgJ3RoZW1lJ1xuXG46cm9vdFxuICAtLWhsLWNvbG9yOiAkaGlnaGxpZ2h0LWZvcmVncm91bmRcbiAgLS1obC1iZzogJGhpZ2hsaWdodC1iYWNrZ3JvdW5kXG4gIC0taGx0b29scy1iZzogJGhpZ2hsaWdodC10b29scy5iZy1jb2xvclxuICAtLWhsdG9vbHMtY29sb3I6ICRoaWdobGlnaHQtdG9vbHMuY29sb3JcbiAgLS1obG51bWJlci1iZzogJGhpZ2hsaWdodC1ndXR0ZXIuYmctY29sb3JcbiAgLS1obG51bWJlci1jb2xvcjogJGhpZ2hsaWdodC1ndXR0ZXIuY29sb3JcbiAgLS1obHNjcm9sbGJhci1iZzogJGhpZ2hsaWdodC1zY3JvbGxiYXJcbiAgLS1obGV4cGFuZC1iZzogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgkaGlnaGxpZ2h0LWJhY2tncm91bmQsIC42KSwgcmdiYSgkaGlnaGxpZ2h0LWJhY2tncm91bmQsIC45KSlcblxuW2RhdGEtdGhlbWU9J2RhcmsnXVxuICAtLWhsLWNvbG9yOiBhbHBoYSgjRkZGRkZGLCAuNylcbiAgLS1obC1iZzogbGlnaHRlbigjMTIxMjEyLCAyKVxuICAtLWhsdG9vbHMtYmc6IGxpZ2h0ZW4oIzEyMTIxMiwgMylcbiAgLS1obHRvb2xzLWNvbG9yOiAjOTBhNGFlXG4gIC0taGxudW1iZXItYmc6IGxpZ2h0ZW4oIzEyMTIxMiwgMilcbiAgLS1obG51bWJlci1jb2xvcjogYWxwaGEoI0ZGRkZGRiwgLjQpXG4gIC0taGxzY3JvbGxiYXItYmc6IGxpZ2h0ZW4oIzEyMTIxMiwgNSlcbiAgLS1obGV4cGFuZC1iZzogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYShsaWdodGVuKCMxMjEyMTIsIDIpLCAuNiksIHJnYmEobGlnaHRlbigjMTIxMjEyLCAyKSwgLjkpKVxuXG5pZiAkaGlnaGxpZ2h0X2VuYWJsZVxuICBAcmVxdWlyZSAnaGlnaGxpZ2h0L2luZGV4J1xuXG5pZiAkcHJpc21qc19lbmFibGVcbiAgQHJlcXVpcmUgJ3ByaXNtanMvaW5kZXgnXG5cbiRjb2RlLWJsb2NrXG4gIG92ZXJmbG93OiBhdXRvXG4gIG1hcmdpbjogMCAwIDIwcHhcbiAgcGFkZGluZzogMFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1obC1iZylcbiAgY29sb3I6IHZhcigtLWhsLWNvbG9yKVxuICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWNvZGUtYmxvY2tcblxuICBpZiB3b3JkV3JhcFxuICAgIGNvdW50ZXItcmVzZXQ6IGxpbmVcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXBcblxuLmNvbnRhaW5lclxuICBwcmUsXG4gIGNvZGVcbiAgICBmb250LXNpemU6ICRjb2RlLWZvbnQtc2l6ZVxuICAgIGZvbnQtZmFtaWx5OiAkY29kZS1mb250LWZhbWlseSAhaW1wb3J0YW50XG4gICAgYWRkQm9yZGVyUmFkaXVzKClcblxuICBjb2RlXG4gICAgcGFkZGluZzogMnB4IDVweFxuICAgIGJhY2tncm91bmQ6ICRjb2RlLWJhY2tncm91bmRcbiAgICBjb2xvcjogJGNvZGUtZm9yZWdyb3VuZFxuXG4gIHByZVxuICAgIEBleHRlbmQgJGNvZGUtYmxvY2tcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHhcblxuICAgIGNvZGVcbiAgICAgIHBhZGRpbmc6IDBcbiAgICAgIGJhY2tncm91bmQ6IG5vbmVcbiAgICAgIGNvbG9yOiB2YXIoLS1obC1jb2xvcilcbiAgICAgIHRleHQtc2hhZG93OiBub25lXG5cbiAgZmlndXJlLmhpZ2hsaWdodFxuICAgIEBleHRlbmQgJGNvZGUtYmxvY2tcbiAgICBwb3NpdGlvbjogcmVsYXRpdmVcbiAgICBhZGRCb3JkZXJSYWRpdXMoKVxuXG4gICAgcHJlXG4gICAgICBtYXJnaW46IDBcbiAgICAgIHBhZGRpbmc6IDhweCAwXG4gICAgICBib3JkZXI6IG5vbmVcblxuICAgIGZpZ2NhcHRpb24sXG4gICAgLmNhcHRpb25cbiAgICAgIHBhZGRpbmc6IDZweCAwIDJweCAxNHB4XG4gICAgICBmb250LXNpemU6ICRjb2RlLWZvbnQtc2l6ZVxuICAgICAgbGluZS1oZWlnaHQ6IDFlbVxuXG4gICAgICBhXG4gICAgICAgIGZsb2F0OiByaWdodFxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4XG4gICAgICAgIGNvbG9yOiB2YXIoLS1obC1jb2xvcilcblxuICAgICAgICAmOmhvdmVyXG4gICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0taGwtY29sb3IpXG5cbiAgICAmLmNvcHktdHJ1ZVxuICAgICAgdXNlci1zZWxlY3Q6IGFsbFxuICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogYWxsXG5cbiAgICAgICYgPiB0YWJsZSxcbiAgICAgICYgPiBwcmVcbiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudFxuICAgICAgICBvcGFjaXR5OiAwXG5cbiAgLmhpZ2hsaWdodC10b29sc1xuICAgIGRpc3BsYXk6IGZsZXhcbiAgICBhbGlnbi1pdGVtczogY2VudGVyXG4gICAgcGFkZGluZzogMCA4cHhcbiAgICBtaW4taGVpZ2h0OiAyNHB4XG4gICAgaGVpZ2h0OiAyLjE1ZW1cbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1obHRvb2xzLWJnKVxuICAgIGNvbG9yOiB2YXIoLS1obHRvb2xzLWNvbG9yKVxuICAgIGZvbnQtc2l6ZTogJGNvZGUtZm9udC1zaXplXG4gICAgb3ZlcmZsb3c6IGhpZGRlblxuXG4gICAgJiA+ICpcbiAgICAgIHBhZGRpbmc6IDVweFxuXG4gICAgaVxuICAgICAgY3Vyc29yOiBwb2ludGVyXG4gICAgICB0cmFuc2l0aW9uOiBhbGwgLjNzXG5cbiAgICAgICY6aG92ZXJcbiAgICAgICAgY29sb3I6ICR0aGVtZS1jb2xvclxuXG4gICAgJi5jbG9zZWRcbiAgICAgICYgfiAqXG4gICAgICAgIGRpc3BsYXk6IG5vbmVcblxuICAgICAgLmV4cGFuZFxuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpXG5cbiAgICBpZiAhJGhpZ2hsaWdodF9tYWNzdHlsZVxuICAgICAgJiA+IC5tYWNTdHlsZVxuICAgICAgICBwYWRkaW5nOiAwXG5cbiAgICAuY29kZS1sYW5nXG4gICAgICBmbGV4OiAxXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlXG4gICAgICBmb250LXdlaWdodDogYm9sZFxuICAgICAgZm9udC1zaXplOiAxLjE1ZW1cbiAgICAgIHVzZXItc2VsZWN0OiBub25lXG4gICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lXG4gICAgICBwYWRkaW5nIDJweFxuXG4gICAgLmNvcHktbm90aWNlXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAycHhcbiAgICAgIG9wYWNpdHk6IDBcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjRzXG5cbiAgICBpZiBoZXhvLWNvbmZpZygnY29kZV9ibG9ja3MubGFuZ3VhZ2UnKVxuICAgICAgLmNvZGUtbGFuZ1xuICAgICAgICBmbGV4OiAxXG4gICAgZWxzZSBpZiAoISRoaWdobGlnaHRfbWFjc3R5bGUgJiYgaGV4by1jb25maWcoJ2NvZGVfYmxvY2tzLnNocmluaycpICE9ICdub25lJylcbiAgICAgICYgPiBkaXY6bnRoLWNoaWxkKDIpXG4gICAgICAgIGZsZXg6IDFcbiAgICBlbHNlXG4gICAgICAubWFjU3R5bGVcbiAgICAgICAgZmxleDogMVxuXG4gIC5ndXR0ZXJcbiAgICB1c2VyLXNlbGVjdDogbm9uZVxuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmVcblxuICAuZ2lzdCB0YWJsZVxuICAgIHdpZHRoOiBhdXRvXG5cbiAgICB0ZFxuICAgICAgYm9yZGVyOiBub25lXG5cbmlmICRoaWdobGlnaHRfbWFjc3R5bGVcbiAgLmNvbnRhaW5lclxuICAgIGZpZ3VyZS5oaWdobGlnaHRcbiAgICAgIG1hcmdpbjogMCAwIDI0cHhcbiAgICAgIGJvcmRlci1yYWRpdXM6IDdweFxuICAgICAgYm94LXNoYWRvdzogMCA1cHggMTBweCAwICRoaWdobGlnaHQtbWFjLWJvcmRlclxuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMClcblxuICAgICAgLmhpZ2hsaWdodC10b29sc1xuICAgICAgICAubWFjU3R5bGVcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4XG5cbiAgICAgICAgICAmID4gKlxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHhcbiAgICAgICAgICAgIHdpZHRoOiAxMnB4XG4gICAgICAgICAgICBoZWlnaHQ6IDEycHhcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJVxuXG4gICAgICAgICAgJiA+IDpsYXN0LWNoaWxkXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweFxuXG4gICAgICAgICAgLm1hYy1jbG9zZVxuICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZjNjI1ZFxuXG4gICAgICAgICAgLm1hYy1taW5pbWl6ZVxuICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZkYmM0MFxuXG4gICAgICAgICAgLm1hYy1tYXhpbWl6ZVxuICAgICAgICAgICAgYmFja2dyb3VuZDogIzM1Y2Q0YlxuXG4gICAgICAgIGlmIGhleG8tY29uZmlnKCdjb2RlX2Jsb2Nrcy5zaHJpbmsnKSAhPSAnbm9uZSdcbiAgICAgICAgICAmID4gOm50aC1jaGlsZCgyKVxuICAgICAgICAgICAgb3JkZXI6IDhcblxuICAgICAgICAgICYuY2xvc2VkXG4gICAgICAgICAgICAuZXhwYW5kXG4gICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKVxuXG5pZiBoZXhvLWNvbmZpZygnY29kZV9ibG9ja3MuaGVpZ2h0X2xpbWl0JylcbiAgLmNvbnRhaW5lclxuICAgIC5jb2RlLWV4cGFuZC1idG5cbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxuICAgICAgYm90dG9tOiAwXG4gICAgICB6LWluZGV4OiAxMFxuICAgICAgd2lkdGg6IDEwMCVcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWhsZXhwYW5kLWJnKVxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyXG4gICAgICBmb250LXNpemU6ICRjb2RlLWZvbnQtc2l6ZVxuICAgICAgY3Vyc29yOiBwb2ludGVyXG5cbiAgICAgIGlcbiAgICAgICAgcGFkZGluZzogNnB4IDBcbiAgICAgICAgY29sb3I6IHZhcigtLWhsbnVtYmVyLWNvbG9yKVxuICAgICAgICBhbmltYXRpb246IGNvZGUtZXhwYW5kLWtleSAxLjJzIGluZmluaXRlXG5cbiAgICAgICYuZXhwYW5kLWRvbmVcbiAgICAgICAgJiA+IGlcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpXG5cbiAgICAgICAgJiArIHRhYmxlLFxuICAgICAgICAmICsgcHJlXG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS44ZW1cblxuICAgICAgJjpub3QoLmV4cGFuZC1kb25lKVxuICAgICAgICAmIH4gdGFibGUsXG4gICAgICAgICYgfiBwcmVcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuXG4gICAgICAgICAgaGVpZ2h0OiB1bml0KGhleG8tY29uZmlnKCdjb2RlX2Jsb2Nrcy5oZWlnaHRfbGltaXQnKSwgcHgpXG4gIFxuICBAa2V5ZnJhbWVzIGNvZGUtZXhwYW5kLWtleVxuICAgIDAlXG4gICAgICBvcGFjaXR5OiAuNlxuXG4gICAgNTAlXG4gICAgICBvcGFjaXR5OiAuMVxuXG4gICAgMTAwJVxuICAgICAgb3BhY2l0eTogLjZcblxuaWYgaGV4by1jb25maWcoJ2NvZGVfYmxvY2tzLmZ1bGxwYWdlJylcbiAgLmNvbnRhaW5lclxuICAgIGZpZ3VyZS5oaWdobGlnaHQuY29kZS1mdWxscGFnZVxuICAgICAgcG9zaXRpb246IGZpeGVkXG4gICAgICB0b3A6IDBcbiAgICAgIHJpZ2h0OiAwXG4gICAgICBib3R0b206IDBcbiAgICAgIGxlZnQ6IDBcbiAgICAgIHotaW5kZXg6IDk5OTlcbiAgICAgIG1hcmdpbjogMFxuICAgICAgYm9yZGVyLXJhZGl1czogMFxuICAgICAgYW5pbWF0aW9uOiBjb2RlLWZ1bGxwYWdlIC4zc1xuXG4gICAgICAuY29kZS1leHBhbmQtYnRuLFxuICAgICAgLmV4cGFuZFxuICAgICAgICBkaXNwbGF5OiBub25lXG5cbiAgICAgIC5oaWdobGlnaHQtdG9vbHNcbiAgICAgICAgJiB+IHByZSxcbiAgICAgICAgJiB+IHRhYmxlXG4gICAgICAgICAgZGlzcGxheTogYmxvY2tcbiAgICAgICAgICBvdmVyZmxvdzogYXV0b1xuICAgICAgICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDIuMTVlbSlcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwXG5cbiAgQGtleWZyYW1lcyBjb2RlLWZ1bGxwYWdlXG4gICAgMCUsXG4gICAgMTAwJVxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApXG5cbiAgICAyMCUsXG4gICAgNjAlXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTVweClcblxuICAgIDQwJSxcbiAgICA4MCVcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1cHgpIiwiZmlndXJlLmhpZ2hsaWdodFxuICB0YWJsZVxuICAgIC8vIHNjcm9sbGJhciAtIGZpcmVmb3hcbiAgICBALW1vei1kb2N1bWVudCB1cmwtcHJlZml4KClcbiAgICAgIHNjcm9sbGJhci1jb2xvcjogdmFyKC0taGxzY3JvbGxiYXItYmcpIHRyYW5zcGFyZW50XG5cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYlxuICAgICAgYmFja2dyb3VuZDogdmFyKC0taGxzY3JvbGxiYXItYmcpXG5cbiAgcHJlIC5kZWxldGlvblxuICAgIGNvbG9yOiAkaGlnaGxpZ2h0LWRlbGV0aW9uXG5cbiAgcHJlIC5hZGRpdGlvblxuICAgIGNvbG9yOiAkaGlnaGxpZ2h0LWFkZGl0aW9uXG5cbiAgcHJlIC5tZXRhXG4gICAgY29sb3I6ICRoaWdobGlnaHQtcHVycGxlXG5cbiAgcHJlXG4gICAgLmNvbW1lbnRcbiAgICAgIGNvbG9yOiAkaGlnaGxpZ2h0LWNvbW1lbnRcblxuICAgIC52YXJpYWJsZSxcbiAgICAuYXR0cmlidXRlLFxuICAgIC5yZWdleHAsXG4gICAgLnJ1YnkgLmNvbnN0YW50LFxuICAgIC54bWwgLnRhZyAudGl0bGUsXG4gICAgLnhtbCAucGksXG4gICAgLnhtbCAuZG9jdHlwZSxcbiAgICAuaHRtbCAuZG9jdHlwZSxcbiAgICAuY3NzIC5pZCxcbiAgICAudGFnIC5uYW1lLFxuICAgIC5jc3MgLmNsYXNzLFxuICAgIC5jc3MgLnBzZXVkb1xuICAgICAgY29sb3I6ICRoaWdobGlnaHQtcmVkXG5cbiAgICAudGFnXG4gICAgICBjb2xvcjogJGhpZ2hsaWdodC1hcXVhXG5cbiAgICAubnVtYmVyLFxuICAgIC5wcmVwcm9jZXNzb3IsXG4gICAgLmxpdGVyYWwsXG4gICAgLnBhcmFtcyxcbiAgICAuY29uc3RhbnQsXG4gICAgLmNvbW1hbmRcbiAgICAgIGNvbG9yOiAkaGlnaGxpZ2h0LW9yYW5nZVxuXG4gICAgLmJ1aWx0X2luXG4gICAgICBjb2xvcjogJGhpZ2hsaWdodC15ZWxsb3dcblxuICAgIC5ydWJ5IC5jbGFzcyAudGl0bGUsXG4gICAgLmNzcyAucnVsZXMgLmF0dHJpYnV0ZSxcbiAgICAuc3RyaW5nLFxuICAgIC52YWx1ZSxcbiAgICAuaW5oZXJpdGFuY2UsXG4gICAgLmhlYWRlcixcbiAgICAucnVieSAuc3ltYm9sLFxuICAgIC54bWwgLmNkYXRhLFxuICAgIC5zcGVjaWFsLFxuICAgIC5udW1iZXIsXG4gICAgLmZvcm11bGFcbiAgICAgIGNvbG9yOiAkaGlnaGxpZ2h0LWdyZWVuXG5cbiAgICAua2V5d29yZCxcbiAgICAudGl0bGUsXG4gICAgLmNzcyAuaGV4Y29sb3JcbiAgICAgIGNvbG9yOiAkaGlnaGxpZ2h0LWFxdWFcblxuICAgIC5mdW5jdGlvbixcbiAgICAucHl0aG9uIC5kZWNvcmF0b3IsXG4gICAgLnB5dGhvbiAudGl0bGUsXG4gICAgLnJ1YnkgLmZ1bmN0aW9uIC50aXRsZSxcbiAgICAucnVieSAudGl0bGUgLmtleXdvcmQsXG4gICAgLnBlcmwgLnN1YixcbiAgICAuamF2YXNjcmlwdCAudGl0bGUsXG4gICAgLmNvZmZlZXNjcmlwdCAudGl0bGVcbiAgICAgIGNvbG9yOiAkaGlnaGxpZ2h0LWJsdWVcblxuICAgIC50YWcgLmF0dHIsXG4gICAgLmphdmFzY3JpcHQgLmZ1bmN0aW9uXG4gICAgICBjb2xvcjogJGhpZ2hsaWdodC1wdXJwbGVcbiIsImlmICRoaWdobGlnaHRfdGhlbWUgIT0gZmFsc2VcbiAgQHJlcXVpcmUgJ2RpZmYnXG5cbi5jb250YWluZXJcbiAgZmlndXJlLmhpZ2hsaWdodFxuICAgIC5saW5lXG4gICAgICBpZiB3b3JkV3JhcFxuICAgICAgICAmOmJlZm9yZVxuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xuICAgICAgICAgIHBhZGRpbmc6IDAgNnB4IDAgMFxuICAgICAgICAgIG1pbi13aWR0aDogMzBweFxuICAgICAgICAgIGNvbG9yOiB2YXIoLS1obG51bWJlci1jb2xvcilcbiAgICAgICAgICBjb250ZW50OiBjb3VudGVyKGxpbmUpXG4gICAgICAgICAgY291bnRlci1pbmNyZW1lbnQ6IGxpbmVcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0XG5cbiAgICAgICYubWFya2VkXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRoaWdobGlnaHQtc2VsZWN0aW9uXG5cbiAgICB0YWJsZVxuICAgICAgZGlzcGxheTogYmxvY2tcbiAgICAgIG92ZXJmbG93OiBhdXRvXG4gICAgICBib3JkZXI6IG5vbmVcblxuICAgICAgdGRcbiAgICAgICAgcGFkZGluZzogMFxuICAgICAgICBib3JkZXI6IG5vbmVcblxuICAgIC5ndXR0ZXIgcHJlXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEwcHhcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWhsbnVtYmVyLWJnKVxuICAgICAgY29sb3I6IHZhcigtLWhsbnVtYmVyLWNvbG9yKVxuICAgICAgdGV4dC1hbGlnbjogcmlnaHRcblxuICAgIC5jb2RlIHByZVxuICAgICAgcGFkZGluZy1yaWdodDogMTBweFxuICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4XG4gICAgICB3aWR0aDogMTAwJVxuIiwiY2FsbGVkLWZyb20gPSAoKVxuXG52ZW5kb3JzID0gbW96IHdlYmtpdCBvIG1zIG9mZmljaWFsXG5cbi8vIHN0cmluZ2lmeSB0aGUgZ2l2ZW4gYXJnXG5cbi1zdHJpbmcoYXJnKVxuICB0eXBlKGFyZykgKyAnICcgKyBhcmdcblxuLy8gcmVxdWlyZSBhIGNvbG9yXG5cbnJlcXVpcmUtY29sb3IoY29sb3IpXG4gIHVubGVzcyBjb2xvciBpcyBhICdjb2xvcidcbiAgICBlcnJvcignUkdCIG9yIEhTTCB2YWx1ZSBleHBlY3RlZCwgZ290IGEgJyArIC1zdHJpbmcoY29sb3IpKVxuXG4vLyByZXF1aXJlIGEgdW5pdFxuXG5yZXF1aXJlLXVuaXQobilcbiAgdW5sZXNzIG4gaXMgYSAndW5pdCdcbiAgICBlcnJvcigndW5pdCBleHBlY3RlZCwgZ290IGEgJyArIC1zdHJpbmcobikpXG5cbi8vIHJlcXVpcmUgYSBzdHJpbmdcblxucmVxdWlyZS1zdHJpbmcoc3RyKVxuICB1bmxlc3Mgc3RyIGlzIGEgJ3N0cmluZycgb3Igc3RyIGlzIGEgJ2lkZW50J1xuICAgIGVycm9yKCdzdHJpbmcgZXhwZWN0ZWQsIGdvdCBhICcgKyAtc3RyaW5nKHN0cikpXG5cbi8vIE1hdGggZnVuY3Rpb25zXG5cbmFicyhuKSB7IG1hdGgobiwgJ2FicycpIH1cbm1pbihhLCBiKSB7IGEgPCBiID8gYSA6IGIgfVxubWF4KGEsIGIpIHsgYSA+IGIgPyBhIDogYiB9XG5cbi8vIFRyaWdvbm9tZXRyaWNzXG5QSSA9IC1tYXRoLXByb3AoJ1BJJylcblxucmFkaWFucy10by1kZWdyZWVzKGFuZ2xlKVxuICBhbmdsZSAqICgxODAgLyBQSSlcblxuZGVncmVlcy10by1yYWRpYW5zKGFuZ2xlKVxuICBhbmdsZSAqIChQSSAvIDE4MClcblxuc2luKG4pXG4gIG4gPSB1bml0KG4pID09ICdkZWcnID8gZGVncmVlcy10by1yYWRpYW5zKHVuaXQobiwgJycpKSA6IHVuaXQobiwgJycpXG4gIHJvdW5kKG1hdGgobiwgJ3NpbicpLCA5KVxuXG5jb3MobilcbiAgbiA9IHVuaXQobikgPT0gJ2RlZycgPyBkZWdyZWVzLXRvLXJhZGlhbnModW5pdChuLCAnJykpIDogdW5pdChuLCAnJylcbiAgcm91bmQobWF0aChuLCAnY29zJyksIDkpXG5cbi8vIFJvdW5kaW5nIE1hdGggZnVuY3Rpb25zXG5cbmNlaWwobiwgcHJlY2lzaW9uID0gMClcbiAgbXVsdGlwbGllciA9IDEwICoqIHByZWNpc2lvblxuICBtYXRoKG4gKiBtdWx0aXBsaWVyLCAnY2VpbCcpIC8gbXVsdGlwbGllclxuXG5mbG9vcihuLCBwcmVjaXNpb24gPSAwKVxuICBtdWx0aXBsaWVyID0gMTAgKiogcHJlY2lzaW9uXG4gIG1hdGgobiAqIG11bHRpcGxpZXIsICdmbG9vcicpIC8gbXVsdGlwbGllclxuXG5yb3VuZChuLCBwcmVjaXNpb24gPSAwKVxuICBtdWx0aXBsaWVyID0gMTAgKiogcHJlY2lzaW9uXG4gIG1hdGgobiAqIG11bHRpcGxpZXIsICdyb3VuZCcpIC8gbXVsdGlwbGllclxuXG4vLyByZXR1cm4gdGhlIHN1bSBvZiB0aGUgZ2l2ZW4gbnVtYmVyc1xuXG5zdW0obnVtcylcbiAgc3VtID0gMFxuICBzdW0gKz0gbiBmb3IgbiBpbiBudW1zXG5cbi8vIHJldHVybiB0aGUgYXZlcmFnZSBvZiB0aGUgZ2l2ZW4gbnVtYmVyc1xuXG5hdmcobnVtcylcbiAgc3VtKG51bXMpIC8gbGVuZ3RoKG51bXMpXG5cbi8vIHJldHVybiBhIHVuaXRsZXNzIG51bWJlciwgb3IgcGFzcyB0aHJvdWdoXG5cbnJlbW92ZS11bml0KG4pXG4gIGlmIHR5cGVvZihuKSBpcyBcInVuaXRcIlxuICAgIHVuaXQobiwgXCJcIilcbiAgZWxzZVxuICAgIG5cblxuLy8gY29udmVydCBhIHBlcmNlbnQgdG8gYSBkZWNpbWFsLCBvciBwYXNzIHRocm91Z2hcblxucGVyY2VudC10by1kZWNpbWFsKG4pXG4gIGlmIHVuaXQobikgaXMgXCIlXCJcbiAgICByZW1vdmUtdW5pdChuKSAvIDEwMFxuICBlbHNlXG4gICAgblxuXG4vLyBjaGVjayBpZiBuIGlzIGFuIG9kZCBudW1iZXJcblxub2RkKG4pXG4gIDEgPT0gbiAlIDJcblxuLy8gY2hlY2sgaWYgbiBpcyBhbiBldmVuIG51bWJlclxuXG5ldmVuKG4pXG4gIDAgPT0gbiAlIDJcblxuLy8gY2hlY2sgaWYgY29sb3IgaXMgbGlnaHRcblxubGlnaHQoY29sb3IpXG4gIGxpZ2h0bmVzcyhjb2xvcikgPj0gNTAlXG5cbi8vIGNoZWNrIGlmIGNvbG9yIGlzIGRhcmtcblxuZGFyayhjb2xvcilcbiAgbGlnaHRuZXNzKGNvbG9yKSA8IDUwJVxuXG4vLyBkZXNhdHVyYXRlIGNvbG9yIGJ5IGFtb3VudFxuXG5kZXNhdHVyYXRlKGNvbG9yLCBhbW91bnQpXG4gIGFkanVzdChjb2xvciwgJ3NhdHVyYXRpb24nLCAtIGFtb3VudClcblxuLy8gc2F0dXJhdGUgY29sb3IgYnkgYW1vdW50XG5cbnNhdHVyYXRlKGNvbG9yID0gJycsIGFtb3VudCA9IDEwMCUpXG4gIGlmIGNvbG9yIGlzIGEgJ2NvbG9yJ1xuICAgIGFkanVzdChjb2xvciwgJ3NhdHVyYXRpb24nLCBhbW91bnQpXG4gIGVsc2VcbiAgICB1bnF1b3RlKCBcInNhdHVyYXRlKFwiICsgY29sb3IgKyBcIilcIiApXG5cbi8vIGRhcmtlbiBieSB0aGUgZ2l2ZW4gYW1vdW50XG5cbmRhcmtlbihjb2xvciwgYW1vdW50KVxuICBhZGp1c3QoY29sb3IsICdsaWdodG5lc3MnLCAtIGFtb3VudClcblxuLy8gbGlnaHRlbiBieSB0aGUgZ2l2ZW4gYW1vdW50XG5cbmxpZ2h0ZW4oY29sb3IsIGFtb3VudClcbiAgYWRqdXN0KGNvbG9yLCAnbGlnaHRuZXNzJywgYW1vdW50KVxuXG4vLyBkZWNyZWFzZSBvcGFjaXR5IGJ5IGFtb3VudFxuXG5mYWRlLW91dChjb2xvciwgYW1vdW50KVxuICBjb2xvciAtIHJnYmEoYmxhY2ssIHBlcmNlbnQtdG8tZGVjaW1hbChhbW91bnQpKVxuXG4vLyBpbmNyZWFzZSBvcGFjaXR5IGJ5IGFtb3VudFxuXG5mYWRlLWluKGNvbG9yLCBhbW91bnQpXG4gIGNvbG9yICsgcmdiYShibGFjaywgcGVyY2VudC10by1kZWNpbWFsKGFtb3VudCkpXG5cbi8vIHNwaW4gaHVlIGJ5IGEgZ2l2ZW4gYW1vdW50XG5cbnNwaW4oY29sb3IsIGFtb3VudClcbiAgY29sb3IgKyB1bml0KGFtb3VudCwgZGVnKVxuXG4vLyBtaXggdHdvIGNvbG9ycyBieSBhIGdpdmVuIGFtb3VudFxuXG5taXgoY29sb3IxLCBjb2xvcjIsIHdlaWdodCA9IDUwJSlcbiAgdW5sZXNzIHdlaWdodCBpbiAwLi4xMDBcbiAgICBlcnJvcihcIldlaWdodCBtdXN0IGJlIGJldHdlZW4gMCUgYW5kIDEwMCVcIilcblxuICBpZiBsZW5ndGgoY29sb3IxKSA9PSAyXG4gICAgd2VpZ2h0ID0gY29sb3IxWzBdXG4gICAgY29sb3IxID0gY29sb3IxWzFdXG5cbiAgZWxzZSBpZiBsZW5ndGgoY29sb3IyKSA9PSAyXG4gICAgd2VpZ2h0ID0gMTAwIC0gY29sb3IyWzBdXG4gICAgY29sb3IyID0gY29sb3IyWzFdXG5cbiAgcmVxdWlyZS1jb2xvcihjb2xvcjEpXG4gIHJlcXVpcmUtY29sb3IoY29sb3IyKVxuXG4gIHAgPSB1bml0KHdlaWdodCAvIDEwMCwgJycpXG4gIHcgPSBwICogMiAtIDFcblxuICBhID0gYWxwaGEoY29sb3IxKSAtIGFscGhhKGNvbG9yMilcblxuICB3MSA9ICgoKHcgKiBhID09IC0xKSA/IHcgOiAodyArIGEpIC8gKDEgKyB3ICogYSkpICsgMSkgLyAyXG4gIHcyID0gMSAtIHcxXG5cbiAgY2hhbm5lbHMgPSAocmVkKGNvbG9yMSkgcmVkKGNvbG9yMikpIChncmVlbihjb2xvcjEpIGdyZWVuKGNvbG9yMikpIChibHVlKGNvbG9yMSkgYmx1ZShjb2xvcjIpKVxuICByZ2IgPSAoKVxuXG4gIGZvciBwYWlyIGluIGNoYW5uZWxzXG4gICAgcHVzaChyZ2IsIGZsb29yKHBhaXJbMF0gKiB3MSArIHBhaXJbMV0gKiB3MikpXG5cbiAgYTEgPSBhbHBoYShjb2xvcjEpICogcFxuICBhMiA9IGFscGhhKGNvbG9yMikgKiAoMSAtIHApXG4gIGFscGhhID0gYTEgKyBhMlxuXG4gIHJnYmEocmdiWzBdLCByZ2JbMV0sIHJnYlsyXSwgYWxwaGEpXG5cbi8vIGludmVydCBjb2xvcnMsIGxlYXZlIGFscGhhIGludGFjdFxuXG5pbnZlcnQoY29sb3IgPSAnJylcbiAgaWYgY29sb3IgaXMgYSAnY29sb3InXG4gICAgcmdiYSgjZmZmIC0gY29sb3IsIGFscGhhKGNvbG9yKSlcbiAgZWxzZVxuICAgIHVucXVvdGUoIFwiaW52ZXJ0KFwiICsgY29sb3IgKyBcIilcIiApXG5cbi8vIGdpdmUgY29tcGxlbWVudCBvZiB0aGUgZ2l2ZW4gY29sb3JcblxuY29tcGxlbWVudCggY29sb3IgKVxuICBzcGluKCBjb2xvciwgMTgwIClcblxuLy8gZ2l2ZSBncmF5c2NhbGUgb2YgdGhlIGdpdmVuIGNvbG9yXG5cbmdyYXlzY2FsZSggY29sb3IgPSAnJyApXG4gIGlmIGNvbG9yIGlzIGEgJ2NvbG9yJ1xuICAgIGRlc2F0dXJhdGUoIGNvbG9yLCAxMDAlIClcbiAgZWxzZVxuICAgIHVucXVvdGUoIFwiZ3JheXNjYWxlKFwiICsgY29sb3IgKyBcIilcIiApXG5cbi8vIG1peCB0aGUgZ2l2ZW4gY29sb3Igd2l0aCB3aGl0ZVxuXG50aW50KCBjb2xvciwgcGVyY2VudCApXG4gIG1peCggd2hpdGUsIGNvbG9yLCBwZXJjZW50IClcblxuLy8gbWl4IHRoZSBnaXZlbiBjb2xvciB3aXRoIGJsYWNrXG5cbnNoYWRlKCBjb2xvciwgcGVyY2VudCApXG4gIG1peCggYmxhY2ssIGNvbG9yLCBwZXJjZW50IClcblxuLy8gcmV0dXJuIHRoZSBsYXN0IHZhbHVlIGluIHRoZSBnaXZlbiBleHByXG5cbmxhc3QoZXhwcilcbiAgZXhwcltsZW5ndGgoZXhwcikgLSAxXVxuXG4vLyByZXR1cm4ga2V5cyBpbiB0aGUgZ2l2ZW4gcGFpcnMgb3Igb2JqZWN0XG5cbmtleXMocGFpcnMpXG4gIHJldCA9ICgpXG4gIGlmIHR5cGUocGFpcnMpID09ICdvYmplY3QnXG4gICAgZm9yIGtleSBpbiBwYWlyc1xuICAgICAgcHVzaChyZXQsIGtleSlcbiAgZWxzZVxuICAgIGZvciBwYWlyIGluIHBhaXJzXG4gICAgICBwdXNoKHJldCwgcGFpclswXSk7XG4gIHJldFxuXG4vLyByZXR1cm4gdmFsdWVzIGluIHRoZSBnaXZlbiBwYWlycyBvciBvYmplY3RcblxudmFsdWVzKHBhaXJzKVxuICByZXQgPSAoKVxuICBpZiB0eXBlKHBhaXJzKSA9PSAnb2JqZWN0J1xuICAgIGZvciBrZXksIHZhbCBpbiBwYWlyc1xuICAgICAgcHVzaChyZXQsIHZhbClcbiAgZWxzZVxuICAgIGZvciBwYWlyIGluIHBhaXJzXG4gICAgICBwdXNoKHJldCwgcGFpclsxXSk7XG4gIHJldFxuXG4vLyBqb2luIHZhbHVlcyB3aXRoIHRoZSBnaXZlbiBkZWxpbWl0ZXJcblxuam9pbihkZWxpbSwgdmFscy4uLilcbiAgYnVmID0gJydcbiAgdmFscyA9IHZhbHNbMF0gaWYgbGVuZ3RoKHZhbHMpID09IDFcbiAgZm9yIHZhbCwgaSBpbiB2YWxzXG4gICAgYnVmICs9IGkgPyBkZWxpbSArIHZhbCA6IHZhbFxuXG4vLyBhZGQgYSBDU1MgcnVsZSB0byB0aGUgY29udGFpbmluZyBibG9ja1xuXG4vLyAtIFRoaXMgZGVmaW5pdGlvbiBhbGxvd3MgYWRkLXByb3BlcnR5IHRvIGJlIHVzZWQgYXMgYSBtaXhpblxuLy8gLSBJdCBoYXMgdGhlIHNhbWUgZWZmZWN0IGFzIGludGVycG9sYXRpb24gYnV0IGFsbG93cyB1c2Vyc1xuLy8gICB0byBvcHQgZm9yIGEgZnVuY3Rpb25hbCBzdHlsZVxuXG5hZGQtcHJvcGVydHktZnVuY3Rpb24gPSBhZGQtcHJvcGVydHlcbmFkZC1wcm9wZXJ0eShuYW1lLCBleHByKVxuICBpZiBtaXhpblxuICAgIHtuYW1lfSBleHByXG4gIGVsc2VcbiAgICBhZGQtcHJvcGVydHktZnVuY3Rpb24obmFtZSwgZXhwcilcblxucHJlZml4LWNsYXNzZXMocHJlZml4KVxuICAtcHJlZml4LWNsYXNzZXMocHJlZml4LCBibG9jaylcblxuLy8gQ2FjaGluZyBtaXhpbiwgdXNlIGluc2lkZSB5b3VyIGZ1bmN0aW9ucyB0byBlbmFibGUgY2FjaGluZyBieSBleHRlbmRpbmcuXG5cbiRzdHlsdXNfbWl4aW5fY2FjaGUgPSB7fVxuY2FjaGUoKVxuICAka2V5ID0gKGN1cnJlbnQtbWVkaWEoKSBvciAnbm8tbWVkaWEnKSArICdfXycgKyBjYWxsZWQtZnJvbVswXSArICdfXycgKyBhcmd1bWVudHNcbiAgaWYgJGtleSBpbiAkc3R5bHVzX21peGluX2NhY2hlXG4gICAgQGV4dGVuZCB7XCIkY2FjaGVfcGxhY2Vob2xkZXJfZm9yX1wiICsgJHN0eWx1c19taXhpbl9jYWNoZVska2V5XX1cbiAgZWxzZSBpZiAnY2FjaGUnIGluIGNhbGxlZC1mcm9tXG4gICAge2Jsb2NrfVxuICBlbHNlXG4gICAgJGlkID0gbGVuZ3RoKCRzdHlsdXNfbWl4aW5fY2FjaGUpXG5cbiAgICAmLFxuICAgIC8kY2FjaGVfcGxhY2Vob2xkZXJfZm9yX3skaWR9XG4gICAgICAkc3R5bHVzX21peGluX2NhY2hlWyRrZXldID0gJGlkXG4gICAgICB7YmxvY2t9XG5cbi8vIFBlcmNlbnRhZ2UgZnVuY3Rpb24gdG8gY29udmVydCBhIG51bWJlciwgZS5nLiBcIi40NVwiLCBpbnRvIGEgcGVyY2VudGFnZSwgZS5nLiBcIjQ1JVwiXG5cbnBlcmNlbnRhZ2UobnVtKVxuICByZXR1cm4gdW5pdChudW0gKiAxMDAsICclJylcblxuLy8gUmV0dXJucyB0aGUgcG9zaXRpb24gb2YgYSBgdmFsdWVgIHdpdGhpbiBhIGBsaXN0YFxuXG5pbmRleChsaXN0LCB2YWx1ZSlcbiAgZm9yIHZhbCwgaSBpbiBsaXN0XG4gICAgcmV0dXJuIGkgaWYgdmFsID09IHZhbHVlXG4iLCJpZiBoZXhvLWNvbmZpZygnZXJyb3JfNDA0LmVuYWJsZScpXG4gIC50eXBlLTQwNFxuICAgIC5lcnJvci1jb250ZW50XG4gICAgICBAZXh0ZW5kIC5jYXJkSG92ZXJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW5cbiAgICAgIG1hcmdpbjogMCAyMHB4XG4gICAgICBoZWlnaHQ6IDM2MHB4XG5cbiAgICAgICttYXhXaWR0aDc2OCgpXG4gICAgICAgIG1hcmdpbjogMFxuICAgICAgICBoZWlnaHQ6IDUwMHB4XG5cbiAgICAgIC5lcnJvci1pbWdcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW5cbiAgICAgICAgd2lkdGg6IDUwJVxuICAgICAgICBoZWlnaHQ6IDEwMCVcblxuICAgICAgICArbWF4V2lkdGg3NjgoKVxuICAgICAgICAgIHdpZHRoOiAxMDAlXG4gICAgICAgICAgaGVpZ2h0OiA0NSVcblxuICAgICAgICBpbWdcbiAgICAgICAgICBAZXh0ZW5kIC5pbWdIb3ZlclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0aGVtZS1jb2xvclxuXG4gICAgICAuZXJyb3ItaW5mb1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleFxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyXG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlclxuICAgICAgICB3aWR0aDogNTAlXG4gICAgICAgIGhlaWdodDogMTAwJVxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlclxuXG4gICAgICAgIGlmICRzaXRlLW5hbWUtZm9udFxuICAgICAgICAgIGZvbnQtZmFtaWx5OiAkc2l0ZS1uYW1lLWZvbnRcblxuICAgICAgICArbWF4V2lkdGg3NjgoKVxuICAgICAgICAgIHdpZHRoOiAxMDAlXG4gICAgICAgICAgaGVpZ2h0OiA1NSVcblxuICAgICAgICAuZXJyb3JfdGl0bGVcbiAgICAgICAgICBtYXJnaW4tdG9wOiAtLjZlbVxuICAgICAgICAgIGZvbnQtc2l6ZTogOWVtXG5cbiAgICAgICAgICArbWF4V2lkdGg3NjgoKVxuICAgICAgICAgICAgZm9udC1zaXplOiA4ZW1cblxuICAgICAgICAuZXJyb3Jfc3VidGl0bGVcbiAgICAgICAgICBAZXh0ZW5kIC5saW1pdC1tb3JlLWxpbmVcbiAgICAgICAgICBtYXJnaW4tdG9wOiAtM2VtXG4gICAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZFxuICAgICAgICAgIGZvbnQtc2l6ZTogMS42ZW1cbiAgICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDJcblxuICAgIC5uY1xuICAgICAgbWFyZ2luLXRvcDogNSVcbiAgICAgIHBhZGRpbmc6IDAgMjBweFxuXG4gICAgI2Zvb3RlclxuICAgICAgZGlzcGxheTogbm9uZVxuXG4gICAgJiArICNyaWdodHNpZGVcbiAgICAgIGRpc3BsYXk6IG5vbmUiLCIuYXJ0aWNsZS1zb3J0XG4gIG1hcmdpbi1sZWZ0OiAxMHB4XG4gIHBhZGRpbmctbGVmdDogMjBweFxuICBib3JkZXItbGVmdDogMnB4IHNvbGlkIGxpZ2h0ZW4oJGxpZ2h0LWJsdWUsIDIwKVxuXG4gICYtdGl0bGVcbiAgICBwb3NpdGlvbjogcmVsYXRpdmVcbiAgICBtYXJnaW4tbGVmdDogMTBweFxuICAgIHBhZGRpbmctYm90dG9tOiAyMHB4XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4XG4gICAgZm9udC1zaXplOiAxLjcyZW1cblxuICAgICY6aG92ZXJcbiAgICAgICY6YmVmb3JlXG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHNldWRvLWhvdmVyKVxuXG4gICAgJjpiZWZvcmVcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxuICAgICAgdG9wOiBjYWxjKCgoMTAwJSAtIDM2cHgpIC8gMikpXG4gICAgICBsZWZ0OiAtOXB4XG4gICAgICB6LWluZGV4OiAxXG4gICAgICB3aWR0aDogdyA9IDEwcHhcbiAgICAgIGhlaWdodDogaCA9IHdcbiAgICAgIGJvcmRlcjogLjUgKiB3IHNvbGlkICRsaWdodC1ibHVlXG4gICAgICBib3JkZXItcmFkaXVzOiB3XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWJnKVxuICAgICAgY29udGVudDogJydcbiAgICAgIGxpbmUtaGVpZ2h0OiBoXG4gICAgICB0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2UtaW4tb3V0XG5cbiAgICAmOmFmdGVyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGVcbiAgICAgIGJvdHRvbTogMFxuICAgICAgbGVmdDogMFxuICAgICAgei1pbmRleDogMFxuICAgICAgd2lkdGg6IDJweFxuICAgICAgaGVpZ2h0OiAxLjVlbVxuICAgICAgYmFja2dyb3VuZDogbGlnaHRlbigkbGlnaHQtYmx1ZSwgMjApXG4gICAgICBjb250ZW50OiAnJ1xuXG4gICYtaXRlbVxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxuICAgIGRpc3BsYXk6IGZsZXhcbiAgICBhbGlnbi1pdGVtczogY2VudGVyXG4gICAgbWFyZ2luOiAwIDAgMjBweCAxMHB4XG4gICAgdHJhbnNpdGlvbjogYWxsIC4ycyBlYXNlLWluLW91dFxuXG4gICAgJjpob3ZlclxuICAgICAgJjpiZWZvcmVcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wc2V1ZG8taG92ZXIpXG5cbiAgICAmOmJlZm9yZVxuICAgICAgJHcgPSA2cHhcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxuICAgICAgbGVmdDogY2FsYygtMjBweCAtIDE3cHgpXG4gICAgICB3aWR0aDogdyA9ICR3XG4gICAgICBoZWlnaHQ6IGggPSB3XG4gICAgICBib3JkZXI6IC41ICogdyBzb2xpZCAkbGlnaHQtYmx1ZVxuICAgICAgYm9yZGVyLXJhZGl1czogd1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1iZylcbiAgICAgIGNvbnRlbnQ6ICcnXG4gICAgICB0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2UtaW4tb3V0XG5cbiAgICAmLm5vLWFydGljbGUtY292ZXJcbiAgICAgIGhlaWdodDogODBweFxuXG4gICAgICAuYXJ0aWNsZS1zb3J0LWl0ZW0taW5mb1xuICAgICAgICBwYWRkaW5nOiAwXG5cbiAgICAmLnllYXJcbiAgICAgIGZvbnQtc2l6ZTogMS40M2VtXG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4XG5cbiAgICAgICY6aG92ZXJcbiAgICAgICAgJjpiZWZvcmVcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRsaWdodC1ibHVlXG5cbiAgICAgICY6YmVmb3JlXG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHNldWRvLWhvdmVyKVxuXG4gICAgJi10aW1lXG4gICAgICBjb2xvcjogdmFyKC0tY2FyZC1tZXRhKVxuICAgICAgZm9udC1zaXplOiAuODVlbVxuXG4gICAgICB0aW1lXG4gICAgICAgIHBhZGRpbmctbGVmdDogNnB4XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdFxuXG4gICAgJi10aXRsZVxuICAgICAgQGV4dGVuZCAubGltaXQtbW9yZS1saW5lXG4gICAgICBjb2xvcjogdmFyKC0tZm9udC1jb2xvcilcbiAgICAgIGZvbnQtc2l6ZTogMS4wNWVtXG4gICAgICB0cmFuc2l0aW9uOiBhbGwgLjNzXG4gICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDJcblxuICAgICAgJjpob3ZlclxuICAgICAgICBjb2xvcjogJHRleHQtaG92ZXJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwcHgpXG5cbiAgICAmLWltZ1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlblxuICAgICAgd2lkdGg6IDEwMHB4XG4gICAgICBoZWlnaHQ6IDcwcHhcbiAgICAgIGFkZEJvcmRlclJhZGl1cygpXG5cbiAgICAgICttYXhXaWR0aDc2OCgpXG4gICAgICAgIHdpZHRoOiA3MHB4XG4gICAgICAgIGhlaWdodDogNzBweFxuXG4gICAgICA6Zmlyc3QtY2hpbGRcbiAgICAgICAgQGV4dGVuZCAuaW1nSG92ZXJcblxuICAgICYtaW5mb1xuICAgICAgZmxleDogMVxuICAgICAgcGFkZGluZzogMCAxNnB4XG4iLCIuY2F0ZWdvcnktbGlzdHNcbiAgLmNhdGVnb3J5LXRpdGxlXG4gICAgZm9udC1zaXplOiAyLjU3ZW1cblxuICAgICttYXhXaWR0aDc2OCgpXG4gICAgICBmb250LXNpemU6IDJlbVxuXG4gIC5jYXRlZ29yeS1saXN0XG4gICAgbWFyZ2luLWJvdHRvbTogMFxuXG4gICAgYVxuICAgICAgY29sb3I6IHZhcigtLWZvbnQtY29sb3IpXG5cbiAgICAgICY6aG92ZXJcbiAgICAgICAgY29sb3I6ICR0ZXh0LWhvdmVyXG5cbiAgICAuY2F0ZWdvcnktbGlzdC1jb3VudFxuICAgICAgbWFyZ2luLWxlZnQ6IDhweFxuICAgICAgY29sb3I6IHZhcigtLWNhcmQtbWV0YSlcblxuICAgICAgJjpiZWZvcmVcbiAgICAgICAgY29udGVudDogJygnXG5cbiAgICAgICY6YWZ0ZXJcbiAgICAgICAgY29udGVudDogJyknXG5cbiAgdWxcbiAgICBwYWRkaW5nOiAwIDAgMCAyMHB4XG4gICAgQGV4dGVuZCAubGlzdC1iZWF1dHlcblxuICAgIHVsXG4gICAgICBwYWRkaW5nLWxlZnQ6IDRweFxuXG4gICAgbGlcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxuICAgICAgbWFyZ2luOiA2cHggMFxuICAgICAgcGFkZGluZzogLjEyZW0gLjRlbSAuMTJlbSAxLjRlbVxuIiwiI2JvZHktd3JhcFxuICBkaXNwbGF5OiBmbGV4XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW5cbiAgbWluLWhlaWdodDogMTAwdmhcblxuLmxheW91dFxuICBkaXNwbGF5OiBmbGV4XG4gIGZsZXg6IDEgYXV0b1xuICBtYXJnaW46IDAgYXV0b1xuICBwYWRkaW5nOiA0MHB4IDE1cHhcbiAgbWF4LXdpZHRoOiAxMjAwcHhcbiAgd2lkdGg6IDEwMCVcblxuICArbWF4V2lkdGg5MDAoKVxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW5cblxuICArbWF4V2lkdGg3NjgoKVxuICAgIHBhZGRpbmc6IDIwcHggNXB4XG5cbiAgK21pbldpZHRoMjAwMCgpXG4gICAgbWF4LXdpZHRoOiA3MCVcblxuICAmID4gZGl2OmZpcnN0LWNoaWxkOm5vdCgubmMpXG4gICAgQGV4dGVuZCAuY2FyZEhvdmVyXG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydFxuICAgIHBhZGRpbmc6IDUwcHggNDBweFxuXG4gICAgK21heFdpZHRoNzY4KClcbiAgICAgIHBhZGRpbmc6IDM2cHggMTRweFxuXG4gICYgPiBkaXY6Zmlyc3QtY2hpbGRcbiAgICB3aWR0aDogNzQlXG4gICAgdHJhbnNpdGlvbjogYWxsIC4zc1xuXG4gICAgK21heFdpZHRoOTAwKClcbiAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnRcblxuICAgIGlmIGhleG8tY29uZmlnKCdhc2lkZS5wb3NpdGlvbicpID09ICdsZWZ0J1xuICAgICAgK21pbldpZHRoOTAwKClcbiAgICAgICAgb3JkZXI6IDJcblxuICAvLyDpmrHol49hc2lkZVxuICAmLmhpZGUtYXNpZGVcbiAgICBtYXgtd2lkdGg6IDEwMDBweFxuXG4gICAgK21pbldpZHRoMjAwMCgpXG4gICAgICBtYXgtd2lkdGg6IDEzMDBweFxuXG4gICAgJiA+IGRpdlxuICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudFxuXG4vLyBmb3IgYXBwbGUgZGV2aWNlXG4uYXBwbGVcbiAgI3BhZ2UtaGVhZGVyLmZ1bGxfcGFnZVxuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogc2Nyb2xsICFpbXBvcnRhbnRcblxuICAucmVjZW50LXBvc3QtaXRlbSxcbiAgLmF2YXRhci1pbWcsXG4gIC5mbGluay1pdGVtLWljb25cbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMClcbiIsIi5jb250YWluZXJcbiAgLmZsaW5rXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweFxuXG4gICAgLmZsaW5rLWxpc3RcbiAgICAgIG92ZXJmbG93OiBhdXRvXG4gICAgICBwYWRkaW5nOiAxMHB4IDEwcHggMFxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyXG5cbiAgICAgICYgPiAuZmxpbmstbGlzdC1pdGVtXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxuICAgICAgICBmbG9hdDogbGVmdFxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuXG4gICAgICAgIG1hcmdpbjogMTVweCA3cHhcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvIDMgLSAxNXB4KVxuICAgICAgICBoZWlnaHQ6IDkwcHhcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE3cHhcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMClcbiAgICAgICAgYWRkQm9yZGVyUmFkaXVzKDgpXG5cbiAgICAgICAgK21heFdpZHRoMTAyNCgpXG4gICAgICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMTVweCkgIWltcG9ydGFudFxuXG4gICAgICAgICttYXhXaWR0aDYwMCgpXG4gICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE1cHgpICFpbXBvcnRhbnRcblxuICAgICAgICAmOmhvdmVyXG4gICAgICAgICAgLmZsaW5rLWl0ZW0taWNvblxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMHB4XG4gICAgICAgICAgICB3aWR0aDogMFxuXG4gICAgICAgICY6YmVmb3JlXG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlXG4gICAgICAgICAgdG9wOiAwXG4gICAgICAgICAgcmlnaHQ6IDBcbiAgICAgICAgICBib3R0b206IDBcbiAgICAgICAgICBsZWZ0OiAwXG4gICAgICAgICAgei1pbmRleDogLTFcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10ZXh0LWJnLWhvdmVyKVxuICAgICAgICAgIGNvbnRlbnQ6ICcnXG4gICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zcyBlYXNlLW91dFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMClcblxuICAgICAgICAmOmhvdmVyOmJlZm9yZSxcbiAgICAgICAgJjpmb2N1czpiZWZvcmUsXG4gICAgICAgICY6YWN0aXZlOmJlZm9yZVxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSlcblxuICAgICAgICBhXG4gICAgICAgICAgY29sb3I6IHZhcigtLWZvbnQtY29sb3IpXG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXG5cbiAgICAgICAgICAuZmxpbmstaXRlbS1pY29uXG4gICAgICAgICAgICBmbG9hdDogbGVmdFxuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlblxuICAgICAgICAgICAgbWFyZ2luOiAxNXB4IDEwcHhcbiAgICAgICAgICAgIHdpZHRoOiA2MHB4XG4gICAgICAgICAgICBoZWlnaHQ6IDYwcHhcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDdweFxuICAgICAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggLjNzIGVhc2Utb3V0XG5cbiAgICAgICAgICAgIGltZ1xuICAgICAgICAgICAgICB3aWR0aDogMTAwJVxuICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCVcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbjogZmlsdGVyIDM3NW1zIGVhc2UtaW4gLjJzLCB0cmFuc2Zvcm0gLjNzXG4gICAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyXG5cbiAgICAgICAgICAuaW1nLWFsdFxuICAgICAgICAgICAgZGlzcGxheTogbm9uZVxuXG4gICAgLmZsaW5rLWl0ZW0tbmFtZVxuICAgICAgQGV4dGVuZCAubGltaXQtb25lLWxpbmVcbiAgICAgIHBhZGRpbmc6IDE2cHggMTBweCAwIDBcbiAgICAgIGhlaWdodDogNDBweFxuICAgICAgZm9udC13ZWlnaHQ6IGJvbGRcbiAgICAgIGZvbnQtc2l6ZTogMS40M2VtXG5cbiAgICAuZmxpbmstaXRlbS1kZXNjXG4gICAgICBAZXh0ZW5kIC5saW1pdC1vbmUtbGluZVxuICAgICAgcGFkZGluZzogMTZweCAxMHB4IDE2cHggMFxuICAgICAgaGVpZ2h0OiA1MHB4XG4gICAgICBmb250LXNpemU6IC45M2VtXG5cbiAgICAuZmxpbmstbmFtZVxuICAgICAgbWFyZ2luLWJvdHRvbTogNXB4XG4gICAgICBmb250LXdlaWdodDogYm9sZFxuICAgICAgZm9udC1zaXplOiAxLjVlbSIsIiRpbmRleExheW91dCA9IGhleG8tY29uZmlnKCdpbmRleF9sYXlvdXQnKSB8fCAxXG4kaW5kZXhFbmFibGUgPSBoZXhvLWNvbmZpZygnY292ZXIuaW5kZXhfZW5hYmxlJylcblxuI3JlY2VudC1wb3N0c1xuICAucmVjZW50LXBvc3QtaXRlbVxuICAgIEBleHRlbmQgLmNhcmRIb3ZlclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxuICAgIG92ZXJmbG93OiBoaWRkZW5cbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4XG5cbiAgICBpZiAkaW5kZXhMYXlvdXQgPT0gNiB8fCAoJGluZGV4TGF5b3V0ID09IDcpXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyAyIC0gOHB4KVxuICAgICAgdmVydGljYWwtYWxpZ246IHRvcFxuXG4gICAgICArbWF4V2lkdGg3NjgoKVxuICAgICAgICB3aWR0aDogMTAwJVxuXG4gICAgICArbWluV2lkdGgyMDAwKClcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvIDMgLSA4cHgpXG5cbiAgICBpZiAkaW5kZXhMYXlvdXQgPT0gMSB8fCAoJGluZGV4TGF5b3V0ID09IDIgfHwgKCRpbmRleExheW91dCA9PSAzKSlcbiAgICAgIGRpc3BsYXk6IGZsZXhcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3dcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXJcbiAgICAgIGhlaWdodDogMTYuOGVtXG5cbiAgICAgICttYXhXaWR0aDc2OCgpXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW5cbiAgICAgICAgaGVpZ2h0OiBhdXRvXG5cbiAgICAgICttaW5XaWR0aDIwMDAoKVxuICAgICAgICBoZWlnaHQ6IDE4LjhlbVxuXG4gICAgJjpob3ZlclxuICAgICAgLnBvc3QtYmdcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpXG5cbiAgICAmLmFkcy13cmFwXG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50XG4gICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudFxuXG4gICAgLnBvc3RfY292ZXJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW5cblxuICAgICAgaWYgKCRpbmRleExheW91dCAhPSA1ICYmICgkaW5kZXhMYXlvdXQgIT0gNykpXG4gICAgICAgICttYXhXaWR0aDc2OCgpXG4gICAgICAgICAgd2lkdGg6IDEwMCVcbiAgICAgICAgICBoZWlnaHQ6IDIzMHB4XG5cbiAgICAgIGlmICRpbmRleExheW91dCA9PSAxIHx8ICgkaW5kZXhMYXlvdXQgPT0gMiB8fCAoJGluZGV4TGF5b3V0ID09IDMpKVxuICAgICAgICB3aWR0aDogNDIlXG4gICAgICAgIGhlaWdodDogMTAwJVxuXG4gICAgICAgICYucmlnaHRcbiAgICAgICAgICBvcmRlcjogMVxuXG4gICAgICAgICAgK21heFdpZHRoNzY4KClcbiAgICAgICAgICAgIG9yZGVyOiAwXG5cbiAgICAgIGlmICRpbmRleExheW91dCA9PSA0IHx8ICgkaW5kZXhMYXlvdXQgPT0gNSB8fCAoJGluZGV4TGF5b3V0ID09IDYgfHwgKCRpbmRleExheW91dCA9PSA3KSkpXG4gICAgICAgIHdpZHRoOiAxMDAlXG5cbiAgICAgICAgaWYgKCRpbmRleExheW91dCA9PSA1IHx8ICgkaW5kZXhMYXlvdXQgPT0gNykpXG4gICAgICAgICAgaGVpZ2h0OiAxN2VtXG4gICAgICAgIGVsc2VcbiAgICAgICAgICBoZWlnaHQ6IDIzMHB4XG5cbiAgICAgIGlmICgkaW5kZXhMYXlvdXQgPT0gNSB8fCAoJGluZGV4TGF5b3V0ID09IDcpKSAmJiAkaW5kZXhFbmFibGVcbiAgICAgICAgJjpiZWZvcmVcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGVcbiAgICAgICAgICB6LWluZGV4OiAxXG4gICAgICAgICAgd2lkdGg6IDEwMCVcbiAgICAgICAgICBoZWlnaHQ6IDEwMCVcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE4LCAxOCwgMTgsIC40KVxuICAgICAgICAgIGNvbnRlbnQ6ICcnXG4gICAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDNweClcblxuICAgICAgLnBvc3QtYmdcbiAgICAgICAgei1pbmRleDogLTRcbiAgICAgICAgQGV4dGVuZCAuaW1nSG92ZXJcblxuICAgICYgPi5yZWNlbnQtcG9zdC1pbmZvXG4gICAgICArbWF4V2lkdGg3NjgoKVxuICAgICAgICBwYWRkaW5nOiAyMHB4IDIwcHggMzBweFxuICAgICAgICB3aWR0aDogMTAwJVxuXG4gICAgICBpZiAkaW5kZXhMYXlvdXQgPT0gMSB8fCAoJGluZGV4TGF5b3V0ID09IDIgfHwgKCRpbmRleExheW91dCA9PSAzKSlcbiAgICAgICAgcGFkZGluZzogMCA0MHB4XG4gICAgICAgIHdpZHRoOiA1OCVcblxuICAgICAgaWYgJGluZGV4TGF5b3V0ID09IDQgfHwgKCRpbmRleExheW91dCA9PSA1IHx8ICgkaW5kZXhMYXlvdXQgPT0gNiB8fCAoJGluZGV4TGF5b3V0ID09IDcpKSlcbiAgICAgICAgcGFkZGluZzogMzBweCAzMHB4IDI1cHhcblxuICAgICAgaWYgKCRpbmRleExheW91dCA9PSA1IHx8ICgkaW5kZXhMYXlvdXQgPT0gNykpICYmICRpbmRleEVuYWJsZVxuICAgICAgICAmOm5vdCgubm8tY292ZXIpXG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlXG4gICAgICAgICAgdG9wOiA1MCVcbiAgICAgICAgICB6LWluZGV4OiAyXG4gICAgICAgICAgd2lkdGg6IDEwMCVcbiAgICAgICAgICBjb2xvcjogdmFyKC0tdGV4dC1oaWdobGlnaHQtY29sb3IpXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpXG4gICAgICAgICAgLS10ZXh0LWhpZ2hsaWdodC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKVxuICAgICAgICAgIC0tY2FyZC1tZXRhOiByZ2JhKDI1NSwgMjU1LCAyNTUsIC43KVxuXG4gICAgICAmLm5vLWNvdmVyXG4gICAgICAgICttYXhXaWR0aDc2OCgpXG4gICAgICAgICAgcGFkZGluZzogMzBweCAyMHB4XG5cbiAgICAgICAgaWYgJGluZGV4TGF5b3V0ID09IDEgfHwgKCRpbmRleExheW91dCA9PSAyIHx8ICgkaW5kZXhMYXlvdXQgPT0gMykpXG4gICAgICAgICAgd2lkdGg6IDEwMCVcblxuICAgICAgICBpZiAkaW5kZXhMYXlvdXQgPT0gNCB8fCAoJGluZGV4TGF5b3V0ID09IDUgfHwgKCRpbmRleExheW91dCA9PSA2IHx8ICgkaW5kZXhMYXlvdXQgPT0gNykpKVxuICAgICAgICAgIHBhZGRpbmc6IDM1cHggMzBweFxuXG4gICAgICAmID4gLmFydGljbGUtdGl0bGVcbiAgICAgICAgQGV4dGVuZCAubGltaXQtbW9yZS1saW5lXG4gICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LWhpZ2hsaWdodC1jb2xvcilcbiAgICAgICAgZm9udC1zaXplOiAxLjU1ZW1cbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNFxuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2UtaW4tb3V0XG4gICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMlxuXG4gICAgICAgIC5zdGlja3lcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHhcbiAgICAgICAgICBjb2xvcjogJHN0aWNreS1jb2xvclxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKVxuXG4gICAgICAgICttYXhXaWR0aDc2OCgpXG4gICAgICAgICAgZm9udC1zaXplOiAxLjQzZW1cblxuICAgICAgICAmOmhvdmVyXG4gICAgICAgICAgY29sb3I6ICR0ZXh0LWhvdmVyXG5cbiAgICAgICYgPiAuYXJ0aWNsZS1tZXRhLXdyYXBcbiAgICAgICAgbWFyZ2luOiA2cHggMFxuICAgICAgICBjb2xvcjogdmFyKC0tY2FyZC1tZXRhKVxuICAgICAgICBmb250LXNpemU6IC45ZW1cblxuICAgICAgICAmID4gLnBvc3QtbWV0YS1kYXRlXG4gICAgICAgICAgY3Vyc29yOiBkZWZhdWx0XG5cbiAgICAgICAgaVxuICAgICAgICAgIG1hcmdpbjogMCA0cHggMCAwXG5cbiAgICAgICAgLmZhLXNwaW5uZXJcbiAgICAgICAgICBtYXJnaW46IDBcblxuICAgICAgICAuYXJ0aWNsZS1tZXRhLWxhYmVsXG4gICAgICAgICAgaWYgaGV4by1jb25maWcoJ3Bvc3RfbWV0YS5wYWdlLmxhYmVsJylcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDRweFxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmVcblxuICAgICAgICAuYXJ0aWNsZS1tZXRhLXNlcGFyYXRvclxuICAgICAgICAgIG1hcmdpbjogMCA2cHhcblxuICAgICAgICAuYXJ0aWNsZS1tZXRhLWxpbmtcbiAgICAgICAgICBtYXJnaW46IDAgNHB4XG5cbiAgICAgICAgaWYgaGV4by1jb25maWcoJ3Bvc3RfbWV0YS5wYWdlLmRhdGVfZm9ybWF0JykgPT0gJ3JlbGF0aXZlJ1xuICAgICAgICAgIHRpbWVcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmVcblxuICAgICAgICBhXG4gICAgICAgICAgY29sb3I6IHZhcigtLWNhcmQtbWV0YSlcblxuICAgICAgICAgICY6aG92ZXJcbiAgICAgICAgICAgIGNvbG9yOiAkdGV4dC1ob3ZlclxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcblxuICAgICAgJiA+IC5jb250ZW50XG4gICAgICAgIEBleHRlbmQgLmxpbWl0LW1vcmUtbGluZVxuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDJcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZCIsIiNhcnRpY2xlLWNvbnRhaW5lclxuICAuc2h1b3NodW8taXRlbVxuICAgIEBleHRlbmQgLmNhcmRIb3ZlclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHhcbiAgICBwYWRkaW5nOiAzNXB4IDMwcHggMzBweFxuXG4gICAgK21heFdpZHRoNzY4KClcbiAgICAgIHBhZGRpbmc6IDI1cHggMjBweCAyMHB4XG5cbiAgLnNodW9zaHVvLWl0ZW0taGVhZGVyXG4gICAgZGlzcGxheTogZmxleFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXJcbiAgICBjdXJzb3I6IGRlZmF1bHRcblxuICAuc2h1b3NodW8tYXZhdGFyXG4gICAgb3ZlcmZsb3c6IGhpZGRlblxuICAgIHdpZHRoOiA0MHB4XG4gICAgaGVpZ2h0OiA0MHB4XG4gICAgYm9yZGVyLXJhZGl1czogNDBweFxuXG4gICAgaW1nXG4gICAgICBtYXJnaW46IDBcbiAgICAgIHdpZHRoOiAxMDAlXG4gICAgICBoZWlnaHQ6IDEwMCVcblxuICAuc2h1b3NodW8taW5mb1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4XG4gICAgbGluZS1oZWlnaHQ6IDEuNVxuXG4gIC5zaHVvc2h1by1kYXRlXG4gICAgY29sb3I6ICM4NTg1ODVcbiAgICBmb250LXNpemU6IC44ZW1cblxuICAuc2h1b3NodW8tY29udGVudFxuICAgIHBhZGRpbmc6IDE1cHggMCAxMHB4XG5cbiAgICAmID4gKjpsYXN0LWNoaWxkXG4gICAgICBtYXJnaW4tYm90dG9tOiAwXG5cbiAgLnNodW9zaHVvLWZvb3RlclxuICAgIGRpc3BsYXk6IGZsZXhcbiAgICBhbGlnbi1pdGVtczogY2VudGVyXG5cbiAgICAmLmZsZXgtYmV0d2VlblxuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuXG5cbiAgICAmLmZsZXgtZW5kXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kXG5cbiAgICAuc2h1b3NodW8tdGFnXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcbiAgICAgIG1hcmdpbi1yaWdodDogOHB4XG4gICAgICBwYWRkaW5nOiAwIDhweFxuICAgICAgd2lkdGg6IGZpdC1jb250ZW50XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtYmx1ZVxuICAgICAgYm9yZGVyLXJhZGl1czogMTJweFxuICAgICAgY29sb3I6ICRsaWdodC1ibHVlXG4gICAgICBmb250LXNpemU6IC44NWVtXG4gICAgICBjdXJzb3I6IGRlZmF1bHRcbiAgICAgIHRyYW5zaXRpb246IGFsbCAuMnMgZWFzZS1pbi1vdXRcblxuICAgICAgJjpob3ZlclxuICAgICAgICBiYWNrZ3JvdW5kOiAkbGlnaHQtYmx1ZVxuICAgICAgICBjb2xvcjogdmFyKC0td2hpdGUpXG5cbiAgICAuc2h1b3NodW8tY29tbWVudC1idG5cbiAgICAgIHBhZGRpbmc6IDJweFxuICAgICAgY29sb3I6ICM5MGE0YWVcbiAgICAgIGN1cnNvcjogcG9pbnRlclxuXG4gICAgICAmOmhvdmVyXG4gICAgICAgIGNvbG9yOiAkbGlnaHQtYmx1ZVxuXG4gIC5zaHVvc2h1by1jb21tZW50XG4gICAgcGFkZGluZy10b3A6IDEwcHhcblxuICAgICYubm8tY29tbWVudFxuICAgICAgZGlzcGxheTogbm9uZVxuIiwiLnRhZy1jbG91ZFxuICAmLWxpc3RcbiAgICBhXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcbiAgICAgIG1hcmdpbjogMnB4XG4gICAgICBwYWRkaW5nOiAycHggN3B4XG4gICAgICBsaW5lLWhlaWdodDogMS43XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgLjNzXG4gICAgICBhZGRCb3JkZXJSYWRpdXMoNSlcblxuICAgICAgJjpob3ZlclxuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1idG4tYmcpICFpbXBvcnRhbnRcbiAgICAgICAgYm94LXNoYWRvdzogMnB4IDJweCA2cHggcmdiYSgwLCAwLCAwLCAuMilcbiAgICAgICAgY29sb3I6IHZhcigtLWJ0bi1jb2xvcikgIWltcG9ydGFudFxuXG4gICAgICArbWF4V2lkdGg3NjgoKVxuICAgICAgICB6b29tOiAuODVcblxuICAmLXRpdGxlXG4gICAgZm9udC1zaXplOiAyLjU3ZW1cblxuICAgICttYXhXaWR0aDc2OCgpXG4gICAgICBmb250LXNpemU6IDJlbVxuXG4ucGFnZS10aXRsZVxuICAmICsgLnRhZy1jbG91ZC1saXN0XG4gICAgdGV4dC1hbGlnbjogbGVmdFxuIiwiI2FzaWRlLWNvbnRlbnRcbiAgd2lkdGg6IDI2JVxuXG4gICttaW5XaWR0aDkwMCgpXG4gICAgaWYgaGV4by1jb25maWcoJ2FzaWRlLnBvc2l0aW9uJykgPT0gJ3JpZ2h0J1xuICAgICAgcGFkZGluZy1sZWZ0OiAxNXB4XG4gICAgZWxzZVxuICAgICAgcGFkZGluZy1yaWdodDogMTVweFxuXG4gICttYXhXaWR0aDkwMCgpXG4gICAgbWFyZ2luLXRvcDogMjBweFxuICAgIHdpZHRoOiAxMDAlXG5cbiAgLmNhcmQtd2lkZ2V0XG4gICAgQGV4dGVuZCAuY2FyZEhvdmVyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXG4gICAgb3ZlcmZsb3c6IGhpZGRlblxuICAgIG1hcmdpbi1ib3R0b206IDIwcHhcbiAgICBwYWRkaW5nOiAyMHB4IDI0cHhcblxuICAgIGlmIGhleG8tY29uZmlnKCdhc2lkZS5tb2JpbGUnKSA9PSBmYWxzZVxuICAgICAgK21heFdpZHRoNzY4KClcbiAgICAgICAgJjpub3QoI2NhcmQtdG9jKVxuICAgICAgICAgIGRpc3BsYXk6IG5vbmVcblxuICAgIC8vICY6bGFzdC1jaGlsZFxuICAgIC8vICAgbWFyZ2luLWJvdHRvbTogMFxuXG4gIC5jYXJkLWluZm9cbiAgICAuYXV0aG9yLWluZm9cbiAgICAgICYtbmFtZVxuICAgICAgICBmb250LXdlaWdodDogNTAwXG4gICAgICAgIGZvbnQtc2l6ZTogMS41N2VtXG5cbiAgICAgICYtZGVzY3JpcHRpb25cbiAgICAgICAgbWFyZ2luLXRvcDogLS40MmVtXG5cbiAgICAuc2l0ZS1kYXRhXG4gICAgICBtYXJnaW46IDE0cHggMCA0cHhcblxuICAgIC5jYXJkLWluZm8tc29jaWFsLWljb25zXG4gICAgICBtYXJnaW46IDZweCAwIC02cHhcblxuICAgICAgLnNvY2lhbC1pY29uXG4gICAgICAgIG1hcmdpbjogMCAxMHB4XG4gICAgICAgIGNvbG9yOiB2YXIoLS1mb250LWNvbG9yKVxuICAgICAgICBmb250LXNpemU6IDEuNGVtXG5cbiAgICAgIGlcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIC4zc1xuXG4gICAgICAgICY6aG92ZXJcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpXG5cbiAgICAjY2FyZC1pbmZvLWJ0blxuICAgICAgZGlzcGxheTogYmxvY2tcbiAgICAgIG1hcmdpbi10b3A6IDE0cHhcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ0bi1iZylcbiAgICAgIGNvbG9yOiB2YXIoLS1idG4tY29sb3IpXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXJcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjRcbiAgICAgIGFkZEJvcmRlclJhZGl1cyg3KVxuXG4gICAgICAmOmhvdmVyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ0bi1ob3Zlci1jb2xvcilcblxuICAgICAgc3BhblxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHhcblxuICAuaXRlbS1oZWFkbGluZVxuICAgIHBhZGRpbmctYm90dG9tOiA2cHhcbiAgICBmb250LXNpemU6IDEuMmVtXG5cbiAgICBzcGFuXG4gICAgICBtYXJnaW4tbGVmdDogNnB4XG5cbiAgLnN0aWNreV9sYXlvdXRcbiAgICArbWluV2lkdGg5MDAoKVxuICAgICAgcG9zaXRpb246IHN0aWNreVxuICAgICAgcG9zaXRpb246IC13ZWJraXQtc3RpY2t5XG4gICAgICB0b3A6IDIwcHhcbiAgICAgIHRyYW5zaXRpb246IHRvcCAuM3NcblxuICAuY2FyZC10YWctY2xvdWRcbiAgICBhXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcbiAgICAgIHBhZGRpbmc6IDAgNHB4XG4gICAgICBsaW5lLWhlaWdodDogMS44XG5cbiAgICAgICY6aG92ZXJcbiAgICAgICAgY29sb3I6ICR0ZXh0LWhvdmVyICFpbXBvcnRhbnRcblxuICAuYXNpZGUtbGlzdFxuICAgICYgPiBzcGFuXG4gICAgICBkaXNwbGF5OiBibG9ja1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweFxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyXG5cbiAgICAmID4gLmFzaWRlLWxpc3QtaXRlbVxuICAgICAgZGlzcGxheTogZmxleFxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlclxuICAgICAgcGFkZGluZzogNnB4IDBcblxuICAgICAgJjpmaXJzdC1jaGlsZFxuICAgICAgICBwYWRkaW5nLXRvcDogMFxuXG4gICAgICAmOm5vdCg6bGFzdC1jaGlsZClcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCAjZjVmNWY1XG5cbiAgICAgICY6bGFzdC1jaGlsZFxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMFxuXG4gICAgICAudGh1bWJuYWlsXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW5cbiAgICAgICAgd2lkdGg6IHcgPSA0ZW1cbiAgICAgICAgaGVpZ2h0OiB3XG4gICAgICAgIGFkZEJvcmRlclJhZGl1cygpXG5cbiAgICAgICAgOmZpcnN0LWNoaWxkXG4gICAgICAgICAgQGV4dGVuZCAuaW1nSG92ZXJcblxuICAgICAgLmNvbnRlbnRcbiAgICAgICAgZmxleDogMVxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHhcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsXG5cbiAgICAgICAgJiA+IC5uYW1lXG4gICAgICAgICAgQGV4dGVuZCAubGltaXQtbW9yZS1saW5lXG4gICAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAxXG5cbiAgICAgICAgJiA+IHRpbWUsXG4gICAgICAgICYgPiAubmFtZVxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrXG4gICAgICAgICAgY29sb3I6IHZhcigtLWNhcmQtbWV0YSlcbiAgICAgICAgICBmb250LXNpemU6IC44NWVtXG5cbiAgICAgICAgJiA+IC50aXRsZSxcbiAgICAgICAgJiA+IC5jb21tZW50XG4gICAgICAgICAgQGV4dGVuZCAubGltaXQtbW9yZS1saW5lXG4gICAgICAgICAgY29sb3I6IHZhcigtLWZvbnQtY29sb3IpXG4gICAgICAgICAgLy8gZm9udC1zaXplOiA5NSVcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS41XG4gICAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyXG5cbiAgICAgICAgICAmOmhvdmVyXG4gICAgICAgICAgICBjb2xvcjogJHRleHQtaG92ZXJcblxuICAgICAgJi5uby1jb3ZlclxuICAgICAgICBtaW4taGVpZ2h0OiA0LjRlbVxuXG4gIC5jYXJkLWFyY2hpdmVzIHVsLmNhcmQtYXJjaGl2ZS1saXN0LFxuICAuY2FyZC1jYXRlZ29yaWVzIHVsLmNhcmQtY2F0ZWdvcnktbGlzdFxuICAgIG1hcmdpbjogMFxuICAgIHBhZGRpbmc6IDBcbiAgICBsaXN0LXN0eWxlOiBub25lXG5cbiAgLmNhcmQtYXJjaGl2ZXMgdWwuY2FyZC1hcmNoaXZlLWxpc3QgPiAuY2FyZC1hcmNoaXZlLWxpc3QtaXRlbSxcbiAgLmNhcmQtY2F0ZWdvcmllcyB1bC5jYXJkLWNhdGVnb3J5LWxpc3QgPiAuY2FyZC1jYXRlZ29yeS1saXN0LWl0ZW1cbiAgICBhXG4gICAgICBkaXNwbGF5OiBmbGV4XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93XG4gICAgICBtYXJnaW46IDJweCAwXG4gICAgICBwYWRkaW5nOiAycHggOHB4XG4gICAgICBjb2xvcjogdmFyKC0tZm9udC1jb2xvcilcbiAgICAgIHRyYW5zaXRpb246IGFsbCAuM3NcbiAgICAgIGFkZEJvcmRlclJhZGl1cygpXG5cbiAgICAgICY6aG92ZXJcbiAgICAgICAgcGFkZGluZzogMnB4IDEycHhcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGV4dC1iZy1ob3ZlcilcbiAgICAgICAgY29sb3I6IHZhcigtLXdoaXRlKVxuXG4gICAgICBzcGFuXG4gICAgICAgIEBleHRlbmQgLmxpbWl0LW9uZS1saW5lXG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZFxuICAgICAgICAgIGZsZXg6IDFcblxuICAuY2FyZC1jYXRlZ29yaWVzXG4gICAgLmNhcmQtY2F0ZWdvcnktbGlzdFxuICAgICAgJi5jaGlsZFxuICAgICAgICBwYWRkaW5nOiAwIDAgMCAxNnB4XG5cbiAgICAgID4gLnBhcmVudFxuICAgICAgICA+IGFcbiAgICAgICAgICAmLmV4cGFuZFxuICAgICAgICAgICAgaVxuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpXG5cbiAgICAgICAgICAgICYgKyAuY2hpbGRcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2tcblxuICAgICAgICAgIC5jYXJkLWNhdGVnb3J5LWxpc3RcbiAgICAgICAgICAgICYtbmFtZVxuICAgICAgICAgICAgICB3aWR0aDogNzAlICFpbXBvcnRhbnRcblxuICAgICAgICAgICAgJi1jb3VudFxuICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gNzAlIC0gMjBweClcbiAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHRcblxuICAgICAgICAgIGlcbiAgICAgICAgICAgIGZsb2F0OiByaWdodFxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtLjVlbVxuICAgICAgICAgICAgcGFkZGluZzogLjVlbVxuICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zc1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMClcblxuICAgICAgICBpZiBoZXhvLWNvbmZpZygnYXNpZGUuY2FyZF9jYXRlZ29yaWVzLmV4cGFuZCcpID09IGZhbHNlXG4gICAgICAgICAgPiAuY2hpbGRcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmVcblxuICAuY2FyZC13ZWJpbmZvXG4gICAgLndlYmluZm9cbiAgICAgIC53ZWJpbmZvLWl0ZW1cbiAgICAgICAgZGlzcGxheTogZmxleFxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyXG4gICAgICAgIHBhZGRpbmc6IDJweCAxMHB4IDBcblxuICAgICAgICBkaXZcbiAgICAgICAgICAmOmZpcnN0LWNoaWxkXG4gICAgICAgICAgICBmbGV4OiAxXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4XG5cbiAgLy8gdG9jXG4gICNjYXJkLXRvY1xuICAgICttaW5XaWR0aDkwMSgpXG4gICAgICByaWdodDogMCAhaW1wb3J0YW50XG5cbiAgICArbWF4V2lkdGg5MDAoKVxuICAgICAgcG9zaXRpb246IGZpeGVkXG4gICAgICByaWdodDogNTVweFxuICAgICAgYm90dG9tOiAzMHB4XG4gICAgICB6LWluZGV4OiAxMDBcbiAgICAgIG1heC13aWR0aDogJHRvYy1tb2JpbGUtbWF4V2lkdGhcbiAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwJSAtIDYwcHgpXG4gICAgICB3aWR0aDogJHRvYy1tb2JpbGUtd2lkdGhcbiAgICAgIHRyYW5zaXRpb246IG5vbmVcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMClcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbVxuXG4gICAgICAmLm9wZW5cbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKVxuXG4gICAgLnRvYy1wZXJjZW50YWdlXG4gICAgICBmbG9hdDogcmlnaHRcbiAgICAgIG1hcmdpbi10b3A6IC05cHhcbiAgICAgIGNvbG9yOiAjYTlhOWE5XG4gICAgICBmb250LXN0eWxlOiBpdGFsaWNcbiAgICAgIGZvbnQtc2l6ZTogMTQwJVxuXG4gICAgLnRvYy1jb250ZW50XG4gICAgICBvdmVyZmxvdy15OiBzY3JvbGxcbiAgICAgIG92ZXJmbG93LXk6IG92ZXJsYXlcbiAgICAgIG1hcmdpbjogMCAtMjRweFxuICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDEyMHB4KVxuICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDQ4cHgpXG5cbiAgICAgICttYXhXaWR0aDkwMCgpXG4gICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAxNDBweClcblxuICAgICAgJiA+ICpcbiAgICAgICAgbWFyZ2luOiAwIDIwcHggIWltcG9ydGFudFxuXG4gICAgICAgICYgPiAudG9jLWl0ZW0gPiAudG9jLWNoaWxkXG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHhcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHhcbiAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWRhcmstZ3JleSlcblxuICAgICAgJjpub3QoLmlzLWV4cGFuZClcbiAgICAgICAgLnRvYy1jaGlsZFxuICAgICAgICAgIGRpc3BsYXk6IG5vbmVcblxuICAgICAgICAgICttYXhXaWR0aDkwMCgpXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50XG5cbiAgICAgICAgLnRvYy1pdGVtXG4gICAgICAgICAgJi5hY3RpdmVcbiAgICAgICAgICAgIC50b2MtY2hpbGRcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2tcblxuICAgICAgb2wsXG4gICAgICBsaVxuICAgICAgICBsaXN0LXN0eWxlOiBub25lXG5cbiAgICAgID4gb2xcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50XG5cbiAgICAgIG9sXG4gICAgICAgIG1hcmdpbjogMFxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDE4cHhcblxuICAgICAgLnRvYy1saW5rXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrXG4gICAgICAgIG1hcmdpbjogNHB4IDBcbiAgICAgICAgcGFkZGluZzogMXB4IDhweFxuICAgICAgICBjb2xvcjogdmFyKC0tdG9jLWxpbmstY29sb3IpXG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAuMnMgZWFzZS1pbi1vdXRcbiAgICAgICAgYWRkQm9yZGVyUmFkaXVzKClcblxuICAgICAgICAmOmhvdmVyXG4gICAgICAgICAgY29sb3I6ICR0aGVtZS1jb2xvclxuXG4gICAgICAgICYuYWN0aXZlXG4gICAgICAgICAgYmFja2dyb3VuZDogJHRoZW1lLXRvYy1jb2xvclxuICAgICAgICAgIGNvbG9yOiAkdG9jLWFjdGl2ZS1jb2xvclxuXG4gIC5zdGlja3lfbGF5b3V0Om9ubHktY2hpbGRcbiAgICA+IDpmaXJzdC1jaGlsZFxuICAgICAgbWFyZ2luLXRvcDogMFxuXG4gIC5jYXJkLW1vcmUtYnRuXG4gICAgZmxvYXQ6IHJpZ2h0XG4gICAgY29sb3I6IGluaGVyaXRcblxuICAgICY6aG92ZXJcbiAgICAgIGFuaW1hdGlvbjogbW9yZS1idG4tbW92ZSAxcyBpbmZpbml0ZVxuXG4gIC5jYXJkLWFubm91bmNlbWVudFxuICAgIC5pdGVtLWhlYWRsaW5lXG4gICAgICBpXG4gICAgICAgIGNvbG9yOiAjRkYwMDAwXG5cbi5hdmF0YXItaW1nXG4gIG92ZXJmbG93OiBoaWRkZW5cbiAgbWFyZ2luOiAwIGF1dG9cbiAgd2lkdGg6IDExMHB4XG4gIGhlaWdodDogMTEwcHhcbiAgYm9yZGVyLXJhZGl1czogNzBweFxuXG4gIGltZ1xuICAgIHdpZHRoOiAxMDAlXG4gICAgaGVpZ2h0OiAxMDAlXG4gICAgdHJhbnNpdGlvbjogZmlsdGVyIDM3NW1zIGVhc2UtaW4gLjJzLCB0cmFuc2Zvcm0gLjNzXG4gICAgb2JqZWN0LWZpdDogY292ZXJcblxuICAgICY6aG92ZXJcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZylcblxuLnNpdGUtZGF0YVxuICBkaXNwbGF5OiB0YWJsZVxuICB3aWR0aDogMTAwJVxuICB0YWJsZS1sYXlvdXQ6IGZpeGVkXG5cbiAgJiA+IGFcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsXG5cbiAgICBkaXZcbiAgICAgIHRyYW5zaXRpb246IGFsbCAuM3NcblxuICAgICY6aG92ZXJcbiAgICAgIGRpdlxuICAgICAgICBjb2xvcjogJHRoZW1lLWNvbG9yICFpbXBvcnRhbnRcblxuICAgIC5oZWFkbGluZVxuICAgICAgQGV4dGVuZCAubGltaXQtb25lLWxpbmVcbiAgICAgIGNvbG9yOiB2YXIoLS1mb250LWNvbG9yKVxuICAgICAgZm9udC1zaXplOiAuOTVlbVxuXG4gICAgLmxlbmd0aC1udW1cbiAgICAgIG1hcmdpbi10b3A6IC0uNDVlbVxuICAgICAgY29sb3I6IHZhcigtLXRleHQtaGlnaGxpZ2h0LWNvbG9yKVxuICAgICAgZm9udC1zaXplOiAxLjJlbVxuXG5Aa2V5ZnJhbWVzIG1vcmUtYnRuLW1vdmVcbiAgMCUsXG4gIDEwMCVcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMClcblxuICA1MCVcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoM3B4KVxuXG5Aa2V5ZnJhbWVzIHRvYy1vcGVuXG4gIDAlXG4gICAgdHJhbnNmb3JtOiBzY2FsZSguNylcblxuICAxMDAlXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKVxuXG5Aa2V5ZnJhbWVzIHRvYy1jbG9zZVxuICAwJVxuICAgIHRyYW5zZm9ybTogc2NhbGUoMSlcblxuICAxMDAlXG4gICAgdHJhbnNmb3JtOiBzY2FsZSguNylcblxuK21pbldpZHRoOTAwKClcbiAgaHRtbC5oaWRlLWFzaWRlXG4gICAgLmxheW91dFxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXJcblxuICAgICAgPiAuYXNpZGUtY29udGVudFxuICAgICAgICBkaXNwbGF5OiBub25lXG5cbiAgICAgID4gZGl2OmZpcnN0LWNoaWxkXG4gICAgICAgIHdpZHRoOiA4MCVcblxuLnBhZ2VcbiAgLnN0aWNreV9sYXlvdXRcbiAgICBkaXNwbGF5OiBmbGV4XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtblxuXG4gIGlmIGhleG8tY29uZmlnKCdhc2lkZS5jYXJkX3JlY2VudF9wb3N0LnNvcnRfb3JkZXInKVxuICAgIC5jYXJkLXJlY2VudC1wb3N0XG4gICAgICBvcmRlcjogaGV4by1jb25maWcoJ2FzaWRlLmNhcmRfcmVjZW50X3Bvc3Quc29ydF9vcmRlcicpXG5cbiAgaWYgaGV4by1jb25maWcoJ2FzaWRlLmNhcmRfbmV3ZXN0X2NvbW1lbnRzLnNvcnRfb3JkZXInKVxuICAgICNjYXJkLW5ld2VzdC1jb21tZW50c1xuICAgICAgb3JkZXI6IGhleG8tY29uZmlnKCdhc2lkZS5jYXJkX25ld2VzdF9jb21tZW50cy5zb3J0X29yZGVyJylcblxuICBpZiBoZXhvLWNvbmZpZygnYXNpZGUuY2FyZF9jYXRlZ29yaWVzLnNvcnRfb3JkZXInKVxuICAgIC5jYXJkLWNhdGVnb3JpZXNcbiAgICAgIG9yZGVyOiBoZXhvLWNvbmZpZygnYXNpZGUuY2FyZF9jYXRlZ29yaWVzLnNvcnRfb3JkZXInKVxuXG4gIGlmIGhleG8tY29uZmlnKCdhc2lkZS5jYXJkX3RhZ3Muc29ydF9vcmRlcicpXG4gICAgLmNhcmQtdGFnc1xuICAgICAgb3JkZXI6IGhleG8tY29uZmlnKCdhc2lkZS5jYXJkX3RhZ3Muc29ydF9vcmRlcicpXG5cbiAgaWYgaGV4by1jb25maWcoJ2FzaWRlLmNhcmRfYXJjaGl2ZXMuc29ydF9vcmRlcicpXG4gICAgLmNhcmQtYXJjaGl2ZXNcbiAgICAgIG9yZGVyOiBoZXhvLWNvbmZpZygnYXNpZGUuY2FyZF9hcmNoaXZlcy5zb3J0X29yZGVyJylcblxuICBpZiBoZXhvLWNvbmZpZygnYXNpZGUuY2FyZF93ZWJpbmZvLnNvcnRfb3JkZXInKVxuICAgIC5jYXJkLXdlYmluZm9cbiAgICAgIG9yZGVyOiBoZXhvLWNvbmZpZygnYXNpZGUuY2FyZF93ZWJpbmZvLnNvcnRfb3JkZXInKVxuIiwiI3Bvc3QtY29tbWVudFxuICAuY29tbWVudC1oZWFkXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweFxuXG4gICAgJjphZnRlclxuICAgICAgZGlzcGxheTogYmxvY2tcbiAgICAgIGNsZWFyOiBib3RoXG4gICAgICBjb250ZW50OiAnJ1xuXG4gICAgLmNvbW1lbnQtaGVhZGxpbmVcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZVxuICAgICAgZm9udC13ZWlnaHQ6IDcwMFxuICAgICAgZm9udC1zaXplOiAxLjQzZW1cblxuICAgIC5jb21tZW50LXN3aXRjaFxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrXG5cbiAgICAgIGlmIGhleG8tY29uZmlnKCdjb21tZW50cy50ZXh0JylcbiAgICAgICAgZmxvYXQ6IHJpZ2h0XG4gICAgICAgIG1hcmdpbjogMnB4IGF1dG8gMFxuICAgICAgICBwYWRkaW5nOiA0cHggMTZweFxuICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnRcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb21tZW50cy1zd2l0Y2gtYmdcbiAgICAgIGVsc2VcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZVxuXG4gICAgICAgID4gc3BhblxuICAgICAgICAgIGRpc3BsYXk6IG5vbmVcblxuICAgICAgLmZpcnN0LWNvbW1lbnRcbiAgICAgICAgY29sb3I6ICRjb21tZW50cy1zd2l0Y2gtZmlyc3QtdGV4dFxuXG4gICAgICAuc2Vjb25kLWNvbW1lbnRcbiAgICAgICAgY29sb3I6ICRjb21tZW50cy1zd2l0Y2gtc2Vjb25kLXRleHRcblxuICAgICAgI3N3aXRjaC1idG5cbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xuICAgICAgICBtYXJnaW46IC00cHggOHB4IDBcbiAgICAgICAgd2lkdGg6IDQycHhcbiAgICAgICAgaGVpZ2h0OiAyMnB4XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDM0cHhcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbW1lbnRzLXN3aXRjaC1maXJzdC10ZXh0XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGVcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyXG4gICAgICAgIHRyYW5zaXRpb246IC40c1xuXG4gICAgICAgICY6YmVmb3JlXG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlXG4gICAgICAgICAgYm90dG9tOiA0cHhcbiAgICAgICAgICBsZWZ0OiA0cHhcbiAgICAgICAgICB3aWR0aDogMTRweFxuICAgICAgICAgIGhlaWdodDogMTRweFxuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJVxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb21tZW50cy1zd2l0Y2gtcm91bmRcbiAgICAgICAgICBjb250ZW50OiAnJ1xuICAgICAgICAgIHRyYW5zaXRpb246IC40c1xuXG4gIC5jb21tZW50LXdyYXBcbiAgICA+IGRpdlxuICAgICAgYW5pbWF0aW9uOiB0YWJzaG93IC41c1xuXG4gICAgICAmOm50aC1jaGlsZCgyKVxuICAgICAgICBkaXNwbGF5OiBub25lXG5cbiAgJi5tb3ZlXG4gICAgI3N3aXRjaC1idG5cbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb21tZW50cy1zd2l0Y2gtc2Vjb25kLXRleHRcblxuICAgICAgJjpiZWZvcmVcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpXG5cbiAgICAuY29tbWVudC13cmFwXG4gICAgICA+IGRpdlxuICAgICAgICAmOmZpcnN0LWNoaWxkXG4gICAgICAgICAgZGlzcGxheTogbm9uZVxuXG4gICAgICAgICY6bGFzdC1jaGlsZFxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrIiwiI2Zvb3RlclxuICBwb3NpdGlvbjogcmVsYXRpdmVcbiAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWJsdWVcbiAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBzY3JvbGxcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogYm90dG9tXG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXJcblxuICBpZiBoZXhvLWNvbmZpZygnZm9vdGVyX2ltZycpICE9IGZhbHNlICYmIGhleG8tY29uZmlnKCdtYXNrLmZvb3RlcicpXG4gICAgJjpiZWZvcmVcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxuICAgICAgd2lkdGg6IDEwMCVcbiAgICAgIGhlaWdodDogMTAwJVxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWFyay1iZylcbiAgICAgIGNvbnRlbnQ6ICcnXG5cbiAgJiA+ICpcbiAgICBwb3NpdGlvbjogcmVsYXRpdmVcbiAgICBjb2xvcjogdmFyKC0tbGlnaHQtZ3JleSlcblxuICBhXG4gICAgY29sb3I6IHZhcigtLWxpZ2h0LWdyZXkpXG4gICAgdHJhbnNpdGlvbjogYWxsIC4zcyBlYXNlLWluLW91dFxuXG4gICAgJjpob3ZlclxuICAgICAgY29sb3I6ICRsaWdodC1ibHVlXG5cbiAgLmZvb3Rlci1zZXBhcmF0b3JcbiAgICBtYXJnaW46IDAgNHB4XG5cbiAgLmljcC1pY29uXG4gICAgcGFkZGluZzogMCA0cHhcbiAgICBtYXgtaGVpZ2h0OiAxLjRlbVxuICAgIHdpZHRoOiBhdXRvXG4gICAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tXG5cbiAgLmZvb3Rlci1mbGV4XG4gICAgZGlzcGxheTogZmxleFxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3dcbiAgICBmbGV4LXdyYXA6IHdyYXBcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW5cbiAgICBtYXJnaW46IDAgYXV0b1xuICAgIHBhZGRpbmc6IDQwcHggNjBweFxuICAgIG1heC13aWR0aDogMTIwMHB4XG4gICAgd2lkdGg6IDEwMCVcbiAgICB0ZXh0LWFsaWduOiBsZWZ0XG4gICAgZ2FwOiAxM3B4XG5cbiAgICArbWF4V2lkdGg3NjgoKVxuICAgICAgcGFkZGluZzogMzBweFxuICAgICAgZ2FwOiAxMHB4XG5cbiAgICAuZm9vdGVyLWZsZXgtaXRlbXNcbiAgICAgIGZsZXgtc2hyaW5rOiAwXG4gICAgICBtaW4td2lkdGg6IDEwMHB4XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwXG5cbiAgICAuZm9vdGVyLWZsZXgtdGl0bGVcbiAgICAgIG1hcmdpbi1ib3R0b206IDVweFxuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcFxuICAgICAgZm9udC13ZWlnaHQ6IDYwMFxuICAgICAgZm9udC1zaXplOiAxLjRlbVxuXG4gICAgLmZvb3Rlci1mbGV4LWl0ZW1cbiAgICAgIG1hcmdpbjogMTBweCAwXG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwXG5cbiAgICBhXG4gICAgICBkaXNwbGF5OiBibG9ja1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcFxuXG4gIC5mb290ZXItb3RoZXJcbiAgICBwYWRkaW5nOiA0MHB4IDIwcHhcbiAgICB3aWR0aDogMTAwJVxuICAgIHRleHQtYWxpZ246IGNlbnRlclxuXG4gICAgaWYgaGV4by1jb25maWcoJ2Zvb3Rlci5uYXYnKVxuICAgICAgcGFkZGluZzogMTBweCA4cHhcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgLjEpXG5cbiAgICAgIC5jb3B5cmlnaHQsXG4gICAgICAuZnJhbWV3b3JrLWluZm8sXG4gICAgICAuZm9vdGVyX2N1c3RvbV90ZXh0XG4gICAgICAgIGZvbnQtc2l6ZTogLjllbVxuICAgIGVsc2VcbiAgICAgIC5mcmFtZXdvcmstaW5mb1xuICAgICAgICBkaXNwbGF5OiBibG9jayIsIiNwYWdlLWhlYWRlclxuICBwb3NpdGlvbjogcmVsYXRpdmVcbiAgd2lkdGg6IDEwMCVcbiAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWJsdWVcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlclxuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXRcbiAgdHJhbnNpdGlvbjogYWxsIC41c1xuXG4gIGlmIGhleG8tY29uZmlnKCdtYXNrLmhlYWRlcicpXG4gICAgJjpub3QoLm5vdC10b3AtaW1nKTpiZWZvcmVcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxuICAgICAgd2lkdGg6IDEwMCVcbiAgICAgIGhlaWdodDogMTAwJVxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWFyay1iZylcbiAgICAgIGNvbnRlbnQ6ICcnXG5cbiAgLy8gaW5kZXhcbiAgJi5mdWxsX3BhZ2VcbiAgICBoZWlnaHQ6ICRpbmRleF90b3BfaW1nX2hlaWdodFxuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWRcblxuICAgICNzaXRlLWluZm9cbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxuICAgICAgdG9wOiAkaW5kZXhfc2l0ZV9pbmZvX3RvcFxuICAgICAgcGFkZGluZzogMCAxMHB4XG4gICAgICB3aWR0aDogMTAwJVxuXG4gICNzaXRlLXRpdGxlLFxuICAjc2l0ZS1zdWJ0aXRsZSxcbiAgI3Njcm9sbC1kb3duIC5zY3JvbGwtZG93bi1lZmZlY3RzXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXG4gICAgdGV4dC1zaGFkb3c6IDJweCAycHggNHB4IHJnYmEoMCwgMCwgMCwgLjE1KVxuICAgIGxpbmUtaGVpZ2h0OiAxLjVcblxuICAjc2l0ZS10aXRsZVxuICAgIG1hcmdpbjogMFxuICAgIGNvbG9yOiB2YXIoLS13aGl0ZSlcbiAgICBmb250LXNpemU6IDEuODVlbVxuXG4gICAgK21pbldpZHRoNzY4KClcbiAgICAgIGZvbnQtc2l6ZTogMi44NWVtXG5cbiAgI3NpdGUtc3VidGl0bGVcbiAgICBjb2xvcjogdmFyKC0tbGlnaHQtZ3JleSlcbiAgICBmb250LXNpemU6IDEuMTVlbVxuXG4gICAgK21pbldpZHRoNzY4KClcbiAgICAgIGZvbnQtc2l6ZTogMS43MmVtXG5cbiAgI3NpdGVfc29jaWFsX2ljb25zXG4gICAgZGlzcGxheTogbm9uZVxuICAgIG1hcmdpbjogMCBhdXRvXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXG5cbiAgICArbWF4V2lkdGg3NjgoKVxuICAgICAgZGlzcGxheTogYmxvY2tcblxuICAgIC5zb2NpYWwtaWNvblxuICAgICAgbWFyZ2luOiAwIDEwcHhcbiAgICAgIGNvbG9yOiB2YXIoLS1saWdodC1ncmV5KVxuICAgICAgdGV4dC1zaGFkb3c6IDJweCAycHggNHB4IHJnYmEoMCwgMCwgMCwgLjE1KVxuICAgICAgZm9udC1zaXplOiAxLjQzZW1cblxuICAjc2Nyb2xsLWRvd25cbiAgICBwb3NpdGlvbjogYWJzb2x1dGVcbiAgICBib3R0b206IDEwcHhcbiAgICB3aWR0aDogMTAwJVxuICAgIGN1cnNvcjogcG9pbnRlclxuXG4gICAgLnNjcm9sbC1kb3duLWVmZmVjdHNcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxuICAgICAgd2lkdGg6IDEwMCVcbiAgICAgIGNvbG9yOiB2YXIoLS1saWdodC1ncmV5KVxuICAgICAgZm9udC1zaXplOiAyMHB4XG5cbiAgLy8gcGFnZVxuICAmLm5vdC1ob21lLXBhZ2VcbiAgICBoZWlnaHQ6IDQwMHB4XG5cbiAgICArbWF4V2lkdGg3NjgoKVxuICAgICAgaGVpZ2h0OiAyODBweFxuXG4gICNwYWdlLXNpdGUtaW5mb1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxuICAgIHRvcDogMjAwcHhcbiAgICBwYWRkaW5nOiAwIDEwcHhcbiAgICB3aWR0aDogMTAwJVxuXG4gICAgK21heFdpZHRoNzY4KClcbiAgICAgIHRvcDogMTQwcHhcblxuICAvLyBwb3N0XG4gICYucG9zdC1iZ1xuICAgIGhlaWdodDogNDAwcHhcblxuICAgICttYXhXaWR0aDc2OCgpXG4gICAgICBoZWlnaHQ6IDM2MHB4XG5cbiAgI3Bvc3QtaW5mb1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxuICAgIHdpZHRoOiAxMDAlXG5cbiAgICBpZiBoZXhvLWNvbmZpZygncG9zdF9tZXRhLnBvc3QucG9zaXRpb24nKSA9PSAnY2VudGVyJ1xuICAgICAgdG9wOiBjYWxjKDUwJSArIDMwcHgpXG4gICAgICBwYWRkaW5nOiAwIDglXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXJcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKVxuXG4gICAgICArbWF4V2lkdGg3NjgoKVxuICAgICAgICBwYWRkaW5nOiAwIDE1cHhcbiAgICBlbHNlXG4gICAgICBib3R0b206IDMwcHhcblxuICAgICAgJiA+ICpcbiAgICAgICAgbWFyZ2luOiAwIGF1dG9cbiAgICAgICAgcGFkZGluZzogMCAxNXB4XG4gICAgICAgIG1heC13aWR0aDogMTIwMHB4XG5cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiAxMzAwcHgpXG4gICAgICAgICAgcGFkZGluZzogMCAzMHB4XG5cbiAgICAgICAgK21pbldpZHRoMjAwMCgpXG4gICAgICAgICAgbWF4LXdpZHRoOiA3MCVcblxuICAmLm5vdC10b3AtaW1nXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweFxuICAgIGhlaWdodDogNjBweFxuICAgIGJhY2tncm91bmQ6IDBcblxuICAgIC50aXRsZS1zZW9cbiAgICAgIGRpc3BsYXk6IG5vbmVcblxuICAgICNuYXZcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgLjgpXG4gICAgICBib3gtc2hhZG93OiAwIDVweCA2cHggLTVweCByZ2JhKDEzMywgMTMzLCAxMzMsIC42KVxuXG4gICAgICBhLFxuICAgICAgc3Bhbi5zaXRlLXBhZ2UsXG4gICAgICAuc2l0ZS1uYW1lXG4gICAgICAgIGNvbG9yOiB2YXIoLS1mb250LWNvbG9yKVxuICAgICAgICB0ZXh0LXNoYWRvdzogbm9uZVxuXG4gICYubmF2LWZpeGVkXG4gICAgI25hdlxuICAgICAgcG9zaXRpb246IGZpeGVkXG4gICAgICB0b3A6IC02MHB4XG4gICAgICB6LWluZGV4OiA5MVxuICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAuNylcbiAgICAgIGJveC1zaGFkb3c6IDAgNXB4IDZweCAtNXB4IGFscGhhKCRncmV5LCAuNilcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMnMgZWFzZS1pbi1vdXQsIG9wYWNpdHkgLjJzIGVhc2UtaW4tb3V0XG4gICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtXG4gICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoN3B4KVxuXG4gICAgICAjYmxvZy1pbmZvXG4gICAgICAgIGNvbG9yOiB2YXIoLS1mb250LWNvbG9yKVxuXG4gICAgICAgICY6aG92ZXJcbiAgICAgICAgICBjb2xvcjogJGxpZ2h0LWJsdWVcblxuICAgICAgICAuc2l0ZS1uYW1lXG4gICAgICAgICAgdGV4dC1zaGFkb3c6IG5vbmVcblxuICAgICAgICAmID4gYTpmaXJzdC1jaGlsZFxuICAgICAgICAgIGRpc3BsYXk6IG5vbmVcblxuICAgICAgICAmID4gYTpsYXN0LWNoaWxkXG4gICAgICAgICAgZGlzcGxheTogaW5saW5lXG5cbiAgICAgIGEsXG4gICAgICBzcGFuLnNpdGUtcGFnZSxcbiAgICAgICN0b2dnbGUtbWVudVxuICAgICAgICBjb2xvcjogdmFyKC0tZm9udC1jb2xvcilcbiAgICAgICAgdGV4dC1zaGFkb3c6IG5vbmVcblxuICAgICAgICAmOmhvdmVyXG4gICAgICAgICAgY29sb3I6ICRsaWdodC1ibHVlXG5cbiAgICAmLmZpeGVkXG4gICAgICAjbmF2XG4gICAgICAgIHRvcDogMFxuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjVzXG5cbiAgJi5uYXYtdmlzaWJsZTpub3QoLmZpeGVkKVxuICAgICNuYXZcbiAgICAgIHRyYW5zaXRpb246IGFsbCAuNXNcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMClcblxuICAgICYgKyAubGF5b3V0XG4gICAgICAmID4gLmFzaWRlLWNvbnRlbnQgPiAuc3RpY2t5X2xheW91dFxuICAgICAgICB0b3A6IDcwcHhcbiAgICAgICAgdHJhbnNpdGlvbjogdG9wIC41c1xuXG4gICYuZml4ZWRcbiAgICAjbmF2XG4gICAgICBwb3NpdGlvbjogZml4ZWRcblxuICAgICYgKyAubGF5b3V0XG4gICAgICAmID4gLmFzaWRlLWNvbnRlbnQgPiAuc3RpY2t5X2xheW91dFxuICAgICAgICB0b3A6IDcwcHhcbiAgICAgICAgdHJhbnNpdGlvbjogdG9wIC41c1xuXG4gICAgICAjY2FyZC10b2NcbiAgICAgICAgLnRvYy1jb250ZW50XG4gICAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDE3MHB4KVxuXG4jcGFnZVxuICAucGFnZS10aXRsZVxuICAgIG1hcmdpbjogMCAwIDEwcHhcbiAgICBmb250LXdlaWdodDogYm9sZFxuICAgIGZvbnQtc2l6ZTogMmVtXG5cbi8vIGZvciBub3QgdG9wX2ltZ1xuI3Bvc3RcbiAgJiA+ICNwb3N0LWluZm9cbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4XG5cbiAgICAucG9zdC10aXRsZVxuICAgICAgcGFkZGluZy1ib3R0b206IDRweFxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWxpZ2h0LWdyZXkpXG4gICAgICBjb2xvcjogdmFyKC0tdGV4dC1oaWdobGlnaHQtY29sb3IpXG5cbiAgICAgIC5wb3N0LWVkaXQtbGlua1xuICAgICAgICBmbG9hdDogcmlnaHRcblxuICAgICNwb3N0LW1ldGEsXG4gICAgI3Bvc3QtbWV0YSBhXG4gICAgICBjb2xvcjogIzc4ODE4YVxuXG4jcG9zdC1pbmZvXG4gIC5wb3N0LXRpdGxlXG4gICAgQGV4dGVuZCAubGltaXQtbW9yZS1saW5lXG4gICAgbWFyZ2luLWJvdHRvbTogOHB4XG4gICAgY29sb3I6IHZhcigtLXdoaXRlKVxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWxcbiAgICBmb250LXNpemU6IDIuNWVtXG4gICAgbGluZS1oZWlnaHQ6IDEuNVxuICAgIC13ZWJraXQtbGluZS1jbGFtcDogM1xuXG4gICAgK21heFdpZHRoNzY4KClcbiAgICAgIGZvbnQtc2l6ZTogMi4xZW1cblxuICAgIC5wb3N0LWVkaXQtbGlua1xuICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4XG5cbiAgI3Bvc3QtbWV0YVxuICAgIGNvbG9yOiB2YXIoLS1saWdodC1ncmV5KVxuICAgIGZvbnQtc2l6ZTogOTUlXG5cbiAgICArbWluV2lkdGg3NjgoKVxuICAgICAgPiAubWV0YS1zZWNvbmRsaW5lXG4gICAgICAgID4gc3BhbjpmaXJzdC1jaGlsZFxuICAgICAgICAgIGRpc3BsYXk6IG5vbmVcblxuICAgICttYXhXaWR0aDc2OCgpXG4gICAgICBmb250LXNpemU6IDkwJVxuXG4gICAgICA+IC5tZXRhLWZpcnN0bGluZSxcbiAgICAgID4gLm1ldGEtc2Vjb25kbGluZVxuICAgICAgICBkaXNwbGF5OiBpbmxpbmVcblxuICAgIC5wb3N0LW1ldGFcbiAgICAgICYtc2VwYXJhdG9yXG4gICAgICAgIG1hcmdpbjogMCA1cHhcblxuICAgICAgJi1pY29uXG4gICAgICAgIG1hcmdpbi1yaWdodDogNHB4XG5cbiAgICAgICYtbGFiZWxcbiAgICAgICAgaWYgaGV4by1jb25maWcoJ3Bvc3RfbWV0YS5wb3N0LmxhYmVsJylcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweFxuICAgICAgICBlbHNlXG4gICAgICAgICAgZGlzcGxheTogbm9uZVxuXG4gICAgYVxuICAgICAgY29sb3I6IHZhcigtLWxpZ2h0LWdyZXkpXG4gICAgICB0cmFuc2l0aW9uOiBhbGwgLjNzIGVhc2Utb3V0XG5cbiAgICAgICY6aG92ZXJcbiAgICAgICAgY29sb3I6ICR0ZXh0LWhvdmVyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lXG5cbiAgICBpZiBoZXhvLWNvbmZpZygncG9zdF9tZXRhLnBvc3QuZGF0ZV9mb3JtYXQnKSA9PSAncmVsYXRpdmUnXG4gICAgICB0aW1lXG4gICAgICAgIGRpc3BsYXk6IG5vbmVcblxuI25hdlxuICBwb3NpdGlvbjogYWJzb2x1dGVcbiAgdG9wOiAwXG4gIHotaW5kZXg6IDkwXG4gIGRpc3BsYXk6IGZsZXhcbiAgYWxpZ24taXRlbXM6IGNlbnRlclxuICBwYWRkaW5nOiAwIDM2cHhcbiAgd2lkdGg6IDEwMCVcbiAgaGVpZ2h0OiA2MHB4XG4gIGZvbnQtc2l6ZTogMS4zZW1cbiAgb3BhY2l0eTogMFxuICB0cmFuc2l0aW9uOiBhbGwgLjVzXG5cbiAgK21heFdpZHRoNzY4KClcbiAgICBwYWRkaW5nOiAwIDE2cHhcblxuICAmLnNob3dcbiAgICBvcGFjaXR5OiAxXG5cbiAgI2Jsb2ctaW5mb1xuICAgIGZsZXg6IDFcbiAgICBjb2xvcjogdmFyKC0tbGlnaHQtZ3JleSlcbiAgICBAZXh0ZW5kIC5saW1pdC1vbmUtbGluZVxuXG4gICAgLnNpdGUtaWNvblxuICAgICAgbWFyZ2luLXJpZ2h0OiA2cHhcbiAgICAgIGhlaWdodDogMzZweFxuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZVxuXG4gICAgLm5hdi1wYWdlLXRpdGxlXG4gICAgICBkaXNwbGF5OiBub25lXG5cbiAgI3RvZ2dsZS1tZW51XG4gICAgZGlzcGxheTogbm9uZVxuICAgIHBhZGRpbmc6IDJweCAwIDAgNnB4XG4gICAgdmVydGljYWwtYWxpZ246IHRvcFxuXG4gICAgJjpob3ZlclxuICAgICAgY29sb3I6IHZhcigtLXdoaXRlKVxuXG4gIGEsXG4gIHNwYW4uc2l0ZS1wYWdlXG4gICAgY29sb3I6IHZhcigtLWxpZ2h0LWdyZXkpXG5cbiAgICAmOmhvdmVyXG4gICAgICBjb2xvcjogdmFyKC0td2hpdGUpXG5cbiAgLnNpdGUtbmFtZVxuICAgIHRleHQtc2hhZG93OiAycHggMnB4IDRweCByZ2JhKCRkYXJrLWJsYWNrLCAuMTUpXG4gICAgZm9udC13ZWlnaHQ6IGJvbGRcblxuICAubWVudXNfaXRlbXNcbiAgICBkaXNwbGF5OiBpbmxpbmVcblxuICAgIC5tZW51c19pdGVtXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmVcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xuICAgICAgcGFkZGluZzogMCAwIDAgMTRweFxuXG4gICAgICAmOmhvdmVyXG4gICAgICAgIC5tZW51c19pdGVtX2NoaWxkXG4gICAgICAgICAgZGlzcGxheTogYmxvY2tcblxuICAgICAgICAmID4gc3BhbiA+IGk6bGFzdC1jaGlsZFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZylcblxuICAgICAgJiA+IHNwYW4gPiBpOmxhc3QtY2hpbGRcbiAgICAgICAgcGFkZGluZzogNHB4XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuM3NcblxuICAgICAgLm1lbnVzX2l0ZW1fY2hpbGRcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlXG4gICAgICAgIHJpZ2h0OiAwXG4gICAgICAgIGRpc3BsYXk6IG5vbmVcbiAgICAgICAgbWFyZ2luLXRvcDogOHB4XG4gICAgICAgIHBhZGRpbmc6IDBcbiAgICAgICAgd2lkdGg6IG1heC1jb250ZW50XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNpZGViYXItYmcpXG4gICAgICAgIGJveC1zaGFkb3c6IDAgNXB4IDIwcHggLTRweCByZ2JhKCRkYXJrLWJsYWNrLCAuNSlcbiAgICAgICAgYW5pbWF0aW9uOiBzdWJfbWVudXMgLjNzIC4xcyBlYXNlIGJvdGhcbiAgICAgICAgYWRkQm9yZGVyUmFkaXVzKDUpXG5cbiAgICAgICAgJjpiZWZvcmVcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGVcbiAgICAgICAgICB0b3A6IC04cHhcbiAgICAgICAgICBsZWZ0OiAwXG4gICAgICAgICAgd2lkdGg6IDEwMCVcbiAgICAgICAgICBoZWlnaHQ6IDIwcHhcbiAgICAgICAgICBjb250ZW50OiAnJ1xuXG4gICAgICAgIGxpXG4gICAgICAgICAgbGlzdC1zdHlsZTogbm9uZVxuXG4gICAgICAgICAgJjpob3ZlclxuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdGV4dC1iZy1ob3ZlcilcblxuICAgICAgICAgIGlmIGhleG8tY29uZmlnKCdyb3VuZGVkX2Nvcm5lcnNfdWknKVxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZFxuICAgICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHhcbiAgICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDVweFxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGRcbiAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDVweFxuICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA1cHhcblxuICAgICAgICAgIGFcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xuICAgICAgICAgICAgcGFkZGluZzogOHB4IDE2cHhcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tZm9udC1jb2xvcikgIWltcG9ydGFudFxuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudFxuXG4gICYuaGlkZS1tZW51XG4gICAgI3RvZ2dsZS1tZW51XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudFxuXG4gICAgICAuc2l0ZS1wYWdlXG4gICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdFxuXG4gICAgLm1lbnVzX2l0ZW1zXG4gICAgICBkaXNwbGF5OiBub25lXG5cbiAgICAjc2VhcmNoLWJ1dHRvbiBzcGFuOm5vdCguc2l0ZS1wYWdlKVxuICAgICAgZGlzcGxheTogbm9uZVxuXG4gICNzZWFyY2gtYnV0dG9uXG4gICAgZGlzcGxheTogaW5saW5lXG4gICAgcGFkZGluZzogMCAwIDAgMTRweFxuXG4gIC5zaXRlLXBhZ2VcbiAgICBwb3NpdGlvbjogcmVsYXRpdmVcbiAgICBwYWRkaW5nLWJvdHRvbTogNnB4XG4gICAgdGV4dC1zaGFkb3c6IDFweCAxcHggMnB4IHJnYmEoJGRhcmstYmxhY2ssIC4zKVxuICAgIGZvbnQtc2l6ZTogLjc4ZW1cbiAgICBjdXJzb3I6IHBvaW50ZXJcblxuICAgICY6bm90KC5jaGlsZClcbiAgICAgICY6YWZ0ZXJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlXG4gICAgICAgIGJvdHRvbTogMFxuICAgICAgICBsZWZ0OiAwXG4gICAgICAgIHotaW5kZXg6IC0xXG4gICAgICAgIHdpZHRoOiAwXG4gICAgICAgIGhlaWdodDogM3B4XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJHRoZW1lLWNvbG9yLCAzMCUpXG4gICAgICAgIGNvbnRlbnQ6ICcnXG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAuM3MgZWFzZS1pbi1vdXRcbiAgICAgICAgYWRkQm9yZGVyUmFkaXVzKClcblxuICAgICAgJjpob3ZlclxuICAgICAgICAmOmFmdGVyXG4gICAgICAgICAgd2lkdGg6IDEwMCVcblxuICAubmF2LXBhZ2UtdGl0bGVcbiAgICBwb3NpdGlvbjogcmVsYXRpdmVcbiAgICBvdmVyZmxvdzogaGlkZGVuXG5cbiAgICAmID4gOmZpcnN0LWNoaWxkLFxuICAgICYgPiA6bGFzdC1jaGlsZFxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrXG4gICAgICB0cmFuc2l0aW9uOiBhbGwgLjNzIGVhc2UtaW4tb3V0XG5cbiAgICAmID4gOmxhc3QtY2hpbGRcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxuICAgICAgdG9wOiA1MCVcbiAgICAgIGxlZnQ6IDBcbiAgICAgIG9wYWNpdHk6IDBcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVZKC0xMHB4KVxuXG4gICAgJjpob3ZlclxuICAgICAgJiA+IDpsYXN0LWNoaWxkXG4gICAgICAgIG9wYWNpdHk6IDFcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVkoMClcblxuICAgICAgJiA+IDpmaXJzdC1jaGlsZFxuICAgICAgICBvcGFjaXR5OiAwXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KSIsIiNwYWdpbmF0aW9uXG4gIC5wYWdpbmF0aW9uXG4gICAgbWFyZ2luLXRvcDogMjBweFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxuXG4gIC5wYWdlLW51bWJlclxuICAgICYuY3VycmVudFxuICAgICAgYmFja2dyb3VuZDogJHRoZW1lLXBhZ2luYXRvci1jb2xvclxuICAgICAgY29sb3I6IHZhcigtLXdoaXRlKVxuXG4gIC5mdWxsLXdpZHRoXG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudFxuXG4gIC5wYWdpbmF0aW9uLXJlbGF0ZWRcbiAgICBoZWlnaHQ6IDE1MHB4XG5cbiAgICArbWluV2lkdGg3NjgoKVxuICAgICAgZmxleDogMVxuXG4gICAgLmluZm8tMVxuICAgICAgLmluZm8taXRlbS0yXG4gICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMVxuXG4gICAgLmluZm8tMlxuICAgICAgLmluZm8taXRlbS0xXG4gICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMlxuXG4gICYucGFnaW5hdGlvbi1wb3N0XG4gICAgb3ZlcmZsb3c6IGhpZGRlblxuICAgIG1hcmdpbi10b3A6IDQwcHhcbiAgICB3aWR0aDogMTAwJVxuICAgIGFkZEJvcmRlclJhZGl1cygpXG4gICAgZGlzcGxheTogZmxleFxuXG4gICAgK21heFdpZHRoNzY4KClcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW5cblxuLmxheW91dFxuICAucGFnaW5hdGlvblxuICAgICYgPiAqXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcbiAgICAgIG1hcmdpbjogMCA2cHhcbiAgICAgIHdpZHRoOiB3ID0gMi41ZW1cbiAgICAgIGhlaWdodDogd1xuICAgICAgbGluZS1oZWlnaHQ6IHdcblxuICAgICYgPiAqOm5vdCguc3BhY2UpXG4gICAgICBAZXh0ZW5kIC5jYXJkSG92ZXJcblxuICAgICAgJjpob3ZlclxuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1idG4taG92ZXItY29sb3IpXG4gICAgICAgIGNvbG9yOiB2YXIoLS1idG4tY29sb3IpXG5cbiNhcmNoaXZlXG4gIC5wYWdpbmF0aW9uXG4gICAgbWFyZ2luLXRvcDogMzBweFxuXG4gICAgJiA+ICo6bm90KC5zcGFjZSlcbiAgICAgIGJveC1zaGFkb3c6IG5vbmVcblxuLnBhZ2luYXRpb24tcmVsYXRlZFxuICBwb3NpdGlvbjogcmVsYXRpdmVcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrXG4gIG92ZXJmbG93OiBoaWRkZW5cbiAgYmFja2dyb3VuZDogJGRhcmstYmxhY2tcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbVxuICBAZXh0ZW5kIC5wb3N0SW1nSG92ZXJcblxuICAmLm5leHQtcG9zdFxuICAgIC5pbmZvXG4gICAgICB0ZXh0LWFsaWduOiByaWdodFxuXG4gIC5pbmZvXG4gICAgLmluZm8tMSxcbiAgICAuaW5mby0yXG4gICAgICBAZXh0ZW5kIC52ZXJ0aWNhbENlbnRlclxuICAgICAgcGFkZGluZzogMjBweCA0MHB4XG4gICAgICBjb2xvcjogdmFyKC0td2hpdGUpXG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjNzLCBvcGFjaXR5IC4zc1xuXG4gICAgLmluZm8tMVxuICAgICAgLmluZm8taXRlbS0xXG4gICAgICAgIGNvbG9yOiB2YXIoLS1saWdodC1ncmV5KVxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlXG4gICAgICAgIGZvbnQtc2l6ZTogOTAlXG5cbiAgICAgIC5pbmZvLWl0ZW0tMlxuICAgICAgICBAZXh0ZW5kIC5saW1pdC1tb3JlLWxpbmVcbiAgICAgICAgY29sb3I6IHZhcigtLXdoaXRlKVxuICAgICAgICBmb250LXdlaWdodDogNTAwXG5cbiAgICAuaW5mby0yXG4gICAgICBvcGFjaXR5OiAwXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKVxuXG4gICAgICAuaW5mby1pdGVtLTFcbiAgICAgICAgQGV4dGVuZCAubGltaXQtbW9yZS1saW5lXG5cbiAgJjpub3QoLm5vLWRlc2MpOmhvdmVyXG4gICAgLmluZm8tMVxuICAgICAgb3BhY2l0eTogMFxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTEwMCUpXG5cbiAgICAuaW5mby0yXG4gICAgICBvcGFjaXR5OiAxXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKSIsImJlYXV0aWZ5KClcbiAgaGVhZFN0eWxlKGZvbnRzaXplKVxuICAgIHBhZGRpbmctbGVmdDogdW5pdChmb250c2l6ZSArIDgsICdweCcpXG5cbiAgICAmOmJlZm9yZVxuICAgICAgZm9udC1zaXplOiB1bml0KGZvbnRzaXplIC0gMiwgJ3B4JylcblxuICAgICY6aG92ZXJcbiAgICAgIHBhZGRpbmctbGVmdDogdW5pdChmb250c2l6ZSArIDEyLCAncHgnKVxuXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDZcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2Utb3V0XG5cbiAgICAmOmJlZm9yZVxuICAgICAgcG9zaXRpb246IGFic29sdXRlXG4gICAgICB0b3A6IGNhbGMoNTAlIC0gN3B4KVxuICAgICAgbGVmdDogMFxuICAgICAgY29sb3I6ICR0aXRsZS1wcmVmaXgtaWNvbi1jb2xvclxuICAgICAgY29udGVudDogJHRpdGxlLXByZWZpeC1pY29uXG4gICAgICBsaW5lLWhlaWdodDogMVxuICAgICAgdHJhbnNpdGlvbjogYWxsIC4ycyBlYXNlLW91dFxuICAgICAgQGV4dGVuZCAuZm9udGF3ZXNvbWVJY29uXG5cbiAgICAmOmhvdmVyXG4gICAgICAmOmJlZm9yZVxuICAgICAgICBjb2xvcjogJGxpZ2h0LWJsdWVcblxuICBoMVxuICAgIGhlYWRTdHlsZSgyMClcblxuICBoMlxuICAgIGhlYWRTdHlsZSgxOClcblxuICBoM1xuICAgIGhlYWRTdHlsZSgxNilcblxuICBoNFxuICAgIGhlYWRTdHlsZSgxNClcblxuICBoNVxuICAgIGhlYWRTdHlsZSgxMilcblxuICBoNlxuICAgIGhlYWRTdHlsZSgxMilcblxuICBvbCxcbiAgdWxcbiAgICBwXG4gICAgICBtYXJnaW46IDAgMCA4cHhcblxuICBsaVxuICAgICY6Om1hcmtlclxuICAgICAgY29sb3I6ICRsaWdodC1ibHVlXG4gICAgICBmb250LXdlaWdodDogNjAwXG4gICAgICBmb250LXNpemU6IDEuMDVlbVxuXG4gICAgJjpob3ZlclxuICAgICAgJjo6bWFya2VyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1wc2V1ZG8taG92ZXIpXG5cbiAgdWwgPiBsaVxuICAgIGxpc3Qtc3R5bGUtdHlwZTogY2lyY2xlXG5cbiAgaHJcbiAgICBAZXh0ZW5kIC5jdXN0b20taHJcblxuLmNvbnRhaW5lclxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmRcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZFxuXG4gIGlmIGhleG8tY29uZmlnKCd0ZXh0X2FsaWduX2p1c3RpZnknKVxuICAgIHRleHQtYWxpZ246IGp1c3RpZnlcblxuICBhXG4gICAgY29sb3I6ICR0aGVtZS1saW5rLWNvbG9yXG5cbiAgICAmOmhvdmVyXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZVxuXG4gIGltZ1xuICAgIGRpc3BsYXk6IGJsb2NrXG4gICAgbWFyZ2luOiAwIGF1dG8gMjBweFxuICAgIG1heC13aWR0aDogMTAwJVxuICAgIHRyYW5zaXRpb246IGZpbHRlciAzNzVtcyBlYXNlLWluIC4yc1xuICAgIGFkZEJvcmRlclJhZGl1cygpXG5cbiAgcFxuICAgIG1hcmdpbjogMCAwIDE2cHhcblxuICBpZnJhbWVcbiAgICBtYXJnaW46IDAgMCAyMHB4XG5cbiAga2JkXG4gICAgbWFyZ2luOiAwIDNweFxuICAgIHBhZGRpbmc6IDNweCA1cHhcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYjRiNGI0XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmOFxuICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIC4yNSksIDAgMnB4IDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgLjYpIGluc2V0XG4gICAgY29sb3I6ICMzNDQ5NWVcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwXG4gICAgZm9udC13ZWlnaHQ6IDYwMFxuICAgIGZvbnQtc2l6ZTogLjllbVxuICAgIGZvbnQtZmFtaWx5OiBNb25hY28sICdVYnVudHUgTW9ubycsIG1vbm9zcGFjZVxuICAgIGxpbmUtaGVpZ2h0OiAxZW1cbiAgICBhZGRCb3JkZXJSYWRpdXMoMylcblxuICBpZiBoZXhvLWNvbmZpZygnYW5jaG9yLmNsaWNrX3RvX3Njcm9sbCcpXG4gICAgaDEsXG4gICAgaDIsXG4gICAgaDMsXG4gICAgaDQsXG4gICAgaDUsXG4gICAgaDZcbiAgICAgIHdpZHRoOiBmaXQtY29udGVudFxuXG4gICAgICBhOm5vdCguaGVhZGVybGluaylcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlXG4gICAgICAgIHotaW5kZXg6IDEwXG5cbiAgICAgIGEuaGVhZGVybGlua1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGVcbiAgICAgICAgdG9wOiAwXG4gICAgICAgIHJpZ2h0OiAwXG4gICAgICAgIGJvdHRvbTogMFxuICAgICAgICBsZWZ0OiAwXG4gICAgICAgIHdpZHRoOiAxMDAlXG4gICAgICAgIGhlaWdodDogMTAwJVxuXG4gIG9sLFxuICB1bFxuICAgIG9sLFxuICAgIHVsXG4gICAgICBwYWRkaW5nLWxlZnQ6IDIwcHhcblxuICAgIGxpXG4gICAgICBtYXJnaW46IDRweCAwXG5cbiAgICBwXG4gICAgICBtYXJnaW46IDAgMCA4cHhcblxuICA+IDpsYXN0LWNoaWxkXG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50XG5cbiAgaHJcbiAgICBtYXJnaW46IDIwcHggMFxuXG4gIGlmIGhleG8tY29uZmlnKCdiZWF1dGlmeS5lbmFibGUnKVxuICAgIGlmIGhleG8tY29uZmlnKCdiZWF1dGlmeS5maWVsZCcpID09ICdzaXRlJ1xuICAgICAgYmVhdXRpZnkoKVxuICAgIGVsc2UgaWYgaGV4by1jb25maWcoJ2JlYXV0aWZ5LmZpZWxkJykgPT0gJ3Bvc3QnXG4gICAgICAmLnBvc3QtY29udGVudFxuICAgICAgICBiZWF1dGlmeSgpXG5cbiNwb3N0XG4gIC50YWdfc2hhcmVcbiAgICAmOmFmdGVyXG4gICAgICBkaXNwbGF5OiBibG9ja1xuICAgICAgY2xlYXI6IGJvdGhcbiAgICAgIGNvbnRlbnQ6ICcnXG5cbiAgICAucG9zdC1tZXRhXG4gICAgICAmX190YWctbGlzdFxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcblxuICAgICAgJl9fdGFnc1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcbiAgICAgICAgbWFyZ2luOiA4cHggOHB4IDhweCAwXG4gICAgICAgIHBhZGRpbmc6IDAgMTJweFxuICAgICAgICB3aWR0aDogZml0LWNvbnRlbnRcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWJsdWVcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweFxuICAgICAgICBjb2xvcjogJGxpZ2h0LWJsdWVcbiAgICAgICAgZm9udC1zaXplOiAuODVlbVxuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2UtaW4tb3V0XG5cbiAgICAgICAgJjpob3ZlclxuICAgICAgICAgIGJhY2tncm91bmQ6ICRsaWdodC1ibHVlXG4gICAgICAgICAgY29sb3I6IHZhcigtLXdoaXRlKVxuXG4gICAgLnBvc3Qtc2hhcmVcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xuICAgICAgZmxvYXQ6IHJpZ2h0XG4gICAgICBtYXJnaW46IDhweCAwIDBcbiAgICAgIHdpZHRoOiBmaXQtY29udGVudFxuXG4gICAgICAuc29jaWFsLXNoYXJlXG4gICAgICAgIGZvbnQtc2l6ZTogLjg1ZW1cblxuICAgICAgICAuc29jaWFsLXNoYXJlLWljb25cbiAgICAgICAgICBtYXJnaW46IDAgNHB4XG4gICAgICAgICAgd2lkdGg6IHcgPSAxLjg1ZW1cbiAgICAgICAgICBoZWlnaHQ6IHdcbiAgICAgICAgICBmb250LXNpemU6IDEuMmVtXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IHdcblxuICAucG9zdC1jb3B5cmlnaHRcbiAgICBwb3NpdGlvbjogcmVsYXRpdmVcbiAgICBtYXJnaW46IDQwcHggMCAxMHB4XG4gICAgcGFkZGluZzogMTBweCAxNnB4XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGlnaHQtZ3JleSlcbiAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IC4zcyBlYXNlLWluLW91dFxuICAgIGFkZEJvcmRlclJhZGl1cygpXG5cbiAgICAmOmJlZm9yZVxuICAgICAgQGV4dGVuZCAuZm9udGF3ZXNvbWVJY29uXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGVcbiAgICAgIHRvcDogMnB4XG4gICAgICByaWdodDogMTJweFxuICAgICAgY29sb3I6ICR0aGVtZS1jb2xvclxuICAgICAgY29udGVudDogJ1xcZjFmOSdcbiAgICAgIGZvbnQtc2l6ZTogMS4zZW1cblxuICAgICY6aG92ZXJcbiAgICAgIGJveC1zaGFkb3c6IDAgMCA4cHggMCByZ2JhKDIzMiwgMjM3LCAyNTAsIC42KSwgMCAycHggNHB4IDAgcmdiYSgyMzIsIDIzNywgMjUwLCAuNSlcblxuICAgIC5wb3N0LWNvcHlyaWdodFxuICAgICAgJi1tZXRhXG4gICAgICAgIGNvbG9yOiAkbGlnaHQtYmx1ZVxuICAgICAgICBmb250LXdlaWdodDogYm9sZFxuXG4gICAgICAgIGlcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDNweFxuXG4gICAgICAmLWluZm9cbiAgICAgICAgcGFkZGluZy1sZWZ0OiA2cHhcblxuICAgICAgICBhXG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcbiAgICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkXG5cbiAgICAgICAgICAmOmhvdmVyXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcblxuICAjcG9zdC1vdXRkYXRlLW5vdGljZVxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxuICAgIG1hcmdpbjogMCAwIDIwcHhcbiAgICBwYWRkaW5nOiAuNWVtIDEuMmVtXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG5vdGljZU91dGRhdGUtYmdcbiAgICBjb2xvcjogJG5vdGljZU91dGRhdGUtY29sb3JcbiAgICBhZGRCb3JkZXJSYWRpdXMoMylcblxuICAgIC5udW1cbiAgICAgIHBhZGRpbmc6IDAgNHB4XG5cbiAgICBpZiBoZXhvLWNvbmZpZygnbm90aWNlT3V0ZGF0ZS5zdHlsZScpID09ICdmbGF0J1xuICAgICAgcGFkZGluZzogLjVlbSAxZW0gLjVlbSAyLjZlbVxuICAgICAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCAkbm90aWNlT3V0ZGF0ZS1ib3JkZXJcblxuICAgICAgJjpiZWZvcmVcbiAgICAgICAgQGV4dGVuZCAuZm9udGF3ZXNvbWVJY29uXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxuICAgICAgICB0b3A6IDUwJVxuICAgICAgICBsZWZ0OiAuOWVtXG4gICAgICAgIGNvbG9yOiAkbm90aWNlT3V0ZGF0ZS1ib3JkZXJcbiAgICAgICAgY29udGVudDogJ1xcZjA3MSdcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpXG5cbiAgLmFkcy13cmFwXG4gICAgbWFyZ2luOiA0MHB4IDBcbiIsIi5yZWxhdGVkUG9zdHNcbiAgbWFyZ2luLXRvcDogNDBweFxuXG4gICYgPiAuaGVhZGxpbmVcbiAgICBtYXJnaW4tYm90dG9tOiA1cHhcbiAgICBmb250LXdlaWdodDogNzAwXG4gICAgZm9udC1zaXplOiAxLjQzZW1cblxuICAmID4gLnJlbGF0ZWRQb3N0cy1saXN0XG4gICAgJiA+IGFcbiAgICAgIG1hcmdpbjogM3B4XG4gICAgICB3aWR0aDogY2FsYygzMy4zMzMlIC0gNnB4KVxuICAgICAgaGVpZ2h0OiAyMDBweFxuICAgICAgYWRkQm9yZGVyUmFkaXVzKClcblxuICAgICAgK21heFdpZHRoNzY4KClcbiAgICAgICAgbWFyZ2luOiAycHhcbiAgICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gNHB4KVxuICAgICAgICBoZWlnaHQ6IDE1MHB4XG5cbiAgICAgICttYXhXaWR0aDYwMCgpXG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA0cHgpXG5cbiAgICAuaW5mb1xuICAgICAgLmluZm8tMVxuICAgICAgICAuaW5mby1pdGVtLTJcbiAgICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDJcblxuICAgICAgLmluZm8tMlxuICAgICAgICAuaW5mby1pdGVtLTFcbiAgICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDMiLCIucG9zdC1yZXdhcmRcbiAgcG9zaXRpb246IHJlbGF0aXZlXG4gIG1hcmdpbi10b3A6IDgwcHhcbiAgd2lkdGg6IDEwMCVcbiAgdGV4dC1hbGlnbjogY2VudGVyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lXG5cbiAgJiA+ICpcbiAgICBwb2ludGVyLWV2ZW50czogYXV0b1xuXG4gIC5yZXdhcmQtYnV0dG9uXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrXG4gICAgcGFkZGluZzogNHB4IDI0cHhcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1idG4tYmcpXG4gICAgY29sb3I6IHZhcigtLWJ0bi1jb2xvcilcbiAgICBjdXJzb3I6IHBvaW50ZXJcbiAgICBhZGRCb3JkZXJSYWRpdXMoKVxuXG4gICAgaVxuICAgICAgbWFyZ2luLXJpZ2h0OiA1cHhcblxuICAmOmhvdmVyXG4gICAgLnJld2FyZC1idXR0b25cbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJ0bi1ob3Zlci1jb2xvcilcblxuICAgICYgPiAucmV3YXJkLW1haW5cbiAgICAgIGRpc3BsYXk6IGJsb2NrXG5cbiAgLnJld2FyZC1tYWluXG4gICAgcG9zaXRpb246IGFic29sdXRlXG4gICAgYm90dG9tOiA0MHB4XG4gICAgbGVmdDogMFxuICAgIHotaW5kZXg6IDEwMFxuICAgIGRpc3BsYXk6IG5vbmVcbiAgICBwYWRkaW5nOiAwIDAgMTVweFxuICAgIHdpZHRoOiAxMDAlXG4gICAgYWRkQm9yZGVyUmFkaXVzKClcblxuICAgIC5yZXdhcmQtYWxsXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcbiAgICAgIG1hcmdpbjogMFxuICAgICAgcGFkZGluZzogMjBweCAxMHB4XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1yZXdhcmQtcG9wKVxuXG4gICAgICAmOmJlZm9yZVxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGVcbiAgICAgICAgYm90dG9tOiAtMTBweFxuICAgICAgICBsZWZ0OiAwXG4gICAgICAgIHdpZHRoOiAxMDAlXG4gICAgICAgIGhlaWdodDogMjBweFxuICAgICAgICBjb250ZW50OiAnJ1xuXG4gICAgICAmOmFmdGVyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxuICAgICAgICByaWdodDogMFxuICAgICAgICBib3R0b206IDJweFxuICAgICAgICBsZWZ0OiAwXG4gICAgICAgIG1hcmdpbjogMCBhdXRvXG4gICAgICAgIHdpZHRoOiAwXG4gICAgICAgIGhlaWdodDogMFxuICAgICAgICBib3JkZXItdG9wOiAxM3B4IHNvbGlkIHZhcigtLXJld2FyZC1wb3ApXG4gICAgICAgIGJvcmRlci1yaWdodDogMTNweCBzb2xpZCB0cmFuc3BhcmVudFxuICAgICAgICBib3JkZXItbGVmdDogMTNweCBzb2xpZCB0cmFuc3BhcmVudFxuICAgICAgICBjb250ZW50OiAnJ1xuXG4gICAgICAucmV3YXJkLWl0ZW1cbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrXG4gICAgICAgIHBhZGRpbmc6IDAgOHB4XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZVxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wXG5cbiAgICAgICAgaW1nXG4gICAgICAgICAgd2lkdGg6IDEzMHB4XG4gICAgICAgICAgaGVpZ2h0OiAxMzBweFxuXG4gICAgICAgIC5wb3N0LXFyLWNvZGUtZGVzY1xuICAgICAgICAgIHdpZHRoOiAxMzBweFxuICAgICAgICAgIGNvbG9yOiAkcmV3YXJkLXBvcC11cC1jb2xvclxuIiwiI3JpZ2h0c2lkZVxuICBwb3NpdGlvbjogZml4ZWRcbiAgcmlnaHQ6IC00OHB4XG4gIGJvdHRvbTogJHJpZ2h0c2lkZS1ib3R0b21cbiAgei1pbmRleDogMTAwXG4gIG9wYWNpdHk6IDBcbiAgdHJhbnNpdGlvbjogYWxsIC41c1xuXG4gICYucmlnaHRzaWRlLXNob3dcbiAgICBvcGFjaXR5OiAuOFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01OHB4LCAwKVxuXG4gICNyaWdodHNpZGUtY29uZmlnLWhpZGVcbiAgICBoZWlnaHQ6IDBcbiAgICBvcGFjaXR5OiAwXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC40c1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDQ1cHgsIDApXG5cbiAgICAmLnNob3dcbiAgICAgIGhlaWdodDogYXV0b1xuICAgICAgb3BhY2l0eTogMVxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMClcblxuICAgICYuc3RhdHVzXG4gICAgICBoZWlnaHQ6IGF1dG9cbiAgICAgIG9wYWNpdHk6IDFcblxuICAmID4gZGl2XG4gICAgJiA+IGJ1dHRvbixcbiAgICAmID4gYVxuICAgICAgZGlzcGxheTogYmxvY2tcbiAgICAgIG1hcmdpbi1ib3R0b206IDVweFxuICAgICAgd2lkdGg6IHcgPSAzNXB4XG4gICAgICBoZWlnaHQ6IHdcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ0bi1iZylcbiAgICAgIGNvbG9yOiB2YXIoLS1idG4tY29sb3IpXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXJcbiAgICAgIGZvbnQtc2l6ZTogMTZweFxuICAgICAgbGluZS1oZWlnaHQ6IHdcbiAgICAgIGFkZEJvcmRlclJhZGl1cyg1KVxuXG4gICAgICAmOmhvdmVyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ0bi1ob3Zlci1jb2xvcilcblxuICAjbW9iaWxlLXRvYy1idXR0b25cbiAgICBkaXNwbGF5OiBub25lXG5cbiAgICArbWF4V2lkdGg5MDAoKVxuICAgICAgZGlzcGxheTogYmxvY2tcblxuICArbWF4V2lkdGg5MDAoKVxuICAgICNoaWRlLWFzaWRlLWJ0blxuICAgICAgZGlzcGxheTogbm9uZVxuXG4gIGlmIGhleG8tY29uZmlnKCdyaWdodHNpZGVfc2Nyb2xsX3BlcmNlbnQnKVxuICAgICNnby11cFxuICAgICAgLnNjcm9sbC1wZXJjZW50XG4gICAgICAgIGRpc3BsYXk6IG5vbmVcblxuICAgICAgJi5zaG93LXBlcmNlbnRcbiAgICAgICAgLnNjcm9sbC1wZXJjZW50XG4gICAgICAgICAgZGlzcGxheTogYmxvY2tcblxuICAgICAgICAgICYgKyBpXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lXG5cbiAgICAgICY6aG92ZXJcbiAgICAgICAgLnNjcm9sbC1wZXJjZW50XG4gICAgICAgICAgZGlzcGxheTogbm9uZVxuXG4gICAgICAgICAgJiArIGlcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrXG4iLCIjc2lkZWJhclxuICAjbWVudS1tYXNrXG4gICAgcG9zaXRpb246IGZpeGVkXG4gICAgei1pbmRleDogMTAyXG4gICAgZGlzcGxheTogbm9uZVxuICAgIHdpZHRoOiAxMDAlXG4gICAgaGVpZ2h0OiAxMDAlXG4gICAgYmFja2dyb3VuZDogYWxwaGEoJGRhcmstYmxhY2ssIC44KVxuXG4gICNzaWRlYmFyLW1lbnVzXG4gICAgcG9zaXRpb246IGZpeGVkXG4gICAgdG9wOiAwXG4gICAgcmlnaHQ6IC0oJHNpZGViYXItd2lkdGgpXG4gICAgei1pbmRleDogMTAzXG4gICAgb3ZlcmZsb3cteDogaGlkZGVuXG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsXG4gICAgcGFkZGluZy1sZWZ0OiA1cHhcbiAgICB3aWR0aDogJHNpZGViYXItd2lkdGhcbiAgICBoZWlnaHQ6IDEwMCVcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWJnKVxuICAgIHRyYW5zaXRpb246IGFsbCAuNXNcblxuICAgICYub3BlblxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMClcblxuICAgICYgPiAuYXZhdGFyLWltZ1xuICAgICAgbWFyZ2luOiAyMHB4IGF1dG9cblxuICAgIC5zaXRlLWRhdGFcbiAgICAgIHBhZGRpbmc6IDAgMTBweFxuXG4gICAgaHJcbiAgICAgIG1hcmdpbjogMjBweCBhdXRvXG5cbiAgICAubWVudXNfaXRlbXNcbiAgICAgIG1hcmdpbjogMjBweFxuICAgICAgcGFkZGluZzogMTVweFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1tZW51LWJnKVxuICAgICAgYm94LXNoYWRvdzogMCAwIDFweCAxcHggcmdiYSg3LCAxNywgMjcsIC4wNSlcbiAgICAgIGFkZEJvcmRlclJhZGl1cygxMClcblxuICAgICAgLnNpdGUtcGFnZVxuICAgICAgICBAZXh0ZW5kIC5saW1pdC1vbmUtbGluZVxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmVcbiAgICAgICAgZGlzcGxheTogYmxvY2tcbiAgICAgICAgbWFyZ2luOiA0cHggMFxuICAgICAgICBwYWRkaW5nOiAycHggMjNweCAycHggMTVweFxuICAgICAgICBjb2xvcjogdmFyKC0tZm9udC1jb2xvcilcbiAgICAgICAgZm9udC1zaXplOiAxLjE1ZW1cbiAgICAgICAgY3Vyc29yOiBwb2ludGVyXG4gICAgICAgIGFkZEJvcmRlclJhZGl1cyg2KVxuXG4gICAgICAgICY6aG92ZXJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10ZXh0LWJnLWhvdmVyKVxuICAgICAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZSlcblxuICAgICAgICBpOmZpcnN0LWNoaWxkXG4gICAgICAgICAgd2lkdGg6IDE1JVxuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnRcblxuICAgICAgICAmLmdyb3VwXG4gICAgICAgICAgJiA+IGk6bGFzdC1jaGlsZFxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlXG4gICAgICAgICAgICB0b3A6IC42ZW1cbiAgICAgICAgICAgIHJpZ2h0OiAxMHB4XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjNzXG5cbiAgICAgICAgICAmLmhpZGVcbiAgICAgICAgICAgICYgPiBpOmxhc3QtY2hpbGRcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpXG5cbiAgICAgICAgICAgICYgKyAubWVudXNfaXRlbV9jaGlsZFxuICAgICAgICAgICAgICBkaXNwbGF5OiBub25lXG5cbiAgICAgIC5tZW51c19pdGVtX2NoaWxkXG4gICAgICAgIG1hcmdpbjogMFxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDI1cHhcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZSIsIiN2Y29tbWVudFxuICBmb250LXNpemU6IDEuMWVtXG5cbiAgLnZidG5cbiAgICBib3JkZXI6IG5vbmVcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1idG4tYmcpXG4gICAgY29sb3I6IHZhcigtLWJ0bi1jb2xvcilcblxuICAgICY6aG92ZXJcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJ0bi1ob3Zlci1jb2xvcilcblxuICAudmltZ1xuICAgIHRyYW5zaXRpb246IGFsbCAuM3NcblxuICAgICY6aG92ZXJcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZylcblxuICAudmNhcmRzIC52Y2FyZCAudmNvbnRlbnQuZXhwYW5kXG4gICAgJjpiZWZvcmUsXG4gICAgJjphZnRlclxuICAgICAgei1pbmRleDogMjJcblxuI3dhbGluZS13cmFwXG4gIC0td2FsaW5lLWZvbnQtc2l6ZTogMS4xZW1cbiAgLS13YWxpbmUtdGhlbWUtY29sb3I6ICRidXR0b24tYmdcbiAgLS13YWxpbmUtYWN0aXZlLWNvbG9yOiAkYnV0dG9uLWhvdmVyLWNvbG9yXG5cbiAgLndsLWNvbW1lbnQtYWN0aW9ucyA+IGJ1dHRvbjpub3QobGFzdC1jaGlsZClcbiAgICBwYWRkaW5nLXJpZ2h0OiA0cHhcblxuaWYgaGV4by1jb25maWcoJ3ZhbGluZS5iZycpXG4gICN2Y29tbWVudFxuICAgIHRleHRhcmVhXG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoaGV4by1jb25maWcoJ3ZhbGluZS5iZycpKSAxMDAlIDEwMCUgbm8tcmVwZWF0XG5cbiAgICAgICY6Zm9jdXNcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZVxuXG5pZiBoZXhvLWNvbmZpZygnd2FsaW5lLmJnJylcbiAgI3dhbGluZS13cmFwXG4gICAgdGV4dGFyZWFcbiAgICAgIGJhY2tncm91bmQ6IHVybChoZXhvLWNvbmZpZygnd2FsaW5lLmJnJykpIDEwMCUgMTAwJSBuby1yZXBlYXRcblxuICAgICAgJjpmb2N1c1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lXG5cbi50d2lrb29cbiAgLnRrLWNvbnRlbnRcbiAgICBwXG4gICAgICBtYXJnaW46IDNweCAwXG5cbi5maXJld29ya3NcbiAgcG9zaXRpb246IGZpeGVkXG4gIHRvcDogMFxuICBsZWZ0OiAwXG4gIHotaW5kZXg6ICRmaXJld29ya3MtekluZGV4XG4gIHBvaW50ZXItZXZlbnRzOiBub25lXG5cbi5tZWRpdW0tem9vbS1pbWFnZS0tb3BlbmVkXG4gIHotaW5kZXg6IDk5OTk5ICFpbXBvcnRhbnRcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnRcblxuLm1lZGl1bS16b29tLW92ZXJsYXlcbiAgei1pbmRleDogOTk5OTkgIWltcG9ydGFudFxuXG5pZiBoZXhvLWNvbmZpZygnbWVybWFpZC5lbmFibGUnKVxuICAubWVybWFpZC13cmFwXG4gICAgbWFyZ2luOiAwIDAgMjBweFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxuXG4gICAgJiA+IHN2Z1xuICAgICAgaGVpZ2h0OiAxMDAlXG5cbiAgaWYgaGV4by1jb25maWcoJ21lcm1haWQuY29kZV93cml0ZScpXG4gICAgcHJlID4gY29kZS5tZXJtYWlkXG4gICAgICBkaXNwbGF5OiBub25lXG5cbmlmIGhleG8tY29uZmlnKCdjaGFydGpzLmVuYWJsZScpXG4gIC5jaGFydGpzLWNvbnRhaW5lclxuICAgIGRpc3BsYXk6IGZsZXhcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyXG4gICAgbWFyZ2luOiAwIDAgMjBweFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxuICAgIGdhcDogMjBweFxuXG4gICAgK21heFdpZHRoNjAwKClcbiAgICAgIC5jaGFydGpzLXdyYXBcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudFxuXG4gICAgJi5jaGFydGpzLWFicmVhc3RcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3dcblxuICAgICAgK21heFdpZHRoNjAwKClcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtblxuXG4gICAgLmNoYXJ0anMtd3JhcFxuICAgICAgd2lkdGg6IC13ZWJraXQtZmlsbC1hdmFpbGFibGVcblxuICAgIGNhbnZhc1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnRcblxuLnV0dGVyYW5jZXMsXG4uZmItY29tbWVudHMgaWZyYW1lXG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnRcblxuI2dpdGFsay1jb250YWluZXJcbiAgLmd0LW1ldGFcbiAgICBtYXJnaW46IDAgMCAuOGVtXG4gICAgcGFkZGluZzogNnB4IDAgMTZweFxuXG5pZiBoZXhvLWNvbmZpZygnbWF0aC51c2UnKVxuICAua2F0ZXgtZGlzcGxheVxuICAgIG92ZXJmbG93OiBhdXRvIGhpZGRlblxuICAgIHBhZGRpbmc6IDVweFxuXG4gICAgLmthdGV4LXNob3dcbiAgICAgIGRpc3BsYXk6IGJsb2NrXG5cbiAgLmthdGV4XG4gICAgZGlzcGxheTogbm9uZVxuXG4gICAgJi5rYXRleC1zaG93XG4gICAgICBkaXNwbGF5OiBpbmxpbmVcblxuICBpZiBoZXhvLWNvbmZpZygnbWF0aC5oaWRlX3Njcm9sbGJhcicpXG4gICAgLmthdGV4LWRpc3BsYXksXG4gICAgbWp4LWNvbnRhaW5lclxuICAgICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lXG5cbiAgICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyXG4gICAgICAgIGRpc3BsYXk6IG5vbmVcblxuICAvLyBNYXRoamF4XG4gIG1qeC1jb250YWluZXJcbiAgICBvdmVyZmxvdy14OiBhdXRvXG4gICAgb3ZlcmZsb3cteTogaGlkZGVuXG4gICAgcGFkZGluZy1ib3R0b206IDRweFxuICAgIG1heC13aWR0aDogMTAwJVxuXG4gICAgJltkaXNwbGF5XVxuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudFxuICAgICAgbWluLXdpZHRoOiBhdXRvICFpbXBvcnRhbnRcblxuICAgICY6bm90KFtkaXNwbGF5XSlcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ncmlkICFpbXBvcnRhbnRcblxuICBtangtYXNzaXN0aXZlLW1tbFxuICAgIHJpZ2h0OiAwXG4gICAgYm90dG9tOiAwXG5cbi5hcGxheWVyXG4gIGNvbG9yOiAkZm9udC1ibGFja1xuXG4uY29udGFpbmVyXG4gIC5hcGxheWVyXG4gICAgbWFyZ2luOiAwIDAgMjBweFxuXG4gICAgaWYgaGV4by1jb25maWcoJ2JlYXV0aWZ5LmVuYWJsZScpXG4gICAgICBvbCxcbiAgICAgIHVsXG4gICAgICAgIG1hcmdpbjogMFxuICAgICAgICBwYWRkaW5nOiAwXG5cbiAgICAgICAgbGlcbiAgICAgICAgICBtYXJnaW46IDBcbiAgICAgICAgICBwYWRkaW5nOiAwIDE1cHhcblxuICAgICAgICAgICY6YmVmb3JlXG4gICAgICAgICAgICBjb250ZW50OiBub25lXG5cbi5zbmFja2Jhci1jb250YWluZXIuc25hY2tiYXItY3NzXG4gIGFkZEJvcmRlclJhZGl1cyg1KVxuICBvcGFjaXR5OiAuODUgIWltcG9ydGFudFxuXG4uYWJjLW11c2ljLXNoZWV0XG4gIG1hcmdpbjogMCAwIDIwcHhcbiAgb3BhY2l0eTogMFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4zc1xuXG4gICYuYWJjanMtY29udGFpbmVyXG4gICAgb3BhY2l0eTogMVxuXG4rbWF4V2lkdGg3NjgoKVxuICAuZmFuY3lib3hfX3Rvb2xiYXJfX2NvbHVtbi5pcy1taWRkbGVcbiAgICBkaXNwbGF5OiBub25lIiwiLmNvbnRhaW5lclxuICAuYnRuLWNlbnRlclxuICAgIG1hcmdpbjogMCAwIDIwcHhcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcblxuICAuYnRuLWJlYXV0aWZ5XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrXG4gICAgbWFyZ2luOiAwIDRweCA2cHhcbiAgICBwYWRkaW5nOiAwIDE1cHhcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idG4tYmVhdXRpZnktY29sb3IsICRidG4tZGVmYXVsdC1jb2xvcilcbiAgICBjb2xvcjogJGJ0bi1jb2xvclxuICAgIGxpbmUtaGVpZ2h0OiAyXG4gICAgYWRkQm9yZGVyUmFkaXVzKClcblxuICAgIGZvciAkdHlwZSBpbiAkY29sb3ItdHlwZXNcbiAgICAgICYueyR0eXBlfVxuICAgICAgICAtLWJ0bi1iZWF1dGlmeS1jb2xvcjogbG9va3VwKCckdGFnc1AtJyArICR0eXBlICsgJy1jb2xvcicpXG5cbiAgICAmOmhvdmVyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idG4taG92ZXItY29sb3IpXG5cbiAgICBpICsgc3BhblxuICAgICAgbWFyZ2luLWxlZnQ6IDZweFxuXG4gICAgJjpub3QoLmJsb2NrKSArIC5idG4tYmVhdXRpZnk6bm90KC5ibG9jaylcbiAgICAgIG1hcmdpbjogMCA0cHggMjBweFxuXG4gICAgJi5ibG9ja1xuICAgICAgZGlzcGxheTogYmxvY2tcbiAgICAgIG1hcmdpbjogMCAwIDIwcHhcbiAgICAgIHdpZHRoOiBmaXQtY29udGVudFxuICAgICAgd2lkdGg6IC1tb3otZml0LWNvbnRlbnRcblxuICAgICAgJi5jZW50ZXJcbiAgICAgICAgbWFyZ2luOiAwIGF1dG8gMjBweFxuXG4gICAgICAmLnJpZ2h0XG4gICAgICAgIG1hcmdpbjogMCAwIDIwcHggYXV0b1xuXG4gICAgJi5sYXJnZXJcbiAgICAgIHBhZGRpbmc6IDZweCAxNXB4XG5cbiAgICAmOmhvdmVyXG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcblxuICAgICYub3V0bGluZVxuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnRcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYnRuLWJlYXV0aWZ5LWNvbG9yLCAkYnRuLWRlZmF1bHQtY29sb3IpXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudFxuICAgICAgY29sb3I6IHZhcigtLWJ0bi1iZWF1dGlmeS1jb2xvciwgJGJ0bi1kZWZhdWx0LWNvbG9yKVxuXG4gICAgICAmOmhvdmVyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ0bi1iZWF1dGlmeS1jb2xvciwgJGJ0bi1kZWZhdWx0LWNvbG9yKVxuXG4gICAgICAmOmhvdmVyXG4gICAgICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50XG4iLCIuY29udGFpbmVyXG4gIGZpZ3VyZS5nYWxsZXJ5LWdyb3VwXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXG4gICAgZmxvYXQ6IGxlZnRcbiAgICBvdmVyZmxvdzogaGlkZGVuXG4gICAgbWFyZ2luOiA2cHggNHB4XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gOHB4KVxuICAgIGhlaWdodDogMjUwcHhcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4XG4gICAgYmFja2dyb3VuZDogJGRhcmstYmxhY2tcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMClcblxuICAgICttYXhXaWR0aDYwMCgpXG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gOHB4KVxuXG4gICAgK21pbldpZHRoMTAyNCgpXG4gICAgICB3aWR0aDogY2FsYygxMDAlIC8gMyAtIDhweClcblxuICAgICY6aG92ZXJcbiAgICAgIGltZ1xuICAgICAgICBvcGFjaXR5OiAuNFxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApXG5cbiAgICAgIC5nYWxsZXJ5LWdyb3VwLW5hbWU6OmFmdGVyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMClcblxuICAgICAgcFxuICAgICAgICBvcGFjaXR5OiAxXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMClcblxuICAgIGltZ1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlXG4gICAgICBtYXJnaW46IDBcbiAgICAgIG1heC13aWR0aDogbm9uZVxuICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDIwcHgpXG4gICAgICBoZWlnaHQ6IDI1MHB4XG4gICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW5cbiAgICAgIG9wYWNpdHk6IC44XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgLjNzLCBmaWx0ZXIgMzc1bXMgZWFzZS1pbiAuMnNcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApXG4gICAgICBvYmplY3QtZml0OiBjb3ZlclxuXG4gICAgZmlnY2FwdGlvblxuICAgICAgcG9zaXRpb246IGFic29sdXRlXG4gICAgICB0b3A6IDBcbiAgICAgIGxlZnQ6IDBcbiAgICAgIHBhZGRpbmc6IDMwcHhcbiAgICAgIHdpZHRoOiAxMDAlXG4gICAgICBoZWlnaHQ6IDEwMCVcbiAgICAgIGNvbG9yOiAkZ2FsbGVyeS1jb2xvclxuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZVxuICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuXG5cbiAgICAgICYgPiBhXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxuICAgICAgICB0b3A6IDBcbiAgICAgICAgcmlnaHQ6IDBcbiAgICAgICAgYm90dG9tOiAwXG4gICAgICAgIGxlZnQ6IDBcbiAgICAgICAgei1pbmRleDogMTAwMFxuICAgICAgICBvcGFjaXR5OiAwXG5cbiAgICBwXG4gICAgICBAZXh0ZW5kIC5saW1pdC1tb3JlLWxpbmVcbiAgICAgIG1hcmdpbjogMFxuICAgICAgcGFkZGluZzogOHB4IDAgMFxuICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweFxuICAgICAgZm9udC1zaXplOiAxLjFlbVxuICAgICAgbGluZS1oZWlnaHQ6IDEuNVxuICAgICAgb3BhY2l0eTogMFxuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuMzVzLCB0cmFuc2Zvcm0gLjM1c1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKVxuICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiA0XG5cbiAgICAuZ2FsbGVyeS1ncm91cC1uYW1lXG4gICAgICBAZXh0ZW5kIC5saW1pdC1tb3JlLWxpbmVcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxuICAgICAgbWFyZ2luOiAwXG4gICAgICBwYWRkaW5nOiA4cHggMFxuICAgICAgZm9udC13ZWlnaHQ6IGJvbGRcbiAgICAgIGZvbnQtc2l6ZTogMS42NWVtXG4gICAgICBsaW5lLWhlaWdodDogMS41XG4gICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDJcblxuICAgICAgJjphZnRlclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGVcbiAgICAgICAgYm90dG9tOiAwXG4gICAgICAgIGxlZnQ6IDBcbiAgICAgICAgd2lkdGg6IDEwMCVcbiAgICAgICAgaGVpZ2h0OiAycHhcbiAgICAgICAgYmFja2dyb3VuZDogJGdhbGxlcnktY29sb3JcbiAgICAgICAgY29udGVudDogJydcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zNXNcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMClcblxuICAuZ2FsbGVyeS1ncm91cC1tYWluXG4gICAgb3ZlcmZsb3c6IGF1dG9cbiAgICBwYWRkaW5nOiAwIDAgMTZweFxuXG4gIC5nYWxsZXJ5LWNvbnRhaW5lclxuICAgIG1hcmdpbjogMCAwIDIwcHhcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcbiAgICBvcGFjaXR5OiAwXG5cbiAgICAmLmxvYWRlZFxuICAgICAgb3BhY2l0eTogMVxuXG4gICAgaW1nXG4gICAgICBkaXNwbGF5OiBpbml0aWFsXG4gICAgICBtYXJnaW46IDBcbiAgICAgIHdpZHRoOiAxMDAlXG4gICAgICBoZWlnaHQ6IDEwMCVcblxuICAgIC5nYWxsZXJ5LWRhdGFcbiAgICAgIGRpc3BsYXk6IG5vbmVcblxuICAgIGJ1dHRvblxuICAgICAgbWFyZ2luLXRvcDogMjVweFxuICAgICAgcGFkZGluZzogOHB4IDE0cHhcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJ0bi1iZylcbiAgICAgIGNvbG9yOiB2YXIoLS1idG4tY29sb3IpXG4gICAgICBmb250LXdlaWdodDogYm9sZFxuICAgICAgZm9udC1zaXplOiAxLjFlbVxuICAgICAgdHJhbnNpdGlvbjogYWxsIC4zc1xuICAgICAgYWRkQm9yZGVyUmFkaXVzKDUpXG5cbiAgICAgICY6aG92ZXJcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYnRuLWhvdmVyLWNvbG9yKVxuXG4gICAgICAgIGlcbiAgICAgICAgICBtYXJnaW4tbGVmdDogOHB4XG5cbiAgICAgIGlcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDRweFxuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjNzXG5cbiAgLmxvYWRpbmctY29udGFpbmVyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrXG4gICAgb3ZlcmZsb3c6IGhpZGRlblxuICAgIHdpZHRoOiAxNTRweFxuICAgIGhlaWdodDogMTU0cHhcblxuICAgIC5sb2FkaW5nLWl0ZW1cbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxuICAgICAgd2lkdGg6IDEwMCVcbiAgICAgIGhlaWdodDogMTAwJVxuICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCkgc2NhbGUoMSlcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMFxuXG4gICAgICBkaXZcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlXG4gICAgICAgIHdpZHRoOiAzMC44cHhcbiAgICAgICAgaGVpZ2h0OiAzMC44cHhcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlXG4gICAgICAgIGJhY2tncm91bmQ6ICNlMTViNjRcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNjEuNnB4LCA2MS42cHgpIHNjYWxlKDEpXG4gICAgICAgIGFuaW1hdGlvbjogbG9hZGluZy1iYWxsIDEuOTJzIGluZmluaXRlIGN1YmljLWJlemllcigwLCAuNSwgLjUsIDEpXG5cbiAgICAgICAgJjpudGgtY2hpbGQoMSlcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjQ3ZTYwXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTEzLjk2cHgsIDYxLjZweCkgc2NhbGUoMSlcbiAgICAgICAgICBhbmltYXRpb246IGxvYWRpbmctYmFsbC1yIC40OHMgaW5maW5pdGUgY3ViaWMtYmV6aWVyKDAsIC41LCAuNSwgMSksIGxvYWRpbmctYmFsbC1jIDEuOTJzIGluZmluaXRlIHN0ZXAtc3RhcnRcblxuICAgICAgICAmOm50aC1jaGlsZCgyKVxuICAgICAgICAgIGJhY2tncm91bmQ6ICNlMTViNjRcbiAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IC0uNDhzXG5cbiAgICAgICAgJjpudGgtY2hpbGQoMylcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjQ3ZTYwXG4gICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAtLjk2c1xuXG4gICAgICAgICY6bnRoLWNoaWxkKDQpXG4gICAgICAgICAgYmFja2dyb3VuZDogI2Y4YjI2YVxuICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogLTEuNDRzXG5cbiAgICAgICAgJjpudGgtY2hpbGQoNSlcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjYWJiZDgxXG4gICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAtMS45MnNcblxuQGtleWZyYW1lcyBsb2FkaW5nLWJhbGxcbiAgMCVcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg5LjI0cHgsIDYxLjZweCkgc2NhbGUoMClcblxuICAyNSVcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg5LjI0cHgsIDYxLjZweCkgc2NhbGUoMClcblxuICA1MCVcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg5LjI0cHgsIDYxLjZweCkgc2NhbGUoMSlcblxuICA3NSVcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg2MS42cHgsIDYxLjZweCkgc2NhbGUoMSlcblxuICAxMDAlXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTEzLjk2cHgsIDYxLjZweCkgc2NhbGUoMSlcblxuQGtleWZyYW1lcyBsb2FkaW5nLWJhbGwtclxuICAwJVxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDExMy45NnB4LCA2MS42cHgpIHNjYWxlKDEpXG5cbiAgMTAwJVxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDExMy45NnB4LCA2MS42cHgpIHNjYWxlKDApXG5cbkBrZXlmcmFtZXMgbG9hZGluZy1iYWxsLWNcbiAgMCVcbiAgICBiYWNrZ3JvdW5kOiAjZTE1YjY0XG5cbiAgMjUlXG4gICAgYmFja2dyb3VuZDogI2FiYmQ4MVxuXG4gIDUwJVxuICAgIGJhY2tncm91bmQ6ICNmOGIyNmFcblxuICA3NSVcbiAgICBiYWNrZ3JvdW5kOiAjZjQ3ZTYwXG5cbiAgMTAwJVxuICAgIGJhY2tncm91bmQ6ICNlMTViNjRcbiIsIi8vIHB1bGxxdW90ZVxuYmxvY2txdW90ZVxuICAmLnB1bGxxdW90ZVxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxuICAgIG1heC13aWR0aDogNDUlXG4gICAgZm9udC1zaXplOiAxMTAlXG5cbiAgICAmLmxlZnRcbiAgICAgIGZsb2F0OiBsZWZ0XG4gICAgICBtYXJnaW46IDFlbSAuNWVtIDAgMFxuXG4gICAgJi5yaWdodFxuICAgICAgZmxvYXQ6IHJpZ2h0XG4gICAgICBtYXJnaW46IDFlbSAwIDAgLjVlbVxuXG4vLyBoZXhvIHRhZyB2aWRlb1xuLnZpZGVvLWNvbnRhaW5lclxuICBwb3NpdGlvbjogcmVsYXRpdmVcbiAgb3ZlcmZsb3c6IGhpZGRlblxuICBtYXJnaW4tYm90dG9tOiAxNnB4XG4gIHBhZGRpbmctdG9wOiA1Ni4yNSVcbiAgaGVpZ2h0OiAwXG5cbiAgaWZyYW1lXG4gICAgcG9zaXRpb246IGFic29sdXRlXG4gICAgdG9wOiAwXG4gICAgbGVmdDogMFxuICAgIG1hcmdpbi10b3A6IDBcbiAgICB3aWR0aDogMTAwJVxuICAgIGhlaWdodDogMTAwJVxuIiwiLy8gdGFnLWhpZGVcbi5oaWRlLWlubGluZSxcbi5oaWRlLWJsb2NrXG4gICYgPiAuaGlkZS1idXR0b25cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcbiAgICBwYWRkaW5nOiA1cHggMThweFxuICAgIGJhY2tncm91bmQ6ICR0YWctaGlkZS1iZ1xuICAgIGNvbG9yOiB2YXIoLS13aGl0ZSlcbiAgICBhZGRCb3JkZXJSYWRpdXMoKVxuXG4gICAgJjpob3ZlclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnRuLWhvdmVyLWNvbG9yKVxuXG4gICAgJi5vcGVuXG4gICAgICBkaXNwbGF5OiBub25lXG5cbiAgICAgICYgKyBkaXZcbiAgICAgICAgZGlzcGxheTogYmxvY2tcblxuICAgICAgJiArIHNwYW5cbiAgICAgICAgZGlzcGxheTogaW5saW5lXG5cbiAgJiA+IC5oaWRlLWNvbnRlbnRcbiAgICBkaXNwbGF5OiBub25lXG5cbi5oaWRlLWlubGluZVxuICAmID4gLmhpZGUtYnV0dG9uXG4gICAgbWFyZ2luOiAwIDZweFxuXG4gICYgPiAuaGlkZS1jb250ZW50XG4gICAgbWFyZ2luOiAwIDZweFxuXG4uaGlkZS1ibG9ja1xuICBtYXJnaW46IDAgMCAxNnB4XG5cbi50b2dnbGVcbiAgbWFyZ2luLWJvdHRvbTogMjBweFxuICBib3JkZXI6IDFweCBzb2xpZCAkdGFnLWhpZGUtdG9nZ2xlLWJnXG4gIGFkZEJvcmRlclJhZGl1cyg1LCB0cnVlKVxuXG4gICYgPiAudG9nZ2xlLWJ1dHRvblxuICAgIHBhZGRpbmc6IDZweCAxNXB4XG4gICAgYmFja2dyb3VuZDogJHRhZy1oaWRlLXRvZ2dsZS1iZ1xuICAgIGNvbG9yOiAjMUYyRDNEXG4gICAgY3Vyc29yOiBwb2ludGVyXG5cbiAgJiA+IC50b2dnbGUtY29udGVudFxuICAgIG1hcmdpbjogMzBweCAyNHB4XG4iLCIuY29udGFpbmVyXG4gIC5pbmxpbmUtaW1nXG4gICAgZGlzcGxheTogaW5saW5lXG4gICAgbWFyZ2luOiAwIDNweFxuICAgIGhlaWdodDogMS4xZW1cbiAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b20iLCIuaGwtbGFiZWxcbiAgcGFkZGluZzogMnB4IDRweFxuICBjb2xvcjogJGJ0bi1jb2xvclxuICBhZGRCb3JkZXJSYWRpdXMoMylcblxuICAmLmRlZmF1bHRcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnRuLWRlZmF1bHQtY29sb3JcblxuICBmb3IgJHR5cGUgaW4gJGNvbG9yLXR5cGVzXG4gICAgJi57JHR5cGV9XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsb29rdXAoJyR0YWdzUC0nICsgJHR5cGUgKyAnLWNvbG9yJylcbiIsIi5ub3RlXG4gICRub3RlLWljb25zID0gaGV4by1jb25maWcoJ25vdGUuaWNvbnMnKVxuICBwb3NpdGlvbjogcmVsYXRpdmVcbiAgbWFyZ2luOiAwIDAgMjBweFxuICBwYWRkaW5nOiAxNXB4XG5cbiAgaWYgaGV4by1jb25maWcoJ25vdGUuYm9yZGVyX3JhZGl1cycpIGlzIGEgJ3VuaXQnXG4gICAgYm9yZGVyLXJhZGl1czogdW5pdChoZXhvLWNvbmZpZygnbm90ZS5ib3JkZXJfcmFkaXVzJyksIHB4KVxuXG4gICYuaWNvbi1wYWRkaW5nXG4gICAgcGFkZGluZy1sZWZ0OiAzZW1cblxuICAmID4gLm5vdGUtaWNvblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxuICAgIHRvcDogY2FsYyg1MCUgLSAuNWVtKVxuICAgIGxlZnQ6IC44ZW1cbiAgICBmb250LXNpemU6IGxhcmdlclxuXG4gIGZvciAkdHlwZSBpbiAkY29sb3ItdHlwZXNcbiAgICAmLnskdHlwZX1cbiAgICAgICY6bm90KC5kaXNhYmxlZClcbiAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IGxvb2t1cCgnJHRhZ3NQLScgKyAkdHlwZSArICctY29sb3InKSAhaW1wb3J0YW50XG5cbiAgICAgICAgJi5tb2Rlcm5cbiAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudFxuICAgICAgICAgIGNvbG9yOiBsb29rdXAoJyR0YWdzUC0nICsgJHR5cGUgKyAnLWNvbG9yJylcblxuICAgICAgICAmOm5vdCguc2ltcGxlKVxuICAgICAgICAgIGJhY2tncm91bmQ6IGxpZ2h0ZW4obG9va3VwKCckdGFnc1AtJyArICR0eXBlICsgJy1jb2xvcicpLCA4NSUpICFpbXBvcnRhbnRcblxuICAgICAgJiA+IC5ub3RlLWljb25cbiAgICAgICAgY29sb3I6IGxvb2t1cCgnJHRhZ3NQLScgKyAkdHlwZSArICctY29sb3InKVxuXG4gICYuc2ltcGxlXG4gICAgYm9yZGVyOiAxcHggc29saWQgI0VFRUVFRVxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHhcblxuICAmLm1vZGVyblxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnRcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1XG4gICAgY29sb3I6ICRmb250LWJsYWNrXG5cbiAgJi5mbGF0XG4gICAgYm9yZGVyOiBpbml0aWFsXG4gICAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCAjRUVFRUVFXG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigjRUVFRUVFLCA2NSUpXG4gICAgY29sb3I6ICRmb250LWJsYWNrXG5cbiAgaDIsXG4gIGgzLFxuICBoNCxcbiAgaDUsXG4gIGg2XG4gICAgaWYgJG5vdGUtaWNvbnNcbiAgICAgIG1hcmdpbi10b3A6IDNweFxuICAgIGVsc2VcbiAgICAgIG1hcmdpbi10b3A6IDBcblxuICAgIG1hcmdpbi1ib3R0b206IDBcbiAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50XG4gICAgYm9yZGVyLWJvdHRvbTogaW5pdGlhbFxuXG4gIHAsXG4gIHVsLFxuICBvbCxcbiAgdGFibGUsXG4gIHByZSxcbiAgYmxvY2txdW90ZSxcbiAgaW1nXG4gICAgJjpmaXJzdC1jaGlsZFxuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50XG5cbiAgICAmOmxhc3QtY2hpbGRcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudFxuXG4gIC5pbWctYWx0XG4gICAgbWFyZ2luOiA1cHggMCAxMHB4XG5cbiAgaWYgJG5vdGUtaWNvbnNcbiAgICAmOm5vdCgubm8taWNvbilcbiAgICAgIHBhZGRpbmctbGVmdDogM2VtXG5cbiAgICAgICY6OmJlZm9yZVxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGVcbiAgICAgICAgdG9wOiBjYWxjKDUwJSAtIC45NWVtKVxuICAgICAgICBsZWZ0OiAuOGVtXG4gICAgICAgIGZvbnQtc2l6ZTogbGFyZ2VyXG4gICAgICAgIEBleHRlbmQgLmZvbnRhd2Vzb21lSWNvblxuXG4gIGZvciAkdHlwZSBpbiAkbm90ZS10eXBlc1xuICAgICYueyR0eXBlfVxuICAgICAgJi5mbGF0XG4gICAgICAgIGJhY2tncm91bmQ6IGxvb2t1cCgnJG5vdGUtJyArICR0eXBlICsgJy1iZycpXG5cbiAgICAgICYubW9kZXJuXG4gICAgICAgIGJvcmRlci1jb2xvcjogbG9va3VwKCckbm90ZS1tb2Rlcm4tJyArICR0eXBlICsgJy1ib3JkZXInKVxuICAgICAgICBiYWNrZ3JvdW5kOiBsb29rdXAoJyRub3RlLW1vZGVybi0nICsgJHR5cGUgKyAnLWJnJylcbiAgICAgICAgY29sb3I6IGxvb2t1cCgnJG5vdGUtbW9kZXJuLScgKyAkdHlwZSArICctdGV4dCcpXG5cbiAgICAgICAgYVxuICAgICAgICAgICY6bm90KC5idG4pXG4gICAgICAgICAgICBjb2xvcjogbG9va3VwKCckbm90ZS1tb2Rlcm4tJyArICR0eXBlICsgJy10ZXh0JylcblxuICAgICAgICAgICAgJjpob3ZlclxuICAgICAgICAgICAgICBjb2xvcjogbG9va3VwKCckbm90ZS1tb2Rlcm4tJyArICR0eXBlICsgJy1ob3ZlcicpXG5cbiAgICAgICY6bm90KC5tb2Rlcm4pXG4gICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiBsb29rdXAoJyRub3RlLScgKyAkdHlwZSArICctYm9yZGVyJylcblxuICAgICAgICBoMixcbiAgICAgICAgaDMsXG4gICAgICAgIGg0LFxuICAgICAgICBoNSxcbiAgICAgICAgaDZcbiAgICAgICAgICBjb2xvcjogbG9va3VwKCckbm90ZS0nICsgJHR5cGUgKyAnLXRleHQnKVxuXG4gICAgICBpZiAkbm90ZS1pY29uc1xuICAgICAgICAmOm5vdCgubm8taWNvbilcbiAgICAgICAgICAmOjpiZWZvcmVcbiAgICAgICAgICAgIGNvbnRlbnQ6IGxvb2t1cCgnJG5vdGUtJyArICR0eXBlICsgJy1pY29uJylcblxuICAgICAgICAgICY6bm90KC5tb2Rlcm4pXG4gICAgICAgICAgICAmOjpiZWZvcmVcbiAgICAgICAgICAgICAgY29sb3I6IGxvb2t1cCgnJG5vdGUtJyArICR0eXBlICsgJy10ZXh0JylcbiIsIi5jb250YWluZXJcbiAgLnNlcmllcy1pdGVtc1xuICAgIGFcbiAgICAgICY6aG92ZXJcbiAgICAgICAgY29sb3I6IHZhcigtLXBzZXVkby1ob3ZlcikiLCJcbi5jb250YWluZXJcbiAgLnRhYnNcbiAgICBwb3NpdGlvbjogcmVsYXRpdmVcbiAgICBtYXJnaW46IDAgMCAyMHB4XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tdGFiLWJvcmRlci1jb2xvcilcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tdGFiLWJvcmRlci1jb2xvcilcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLXRhYi1ib3JkZXItY29sb3IpXG4gICAgYWRkQm9yZGVyUmFkaXVzKClcbiAgICBvdmVyZmxvdzogaGlkZGVuXG5cbiAgICA+IC5uYXYtdGFic1xuICAgICAgZGlzcGxheTogZmxleFxuICAgICAgZmxleC13cmFwOiB3cmFwXG4gICAgICBtYXJnaW46IDBcbiAgICAgIHBhZGRpbmc6IDBcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRhYi1idXR0b24tYmcpXG5cbiAgICAgID4gLnRhYlxuICAgICAgICBmbGV4LWdyb3c6IDFcbiAgICAgICAgcGFkZGluZzogOHB4IDE4cHhcbiAgICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHZhcigtLXRhYi1ib3JkZXItY29sb3IpXG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRhYi1idXR0b24tYmcpXG4gICAgICAgIGNvbG9yOiB2YXIoLS10YWItYnV0dG9uLWNvbG9yKVxuICAgICAgICBsaW5lLWhlaWdodDogMlxuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjRzXG5cbiAgICAgICAgaVxuICAgICAgICAgIHdpZHRoOiAxLjVlbVxuXG4gICAgICAgICYuYWN0aXZlXG4gICAgICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICR0YWItYWN0aXZlLWJvcmRlci1jb2xvclxuICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRhYi1idXR0b24tYWN0aXZlLWJnKVxuICAgICAgICAgIGN1cnNvcjogZGVmYXVsdFxuXG4gICAgICAgICY6bm90KC5hY3RpdmUpXG4gICAgICAgICAgJjpob3ZlclxuICAgICAgICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHZhcigtLXRhYi1idXR0b24taG92ZXItYmcpXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10YWItYnV0dG9uLWhvdmVyLWJnKVxuXG4gICAgICAmLm5vLWRlZmF1bHRcbiAgICAgICAgJiB+IC50YWItdG8tdG9wXG4gICAgICAgICAgZGlzcGxheTogbm9uZVxuXG4gICAgPiAudGFiLWNvbnRlbnRzXG4gICAgICAudGFiLWl0ZW0tY29udGVudFxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmVcbiAgICAgICAgZGlzcGxheTogbm9uZVxuICAgICAgICBwYWRkaW5nOiAzNnB4IDI0cHggMTBweFxuXG4gICAgICAgICttYXhXaWR0aDc2OCgpXG4gICAgICAgICAgcGFkZGluZzogMjRweCAxNHB4XG5cbiAgICAgICAgJi5hY3RpdmVcbiAgICAgICAgICBkaXNwbGF5OiBibG9ja1xuICAgICAgICAgIGFuaW1hdGlvbjogdGFic2hvdyAuNXNcblxuICAgICAgICA+IDpsYXN0LWNoaWxkXG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMFxuXG4gICAgPiAudGFiLXRvLXRvcFxuICAgICAgcGFkZGluZzogMCAxNnB4IDEwcHggMFxuICAgICAgd2lkdGg6IDEwMCVcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0XG5cbiAgICAgIGJ1dHRvblxuICAgICAgICBjb2xvcjogJHRhYi10by10b3AtY29sb3JcblxuICAgICAgICAmOmhvdmVyXG4gICAgICAgICAgY29sb3I6ICR0YWItdG8tdG9wLWhvdmVyLWNvbG9yXG5cbkBrZXlmcmFtZXMgdGFic2hvd1xuICAwJVxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxNXB4KVxuXG4gIDEwMCVcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMClcbiIsIi5jb250YWluZXJcbiAgLnRpbWVsaW5lXG4gICAgbWFyZ2luOiAwIDEwcHggMjBweFxuICAgIHBhZGRpbmc6IDE0cHggMCA1cHggMjBweFxuICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgdmFyKC0tdGltZWxpbmUtY29sb3IsICR0aGVtZS1jb2xvcilcblxuICAgIGZvciAkdHlwZSBpbiAkY29sb3ItdHlwZXNcbiAgICAgICYueyR0eXBlfVxuICAgICAgICAtLXRpbWVsaW5lLWNvbG9yOiBsb29rdXAoJyR0YWdzUC0nICsgJHR5cGUgKyAnLWNvbG9yJylcbiAgICAgICAgLS10aW1lbGluZS1iZzogcygncmdiYSglcywlcywlcywgMC4yKScsIHJlZChsb29rdXAoJyR0YWdzUC0nICsgJHR5cGUgKyAnLWNvbG9yJykpLCBncmVlbihsb29rdXAoJyR0YWdzUC0nICsgJHR5cGUgKyAnLWNvbG9yJykpLCBibHVlKGxvb2t1cCgnJHRhZ3NQLScgKyAkdHlwZSArICctY29sb3InKSkpXG5cbiAgICAudGltZWxpbmUtaXRlbVxuICAgICAgbWFyZ2luOiAwIDAgMTVweFxuXG4gICAgICAmOmhvdmVyXG4gICAgICAgIC5pdGVtLWNpcmNsZVxuICAgICAgICAgICY6YmVmb3JlXG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXRpbWVsaW5lLWNvbG9yLCAkdGhlbWUtY29sb3IpXG5cbiAgICAgICYuaGVhZGxpbmVcbiAgICAgICAgLnRpbWVsaW5lLWl0ZW0tdGl0bGVcbiAgICAgICAgICAuaXRlbS1jaXJjbGVcbiAgICAgICAgICAgID4gcFxuICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4yZW1cblxuICAgICAgICAgICAgJjpiZWZvcmVcbiAgICAgICAgICAgICAgbGVmdDogLTI4cHhcbiAgICAgICAgICAgICAgYm9yZGVyOiA0cHggc29saWQgdmFyKC0tdGltZWxpbmUtY29sb3IsICR0aGVtZS1jb2xvcilcblxuICAgICAgICAmOmhvdmVyXG4gICAgICAgICAgLml0ZW0tY2lyY2xlXG4gICAgICAgICAgICAmOmJlZm9yZVxuICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXBzZXVkby1ob3ZlcilcblxuICAgICAgLnRpbWVsaW5lLWl0ZW0tdGl0bGVcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlXG5cbiAgICAgIC5pdGVtLWNpcmNsZVxuICAgICAgICAmOmJlZm9yZVxuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxuICAgICAgICAgIHRvcDogNTAlXG4gICAgICAgICAgbGVmdDogLTI3cHhcbiAgICAgICAgICB3aWR0aDogNnB4XG4gICAgICAgICAgaGVpZ2h0OiA2cHhcbiAgICAgICAgICBib3JkZXI6IDNweCBzb2xpZCB2YXIoLS1wc2V1ZG8taG92ZXIpXG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlXG4gICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1iZylcbiAgICAgICAgICBjb250ZW50OiAnJ1xuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAuM3NcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKVxuXG4gICAgICAgID4gcFxuICAgICAgICAgIG1hcmdpbjogMCAwIDhweFxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDBcblxuICAgICAgLnRpbWVsaW5lLWl0ZW0tY29udGVudFxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmVcbiAgICAgICAgcGFkZGluZzogMTJweCAxNXB4XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweFxuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10aW1lbGluZS1iZywgbGlnaHRlbigkdGhlbWUtY29sb3IsIDg1JSkpXG4gICAgICAgIGZvbnQtc2l6ZTogLjkzZW1cblxuICAgICAgICAmID4gOmxhc3QtY2hpbGRcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwXG5cbiAgICAmICsgLnRpbWVsaW5lXG4gICAgICBtYXJnaW4tdG9wOiAtMjBweCIsImlmIGhleG8tY29uZmlnKCdkYXJrbW9kZS5lbmFibGUnKSB8fCBoZXhvLWNvbmZpZygnZGlzcGxheV9tb2RlJykgPT0gJ2RhcmsnXG4gIFtkYXRhLXRoZW1lPSdkYXJrJ11cbiAgICAtLWdsb2JhbC1iZzogZGFya2VuKCMxMjEyMTIsIDIpXG4gICAgLS1mb250LWNvbG9yOiBhbHBoYSgjRkZGRkZGLCAuNylcbiAgICAtLWhyLWJvcmRlcjogYWxwaGEoI0ZGRkZGRiwgLjQpXG4gICAgLS1oci1iZWZvcmUtY29sb3I6IGFscGhhKCNGRkZGRkYsIC43KVxuICAgIC0tc2VhcmNoLWJnOiAjMTIxMjEyXG4gICAgLS1zZWFyY2gtaW5wdXQtY29sb3I6IGFscGhhKCNGRkZGRkYsIC43KVxuICAgIC0tc2VhcmNoLWEtY29sb3I6IGFscGhhKCNGRkZGRkYsIC43KVxuICAgIC0tcHJlbG9hZGVyLWJnOiBkYXJrZW4oIzEyMTIxMiwgMilcbiAgICAtLXByZWxvYWRlci1jb2xvcjogYWxwaGEoI0ZGRkZGRiwgLjcpXG4gICAgLS10YWItYm9yZGVyLWNvbG9yOiAjMmMyYzJjXG4gICAgLS10YWItYnV0dG9uLWJnOiAjMmMyYzJjXG4gICAgLS10YWItYnV0dG9uLWNvbG9yOiBhbHBoYSgjRkZGRkZGLCAuNylcbiAgICAtLXRhYi1idXR0b24taG92ZXItYmc6IGxpZ2h0ZW4oIzEyMTIxMiwgMTUpXG4gICAgLS10YWItYnV0dG9uLWFjdGl2ZS1iZzogIzEyMTIxMlxuICAgIC0tY2FyZC1iZzogIzEyMTIxMlxuICAgIC0tc2lkZWJhci1iZzogIzEyMTIxMlxuICAgIC0tc2lkZWJhci1tZW51LWJnOiBsaWdodGVuKCMxMjEyMTIsIDUpXG4gICAgLS1idG4taG92ZXItY29sb3I6IGxpZ2h0ZW4oIzEyMTIxMiwgNDApXG4gICAgLS1idG4tY29sb3I6IGFscGhhKCNGRkZGRkYsIC43KVxuICAgIC0tYnRuLWJnOiBsaWdodGVuKCMxMjEyMTIsIDUpXG4gICAgLS10ZXh0LWJnLWhvdmVyOiBsaWdodGVuKCMxMjEyMTIsIDE1KVxuICAgIC0tbGlnaHQtZ3JleTogYWxwaGEoI0ZGRkZGRiwgLjcpXG4gICAgLS1kYXJrLWdyZXk6IGFscGhhKCNGRkZGRkYsIC4yKVxuICAgIC0td2hpdGU6IGFscGhhKCNGRkZGRkYsIC45KVxuICAgIC0tdGV4dC1oaWdobGlnaHQtY29sb3I6IGFscGhhKCNGRkZGRkYsIC45KVxuICAgIC0tYmxvY2txdW90ZS1jb2xvcjogYWxwaGEoI0ZGRkZGRiwgLjcpXG4gICAgLS1ibG9ja3F1b3RlLWJnOiBsaWdodGVuKCMxMjEyMTIsIDEwKVxuICAgIC0tcmV3YXJkLXBvcDogbGlnaHRlbigjMTIxMjEyLCAxMClcbiAgICAtLXRvYy1saW5rLWNvbG9yOiBhbHBoYSgjRkZGRkZGLCAuNilcbiAgICAtLXNjcm9sbGJhci1jb2xvcjogbGlnaHRlbigjMTIxMjEyLCAyNSlcbiAgICAtLXRpbWVsaW5lLWJnOiBsaWdodGVuKCMxMjEyMTIsIDUpXG4gICAgLS16b29tLWJnOiAjMTIxMjEyXG4gICAgLS1tYXJrLWJnOiBhbHBoYSgkZGFyay1ibGFjaywgLjYpXG5cbiAgICAjd2ViX2JnOmJlZm9yZVxuICAgICAgcG9zaXRpb246IGFic29sdXRlXG4gICAgICB3aWR0aDogMTAwJVxuICAgICAgaGVpZ2h0OiAxMDAlXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBhbHBoYSgkZGFyay1ibGFjaywgLjcpXG4gICAgICBjb250ZW50OiAnJ1xuXG4gICAgLmNvbnRhaW5lclxuICAgICAgY29kZVxuICAgICAgICBiYWNrZ3JvdW5kOiAjMmMyYzJjXG5cbiAgICAgIHByZSA+IGNvZGVcbiAgICAgICAgYmFja2dyb3VuZDogbGlnaHRlbigjMTIxMjEyLCAyKVxuXG4gICAgICBmaWd1cmUuaGlnaGxpZ2h0XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmVcblxuICAgICAgLm5vdGVcbiAgICAgICAgY29kZVxuICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2RlLWJhY2tncm91bmRcblxuICAgICAgLmFwbGF5ZXJcbiAgICAgICAgZmlsdGVyOiBicmlnaHRuZXNzKC44KVxuXG4gICAgICBrYmRcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjNjk2OTY5XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1MjUyNTJcbiAgICAgICAgY29sb3I6ICNlMmYxZmZcblxuICAgIC8vIOmgremDqFxuICAgICNwYWdlLWhlYWRlclxuICAgICAgJi5uYXYtZml4ZWQgPiAjbmF2LFxuICAgICAgJi5ub3QtdG9wLWltZyA+ICNuYXZcbiAgICAgICAgYmFja2dyb3VuZDogYWxwaGEoIzEyMTIxMiwgLjgpXG4gICAgICAgIGJveC1zaGFkb3c6IDAgNXB4IDZweCAtNXB4IHJnYmEoMTMzLCAxMzMsIDEzMywgMClcblxuICAgICNwb3N0LWNvbW1lbnRcbiAgICAgIC5jb21tZW50LXN3aXRjaFxuICAgICAgICBpZiBoZXhvLWNvbmZpZygnY29tbWVudHMudGV4dCcpXG4gICAgICAgICAgYmFja2dyb3VuZDogIzJjMmMyYyAhaW1wb3J0YW50XG5cbiAgICAgICAgI3N3aXRjaC1idG5cbiAgICAgICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoLjgpXG5cbiAgICAvLyBub3RlXG4gICAgaWYgaGV4by1jb25maWcoJ25vdGUuc3R5bGUnKSA9PSAnbW9kZXJuJyB8fCBoZXhvLWNvbmZpZygnbm90ZS5zdHlsZScpID09ICdmbGF0J1xuICAgICAgLm5vdGVcbiAgICAgICAgZmlsdGVyOiBicmlnaHRuZXNzKC44KVxuXG4gICAgLy8gaGlkZS10YWdzXG4gICAgLmhpZGUtYnV0dG9uLFxuICAgIC5idG4tYmVhdXRpZnksXG4gICAgLmhsLWxhYmVsLFxuICAgICNwb3N0LW91dGRhdGUtbm90aWNlLFxuICAgIC5lcnJvci1pbWcsXG4gICAgLmNvbnRhaW5lciBpZnJhbWUsXG4gICAgLmdpc3QsXG4gICAgLmFkcy13cmFwXG4gICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoLjgpXG5cbiAgICBpbWdcbiAgICAgIGlmIGhleG8tY29uZmlnKCdsYXp5bG9hZC5lbmFibGUnKSAmJiBoZXhvLWNvbmZpZygnbGF6eWxvYWQuYmx1cicpICYmICFoZXhvLWNvbmZpZygnbGF6eWxvYWQucGxhY2Vob2xkZXInKVxuICAgICAgICBmaWx0ZXI6IGJsdXIoMCkgYnJpZ2h0bmVzcyguOClcbiAgICAgIGVsc2VcbiAgICAgICAgZmlsdGVyOiBicmlnaHRuZXNzKC44KVxuXG4gICAgI2FzaWRlLWNvbnRlbnQgLmFzaWRlLWxpc3QgPiAuYXNpZGUtbGlzdC1pdGVtOm5vdCg6bGFzdC1jaGlsZClcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgYWxwaGEoI0ZGRkZGRiwgLjEpXG5cbiAgICAvLyBHaXRhbGtcbiAgICAjZ2l0YWxrLWNvbnRhaW5lclxuICAgICAgZmlsdGVyOiBicmlnaHRuZXNzKC44KVxuXG4gICAgICBzdmdcbiAgICAgICAgZmlsbDogYWxwaGEoI0ZGRkZGRiwgLjkpICFpbXBvcnRhbnRcblxuICAgIC8vIERpc3F1c2pzIOWPjeS7o+aooeW8j+S4i+eahOmBqemFjVxuICAgICNkaXNxdXNqc1xuICAgICAgI2RzcWpzXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgIC5kc3Fqcy10YWItYWN0aXZlLFxuICAgICAgICAuZHNxanMtbm8tY29tbWVudFxuICAgICAgICAgIGNvbG9yOiBhbHBoYSgjRkZGRkZGLCAuNylcblxuICAgICAgICAuZHNxanMtb3JkZXItbGFiZWxcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCMxMjEyMTIsIDUpXG5cbiAgICAgICAgLmRzcWpzLXBvc3QtYm9keVxuICAgICAgICAgIGNvbG9yOiBhbHBoYSgjRkZGRkZGLCAuNylcblxuICAgICAgICAgIGNvZGUsXG4gICAgICAgICAgcHJlXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMmMyYzJjXG5cbiAgICAgICAgICBibG9ja3F1b3RlXG4gICAgICAgICAgICBjb2xvcjogYWxwaGEoI0ZGRkZGRiwgLjcpXG5cbiAgICAjYXJ0aXRhbGtfbWFpbiAjbGF6eVxuICAgICAgYmFja2dyb3VuZDogIzEyMTIxMlxuXG4gICAgI29wZXJhcmVfYXJ0aXRhbGsgLmMyXG4gICAgICBiYWNrZ3JvdW5kOiAjMTIxMjEyXG5cbiAgICAjY2FyZC10b2NcbiAgICAgICttYXhXaWR0aDkwMCgpXG4gICAgICAgIGJhY2tncm91bmQ6IGxpZ2h0ZW4oIzEyMTIxMiwgNSlcblxuICAgIC8vIGFydGFsa1xuICAgIC5hcnRhbGsuYXRrLWRhcmstbW9kZSxcbiAgICAuYXRrLWxheWVyLXdyYXAuYXRrLWRhcmstbW9kZVxuICAgICAgLS1hdC1jb2xvci1mb250OiBhbHBoYSgjRkZGRkZGLCAuNylcbiAgICAgIC0tYXQtY29sb3ItbWV0YTogYWxwaGEoI0ZGRkZGRiwgLjcpXG4gICAgICAtLWF0LWNvbG9yLWdyZXk6IGFscGhhKCNGRkZGRkYsIC43KVxuICAgIFxuICAgIC5hdGstc2VuZC1idG4sXG4gICAgLmF0ay1iYWRnZVxuICAgICAgY29sb3I6IGFscGhhKCNGRkZGRkYsIC43KSAhaW1wb3J0YW50XG5cbiAgICAvLyB3YWxpbmVcbiAgICAjd2FsaW5lLXdyYXBcbiAgICAgIC0td2FsaW5lLWNvbG9yOiBhbHBoYSgjRkZGRkZGLCAuNylcbiAgICAgIC0td2FsaW5lLWRhcmstZ3JleTogYWxwaGEoI0ZGRkZGRiwgLjcpXG4gICAgICAtLXdhbGluZS1pbmZvLWNvbG9yOiBhbHBoYSgjRkZGRkZGLCAuNSkiLCJpZiBoZXhvLWNvbmZpZygncmVhZG1vZGUnKVxuICAucmVhZC1tb2RlXG4gICAgLS1mb250LWNvbG9yOiAjNGM0OTQ4XG4gICAgLS1yZWFkbW9kZS1saWdodC1jb2xvcjogI2ZmZlxuICAgIC0td2hpdGU6ICM0YzQ5NDhcbiAgICAtLWxpZ2h0LWdyZXk6ICM0YzQ5NDhcbiAgICAtLWdyYXk6ICNkNmRiZGZcbiAgICAtLWhyLWJvcmRlcjogI2Q2ZGJkZlxuICAgIC0taHItYmVmb3JlLWNvbG9yOiBkYXJrZW4oI2Q2ZGJkZiwgMTApXG4gICAgLS1oaWdobGlnaHQtYmc6ICNmN2Y3ZjdcbiAgICAtLWV4aXQtYnRuLWJnOiAjQzBDMEMwXG4gICAgLS1leGl0LWJ0bi1jb2xvcjogI2ZmZlxuICAgIC0tZXhpdC1idG4taG92ZXI6IGRhcmtlbigjQzBDMEMwLCAyMClcbiAgICAtLXBzZXVkby1ob3Zlcjogbm9uZVxuXG4gIFtkYXRhLXRoZW1lPSdkYXJrJ11cbiAgICAucmVhZC1tb2RlXG4gICAgICAtLWZvbnQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgLjcpXG4gICAgICAtLXJlYWRtb2RlLWxpZ2h0LWNvbG9yOiAjMGQwZDBkXG4gICAgICAtLXdoaXRlOiByZ2JhKDI1NSwgMjU1LCAyNTUsIC45KVxuICAgICAgLS1saWdodC1ncmV5OiByZ2JhKDI1NSwgMjU1LCAyNTUsIC43KVxuICAgICAgLS1ncmF5OiByZ2JhKDI1NSwgMjU1LCAyNTUsIC43KVxuICAgICAgLS1oci1ib3JkZXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgLjUpXG4gICAgICAtLWhyLWJlZm9yZS1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAuNylcbiAgICAgIC0taGlnaGxpZ2h0LWJnOiAjMTcxNzE3XG4gICAgICAtLWV4aXQtYnRuLWJnOiAjMWYxZjFmXG4gICAgICAtLWV4aXQtYnRuLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIC45KVxuICAgICAgLS1leGl0LWJ0bi1ob3ZlcjogbGlnaHRlbigjMWYxZjFmLCAyMClcblxuICAucmVhZC1tb2RlXG4gICAgYmFja2dyb3VuZDogdmFyKC0tcmVhZG1vZGUtbGlnaHQtY29sb3IpXG5cbiAgICAuZXhpdC1yZWFkbW9kZVxuICAgICAgcG9zaXRpb246IGZpeGVkXG4gICAgICB0b3A6IDMwcHhcbiAgICAgIHJpZ2h0OiAzMHB4XG4gICAgICB6LWluZGV4OiAxMDBcbiAgICAgIHdpZHRoOiA0MHB4XG4gICAgICBoZWlnaHQ6IDQwcHhcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWV4aXQtYnRuLWJnKVxuICAgICAgY29sb3I6IHZhcigtLWV4aXQtYnRuLWNvbG9yKVxuICAgICAgZm9udC1zaXplOiAxNnB4XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4zc1xuICAgICAgYWRkQm9yZGVyUmFkaXVzKDgpXG5cbiAgICAgICttYXhXaWR0aDc2OCgpXG4gICAgICAgIHRvcDogaW5pdGlhbFxuICAgICAgICBib3R0b206IDMwcHhcblxuICAgICAgJjpob3ZlclxuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1leGl0LWJ0bi1ob3ZlcilcblxuICAgICNhc2lkZS1jb250ZW50XG4gICAgICBkaXNwbGF5OiBub25lXG5cbiAgICAjcGFnZS1oZWFkZXIucG9zdC1iZ1xuICAgICAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50XG5cbiAgICAgICY6YmVmb3JlXG4gICAgICAgIG9wYWNpdHk6IDBcblxuICAgICAgJiA+ICNwb3N0LWluZm9cbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyXG5cbiAgICAjcG9zdFxuICAgICAgbWFyZ2luOiAwIGF1dG9cbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50XG4gICAgICBib3gtc2hhZG93OiBub25lXG5cbiAgICAgICY6aG92ZXJcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZVxuXG4gICAgJiA+IGNhbnZhc1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50XG5cbiAgICAuaGlnaGxpZ2h0LXRvb2xzLFxuICAgICNmb290ZXIsXG4gICAgI3Bvc3QgPiAqOm5vdCgjcG9zdC1pbmZvKTpub3QoLnBvc3QtY29udGVudCksXG4gICAgI25hdixcbiAgICAjcG9zdC1vdXRkYXRlLW5vdGljZSxcbiAgICAjd2ViX2JnLFxuICAgICNyaWdodHNpZGUsXG4gICAgLm5vdC10b3AtaW1nXG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnRcblxuICAgIC5jb250YWluZXJcbiAgICAgIGFcbiAgICAgICAgY29sb3I6ICM5OWE5YmZcblxuICAgICAgcHJlLFxuICAgICAgLmhpZ2hsaWdodDpub3QoLmpzLWZpbGUtbGluZS1jb250YWluZXIpXG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWhpZ2hsaWdodC1iZykgIWltcG9ydGFudFxuXG4gICAgICAgICpcbiAgICAgICAgICBjb2xvcjogdmFyKC0tZm9udC1jb2xvcikgIWltcG9ydGFudFxuXG4gICAgICBmaWd1cmUuaGlnaGxpZ2h0XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudFxuICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnRcblxuICAgICAgICAmID4gOm5vdCguaGlnaGxpZ2h0LXRvb2xzKVxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnRcblxuICAgICAgICAubGluZTpiZWZvcmVcbiAgICAgICAgICBjb2xvcjogdmFyKC0tZm9udC1jb2xvcikgIWltcG9ydGFudFxuXG4gICAgICAgIC5obGpzXG4gICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taGlnaGxpZ2h0LWJnKSAhaW1wb3J0YW50XG5cbiAgICAgIGgxLFxuICAgICAgaDIsXG4gICAgICBoMyxcbiAgICAgIGg0LFxuICAgICAgaDUsXG4gICAgICBoNlxuICAgICAgICBwYWRkaW5nOiAwXG5cbiAgICAgICAgJjpiZWZvcmVcbiAgICAgICAgICBjb250ZW50OiAnJ1xuXG4gICAgICAgICY6aG92ZXJcbiAgICAgICAgICBwYWRkaW5nOiAwXG5cbiAgICAgIHVsLFxuICAgICAgbGksXG4gICAgICBvbFxuICAgICAgICAmOmhvdmVyOmJlZm9yZVxuICAgICAgICAgIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50XG5cbiAgICAgIG9sLFxuICAgICAgbGlcbiAgICAgICAgJjpiZWZvcmVcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50XG4gICAgICAgICAgY29sb3I6IHZhcigtLWZvbnQtY29sb3IpICFpbXBvcnRhbnRcblxuICAgICAgdWxcbiAgICAgICAgPmxpXG4gICAgICAgICAgJjpiZWZvcmVcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JheSkgIWltcG9ydGFudFxuXG4gICAgICAudGFic1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS10YWItYm9yZGVyLWNvbG9yKVxuXG4gICAgICAgID4gLm5hdi10YWJzXG4gICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnRcblxuICAgICAgICAgID4gLnRhYlxuICAgICAgICAgICAgYm9yZGVyLXRvcDogbm9uZSAhaW1wb3J0YW50XG5cbiAgICAgICAgPiAudGFiLWNvbnRlbnRzIC50YWItaXRlbS1jb250ZW50LmFjdGl2ZVxuICAgICAgICAgIGFuaW1hdGlvbjogbm9uZVxuXG4gICAgICBjb2RlXG4gICAgICAgIGNvbG9yOiB2YXIoLS1mb250LWNvbG9yKVxuXG4gICAgICBibG9ja3F1b3RlXG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JheSlcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcmVhZG1vZGUtbGlnaHQtY29sb3IpXG5cbiAgICAgIGtiZFxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ncmF5KVxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudFxuICAgICAgICBib3gtc2hhZG93OiBub25lXG4gICAgICAgIGNvbG9yOiB2YXIoLS1mb250LWNvbG9yKVxuXG4gICAgICAuaGlkZS10b2dnbGVcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZ3JheSkgIWltcG9ydGFudFxuXG4gICAgICAuaGlkZS1idXR0b24sXG4gICAgICAuYnRuLWJlYXV0aWZ5LFxuICAgICAgLmhsLWxhYmVsXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWdyYXkpICFpbXBvcnRhbnRcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcmVhZG1vZGUtbGlnaHQtY29sb3IpICFpbXBvcnRhbnRcbiAgICAgICAgY29sb3I6IHZhcigtLWZvbnQtY29sb3IpICFpbXBvcnRhbnRcblxuICAgICAgLm5vdGVcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tZ3JheSlcbiAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyYXkpICFpbXBvcnRhbnRcbiAgICAgICAgZmlsdGVyOiBub25lXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXJlYWRtb2RlLWxpZ2h0LWNvbG9yKSAhaW1wb3J0YW50XG4gICAgICAgIGNvbG9yOiB2YXIoLS1mb250LWNvbG9yKVxuXG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAubm90ZS1pY29uXG4gICAgICAgICAgY29sb3I6IHZhcigtLWZvbnQtY29sb3IpXG4iLCIuc2VhcmNoLWRpYWxvZ1xuICBwb3NpdGlvbjogZml4ZWRcbiAgdG9wOiAxMCVcbiAgbGVmdDogNTAlXG4gIHotaW5kZXg6IDEwMDFcbiAgZGlzcGxheTogbm9uZVxuICBtYXJnaW4tbGVmdDogLTMwMHB4XG4gIHBhZGRpbmc6IDIwcHhcbiAgd2lkdGg6IDYwMHB4XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlYXJjaC1iZylcbiAgLS1zZWFyY2gtaGVpZ2h0OiAxMDB2aFxuICBhZGRCb3JkZXJSYWRpdXMoOClcblxuICArbWF4V2lkdGg3NjgoKVxuICAgIHRvcDogMFxuICAgIGxlZnQ6IDBcbiAgICBtYXJnaW46IDBcbiAgICB3aWR0aDogMTAwJVxuICAgIGhlaWdodDogMTAwJVxuICAgIGJvcmRlci1yYWRpdXM6IDBcblxuICAuc2VhcmNoLW5hdlxuICAgIG1hcmdpbjogMCAwIDE0cHhcbiAgICBjb2xvcjogJHNlYXJjaC1jb2xvclxuICAgIGZvbnQtc2l6ZTogMS40ZW1cbiAgICBsaW5lLWhlaWdodDogMVxuXG4gICAgLnNlYXJjaC1kaWFsb2ctdGl0bGVcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweFxuXG4gICAgLnNlYXJjaC1jbG9zZS1idXR0b25cbiAgICAgIGZsb2F0OiByaWdodFxuICAgICAgY29sb3I6ICRncmV5XG4gICAgICB0cmFuc2l0aW9uOiBjb2xvciAuMnMgZWFzZS1pbi1vdXRcblxuICAgICAgJjpob3ZlclxuICAgICAgICBjb2xvcjogJHNlYXJjaC1jb2xvclxuICBcbiAgaHJcbiAgICBtYXJnaW46IDE1cHggYXV0b1xuICAgIEBleHRlbmQgLmN1c3RvbS1oclxuXG4jc2VhcmNoLW1hc2tcbiAgcG9zaXRpb246IGZpeGVkXG4gIHRvcDogMFxuICByaWdodDogMFxuICBib3R0b206IDBcbiAgbGVmdDogMFxuICB6LWluZGV4OiAxMDAwXG4gIGRpc3BsYXk6IG5vbmVcbiAgYmFja2dyb3VuZDogcmdiYSgkZGFyay1ibGFjaywgLjYpXG5cbmlmIGhleG8tY29uZmlnKCdzZWFyY2gudXNlJykgPT0gJ2FsZ29saWFfc2VhcmNoJ1xuICBAcmVxdWlyZSAnYWxnb2xpYSdcbmVsc2UgaWYgaGV4by1jb25maWcoJ3NlYXJjaC51c2UnKSA9PSAnbG9jYWxfc2VhcmNoJ1xuICBAcmVxdWlyZSAnbG9jYWwtc2VhcmNoJyJdfQ== */