:root{--body-bg-color:#eee;--content-bg-color:#fff;--card-bg-color:#f5f5f5;--text-color:#555;--selection-bg:#262a30;--selection-color:#eee;--blockquote-color:#666;--link-color:#555;--link-hover-color:#222;--brand-color:#fff;--brand-hover-color:#fff;--table-row-odd-bg-color:#f9f9f9;--table-row-hover-bg-color:#f5f5f5;--menu-item-bg-color:#f5f5f5;--theme-color:#222;--btn-default-bg:#fff;--btn-default-color:#555;--btn-default-border-color:#555;--btn-default-hover-bg:#222;--btn-default-hover-color:#fff;--btn-default-hover-border-color:#222;--highlight-background:#f6f6f6;--highlight-foreground:#2f3337;--highlight-gutter-background:#e2e2e2;--highlight-gutter-foreground:#42464a;color-scheme:light}@media (prefers-color-scheme:dark){:root{--body-bg-color:#282828;--content-bg-color:#333;--card-bg-color:#555;--text-color:#ccc;--selection-bg:#bbb;--selection-color:#333;--blockquote-color:#bbb;--link-color:#ccc;--link-hover-color:#eee;--brand-color:#ddd;--brand-hover-color:#ddd;--table-row-odd-bg-color:#282828;--table-row-hover-bg-color:#363636;--menu-item-bg-color:#555;--theme-color:#222;--btn-default-bg:#222;--btn-default-color:#ccc;--btn-default-border-color:#555;--btn-default-hover-bg:#666;--btn-default-hover-color:#ccc;--btn-default-hover-border-color:#666;--highlight-background:#2d2d2d;--highlight-foreground:#ccc;--highlight-gutter-background:#3c3c3c;--highlight-gutter-foreground:#bcbcbc;color-scheme:dark}img{opacity:.75}img:hover{opacity:.9}iframe{color-scheme:light}}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: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}button,[type='button'],[type='reset'],[type='submit']{-webkit-appearance:button}button::-moz-focus-inner,[type='button']::-moz-focus-inner,[type='reset']::-moz-focus-inner,[type='submit']::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type='button']:-moz-focusring,[type='reset']:-moz-focusring,[type='submit']:-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']{outline-offset:-2px;-webkit-appearance:textfield}[type='search']::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}::selection{background:var(--selection-bg);color:var(--selection-color)}html,body{height:100%}body{background:var(--body-bg-color);box-sizing:border-box;color:var(--text-color);font-family:Lato,'PingFang SC','Microsoft YaHei',sans-serif;font-size:1em;line-height:2;min-height:100%;position:relative;transition:padding .2s ease-in-out}h1,h2,h3,h4,h5,h6{font-family:Lato,'PingFang SC','Microsoft YaHei',sans-serif;font-weight:bold;line-height:1.5;margin:30px 0 15px}h1{font-size:1.5em}h2{font-size:1.375em}h3{font-size:1.25em}h4{font-size:1.125em}h5{font-size:1em}h6{font-size:.875em}p{margin:0 0 20px}a{border-bottom:1px solid #999;color:var(--link-color);cursor:pointer;outline:0;text-decoration:none;overflow-wrap:break-word}a:hover{border-bottom-color:var(--link-hover-color);color:var(--link-hover-color)}iframe,img,video,embed{display:block;margin-left:auto;margin-right:auto;max-width:100%}hr{background-image:repeating-linear-gradient(-45deg,#ddd,#ddd 4px,transparent 4px,transparent 8px);border:0;height:3px;margin:40px 0}blockquote{border-left:4px solid #ddd;color:var(--blockquote-color);margin:0;padding:0 15px}blockquote cite::before{content:'-';padding:0 5px}dt{font-weight:bold}dd{margin:0;padding:0}.table-container{overflow:auto}table{border-collapse:collapse;border-spacing:0;font-size:.875em;margin:0 0 20px;width:100%}tbody tr:nth-of-type(odd){background:var(--table-row-odd-bg-color)}tbody tr:hover{background:var(--table-row-hover-bg-color)}caption,th,td{padding:8px}th,td{border:1px solid #ddd;border-bottom:3px solid #ddd}th{font-weight:700;padding-bottom:10px}td{border-bottom-width:1px}.btn{background:var(--btn-default-bg);border:2px solid var(--btn-default-border-color);border-radius:2px;color:var(--btn-default-color);display:inline-block;font-size:.875em;line-height:2;padding:0 20px;transition:background-color .2s ease-in-out}.btn:hover{background:var(--btn-default-hover-bg);border-color:var(--btn-default-hover-border-color);color:var(--btn-default-hover-color)}.btn + .btn{margin:0 0 8px 8px}.btn .fa-fw{text-align:left;width:1.285714285714286em}.toggle{line-height:0}.toggle .toggle-line{background:#fff;display:block;height:2px;left:0;position:relative;top:0;transition:.4s;transition-property:left,opacity,top,transform,width;width:100%}.toggle .toggle-line:first-child{margin-top:1px}.toggle .toggle-line:not(:first-child){margin-top:4px}.toggle.toggle-arrow :first-child{left:50%;top:2px;transform:rotate(45deg);width:50%}.toggle.toggle-arrow :last-child{left:50%;top:-2px;transform:rotate(-45deg);width:50%}.toggle.toggle-close :nth-child(2){opacity:0}.toggle.toggle-close :first-child{top:6px;transform:rotate(45deg)}.toggle.toggle-close :last-child{top:-6px;transform:rotate(-45deg)}/*!
 * StackOverflow.com light style
 *
 * @stackoverflow/stacks v0.56.0
 * https://github.com/StackExchange/Stacks
 */

.hljs {
  display: block;
  overflow-x: auto;
  padding: 0.5em;
  color: #2f3337;
  background: #f6f6f6;
}

.hljs-comment {
  color: #656e77;
}

.hljs-keyword,
.hljs-selector-tag,
.hljs-meta-keyword,
.hljs-doctag,
.hljs-section,
.hljs-selector-class,
.hljs-meta,
.hljs-selector-pseudo,
.hljs-attr {
  color: #015692;
}

.hljs-attribute {
  color: #803378;
}

.hljs-name,
.hljs-type,
.hljs-number,
.hljs-selector-id,
.hljs-quote,
.hljs-template-tag,
.hljs-built_in,
.hljs-title,
.hljs-literal {
  color: #b75501;
}

.hljs-string,
.hljs-regexp,
.hljs-symbol,
.hljs-variable,
.hljs-template-variable,
.hljs-link,
.hljs-selector-attr,
.hljs-meta-string {
  color: #54790d;
}

.hljs-bullet,
.hljs-code {
  color: #535a60;
}

.hljs-deletion {
  color: #c02d2e;
}

.hljs-addition {
  color: #2f6f44;
}

.hljs-emphasis {
  font-style: italic;
}

.hljs-strong {
  font-weight: bold;
}

@media (prefers-color-scheme:dark){/* Tomorrow Night Eighties Theme */
/* Original theme - https://github.com/chriskempson/tomorrow-theme */
/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */

/* Tomorrow Comment */
.hljs-comment,
.hljs-quote {
  color: #999999;
}

/* Tomorrow Red */
.hljs-variable,
.hljs-template-variable,
.hljs-tag,
.hljs-name,
.hljs-selector-id,
.hljs-selector-class,
.hljs-regexp,
.hljs-deletion {
  color: #f2777a;
}

/* Tomorrow Orange */
.hljs-number,
.hljs-built_in,
.hljs-builtin-name,
.hljs-literal,
.hljs-type,
.hljs-params,
.hljs-meta,
.hljs-link {
  color: #f99157;
}

/* Tomorrow Yellow */
.hljs-attribute {
  color: #ffcc66;
}

/* Tomorrow Green */
.hljs-string,
.hljs-symbol,
.hljs-bullet,
.hljs-addition {
  color: #99cc99;
}

/* Tomorrow Blue */
.hljs-title,
.hljs-section {
  color: #6699cc;
}

/* Tomorrow Purple */
.hljs-keyword,
.hljs-selector-tag {
  color: #cc99cc;
}

.hljs {
  display: block;
  overflow-x: auto;
  background: #2d2d2d;
  color: #cccccc;
  padding: 0.5em;
}

.hljs-emphasis {
  font-style: italic;
}

.hljs-strong {
  font-weight: bold;
}

}.highlight:hover .copy-btn,.code-container:hover .copy-btn{opacity:1}.code-container{position:relative}.copy-btn{color:#333;cursor:pointer;line-height:1.6;opacity:0;padding:2px 6px;position:absolute;transition:opacity .2s ease-in-out;color:var(--highlight-foreground);font-size:14px;right:0;top:2px}figure.highlight{border-radius:5px;box-shadow:0 10px 30px 0 rgba(0,0,0,0.4);padding-top:30px}figure.highlight .table-container{border-radius:0 0 5px 5px}figure.highlight::before{background:#fc625d;box-shadow:20px 0 #fdbc40,40px 0 #35cd4b;left:12px;margin-top:-20px;position:absolute;border-radius:50%;content:' ';height:12px;width:12px}code,kbd,figure.highlight,pre{background:var(--highlight-background);color:var(--highlight-foreground)}figure.highlight,pre{line-height:1.6;margin:0 auto 20px}figure.highlight figcaption,pre .caption,pre figcaption{background:var(--highlight-gutter-background);color:var(--highlight-foreground);display:flow-root;font-size:.875em;line-height:1.2;padding:.5em}figure.highlight figcaption a,pre .caption a,pre figcaption a{color:var(--highlight-foreground);float:right}figure.highlight figcaption a:hover,pre .caption a:hover,pre figcaption a:hover{border-bottom-color:var(--highlight-foreground)}pre,code{font-family:Source Code Pro,consolas,Menlo,monospace,'PingFang SC','Microsoft YaHei'}code{border-radius:3px;font-size:.875em;padding:2px 4px;overflow-wrap:break-word}kbd{border:2px solid #ccc;border-radius:.2em;box-shadow:.1em .1em .2em rgba(0,0,0,0.1);font-family:inherit;padding:.1em .3em;white-space:nowrap}figure.highlight{overflow:auto;position:relative}figure.highlight pre{border:0;margin:0;padding:10px 0}figure.highlight table{border:0;margin:0;width:auto}figure.highlight td{border:0;padding:0}figure.highlight .gutter{-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none}figure.highlight .gutter pre{background:var(--highlight-gutter-background);color:var(--highlight-gutter-foreground);padding-left:10px;padding-right:10px;text-align:right}figure.highlight .code pre{padding-left:10px;width:100%}figure.highlight .marked{background:rgba(0,0,0,0.3)}pre .caption,pre figcaption{margin-bottom:10px}.gist table{width:auto}.gist table td{border:0}pre{overflow:auto;padding:10px}pre code{background:none;padding:0;text-shadow:none}.blockquote-center{border-left:0;margin:40px 0;padding:0;position:relative;text-align:center}.blockquote-center::before,.blockquote-center::after{left:0;line-height:1;opacity:.6;position:absolute;width:100%}.blockquote-center::before{border-top:1px solid #ccc;text-align:left;top:-20px;content:'\f10d';font-family:'Font Awesome 6 Free';font-weight:900}.blockquote-center::after{border-bottom:1px solid #ccc;bottom:-20px;text-align:right;content:'\f10e';font-family:'Font Awesome 6 Free';font-weight:900}.blockquote-center p,.blockquote-center div{text-align:center}.group-picture{margin-bottom:20px}.group-picture .group-picture-row{display:flex;gap:3px;margin-bottom:3px}.group-picture .group-picture-column{flex:1}.group-picture .group-picture-column img{height:100%;margin:0;object-fit:cover;width:100%}.post-body .label{color:#555;padding:0 2px}.post-body .label.default{background:#f0f0f0}.post-body .label.primary{background:#efe6f7}.post-body .label.info{background:#e5f2f8}.post-body .label.success{background:#e7f4e9}.post-body .label.warning{background:#fcf6e1}.post-body .label.danger{background:#fae8eb}.post-body .link-grid{display:grid;grid-gap:1.5rem;gap:1.5rem;grid-template-columns:1fr 1fr;margin-bottom:20px;padding:1rem}@media (max-width:767px){.post-body .link-grid{grid-template-columns:1fr}}.post-body .link-grid .link-grid-container{border:solid #ddd;box-shadow:1rem 1rem .5rem rgba(0,0,0,0.5);min-height:5rem;min-width:0;padding:.5rem;position:relative;transition:background .3s}.post-body .link-grid .link-grid-container:hover{animation:next-shake .5s;background:var(--card-bg-color)}.post-body .link-grid .link-grid-container:active{box-shadow:.5rem .5rem .25rem rgba(0,0,0,0.5);transform:translate(.2rem,.2rem)}.post-body .link-grid .link-grid-container .link-grid-image{border:1px solid #ddd;border-radius:50%;box-sizing:border-box;height:5rem;padding:3px;position:absolute;width:5rem}.post-body .link-grid .link-grid-container p{margin:0 1rem 0 6rem}.post-body .link-grid .link-grid-container p:first-of-type{font-size:1.2em}.post-body .link-grid .link-grid-container p:last-of-type{font-size:.8em;line-height:1.3rem;opacity:.7}.post-body .link-grid .link-grid-container a{border:0;height:100%;left:0;position:absolute;top:0;width:100%}@keyframes next-shake{0%{transform:translate(1pt,1pt) rotate(0deg)}10%{transform:translate(-1pt,-2pt) rotate(-1deg)}20%{transform:translate(-3pt,0) rotate(1deg)}30%{transform:translate(3pt,2pt) rotate(0deg)}40%{transform:translate(1pt,-1pt) rotate(1deg)}50%{transform:translate(-1pt,2pt) rotate(-1deg)}60%{transform:translate(-3pt,1pt) rotate(0deg)}70%{transform:translate(3pt,1pt) rotate(-1deg)}80%{transform:translate(-1pt,-1pt) rotate(1deg)}90%{transform:translate(1pt,2pt) rotate(0deg)}100%{transform:translate(1pt,-2pt) rotate(-1deg)}}.wavedrom{margin-bottom:20px;text-align:center}.post-body .note{border-radius:3px;margin-bottom:20px;padding:1em;position:relative;border:1px solid #eee;border-left-width:5px}.post-body .note summary{cursor:pointer;outline:0}.post-body .note summary p{display:inline}.post-body .note h2,.post-body .note h3,.post-body .note h4,.post-body .note h5,.post-body .note h6{border-bottom:initial;margin:0;padding-top:0}.post-body .note :first-child{margin-top:0}.post-body .note :last-child{margin-bottom:0}.post-body .note:not(.no-icon){padding-left:2.5em}.post-body .note:not(.no-icon)::before{font-size:1.5em;left:.3em;position:absolute;top:calc(50% - 1em)}.post-body .note.default{border-left-color:#777}.post-body .note.default h2,.post-body .note.default h3,.post-body .note.default h4,.post-body .note.default h5,.post-body .note.default h6{color:#777}.post-body .note.default:not(.no-icon)::before{content:'\f0a9';font-family:'Font Awesome 6 Free';font-weight:900;color:#777}.post-body .note.primary{border-left-color:#6f42c1}.post-body .note.primary h2,.post-body .note.primary h3,.post-body .note.primary h4,.post-body .note.primary h5,.post-body .note.primary h6{color:#6f42c1}.post-body .note.primary:not(.no-icon)::before{content:'\f055';font-family:'Font Awesome 6 Free';font-weight:900;color:#6f42c1}.post-body .note.info{border-left-color:#428bca}.post-body .note.info h2,.post-body .note.info h3,.post-body .note.info h4,.post-body .note.info h5,.post-body .note.info h6{color:#428bca}.post-body .note.info:not(.no-icon)::before{content:'\f05a';font-family:'Font Awesome 6 Free';font-weight:900;color:#428bca}.post-body .note.success{border-left-color:#5cb85c}.post-body .note.success h2,.post-body .note.success h3,.post-body .note.success h4,.post-body .note.success h5,.post-body .note.success h6{color:#5cb85c}.post-body .note.success:not(.no-icon)::before{content:'\f058';font-family:'Font Awesome 6 Free';font-weight:900;color:#5cb85c}.post-body .note.warning{border-left-color:#f0ad4e}.post-body .note.warning h2,.post-body .note.warning h3,.post-body .note.warning h4,.post-body .note.warning h5,.post-body .note.warning h6{color:#f0ad4e}.post-body .note.warning:not(.no-icon)::before{content:'\f06a';font-family:'Font Awesome 6 Free';font-weight:900;color:#f0ad4e}.post-body .note.danger{border-left-color:#d9534f}.post-body .note.danger h2,.post-body .note.danger h3,.post-body .note.danger h4,.post-body .note.danger h5,.post-body .note.danger h6{color:#d9534f}.post-body .note.danger:not(.no-icon)::before{content:'\f056';font-family:'Font Awesome 6 Free';font-weight:900;color:#d9534f}.post-body .tabs{margin-bottom:20px}.post-body .tabs,.tabs-comment{padding-top:10px}.post-body .tabs ul.nav-tabs,.tabs-comment ul.nav-tabs{background:var(--content-bg-color);display:flex;display:flex;flex-wrap:wrap;justify-content:center;margin:0;padding:0;position:-webkit-sticky;position:sticky;top:0;z-index:5}@media (max-width:413px){.post-body .tabs ul.nav-tabs,.tabs-comment ul.nav-tabs{display:block;margin-bottom:5px}}.post-body .tabs ul.nav-tabs li.tab,.tabs-comment ul.nav-tabs li.tab{border-bottom:1px solid #ddd;border-left:1px solid transparent;border-right:1px solid transparent;border-radius:0 0 0 0;border-top:3px solid transparent;flex-grow:1;list-style-type:none}@media (max-width:413px){.post-body .tabs ul.nav-tabs li.tab,.tabs-comment ul.nav-tabs li.tab{border-bottom:1px solid transparent;border-left:3px solid transparent;border-right:1px solid transparent;border-top:1px solid transparent}}@media (max-width:413px){.post-body .tabs ul.nav-tabs li.tab,.tabs-comment ul.nav-tabs li.tab{border-radius:0}}.post-body .tabs ul.nav-tabs li.tab a,.tabs-comment ul.nav-tabs li.tab a{border-bottom:initial;display:block;line-height:1.8;padding:.25em .75em;text-align:center;transition:all .2s ease-out}.post-body .tabs ul.nav-tabs li.tab a i[class^='fa'],.tabs-comment ul.nav-tabs li.tab a i[class^='fa']{width:1.285714285714286em}.post-body .tabs ul.nav-tabs li.tab.active,.tabs-comment ul.nav-tabs li.tab.active{border-bottom-color:transparent;border-left-color:#ddd;border-right-color:#ddd;border-top-color:#fc6423}@media (max-width:413px){.post-body .tabs ul.nav-tabs li.tab.active,.tabs-comment ul.nav-tabs li.tab.active{border-bottom-color:#ddd;border-left-color:#fc6423;border-right-color:#ddd;border-top-color:#ddd}}.post-body .tabs ul.nav-tabs li.tab.active a,.tabs-comment ul.nav-tabs li.tab.active a{cursor:default}.post-body .tabs .tab-content,.tabs-comment .tab-content{border:1px solid #ddd;border-radius:0 0 0 0;border-top-color:transparent}@media (max-width:413px){.post-body .tabs .tab-content,.tabs-comment .tab-content{border-radius:0;border-top-color:#ddd}}.post-body .tabs .tab-content .tab-pane,.tabs-comment .tab-content .tab-pane{padding:20px 20px 0}.post-body .tabs .tab-content .tab-pane:not(.active),.tabs-comment .tab-content .tab-pane:not(.active){display:none}.pagination .prev,.pagination .next,.pagination .page-number,.pagination .space{display:inline-block;margin:-1px 10px 0;padding:0 10px}@media (max-width:767px){.pagination .prev,.pagination .next,.pagination .page-number,.pagination .space{margin:0 5px}}.pagination .page-number.current{background:#ccc;border-color:#ccc;color:var(--content-bg-color)}.pagination{border-top:1px solid #eee;margin:120px 0 0;text-align:center}.pagination .prev,.pagination .next,.pagination .page-number{border-bottom:0;border-top:1px solid #eee;transition:border-color .2s ease-in-out}.pagination .prev:hover,.pagination .next:hover,.pagination .page-number:hover{border-top-color:var(--link-hover-color)}@media (max-width:767px){.pagination{border-top:0}.pagination .prev,.pagination .next,.pagination .page-number{border-bottom:1px solid #eee;border-top:0}.pagination .prev:hover,.pagination .next:hover,.pagination .page-number:hover{border-bottom-color:var(--link-hover-color)}}.pagination .space{margin:0;padding:0}.comments{margin-top:60px;overflow:hidden}.comment-button-group{display:flex;display:flex;flex-wrap:wrap;justify-content:center;justify-content:center;margin:1em 0}.comment-button-group .comment-button{margin:.1em .2em}.comment-button-group .comment-button.active{background:var(--btn-default-hover-bg);border-color:var(--btn-default-hover-border-color);color:var(--btn-default-hover-color)}.comment-position{display:none}.comment-position.active{display:block}.tabs-comment{margin-top:4em;padding-top:0}.tabs-comment .comments{margin-top:0;padding-top:0}.headband{background:var(--theme-color);height:3px}@media (max-width:991px){.headband{display:none}}.site-brand-container{display:flex;flex-shrink:0;padding:0 10px}.use-motion .column,.use-motion .site-brand-container .toggle{opacity:0}.site-meta{flex-grow:1;text-align:center}@media (max-width:767px){.site-meta{text-align:center}}.custom-logo-image{margin-top:20px}@media (max-width:991px){.custom-logo-image{display:none}}.brand{border-bottom:0;color:var(--brand-color);display:inline-block;padding:0}.brand:hover{color:var(--brand-hover-color)}.site-title{font-family:Zhi Mang Xing,Lato,'PingFang SC','Microsoft YaHei',sans-serif;font-size:1.375em;font-weight:normal;line-height:1.5;margin:0}.site-subtitle{color:#ddd;font-size:.8125em;margin:10px 10px 0}.use-motion .site-title,.use-motion .site-subtitle,.use-motion .custom-logo-image{opacity:0;position:relative;top:-10px}.site-nav-toggle,.site-nav-right{display:none}@media (max-width:767px){.site-nav-toggle,.site-nav-right{display:flex;flex-direction:column;justify-content:center}}.site-nav-toggle .toggle,.site-nav-right .toggle{color:var(--text-color);padding:10px;width:22px}.site-nav-toggle .toggle .toggle-line,.site-nav-right .toggle .toggle-line{background:var(--text-color);border-radius:1px}@media (max-width:767px){.site-nav{--scroll-height:0;height:0;overflow:hidden;transition:.2s ease-in-out;transition-property:height,visibility;visibility:hidden}body:not(.site-nav-on) .site-nav .animated{animation:none}body.site-nav-on .site-nav{height:var(--scroll-height);visibility:unset}}.menu{margin:0;padding:1em 0;text-align:center}.menu-item{display:inline-block;list-style:none;margin:0 10px}@media (max-width:767px){.menu-item{display:block;margin-top:10px}.menu-item.menu-item-search{display:none}}.menu-item a{border-bottom:0;display:block;font-size:.8125em;transition:border-color .2s ease-in-out}.menu-item a:hover,.menu-item a.menu-item-active{background:var(--menu-item-bg-color)}.menu-item i[class^='fa']{margin-right:8px}.menu-item .badge{background:#ccc;border-radius:10px;color:var(--content-bg-color);font-weight:bold;line-height:1;margin-left:.35em;padding:2px 5px;text-shadow:1px 1px 0 rgba(0,0,0,0.1)}.use-motion .menu-item{visibility:hidden}.github-corner :hover .octo-arm{animation:octocat-wave 560ms ease-in-out}.github-corner svg{color:#fff;fill:var(--theme-color);position:absolute;right:0;top:0;z-index:5}@media (max-width:991px){.github-corner{display:none}.github-corner svg{color:var(--theme-color);fill:#fff}.github-corner .github-corner:hover .octo-arm{animation:none}.github-corner .github-corner .octo-arm{animation:octocat-wave 560ms ease-in-out}}@keyframes octocat-wave{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}@media (max-width:991px){.sidebar{left:-320px}.sidebar-active .sidebar{left:0}.sidebar{background:#222;bottom:0;max-height:100vh;overflow-y:auto;position:fixed;top:0;transition:.2s ease-out;transition-property:left,right;width:320px;z-index:20}.sidebar a{border-bottom-color:#555;color:#999}.sidebar a:hover{border-bottom-color:#eee;color:#eee}.links-of-author:not(:first-child){margin-top:15px}.links-of-author a{border-bottom-color:#555;display:inline-block;margin-bottom:10px;margin-right:10px;vertical-align:middle;transition:all .2s ease-in-out}.links-of-author a::before{background:#4ec446;display:inline-block;margin-right:3px;transform:translateY(-2px);border-radius:50%;content:' ';height:4px;width:4px}.links-of-blogroll-item{display:inline-block;padding:2px 10px}.links-of-blogroll-item a{box-sizing:border-box;display:inline-block;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.popular-posts .popular-posts-item .popular-posts-link:hover{background:none}.sidebar-dimmer{background:#000;height:100%;left:0;opacity:0;position:fixed;top:0;transition:visibility .4s,opacity .4s;visibility:hidden;width:100%;z-index:10}.sidebar-active .sidebar-dimmer{opacity:.7;visibility:visible}}.sidebar-inner{color:#999;padding:18px 10px;text-align:center;display:flex;flex-direction:column;justify-content:center}.cc-license .cc-opacity{border-bottom:0;opacity:.7}.cc-license .cc-opacity:hover{opacity:.9}.cc-license img{display:inline-block}.site-author-image{border:1px solid #eee;max-width:120px;padding:2px;border-radius:50%;transition:transform 1s ease-out}.site-author-image:hover{transform:rotateZ(360deg)}.site-author-name{color:var(--text-color);font-weight:600;margin:0}.site-description{color:#999;font-size:.8125em;margin-top:0}.links-of-author a{font-size:.8125em}.links-of-author i[class^='fa']{margin-right:2px}.sidebar .sidebar-button:not(:first-child){margin-top:15px}.sidebar .sidebar-button button{background:transparent;color:#fc6423;cursor:pointer;line-height:2;padding:0 15px;border:1px solid #fc6423;border-radius:4px}.sidebar .sidebar-button button:hover{background:#fc6423;color:#fff}.sidebar .sidebar-button button i[class^='fa']{margin-right:5px}.links-of-blogroll{font-size:.8125em}.links-of-blogroll-title{font-size:.875em;font-weight:600}.links-of-blogroll-list{list-style:none;margin:0;padding:0}.sidebar-nav{font-size:.875em;height:0;margin:0;overflow:hidden;padding-left:0;pointer-events:none;transition:.2s ease-in-out;transition-property:height,visibility;visibility:hidden}.sidebar-nav-active .sidebar-nav{height:calc(2em + 1px);pointer-events:unset;visibility:unset}.sidebar-nav li{border-bottom:1px solid transparent;color:var(--text-color);cursor:pointer;display:inline-block;transition:.2s ease-in-out;transition-property:border-bottom-color,color}.sidebar-nav li.sidebar-nav-overview{margin-left:10px}.sidebar-nav li:hover{color:#fc6423}.sidebar-toc-active .sidebar-nav-toc,.sidebar-overview-active .sidebar-nav-overview{border-bottom-color:#fc6423;color:#fc6423;transition-delay:.2s}.sidebar-toc-active .sidebar-nav-toc:hover,.sidebar-overview-active .sidebar-nav-overview:hover{color:#fc6423}.sidebar-panel-container{align-items:start;display:grid;flex:1;overflow-x:hidden;overflow-y:auto;padding-top:0;transition:padding-top .2s ease-in-out}.sidebar-nav-active .sidebar-panel-container{padding-top:20px}.sidebar-panel{animation:deactivate-sidebar-panel .2s ease-in-out;grid-area:1/1;height:0;opacity:0;overflow:hidden;pointer-events:none;transform:translateY(0);transition:.2s ease-in-out;transition-delay:0s;transition-property:opacity,transform,visibility;visibility:hidden}.sidebar-nav-active .sidebar-panel,.sidebar-overview-active .sidebar-panel.post-toc-wrap{transform:translateY(-20px)}.sidebar-overview-active:not(.sidebar-nav-active) .sidebar-panel.post-toc-wrap{transition-delay:0s,.2s,0s}.sidebar-overview-active .sidebar-panel.site-overview-wrap,.sidebar-toc-active .sidebar-panel.post-toc-wrap{animation-name:activate-sidebar-panel;height:auto;opacity:1;pointer-events:unset;transform:translateY(0);transition-delay:.2s,.2s,0s;visibility:unset}.sidebar-panel.site-overview-wrap{display:flex;flex-direction:column;justify-content:center;gap:10px;justify-content:flex-start}@keyframes deactivate-sidebar-panel{from{height:var(--inactive-panel-height,0)}to{height:var(--active-panel-height,0)}}@keyframes activate-sidebar-panel{from{height:var(--inactive-panel-height,auto)}to{height:var(--active-panel-height,auto)}}.sidebar-toggle{bottom:61px;height:16px;padding:5px;width:16px;background:#222;cursor:pointer;opacity:.6;position:fixed;z-index:30;left:30px}@media (max-width:991px){.sidebar-toggle{left:20px}}.sidebar-toggle:hover{opacity:.8}@media (max-width:991px){.sidebar-toggle{opacity:.8}}.sidebar-toggle:hover .toggle-line{background:#fc6423}@media (any-hover:hover){body:not(.sidebar-active) .sidebar-toggle:hover :first-child{left:50%;top:2px;transform:rotate(45deg);width:50%}body:not(.sidebar-active) .sidebar-toggle:hover :last-child{left:50%;top:-2px;transform:rotate(-45deg);width:50%}}.sidebar-active .sidebar-toggle :nth-child(2){opacity:0}.sidebar-active .sidebar-toggle :first-child{top:6px;transform:rotate(45deg)}.sidebar-active .sidebar-toggle :last-child{top:-6px;transform:rotate(-45deg)}.post-toc{font-size:.875em}.post-toc ol{list-style:none;margin:0;padding:0 2px 0 10px;text-align:left}.post-toc ol > :last-child{margin-bottom:5px}.post-toc ol > ol{padding-left:0}.post-toc ol a{transition:all .2s ease-in-out}.post-toc .nav-item{line-height:1.8;overflow:hidden;text-overflow:ellipsis}.post-toc .nav .active > a{border-bottom-color:#fc6423;color:#fc6423}.post-toc .nav .active-current > a{color:#fc6423}.post-toc .nav .active-current > a:hover{color:#fc6423}.site-state{display:flex;flex-wrap:wrap;justify-content:center;line-height:1.4}.site-state-item{padding:0 15px}.site-state-item a{border-bottom:0;display:block}.site-state-item-count{display:block;font-size:1em;font-weight:600}.site-state-item-name{color:#999;font-size:.8125em}.sidebar-post-related{font-size:.8125em;padding:18px 0 0 0}.popular-posts{margin:0;padding:1em 0;text-align:left}.popular-posts .popular-posts-item{display:block}.popular-posts .popular-posts-item .popular-posts-link{border-bottom:0;display:block;padding:5px 20px;transition:background .2s ease-in-out}.popular-posts .popular-posts-item .popular-posts-link:hover{background:var(--menu-item-bg-color)}.popular-posts .popular-posts-item .popular-posts-time{color:#999}.footer{color:#999;font-size:.875em;padding:20px 0;transition:.2s ease-in-out;transition-property:left,right}.footer.footer-fixed{bottom:0;left:0;position:absolute;right:0}.footer-inner{box-sizing:border-box;text-align:center;display:flex;flex-direction:column;justify-content:center;margin:0 auto;width:calc(100% - 20px)}@media (max-width:767px){.footer-inner{width:auto}}@media (min-width:1200px){.footer-inner{width:1160px}}@media (min-width:1600px){.footer-inner{width:73%}}.use-motion .footer{opacity:0}.languages{display:inline-block;font-size:1.125em;position:relative}.languages .lang-select-label span{margin:0 .5em}.languages .lang-select{height:100%;left:0;opacity:0;position:absolute;top:0;width:100%}.with-love{color:#f00;display:inline-block;margin:0 5px;animation:icon-animate 1.33s ease-in-out infinite}.busuanzi-count #busuanzi_container_site_uv{display:none}.busuanzi-count #busuanzi_container_site_pv{display:none}@keyframes icon-animate{0%,100%{transform:scale(1)}10%,30%{transform:scale(.9)}20%,40%,60%,80%{transform:scale(1.1)}50%,70%{transform:scale(1.1)}}.back-to-top{font-size:12px;margin:8px -10px -20px;opacity:0;transition:opacity .2s ease-in-out}.back-to-top span{margin-right:8px}.back-to-top .fa{text-align:center;width:26px}.back-to-top.back-to-top-on{cursor:pointer;opacity:.6}.back-to-top.back-to-top-on:hover{opacity:.8}.rtl.post-body p,.rtl.post-body a,.rtl.post-body h1,.rtl.post-body h2,.rtl.post-body h3,.rtl.post-body h4,.rtl.post-body h5,.rtl.post-body h6,.rtl.post-body li,.rtl.post-body ul,.rtl.post-body ol{direction:rtl;font-family:UKIJ Ekran}.rtl.post-title{font-family:UKIJ Ekran}.post-button{margin-top:40px;text-align:center}.use-motion .post-block,.use-motion .pagination,.use-motion .comments{visibility:hidden}.use-motion .post-header{visibility:hidden}.use-motion .post-body{visibility:hidden}.use-motion .collection-header{visibility:hidden}.posts-collapse .post-content{margin-bottom:35px;margin-left:35px;position:relative}@media (max-width:767px){.posts-collapse .post-content{margin-left:0;margin-right:0}}.posts-collapse .post-content .collection-title{font-size:1.125em;position:relative}.posts-collapse .post-content .collection-title::before{background:#999;border:1px solid #fff;margin-left:-6px;margin-top:-4px;position:absolute;top:50%;border-radius:50%;content:' ';height:10px;width:10px}.posts-collapse .post-content .collection-year{font-size:1.5em;font-weight:bold;margin:60px 0;position:relative}.posts-collapse .post-content .collection-year .collection-year-count{font-size:.75em;background:#ccc;border-radius:10px;color:var(--content-bg-color);font-weight:bold;line-height:1;margin-left:.35em;padding:2px 5px;text-shadow:1px 1px 0 rgba(0,0,0,0.1)}.posts-collapse .post-content .collection-year::before{background:#bbb;margin-left:-4px;margin-top:-4px;position:absolute;top:50%;border-radius:50%;content:' ';height:8px;width:8px}.posts-collapse .post-content .collection-header{display:block;margin-left:20px}.posts-collapse .post-content .collection-header small{color:#bbb;margin-left:5px}.posts-collapse .post-content .post-header{border-bottom:1px dashed #ccc;margin:30px 2px 0;padding-left:15px;position:relative;transition:border .2s ease-in-out}.posts-collapse .post-content .post-header::before{background:#bbb;border:1px solid #fff;left:-6px;position:absolute;top:.75em;transition:background .2s ease-in-out;border-radius:50%;content:' ';height:6px;width:6px}.posts-collapse .post-content .post-header:hover{border-bottom-color:#666}.posts-collapse .post-content .post-header:hover::before{background:#222}.posts-collapse .post-content .post-meta-container{display:inline;font-size:.75em;margin-right:10px}.posts-collapse .post-content .post-title{display:inline}.posts-collapse .post-content .post-title a{border-bottom:0;color:var(--link-color)}.posts-collapse .post-content .post-title .fa{font-size:.875em;margin-left:5px}.posts-collapse .post-content::before{background:#f5f5f5;content:' ';height:100%;margin-left:-2px;position:absolute;top:1.25em;width:4px}.post-body{font-family:Microsoft YaHei,Lato,'PingFang SC','Microsoft YaHei',sans-serif;overflow-wrap:break-word}@media (min-width:1200px){.post-body{font-size:1.125em}}@media (min-width:992px){.post-body{text-align:justify}}@media (max-width:991px){.post-body{text-align:justify}}.post-body h1 .header-anchor,.post-body h2 .header-anchor,.post-body h3 .header-anchor,.post-body h4 .header-anchor,.post-body h5 .header-anchor,.post-body h6 .header-anchor,.post-body h1 .headerlink,.post-body h2 .headerlink,.post-body h3 .headerlink,.post-body h4 .headerlink,.post-body h5 .headerlink,.post-body h6 .headerlink{border-bottom-style:none;color:inherit;float:right;font-size:.875em;margin-left:10px;opacity:0}.post-body h1 .header-anchor::before,.post-body h2 .header-anchor::before,.post-body h3 .header-anchor::before,.post-body h4 .header-anchor::before,.post-body h5 .header-anchor::before,.post-body h6 .header-anchor::before,.post-body h1 .headerlink::before,.post-body h2 .headerlink::before,.post-body h3 .headerlink::before,.post-body h4 .headerlink::before,.post-body h5 .headerlink::before,.post-body h6 .headerlink::before{content:'\f0c1';font-family:'Font Awesome 6 Free';font-weight:900}.post-body h1:hover .header-anchor,.post-body h2:hover .header-anchor,.post-body h3:hover .header-anchor,.post-body h4:hover .header-anchor,.post-body h5:hover .header-anchor,.post-body h6:hover .header-anchor,.post-body h1:hover .headerlink,.post-body h2:hover .headerlink,.post-body h3:hover .headerlink,.post-body h4:hover .headerlink,.post-body h5:hover .headerlink,.post-body h6:hover .headerlink{opacity:.5}.post-body h1:hover .header-anchor:hover,.post-body h2:hover .header-anchor:hover,.post-body h3:hover .header-anchor:hover,.post-body h4:hover .header-anchor:hover,.post-body h5:hover .header-anchor:hover,.post-body h6:hover .header-anchor:hover,.post-body h1:hover .headerlink:hover,.post-body h2:hover .headerlink:hover,.post-body h3:hover .headerlink:hover,.post-body h4:hover .headerlink:hover,.post-body h5:hover .headerlink:hover,.post-body h6:hover .headerlink:hover{opacity:1}.post-body .exturl .fa{font-size:.875em;margin-left:4px}.post-body img + figcaption,.post-body .fancybox + figcaption{color:#999;font-size:.875em;font-weight:bold;line-height:1;margin:-15px auto 15px;text-align:center}.post-body iframe,.post-body img,.post-body video,.post-body embed{margin-bottom:20px}.post-body .video-container{height:0;margin-bottom:20px;overflow:hidden;padding-top:75%;position:relative;width:100%}.post-body .video-container iframe,.post-body .video-container object,.post-body .video-container embed{height:100%;left:0;margin:0;position:absolute;top:0;width:100%}.post-gallery{display:flex;min-height:200px}.post-gallery .post-gallery-image{flex:1}.post-gallery .post-gallery-image:not(:first-child){clip-path:polygon(40px 0,100% 0,100% 100%,0 100%);margin-left:-20px}.post-gallery .post-gallery-image:not(:last-child){margin-right:-20px}.post-gallery .post-gallery-image img{height:100%;object-fit:cover;opacity:1;width:100%}.posts-expand .post-gallery{margin-bottom:60px}.posts-collapse .post-gallery{margin:15px 0}.posts-expand .post-header{font-size:1.125em;margin-bottom:60px;text-align:center}.posts-expand .post-title{font-size:1.5em;font-weight:normal;margin:initial;overflow-wrap:break-word}.posts-expand .post-title .post-edit-link{border-bottom:0;color:#bbb;float:right;font-size:1.25em;margin-left:-1.2em;transition:color .2s ease-in}@media (max-width:567px){.posts-expand .post-title .post-edit-link{margin-left:initial}}.posts-expand .post-title .post-edit-link:hover{color:#fc6423}.posts-expand .post-title-link{border-bottom:0;color:var(--link-color);display:inline-block;position:relative}.posts-expand .post-title-link::before{background:var(--link-color);bottom:0;content:'';height:2px;left:0;position:absolute;transform:scaleX(0);transition:transform .2s ease-in-out;width:100%}.posts-expand .post-title-link:hover::before{transform:scaleX(1)}.posts-expand .post-title-link .fa{font-size:.875em;margin-left:5px}.post-sticky-flag{display:inline-block;margin-right:8px;transform:rotate(30deg)}.posts-expand .post-meta-container{color:#999;font-family:Microsoft YaHei,Lato,'PingFang SC','Microsoft YaHei',sans-serif;font-size:.75em;margin-top:3px}.posts-expand .post-meta-container .post-description{font-size:.875em;margin-top:2px}.posts-expand .post-meta-container time{border-bottom:1px dashed #999}.post-meta{display:flex;flex-wrap:wrap;justify-content:center}:not(.post-meta-break) + .post-meta-item::before{content:'|';margin:0 .5em}.post-meta-item-icon{margin-right:3px}@media (max-width:991px){.post-meta-item-text{display:none}}.post-meta-break{flex-basis:100%;height:0}#busuanzi_container_page_pv{display:none}.post-nav{border-top:1px solid #eee;display:flex;gap:30px;justify-content:space-between;margin-top:1em;padding:10px 5px 0}.post-nav-item{flex:1}.post-nav-item a{border-bottom:0;display:block;font-size:.875em;line-height:1.6}.post-nav-item a:active{top:2px}.post-nav-item .fa{font-size:.75em}.post-nav-item:first-child .fa{margin-right:5px}.post-nav-item:last-child{text-align:right}.post-nav-item:last-child .fa{margin-left:5px}.post-footer{display:flex;flex-direction:column;justify-content:center}.post-eof{background:#ccc;height:1px;margin:80px auto 60px;width:8%}.post-block:last-of-type .post-eof{display:none}.post-copyright ul{list-style:none;overflow:hidden;padding:.5em 1em;position:relative;background:var(--card-bg-color);border-left:3px solid #ff2a2a;margin:1em 0 0}.post-copyright ul::after{content:'\f25e';font-family:'Font Awesome 6 Brands';font-size:200px;opacity:.1;position:absolute;right:-50px;top:-150px}.post-tags{margin-top:40px;text-align:center}.post-tags a{display:inline-block;font-size:.8125em}.post-tags a:not(:last-child){margin-right:10px}.social-like{border-top:1px solid #eee;font-size:.875em;margin-top:1em;padding-top:1em;display:flex;flex-wrap:wrap;justify-content:center}.social-like a{border-bottom:none}.reward-container{margin:1em 0 0;padding:1em 0;text-align:center}.reward-container button{background:transparent;color:#fc6423;cursor:pointer;line-height:2;padding:0 15px;border:2px solid #fc6423;border-radius:2px;outline:0;vertical-align:text-top}.reward-container button:hover{background:#fc6423;color:#fff}.post-reward{display:none;padding-top:20px}.post-reward.active{display:block}.post-reward div{display:inline-block}.post-reward div span{display:block}.post-reward img{display:inline-block;margin:.8em 2em 0;max-width:100%;width:180px}@keyframes next-roll{from{transform:rotateZ(30deg)}to{transform:rotateZ(-30deg)}}.category-all-page .category-all-title{text-align:center}.category-all-page .category-all{margin-top:20px}.category-all-page .category-list{list-style:none;margin:0;padding:0}.category-all-page .category-list-item{margin:5px 10px}.category-all-page .category-list-count{font-size:.75em;background:#ccc;border-radius:10px;color:var(--content-bg-color);font-weight:bold;line-height:1;margin-left:.35em;padding:2px 5px;text-shadow:1px 1px 0 rgba(0,0,0,0.1)}.category-all-page .category-list-child{padding-left:10px}.event-list hr{background:#222;margin:20px 0 45px}.event-list hr::after{background:#222;color:#fff;content:'NOW';display:inline-block;font-weight:bold;padding:0 5px}.event-list .event{--event-background:#222;--event-foreground:#bbb;--event-title:#fff;background:var(--event-background);padding:15px}.event-list .event .event-summary{border-bottom:0;color:var(--event-title);margin:0;padding:0 0 0 35px;position:relative}.event-list .event .event-summary::before{animation:dot-flash 1s alternate infinite ease-in-out;background:var(--event-title);left:0;margin-top:-6px;position:absolute;top:50%;border-radius:50%;content:' ';height:12px;width:12px}.event-list .event:nth-of-type(odd) .event-summary::before{animation-delay:.5s}.event-list .event:not(:last-child){margin-bottom:20px}.event-list .event .event-relative-time{color:var(--event-foreground);display:inline-block;font-size:12px;font-weight:normal;padding-left:12px}.event-list .event .event-details{color:var(--event-foreground);display:block;line-height:18px;padding:6px 0 6px 35px}.event-list .event .event-details::before{color:var(--event-foreground);display:inline-block;margin-right:9px;width:14px;font-family:'Font Awesome 6 Free';font-weight:900}.event-list .event .event-details.event-location::before{content:'\f041'}.event-list .event .event-details.event-duration::before{content:'\f017'}.event-list .event .event-details.event-description::before{content:'\f024'}.event-list .event-past{--event-background:#f5f5f5;--event-foreground:#999;--event-title:#222}@keyframes dot-flash{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}ul.breadcrumb{font-size:.75em;list-style:none;margin:1em 0;padding:0 2em;text-align:center}ul.breadcrumb li{display:inline}ul.breadcrumb li:not(:first-child)::before{content:'/\00a0';font-weight:normal;padding:.5em}ul.breadcrumb li:last-child{font-weight:bold}.tag-cloud{text-align:center}.tag-cloud a{display:inline-block;margin:10px}.tag-cloud-0{border-bottom-color:#aaa;color:#aaa}.tag-cloud-1{border-bottom-color:#9a9a9a;color:#9a9a9a}.tag-cloud-2{border-bottom-color:#8b8b8b;color:#8b8b8b}.tag-cloud-3{border-bottom-color:#7c7c7c;color:#7c7c7c}.tag-cloud-4{border-bottom-color:#6c6c6c;color:#6c6c6c}.tag-cloud-5{border-bottom-color:#5d5d5d;color:#5d5d5d}.tag-cloud-6{border-bottom-color:#4e4e4e;color:#4e4e4e}.tag-cloud-7{border-bottom-color:#3e3e3e;color:#3e3e3e}.tag-cloud-8{border-bottom-color:#2f2f2f;color:#2f2f2f}.tag-cloud-9{border-bottom-color:#202020;color:#202020}.tag-cloud-10{border-bottom-color:#111;color:#111}@media (prefers-color-scheme:dark){.tag-cloud-0{border-bottom-color:#555;color:#555}.tag-cloud-1{border-bottom-color:#646464;color:#646464}.tag-cloud-2{border-bottom-color:#737373;color:#737373}.tag-cloud-3{border-bottom-color:#828282;color:#828282}.tag-cloud-4{border-bottom-color:#929292;color:#929292}.tag-cloud-5{border-bottom-color:#a1a1a1;color:#a1a1a1}.tag-cloud-6{border-bottom-color:#b0b0b0;color:#b0b0b0}.tag-cloud-7{border-bottom-color:#c0c0c0;color:#c0c0c0}.tag-cloud-8{border-bottom-color:#cfcfcf;color:#cfcfcf}.tag-cloud-9{border-bottom-color:#dedede;color:#dedede}.tag-cloud-10{border-bottom-color:#eee;color:#eee}}.search-active{overflow:hidden}.search-pop-overlay{background:rgba(0,0,0,0);display:flex;height:100%;left:0;position:fixed;top:0;transition:visibility .4s,background .4s;visibility:hidden;width:100%;z-index:40}.search-active .search-pop-overlay{background:rgba(0,0,0,0.3);visibility:visible}.search-popup{background:var(--card-bg-color);border-radius:5px;height:80%;margin:auto;transform:scale(0);transition:transform .4s;width:700px}.search-active .search-popup{transform:scale(1)}@media (max-width:767px){.search-popup{border-radius:0;height:100%;width:100%}}.search-popup .search-icon,.search-popup .popup-btn-close{color:#999;font-size:18px;padding:0 10px}.search-popup .popup-btn-close{cursor:pointer}.search-popup .popup-btn-close:hover .fa{color:#222}.search-popup .search-header{background:#eee;border-top-left-radius:5px;border-top-right-radius:5px;display:flex;padding:5px}@media (prefers-color-scheme:dark){.search-popup .search-header{background:#666}}.search-popup input.search-input{background:transparent;border:0;outline:0;width:100%}.search-popup input.search-input::-webkit-search-cancel-button{display:none}.search-popup .search-result-container{display:flex;flex-direction:column;height:calc(100% - 55px);overflow:auto;padding:5px 25px}.search-popup .search-result-container hr{flex-shrink:0;margin:5px 0 10px}.search-popup .search-result-container hr:first-child{display:none}.search-popup .search-result-list{margin:0 5px;padding:0}.search-popup a.search-result-title{font-weight:bold}.search-popup p.search-result{border-bottom:1px dashed #ccc;padding:5px 0}.search-popup .search-input-container{flex-grow:1;padding:2px}.search-popup .search-result-icon{color:#ccc;margin:auto}mark.search-keyword{background:transparent;border-bottom:1px dashed #ff2a2a;color:#ff2a2a;font-weight:bold}.use-motion .animated{animation-fill-mode:none;visibility:inherit}.use-motion .sidebar .animated{animation-fill-mode:both}header.header{background:var(--content-bg-color);border-radius:initial;box-shadow:0 2px 2px 0 rgba(0,0,0,0.12),0 3px 1px -2px rgba(0,0,0,0.06),0 1px 5px 0 rgba(0,0,0,0.12)}@media (max-width:991px){header.header{border-radius:initial}}.main{align-items:stretch;display:flex;justify-content:space-between;margin:0 auto;width:calc(100% - 20px)}@media (max-width:767px){.main{width:auto}}@media (min-width:1200px){.main{width:1160px}}@media (min-width:1600px){.main{width:73%}}@media (max-width:991px){.main{display:block;width:auto}}.main-inner{border-radius:initial;box-sizing:border-box;width:calc(100% - 252px)}@media (max-width:991px){.main-inner{border-radius:initial;width:100%}}.footer-inner{padding-left:252px}@media (max-width:991px){.footer-inner{padding-left:0;padding-right:0;width:auto}}.column{width:240px}@media (max-width:991px){.column{width:auto}}.site-brand-container{background:var(--theme-color)}@media (max-width:991px){.site-nav-on .site-brand-container{box-shadow:0 0 16px rgba(0,0,0,0.5)}}.site-meta{padding:20px 0}@media (min-width:768px) and (max-width:991px){.site-nav-toggle,.site-nav-right{display:flex;flex-direction:column;justify-content:center}}.site-nav-toggle .toggle,.site-nav-right .toggle{color:#fff}.site-nav-toggle .toggle .toggle-line,.site-nav-right .toggle .toggle-line{background:#fff}@media (min-width:768px) and (max-width:991px){.site-nav{--scroll-height:0;height:0;overflow:hidden;transition:.2s ease-in-out;transition-property:height,visibility;visibility:hidden}body:not(.site-nav-on) .site-nav .animated{animation:none}body.site-nav-on .site-nav{height:var(--scroll-height);visibility:unset}}.menu .menu-item{display:block;margin:0}.menu .menu-item a{padding:5px 20px;position:relative;transition-property:background-color;display:flex;align-items:center}.menu .menu-item a .badge{margin-left:auto}@media (max-width:991px){.menu .menu-item.menu-item-search{display:none}}.sub-menu{margin:0;padding:6px 0}.sub-menu .menu-item{display:inline-block}.sub-menu .menu-item a{background:transparent;margin:5px 10px;padding:initial}.sub-menu .menu-item a:hover{background:transparent;color:#fc6423}.sub-menu .menu-item-active{border-bottom-color:#fc6423;color:#fc6423}.sub-menu .menu-item-active:hover{border-bottom-color:#fc6423}@media (min-width:992px){.sidebar{position:-webkit-sticky;position:sticky;top:12px}.sidebar-toggle{display:none}.sidebar-inner{background:var(--content-bg-color);border-radius:initial;box-shadow:0 2px 2px 0 rgba(0,0,0,0.12),0 3px 1px -2px rgba(0,0,0,0.06),0 1px 5px 0 rgba(0,0,0,0.12),0 -1px .5px 0 rgba(0,0,0,0.09);box-sizing:border-box;color:var(--text-color);margin-top:12px;max-height:calc(100vh - 24px)}.site-state-item{padding:0 10px}.sidebar .sidebar-button{border-bottom:1px dotted #ccc;border-top:1px dotted #ccc}.sidebar .sidebar-button button{border:0;color:#fc6423;display:block;width:100%}.sidebar .sidebar-button button:hover{background:none;border:0;color:#e34603}.links-of-author{display:flex;flex-wrap:wrap;justify-content:center}.links-of-author-item{margin:5px 0 0;width:50%}.links-of-author-item a{box-sizing:border-box;display:inline-block;max-width:100%;overflow:hidden;padding:0 5px;text-overflow:ellipsis;white-space:nowrap}.links-of-author-item a{border-bottom:0;border-radius:4px;display:block}.links-of-author-item a:hover{background:var(--body-bg-color)}.links-of-blogroll-item{display:inline-block;max-width:100%;margin:5px 0 0}.links-of-blogroll-item a{box-sizing:border-box;display:inline-block;max-width:100%;overflow:hidden;padding:0 5px;text-overflow:ellipsis;white-space:nowrap}.back-to-top{background:var(--body-bg-color);margin:-4px -10px -18px;transition-property:bottom,margin-top}.back-to-top.back-to-top-on{margin-top:16px}}.main-inner .sub-menu,.main-inner .post-block,.main-inner .tabs-comment,.main-inner > .comments,.main-inner .comment-position .comments,.main-inner .pagination{background:var(--content-bg-color);border-radius:initial;box-shadow:0 2px 2px 0 rgba(0,0,0,0.12),0 3px 1px -2px rgba(0,0,0,0.06),0 1px 5px 0 rgba(0,0,0,0.12)}.main-inner .post-block:not(:first-child):not(:first-child){border-radius:initial;box-shadow:0 2px 2px 0 rgba(0,0,0,0.12),0 3px 1px -2px rgba(0,0,0,0.06),0 1px 5px 0 rgba(0,0,0,0.12),0 -1px .5px 0 rgba(0,0,0,0.09);margin-top:12px}@media (min-width:768px) and (max-width:991px){.main-inner .post-block:not(:first-child):not(:first-child){margin-top:10px}}@media (max-width:767px){.main-inner .post-block:not(:first-child):not(:first-child){margin-top:8px}}.main-inner .tabs-comment,.main-inner > .comments,.main-inner .comment-position .comments,.main-inner .pagination{border-radius:initial;box-shadow:0 2px 2px 0 rgba(0,0,0,0.12),0 3px 1px -2px rgba(0,0,0,0.06),0 1px 5px 0 rgba(0,0,0,0.12),0 -1px .5px 0 rgba(0,0,0,0.09);margin-top:12px}@media (min-width:768px) and (max-width:991px){.main-inner .tabs-comment,.main-inner > .comments,.main-inner .comment-position .comments,.main-inner .pagination{margin-top:10px}}@media (max-width:767px){.main-inner .tabs-comment,.main-inner > .comments,.main-inner .comment-position .comments,.main-inner .pagination{margin-top:8px}}.post-block,.comments{padding:40px}.post-eof{display:none}.pagination{border-top:initial;padding:10px 0}.post-body h1,.post-body h2{border-bottom:1px solid #eee}.post-body h3{border-bottom:1px dotted #eee}@media (min-width:768px) and (max-width:991px){.main-inner{padding:10px}.posts-expand .post-button{margin-top:20px}.post-block{padding:20px}.comments{padding:10px 20px}}@media (max-width:767px){.main-inner{padding:8px}.posts-expand .post-button{margin:12px 0}.post-block{padding:12px}.comments{padding:10px 12px}}@media (min-width:992px) and (max-width:991px){.sidebar{display:none}}/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9oZXhvLXRoZW1lLW5leHQvc291cmNlL2Nzcy9fY29sb3JzLnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9zY2FmZm9sZGluZy9ub3JtYWxpemUuc3R5bCIsIm5vZGVfbW9kdWxlcy9oZXhvLXRoZW1lLW5leHQvc291cmNlL2Nzcy9fY29tbW9uL3NjYWZmb2xkaW5nL2Jhc2Uuc3R5bCIsIm5vZGVfbW9kdWxlcy9oZXhvLXRoZW1lLW5leHQvc291cmNlL2Nzcy9fbWl4aW5zLnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9zY2FmZm9sZGluZy90YWJsZXMuc3R5bCIsIm5vZGVfbW9kdWxlcy9oZXhvLXRoZW1lLW5leHQvc291cmNlL2Nzcy9fY29tbW9uL3NjYWZmb2xkaW5nL2J1dHRvbnMuc3R5bCIsIm5vZGVfbW9kdWxlcy9oZXhvLXRoZW1lLW5leHQvc291cmNlL2Nzcy9fY29tbW9uL3NjYWZmb2xkaW5nL3RvZ2dsZXMuc3R5bCIsIm5vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvc3R5bGVzL3N0YWNrb3ZlcmZsb3ctbGlnaHQuY3NzIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vc2NhZmZvbGRpbmcvaGlnaGxpZ2h0L2luZGV4LnN0eWwiLCJub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL3N0eWxlcy90b21vcnJvdy1uaWdodC1laWdodGllcy5jc3MiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9zY2FmZm9sZGluZy9oaWdobGlnaHQvY29weS1jb2RlLnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX3NjaGVtZXMvUGlzY2VzL19zaWRlYmFyLnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9zY2FmZm9sZGluZy90YWdzL2Jsb2NrcXVvdGUtY2VudGVyLnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9zY2FmZm9sZGluZy90YWdzL2dyb3VwLXBpY3R1cmVzLnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9zY2FmZm9sZGluZy90YWdzL2xhYmVsLnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9zY2FmZm9sZGluZy90YWdzL2xpbmstZ3JpZC5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vc2NhZmZvbGRpbmcvdGFncy93YXZlZHJvbS5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vc2NhZmZvbGRpbmcvdGFncy9ub3RlLnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9zY2FmZm9sZGluZy90YWdzL3RhYnMuc3R5bCIsIm5vZGVfbW9kdWxlcy9oZXhvLXRoZW1lLW5leHQvc291cmNlL2Nzcy9fY29tbW9uL3NjYWZmb2xkaW5nL3BhZ2luYXRpb24uc3R5bCIsIm5vZGVfbW9kdWxlcy9oZXhvLXRoZW1lLW5leHQvc291cmNlL2Nzcy9fY29tbW9uL3NjYWZmb2xkaW5nL2NvbW1lbnRzLnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9vdXRsaW5lL2hlYWRlci9pbmRleC5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vb3V0bGluZS9oZWFkZXIvc2l0ZS1tZXRhLnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9vdXRsaW5lL2hlYWRlci9zaXRlLW5hdi5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vb3V0bGluZS9oZWFkZXIvbWVudS5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vb3V0bGluZS9oZWFkZXIvZ2l0aHViLWJhbm5lci5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vb3V0bGluZS9zaWRlYmFyL2luZGV4LnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9vdXRsaW5lL3NpZGViYXIvc2lkZWJhci1hdXRob3Iuc3R5bCIsIm5vZGVfbW9kdWxlcy9oZXhvLXRoZW1lLW5leHQvc291cmNlL2Nzcy9fY29tbW9uL291dGxpbmUvc2lkZWJhci9zaWRlYmFyLWF1dGhvci1saW5rcy5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vb3V0bGluZS9zaWRlYmFyL3NpZGViYXItYnV0dG9uLnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9vdXRsaW5lL3NpZGViYXIvc2lkZWJhci1ibG9ncm9sbC5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vb3V0bGluZS9zaWRlYmFyL3NpZGViYXItbmF2LnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9vdXRsaW5lL3NpZGViYXIvc2lkZWJhci10b2dnbGUuc3R5bCIsIm5vZGVfbW9kdWxlcy9oZXhvLXRoZW1lLW5leHQvc291cmNlL2Nzcy9fY29tbW9uL291dGxpbmUvc2lkZWJhci9zaWRlYmFyLXRvYy5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vb3V0bGluZS9zaWRlYmFyL3NpdGUtc3RhdGUuc3R5bCIsIm5vZGVfbW9kdWxlcy9oZXhvLXRoZW1lLW5leHQvc291cmNlL2Nzcy9fY29tbW9uL291dGxpbmUvc2lkZWJhci9yZWxhdGVkLXBvc3RzLnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9vdXRsaW5lL2Zvb3Rlci9pbmRleC5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vY29tcG9uZW50cy9iYWNrLXRvLXRvcC5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vY29tcG9uZW50cy9wb3N0L2luZGV4LnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9jb21wb25lbnRzL3Bvc3QvcG9zdC1jb2xsYXBzZS5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vY29tcG9uZW50cy9wb3N0L3Bvc3QtYm9keS5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vY29tcG9uZW50cy9wb3N0L3Bvc3QtZ2FsbGVyeS5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vY29tcG9uZW50cy9wb3N0L3Bvc3QtaGVhZGVyLnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9jb21wb25lbnRzL3Bvc3QvcG9zdC1uYXYuc3R5bCIsIm5vZGVfbW9kdWxlcy9oZXhvLXRoZW1lLW5leHQvc291cmNlL2Nzcy9fY29tbW9uL2NvbXBvbmVudHMvcG9zdC9wb3N0LWZvb3Rlci5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vY29tcG9uZW50cy9wb3N0L3Bvc3Qtd2lkZ2V0cy5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vY29tcG9uZW50cy9wb3N0L3Bvc3QtcmV3YXJkLnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9jb21wb25lbnRzL3BhZ2VzL2NhdGVnb3JpZXMuc3R5bCIsIm5vZGVfbW9kdWxlcy9oZXhvLXRoZW1lLW5leHQvc291cmNlL2Nzcy9fY29tbW9uL2NvbXBvbmVudHMvcGFnZXMvc2NoZWR1bGUuc3R5bCIsIm5vZGVfbW9kdWxlcy9oZXhvLXRoZW1lLW5leHQvc291cmNlL2Nzcy9fY29tbW9uL2NvbXBvbmVudHMvcGFnZXMvYnJlYWRjcnVtYi5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19jb21tb24vY29tcG9uZW50cy9wYWdlcy90YWctY2xvdWQuc3R5bCIsIm5vZGVfbW9kdWxlcy9oZXhvLXRoZW1lLW5leHQvc291cmNlL2Nzcy9fY29tbW9uL2NvbXBvbmVudHMvdGhpcmQtcGFydHkvc2VhcmNoLnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX2NvbW1vbi9jb21wb25lbnRzL3RoaXJkLXBhcnR5L2luZGV4LnN0eWwiLCJub2RlX21vZHVsZXMvaGV4by10aGVtZS1uZXh0L3NvdXJjZS9jc3MvX3NjaGVtZXMvUGlzY2VzL19sYXlvdXQuc3R5bCIsIm5vZGVfbW9kdWxlcy9oZXhvLXRoZW1lLW5leHQvc291cmNlL2Nzcy9fc2NoZW1lcy9QaXNjZXMvX2hlYWRlci5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19zY2hlbWVzL1Bpc2Nlcy9fbWVudS5zdHlsIiwibm9kZV9tb2R1bGVzL2hleG8tdGhlbWUtbmV4dC9zb3VyY2UvY3NzL19zY2hlbWVzL1Bpc2Nlcy9fc3ViLW1lbnUuc3R5bCIsIm5vZGVfbW9kdWxlcy9oZXhvLXRoZW1lLW5leHQvc291cmNlL2Nzcy9fc2NoZW1lcy9HZW1pbmkvaW5kZXguc3R5bCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxBT0FBLE1QQ0UsZ0JBQWlCLEtBQ2pCLG1CQUFvQixLQUNwQixnQkFBaUIsUUFDakIsYUFBYyxLQUNkLGVBQWdCLFFBQ2hCLGtCQUFtQixLQUNuQixtQkFBb0IsS0FDcEIsYUFBYyxLQUNkLG1CQUFvQixLQUNwQixjQUFlLEtBQ2Ysb0JBQXFCLEtBQ3JCLHlCQUEwQixRQUMxQiwyQkFBNEIsUUFDNUIscUJBQXNCLFFBQ3RCLGNBQWUsS0FFZixpQkFBa0IsS0FDbEIsb0JBQXFCLEtBQ3JCLDJCQUE0QixLQUM1Qix1QkFBd0IsS0FDeEIsMEJBQTJCLEtBQzNCLGlDQUFrQyxLQUVsQyx1QkFBd0IsUUFDeEIsdUJBQXdCLFFBQ3hCLDhCQUErQixRQUMvQiw4QkFBK0IsUUFFL0IsYUFBYyxNQUlvQixtQ0FDaEMsTUFDRSxnQkFBaUIsUUFDakIsbUJBQW9CLEtBQ3BCLGdCQUFpQixLQUNqQixhQUFjLEtBQ2QsZUFBZ0IsS0FDaEIsa0JBQW1CLEtBQ25CLG1CQUFvQixLQUNwQixhQUFjLEtBQ2QsbUJBQW9CLEtBQ3BCLGNBQWUsS0FDZixvQkFBcUIsS0FDckIseUJBQTBCLFFBQzFCLDJCQUE0QixRQUM1QixxQkFBc0IsS0FDdEIsY0FBZSxLQUVmLGlCQUFrQixLQUNsQixvQkFBcUIsS0FDckIsMkJBQTRCLEtBQzVCLHVCQUF3QixLQUN4QiwwQkFBMkIsS0FDM0IsaUNBQWtDLEtBRWxDLHVCQUF3QixRQUN4Qix1QkFBd0IsS0FDeEIsOEJBQStCLFFBQy9CLDhCQUErQixRQUUvQixhQUFjLEtBR2hCLElBQ0UsUUFBUyxJQUVULFVBQ0UsUUFBUyxHQUliLE9BQ0UsYUFBYyxPQ3BFcEIsS0FDRSxZQUFhLEtBQU0sQUFDbkIseUJBQTBCLElBQU0sQ0FRbEMsS0FDRSxPQUFRLEVBTVYsS0FDRSxRQUFTLE1BT1gsR0FDRSxVQUFXLElBQ1gsT0FBUSxRQVNWLEdBQ0UsV0FBWSxZQUFhLEFBQ3pCLE9BQVEsRUFBRyxBQUNYLFNBQVUsT0FBUyxDQU9yQixJQUNFLFlBQXNCLG9CQUFhLEFBQ25DLFVBQVcsR0FBSyxDQVFsQixFQUNFLFdBQVksWUFPZCxZQUNFLGNBQWUsS0FBTSxBQUNyQixnQkFBaUIsVUFBVyxBQUM1QixnQkFBaUIsZ0JBQWtCLENBTXJDLEVBQUcsT0FDRCxZQUFhLE9BT2YsS0FBTSxJQUFLLEtBQ1QsWUFBc0Isb0JBQWEsQUFDbkMsVUFBVyxHQUFLLENBTWxCLE1BQ0UsVUFBVyxJQU9iLElBQUssSUFDSCxVQUFXLElBQ1gsWUFBYSxFQUNiLFNBQVUsU0FDVixlQUFnQixTQUdsQixJQUNFLE9BQVEsT0FHVixJQUNFLElBQUssTUFRUCxJQUNFLGFBQWMsS0FTaEIsT0FBUSxNQUFPLFNBQVUsT0FBUSxTQUMvQixZQUFhLFFBQVMsQUFDdEIsVUFBVyxLQUFNLEFBQ2pCLFlBQWEsS0FBTSxBQUNuQixPQUFRLENBQUcsQ0FPYixPQUFRLE1BQ04sQUFDQSxTQUFVLFFBT1osT0FBUSxPQUNOLEFBQ0EsZUFBZ0IsS0FNbEIsT0FBUSxnQkFBaUIsZUFBZ0IsZ0JBQ3ZDLG1CQUFvQixPQU10Qix5QkFBMEIsa0NBQW1DLGlDQUFrQyxrQ0FDN0YsYUFBYyxLQUNkLFFBQVMsRUFNWCxzQkFBdUIsK0JBQWdDLDhCQUErQiwrQkFDcEYsUUFBUyxzQkFNWCxTQUNFLFFBQVMsbUJBU1gsT0FDRSxXQUFZLFdBQVksQUFDeEIsTUFBTyxRQUFTLEFBQ2hCLFFBQVMsTUFBTyxBQUNoQixVQUFXLEtBQU0sQUFDakIsUUFBUyxFQUFHLEFBQ1osWUFBYSxNQUFRLENBTXZCLFNBQ0UsZUFBZ0IsU0FNbEIsU0FDRSxTQUFVLEtBT1osa0JBQW1CLGVBQ2pCLFdBQVksV0FBWSxBQUN4QixRQUFTLENBQUcsQ0FNZCwyQ0FBNEMsMkNBQzFDLE9BQVEsS0FPVixnQkFDRSxlQUFnQixLQUFNLEFBQ3RCLG1CQUFvQixTQUFXLENBTWpDLDJDQUNFLG1CQUFvQixLQU90Qiw2QkFDRSxLQUFNLFFBQVMsQUFDZixtQkFBb0IsTUFBUSxDQVE5QixRQUNFLFFBQVMsTUFNWCxRQUNFLFFBQVMsVUFRWCxTQUNFLFFBQVMsS0FNWCxTQUNFLFFBQVMsS0MvUlgsWUFDRSxXQUFZLG9CQUNaLE1BQU8sdUJBR1QsS0FBTSxLQUNKLE9BQVEsS0FHVixLQUNFLFdBQVkscUJBQ1osV0FBWSxXQUNaLE1BQU8sa0JBQ1AsWUFBYSxnREFDYixVQUFXLElBQ1gsWUFBYSxFQUNiLFdBQVksS0FDWixTQUFVLFNBQ1YsV0FBWSx3QkFlZCxHQUFJLEdBQUksR0FBSSxHQUFJLEdBQUksR0FDbEIsWUFBYSxnREFDYixZQUFhLEtBQ2IsWUFBYSxJQUNiLE9BQVEsWUFJUixHQUNFLFVBQWlFLE1BRG5FLEdBQ0UsVUFBaUUsUUFEbkUsR0FDRSxVQUFpRSxPQURuRSxHQUNFLFVBQWlFLFFBRG5FLEdBQ0UsVUFBaUUsSUFEbkUsR0FDRSxVQUFpRSxPQUlyRSxFQUNFLE9BQVEsU0FHVixFQUNFLGNBQWUsZUFDZixNQUFPLGtCQUVQLE9BQVEsUUFDUixRQUFTLEVBQ1QsZ0JBQWlCLEtDYWpCLGNBQWUsV0RWZixRQUNFLG9CQUFxQix3QkFDckIsTUFBTyx3QkFJWCxPQUFRLElBQUssTUFBTyxNQUNsQixRQUFTLE1BQ1QsWUFBYSxLQUNiLGFBQWMsS0FDZCxVQUFXLEtBR2IsR0FDRSxpQkFBa0IsZ0ZBQ2xCLE9BQVEsRUFDUixPQUFRLElBQ1IsT0FBUSxPQUdWLFdBQ0UsWUFBYSxlQUNiLE1BQU8sd0JBQ1AsT0FBUSxFQUNSLFFBQVMsT0FFVCx3QkFDRSxRQUFTLElBQ1QsUUFBUyxNQUliLEdBQ0UsWUFBYSxLQUdmLEdBQ0UsT0FBUSxFQUNSLFFBQVMsRUVqR1gsaUJBQ0UsU0FBVSxLQUdaLE1BQ0UsZ0JBQWlCLFNBQ2pCLGVBQWdCLEVBQ2hCLFVBQVcsT0FDWCxPQUFRLFNBQ1IsTUFBTyxLQUlQLDBCQUNFLFdBQVksOEJBR2QsZUFDRSxXQUFZLGdDQUloQixRQUFTLEdBQUksR0FDWCxRQUFTLElBR1gsR0FBSSxHQUNGLE9BQVEsZUFDUixjQUFlLGVBR2pCLEdBQ0UsWUFBYSxJQUNiLGVBQWdCLEtBR2xCLEdBQ0Usb0JBQXFCLElDckN2QixLQUNFLFdBQVksc0JBQ1osT0FBUSwwQ0FDUixjQUFlLElBQ2YsTUFBTyx5QkFDUCxRQUFTLGFBQ1QsVUFBVyxPQUNYLFlBQWEsRUFDYixRQUFTLE9BQ1QsV0FBWSxpQ0FFWixXQUNFLFdBQVksNEJBQ1osYUFBYyxzQ0FDZCxNQUFPLCtCQUdULFlBQ0UsT0FBUSxZQUdWLFlBQ0UsV0FBWSxLQUNaLE1BQWUsb0JDdkJuQixRQUNFLFlBQWEsRUFFYixxQkFDRSxXQUFZLEtBQ1osUUFBUyxNQUNULE9BQVEsSUFDUixLQUFNLEVBQ04sU0FBVSxTQUNWLElBQUssRUFDTCxXQUFZLElBQ1osb0JBQXlCLGlDQUN6QixNQUFPLEtBRVAsaUNBQ0UsV0FBWSxJQUdkLHVDQUNFLFdBQVksSUhvS2Qsa0NBQ0UsS0FBTSxJQUNOLElBQUssSUFDTCxVQUFXLGNBQ1gsTUFBTyxJQUdULGlDQUNFLEtBQU0sSUFDTixJQUFLLEtBQ0wsVUFBVyxlQUNYLE1BQU8sSUFNWCxtQ0FDRSxRQUFTLEVBY1Qsa0NBQ0UsSUFBSyxJQUNMLFVBQVcsY0FHYixpQ0FDRSxJQUFLLEtBQ0wsVUFBVyxlSTlOakI7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Q7QUFDQTtBQUNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRjtBQUNBO0FBQ0E7QUFDRTtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRTtBQUNGO0FBQ0E7QUFDQTtBQUNFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRTtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0U7QUFDRjtBQUNBO0FBQ0E7QUFDRTtBQUNGO0FBQ0E7QUFDQTtBQUNFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0U7QUFDRjtBQUNBO0FBQ0E7QUFDRTtBQUNGO0FBQ0E7QUN0RW9DLEFDUnBDLG1DQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0U7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0U7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0U7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRTtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRTtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRTtBQUNGO0FBQ0E7QUFDQTtBQUNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRjtBQUNBO0FBQ0E7QUFDRTtBQUNGO0FBQ0E7QUFDQTtBQUNFO0FBQ0Y7QUFDQTtDQzFFQSwyQkFBNEIsZ0NBQzFCLFFBQVMsRUFHWCxnQkFDRSxTQUFVLFNBR1osVUFDRSxNQUFPLEtBQ1AsT0FBUSxRQUNSLFlBQWEsSUFDYixRQUFTLEVBQ1QsUUFBUyxRQUNULFNBQVUsU0FDVixXQUFZLHdCQVNWLE1BQU8sNEJBQ1AsVUFBVyxLQUNYLE1BQU8sRUFDUCxJQUFLLElBYVAsaUJBQ0UsY0FBZSxJQUNmLFdBQVksOEJBQ1osWUFBYSxLQUViLGtDQUNFLGNBQWUsWUFHakIseUJBQ0UsV0FBWSxRQUNaLFdBQTBCLDhCQUMxQixLQUFNLEtBQ04sV0FBWSxNQUNaLFNBQVUsU1A2R2QsY0FBZSxJQUNmLFFBQVMsSUFDVCxPQUFRLEtBQ1IsTUFBTyxLS3BKVCxLRzRFQyxJQUFBLGlCQUFBLElIM0VDLFdBQVksNEJBQ1osTUFBTyw0QkFHVCxpQkd1RUMsSUhyRUMsWUFBYSxJQUNiLE9BQVEsWUFHViw0QkdpRUMsYUFBQSxlSGhFQyxXQUFZLG1DQUNaLE1BQU8sNEJBQ1AsUUFBUyxVQUNULFVBQVcsT0FDWCxZQUFhLElBQ2IsUUFBUyxLQUVULDhEQUNFLE1BQU8sNEJBQ1AsTUFBTyxNQUVQLGdGQUNFLG9CQUFxQiw0QkFLM0IsSUFBSyxLQUNILFlBQWEseUVBR2YsS0FFRSxjQUFlLElBQ2YsVUFBVyxPQUNYLFFBQVMsUUxjVCxjQUFlLFdLVmpCLElBRUUsT0FBUSxlQUNSLGNBQWUsS0FDZixXQUFZLCtCQUNaLFlBQWEsUUFDYixRQUFTLFVBQ1QsWUFBYSxPQUtmLGlCQUdFLFNBQVUsS0FDVixTQUFVLFNBRVYscUJBQ0UsT0FBUSxFQUNSLE9BQVEsRUFDUixRQUFTLE9BR1gsdUJBQ0UsT0FBUSxFQUNSLE9BQVEsRUFDUixNQUFPLEtBR1Qsb0JBQ0UsT0FBUSxFQUNSLFFBQVMsRUFPWCx5Qkx6QkEsaUJBQWtCLEtBQ2xCLGdCQUFpQixLQUNqQixvQkFBcUIsS0FDckIsWUFBYSxLS3lCWCw2QkFDRSxXQUFZLG1DQUNaLE1BQU8sbUNBQ1AsYUFBYyxLQUNkLGNBQWUsS0FDZixXQUFZLE1BSWhCLDJCQUNFLGFBQWMsS0FDZCxNQUFPLEtBSVQseUJBQ0UsV0FBWSxnQkFLaEIsYUFBYyxlQUVaLGNBQWUsS0FHakIsWUFDRSxNQUFPLEtBRVAsZUFDRSxPQUFRLEVBSVosSUFFRSxTQUFVLEtBQ1YsUUFBUyxLQUVULFNBQ0UsV0FBWSxLQUNaLFFBQVMsRUFDVCxZQUFhLEtJOUlqQixtQkFDRSxZQUFhLEVBQ2IsT0FBUSxPQUNSLFFBQVMsRUFDVCxTQUFVLFNBQ1YsV0FBWSxPQUVaLDJCQUFXLDBCQUNULEtBQU0sRUFDTixZQUFhLEVBQ2IsUUFBUyxHQUNULFNBQVUsU0FDVixNQUFPLEtBR1QsMkJBQ0UsV0FBWSxlQUNaLFdBQVksS0FDWixJQUFLLE1UOEZMLFFBQVMsUUFFWCxZQUFhLHNCQUNiLFlBQWEsSVM3RmIsMEJBQ0UsY0FBZSxlQUNmLE9BQVEsTUFDUixXQUFZLE1UdUZaLFFBQVMsUUFFWCxZQUFhLHNCQUNiLFlBQWEsSVN0RmIscUJBQUcsdUJBQ0QsV0FBWSxPQy9CaEIsZUFDRSxjQUFlLEtBRWYsa0NBQ0UsUUFBUyxLQUNULElBQUssSUFDTCxjQUFlLElBR2pCLHFDQUNFLEtBQU0sRUFFTix5Q0FDRSxPQUFRLEtBQ1IsT0FBUSxFQUNSLFdBQVksTUFDWixNQUFPLEtDaEJiLGtCQUNFLE1BQU8sS0FDUCxRQUFTLE1BR1AsMEJBQ0UsV0FBbUIsUUFEckIsMEJBQ0UsV0FBbUIsUUFEckIsdUJBQ0UsV0FBbUIsUUFEckIsMEJBQ0UsV0FBbUIsUUFEckIsMEJBQ0UsV0FBbUIsUUFEckIseUJBQ0UsV0FBbUIsUUNOekIsc0JBQ0UsUUFBUyxLQUVULFNBQVUsT0FDVixJQUFLLE9BQ0wsc0JBQXVCLFFBQ3ZCLGNBQWUsS0FDZixRQUFTLEtaTWUseUJBQUEsc0JZSHRCLHNCQUF1QixLQUd6QiwyQ0FDRSxPQUFRLFdBQ1IsV0FBWSxnQ0FDWixXQUFZLEtBRVosVUFBVyxFQUNYLFFBQVMsTUFDVCxTQUFVLFNBQ1YsV0FBWSxlQUVaLGlEQUNFLFVBQVcsZUFDWCxXQUFZLHFCQUdkLGtEQUNFLFdBQVksbUNBQ1osVUFBVyx1QkFHYiw0REFDRSxPQUFRLGVBQ1IsY0FBZSxJQUNmLFdBQVksV0FDWixPQUFRLEtBQ1IsUUFBUyxJQUNULFNBQVUsU0FDVixNQUFPLEtBR1QsNkNBQ0UsT0FBUSxjQUVSLDJEQUNFLFVBQVcsTUFHYiwwREFDRSxVQUFXLEtBQ1gsWUFBYSxPQUNiLFFBQVMsR0FJYiw2Q0FDRSxPQUFRLEVBQ1IsT0FBUSxLQUNSLEtBQU0sRUFDTixTQUFVLFNBQ1YsSUFBSyxFQUNMLE1BQU8sS0FLYixzQkFDRSxHQUNFLFVBQVcsZ0NBR2IsSUFDRSxVQUFXLG1DQUdiLElBQ0UsVUFBVywrQkFHYixJQUNFLFVBQVcsZ0NBR2IsSUFDRSxVQUFXLGlDQUdiLElBQ0UsVUFBVyxrQ0FHYixJQUNFLFVBQVcsaUNBR2IsSUFDRSxVQUFXLGlDQUdiLElBQ0UsVUFBVyxrQ0FHYixJQUNFLFVBQVcsZ0NBR2IsS0FDRSxVQUFXLG1DQzdHYixVQUNFLGNBQWUsS0FDZixXQUFZLE9DRmQsaUJBSUUsY0FBZSxJQUNmLGNBQWUsS0FDZixRQUFTLElBQ1QsU0FBVSxTQUdSLE9BQVEsZUFDUixrQkFBbUIsSUFjckIseUJBQ0UsT0FBUSxRQUNSLFFBQVMsRUFFVCwyQkFDRSxRQUFTLE9BSWIsb0JBQUksb0JBQUksb0JBQUksb0JBQUksb0JBQ2QsY0FBZSxRQUNmLE9BQVEsRUFDUixZQUFhLEVBR2YsOEJBQ0UsV0FBWSxFQUdkLDZCQUNFLGNBQWUsRUFJZiwrQkFDRSxhQUFjLE1BRWQsdUNBQ0UsVUFBVyxNQUNYLEtBQU0sS0FDTixTQUFVLFNBQ1YsSUFBSyxnQkFNVCx5QkE2Q0ksa0JBQWdDLEtBRWhDLDRCQUFJLDRCQUFJLDRCQUFJLDRCQUFJLDRCQUNkLE1BQWtCLEtBS3BCLCtDZEhOLFFBQVMsUUFFWCxZQUFhLHNCQUNiLFlBQWEsSWNJRCxNQUFrQixLQXpEMUIseUJBNkNJLGtCQUFnQyxRQUVoQyw0QkFBSSw0QkFBSSw0QkFBSSw0QkFBSSw0QkFDZCxNQUFrQixRQUtwQiwrQ2RITixRQUFTLFFBRVgsWUFBYSxzQkFDYixZQUFhLEljSUQsTUFBa0IsUUF6RDFCLHNCQTZDSSxrQkFBZ0MsUUFFaEMseUJBQUkseUJBQUkseUJBQUkseUJBQUkseUJBQ2QsTUFBa0IsUUFLcEIsNENkSE4sUUFBUyxRQUVYLFlBQWEsc0JBQ2IsWUFBYSxJY0lELE1BQWtCLFFBekQxQix5QkE2Q0ksa0JBQWdDLFFBRWhDLDRCQUFJLDRCQUFJLDRCQUFJLDRCQUFJLDRCQUNkLE1BQWtCLFFBS3BCLCtDZEhOLFFBQVMsUUFFWCxZQUFhLHNCQUNiLFlBQWEsSWNJRCxNQUFrQixRQXpEMUIseUJBNkNJLGtCQUFnQyxRQUVoQyw0QkFBSSw0QkFBSSw0QkFBSSw0QkFBSSw0QkFDZCxNQUFrQixRQUtwQiwrQ2RITixRQUFTLFFBRVgsWUFBYSxzQkFDYixZQUFhLEljSUQsTUFBa0IsUUF6RDFCLHdCQTZDSSxrQkFBZ0MsUUFFaEMsMkJBQUksMkJBQUksMkJBQUksMkJBQUksMkJBQ2QsTUFBa0IsUUFLcEIsOENkSE4sUUFBUyxRQUVYLFlBQWEsc0JBQ2IsWUFBYSxJY0lELE1BQWtCLFFDeEhoQyxpQkFDRSxjQUFlLEtBR2pCLGlCQUFrQixjQUNoQixZQUFhLEtBRWIsdURBQ0UsV0FBd0csd0JBQ3hHLFFBQVMsS2ZxRlgsUUFBUyxLQUNULFVBQVcsS0FDWCxnQkFBaUIsT2VyRmYsT0FBUSxFQUNSLFFBQVMsRUFDVCxTQUFVLGVBQ1YsU0FBVSxPQUNWLElBQUssRUFFTCxRQUFTLEVmaEJhLHlCQUFBLHVEZW1CcEIsUUFBUyxNQUNULGNBQWUsS0FHakIscUVBQ0UsY0FBZSxlQUNmLFlBQWEsc0JBQ2IsYUFBYyxzQkFDZCxjQUFlLFFBQ2YsV0FBWSxzQkFDWixVQUFXLEVBQ1gsZ0JBQWlCLEtmOUJHLHlCQUFBLHFFZWlDbEIsY0FBZSxzQkFDZixZQUFhLHNCQUNiLGFBQWMsc0JBQ2QsV0FBWSx1QmZwQ00seUJBQUEscUVld0NsQixjQUFlLEdBT2pCLHlFQUNFLGNBQWUsUUFDZixRQUFTLE1BQ1QsWUFBYSxJQUNiLFFBQVMsWUFDVCxXQUFZLE9BT1YsV0FBWSxpQkFMZCx1R0FDRSxNQUFlLG9CQVFuQixtRkFDRSxvQkFBcUIsWUFDckIsa0JBQW1CLEtBQ25CLG1CQUFvQixLQUNwQixpQkFBa0IsUWZuRUEseUJBQUEsbUZlc0VoQixvQkFBcUIsS0FDckIsa0JBQW1CLFFBQ25CLG1CQUFvQixLQUNwQixpQkFBa0IsTUFHcEIsdUZBQ0UsT0FBUSxRQU1oQix5REFDRSxPQUFRLGVBQ1IsY0FBZSxRQUNmLGlCQUFrQixZZnRGSSx5QkFBQSx5RGV5RnBCLGNBQWUsRUFDZixpQkFBa0IsTUFHcEIsNkVBQ0UsUUFBUyxZQUVULHVHQUNFLFFBQVMsS0NsR2pCLGtCUjhGQyxrQkFBQSx5QkFBQSxtQlE3RkMsUUFBUyxhQUNULE9BQVEsWUFDUixRQUFTLE9oQlVlLHlCQUFBLGtCUWlGekIsa0JBQUEseUJBQUEsbUJReEZHLE9BQVEsT0FJWixpQ0FDRSxXQUFZLEtBQ1osYUFBYyxLQUNkLE1BQU8sd0JBR1QsWUFDRSxXQUFZLGVBQ1osT0FBUSxVQUNSLFdBQVksT0FFWixrQkFBTyxrQkFBTyx5QkFFWixjQUFlLEVBQ2YsV0FBWSxlQUNaLFdBQVksNkJBRVosK0VBQ0UsaUJBQWtCLHdCaEJmRSx5QkFBQSxZZ0JvQnRCLFdBQVksRUFFWixrQkFBTyxrQkFBTyx5QkFDWixjQUFlLGVBQ2YsV0FBWSxFQUVaLCtFQUNFLG9CQUFxQix5QkFLM0IsbUJBRUUsT0FBUSxFQUNSLFFBQVMsRUNoRGIsVUFDRSxXQUFZLEtBQ1osU0FBVSxPQUdaLHNCQUNFLFFBQVMsS2pCd0ZULFFBQVMsS0FDVCxVQUFXLEtBQ1gsZ0JBQWlCLE9pQnhGakIsZ0JBQWlCLE9BQ2pCLE9BQVEsTUFFUixzQ0FDRSxPQUFRLFVBRVIsNkNBQ0UsV0FBWSw0QkFDWixhQUFjLHNDQUNkLE1BQU8sK0JBS2Isa0JBQ0UsUUFBUyxLQUVULHlCQUNFLFFBQVMsTUFJYixjQUNFLFdBQVksSUFDWixZQUFhLEVBRWIsd0JBQ0UsV0FBWSxFQUNaLFlBQWEsRUNsQ2pCLFVBQ0UsV0FBWSxtQkFDWixPQUFRLElsQmVnQix5QkFBQSxVa0JadEIsUUFBUyxNQUliLHNCQUNFLFFBQVMsS0FDVCxZQUFhLEVBQ2IsUUFBUyxPQUlULG9CQUFTLDBDQUNQLFFBQVMsRUNuQmIsV0FDRSxVQUFXLEVBQ1gsV0FBWSxPbkJXWSx5QkFBQSxXbUJSdEIsV0FBWSxRQUloQixtQkFDRSxXQUFZLEtuQlNZLHlCQUFBLG1CbUJOdEIsUUFBUyxNQUliLE9BQ0UsY0FBZSxFQUNmLE1BQU8sbUJBQ1AsUUFBUyxhQUNULFFBQVMsRUFFVCxhQUNFLE1BQU8seUJBSVgsWUFDRSxZQUFhLDhEQUNiLFVBQVcsUUFDWCxZQUFhLE9BQ2IsWUFBYSxJQUNiLE9BQVEsRUFHVixlQUNFLE1BQU8sS0FDUCxVQUFXLFFBQ1gsT0FBUSxZQUlSLHdCQUFhLDJCQUFnQiwrQkFDM0IsUUFBUyxFQUNULFNBQVUsU0FDVixJQUFLLE1DOUNULGlCQUFrQixnQkFDaEIsUUFBUyxLcEJZZSx5QkFBQSxpQ0F1RnhCLFFBQVMsS0FDVCxlQUFnQixPQUNoQixnQkFBaUIsUW9CL0ZqQixpREFDRSxNQUFPLGtCQUNQLFFBQVMsS0FDVCxNQUFPLEtBRVAsMkVBQ0UsV0FBWSxrQkFDWixjQUFlLElwQkRLLHlCQUFBLFVBdU54QixnQkFBaUIsRUFDakIsT0FBUSxFQUNSLFNBQVUsT0FDVixXQUFZLGdCQUNaLG9CQUEyQixrQkFDM0IsV0FBWSxPQUVaLDJDQUNFLFVBQVcsS0FHYiwyQkFDRSxPQUFRLHFCQUNSLFdBQVksT3FCL09oQixNQUNFLE9BQVEsRUFDUixRQUFTLE1BQ1QsV0FBWSxPQUdkLFdBQ0UsUUFBUyxhQUNULFdBQVksS0FDWixPQUFRLE9yQkVnQix5QkFBQSxXcUJDdEIsUUFBUyxNQUNULFdBQVksS0FFWiw0QkFDRSxRQUFTLE1BSWIsYUFDRSxjQUFlLEVBQ2YsUUFBUyxNQUNULFVBQVcsUUFDWCxXQUFZLDZCQUVaLG1CQUFTLDhCQUNQLFdBQVksMEJBSWhCLDBCQUNFLGFBQWMsSUFHaEIsa0JyQjJQQSxXQUFZLEtBQ1osY0FBZSxLQUNmLE1BQU8sd0JBQ1AsWUFBYSxLQUNiLFlBQWEsRUFDYixZQUFhLE1BQ2IsUUFBUyxRQUNULFlBQWEsMEJxQjVQYix1QkFDRSxXQUFZLE9DNUJaLGdDQUNFLFVBQVcsK0JBR2IsbUJBQ0UsTUFBTyxLQUNQLEtBQU0sbUJBQ04sU0FBVSxTQUNWLE1BQU8sRUFDUCxJQUFLLEVBQ0wsUUFBUyxFdEJQVyx5QkFBQSxlc0JZbEIsUUFBUyxLQUdYLG1CQUVJLE1BQU8sbUJBQ1AsS0FBTSxLQUlWLDhDQUNFLFVBQVcsS0FHYix3Q0FDRSxVQUFXLGdDQTdDakIsd0JBQ0UsR0FBSSxLQUNGLFVBQVcsVUFHYixJQUFLLElBQ0gsVUFBVyxlQUdiLElBQUssSUFDSCxVQUFXLGV0QlFTLHlCdUJUdEIsU0FDRSxLQUFVLE9BRVYseUJBQ0UsS0FBTSxFQUtaLFNBQ0UsV0FBWSxLQUNaLE9BQVEsRUFJUixXQUFZLE1BQ1osV0FBWSxLQUNaLFNBQVUsTUFDVixJQUFLLEVBQ0wsV0FBWSxhQUNaLG9CQUF5QixXQUN6QixNQUFPLE1BQ1AsUUFBUyxHQUVULFdBQ0Usb0JBQXFCLEtBQ3JCLE1BQU8sS0FFUCxpQkFDRSxvQkFBcUIsS0FDckIsTUFBTyxLQU1YLG1DQUNFLFdBQVksS0FHZCxtQkFDRSxvQkFBcUIsS0FDckIsUUFBUyxhQUNULGNBQWUsS0FDZixhQUFjLEtBQ2QsZUFBZ0IsT0FHZCxXQUFZLG9CQUdkLDJCQUNFLFdBQVksUUFDWixRQUFTLGFBQ1QsYUFBYyxJQUNkLFVBQVcsaUJ2QmtHakIsY0FBZSxJQUNmLFFBQVMsSUFDVCxPQUFRLElBQ1IsTUFBTyxJdUIvRlAsd0JBRUksUUFBUyxhQUVYLFFBQVMsU0FFVCwwQkFDRSxXQUFZLFdBQ1osUUFBUyxhQUNULFVBQVcsTUFDWCxTQUFVLE9BQ1YsY0FBZSxTQUNmLFlBQWEsT0FJakIsNkRBQ0UsV0FBWSxLQUdkLGdCQUNFLFdBQVksS0FDWixPQUFRLEtBQ1IsS0FBTSxFQUNOLFFBQVMsRUFDVCxTQUFVLE1BQ1YsSUFBSyxFQUNMLFdBQTBCLDJCQUMxQixXQUFZLE9BQ1osTUFBTyxLQUNQLFFBQVMsR0FFVCxnQ0FDRSxRQUFTLEdBQ1QsV0FBWSxTQUtsQixlQUNFLE1BQU8sS0FDUCxRQUFTLFVBQ1QsV0FBWSxPdkJiWixRQUFTLEtBQ1QsZUFBZ0IsT0FDaEIsZ0JBQWlCLE91QmdCakIsd0JBQ0UsY0FBZSxFQUNmLFFBQVMsR0FFVCw4QkFDRSxRQUFTLEdBSWIsZ0JBQ0UsUUFBUyxhQ2hJYixtQkFDRSxPQUFRLGVBQ1IsVUFBVyxNQUNYLFFBQVMsSUFHUCxjQUFlLElBSWYsV0FBWSxzQkFFWix5QkFDRSxVQUFXLGdCQUtqQixrQkFDRSxNQUFPLGtCQUNQLFlBQWEsSUFDYixPQUFRLEVBR1Ysa0JBQ0UsTUFBTyxLQUNQLFVBQVcsUUFDWCxXQUFZLEVDMUJaLG1CQUNFLFVBQVcsUUFJWCxnQ0FDRSxhQUFjLElDTmxCLDJDQUNFLFdBQVksS0FHZCxnQzFCaVBBLFdBQVksWUFDWixNQUFPLFFBQ1AsT0FBUSxRQUNSLFlBQWEsRUFDYixRQUFTLE8wQm5QUCxPQUFRLGtCQUNSLGNBQWUsSTFCb1BqQixzQ0FDRSxXQUFZLFFBQ1osTUFBTyxLMEJwUFAsK0NBQ0UsYUFBYyxJQ1hwQixtQkFDRSxVQUFXLFFBR2IseUJBQ0UsVUFBVyxPQUNYLFlBQWEsSUFHZix3QkFDRSxXQUFZLEtBQ1osT0FBUSxFQUNSLFFBQVMsRUNYWCxhQUNFLFVBQVcsT0FDWCxPQUFRLEVBQ1IsT0FBUSxFQUNSLFNBQVUsT0FDVixhQUFjLEVBQ2QsZUFBZ0IsS0FDaEIsV0FBWSxnQkFDWixvQkFBMkIsa0JBQzNCLFdBQVksT0FFWixpQ0FDRSxPQUE2QixnQkFDN0IsZUFBZ0IsTUFDaEIsV0FBWSxNQUdkLGdCQUNFLGNBQWUsc0JBQ2YsTUFBTyxrQkFDUCxPQUFRLFFBQ1IsUUFBUyxhQUNULFdBQVksZ0JBQ1osb0JBQXdDLDBCQUV4QyxxQ0FDRSxZQUFhLEtBR2Ysc0JBQ0UsTUFBTyxRQUtiLHFDQUFzQywrQ0FDcEMsb0JBQXFCLFFBQ3JCLE1BQU8sUUFDUCxpQkFBa0IsSUFFbEIsZ0dBQ0UsTUFBTyxRQUtYLHlCQUNFLFlBQWEsTUFDYixRQUFTLEtBQ1QsS0FBTSxFQUNOLFdBQVksT0FDWixXQUFZLEtBQ1osWUFBYSxFQUNiLFdBQVksNEJBRVosNkNBQ0UsWUFBYSxLQUlqQixlQUNFLFVBQVcseUNBQ1gsVUFBVyxJQUNYLE9BQVEsRUFDUixRQUFTLEVBQ1QsU0FBVSxPQUNWLGVBQWdCLEtBQ2hCLFVBQVcsY0FDWCxXQUFZLGdCQUNaLGlCQUFrQixHQUNsQixvQkFBNEIsNkJBQzVCLFdBQVksT0FLWixtQ0FDRixzREFDSSxVQUFXLGtCQU9iLCtFQUNFLGlCQUFvQixVQUd0QiwyREFDRixpREFDSSxlQUFnQix1QkFDaEIsT0FBUSxLQUNSLFFBQVMsRUFDVCxlQUFnQixNQUNoQixVQUFXLGNBR1gsaUJBQXNDLFdBQ3RDLFdBQVksTUFHZCxrQzVCSEEsUUFBUyxLQUNULGVBQWdCLE9BQ2hCLGdCQUFpQixPNEJLZixJQUFLLEtBQ0wsZ0JBQWlCLFdBSXJCLG9DQUNFLEtBQ0UsT0FBUSwrQkFFVixHQUNFLE9BQVEsOEJBSVosa0NBQ0UsS0FDRSxPQUFRLGtDQUVWLEdBQ0UsT0FBUSxpQ0M5SFosZ0JBQ0UsT0FBeUQsS0FDekQsT0FBUSxLQUNSLFFBQVMsSUFDVCxNQUFPLEs3QjhJUCxXQUFZLEtBQ1osT0FBUSxRQUNSLFFBQVMsR0FDVCxTQUFVLE1BQ1YsUUFBUyxHQVhFLEtBQUcsS0F4SFUseUJBQUEsZ0JBMEhYLEtBQUcsTUFZaEIsc0JBQ0UsUUFBUyxHQXZJYSx5QkFBQSxnQkEySXRCLFFBQVMsSTZCdEpiLG1DQUNFLFdBQVksUUFHVSx5QjdCMktwQiw2REFDRSxLQUFNLElBQ04sSUFBSyxJQUNMLFVBQVcsY0FDWCxNQUFPLElBR1QsNERBQ0UsS0FBTSxJQUNOLElBQUssS0FDTCxVQUFXLGVBQ1gsTUFBTyxLQU1YLDhDQUNFLFFBQVMsRUFjVCw2Q0FDRSxJQUFLLElBQ0wsVUFBVyxjQUdiLDRDQUNFLElBQUssS0FDTCxVQUFXLGU4QjdOZixVQUNFLFVBQVcsT0FFWCxhQUNFLFdBQVksS0FDWixPQUFRLEVBQ1IsUUFBUyxhQUNULFdBQVksS0FFWiwyQkFDRSxjQUFlLElBR2pCLGtCQUNFLGFBQWMsRUFHaEIsZUFDRSxXQUFZLG9CQUloQixvQkFDRSxZQUFhLElBQ2IsU0FBVSxPQUNWLGNBQWUsU0EwQmYsMkJBQ0Usb0JBQXFCLFFBQ3JCLE1BQU8sUUFHVCxtQ0FDRSxNQUFPLFFBRVAseUNBQ0UsTUFBTyxRQzVEZixZL0I2RkEsUUFBUyxLQUNULFVBQVcsS0FDWCxnQkFBaUIsTytCN0ZmLFlBQWEsSUFHZixpQkFHRSxRQUFTLE9BRVQsbUJBQ0UsY0FBZSxFQUNmLFFBQVMsTUFJYix1QkFDRSxRQUFTLE1BQ1QsVUFBVyxJQUNYLFlBQWEsSUFHZixzQkFDRSxNQUFPLEtBQ1AsVUFBVyxRQ3hCYixzQkFDRSxVQUFXLFFBQ1gsUUFBUyxXQUdYLGVBQ0UsT0FBUSxFQUNSLFFBQVMsTUFDVCxXQUFZLEtBRVosbUNBQ0UsUUFBUyxNQUVULHVEQUNFLGNBQWUsRUFDZixRQUFTLE1BQ1QsUUFBUyxTQUNULFdBQVksMkJBRVosNkRBQ0UsV0FBWSwwQkFJaEIsdURBQ0UsTUFBTyxLQ3hCZixRQUNFLE1BQU8sS0FDUCxVQUFXLE9BQ1gsUUFBUyxPQUNULFdBQVksZ0JBQ1osb0JBQXlCLFdBRXpCLHFCQUNFLE9BQVEsRUFDUixLQUFNLEVBQ04sU0FBVSxTQUNWLE1BQU8sRUFNWCxjQUNFLFdBQVksV0FDWixXQUFZLE9qQytFWixRQUFTLEtBQ1QsZUFBZ0IsT0FDaEIsZ0JBQWlCLE9Ba0JqQixPQUFRLE9BQ1IsTUFBTyxrQkE1R2lCLHlCQUFBLGNBK0d0QixNQUFPLE1BakZnQiwwQkFBQSxjQXFGdkIsTUFBTyxRQS9FZ0IsMEJBQUEsY0FtRnZCLE1BQU8sS2lDekdULG9CQUNFLFFBQVMsRUFzQmIsV0FDRSxRQUFTLGFBQ1QsVUFBVyxRQUNYLFNBQVUsU0FFVixtQ0FDRSxPQUFRLE9BR1Ysd0JBQ0UsT0FBUSxLQUNSLEtBQU0sRUFDTixRQUFTLEVBQ1QsU0FBVSxTQUNWLElBQUssRUFDTCxNQUFPLEtBSVgsV0FDRSxNQUFPLEtBQ1AsUUFBUyxhQUNULE9BQVEsTUFHTixVQUFXLHdDQWVULDRDQUNFLFFBQVMsS0FLWCw0Q0FDRSxRQUFTLEtBakVqQix3QkFDRSxHQUFJLEtBQ0YsVUFBVyxTQUdiLElBQUssSUFDSCxVQUFXLFVBR2IsSUFBSyxJQUFLLElBQUssSUFDYixVQUFXLFdBR2IsSUFBSyxJQUNILFVBQVcsWUM3Q2IsYUFDRSxVQUFXLEtBZVQsT0FBOEIsZ0JBRTlCLFFBQVMsRUFDVCxXQUFZLHdCQWhCZCxrQkFDRSxhQUFjLElBTWhCLGlCQUNFLFdBQVksT0FDWixNQUFPLEtBU1AsNEJBQ0UsT0FBUSxRQUNSLFFBQVMsR0FFVCxrQ0FDRSxRQUFTLEdDekJmLGlCQUFHLGlCQUFHLGtCQUFJLGtCQUFJLGtCQUFJLGtCQUFJLGtCQUFJLGtCQUFJLGtCQUFJLGtCQUFJLGtCQUNwQyxVQUFXLElBQ1gsWUFBYSxXQUlqQixnQkFDRSxZQUFhLFdBSWpCLGFBQ0UsV0FBWSxLQUNaLFdBQVksT0FLVix3QkFBYSx3QkFBYSxzQkFDeEIsV0FBWSxPQUtkLHlCQUNFLFdBQVksT0FLZCx1QkFDRSxXQUFZLE9BS2QsK0JBQ0UsV0FBWSxPQ3ZDbEIsOEJBQ0UsY0FBZSxLQUNmLFlBQWEsS0FDYixTQUFVLFNwQ1VjLHlCQUFBLDhCb0NQdEIsWUFBYSxFQUNiLGFBQWMsR0FHaEIsZ0RBQ0UsVUFBVyxRQUNYLFNBQVUsU0FFVix3REFDRSxXQUFZLEtBQ1osT0FBUSxlQUNSLFlBQWEsS0FDYixXQUFZLEtBQ1osU0FBVSxTQUNWLElBQUssSXBDK0lULGNBQWUsSUFDZixRQUFTLElBQ1QsT0FBUSxLQUNSLE1BQU8sS29DN0lQLCtDQUNFLFVBQVcsTUFDWCxZQUFhLEtBQ2IsT0FBUSxPQUNSLFNBQVUsU0FFVixzRUFDRSxVQUFXLE1wQ2dRZixXQUFZLEtBQ1osY0FBZSxLQUNmLE1BQU8sd0JBQ1AsWUFBYSxLQUNiLFlBQWEsRUFDYixZQUFhLE1BQ2IsUUFBUyxRQUNULFlBQWEsMEJvQ25RWCx1REFDRSxXQUFZLEtBQ1osWUFBYSxLQUNiLFdBQVksS0FDWixTQUFVLFNBQ1YsSUFBSyxJcEMwSFQsY0FBZSxJQUNmLFFBQVMsSUFDVCxPQUFRLElBQ1IsTUFBTyxJb0N4SFAsaURBQ0UsUUFBUyxNQUNULFlBQWEsS0FFYix1REFDRSxNQUFPLEtBQ1AsWUFBYSxJQUlqQiwyQ0FDRSxjQUFlLGdCQUVmLE9BQVEsV0FDUixhQUFjLEtBQ2QsU0FBVSxTQUNWLFdBQVksdUJBRVosbURBQ0UsV0FBWSxLQUNaLE9BQVEsZUFDUixLQUFNLEtBQ04sU0FBVSxTQUNWLElBQUssTUFDTCxXQUFZLDJCcEM2RmhCLGNBQWUsSUFDZixRQUFTLElBQ1QsT0FBUSxJQUNSLE1BQU8sSW9DNUZMLGlEQUNFLG9CQUFxQixLQUVyQix5REFDRSxXQUFZLEtBS2xCLG1EQUNFLFFBQVMsT0FDVCxVQUFXLE1BQ1gsYUFBYyxLQUdoQiwwQ0FDRSxRQUFTLE9BRVQsNENBQ0UsY0FBZSxFQUNmLE1BQU8sa0JBR1QsOENBQ0UsVUFBVyxPQUNYLFlBQWEsSUFJakIsc0NBQ0UsV0FBWSxRQUNaLFFBQVMsSUFDVCxPQUFRLEtBQ1IsWUFBYSxLQUNiLFNBQVUsU0FFVixJQUFLLE9BQ0wsTUFBTyxJQy9HWCxXQUNFLFlBQWEsZ0VyQ29FYixjQUFlLFdBMUJVLDBCQUFBLFdxQ3RDdkIsVUFBVyxTckNnQ1cseUJBQUEsV3FDNUJ0QixXQUFZLFNyQ1VVLHlCQUFBLFdxQ050QixXQUFZLFNBS1osNkJBQWdCLDZTQUNkLG9CQUFxQixLQUNyQixNQUFPLFFBQ1AsTUFBTyxNQUNQLFVBQVcsT0FDWCxZQUFhLEtBQ2IsUUFBUyxFQUVULDBhckN1RkYsUUFBUyxRQUVYLFlBQWEsc0JBQ2IsWUFBYSxJcUNwRlQsbUNBQWdCLCtXQUNkLFFBQVMsR0FFVCwwZEFDRSxRQUFTLEVBTWpCLHVCQUNFLFVBQVcsT0FDWCxZQUFhLElBSWYsNEJBQWtCLGtDQUNoQixNQUFPLEtBQ1AsVUFBVyxPQUNYLFlBQWEsS0FDYixZQUFhLEVBQ2IsT0FBUSxnQkFDUixXQUFZLE9BR2Qsa0JBQVEsZUFBSyxpQkFBTyxpQkFDbEIsY0FBZSxLQUdqQiw0QkFDRSxPQUFRLEVBQ1IsY0FBZSxLQUNmLFNBQVUsT0FDVixZQUFhLElBQ2IsU0FBVSxTQUNWLE1BQU8sS0FFUCxtQ0FBUSxtQ0FBUSxrQ0FDZCxPQUFRLEtBQ1IsS0FBTSxFQUNOLE9BQVEsRUFDUixTQUFVLFNBQ1YsSUFBSyxFQUNMLE1BQU8sS0MzRWIsY0FDRSxRQUFTLEtBQ1QsV0FBWSxNQUVaLGtDQUNFLEtBQU0sRUFFTixvREFDRSxVQUFXLHdDQUNYLFlBQWEsTUFHZixtREFDRSxhQUFjLE1BR2hCLHNDQUNFLE9BQVEsS0FDUixXQUFZLE1BRVosUUFBUyxFQUNULE1BQU8sS0FLYiw0QkFDRSxjQUFlLEtBR2pCLDhCQUNFLE9BQVEsT0MvQlYsMkJBQ0UsVUFBVyxRQUNYLGNBQWUsS0FDZixXQUFZLE9BR2QsMEJBQ0UsVUFBVyxNQUNYLFlBQWEsT0FDYixPQUFRLFF2QzREUixjQUFlLFd1Q3hEYiwwQ0FDRSxjQUFlLEVBQ2YsTUFBTyxLQUNQLE1BQU8sTUFDUCxVQUFXLE9BQ1gsWUFBYSxPQUNiLFdBQVksa0J2Q1pRLHlCQUFBLDBDdUNlbEIsWUFBYSxTQUdmLGdEQUNFLE1BQU8sUUFNZiwrQkFDRSxjQUFlLEVBQ2YsTUFBTyxrQkFDUCxRQUFTLGFBQ1QsU0FBVSxTQUVWLHVDQUNFLFdBQVksa0JBQ1osT0FBUSxFQUNSLFFBQVMsR0FDVCxPQUFRLElBRVIsS0FBTSxFQUNOLFNBQVUsU0FDVixVQUFXLFVBQ1gsV0FBWSwwQkFDWixNQUFPLEtBR1QsNkNBQ0UsVUFBVyxVQUdiLG1DQUNFLFVBQVcsT0FDWCxZQUFhLElBSWpCLGtCQUNFLFFBQVMsYUFFVCxhQUFjLElBQ2QsVUFBVyxjQUdiLG1DQUNFLE1BQU8sS0FDUCxZQUFhLGdFQUNiLFVBQVcsTUFDWCxXQUFZLElBRVoscURBQ0UsVUFBVyxPQUNYLFdBQVksSUFHZCx3Q0FDRSxjQUFlLGdCQU1uQixXdkNRRSxRQUFTLEtBQ1QsVUFBVyxLQUNYLGdCQUFpQixPdUNMbkIsaURBQ0UsUUFBUyxJQUNULE9BQVEsT0FHVixxQkFDRSxhQUFjLEl2QzlFVSx5QkFBQSxxQnVDdUZ0QixRQUFTLE1BSWIsaUJBQ0UsV0FBWSxLQUNaLE9BQVEsRUFJUiw0QkFDRSxRQUFTLEtDckhiLFVBQ0UsV0FBWSxlQUNaLFFBQVMsS0FDVCxJQUFLLEtBQ0wsZ0JBQWlCLGNBQ2pCLFdBQVksSUFDWixRQUFTLFdBR1gsZUFDRSxLQUFNLEVBRU4saUJBQ0UsY0FBZSxFQUNmLFFBQVMsTUFDVCxVQUFXLE9BQ1gsWUFBYSxJQUViLHdCQUNFLElBQUssSUFJVCxtQkFDRSxVQUFXLE1BSVgsK0JBQ0UsYUFBYyxJQUlsQiwwQkFDRSxXQUFZLE1BRVosOEJBQ0UsWUFBYSxJQ2hDbkIsYXpDK0ZFLFFBQVMsS0FDVCxlQUFnQixPQUNoQixnQkFBaUIsT3lDN0ZuQixVQUNFLFdBQVksS0FDWixPQUFRLElBQ1IsT0FBUSxlQUNSLE1BQU8sR0FFUCxtQ0FDRSxRQUFTLEtBS1gsbUJBQ0UsV0FBWSxLQUNaLFNBQVUsT0FDVixRQUFTLFNBQ1QsU0FBVSxTekNpRlosV0FBWSxxQkFDWixZQUFhLGtCQUNiLE9BQVEsUXlDaEZOLDBCQUNFLFFBQVMsUUFDVCxZQUFhLHdCQUNiLFVBQVcsTUFDWCxRQUFTLEdBQ1QsU0FBVSxTQUNWLE1BQU8sTUFDUCxJQUFLLE9BS1gsV0FDRSxXQUFZLEtBQ1osV0FBWSxPQUVaLGFBQ0UsUUFBUyxhQUNULFVBQVcsUUFFWCw4QkFDRSxhQUFjLEtDakRwQixhQUNFLFdBQVksZUFDWixVQUFXLE9BQ1gsV0FBWSxJQUNaLFlBQWEsSTFDMEZiLFFBQVMsS0FDVCxVQUFXLEtBQ1gsZ0JBQWlCLE8wQ3pGakIsZUFDRSxjQUFlLEtDUm5CLGtCQUNFLE9BQVEsUUFDUixRQUFTLE1BQ1QsV0FBWSxPQUVaLHlCM0NpUEEsV0FBWSxZQUNaLE1BQU8sUUFDUCxPQUFRLFFBQ1IsWUFBYSxFQUNiLFFBQVMsTzJDblBQLE9BQVEsa0JBQ1IsY0FBZSxJQUNmLFFBQVMsRUFDVCxlQUFnQixTM0NrUGxCLCtCQUNFLFdBQVksUUFDWixNQUFPLEsyQ2hQWCxhQUNFLFFBQVMsS0FDVCxZQUFhLEtBRWIsb0JBQ0UsUUFBUyxNQUdYLGlCQUNFLFFBQVMsYUFFVCxzQkFDRSxRQUFTLE1BWWIsaUJBQ0UsUUFBUyxhQUNULE9BQVEsV0FDUixVQUFXLEtBQ1gsTUFBTyxNQUlYLHFCQUNFLEtBQ0UsVUFBVyxlQUdiLEdBQ0UsVUFBVyxpQkNuRGIsdUNBQ0UsV0FBWSxPQUdkLGlDQUNFLFdBQVksS0FHZCxrQ0FDRSxXQUFZLEtBQ1osT0FBUSxFQUNSLFFBQVMsRUFHWCx1Q0FDRSxPQUFRLFNBR1Ysd0NBQ0UsVUFBVyxNNUM0UWIsV0FBWSxLQUNaLGNBQWUsS0FDZixNQUFPLHdCQUNQLFlBQWEsS0FDYixZQUFhLEVBQ2IsWUFBYSxNQUNiLFFBQVMsUUFDVCxZQUFhLDBCNEMvUWIsd0NBQ0UsYUFBYyxLQ1poQixlQUNFLFdBQVksS0FDWixPQUFRLFlBRVIsc0JBQ0UsV0FBWSxLQUNaLE1BQU8sS0FDUCxRQUFTLE1BQ1QsUUFBUyxhQUNULFlBQWEsS0FDYixRQUFTLE1BSWIsbUJBQ0UsbUJBQW9CLEtBQ3BCLG1CQUFvQixLQUNwQixjQUFlLEtBQ2YsV0FBWSx3QkFDWixRQUFTLEtBRVQsa0NBQ0UsY0FBZSxFQUNmLE1BQU8sbUJBQ1AsT0FBUSxFQUNSLFFBQVMsV0FDVCxTQUFVLFNBRVYsMENBQ0UsVUFBVyw0Q0FDWCxXQUFZLG1CQUNaLEtBQU0sRUFDTixXQUFZLEtBQ1osU0FBVSxTQUNWLElBQUssSTdDb0hYLGNBQWUsSUFDZixRQUFTLElBQ1QsT0FBUSxLQUNSLE1BQU8sSzZDbEhMLDJEQUNFLGdCQUFpQixJQUduQixvQ0FDRSxjQUFlLEtBR2pCLHdDQUNFLE1BQU8sd0JBQ1AsUUFBUyxhQUNULFVBQVcsS0FDWCxZQUFhLE9BQ2IsYUFBYyxLQUdoQixrQ0FDRSxNQUFPLHdCQUNQLFFBQVMsTUFDVCxZQUFhLEtBQ2IsUUFBUyxlQUVULDBDQUNFLE1BQU8sd0JBQ1AsUUFBUyxhQUNULGFBQWMsSUFDZCxNQUFPLEs3Q3FDYixZQUFhLHNCQUNiLFlBQWEsSTZDbENULHlEQUNFLFFBQVMsUUFHWCx5REFDRSxRQUFTLFFBR1gsNERBQ0UsUUFBUyxRQUtmLHdCQUNFLG1CQUFvQixRQUNwQixtQkFBb0IsS0FDcEIsY0FBZSxLQW5HbkIscUJBQ0UsS0FDRSxRQUFTLEVBQ1QsVUFBVyxTQUdiLEdBQ0UsUUFBUyxFQUNULFVBQVcsV0NSZixjQUNFLFVBQVcsTUFDWCxXQUFZLEtBQ1osT0FBUSxNQUNSLFFBQVMsTUFDVCxXQUFZLE9BRVosaUJBQ0UsUUFBUyxPQUdYLDJDQUNFLFFBQVMsU0FDVCxZQUFhLE9BQ2IsUUFBUyxLQUdYLDRCQUNFLFlBQWEsS0NsQmpCLFdBQ0UsV0FBWSxPQUVaLGFBQ0UsUUFBUyxhQUNULE9BQVEsS0FNVixhQUNFLG9CQUFxQixLQUNyQixNQUFPLEtBRlQsYUFDRSxvQkFBcUIsUUFDckIsTUFBTyxRQUZULGFBQ0Usb0JBQXFCLFFBQ3JCLE1BQU8sUUFGVCxhQUNFLG9CQUFxQixRQUNyQixNQUFPLFFBRlQsYUFDRSxvQkFBcUIsUUFDckIsTUFBTyxRQUZULGFBQ0Usb0JBQXFCLFFBQ3JCLE1BQU8sUUFGVCxhQUNFLG9CQUFxQixRQUNyQixNQUFPLFFBRlQsYUFDRSxvQkFBcUIsUUFDckIsTUFBTyxRQUZULGFBQ0Usb0JBQXFCLFFBQ3JCLE1BQU8sUUFGVCxhQUNFLG9CQUFxQixRQUNyQixNQUFPLFFBRlQsY0FDRSxvQkFBcUIsS0FDckIsTUFBTyxLQUt5QixtQ0FHOUIsYUFDRSxvQkFBcUIsS0FDckIsTUFBTyxLQUZULGFBQ0Usb0JBQXFCLFFBQ3JCLE1BQU8sUUFGVCxhQUNFLG9CQUFxQixRQUNyQixNQUFPLFFBRlQsYUFDRSxvQkFBcUIsUUFDckIsTUFBTyxRQUZULGFBQ0Usb0JBQXFCLFFBQ3JCLE1BQU8sUUFGVCxhQUNFLG9CQUFxQixRQUNyQixNQUFPLFFBRlQsYUFDRSxvQkFBcUIsUUFDckIsTUFBTyxRQUZULGFBQ0Usb0JBQXFCLFFBQ3JCLE1BQU8sUUFGVCxhQUNFLG9CQUFxQixRQUNyQixNQUFPLFFBRlQsYUFDRSxvQkFBcUIsUUFDckIsTUFBTyxRQUZULGNBQ0Usb0JBQXFCLEtBQ3JCLE1BQU8sTUN0QmIsZUFDRSxTQUFVLE9BR1osb0JBQ0UsV0FBWSxjQUNaLFFBQVMsS0FDVCxPQUFRLEtBQ1IsS0FBTSxFQUNOLFNBQVUsTUFDVixJQUFLLEVBQ0wsV0FBMEIsOEJBQzFCLFdBQVksT0FDWixNQUFPLEtBQ1AsUUFBUyxHQUVULG1DQUNFLFdBQVksZ0JBQ1osV0FBWSxRQUloQixjQUNFLFdBQVkscUJBQ1osY0FBZSxJQUNmLE9BQVEsSUFDUixPQUFRLEtBQ1IsVUFBVyxTQUNYLFdBQVksY0FDWixNQUFPLE1BRVAsNkJBQ0UsVUFBVyxTaERwQlMseUJBQUEsY2dEd0JwQixjQUFlLEVBQ2YsT0FBUSxLQUNSLE1BQU8sTUFHVCwyQkFBYywrQkFDWixNQUFPLEtBQ1AsVUFBVyxLQUNYLFFBQVMsT0FHWCwrQkFDRSxPQUFRLFFBRVIseUNBQ0UsTUFBTyxLQUlYLDZCQUNFLFdBQVksS0FNWix1QkFBd0IsSUFDeEIsd0JBQXlCLElBQ3pCLFFBQVMsS0FDVCxRQUFTLElBUDJCLG1DQUFBLDZCQUNoQyxXQUFZLE1BU2xCLGlDQUNFLFdBQVksWUFDWixPQUFRLEVBQ1IsUUFBUyxFQUNULE1BQU8sS0FFUCwrREFDRSxRQUFTLEtBSWIsdUNBQ0UsUUFBUyxLQUNULGVBQWdCLE9BQ2hCLE9BQVEsa0JBQ1IsU0FBVSxLQUNWLFFBQVMsU0FFVCwwQ0FDRSxZQUFhLEVBQ2IsT0FBUSxXQUVSLHNEQUNFLFFBQVMsS0FLZixrQ0FDRSxPQUFRLE1BQ1IsUUFBUyxFQUdYLG9DQUNFLFlBQWEsS0FHZiw4QkFDRSxjQUFlLGdCQUNmLFFBQVMsTUFHWCxzQ0FDRSxVQUFXLEVBQ1gsUUFBUyxJQUdYLGtDQUNFLE1BQU8sS0FDUCxPQUFRLEtBS2Qsb0JBQ0UsV0FBWSxZQUNaLGNBQWUsbUJBQ2YsTUFBTyxRQUNQLFlBQWEsS0N6SGYsc0JBRUUsb0JBQXFCLEtBRXJCLFdBQVksUUFHZCwrQkFDRSxvQkFBcUIsS0NkdkIsY2xEbVFFLFdBQVksd0JBQ1osY0FBZSxRQUNmLFdBQVksMEZBbFBZLHlCQUFBLGNrRGZ0QixjQUFlLFNBSW5CLE1BR0UsWUFBYSxRQUNiLFFBQVMsS0FDVCxnQkFBaUIsY2xEMkdqQixPQUFRLE9BQ1IsTUFBTyxrQkE1R2lCLHlCQUFBLE1BK0d0QixNQUFPLE1BakZnQiwwQkFBQSxNQXFGdkIsTUFBTyxRQS9FZ0IsMEJBQUEsTUFtRnZCLE1BQU8sS0FqSGUseUJBQUEsTWtERXRCLFFBQVMsTUFDVCxNQUFPLE1BSVgsWUFDRSxjQUFlLFFBQ2YsV0FBWSxXQUNaLE1BQU8sbUJsRFZpQix5QkFBQSxZa0RhdEIsY0FBZSxRQUNmLE1BQU8sTUFJWCxjQUlJLGFBQTJDLE1sRHRCckIseUJBQUEsY2tEMEJ0QixhQUFjLEVBQ2QsY0FBZSxFQUNmLE1BQU8sTUMvQ1gsUUFDRSxNQUFPLE1uRGtCaUIseUJBQUEsUW1EZnRCLE1BQU8sTUFJWCxzQkFDRSxXQUFZLG1CbkRVWSx5QkFBQSxtQ21ETnBCLFdBQVksMEJBS2xCLFdBQ0UsUUFBUyxPbkRZc0MsK0NBQUEsaUNBcUUvQyxRQUFTLEtBQ1QsZUFBZ0IsT0FDaEIsZ0JBQWlCLFFtRDNFakIsaURBQ0UsTUFBTyxLQUVQLDJFQUNFLFdBQVksS25EQStCLCtDQUFBLFVBcU0vQyxnQkFBaUIsRUFDakIsT0FBUSxFQUNSLFNBQVUsT0FDVixXQUFZLGdCQUNaLG9CQUEyQixrQkFDM0IsV0FBWSxPQUVaLDJDQUNFLFVBQVcsS0FHYiwyQkFDRSxPQUFRLHFCQUNSLFdBQVksT29EM09oQixpQkFDRSxRQUFTLE1BQ1QsT0FBUSxFQUVSLG1CQUNFLFFBQVMsU0FDVCxTQUFVLFNBQ1Ysb0JBQXFCLGlCcEQwUXZCLFFBQVMsS0FDVCxZQUFhLE9BRWIsMEJBQ0UsWUFBYSxLQXhRUyx5Qm9EYXRCLGtDQUNFLFFBQVMsTUNqQ2YsVUFDRSxPQUFRLEVBQ1IsUUFBUyxNQUVULHFCQUNFLFFBQVMsYUFFVCx1QkFDRSxXQUFZLFlBQ1osT0FBUSxTQUNSLFFBQVMsUUFFVCw2QkFDRSxXQUFZLFlBQ1osTUFBTyxRQUtiLDRCQUNFLG9CQUFxQixRQUNyQixNQUFPLFFBRVAsa0NBQ0Usb0JBQXFCLFFyRGFELHlCUXBDeEIsU0FFRSxTQUFVLGVBQ1YsU0FBVSxPQUNWLElBQUssS0FPUCxnQkFDRSxRQUFTLEtBR1gsZUFDRSxXQUFZLHdCQUNaLGNBQWUsUUFDZixXQUFZLHlIQUNaLFdBQVksV0FDWixNQUFPLGtCQUNQLFdBQVksS0FDWixXQUErRCxtQkFPakUsaUJBQ0UsUUFBUyxPQUdYLHlCQUNFLGNBQWUsZ0JBQ2YsV0FBWSxnQkFFWixnQ0FDRSxPQUFRLEVBQ1IsTUFBTyxRQUNQLFFBQVMsTUFDVCxNQUFPLEtBRVAsc0NBQ0UsV0FBWSxLQUNaLE9BQVEsRUFDUixNQUFPLFFBS2IsaUJSMENBLFFBQVMsS0FDVCxVQUFXLEtBQ1gsZ0JBQWlCLE9ReENqQixzQlJ3QkEsT0FBUSxRUXBCSixNQUFPLElSc0JYLHdCQUNFLFdBQVksV0FDWixRQUFTLGFBQ1QsVUFBVyxLQUNYLFNBQVUsT0FDVixRQUFTLE1BQ1QsY0FBZSxTQUNmLFlBQWEsT1ExQmIsd0JBQ0UsY0FBZSxFQUNmLGNBQWUsSUFDZixRQUFTLE1BRVQsOEJBQ0UsV0FBWSxxQkFLbEIsd0JBRUksUUFBUyxhQUNULFVBQVcsS1JHZixPQUFRLFFBRVIsMEJBQ0UsV0FBWSxXQUNaLFFBQVMsYUFDVCxVQUFXLEtBQ1gsU0FBVSxPQUNWLFFBQVMsTUFDVCxjQUFlLFNBQ2YsWUFBYSxPUUxiLGFBQ0UsV0FBWSxxQkFDWixPQUE2QixpQkFDN0Isb0JBQTJCLGtCQUUzQiw0QkFDRSxXQUFZLE04Qy9EbEIsc0JBQVcsd0JBQWEsMEJBQWUsd0JBQWUsd0NBQTZCLHdCdER3T25GLFdBQVksd0JBQ1osY0FBZSxRQUNmLFdBQVksMEZzRHJPViw0RHREeU9GLGNBQWUsUUFDZixXQUFZLHlIQUNaLFdBQVksS0E1T21DLCtDQUFBLDREQStPN0MsV0FBWSxNQWpRVSx5QkFBQSw0REFxUXRCLFdBQVksS3NEN09kLDBCQUFlLHdCQUFlLHdDQUE2Qix3QnREb08zRCxjQUFlLFFBQ2YsV0FBWSx5SEFDWixXQUFZLEtBNU9tQywrQ0FBQSxrSEErTzdDLFdBQVksTUFqUVUseUJBQUEsa0hBcVF0QixXQUFZLEtzRHZPaEIsWUFBYSxVQUNYLFFBQVMsS0FJWCxVQUNFLFFBQVMsS0FJWCxZQUNFLFdBQVksUUFDWixRQUFTLE9BT1QsY0FBSSxjQUNGLGNBQWUsZUFHakIsY0FDRSxjQUFlLGdCdERwQzhCLCtDc0Q2Qy9DLFlBQ0UsUUFBUyxLQUtULDJCQUNFLFdBQXVDLEtBSTNDLFlBRUUsUUFBb0MsS0FHdEMsVUFDRSxRQUFTLFd0RGhGYSx5QnNEMkZ4QixZQUNFLFFBQVMsSUFLVCwyQkFDRSxPQUFRLE9BSVosWUFFRSxRQUFTLEtBR1gsVUFDRSxRQUFTLFd0RHRHYSwrQ1FsQnhCLFNBT0ksUUFBUyIsImZpbGUiOiJtYWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIjpyb290IHtcbiAgLS1ib2R5LWJnLWNvbG9yOiAkYm9keS1iZy1jb2xvcjtcbiAgLS1jb250ZW50LWJnLWNvbG9yOiAkY29udGVudC1iZy1jb2xvcjtcbiAgLS1jYXJkLWJnLWNvbG9yOiAkY2FyZC1iZy1jb2xvcjtcbiAgLS10ZXh0LWNvbG9yOiAkdGV4dC1jb2xvcjtcbiAgLS1zZWxlY3Rpb24tYmc6ICRzZWxlY3Rpb24tYmc7XG4gIC0tc2VsZWN0aW9uLWNvbG9yOiAkc2VsZWN0aW9uLWNvbG9yO1xuICAtLWJsb2NrcXVvdGUtY29sb3I6ICRibG9ja3F1b3RlLWNvbG9yO1xuICAtLWxpbmstY29sb3I6ICRsaW5rLWNvbG9yO1xuICAtLWxpbmstaG92ZXItY29sb3I6ICRsaW5rLWhvdmVyLWNvbG9yO1xuICAtLWJyYW5kLWNvbG9yOiAkYnJhbmQtY29sb3I7XG4gIC0tYnJhbmQtaG92ZXItY29sb3I6ICRicmFuZC1ob3Zlci1jb2xvcjtcbiAgLS10YWJsZS1yb3ctb2RkLWJnLWNvbG9yOiAkdGFibGUtcm93LW9kZC1iZy1jb2xvcjtcbiAgLS10YWJsZS1yb3ctaG92ZXItYmctY29sb3I6ICR0YWJsZS1yb3ctaG92ZXItYmctY29sb3I7XG4gIC0tbWVudS1pdGVtLWJnLWNvbG9yOiAkbWVudS1pdGVtLWJnLWNvbG9yO1xuICAtLXRoZW1lLWNvbG9yOiAkdGhlbWUtY29sb3I7XG5cbiAgLS1idG4tZGVmYXVsdC1iZzogJGJ0bi1kZWZhdWx0LWJnO1xuICAtLWJ0bi1kZWZhdWx0LWNvbG9yOiAkYnRuLWRlZmF1bHQtY29sb3I7XG4gIC0tYnRuLWRlZmF1bHQtYm9yZGVyLWNvbG9yOiAkYnRuLWRlZmF1bHQtYm9yZGVyLWNvbG9yO1xuICAtLWJ0bi1kZWZhdWx0LWhvdmVyLWJnOiAkYnRuLWRlZmF1bHQtaG92ZXItYmc7XG4gIC0tYnRuLWRlZmF1bHQtaG92ZXItY29sb3I6ICRidG4tZGVmYXVsdC1ob3Zlci1jb2xvcjtcbiAgLS1idG4tZGVmYXVsdC1ob3Zlci1ib3JkZXItY29sb3I6ICRidG4tZGVmYXVsdC1ob3Zlci1ib3JkZXItY29sb3I7XG5cbiAgLS1oaWdobGlnaHQtYmFja2dyb3VuZDogJGhpZ2hsaWdodC1iYWNrZ3JvdW5kO1xuICAtLWhpZ2hsaWdodC1mb3JlZ3JvdW5kOiAkaGlnaGxpZ2h0LWZvcmVncm91bmQ7XG4gIC0taGlnaGxpZ2h0LWd1dHRlci1iYWNrZ3JvdW5kOiAkaGlnaGxpZ2h0LWd1dHRlci1iYWNrZ3JvdW5kO1xuICAtLWhpZ2hsaWdodC1ndXR0ZXItZm9yZWdyb3VuZDogJGhpZ2hsaWdodC1ndXR0ZXItZm9yZWdyb3VuZDtcblxuICBjb2xvci1zY2hlbWU6IGxpZ2h0O1xufVxuXG5pZiAoaGV4by1jb25maWcoJ2Rhcmttb2RlJykpIHtcbiAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykge1xuICAgIDpyb290IHtcbiAgICAgIC0tYm9keS1iZy1jb2xvcjogJGJvZHktYmctY29sb3ItZGFyaztcbiAgICAgIC0tY29udGVudC1iZy1jb2xvcjogJGNvbnRlbnQtYmctY29sb3ItZGFyaztcbiAgICAgIC0tY2FyZC1iZy1jb2xvcjogJGNhcmQtYmctY29sb3ItZGFyaztcbiAgICAgIC0tdGV4dC1jb2xvcjogJHRleHQtY29sb3ItZGFyaztcbiAgICAgIC0tc2VsZWN0aW9uLWJnOiAkc2VsZWN0aW9uLWJnLWRhcms7XG4gICAgICAtLXNlbGVjdGlvbi1jb2xvcjogJHNlbGVjdGlvbi1jb2xvci1kYXJrO1xuICAgICAgLS1ibG9ja3F1b3RlLWNvbG9yOiAkYmxvY2txdW90ZS1jb2xvci1kYXJrO1xuICAgICAgLS1saW5rLWNvbG9yOiAkbGluay1jb2xvci1kYXJrO1xuICAgICAgLS1saW5rLWhvdmVyLWNvbG9yOiAkbGluay1ob3Zlci1jb2xvci1kYXJrO1xuICAgICAgLS1icmFuZC1jb2xvcjogJGJyYW5kLWNvbG9yLWRhcms7XG4gICAgICAtLWJyYW5kLWhvdmVyLWNvbG9yOiAkYnJhbmQtaG92ZXItY29sb3ItZGFyaztcbiAgICAgIC0tdGFibGUtcm93LW9kZC1iZy1jb2xvcjogJHRhYmxlLXJvdy1vZGQtYmctY29sb3ItZGFyaztcbiAgICAgIC0tdGFibGUtcm93LWhvdmVyLWJnLWNvbG9yOiAkdGFibGUtcm93LWhvdmVyLWJnLWNvbG9yLWRhcms7XG4gICAgICAtLW1lbnUtaXRlbS1iZy1jb2xvcjogJG1lbnUtaXRlbS1iZy1jb2xvci1kYXJrO1xuICAgICAgLS10aGVtZS1jb2xvcjogJHRoZW1lLWNvbG9yLWRhcms7XG5cbiAgICAgIC0tYnRuLWRlZmF1bHQtYmc6ICRidG4tZGVmYXVsdC1iZy1kYXJrO1xuICAgICAgLS1idG4tZGVmYXVsdC1jb2xvcjogJGJ0bi1kZWZhdWx0LWNvbG9yLWRhcms7XG4gICAgICAtLWJ0bi1kZWZhdWx0LWJvcmRlci1jb2xvcjogJGJ0bi1kZWZhdWx0LWJvcmRlci1jb2xvci1kYXJrO1xuICAgICAgLS1idG4tZGVmYXVsdC1ob3Zlci1iZzogJGJ0bi1kZWZhdWx0LWhvdmVyLWJnLWRhcms7XG4gICAgICAtLWJ0bi1kZWZhdWx0LWhvdmVyLWNvbG9yOiAkYnRuLWRlZmF1bHQtaG92ZXItY29sb3ItZGFyaztcbiAgICAgIC0tYnRuLWRlZmF1bHQtaG92ZXItYm9yZGVyLWNvbG9yOiAkYnRuLWRlZmF1bHQtaG92ZXItYm9yZGVyLWNvbG9yLWRhcms7XG5cbiAgICAgIC0taGlnaGxpZ2h0LWJhY2tncm91bmQ6ICRoaWdobGlnaHQtYmFja2dyb3VuZC1kYXJrO1xuICAgICAgLS1oaWdobGlnaHQtZm9yZWdyb3VuZDogJGhpZ2hsaWdodC1mb3JlZ3JvdW5kLWRhcms7XG4gICAgICAtLWhpZ2hsaWdodC1ndXR0ZXItYmFja2dyb3VuZDogJGhpZ2hsaWdodC1ndXR0ZXItYmFja2dyb3VuZC1kYXJrO1xuICAgICAgLS1oaWdobGlnaHQtZ3V0dGVyLWZvcmVncm91bmQ6ICRoaWdobGlnaHQtZ3V0dGVyLWZvcmVncm91bmQtZGFyaztcblxuICAgICAgY29sb3Itc2NoZW1lOiBkYXJrO1xuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBvcGFjaXR5OiAuNzU7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAuOTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZnJhbWUge1xuICAgICAgY29sb3Itc2NoZW1lOiBsaWdodDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuLyogRG9jdW1lbnRcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxuICovXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qIFNlY3Rpb25zXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qKlxuICogUmVuZGVyIHRoZSBgbWFpbmAgZWxlbWVudCBjb25zaXN0ZW50bHkgaW4gSUUuXG4gKi9cbm1haW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICovXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IC42N2VtIDA7XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAqL1xuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICBoZWlnaHQ6IDA7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuYSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICovXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuYiwgc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5jb2RlLCBrYmQsIHNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuc3ViLCBzdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuICBib3R0b206IC0uMjVlbTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG4vKiBGb3Jtc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbiwgaW5wdXQsIG9wdGdyb3VwLCBzZWxlY3QsIHRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIG1hcmdpbjogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuYnV0dG9uLCBpbnB1dCB7XG4gIC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cbmJ1dHRvbiwgc2VsZWN0IHtcbiAgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5idXR0b24sIFt0eXBlPSdidXR0b24nXSwgW3R5cGU9J3Jlc2V0J10sIFt0eXBlPSdzdWJtaXQnXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciwgW3R5cGU9J2J1dHRvbiddOjotbW96LWZvY3VzLWlubmVyLCBbdHlwZT0ncmVzZXQnXTo6LW1vei1mb2N1cy1pbm5lciwgW3R5cGU9J3N1Ym1pdCddOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuYnV0dG9uOi1tb3otZm9jdXNyaW5nLCBbdHlwZT0nYnV0dG9uJ106LW1vei1mb2N1c3JpbmcsIFt0eXBlPSdyZXNldCddOi1tb3otZm9jdXNyaW5nLCBbdHlwZT0nc3VibWl0J106LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IC4zNWVtIC43NWVtIC42MjVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlOyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDMgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMSAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cbnByb2dyZXNzIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxuICovXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxuICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLlxuICovXG5bdHlwZT0nY2hlY2tib3gnXSwgW3R5cGU9J3JhZGlvJ10ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gKi9cblt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiwgW3R5cGU9J251bWJlciddOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblt0eXBlPSdzZWFyY2gnXSB7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICovXG5bdHlwZT0nc2VhcmNoJ106Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbn1cblxuLyogSW50ZXJhY3RpdmVcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cbiAqL1xuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xufVxuXG4vKiBNaXNjXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMCsuXG4gKi9cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC5cbiAqL1xuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuIiwiOjpzZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWxlY3Rpb24tYmcpO1xuICBjb2xvcjogdmFyKC0tc2VsZWN0aW9uLWNvbG9yKTtcbn1cblxuaHRtbCwgYm9keSB7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuYm9keSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJvZHktYmctY29sb3IpO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvcik7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYmFzZTtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLWJhc2U7XG4gIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYmFzZTtcbiAgbWluLWhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uOiBwYWRkaW5nICR0cmFuc2l0aW9uLWVhc2U7XG5cbiAgaWYgKGhleG8tY29uZmlnKCdib2R5X3Njcm9sbGJhci5vdmVybGF5JykpIHtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgQHN1cHBvcnRzIChvdmVyZmxvdy14OiBjbGlwKSB7XG4gICAgICBvdmVyZmxvdy14OiBjbGlwO1xuICAgIH1cbiAgICB3aWR0aDogMTAwdnc7XG4gIH1cblxuICBpZiAoaGV4by1jb25maWcoJ2JvZHlfc2Nyb2xsYmFyLnN0YWJsZScpKSB7XG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICB9XG59XG5cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWhlYWRpbmdzO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgbWFyZ2luOiAzMHB4IDAgMTVweDtcbn1cblxuZm9yICRoZWFkbGluZSBpbiAoMSAuLiA2KSB7XG4gIGh7JGhlYWRsaW5lfSB7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWhlYWRpbmdzLWJhc2UgLSAkZm9udC1zaXplLWhlYWRpbmdzLXN0ZXAgKiAkaGVhZGxpbmU7XG4gIH1cbn1cblxucCB7XG4gIG1hcmdpbjogMCAwIDIwcHg7XG59XG5cbmEge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGxpbmstZGVjb3JhdGlvbi1jb2xvcjtcbiAgY29sb3I6IHZhcigtLWxpbmstY29sb3IpO1xuICAvLyBGb3IgYTpub3QoOmFueS1saW5rKVxuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG91dGxpbmU6IDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgd29yZC13cmFwKCk7XG5cbiAgJjpob3ZlciB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tbGluay1ob3Zlci1jb2xvcik7XG4gICAgY29sb3I6IHZhcigtLWxpbmstaG92ZXItY29sb3IpO1xuICB9XG59XG5cbmlmcmFtZSwgaW1nLCB2aWRlbywgZW1iZWQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG5ociB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoLTQ1ZGVnLCAkZ3JleS1saWdodGVyLCAkZ3JleS1saWdodGVyIDRweCwgdHJhbnNwYXJlbnQgNHB4LCB0cmFuc3BhcmVudCA4cHgpO1xuICBib3JkZXI6IDA7XG4gIGhlaWdodDogM3B4O1xuICBtYXJnaW46IDQwcHggMDtcbn1cblxuYmxvY2txdW90ZSB7XG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgJGdyZXktbGlnaHRlcjtcbiAgY29sb3I6IHZhcigtLWJsb2NrcXVvdGUtY29sb3IpO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgMTVweDtcblxuICBjaXRlOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICctJztcbiAgICBwYWRkaW5nOiAwIDVweDtcbiAgfVxufVxuXG5kdCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG5kZCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cbiIsIm1vYmlsZS1zbWFsbGVzdCgpIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQxM3B4KSB7XG4gICAge2Jsb2NrfTtcbiAgfVxufVxuXG5tb2JpbGUtc21hbGwoKSB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA1NjdweCkge1xuICAgIHtibG9ja307XG4gIH1cbn1cblxubW9iaWxlKCkge1xuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICB7YmxvY2t9O1xuICB9XG59XG5cbnRhYmxldC1tb2JpbGUoKSB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkge1xuICAgIHtibG9ja307XG4gIH1cbn1cblxudGFibGV0LWRlc2t0b3AoKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIHtibG9ja307XG4gIH1cbn1cblxudGFibGV0KCkge1xuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAgIHtibG9ja307XG4gIH1cbn1cblxuZGVza3RvcCgpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gICAge2Jsb2NrfTtcbiAgfVxufVxuXG5kZXNrdG9wLWxhcmdlKCkge1xuICBAbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICAge2Jsb2NrfTtcbiAgfVxufVxuXG5kZXNrdG9wLWxhcmdlc3QoKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxNjAwcHgpIHtcbiAgICB7YmxvY2t9O1xuICB9XG59XG5cbnNpZGViYXIoKSB7XG4gIGlmICgoJHNjaGVtZSA9PSAnTXVzZScpIG9yICgkc2NoZW1lID09ICdNaXN0JykpIHtcbiAgICB7YmxvY2t9XG4gIH0gZWxzZSB7XG4gICAgK3RhYmxldC1tb2JpbGUoKSB7XG4gICAgICB7YmxvY2t9XG4gICAgfVxuICB9XG59XG5cbnJhbmRvbS1jb2xvcigkbWluLCAkbWF4KSB7XG4gIHJldHVybiBmbG9vcihtYXRoKDAsICdyYW5kb20nKSAqICgkbWF4IC0gJG1pbiArIDEpICsgJG1pbik7XG59XG5cbndvcmQtd3JhcCgpIHtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbn1cblxuZGlzYWJsZS11c2VyLXNlbGVjdCgpIHtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuc2lkZWJhci1pbmxpbmUtbGlua3MtaXRlbSgpIHtcbiAgbWFyZ2luOiA1cHggMCAwO1xuXG4gIGEge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbn1cblxuZmxleC13cmFwKCkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG5mbGV4LWNvbHVtbigpIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbnBvc3QtY2FyZCgpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1iZy1jb2xvcik7XG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgJHJlZDtcbiAgbWFyZ2luOiAkcG9zdC1jYXJkLW1hcmdpbjtcbn1cblxuZm9udC1mYW1pbHktaWNvbnMoJGljb24gPSAnJykge1xuICBpZiAoJGljb24pIHtcbiAgICBjb250ZW50OiAkaWNvbjtcbiAgfVxuICBmb250LWZhbWlseTogJ0ZvbnQgQXdlc29tZSA2IEZyZWUnO1xuICBmb250LXdlaWdodDogOTAwO1xufVxuXG5tYWluLWNvbnRhaW5lcigpIHtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHdpZHRoOiAkY29udGVudC1kZXNrdG9wO1xuXG4gICttb2JpbGUoKSB7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cblxuICArZGVza3RvcC1sYXJnZSgpIHtcbiAgICB3aWR0aDogJGNvbnRlbnQtZGVza3RvcC1sYXJnZTtcbiAgfVxuXG4gICtkZXNrdG9wLWxhcmdlc3QoKSB7XG4gICAgd2lkdGg6ICRjb250ZW50LWRlc2t0b3AtbGFyZ2VzdDtcbiAgfVxufVxuXG5zaWRlYmFyLXRvZ2dsZS1wb3NpdGlvbigkcmV2ZXJzZSkge1xuICAkY29uZGl0aW9uID0gKCRzaWRlYmFyLXRvZ2dsZS1hbGlnbm1lbnQgPT0gJ3JpZ2h0JykgPT0gJHJldmVyc2U7XG4gICRhbGlnbm1lbnQgPSAkY29uZGl0aW9uID8gJ2xlZnQnIDogJ3JpZ2h0JztcbiAgeyRhbGlnbm1lbnR9OiAkYjJ0LXBvc2l0aW9uLXJpZ2h0O1xuICArdGFibGV0LW1vYmlsZSgpIHtcbiAgICB7JGFsaWdubWVudH06ICRiMnQtcG9zaXRpb24tcmlnaHQtbW9iaWxlO1xuICB9XG59XG5cbnNpZGViYXItdG9nZ2xlKCkge1xuICBiYWNrZ3JvdW5kOiAkYjJ0LWJnLWNvbG9yO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG9wYWNpdHk6ICRiMnQtb3BhY2l0eTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiAkemluZGV4LTM7XG4gIHNpZGViYXItdG9nZ2xlLXBvc2l0aW9uKGZhbHNlKTtcblxuICAmOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAkYjJ0LW9wYWNpdHktaG92ZXI7XG4gIH1cblxuICArdGFibGV0LW1vYmlsZSgpIHtcbiAgICBvcGFjaXR5OiAkYjJ0LW9wYWNpdHktaG92ZXI7XG4gIH1cbn1cblxucm91bmQtaWNvbigkZGlhbWV0ZXIpIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBjb250ZW50OiAnICc7XG4gIGhlaWdodDogJGRpYW1ldGVyO1xuICB3aWR0aDogJGRpYW1ldGVyO1xufVxuXG50b2dnbGUtYXJyb3coJHBvc2l0aW9uKSB7XG4gIGlmICgkcG9zaXRpb24gPT0gJ3JpZ2h0Jykge1xuICAgIDpmaXJzdC1jaGlsZCB7XG4gICAgICB0b3A6IDJweDtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgICB3aWR0aDogNTAlO1xuICAgIH1cblxuICAgIDpsYXN0LWNoaWxkIHtcbiAgICAgIHRvcDogLTJweDtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIDpmaXJzdC1jaGlsZCB7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB0b3A6IDJweDtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgfVxuXG4gICAgOmxhc3QtY2hpbGQge1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdG9wOiAtMnB4O1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgfVxuICB9XG59XG5cbnRvZ2dsZS1jbG9zZSgkcG9zaXRpb24pIHtcbiAgOm50aC1jaGlsZCgyKSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIGlmICgkcG9zaXRpb24gPT0gJ3JpZ2h0Jykge1xuICAgIDpmaXJzdC1jaGlsZCB7XG4gICAgICB0b3A6IDZweDtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgfVxuXG4gICAgOmxhc3QtY2hpbGQge1xuICAgICAgdG9wOiAtNnB4O1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICA6Zmlyc3QtY2hpbGQge1xuICAgICAgdG9wOiA2cHg7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgfVxuXG4gICAgOmxhc3QtY2hpbGQge1xuICAgICAgdG9wOiAtNnB4O1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICB9XG4gIH1cbn1cblxuc2l0ZS1uYXYtaGlkZS1ieS1kZWZhdWx0KCkge1xuICAtLXNjcm9sbC1oZWlnaHQ6IDA7XG4gIGhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogJHRyYW5zaXRpb24tZWFzZTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogaGVpZ2h0LCB2aXNpYmlsaXR5O1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgYm9keTpub3QoLnNpdGUtbmF2LW9uKSAmIC5hbmltYXRlZCB7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICB9XG5cbiAgYm9keS5zaXRlLW5hdi1vbiAmIHtcbiAgICBoZWlnaHQ6IHZhcigtLXNjcm9sbC1oZWlnaHQpO1xuICAgIHZpc2liaWxpdHk6IHVuc2V0O1xuICB9XG59XG5cbmJ1dHRvbigkY29sb3IpIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDI7XG4gIHBhZGRpbmc6IDAgMTVweDtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgY29sb3I6IHdoaXRlO1xuICB9XG59XG5cbmdlbWluaS1ibG9jaygpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29udGVudC1iZy1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWlubmVyO1xuICBib3gtc2hhZG93OiAkYm94LXNoYWRvdy1pbm5lcjtcbn1cblxuZ2VtaW5pLWJsb2NrLW5vdC1maXJzdCgpIHtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gIGJveC1zaGFkb3c6ICRib3gtc2hhZG93O1xuICBtYXJnaW4tdG9wOiAkc2lkZWJhci1vZmZzZXQ7XG5cbiAgK3RhYmxldCgpIHtcbiAgICBtYXJnaW4tdG9wOiAkY29udGVudC10YWJsZXQtcGFkZGluZztcbiAgfVxuXG4gICttb2JpbGUoKSB7XG4gICAgbWFyZ2luLXRvcDogJGNvbnRlbnQtbW9iaWxlLXBhZGRpbmc7XG4gIH1cbn1cblxubWVudS1pdGVtLXJvdygpIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAuYmFkZ2Uge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG59XG5cbmJhZGdlKCkge1xuICBiYWNrZ3JvdW5kOiAkYmFkZ2UtYmFja2dyb3VuZDtcbiAgYm9yZGVyLXJhZGl1czogJGJhZGdlLWJvcmRlci1yYWRpdXM7XG4gIGNvbG9yOiAkYmFkZ2UtY29sb3I7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbWFyZ2luLWxlZnQ6IC4zNWVtO1xuICBwYWRkaW5nOiAkYmFkZ2UtcGFkZGluZztcbiAgdGV4dC1zaGFkb3c6ICRiYWRnZS10ZXh0LXNoYWRvdztcbn1cbiIsIi50YWJsZS1jb250YWluZXIge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbiAgZm9udC1zaXplOiAkdGFibGUtZm9udC1zaXplO1xuICBtYXJnaW46IDAgMCAyMHB4O1xuICB3aWR0aDogMTAwJTtcbn1cblxudGJvZHkgdHIge1xuICAmOm50aC1vZi10eXBlKG9kZCkge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRhYmxlLXJvdy1vZGQtYmctY29sb3IpO1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdGFibGUtcm93LWhvdmVyLWJnLWNvbG9yKTtcbiAgfVxufVxuXG5jYXB0aW9uLCB0aCwgdGQge1xuICBwYWRkaW5nOiA4cHg7XG59XG5cbnRoLCB0ZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICR0YWJsZS1ib3JkZXItY29sb3I7XG4gIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAkdGFibGUtY2VsbC1ib3JkZXItYm90dG9tLWNvbG9yO1xufVxuXG50aCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xufVxuXG50ZCB7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcbn1cbiIsIi5idG4ge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idG4tZGVmYXVsdC1iZyk7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWJ0bi1kZWZhdWx0LWJvcmRlci1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6ICRidG4tZGVmYXVsdC1yYWRpdXM7XG4gIGNvbG9yOiB2YXIoLS1idG4tZGVmYXVsdC1jb2xvcik7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO1xuICBsaW5lLWhlaWdodDogMjtcbiAgcGFkZGluZzogMCAyMHB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICR0cmFuc2l0aW9uLWVhc2U7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYnRuLWRlZmF1bHQtaG92ZXItYmcpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYnRuLWRlZmF1bHQtaG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgICBjb2xvcjogdmFyKC0tYnRuLWRlZmF1bHQtaG92ZXItY29sb3IpO1xuICB9XG5cbiAgKyAuYnRuIHtcbiAgICBtYXJnaW46IDAgMCA4cHggOHB4O1xuICB9XG5cbiAgLmZhLWZ3IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHdpZHRoOiAoMThlbSAvIDE0KTtcbiAgfVxufVxuIiwiLnRvZ2dsZSB7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuXG4gIC50b2dnbGUtbGluZSB7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgbGVmdDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwO1xuICAgIHRyYW5zaXRpb246IC40cztcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBsZWZ0LCBvcGFjaXR5LCB0b3AsIHRyYW5zZm9ybSwgd2lkdGg7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDFweDtcbiAgICB9XG5cbiAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICB9XG4gIH1cbn1cblxuLnRvZ2dsZS50b2dnbGUtYXJyb3cge1xuICB0b2dnbGUtYXJyb3coJHNpZGViYXItdG9nZ2xlLWFsaWdubWVudCk7XG59XG5cbi50b2dnbGUudG9nZ2xlLWNsb3NlIHtcbiAgdG9nZ2xlLWNsb3NlKCRzaWRlYmFyLXRvZ2dsZS1hbGlnbm1lbnQpO1xufVxuIiwiLyohXG4gKiBTdGFja092ZXJmbG93LmNvbSBsaWdodCBzdHlsZVxuICpcbiAqIEBzdGFja292ZXJmbG93L3N0YWNrcyB2MC41Ni4wXG4gKiBodHRwczovL2dpdGh1Yi5jb20vU3RhY2tFeGNoYW5nZS9TdGFja3NcbiAqL1xuXG4uaGxqcyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBwYWRkaW5nOiAwLjVlbTtcbiAgY29sb3I6ICMyZjMzMzc7XG4gIGJhY2tncm91bmQ6ICNmNmY2ZjY7XG59XG5cbi5obGpzLWNvbW1lbnQge1xuICBjb2xvcjogIzY1NmU3Nztcbn1cblxuLmhsanMta2V5d29yZCxcbi5obGpzLXNlbGVjdG9yLXRhZyxcbi5obGpzLW1ldGEta2V5d29yZCxcbi5obGpzLWRvY3RhZyxcbi5obGpzLXNlY3Rpb24sXG4uaGxqcy1zZWxlY3Rvci1jbGFzcyxcbi5obGpzLW1ldGEsXG4uaGxqcy1zZWxlY3Rvci1wc2V1ZG8sXG4uaGxqcy1hdHRyIHtcbiAgY29sb3I6ICMwMTU2OTI7XG59XG5cbi5obGpzLWF0dHJpYnV0ZSB7XG4gIGNvbG9yOiAjODAzMzc4O1xufVxuXG4uaGxqcy1uYW1lLFxuLmhsanMtdHlwZSxcbi5obGpzLW51bWJlcixcbi5obGpzLXNlbGVjdG9yLWlkLFxuLmhsanMtcXVvdGUsXG4uaGxqcy10ZW1wbGF0ZS10YWcsXG4uaGxqcy1idWlsdF9pbixcbi5obGpzLXRpdGxlLFxuLmhsanMtbGl0ZXJhbCB7XG4gIGNvbG9yOiAjYjc1NTAxO1xufVxuXG4uaGxqcy1zdHJpbmcsXG4uaGxqcy1yZWdleHAsXG4uaGxqcy1zeW1ib2wsXG4uaGxqcy12YXJpYWJsZSxcbi5obGpzLXRlbXBsYXRlLXZhcmlhYmxlLFxuLmhsanMtbGluayxcbi5obGpzLXNlbGVjdG9yLWF0dHIsXG4uaGxqcy1tZXRhLXN0cmluZyB7XG4gIGNvbG9yOiAjNTQ3OTBkO1xufVxuXG4uaGxqcy1idWxsZXQsXG4uaGxqcy1jb2RlIHtcbiAgY29sb3I6ICM1MzVhNjA7XG59XG5cbi5obGpzLWRlbGV0aW9uIHtcbiAgY29sb3I6ICNjMDJkMmU7XG59XG5cbi5obGpzLWFkZGl0aW9uIHtcbiAgY29sb3I6ICMyZjZmNDQ7XG59XG5cbi5obGpzLWVtcGhhc2lzIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4uaGxqcy1zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbiIsIi8vIFVzZSBgQHJlcXVpcmVgIHRvIGZpeCBpc3N1ZSAjNjdcbkByZXF1aXJlIGhleG8tY29uZmlnKCdoaWdobGlnaHQubGlnaHQuZmlsZScpIGlmIChoZXhvLWNvbmZpZygnaGlnaGxpZ2h0LmVuYWJsZScpICYmIGhleG8tY29uZmlnKCdoaWdobGlnaHQubGlnaHQuZmlsZScpKTtcbmlmIChoZXhvLWNvbmZpZygncHJpc20uZW5hYmxlJykpIHtcbiAgQHJlcXVpcmUgaGV4by1jb25maWcoJ3ByaXNtLmxpZ2h0JykgaWYgKGhleG8tY29uZmlnKCdwcmlzbS5saWdodCcpKTtcbiAgQHJlcXVpcmUgaGV4by1jb25maWcoJ3ByaXNtLm51bWJlcicpIGlmIChoZXhvLWNvbmZpZygncHJpc20ubnVtYmVyJykpO1xufVxuXG5pZiAoaGV4by1jb25maWcoJ2Rhcmttb2RlJykpIHtcbiAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykge1xuICAgIEByZXF1aXJlIGhleG8tY29uZmlnKCdoaWdobGlnaHQuZGFyay5maWxlJykgaWYgKGhleG8tY29uZmlnKCdoaWdobGlnaHQuZW5hYmxlJykgJiYgaGV4by1jb25maWcoJ2hpZ2hsaWdodC5kYXJrLmZpbGUnKSk7XG4gICAgQHJlcXVpcmUgaGV4by1jb25maWcoJ3ByaXNtLmRhcmsnKSBpZiAoaGV4by1jb25maWcoJ3ByaXNtLmVuYWJsZScpICYmIGhleG8tY29uZmlnKCdwcmlzbS5kYXJrJykpO1xuICB9XG59XG5cbkByZXF1aXJlICdjb3B5LWNvZGUnIGlmIChoZXhvLWNvbmZpZygnY29kZWJsb2NrLmNvcHlfYnV0dG9uLmVuYWJsZScpKTtcbkByZXF1aXJlICdmb2xkJyBpZiAoaGV4by1jb25maWcoJ2NvZGVibG9jay5mb2xkLmVuYWJsZScpKTtcblxuLy8gUGxhY2Vob2xkZXI6ICRjb2RlLWlubGluZSAkY29kZS1ibG9ja1xuJGNvZGUtaW5saW5lIHtcbiAgYmFja2dyb3VuZDogdmFyKC0taGlnaGxpZ2h0LWJhY2tncm91bmQpO1xuICBjb2xvcjogdmFyKC0taGlnaGxpZ2h0LWZvcmVncm91bmQpO1xufVxuXG4kY29kZS1ibG9jayB7XG4gIEBleHRlbmQgJGNvZGUtaW5saW5lO1xuICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWNvZGUtYmxvY2s7XG4gIG1hcmdpbjogMCBhdXRvIDIwcHg7XG59XG5cbiRmaWdjYXB0aW9uIHtcbiAgYmFja2dyb3VuZDogdmFyKC0taGlnaGxpZ2h0LWd1dHRlci1iYWNrZ3JvdW5kKTtcbiAgY29sb3I6IHZhcigtLWhpZ2hsaWdodC1mb3JlZ3JvdW5kKTtcbiAgZGlzcGxheTogZmxvdy1yb290O1xuICBmb250LXNpemU6ICR0YWJsZS1mb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIHBhZGRpbmc6IC41ZW07XG5cbiAgYSB7XG4gICAgY29sb3I6IHZhcigtLWhpZ2hsaWdodC1mb3JlZ3JvdW5kKTtcbiAgICBmbG9hdDogcmlnaHQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWhpZ2hsaWdodC1mb3JlZ3JvdW5kKTtcbiAgICB9XG4gIH1cbn1cblxucHJlLCBjb2RlIHtcbiAgZm9udC1mYW1pbHk6ICRjb2RlLWZvbnQtZmFtaWx5O1xufVxuXG5jb2RlIHtcbiAgQGV4dGVuZCAkY29kZS1pbmxpbmU7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgZm9udC1zaXplOiAkdGFibGUtZm9udC1zaXplO1xuICBwYWRkaW5nOiAycHggNHB4O1xuICB3b3JkLXdyYXAoKTtcbn1cblxua2JkIHtcbiAgQGV4dGVuZCAkY29kZS1pbmxpbmU7XG4gIGJvcmRlcjogMnB4IHNvbGlkICRncmV5LWxpZ2h0O1xuICBib3JkZXItcmFkaXVzOiAuMmVtO1xuICBib3gtc2hhZG93OiAuMWVtIC4xZW0gLjJlbSByZ2JhKDAsIDAsIDAsIC4xKTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIHBhZGRpbmc6IC4xZW0gLjNlbTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLy8gYGhpZ2hsaWdodC5saW5lX251bWJlcjogZmFsc2VgIGFuZCBgaGlnaGxpZ2h0LndyYXA6IGZhbHNlYFxuLy8gaW4gSGV4byBjb25maWcgZ2VuZXJhdGVzIGNvZGUuaGlnaGxpZ2h0IGVsZW1lbnRzXG5maWd1cmUuaGlnaGxpZ2h0IHtcbiAgQGV4dGVuZCAkY29kZS1ibG9jaztcbiAgLy8gUmVkdWNlIERPTSByZWZsb3cgd2l0aCB3cmFwVGFibGVXaXRoQm94XG4gIG92ZXJmbG93OiBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgcHJlIHtcbiAgICBib3JkZXI6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDEwcHggMDtcbiAgfVxuXG4gIHRhYmxlIHtcbiAgICBib3JkZXI6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG5cbiAgdGQge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgZmlnY2FwdGlvbiB7XG4gICAgQGV4dGVuZCAkZmlnY2FwdGlvbjtcbiAgfVxuXG4gIC5ndXR0ZXIge1xuICAgIGRpc2FibGUtdXNlci1zZWxlY3QoKTtcblxuICAgIHByZSB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1oaWdobGlnaHQtZ3V0dGVyLWJhY2tncm91bmQpO1xuICAgICAgY29sb3I6IHZhcigtLWhpZ2hsaWdodC1ndXR0ZXItZm9yZWdyb3VuZCk7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLmNvZGUgcHJlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL25leHQtdGhlbWUvaGV4by10aGVtZS1uZXh0L2Rpc2N1c3Npb25zLzQxMFxuICAubWFya2VkIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIC4zKTtcbiAgfVxufVxuXG4vLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2hleG9qcy9oZXhvLXV0aWwvcHVsbC8yMjlcbnByZSAuY2FwdGlvbiwgcHJlIGZpZ2NhcHRpb24ge1xuICBAZXh0ZW5kICRmaWdjYXB0aW9uO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4uZ2lzdCB0YWJsZSB7XG4gIHdpZHRoOiBhdXRvO1xuXG4gIHRkIHtcbiAgICBib3JkZXI6IDA7XG4gIH1cbn1cblxucHJlIHtcbiAgQGV4dGVuZCAkY29kZS1ibG9jaztcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHBhZGRpbmc6IDEwcHg7XG5cbiAgY29kZSB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHRleHQtc2hhZG93OiBub25lO1xuICB9XG59XG4iLCIvKiBUb21vcnJvdyBOaWdodCBFaWdodGllcyBUaGVtZSAqL1xuLyogT3JpZ2luYWwgdGhlbWUgLSBodHRwczovL2dpdGh1Yi5jb20vY2hyaXNrZW1wc29uL3RvbW9ycm93LXRoZW1lICovXG4vKiBodHRwOi8vam1ibG9nLmdpdGh1Yi5jb20vY29sb3ItdGhlbWVzLWZvci1nb29nbGUtY29kZS1oaWdobGlnaHRqcyAqL1xuXG4vKiBUb21vcnJvdyBDb21tZW50ICovXG4uaGxqcy1jb21tZW50LFxuLmhsanMtcXVvdGUge1xuICBjb2xvcjogIzk5OTk5OTtcbn1cblxuLyogVG9tb3Jyb3cgUmVkICovXG4uaGxqcy12YXJpYWJsZSxcbi5obGpzLXRlbXBsYXRlLXZhcmlhYmxlLFxuLmhsanMtdGFnLFxuLmhsanMtbmFtZSxcbi5obGpzLXNlbGVjdG9yLWlkLFxuLmhsanMtc2VsZWN0b3ItY2xhc3MsXG4uaGxqcy1yZWdleHAsXG4uaGxqcy1kZWxldGlvbiB7XG4gIGNvbG9yOiAjZjI3NzdhO1xufVxuXG4vKiBUb21vcnJvdyBPcmFuZ2UgKi9cbi5obGpzLW51bWJlcixcbi5obGpzLWJ1aWx0X2luLFxuLmhsanMtYnVpbHRpbi1uYW1lLFxuLmhsanMtbGl0ZXJhbCxcbi5obGpzLXR5cGUsXG4uaGxqcy1wYXJhbXMsXG4uaGxqcy1tZXRhLFxuLmhsanMtbGluayB7XG4gIGNvbG9yOiAjZjk5MTU3O1xufVxuXG4vKiBUb21vcnJvdyBZZWxsb3cgKi9cbi5obGpzLWF0dHJpYnV0ZSB7XG4gIGNvbG9yOiAjZmZjYzY2O1xufVxuXG4vKiBUb21vcnJvdyBHcmVlbiAqL1xuLmhsanMtc3RyaW5nLFxuLmhsanMtc3ltYm9sLFxuLmhsanMtYnVsbGV0LFxuLmhsanMtYWRkaXRpb24ge1xuICBjb2xvcjogIzk5Y2M5OTtcbn1cblxuLyogVG9tb3Jyb3cgQmx1ZSAqL1xuLmhsanMtdGl0bGUsXG4uaGxqcy1zZWN0aW9uIHtcbiAgY29sb3I6ICM2Njk5Y2M7XG59XG5cbi8qIFRvbW9ycm93IFB1cnBsZSAqL1xuLmhsanMta2V5d29yZCxcbi5obGpzLXNlbGVjdG9yLXRhZyB7XG4gIGNvbG9yOiAjY2M5OWNjO1xufVxuXG4uaGxqcyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBiYWNrZ3JvdW5kOiAjMmQyZDJkO1xuICBjb2xvcjogI2NjY2NjYztcbiAgcGFkZGluZzogMC41ZW07XG59XG5cbi5obGpzLWVtcGhhc2lzIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4uaGxqcy1zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbiIsIi5oaWdobGlnaHQ6aG92ZXIgLmNvcHktYnRuLCAuY29kZS1jb250YWluZXI6aG92ZXIgLmNvcHktYnRuIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmNvZGUtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY29weS1idG4ge1xuICBjb2xvcjogJGJsYWNrLWRpbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBsaW5lLWhlaWdodDogMS42O1xuICBvcGFjaXR5OiAwO1xuICBwYWRkaW5nOiAycHggNnB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgJHRyYW5zaXRpb24tZWFzZTtcblxuICBpZiAoaGV4by1jb25maWcoJ2NvZGVibG9jay5jb3B5X2J1dHRvbi5zdHlsZScpID09ICdmbGF0Jykge1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIGJvcmRlcjogMDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtc21hbGxlcjtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDA7XG4gIH0gZWxzZSBpZiAoaGV4by1jb25maWcoJ2NvZGVibG9jay5jb3B5X2J1dHRvbi5zdHlsZScpID09ICdtYWMnKSB7XG4gICAgY29sb3I6IHZhcigtLWhpZ2hsaWdodC1mb3JlZ3JvdW5kKTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiAycHg7XG4gIH0gZWxzZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGdhaW5zYm9ybztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoI2ZjZmNmYywgJGdhaW5zYm9ybyk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2Q1ZDVkNTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsZXI7XG4gICAgcmlnaHQ6IDRweDtcbiAgICB0b3A6IDhweDtcbiAgfVxufVxuXG5pZiAoaGV4by1jb25maWcoJ2NvZGVibG9jay5jb3B5X2J1dHRvbi5zdHlsZScpID09ICdtYWMnKSB7XG4gIGZpZ3VyZS5oaWdobGlnaHQge1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMzBweCAwIHJnYmEoMCwgMCwgMCwgLjQpO1xuICAgIHBhZGRpbmctdG9wOiAzMHB4O1xuXG4gICAgLnRhYmxlLWNvbnRhaW5lciB7XG4gICAgICBib3JkZXItcmFkaXVzOiAwIDAgNXB4IDVweDtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZDogI2ZjNjI1ZDtcbiAgICAgIGJveC1zaGFkb3c6IDIwcHggMCAjZmRiYzQwLCA0MHB4IDAgIzM1Y2Q0YjtcbiAgICAgIGxlZnQ6IDEycHg7XG4gICAgICBtYXJnaW4tdG9wOiAtMjBweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJvdW5kLWljb24oMTJweCk7XG4gICAgfVxuICB9XG59XG4iLCIrZGVza3RvcCgpIHtcbiAgLnNpZGViYXIge1xuICAgIC8vIGh0dHBzOi8vY2FuaXVzZS5jb20vY3NzLXN0aWNreVxuICAgIHBvc2l0aW9uOiAtd2Via2l0LXN0aWNreTtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHRvcDogJHNpZGViYXItb2Zmc2V0O1xuXG4gICAgK3RhYmxldC1tb2JpbGUoKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5zaWRlYmFyLXRvZ2dsZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5zaWRlYmFyLWlubmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb250ZW50LWJnLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICBib3gtc2hhZG93OiAkYm94LXNoYWRvdztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yKTtcbiAgICBtYXJnaW4tdG9wOiAkc2lkZWJhci1vZmZzZXQ7XG4gICAgbWF4LWhlaWdodDogJ2NhbGMoMTAwdmggLSAlcyknICUgdW5pdCgkc2lkZWJhci1vZmZzZXQgKiAyLCAncHgnKTtcblxuICAgIGlmIChoZXhvLWNvbmZpZygnbW90aW9uLmVuYWJsZScpIGFuZCBoZXhvLWNvbmZpZygnbW90aW9uLnRyYW5zaXRpb24uc2lkZWJhcicpKSB7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuICB9XG5cbiAgLnNpdGUtc3RhdGUtaXRlbSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5cbiAgLnNpZGViYXIgLnNpZGViYXItYnV0dG9uIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICRncmV5LWxpZ2h0O1xuICAgIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgJGdyZXktbGlnaHQ7XG5cbiAgICBidXR0b24ge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgY29sb3I6ICRvcmFuZ2U7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBjb2xvcjogZGFya2VuKCRvcmFuZ2UsIDIwJSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmxpbmtzLW9mLWF1dGhvciB7XG4gICAgZmxleC13cmFwKCk7XG4gIH1cblxuICAubGlua3Mtb2YtYXV0aG9yLWl0ZW0ge1xuICAgIHNpZGViYXItaW5saW5lLWxpbmtzLWl0ZW0oKTtcblxuICAgIGlmIChub3QgaGV4by1jb25maWcoJ3NvY2lhbF9pY29ucy5pY29uc19vbmx5JykpIHtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ib2R5LWJnLWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubGlua3Mtb2YtYmxvZ3JvbGwtaXRlbSB7XG4gICAgaWYgKGhleG8tY29uZmlnKCdsaW5rc19zZXR0aW5ncy5sYXlvdXQnKSA9PSAnaW5saW5lJykge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgc2lkZWJhci1pbmxpbmUtbGlua3MtaXRlbSgpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChoZXhvLWNvbmZpZygnYmFjazJ0b3Auc2lkZWJhcicpKSB7XG4gICAgLy8gT25seSB3aGVuIGJhY2sydG9wLnNpZGViYXIgaXMgdHJ1ZSwgYXBwbHkgdGhlIGZvbGxvd2luZyBzdHlsZXNcbiAgICAuYmFjay10by10b3Age1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tYm9keS1iZy1jb2xvcik7XG4gICAgICBtYXJnaW46IDhweCAtICRzaWRlYmFyLW9mZnNldCAtMTBweCAtMThweDtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGJvdHRvbSwgbWFyZ2luLXRvcDtcblxuICAgICAgJi5iYWNrLXRvLXRvcC1vbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBCbG9ja3F1b3RlIHdpdGggYWxsIGNoaWxkcmVuIGNlbnRlcmVkLlxuLmJsb2NrcXVvdGUtY2VudGVyIHtcbiAgYm9yZGVyLWxlZnQ6IDA7XG4gIG1hcmdpbjogNDBweCAwO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAmOjpiZWZvcmUsICY6OmFmdGVyIHtcbiAgICBsZWZ0OiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIG9wYWNpdHk6IC42O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRncmV5LWxpZ2h0O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdG9wOiAtMjBweDtcbiAgICBmb250LWZhbWlseS1pY29ucygnXFxmMTBkJyk7XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRncmV5LWxpZ2h0O1xuICAgIGJvdHRvbTogLTIwcHg7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgZm9udC1mYW1pbHktaWNvbnMoJ1xcZjEwZScpO1xuICB9XG5cbiAgcCwgZGl2IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cbiIsIi5ncm91cC1waWN0dXJlIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcblxuICAuZ3JvdXAtcGljdHVyZS1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAzcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICB9XG5cbiAgLmdyb3VwLXBpY3R1cmUtY29sdW1uIHtcbiAgICBmbGV4OiAxO1xuXG4gICAgaW1nIHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG59XG4iLCIucG9zdC1ib2R5IC5sYWJlbCB7XG4gIGNvbG9yOiAkdGV4dC1jb2xvcjtcbiAgcGFkZGluZzogMCAycHg7XG5cbiAgZm9yICR0eXBlIGluICRub3RlLXR5cGVzIHtcbiAgICAmLnskdHlwZX0ge1xuICAgICAgYmFja2dyb3VuZDogJGxhYmVsWyR0eXBlXTtcbiAgICB9XG4gIH1cbn1cbiIsIi5wb3N0LWJvZHkgLmxpbmstZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIC8vIGh0dHBzOi8vY2FuaXVzZS5jb20vbWRuLWNzc19wcm9wZXJ0aWVzX2dhcF9ncmlkX2NvbnRleHRcbiAgZ3JpZC1nYXA6IDEuNXJlbTtcbiAgZ2FwOiAxLjVyZW07XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgcGFkZGluZzogMXJlbTtcblxuICArbW9iaWxlKCkge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG5cbiAgLmxpbmstZ3JpZC1jb250YWluZXIge1xuICAgIGJvcmRlcjogc29saWQgJGdyZXktbGlnaHRlcjtcbiAgICBib3gtc2hhZG93OiAxcmVtIDFyZW0gLjVyZW0gcmdiYSgwLCAwLCAwLCAuNSk7XG4gICAgbWluLWhlaWdodDogNXJlbTtcbiAgICAvLyBGaXggaXNzdWUgIzMwXG4gICAgbWluLXdpZHRoOiAwO1xuICAgIHBhZGRpbmc6IC41cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4zcztcblxuICAgICY6aG92ZXIge1xuICAgICAgYW5pbWF0aW9uOiBuZXh0LXNoYWtlIC41cztcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtYmctY29sb3IpO1xuICAgIH1cblxuICAgICY6YWN0aXZlIHtcbiAgICAgIGJveC1zaGFkb3c6IC41cmVtIC41cmVtIC4yNXJlbSByZ2JhKDAsIDAsIDAsIC41KTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC4ycmVtLCAuMnJlbSk7XG4gICAgfVxuXG4gICAgLmxpbmstZ3JpZC1pbWFnZSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkZ3JleS1saWdodGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgIHBhZGRpbmc6IDNweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiA1cmVtO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgbWFyZ2luOiAwIDFyZW0gMCA2cmVtO1xuXG4gICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICBmb250LXNpemU6IDEuMmVtO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogLjhlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuM3JlbTtcbiAgICAgICAgb3BhY2l0eTogLjc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG59XG5cbkBrZXlmcmFtZXMgbmV4dC1zaGFrZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxcHQsIDFwdCkgcm90YXRlKDBkZWcpO1xuICB9XG5cbiAgMTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMXB0LCAtMnB0KSByb3RhdGUoLTFkZWcpO1xuICB9XG5cbiAgMjAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtM3B0LCAwcHQpIHJvdGF0ZSgxZGVnKTtcbiAgfVxuXG4gIDMwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoM3B0LCAycHQpIHJvdGF0ZSgwZGVnKTtcbiAgfVxuXG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMXB0LCAtMXB0KSByb3RhdGUoMWRlZyk7XG4gIH1cblxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xcHQsIDJwdCkgcm90YXRlKC0xZGVnKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTNwdCwgMXB0KSByb3RhdGUoMGRlZyk7XG4gIH1cblxuICA3MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDNwdCwgMXB0KSByb3RhdGUoLTFkZWcpO1xuICB9XG5cbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMXB0LCAtMXB0KSByb3RhdGUoMWRlZyk7XG4gIH1cblxuICA5MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDFwdCwgMnB0KSByb3RhdGUoMGRlZyk7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxcHQsIC0ycHQpIHJvdGF0ZSgtMWRlZyk7XG4gIH1cbn1cbiIsImlmIChoZXhvLWNvbmZpZygnd2F2ZWRyb20uZW5hYmxlJykpIHtcbiAgLndhdmVkcm9tIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuIiwiaWYgKGhleG8tY29uZmlnKCdub3RlLnN0eWxlJykgIT0gJ2Rpc2FibGVkJykge1xuICAucG9zdC1ib2R5IC5ub3RlIHtcbiAgICAkbm90ZS1pY29ucyA9IGhleG8tY29uZmlnKCdub3RlLmljb25zJyk7XG4gICAgJG5vdGUtc3R5bGUgPSBoZXhvLWNvbmZpZygnbm90ZS5zdHlsZScpO1xuXG4gICAgYm9yZGVyLXJhZGl1czogJG5vdGUtYm9yZGVyLXJhZGl1cztcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIHBhZGRpbmc6IDFlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBpZiAoJG5vdGUtc3R5bGUgPT0gJ3NpbXBsZScpIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRnYWluc2Jvcm87XG4gICAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xuICAgIH1cblxuICAgIGlmICgkbm90ZS1zdHlsZSA9PSAnbW9kZXJuJykge1xuICAgICAgYmFja2dyb3VuZDogJHdoaXRlc21va2U7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICBpZiAoJG5vdGUtc3R5bGUgPT0gJ2ZsYXQnKSB7XG4gICAgICBiYWNrZ3JvdW5kOiBsaWdodGVuKCRnYWluc2Jvcm8sIDY1JSk7XG4gICAgICBib3JkZXI6IGluaXRpYWw7XG4gICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICRnYWluc2Jvcm87XG4gICAgfVxuXG4gICAgc3VtbWFyeSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBvdXRsaW5lOiAwO1xuXG4gICAgICBwIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgfVxuICAgIH1cblxuICAgIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gICAgICBib3JkZXItYm90dG9tOiBpbml0aWFsO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuXG4gICAgOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG4gICAgOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICBpZiAoJG5vdGUtaWNvbnMpIHtcbiAgICAgICY6bm90KC5uby1pY29uKSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMi41ZW07XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuNWVtO1xuICAgICAgICAgIGxlZnQ6IC4zZW07XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogY2FsYyg1MCUgLSAxZW0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yICR0eXBlIGluICRub3RlLXR5cGVzIHtcbiAgICAgICYueyR0eXBlfSB7XG4gICAgICAgIGlmICgkbm90ZS1zdHlsZSA9PSAnZmxhdCcpIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkbm90ZS1iZ1skdHlwZV07XG4gICAgICAgICAgaWYgKGhleG8tY29uZmlnKCdkYXJrbW9kZScpKSB7XG4gICAgICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6IG1peCgkbm90ZS1iZ1skdHlwZV0sICRib2R5LWJnLWNvbG9yLWRhcmssIDEwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCRub3RlLXN0eWxlID09ICdtb2Rlcm4nKSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJG5vdGUtbW9kZXJuLWJnWyR0eXBlXTtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRub3RlLW1vZGVybi1ib3JkZXJbJHR5cGVdO1xuICAgICAgICAgIGNvbG9yOiAkbm90ZS1tb2Rlcm4tdGV4dFskdHlwZV07XG5cbiAgICAgICAgICBhOm5vdCguYnRuKSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkbm90ZS1tb2Rlcm4tdGV4dFskdHlwZV07XG4gICAgICAgICAgICBjb2xvcjogJG5vdGUtbW9kZXJuLXRleHRbJHR5cGVdO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJG5vdGUtbW9kZXJuLWhvdmVyWyR0eXBlXTtcbiAgICAgICAgICAgICAgY29sb3I6ICRub3RlLW1vZGVybi1ob3ZlclskdHlwZV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGhleG8tY29uZmlnKCdkYXJrbW9kZScpKSB7XG4gICAgICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRub3RlLW1vZGVybi1iZy1kYXJrWyR0eXBlXTtcbiAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkbm90ZS1tb2Rlcm4tYm9yZGVyLWRhcmtbJHR5cGVdO1xuICAgICAgICAgICAgICBjb2xvcjogJG5vdGUtbW9kZXJuLXRleHQtZGFya1skdHlwZV07XG5cbiAgICAgICAgICAgICAgYTpub3QoLmJ0bikge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRub3RlLW1vZGVybi10ZXh0LWRhcmtbJHR5cGVdO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkbm90ZS1tb2Rlcm4tdGV4dC1kYXJrWyR0eXBlXTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJG5vdGUtbW9kZXJuLWhvdmVyLWRhcmtbJHR5cGVdO1xuICAgICAgICAgICAgICAgICAgY29sb3I6ICRub3RlLW1vZGVybi1ob3Zlci1kYXJrWyR0eXBlXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoJG5vdGUtc3R5bGUgIT0gJ21vZGVybicpIHtcbiAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJG5vdGUtYm9yZGVyWyR0eXBlXTtcblxuICAgICAgICAgIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gICAgICAgICAgICBjb2xvcjogJG5vdGUtdGV4dFskdHlwZV07XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCRub3RlLWljb25zKSB7XG4gICAgICAgICAgJjpub3QoLm5vLWljb24pOjpiZWZvcmUge1xuICAgICAgICAgICAgZm9udC1mYW1pbHktaWNvbnMoJG5vdGUtaWNvblskdHlwZV0pO1xuXG4gICAgICAgICAgICBpZiAoJG5vdGUtc3R5bGUgIT0gJ21vZGVybicpIHtcbiAgICAgICAgICAgICAgY29sb3I6ICRub3RlLXRleHRbJHR5cGVdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLnBvc3QtYm9keSAudGFicyB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi5wb3N0LWJvZHkgLnRhYnMsIC50YWJzLWNvbW1lbnQge1xuICBwYWRkaW5nLXRvcDogMTBweDtcblxuICB1bC5uYXYtdGFicyB7XG4gICAgYmFja2dyb3VuZDogKCgkc2NoZW1lID09ICdNdXNlJykgb3IgKCRzY2hlbWUgPT0gJ01pc3QnKSkgPyB2YXIoLS1ib2R5LWJnLWNvbG9yKSA6IHZhcigtLWNvbnRlbnQtYmctY29sb3IpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiAtd2Via2l0LXN0aWNreTtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHRvcDogMDtcbiAgICAvLyBGaXggaXNzdWUgIzM5OFxuICAgIHotaW5kZXg6ICR6aW5kZXgtMDtcblxuICAgICttb2JpbGUtc21hbGxlc3QoKSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICB9XG5cbiAgICBsaS50YWIge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRncmV5LWxpZ2h0ZXI7XG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmFkaXVzOiAkdGJyICR0YnIgMCAwO1xuICAgICAgYm9yZGVyLXRvcDogM3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuXG4gICAgICArbW9iaWxlLXNtYWxsZXN0KCkge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICB9XG5cbiAgICAgICttb2JpbGUtc21hbGxlc3QoKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICR0YnI7XG4gICAgICB9XG5cbiAgICAgIGlmIChoZXhvLWNvbmZpZygndGFicy50cmFuc2l0aW9uLnRhYnMnKSkge1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgJHRyYW5zaXRpb24tZWFzZS1vdXQ7XG4gICAgICB9XG5cbiAgICAgIGEge1xuICAgICAgICBib3JkZXItYm90dG9tOiBpbml0aWFsO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuODtcbiAgICAgICAgcGFkZGluZzogLjI1ZW0gLjc1ZW07XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICBpW2NsYXNzXj0nZmEnXSB7XG4gICAgICAgICAgd2lkdGg6ICgxOGVtIC8gMTQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhleG8tY29uZmlnKCd0YWJzLnRyYW5zaXRpb24ubGFiZWxzJykpIHtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgJHRyYW5zaXRpb24tZWFzZS1vdXQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5hY3RpdmUge1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICR0YWJsZS1ib3JkZXItY29sb3I7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJG9yYW5nZTtcblxuICAgICAgICArbW9iaWxlLXNtYWxsZXN0KCkge1xuICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICR0YWJsZS1ib3JkZXItY29sb3I7XG4gICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICRvcmFuZ2U7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkdGFibGUtYm9yZGVyLWNvbG9yO1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR0YWJsZS1ib3JkZXItY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAudGFiLWNvbnRlbnQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR0YWJsZS1ib3JkZXItY29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwICR0YnIgJHRicjtcbiAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAgICttb2JpbGUtc21hbGxlc3QoKSB7XG4gICAgICBib3JkZXItcmFkaXVzOiAkdGJyO1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgICB9XG5cbiAgICAudGFiLXBhbmUge1xuICAgICAgcGFkZGluZzogMjBweCAyMHB4IDA7XG5cbiAgICAgICY6bm90KC5hY3RpdmUpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIiRwYWdlLW51bWJlci1iYXNpYyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAtMXB4IDEwcHggMDtcbiAgcGFkZGluZzogMCAxMHB4O1xuXG4gICttb2JpbGUoKSB7XG4gICAgbWFyZ2luOiAwIDVweDtcbiAgfVxufVxuXG4kcGFnZS1udW1iZXItY3VycmVudCB7XG4gIGJhY2tncm91bmQ6ICRwYWdpbmF0aW9uLWFjdGl2ZS1iZztcbiAgYm9yZGVyLWNvbG9yOiAkcGFnaW5hdGlvbi1hY3RpdmUtYm9yZGVyO1xuICBjb2xvcjogJHBhZ2luYXRpb24tYWN0aXZlLWNvbG9yO1xufVxuXG4ucGFnaW5hdGlvbiB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAkcGFnaW5hdGlvbi1ib3JkZXI7XG4gIG1hcmdpbjogMTIwcHggMCAwO1xuICB0ZXh0LWFsaWduOiAkc2NoZW1lLXRleHQtYWxpZ247XG5cbiAgLnByZXYsIC5uZXh0LCAucGFnZS1udW1iZXIge1xuICAgIEBleHRlbmQgJHBhZ2UtbnVtYmVyLWJhc2ljO1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRwYWdpbmF0aW9uLWxpbmstYm9yZGVyO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAkdHJhbnNpdGlvbi1lYXNlO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiAkcGFnaW5hdGlvbi1saW5rLWhvdmVyLWJvcmRlcjtcbiAgICB9XG4gIH1cblxuICArbW9iaWxlKCkge1xuICAgIGJvcmRlci10b3A6IDA7XG5cbiAgICAucHJldiwgLm5leHQsIC5wYWdlLW51bWJlciB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHBhZ2luYXRpb24tbGluay1ib3JkZXI7XG4gICAgICBib3JkZXItdG9wOiAwO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHBhZ2luYXRpb24tbGluay1ob3Zlci1ib3JkZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnNwYWNlIHtcbiAgICBAZXh0ZW5kICRwYWdlLW51bWJlci1iYXNpYztcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC5wYWdlLW51bWJlci5jdXJyZW50IHtcbiAgICBAZXh0ZW5kICRwYWdlLW51bWJlci1jdXJyZW50O1xuICB9XG59XG4iLCIuY29tbWVudHMge1xuICBtYXJnaW4tdG9wOiA2MHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uY29tbWVudC1idXR0b24tZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1hcmdpbjogMWVtIDA7XG5cbiAgLmNvbW1lbnQtYnV0dG9uIHtcbiAgICBtYXJnaW46IC4xZW0gLjJlbTtcblxuICAgICYuYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJ0bi1kZWZhdWx0LWhvdmVyLWJnKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYnRuLWRlZmF1bHQtaG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgICAgIGNvbG9yOiB2YXIoLS1idG4tZGVmYXVsdC1ob3Zlci1jb2xvcik7XG4gICAgfVxuICB9XG59XG5cbi5jb21tZW50LXBvc2l0aW9uIHtcbiAgZGlzcGxheTogbm9uZTtcblxuICAmLmFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLnRhYnMtY29tbWVudCB7XG4gIG1hcmdpbi10b3A6IDRlbTtcbiAgcGFkZGluZy10b3A6IDA7XG5cbiAgLmNvbW1lbnRzIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICB9XG59XG4iLCIvLyBIZWFkZXIgU2VjdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5oZWFkYmFuZCB7XG4gIGJhY2tncm91bmQ6ICRoZWFkYmFuZC1iZztcbiAgaGVpZ2h0OiAkaGVhZGJhbmQtaGVpZ2h0O1xuXG4gICt0YWJsZXQtbW9iaWxlKCkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLnNpdGUtYnJhbmQtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHBhZGRpbmc6IDAgMTBweDtcbn1cblxuLnVzZS1tb3Rpb24ge1xuICAuY29sdW1uLCAuc2l0ZS1icmFuZC1jb250YWluZXIgLnRvZ2dsZSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5AaW1wb3J0ICdzaXRlLW1ldGEnO1xuQGltcG9ydCAnc2l0ZS1uYXYnO1xuQGltcG9ydCAnbWVudSc7XG5cbkBpbXBvcnQgJ2Jvb2ttYXJrJztcbkBpbXBvcnQgJ2dpdGh1Yi1iYW5uZXInO1xuIiwiLnNpdGUtbWV0YSB7XG4gIGZsZXgtZ3JvdzogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICttb2JpbGUoKSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG5cbi5jdXN0b20tbG9nby1pbWFnZSB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG5cbiAgK3RhYmxldC1tb2JpbGUoKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uYnJhbmQge1xuICBib3JkZXItYm90dG9tOiAwO1xuICBjb2xvcjogdmFyKC0tYnJhbmQtY29sb3IpO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6ICRicmFuZC1wYWRkaW5nO1xuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS1icmFuZC1ob3Zlci1jb2xvcik7XG4gIH1cbn1cblxuLnNpdGUtdGl0bGUge1xuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWxvZ287XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10aXRsZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgbWFyZ2luOiAwO1xufVxuXG4uc2l0ZS1zdWJ0aXRsZSB7XG4gIGNvbG9yOiAkc3VidGl0bGUtY29sb3I7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zdWJ0aXRsZTtcbiAgbWFyZ2luOiAkc2l0ZS1zdWJ0aXRsZS1tYXJnaW47XG59XG5cbi51c2UtbW90aW9uIHtcbiAgLnNpdGUtdGl0bGUsIC5zaXRlLXN1YnRpdGxlLCAuY3VzdG9tLWxvZ28taW1hZ2Uge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTEwcHg7XG4gIH1cbn1cbiIsIi5zaXRlLW5hdi10b2dnbGUsIC5zaXRlLW5hdi1yaWdodCB7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgK21vYmlsZSgpIHtcbiAgICBmbGV4LWNvbHVtbigpO1xuICB9XG5cbiAgLnRvZ2dsZSB7XG4gICAgY29sb3I6IHZhcigtLXRleHQtY29sb3IpO1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgd2lkdGg6IDIycHg7XG5cbiAgICAudG9nZ2xlLWxpbmUge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tdGV4dC1jb2xvcik7XG4gICAgICBib3JkZXItcmFkaXVzOiAxcHg7XG4gICAgfVxuICB9XG59XG5cbi5zaXRlLW5hdiB7XG4gICttb2JpbGUoKSB7XG4gICAgc2l0ZS1uYXYtaGlkZS1ieS1kZWZhdWx0KCk7XG4gIH1cbn1cbiIsIi8vIE1lbnVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ubWVudSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMWVtIDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm1lbnUtaXRlbSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwIDEwcHg7XG5cbiAgK21vYmlsZSgpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuXG4gICAgJi5tZW51LWl0ZW0tc2VhcmNoIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgYSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtc21hbGxlcjtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgJHRyYW5zaXRpb24tZWFzZTtcblxuICAgICY6aG92ZXIsICYubWVudS1pdGVtLWFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tZW51LWl0ZW0tYmctY29sb3IpO1xuICAgIH1cbiAgfVxuXG4gIGlbY2xhc3NePSdmYSddIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgfVxuXG4gIC5iYWRnZSB7XG4gICAgYmFkZ2UoKTtcbiAgfVxufVxuXG5pZiAoaGV4by1jb25maWcoJ21vdGlvbi50cmFuc2l0aW9uLm1lbnVfaXRlbScpKSB7XG4gIC51c2UtbW90aW9uIC5tZW51LWl0ZW0ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxufVxuIiwiaWYgKGhleG8tY29uZmlnKCdnaXRodWJfYmFubmVyLmVuYWJsZScpKSB7XG4gIEBrZXlmcmFtZXMgb2N0b2NhdC13YXZlIHtcbiAgICAwJSwgMTAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICB9XG5cbiAgICAyMCUsIDYwJSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMjVkZWcpO1xuICAgIH1cblxuICAgIDQwJSwgODAlIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEwZGVnKTtcbiAgICB9XG4gIH1cblxuICAuZ2l0aHViLWNvcm5lciB7XG4gICAgOmhvdmVyIC5vY3RvLWFybSB7XG4gICAgICBhbmltYXRpb246IG9jdG9jYXQtd2F2ZSA1NjBtcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICBzdmcge1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgZmlsbDogdmFyKC0tdGhlbWUtY29sb3IpO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB0b3A6IDA7XG4gICAgICB6LWluZGV4OiAkemluZGV4LTA7XG4gICAgfVxuXG4gICAgK3RhYmxldC1tb2JpbGUoKSB7XG4gICAgICBpZiAoaGV4by1jb25maWcoJ2xvY2FsX3NlYXJjaC5lbmFibGUnKSBvciBoZXhvLWNvbmZpZygnYWxnb2xpYV9zZWFyY2guZW5hYmxlJykpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgc3ZnIHtcbiAgICAgICAgaWYgKCgkc2NoZW1lID09ICdQaXNjZXMnKSBvciAoJHNjaGVtZSA9PSAnR2VtaW5pJykpIHtcbiAgICAgICAgICBjb2xvcjogdmFyKC0tdGhlbWUtY29sb3IpO1xuICAgICAgICAgIGZpbGw6IHdoaXRlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5naXRodWItY29ybmVyOmhvdmVyIC5vY3RvLWFybSB7XG4gICAgICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmdpdGh1Yi1jb3JuZXIgLm9jdG8tYXJtIHtcbiAgICAgICAgYW5pbWF0aW9uOiBvY3RvY2F0LXdhdmUgNTYwbXMgZWFzZS1pbi1vdXQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCRzY2hlbWUgPT0gJ01pc3QnKSB7XG4gICAgICArbW9iaWxlKCkge1xuICAgICAgICBzdmcge1xuICAgICAgICAgIHRvcDogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiK3NpZGViYXIoKSB7XG4gIGlmICgkc2lkZWJhci10b2dnbGUtYWxpZ25tZW50ID09ICdyaWdodCcpIHtcbiAgICAuc2lkZWJhciB7XG4gICAgICByaWdodDogMCAtICRzaWRlYmFyLXdpZHRoLWV4cGFuZGVkO1xuXG4gICAgICAuc2lkZWJhci1hY3RpdmUgJiB7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAuc2lkZWJhciB7XG4gICAgICBsZWZ0OiAwIC0gJHNpZGViYXItd2lkdGgtZXhwYW5kZWQ7XG5cbiAgICAgIC5zaWRlYmFyLWFjdGl2ZSAmIHtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuc2lkZWJhciB7XG4gICAgYmFja2dyb3VuZDogJGJsYWNrLWRlZXA7XG4gICAgYm90dG9tOiAwO1xuICAgIGlmIChub3QgaGV4by1jb25maWcoJ2JhY2sydG9wLnNpZGViYXInKSkge1xuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggNnB4IGJsYWNrO1xuICAgIH1cbiAgICBtYXgtaGVpZ2h0OiAxMDB2aDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgdHJhbnNpdGlvbjogJHRyYW5zaXRpb24tZWFzZS1vdXQ7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbGVmdCwgcmlnaHQ7XG4gICAgd2lkdGg6ICRzaWRlYmFyLXdpZHRoLWV4cGFuZGVkO1xuICAgIHotaW5kZXg6ICR6aW5kZXgtMjtcblxuICAgIGEge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGJsYWNrLWxpZ2h0O1xuICAgICAgY29sb3I6ICRncmV5LWRhcms7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkZ2FpbnNib3JvO1xuICAgICAgICBjb2xvcjogJGdhaW5zYm9ybztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubGlua3Mtb2YtYXV0aG9yIHtcbiAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkYmxhY2stbGlnaHQ7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgaWYgKGhleG8tY29uZmlnKCdzb2NpYWxfaWNvbnMudHJhbnNpdGlvbicpKSB7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAkdHJhbnNpdGlvbi1lYXNlO1xuICAgICAgfVxuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2IocmFuZG9tLWNvbG9yKDAsIDI1NSkgLSA1MCUsIHJhbmRvbS1jb2xvcigwLCAyNTUpIC0gNTAlLCByYW5kb20tY29sb3IoMCwgMjU1KSAtIDUwJSk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgICAgICAgcm91bmQtaWNvbig0cHgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5saW5rcy1vZi1ibG9ncm9sbC1pdGVtIHtcbiAgICBpZiAoaGV4by1jb25maWcoJ2xpbmtzX3NldHRpbmdzLmxheW91dCcpID09ICdpbmxpbmUnKSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuICAgIHBhZGRpbmc6IDJweCAxMHB4O1xuXG4gICAgYSB7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWF4LXdpZHRoOiAyODBweDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuICB9XG5cbiAgLnBvcHVsYXItcG9zdHMgLnBvcHVsYXItcG9zdHMtaXRlbSAucG9wdWxhci1wb3N0cy1saW5rOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG5cbiAgLnNpZGViYXItZGltbWVyIHtcbiAgICBiYWNrZ3JvdW5kOiBibGFjaztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAuNHMsIG9wYWNpdHkgLjRzO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAkemluZGV4LTE7XG5cbiAgICAuc2lkZWJhci1hY3RpdmUgJiB7XG4gICAgICBvcGFjaXR5OiAuNztcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuICB9XG59XG5cbi5zaWRlYmFyLWlubmVyIHtcbiAgY29sb3I6ICRncmV5LWRhcms7XG4gIHBhZGRpbmc6ICRzaWRlYmFyLXBhZGRpbmcgMTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmbGV4LWNvbHVtbigpO1xufVxuXG4uY2MtbGljZW5zZSB7XG4gIC5jYy1vcGFjaXR5IHtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIG9wYWNpdHk6IC43O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAuOTtcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuXG5AaW1wb3J0ICdzaWRlYmFyLWF1dGhvcic7XG5AaW1wb3J0ICdzaWRlYmFyLWF1dGhvci1saW5rcyc7XG5AaW1wb3J0ICdzaWRlYmFyLWJ1dHRvbic7XG5AaW1wb3J0ICdzaWRlYmFyLWJsb2dyb2xsJztcbkBpbXBvcnQgJ3NpZGViYXItbmF2JztcbkBpbXBvcnQgJ3NpZGViYXItdG9nZ2xlJztcbkBpbXBvcnQgJ3NpZGViYXItdG9jJztcbkBpbXBvcnQgJ3NpdGUtc3RhdGUnO1xuQGltcG9ydCAncmVsYXRlZC1wb3N0cyc7XG4iLCIuc2l0ZS1hdXRob3ItaW1hZ2Uge1xuICBib3JkZXI6ICRzaXRlLWF1dGhvci1pbWFnZS1ib3JkZXItd2lkdGggc29saWQgJHNpdGUtYXV0aG9yLWltYWdlLWJvcmRlci1jb2xvcjtcbiAgbWF4LXdpZHRoOiAkc2l0ZS1hdXRob3ItaW1hZ2Utd2lkdGg7XG4gIHBhZGRpbmc6IDJweDtcblxuICBpZiAoaGV4by1jb25maWcoJ2F2YXRhci5yb3VuZGVkJykpIHtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIH1cblxuICBpZiAoaGV4by1jb25maWcoJ2F2YXRhci5yb3RhdGVkJykpIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMXMgZWFzZS1vdXQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlWigzNjBkZWcpO1xuICAgIH1cbiAgfVxufVxuXG4uc2l0ZS1hdXRob3ItbmFtZSB7XG4gIGNvbG9yOiAkc2l0ZS1hdXRob3ItbmFtZS1jb2xvcjtcbiAgZm9udC13ZWlnaHQ6ICRzaXRlLWF1dGhvci1uYW1lLXdlaWdodDtcbiAgbWFyZ2luOiAkc2l0ZS1hdXRob3ItbmFtZS1tYXJnaW47XG59XG5cbi5zaXRlLWRlc2NyaXB0aW9uIHtcbiAgY29sb3I6ICRzaXRlLWRlc2NyaXB0aW9uLWNvbG9yO1xuICBmb250LXNpemU6ICRzaXRlLWRlc2NyaXB0aW9uLWZvbnQtc2l6ZTtcbiAgbWFyZ2luLXRvcDogJHNpdGUtZGVzY3JpcHRpb24tbWFyZ2luLXRvcDtcbn1cbiIsIi5saW5rcy1vZi1hdXRob3Ige1xuICBhIHtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtc21hbGxlcjtcbiAgfVxuXG4gIGlmIChub3QgaGV4by1jb25maWcoJ3NvY2lhbF9pY29ucy5pY29uc19vbmx5JykpIHtcbiAgICBpW2NsYXNzXj0nZmEnXSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgICB9XG4gIH1cbn1cbiIsIi5zaWRlYmFyIC5zaWRlYmFyLWJ1dHRvbiB7XG4gICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gIH1cblxuICBidXR0b24ge1xuICAgIGJ1dHRvbigkb3JhbmdlKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkb3JhbmdlO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcblxuICAgIGlbY2xhc3NePSdmYSddIHtcbiAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIH1cbiAgfVxufVxuIiwiLmxpbmtzLW9mLWJsb2dyb2xsIHtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsZXI7XG59XG5cbi5saW5rcy1vZi1ibG9ncm9sbC10aXRsZSB7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmxpbmtzLW9mLWJsb2dyb2xsLWxpc3Qge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG4iLCIvLyBTaWRlYmFyIE5hdmlnYXRpb25cbi5zaWRlYmFyLW5hdiB7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbDtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW46IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uLWVhc2U7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGhlaWdodCwgdmlzaWJpbGl0eTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIC5zaWRlYmFyLW5hdi1hY3RpdmUgJiB7XG4gICAgaGVpZ2h0OiBcImNhbGMoJXNlbSArIDFweClcIiAlICRsaW5lLWhlaWdodC1iYXNlO1xuICAgIHBvaW50ZXItZXZlbnRzOiB1bnNldDtcbiAgICB2aXNpYmlsaXR5OiB1bnNldDtcbiAgfVxuXG4gIGxpIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICRzaWRlYmFyLW5hdi1jb2xvcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uLWVhc2U7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYm9yZGVyLWJvdHRvbS1jb2xvciwgY29sb3I7XG5cbiAgICAmLnNpZGViYXItbmF2LW92ZXJ2aWV3IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRzaWRlYmFyLW5hdi1ob3Zlci1jb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuLnNpZGViYXItdG9jLWFjdGl2ZSAuc2lkZWJhci1uYXYtdG9jLCAuc2lkZWJhci1vdmVydmlldy1hY3RpdmUgLnNpZGViYXItbmF2LW92ZXJ2aWV3IHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNpZGViYXItaGlnaGxpZ2h0O1xuICBjb2xvcjogJHNpZGViYXItaGlnaGxpZ2h0O1xuICB0cmFuc2l0aW9uLWRlbGF5OiAkdHJhbnNpdGlvbi1kdXJhdGlvbjtcblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJHNpZGViYXItaGlnaGxpZ2h0O1xuICB9XG59XG5cbi8vIEZvciBUT0MvT3ZlcnZpZXcgc2Nyb2xsaW5nXG4uc2lkZWJhci1wYW5lbC1jb250YWluZXIge1xuICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGZsZXg6IDE7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgcGFkZGluZy10b3A6IDA7XG4gIHRyYW5zaXRpb246IHBhZGRpbmctdG9wICR0cmFuc2l0aW9uLWVhc2U7XG5cbiAgLnNpZGViYXItbmF2LWFjdGl2ZSAmIHtcbiAgICBwYWRkaW5nLXRvcDogMjBweDtcbiAgfVxufVxuXG4uc2lkZWJhci1wYW5lbCB7XG4gIGFuaW1hdGlvbjogZGVhY3RpdmF0ZS1zaWRlYmFyLXBhbmVsICR0cmFuc2l0aW9uLWR1cmF0aW9uIGVhc2UtaW4tb3V0O1xuICBncmlkLWFyZWE6IDEgLyAxO1xuICBoZWlnaHQ6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uLWVhc2U7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDBzO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCB0cmFuc2Zvcm0sIHZpc2liaWxpdHk7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAvLyBBcHBseSB0cmFuc2Zvcm0gdG8gYm90aCBwYW5lbHMgd2hlbiBzaWRlYmFyIG5hdiBpcyBhY3RpdmUsXG4gIC8vIHRvIHRoZSBUT0MgcGFuZWwgd2hlbiBzd2l0Y2hpbmcgYmV0d2VlbiBPdmVydmlldyBhbmQgVE9DIHJlZ2FyZGxlc3Mgb2ZcbiAgLy8gd2hldGhlciB0aGUgc2lkZWJhciBuYXYgaXMgYWN0aXZlXG4gIC5zaWRlYmFyLW5hdi1hY3RpdmUgJixcbiAgLnNpZGViYXItb3ZlcnZpZXctYWN0aXZlICYucG9zdC10b2Mtd3JhcCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KTtcbiAgfVxuXG4gIC8vIERlbGF5IFRPQyB0cmFuc2Zvcm0gdHJhbnNpdGlvbiB3aGVuIHN3aXRjaGluZyBmcm9tIFRPQyB0byBPdmVydmlldyBhbmRcbiAgLy8gZGVhY3RpdmF0aW5nIHRoZSBzaWRlYmFyIG5hdiBhdCB0aGUgc2FtZSB0aW1lLCB0byBwcmV2ZW50IHRoZSBUT0MgcGFuZWxcbiAgLy8gZnJvbSBtb3ZpbmcgdG9vIGZhc3RcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL25leHQtdGhlbWUvaGV4by10aGVtZS1uZXh0L3B1bGwvMzIzI2lzc3VlY29tbWVudC0xNDIwNzgwOTY1XG4gIC5zaWRlYmFyLW92ZXJ2aWV3LWFjdGl2ZTpub3QoLnNpZGViYXItbmF2LWFjdGl2ZSkgJi5wb3N0LXRvYy13cmFwIHtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcywgJHRyYW5zaXRpb24tZHVyYXRpb24sIDBzO1xuICB9XG5cbiAgLnNpZGViYXItb3ZlcnZpZXctYWN0aXZlICYuc2l0ZS1vdmVydmlldy13cmFwLFxuICAuc2lkZWJhci10b2MtYWN0aXZlICYucG9zdC10b2Mtd3JhcCB7XG4gICAgYW5pbWF0aW9uLW5hbWU6IGFjdGl2YXRlLXNpZGViYXItcGFuZWw7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgcG9pbnRlci1ldmVudHM6IHVuc2V0O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAvLyBUaGUgdmlzaWJpbGl0eSBkZWxheSBpcyBpbnRlbnRpb25hbGx5IHNldCB0byAwcyB0byBhY2NvbW1vZGF0ZVxuICAgIC8vIHRoZSB2aXNpYmlsaXR5IGNoYW5nZSBvbiBpbml0aWFsIHBhZ2UgbG9hZC5cbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAkdHJhbnNpdGlvbi1kdXJhdGlvbiwgJHRyYW5zaXRpb24tZHVyYXRpb24sIDBzO1xuICAgIHZpc2liaWxpdHk6IHVuc2V0O1xuICB9XG5cbiAgJi5zaXRlLW92ZXJ2aWV3LXdyYXAge1xuICAgIC8vIEZsZXhib3ggbGF5b3V0IG1ha2VzIGl0IHBvc3NpYmxlIHRvIHJlb3JkZXIgdGhlIGNoaWxkXG4gICAgLy8gZWxlbWVudHMgb2YgLnNpdGUtb3ZlcnZpZXctd3JhcCB0aHJvdWdoIHRoZSBgb3JkZXJgIENTUyBwcm9wZXJ0eVxuICAgIGZsZXgtY29sdW1uKCk7XG4gICAgZ2FwOiAxMHB4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgLy8gVE9ETzogT3B0aW1pemUgdGhlIGR1cGxpY2F0ZSB3aXRoIGZsZXgtY29sdW1uKClcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGRlYWN0aXZhdGUtc2lkZWJhci1wYW5lbCB7XG4gIGZyb20ge1xuICAgIGhlaWdodDogdmFyKC0taW5hY3RpdmUtcGFuZWwtaGVpZ2h0LCAwKTtcbiAgfVxuICB0byB7XG4gICAgaGVpZ2h0OiB2YXIoLS1hY3RpdmUtcGFuZWwtaGVpZ2h0LCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGFjdGl2YXRlLXNpZGViYXItcGFuZWwge1xuICBmcm9tIHtcbiAgICBoZWlnaHQ6IHZhcigtLWluYWN0aXZlLXBhbmVsLWhlaWdodCwgYXV0byk7XG4gIH1cbiAgdG8ge1xuICAgIGhlaWdodDogdmFyKC0tYWN0aXZlLXBhbmVsLWhlaWdodCwgYXV0byk7XG4gIH1cbn1cbiIsIi5zaWRlYmFyLXRvZ2dsZSB7XG4gIGJvdHRvbTogJGIydC1wb3NpdGlvbi1ib3R0b20tb24gKyAkc2lkZWJhci10b2dnbGUtc2l6ZSArIDVweDtcbiAgaGVpZ2h0OiAkc2lkZWJhci10b2dnbGUtaW5uZXItc2l6ZTtcbiAgcGFkZGluZzogJHNpZGViYXItdG9nZ2xlLXBhZGRpbmc7XG4gIHdpZHRoOiAkc2lkZWJhci10b2dnbGUtaW5uZXItc2l6ZTtcbiAgc2lkZWJhci10b2dnbGUoKTtcbn1cblxuLnNpZGViYXItdG9nZ2xlOmhvdmVyIC50b2dnbGUtbGluZSB7XG4gIGJhY2tncm91bmQ6ICRzaWRlYmFyLWhpZ2hsaWdodDtcbn1cblxuQG1lZGlhIChhbnktaG92ZXI6IGhvdmVyKSB7XG4gIGJvZHk6bm90KC5zaWRlYmFyLWFjdGl2ZSkgLnNpZGViYXItdG9nZ2xlOmhvdmVyIHtcbiAgICB0b2dnbGUtYXJyb3coJHNpZGViYXItdG9nZ2xlLWFsaWdubWVudCk7XG4gIH1cbn1cblxuLnNpZGViYXItYWN0aXZlIC5zaWRlYmFyLXRvZ2dsZSB7XG4gIHRvZ2dsZS1jbG9zZSgkc2lkZWJhci10b2dnbGUtYWxpZ25tZW50KTtcbn1cbiIsImlmIChoZXhvLWNvbmZpZygndG9jLmVuYWJsZScpKSB7XG4gIC5wb3N0LXRvYyB7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO1xuXG4gICAgb2wge1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDAgMnB4IDAgMTBweDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICB9XG5cbiAgICAgID4gb2wge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICB9XG5cbiAgICAgIGEge1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgJHRyYW5zaXRpb24tZWFzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubmF2LWl0ZW0ge1xuICAgICAgbGluZS1oZWlnaHQ6IDEuODtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblxuICAgICAgaWYgKG5vdCBoZXhvLWNvbmZpZygndG9jLndyYXAnKSkge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5uYXYge1xuICAgICAgaWYgKG5vdCBoZXhvLWNvbmZpZygndG9jLmV4cGFuZF9hbGwnKSkge1xuICAgICAgICAubmF2LWNoaWxkIHtcbiAgICAgICAgICAtLWhlaWdodDogMDtcbiAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGhlaWdodCwgb3BhY2l0eSwgdmlzaWJpbGl0eTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbi1lYXNlO1xuICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hY3RpdmUgPiAubmF2LWNoaWxkIHtcbiAgICAgICAgICBoZWlnaHQ6IHZhcigtLWhlaWdodCwgYXV0byk7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICB2aXNpYmlsaXR5OiB1bnNldDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuYWN0aXZlID4gYSB7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzaWRlYmFyLWhpZ2hsaWdodDtcbiAgICAgICAgY29sb3I6ICRzaWRlYmFyLWhpZ2hsaWdodDtcbiAgICAgIH1cblxuICAgICAgLmFjdGl2ZS1jdXJyZW50ID4gYSB7XG4gICAgICAgIGNvbG9yOiAkc2lkZWJhci1oaWdobGlnaHQ7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgY29sb3I6ICRzaWRlYmFyLWhpZ2hsaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiaWYgKGhleG8tY29uZmlnKCdzaXRlX3N0YXRlJykpIHtcbiAgLnNpdGUtc3RhdGUge1xuICAgIGZsZXgtd3JhcCgpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIH1cblxuICAuc2l0ZS1zdGF0ZS1pdGVtIHtcbiAgICAvLyBGaXggaXNzdWUgIzEwM1xuICAgIC8vIFRoZSBjbGljayBhcmVhIG9mIHRoZSBsaW5rIGJlY29tZXMgc21hbGxlclxuICAgIHBhZGRpbmc6IDAgMTVweDtcblxuICAgIGEge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuXG4gIC5zaXRlLXN0YXRlLWl0ZW0tY291bnQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJHNpdGUtc3RhdGUtaXRlbS1jb3VudC1mb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfVxuXG4gIC5zaXRlLXN0YXRlLWl0ZW0tbmFtZSB7XG4gICAgY29sb3I6ICRzaXRlLXN0YXRlLWl0ZW0tbmFtZS1jb2xvcjtcbiAgICBmb250LXNpemU6ICRzaXRlLXN0YXRlLWl0ZW0tbmFtZS1mb250LXNpemU7XG4gIH1cbn1cbiIsImlmIChoZXhvLWNvbmZpZygncmVsYXRlZF9wb3N0cy5lbmFibGUnKSkge1xuICAuc2lkZWJhci1wb3N0LXJlbGF0ZWQge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbGVyO1xuICAgIHBhZGRpbmc6ICRzaWRlYmFyLXBhZGRpbmcgMCAwIDA7XG4gIH1cblxuICAucG9wdWxhci1wb3N0cyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDFlbSAwO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAucG9wdWxhci1wb3N0cy1pdGVtIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAucG9wdWxhci1wb3N0cy1saW5rIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDVweCAyMHB4O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4ycyBlYXNlLWluLW91dDtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tZW51LWl0ZW0tYmctY29sb3IpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5wb3B1bGFyLXBvc3RzLXRpbWUge1xuICAgICAgICBjb2xvcjogJHNpdGUtc3RhdGUtaXRlbS1uYW1lLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm9vdGVyIFNlY3Rpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uZm9vdGVyIHtcbiAgY29sb3I6ICRncmV5LWRhcms7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbDtcbiAgcGFkZGluZzogMjBweCAwO1xuICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbi1lYXNlO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBsZWZ0LCByaWdodDtcblxuICAmLmZvb3Rlci1maXhlZCB7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICB9XG59XG5cbi8vIEZsZXhib3ggbGF5b3V0IG1ha2VzIGl0IHBvc3NpYmxlIHRvIHJlb3JkZXIgdGhlIGNoaWxkXG4vLyBlbGVtZW50cyBvZiAuZm9vdGVyLWlubmVyIHRocm91Z2ggdGhlIGBvcmRlcmAgQ1NTIHByb3BlcnR5XG4uZm9vdGVyLWlubmVyIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdGV4dC1hbGlnbjogJHNjaGVtZS10ZXh0LWFsaWduO1xuICBmbGV4LWNvbHVtbigpO1xuICBtYWluLWNvbnRhaW5lcigpO1xufVxuXG4udXNlLW1vdGlvbiB7XG4gIC5mb290ZXIge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBpY29uLWFuaW1hdGUge1xuICAwJSwgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuXG4gIDEwJSwgMzAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKC45KTtcbiAgfVxuXG4gIDIwJSwgNDAlLCA2MCUsIDgwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICB9XG5cbiAgNTAlLCA3MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgfVxufVxuXG4ubGFuZ3VhZ2VzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICRmb250LXNpemUtbGFyZ2U7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAubGFuZy1zZWxlY3QtbGFiZWwgc3BhbiB7XG4gICAgbWFyZ2luOiAwIC41ZW07XG4gIH1cblxuICAubGFuZy1zZWxlY3Qge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4ud2l0aC1sb3ZlIHtcbiAgY29sb3I6IGNvbnZlcnQoaGV4by1jb25maWcoJ2Zvb3Rlci5pY29uLmNvbG9yJykpO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMCA1cHg7XG5cbiAgaWYgKGhleG8tY29uZmlnKCdmb290ZXIuaWNvbi5hbmltYXRlZCcpKSB7XG4gICAgYW5pbWF0aW9uOiBpY29uLWFuaW1hdGUgMS4zM3MgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gIH1cbn1cblxuaWYgKGhleG8tY29uZmlnKCdmb290ZXIuYmVpYW4uZW5hYmxlJykgYW5kIGhleG8tY29uZmlnKCdmb290ZXIuYmVpYW4uZ29uZ2FuX2ljb25fdXJsJykpIHtcbiAgLmJlaWFuIGltZyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMCAzcHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxufVxuXG5pZiAoaGV4by1jb25maWcoJ2J1c3VhbnppX2NvdW50LmVuYWJsZScpKSB7XG4gIC5idXN1YW56aS1jb3VudCB7XG4gICAgaWYgKGhleG8tY29uZmlnKCdidXN1YW56aV9jb3VudC50b3RhbF92aXNpdG9ycycpKSB7XG4gICAgICAjYnVzdWFuemlfY29udGFpbmVyX3NpdGVfdXYge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChoZXhvLWNvbmZpZygnYnVzdWFuemlfY291bnQudG90YWxfdmlld3MnKSkge1xuICAgICAgI2J1c3VhbnppX2NvbnRhaW5lcl9zaXRlX3B2IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsImlmIChoZXhvLWNvbmZpZygnYmFjazJ0b3AuZW5hYmxlJykpIHtcbiAgLmJhY2stdG8tdG9wIHtcbiAgICBmb250LXNpemU6ICRiMnQtZm9udC1zaXplO1xuXG4gICAgc3BhbiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICAgIGlmIChub3QgaGV4by1jb25maWcoJ2JhY2sydG9wLnNjcm9sbHBlcmNlbnQnKSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5mYSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB3aWR0aDogJHNpZGViYXItdG9nZ2xlLXNpemU7XG4gICAgfVxuXG4gICAgaWYgKGhleG8tY29uZmlnKCdiYWNrMnRvcC5zaWRlYmFyJykpIHtcbiAgICAgIG1hcmdpbjogMjBweCAtICRzaWRlYmFyLW9mZnNldCAtMTBweCAtMjBweDtcbiAgICAgIC8vIEZJWE1FOiBvcGFjaXR5IG92ZXJyaWRlIGJ5IG1vdGlvblxuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJHRyYW5zaXRpb24tZWFzZTtcblxuICAgICAgJi5iYWNrLXRvLXRvcC1vbiB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3BhY2l0eTogJGIydC1vcGFjaXR5O1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIG9wYWNpdHk6ICRiMnQtb3BhY2l0eS1ob3ZlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgYm90dG9tOiAkYjJ0LXBvc2l0aW9uLWJvdHRvbTtcbiAgICAgIGNvbG9yOiAkYjJ0LWNvbG9yO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGhlaWdodDogJHNpZGViYXItdG9nZ2xlLXNpemU7XG4gICAgICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbi1lYXNlO1xuICAgICAgLy8gT3ZlcnJpZGUgaW4gUGlzY2VzXG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBib3R0b207XG4gICAgICBzaWRlYmFyLXRvZ2dsZSgpO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICRzaWRlYmFyLWhpZ2hsaWdodDtcbiAgICAgIH1cblxuICAgICAgJi5iYWNrLXRvLXRvcC1vbiB7XG4gICAgICAgIGJvdHRvbTogJGIydC1wb3NpdGlvbi1ib3R0b20tb247XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIucnRsIHtcbiAgJi5wb3N0LWJvZHkge1xuICAgIHAsIGEsIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIGxpLCB1bCwgb2wge1xuICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICBmb250LWZhbWlseTogVUtJSiBFa3JhbjtcbiAgICB9XG4gIH1cblxuICAmLnBvc3QtdGl0bGUge1xuICAgIGZvbnQtZmFtaWx5OiBVS0lKIEVrcmFuO1xuICB9XG59XG5cbi5wb3N0LWJ1dHRvbiB7XG4gIG1hcmdpbi10b3A6IDQwcHg7XG4gIHRleHQtYWxpZ246ICRzY2hlbWUtdGV4dC1hbGlnbjtcbn1cblxuLnVzZS1tb3Rpb24ge1xuICBpZiAoaGV4by1jb25maWcoJ21vdGlvbi50cmFuc2l0aW9uLnBvc3RfYmxvY2snKSkge1xuICAgIC5wb3N0LWJsb2NrLCAucGFnaW5hdGlvbiwgLmNvbW1lbnRzIHtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG4gIH1cblxuICBpZiAoaGV4by1jb25maWcoJ21vdGlvbi50cmFuc2l0aW9uLnBvc3RfaGVhZGVyJykpIHtcbiAgICAucG9zdC1oZWFkZXIge1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gIGlmIChoZXhvLWNvbmZpZygnbW90aW9uLnRyYW5zaXRpb24ucG9zdF9ib2R5JykpIHtcbiAgICAucG9zdC1ib2R5IHtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG4gIH1cblxuICBpZiAoaGV4by1jb25maWcoJ21vdGlvbi50cmFuc2l0aW9uLmNvbGxfaGVhZGVyJykpIHtcbiAgICAuY29sbGVjdGlvbi1oZWFkZXIge1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cbiAgfVxufVxuXG5AaW1wb3J0ICdwb3N0LWNvbGxhcHNlJztcbkBpbXBvcnQgJ3Bvc3QtYm9keSc7XG5AaW1wb3J0ICdwb3N0LWdhbGxlcnknO1xuQGltcG9ydCAncG9zdC1oZWFkZXInO1xuQGltcG9ydCAncG9zdC1uYXYnO1xuQGltcG9ydCAncG9zdC1mb290ZXInO1xuQGltcG9ydCAncG9zdC13aWRnZXRzJztcbkBpbXBvcnQgJ3Bvc3QtcmV3YXJkJztcbkBpbXBvcnQgJ3Bvc3QtZm9sbG93bWUnO1xuIiwiLnBvc3RzLWNvbGxhcHNlIC5wb3N0LWNvbnRlbnQge1xuICBtYXJnaW4tYm90dG9tOiAkcG9zdHMtY29sbGFwc2UtbWFyZ2luO1xuICBtYXJnaW4tbGVmdDogJHBvc3RzLWNvbGxhcHNlLW1hcmdpbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICttb2JpbGUoKSB7XG4gICAgbWFyZ2luLWxlZnQ6ICRwb3N0cy1jb2xsYXBzZS1tYXJnaW4tbW9iaWxlO1xuICAgIG1hcmdpbi1yaWdodDogJHBvc3RzLWNvbGxhcHNlLW1hcmdpbi1tb2JpbGU7XG4gIH1cblxuICAuY29sbGVjdGlvbi10aXRsZSB7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWxhcmdlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkZ3JleS1kYXJrO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgd2hpdGU7XG4gICAgICBtYXJnaW4tbGVmdDogLTZweDtcbiAgICAgIG1hcmdpbi10b3A6IC00cHg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHJvdW5kLWljb24oMTBweCk7XG4gICAgfVxuICB9XG5cbiAgLmNvbGxlY3Rpb24teWVhciB7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWxhcmdlc3Q7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbWFyZ2luOiA2MHB4IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLmNvbGxlY3Rpb24teWVhci1jb3VudCB7XG4gICAgICBmb250LXNpemU6ICRmb250LXNpemUtc21hbGxlc3Q7XG4gICAgICBiYWRnZSgpO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkZ3JleTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtNHB4O1xuICAgICAgbWFyZ2luLXRvcDogLTRweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgcm91bmQtaWNvbig4cHgpO1xuICAgIH1cbiAgfVxuXG4gIC5jb2xsZWN0aW9uLWhlYWRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG5cbiAgICBzbWFsbCB7XG4gICAgICBjb2xvcjogJGdyZXk7XG4gICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgIH1cbiAgfVxuXG4gIC5wb3N0LWhlYWRlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCAkZ3JleS1saWdodDtcbiAgICAvLyAycHggaXMgZXF1YWwgdG8gaGFsZiB0aGUgd2lkdGggb2YgLnBvc3RzLWNvbGxhcHNlOjpiZWZvcmVcbiAgICBtYXJnaW46IDMwcHggMnB4IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXIgJHRyYW5zaXRpb24tZWFzZTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkZ3JleTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlO1xuICAgICAgbGVmdDogLTZweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogJGZvbnQtc2l6ZS1zbWFsbGVzdDtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgJHRyYW5zaXRpb24tZWFzZTtcbiAgICAgIHJvdW5kLWljb24oNnB4KTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRncmV5LWRpbTtcblxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGJsYWNrLWRlZXA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnBvc3QtbWV0YS1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtc21hbGxlc3Q7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICB9XG5cbiAgLnBvc3QtdGl0bGUge1xuICAgIGRpc3BsYXk6IGlubGluZTtcblxuICAgIGEge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgIGNvbG9yOiB2YXIoLS1saW5rLWNvbG9yKTtcbiAgICB9XG5cbiAgICAuZmEge1xuICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO1xuICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICB9XG4gIH1cblxuICAmOjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6ICR3aGl0ZXNtb2tlO1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IC0ycHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIC8vIFRvIGRvOiAxLjI1ZW0gaXMgaW5hY2N1cmF0ZSB3aGVuIC5jb2xsZWN0aW9uLXRpdGxlIGhhcyBsaW5lIGJyZWFrcyBvbiBtb2JpbGVcbiAgICB0b3A6IDEuMjVlbTtcbiAgICB3aWR0aDogNHB4O1xuICB9XG59XG4iLCIucG9zdC1ib2R5IHtcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1wb3N0cztcbiAgd29yZC13cmFwKCk7XG5cbiAgK2Rlc2t0b3AtbGFyZ2UoKSB7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWxhcmdlO1xuICB9XG5cbiAgK2Rlc2t0b3AoKSB7XG4gICAgdGV4dC1hbGlnbjogdW5xdW90ZShoZXhvLWNvbmZpZygndGV4dF9hbGlnbi5kZXNrdG9wJykpO1xuICB9XG5cbiAgK3RhYmxldC1tb2JpbGUoKSB7XG4gICAgdGV4dC1hbGlnbjogdW5xdW90ZShoZXhvLWNvbmZpZygndGV4dF9hbGlnbi5tb2JpbGUnKSk7XG4gIH1cblxuICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgICAvLyBTdXBwb3J0ZWQgcGx1Z2luczogaGV4by1yZW5kZXJlci1tYXJrZG93bi1pdCBoZXhvLXJlbmRlcmVyLW1hcmtlZFxuICAgIC5oZWFkZXItYW5jaG9yLCAuaGVhZGVybGluayB7XG4gICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBub25lO1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBmb250LXNpemU6ICRmb250LXNpemUtc21hbGw7XG4gICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgIG9wYWNpdHk6IDA7XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5LWljb25zKCdcXGYwYzEnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIC5oZWFkZXItYW5jaG9yLCAuaGVhZGVybGluayB7XG4gICAgICAgIG9wYWNpdHk6IC41O1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZXh0dXJsIC5mYSB7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO1xuICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG4gIH1cblxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vaGV4b2pzL2hleG8tcmVuZGVyZXItbWFya2VkL3B1bGwvMjY0XG4gIGltZyArIGZpZ2NhcHRpb24sIC5mYW5jeWJveCArIGZpZ2NhcHRpb24ge1xuICAgIGNvbG9yOiAkZ3JleS1kYXJrO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBtYXJnaW46IC0xNXB4IGF1dG8gMTVweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICBpZnJhbWUsIGltZywgdmlkZW8sIGVtYmVkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICB9XG5cbiAgLnZpZGVvLWNvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nLXRvcDogNzUlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIGlmcmFtZSwgb2JqZWN0LCBlbWJlZCB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG59XG4iLCIucG9zdC1nYWxsZXJ5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWluLWhlaWdodDogMjAwcHg7XG5cbiAgLnBvc3QtZ2FsbGVyeS1pbWFnZSB7XG4gICAgZmxleDogMTtcblxuICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgY2xpcC1wYXRoOiBwb2x5Z29uKDQwcHggMCwgMTAwJSAwLCAxMDAlIDEwMCUsIDAgMTAwJSk7XG4gICAgICBtYXJnaW4tbGVmdDogLTIwcHg7XG4gICAgfVxuXG4gICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogLTIwcHg7XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgLy8gT3ZlcnJpZGUgZGFya21vZGUgaW1hZ2Ugb3BhY2l0eS5cbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuLnBvc3RzLWV4cGFuZCAucG9zdC1nYWxsZXJ5IHtcbiAgbWFyZ2luLWJvdHRvbTogNjBweDtcbn1cblxuLnBvc3RzLWNvbGxhcHNlIC5wb3N0LWdhbGxlcnkge1xuICBtYXJnaW46IDE1cHggMDtcbn1cbiIsIi5wb3N0cy1leHBhbmQgLnBvc3QtaGVhZGVyIHtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLWxhcmdlO1xuICBtYXJnaW4tYm90dG9tOiA2MHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5wb3N0cy1leHBhbmQgLnBvc3QtdGl0bGUge1xuICBmb250LXNpemU6ICRmb250LXNpemUtbGFyZ2VzdDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbWFyZ2luOiBpbml0aWFsO1xuICB3b3JkLXdyYXAoKTtcblxuICBpZiAoaGV4by1jb25maWcoJ3Bvc3RfZWRpdC5lbmFibGUnKSkge1xuICAgIC5wb3N0LWVkaXQtbGluayB7XG4gICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgY29sb3I6ICRncmV5O1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLWxhcmdlcjtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMS4yZW07XG4gICAgICB0cmFuc2l0aW9uOiBjb2xvciAkdHJhbnNpdGlvbi1lYXNlLWluO1xuXG4gICAgICArbW9iaWxlLXNtYWxsKCkge1xuICAgICAgICBtYXJnaW4tbGVmdDogaW5pdGlhbDtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAkc2lkZWJhci1oaWdobGlnaHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5wb3N0cy1leHBhbmQgLnBvc3QtdGl0bGUtbGluayB7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGNvbG9yOiB2YXIoLS1saW5rLWNvbG9yKTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1saW5rLWNvbG9yKTtcbiAgICBib3R0b206IDA7XG4gICAgY29udGVudDogJyc7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgLy8gRml4IGlzc3VlICM3NVxuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDApO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkdHJhbnNpdGlvbi1lYXNlO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgJjpob3Zlcjo6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgfVxuXG4gIC5mYSB7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIH1cbn1cblxuLnBvc3Qtc3RpY2t5LWZsYWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8vIEZpeCBpc3N1ZSAjODAgIzE0MFxuICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xufVxuXG4ucG9zdHMtZXhwYW5kIC5wb3N0LW1ldGEtY29udGFpbmVyIHtcbiAgY29sb3I6ICRncmV5LWRhcms7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktcG9zdHM7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbGVzdDtcbiAgbWFyZ2luLXRvcDogM3B4O1xuXG4gIC5wb3N0LWRlc2NyaXB0aW9uIHtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtc21hbGw7XG4gICAgbWFyZ2luLXRvcDogMnB4O1xuICB9XG5cbiAgdGltZSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCAkZ3JleS1kYXJrO1xuICB9XG59XG5cbi8vIEZsZXhib3ggbGF5b3V0IG1ha2VzIGl0IHBvc3NpYmxlIHRvIHJlb3JkZXIgdGhlIGNoaWxkXG4vLyBlbGVtZW50cyBvZiAucG9zdC1tZXRhIHRocm91Z2ggdGhlIGBvcmRlcmAgQ1NTIHByb3BlcnR5XG4ucG9zdC1tZXRhIHtcbiAgZmxleC13cmFwKCk7XG59XG5cbi8vIC5wb3N0LW1ldGEtaXRlbSBleGlzdHMgaW4gLnBvc3QtbWV0YSBhbmQgZm9vdGVyXG46bm90KC5wb3N0LW1ldGEtYnJlYWspICsgLnBvc3QtbWV0YS1pdGVtOjpiZWZvcmUge1xuICBjb250ZW50OiAnfCc7XG4gIG1hcmdpbjogMCAuNWVtO1xufVxuXG4ucG9zdC1tZXRhLWl0ZW0taWNvbiB7XG4gIG1hcmdpbi1yaWdodDogM3B4O1xufVxuXG4ucG9zdC1tZXRhLWl0ZW0tdGV4dCB7XG4gIGlmIChub3QgaGV4by1jb25maWcoJ3Bvc3RfbWV0YS5pdGVtX3RleHQnKSkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICArdGFibGV0LW1vYmlsZSgpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5wb3N0LW1ldGEtYnJlYWsge1xuICBmbGV4LWJhc2lzOiAxMDAlO1xuICBoZWlnaHQ6IDA7XG59XG5cbmlmIChoZXhvLWNvbmZpZygnYnVzdWFuemlfY291bnQuZW5hYmxlJykgYW5kIGhleG8tY29uZmlnKCdidXN1YW56aV9jb3VudC5wb3N0X3ZpZXdzJykpIHtcbiAgI2J1c3VhbnppX2NvbnRhaW5lcl9wYWdlX3B2IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCIucG9zdC1uYXYge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgJGdhaW5zYm9ybztcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAzMHB4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbi10b3A6IDFlbTtcbiAgcGFkZGluZzogMTBweCA1cHggMDtcbn1cblxuLnBvc3QtbmF2LWl0ZW0ge1xuICBmbGV4OiAxO1xuXG4gIGEge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICB0b3A6IDJweDtcbiAgICB9XG4gIH1cblxuICAuZmEge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbGVzdDtcbiAgfVxuXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIC5mYSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICB9XG4gIH1cblxuICAmOmxhc3QtY2hpbGQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgLmZhIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGbGV4Ym94IGxheW91dCBtYWtlcyBpdCBwb3NzaWJsZSB0byByZW9yZGVyIHRoZSBjaGlsZFxuLy8gZWxlbWVudHMgb2YgLnBvc3QtZm9vdGVyIHRocm91Z2ggdGhlIGBvcmRlcmAgQ1NTIHByb3BlcnR5XG4vLyBGaXggaXNzdWUgIzE2XG4vLyBUbyBkbzogdXNlIGBnYXBgIGluc3RlYWQgb2YgYG1hcmdpbmBcbi8vIFNlZSBodHRwczovL2Nhbml1c2UuY29tL2ZsZXhib3gtZ2FwXG4ucG9zdC1mb290ZXIge1xuICBmbGV4LWNvbHVtbigpO1xufVxuXG4ucG9zdC1lb2Yge1xuICBiYWNrZ3JvdW5kOiAkZ3JleS1saWdodDtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogJHBvc3QtZW9mLW1hcmdpbi10b3AgYXV0byAkcG9zdC1lb2YtbWFyZ2luLWJvdHRvbTtcbiAgd2lkdGg6IDglO1xuXG4gIC5wb3N0LWJsb2NrOmxhc3Qtb2YtdHlwZSAmIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbmlmIChoZXhvLWNvbmZpZygnY3JlYXRpdmVfY29tbW9ucy5wb3N0JykpIHtcbiAgLnBvc3QtY29weXJpZ2h0IHVsIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogLjVlbSAxZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBvc3QtY2FyZCgpO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJ1xcZjI1ZSc7XG4gICAgICBmb250LWZhbWlseTogJ0ZvbnQgQXdlc29tZSA2IEJyYW5kcyc7XG4gICAgICBmb250LXNpemU6IDIwMHB4O1xuICAgICAgb3BhY2l0eTogLjE7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogLTUwcHg7XG4gICAgICB0b3A6IC0xNTBweDtcbiAgICB9XG4gIH1cbn1cblxuLnBvc3QtdGFncyB7XG4gIG1hcmdpbi10b3A6IDQwcHg7XG4gIHRleHQtYWxpZ246ICRzY2hlbWUtdGV4dC1hbGlnbjtcblxuICBhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsZXI7XG5cbiAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIH1cbiAgfVxufVxuIiwiLnNvY2lhbC1saWtlIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRnYWluc2Jvcm87XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbDtcbiAgbWFyZ2luLXRvcDogMWVtO1xuICBwYWRkaW5nLXRvcDogMWVtO1xuICBmbGV4LXdyYXAoKTtcblxuICBhIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICB9XG59XG4iLCIucmV3YXJkLWNvbnRhaW5lciB7XG4gIG1hcmdpbjogJHBvc3QtY2FyZC1tYXJnaW47XG4gIHBhZGRpbmc6IDFlbSAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgYnV0dG9uIHtcbiAgICBidXR0b24oJHNpZGViYXItaGlnaGxpZ2h0KTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkc2lkZWJhci1oaWdobGlnaHQ7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIG91dGxpbmU6IDA7XG4gICAgdmVydGljYWwtYWxpZ246IHRleHQtdG9wO1xuICB9XG59XG5cbi5wb3N0LXJld2FyZCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmctdG9wOiAyMHB4O1xuXG4gICYuYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIGRpdiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgc3BhbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICBpZiAoaGV4by1jb25maWcoJ3Jld2FyZF9zZXR0aW5ncy5hbmltYXRpb24nKSkge1xuICAgICAgJjpob3ZlciBzcGFuIHtcbiAgICAgICAgYW5pbWF0aW9uOiBuZXh0LXJvbGwgLjFzIGluZmluaXRlIGxpbmVhcjtcbiAgICAgICAgLy8gVGhlIGFuaW1hdGlvbiBtYXkgYWZmZWN0IDpob3ZlciBvZiBpbWcgaW4gZGFyayBtb2RlXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGltZyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogLjhlbSAyZW0gMDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgd2lkdGg6ICRwb3N0LXJld2FyZC1pbWctd2lkdGg7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBuZXh0LXJvbGwge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooMzBkZWcpO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlWigtMzBkZWcpO1xuICB9XG59XG4iLCIuY2F0ZWdvcnktYWxsLXBhZ2Uge1xuICAuY2F0ZWdvcnktYWxsLXRpdGxlIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAuY2F0ZWdvcnktYWxsIHtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICB9XG5cbiAgLmNhdGVnb3J5LWxpc3Qge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAuY2F0ZWdvcnktbGlzdC1pdGVtIHtcbiAgICBtYXJnaW46IDVweCAxMHB4O1xuICB9XG5cbiAgLmNhdGVnb3J5LWxpc3QtY291bnQge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbGVzdDtcbiAgICBiYWRnZSgpO1xuICB9XG5cbiAgLmNhdGVnb3J5LWxpc3QtY2hpbGQge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxufVxuIiwiQGtleWZyYW1lcyBkb3QtZmxhc2gge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKC44KTtcbiAgfVxufVxuXG4uZXZlbnQtbGlzdCB7XG4gIGhyIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmxhY2stZGVlcDtcbiAgICBtYXJnaW46IDIwcHggMCA0NXB4O1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGJsYWNrLWRlZXA7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBjb250ZW50OiAnTk9XJztcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgcGFkZGluZzogMCA1cHg7XG4gICAgfVxuICB9XG5cbiAgLmV2ZW50IHtcbiAgICAtLWV2ZW50LWJhY2tncm91bmQ6ICRibGFjay1kZWVwO1xuICAgIC0tZXZlbnQtZm9yZWdyb3VuZDogJGdyZXk7XG4gICAgLS1ldmVudC10aXRsZTogd2hpdGU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZXZlbnQtYmFja2dyb3VuZCk7XG4gICAgcGFkZGluZzogMTVweDtcblxuICAgIC5ldmVudC1zdW1tYXJ5IHtcbiAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICBjb2xvcjogdmFyKC0tZXZlbnQtdGl0bGUpO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMCAwIDAgMzVweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgYW5pbWF0aW9uOiBkb3QtZmxhc2ggMXMgYWx0ZXJuYXRlIGluZmluaXRlIGVhc2UtaW4tb3V0O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ldmVudC10aXRsZSk7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIG1hcmdpbi10b3A6IC02cHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHJvdW5kLWljb24oMTJweCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtb2YtdHlwZShvZGQpIC5ldmVudC1zdW1tYXJ5OjpiZWZvcmUge1xuICAgICAgYW5pbWF0aW9uLWRlbGF5OiAuNXM7XG4gICAgfVxuXG4gICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgfVxuXG4gICAgLmV2ZW50LXJlbGF0aXZlLXRpbWUge1xuICAgICAgY29sb3I6IHZhcigtLWV2ZW50LWZvcmVncm91bmQpO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIHBhZGRpbmctbGVmdDogMTJweDtcbiAgICB9XG5cbiAgICAuZXZlbnQtZGV0YWlscyB7XG4gICAgICBjb2xvcjogdmFyKC0tZXZlbnQtZm9yZWdyb3VuZCk7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgICAgcGFkZGluZzogNnB4IDAgNnB4IDM1cHg7XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1ldmVudC1mb3JlZ3JvdW5kKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDlweDtcbiAgICAgICAgd2lkdGg6IDE0cHg7XG4gICAgICAgIGZvbnQtZmFtaWx5LWljb25zKCk7XG4gICAgICB9XG5cbiAgICAgICYuZXZlbnQtbG9jYXRpb246OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICdcXGYwNDEnO1xuICAgICAgfVxuXG4gICAgICAmLmV2ZW50LWR1cmF0aW9uOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnXFxmMDE3JztcbiAgICAgIH1cblxuICAgICAgJi5ldmVudC1kZXNjcmlwdGlvbjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJ1xcZjAyNCc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmV2ZW50LXBhc3Qge1xuICAgIC0tZXZlbnQtYmFja2dyb3VuZDogJHdoaXRlc21va2U7XG4gICAgLS1ldmVudC1mb3JlZ3JvdW5kOiAkZ3JleS1kYXJrO1xuICAgIC0tZXZlbnQtdGl0bGU6ICRibGFjay1kZWVwO1xuICB9XG59XG4iLCJ1bC5icmVhZGNydW1iIHtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsZXN0O1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDFlbSAwO1xuICBwYWRkaW5nOiAwIDJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gIH1cblxuICBsaTpub3QoOmZpcnN0LWNoaWxkKTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnL1xcMDBhMCc7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBwYWRkaW5nOiAuNWVtO1xuICB9XG5cbiAgbGk6bGFzdC1jaGlsZCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cbn1cbiIsIi50YWctY2xvdWQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgYSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMTBweDtcbiAgfVxufVxuXG5mb3IgJHRhZy1jbG91ZCBpbiAoMCAuLiAxMCkge1xuICAkdGFnLWNsb3VkLWNvbG9yID0gbWl4KCR0YWctY2xvdWQtZW5kLCAkdGFnLWNsb3VkLXN0YXJ0LCAkdGFnLWNsb3VkICogMTApO1xuICAudGFnLWNsb3VkLXskdGFnLWNsb3VkfSB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHRhZy1jbG91ZC1jb2xvcjtcbiAgICBjb2xvcjogJHRhZy1jbG91ZC1jb2xvcjtcbiAgfVxufVxuXG5pZiAoaGV4by1jb25maWcoJ2Rhcmttb2RlJykpIHtcbiAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykge1xuICAgIGZvciAkdGFnLWNsb3VkIGluICgwIC4uIDEwKSB7XG4gICAgICAkdGFnLWNsb3VkLWNvbG9yID0gbWl4KCR0YWctY2xvdWQtZW5kLWRhcmssICR0YWctY2xvdWQtc3RhcnQtZGFyaywgJHRhZy1jbG91ZCAqIDEwKTtcbiAgICAgIC50YWctY2xvdWQteyR0YWctY2xvdWR9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHRhZy1jbG91ZC1jb2xvcjtcbiAgICAgICAgY29sb3I6ICR0YWctY2xvdWQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJpZiAoaGV4by1jb25maWcoJ2xvY2FsX3NlYXJjaC5lbmFibGUnKSBvciBoZXhvLWNvbmZpZygnYWxnb2xpYV9zZWFyY2guZW5hYmxlJykpIHtcbiAgLnNlYXJjaC1hY3RpdmUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAuc2VhcmNoLXBvcC1vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDApO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IC40cywgYmFja2dyb3VuZCAuNHM7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6ICR6aW5kZXgtNDtcblxuICAgIC5zZWFyY2gtYWN0aXZlICYge1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAuMyk7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cbiAgfVxuXG4gIC5zZWFyY2gtcG9wdXAge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtYmctY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBoZWlnaHQ6IDgwJTtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjRzO1xuICAgIHdpZHRoOiA3MDBweDtcblxuICAgIC5zZWFyY2gtYWN0aXZlICYge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB9XG5cbiAgICArbW9iaWxlKCkge1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5zZWFyY2gtaWNvbiwgLnBvcHVwLWJ0bi1jbG9zZSB7XG4gICAgICBjb2xvcjogJGdyZXktZGFyaztcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICB9XG5cbiAgICAucG9wdXAtYnRuLWNsb3NlIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgJjpob3ZlciAuZmEge1xuICAgICAgICBjb2xvcjogJGJsYWNrLWRlZXA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnNlYXJjaC1oZWFkZXIge1xuICAgICAgYmFja2dyb3VuZDogJGdhaW5zYm9ybztcbiAgICAgIGlmIChoZXhvLWNvbmZpZygnZGFya21vZGUnKSkge1xuICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJGdyZXktZGltO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHg7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXB4O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHBhZGRpbmc6IDVweDtcbiAgICB9XG5cbiAgICBpbnB1dC5zZWFyY2gtaW5wdXQge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBvdXRsaW5lOiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5zZWFyY2gtcmVzdWx0LWNvbnRhaW5lciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gNTVweCk7XG4gICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgIHBhZGRpbmc6IDVweCAyNXB4O1xuXG4gICAgICBociB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBtYXJnaW46IDVweCAwIDEwcHg7XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5zZWFyY2gtcmVzdWx0LWxpc3Qge1xuICAgICAgbWFyZ2luOiAwIDVweDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgYS5zZWFyY2gtcmVzdWx0LXRpdGxlIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cblxuICAgIHAuc2VhcmNoLXJlc3VsdCB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggZGFzaGVkICRncmV5LWxpZ2h0O1xuICAgICAgcGFkZGluZzogNXB4IDA7XG4gICAgfVxuXG4gICAgLnNlYXJjaC1pbnB1dC1jb250YWluZXIge1xuICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgcGFkZGluZzogMnB4O1xuICAgIH1cblxuICAgIC5zZWFyY2gtcmVzdWx0LWljb24ge1xuICAgICAgY29sb3I6ICRncmV5LWxpZ2h0O1xuICAgICAgbWFyZ2luOiBhdXRvO1xuICAgIH1cbiAgfVxufVxuXG5tYXJrLnNlYXJjaC1rZXl3b3JkIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgJHJlZDtcbiAgY29sb3I6ICRyZWQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG5pZiAoaGV4by1jb25maWcoJ2FsZ29saWFfc2VhcmNoLmVuYWJsZScpKSB7XG4gIC5zZWFyY2gtc3RhdHMge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICBpbWcge1xuICAgICAgaGVpZ2h0OiAxZW07XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG5cbiAgLnBhZ2luYXRpb24uYWxnb2xpYS1wYWdpbmF0aW9uIHtcbiAgICAvLyBPdmVycmlkZSB0aGUgZGVmYXVsdCBzdHlsZSBvZiBwYWdpbmF0aW9uXG4gICAgLy8gUHV0IHBhZ2luYXRpb24gYXQgdGhlIGJvdHRvbSB3aGVuIHRoZXJlIGlzIHN1ZmZpY2llbnQgaGVpZ2h0XG4gICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICBwYWRkaW5nOiA0MHB4IDA7XG4gICAgLy8gT3ZlcnJpZGUgbW90aW9uXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3RoZW1lLW5leHQvaGV4by10aGVtZS1uZXh0L2lzc3Vlcy81MzdcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG59XG4iLCJAaW1wb3J0ICdkaXNxdXNqcyc7XG5AaW1wb3J0ICdnaXRhbGsnO1xuQGltcG9ydCAndXR0ZXJhbmNlcyc7XG5AaW1wb3J0ICdzZWFyY2gnO1xuQGltcG9ydCAnbWF0aCc7XG5cbi51c2UtbW90aW9uIC5hbmltYXRlZCB7XG4gIC8vIEZpeCBpc3N1ZSAjNDggIzU1XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IG5vbmU7XG4gIC8vIEZpeCBpc3N1ZSAjNDYgLmFuaW1hdGVkIGluIC5zaWRlYmFyXG4gIHZpc2liaWxpdHk6IGluaGVyaXQ7XG59XG5cbi51c2UtbW90aW9uIC5zaWRlYmFyIC5hbmltYXRlZCB7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG59XG4iLCJoZWFkZXIuaGVhZGVyIHtcbiAgZ2VtaW5pLWJsb2NrKCk7XG5cbiAgK3RhYmxldC1tb2JpbGUoKSB7XG4gICAgYm9yZGVyLXJhZGl1czogaW5pdGlhbDtcbiAgfVxufVxuXG4ubWFpbiB7XG4gIC8vIE1ha2Ugc3VyZSB0aGF0IC5oZWFkZXIgYW5kIC5tYWluLWlubmVyIGFyZSB0aGUgc2FtZSBoZWlnaHRcbiAgLy8gUmVxdWlyZWQgZm9yIC5zaWRlYmFyIGBwb3NpdGlvbjogc3RpY2t5O2BcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFpbi1jb250YWluZXIoKTtcblxuICBpZiAoJHNpZGViYXItdG9nZ2xlLWFsaWdubWVudCA9PSAncmlnaHQnKSB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICB9XG5cbiAgK3RhYmxldC1tb2JpbGUoKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLm1haW4taW5uZXIge1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1pbm5lcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6ICRjb250ZW50LXdyYXA7XG5cbiAgK3RhYmxldC1tb2JpbGUoKSB7XG4gICAgYm9yZGVyLXJhZGl1czogaW5pdGlhbDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4uZm9vdGVyLWlubmVyIHtcbiAgaWYgKCRzaWRlYmFyLXRvZ2dsZS1hbGlnbm1lbnQgPT0gJ3JpZ2h0Jykge1xuICAgIHBhZGRpbmctcmlnaHQ6ICRzaWRlYmFyLXdpZHRoLWR1YWwtY29sdW1uICsgJHNpZGViYXItb2Zmc2V0O1xuICB9IGVsc2Uge1xuICAgIHBhZGRpbmctbGVmdDogJHNpZGViYXItd2lkdGgtZHVhbC1jb2x1bW4gKyAkc2lkZWJhci1vZmZzZXQ7XG4gIH1cblxuICArdGFibGV0LW1vYmlsZSgpIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxufVxuIiwiLmNvbHVtbiB7XG4gIHdpZHRoOiAkc2lkZWJhci13aWR0aC1kdWFsLWNvbHVtbjtcblxuICArdGFibGV0LW1vYmlsZSgpIHtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxufVxuXG4uc2l0ZS1icmFuZC1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS10aGVtZS1jb2xvcik7XG5cbiAgLnNpdGUtbmF2LW9uICYge1xuICAgICt0YWJsZXQtbW9iaWxlKCkge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDE2cHggcmdiYSgwLCAwLCAwLCAuNSk7XG4gICAgfVxuICB9XG59XG5cbi5zaXRlLW1ldGEge1xuICBwYWRkaW5nOiAyMHB4IDA7XG59XG5cbi5zaXRlLW5hdi10b2dnbGUsIC5zaXRlLW5hdi1yaWdodCB7XG4gICt0YWJsZXQoKSB7XG4gICAgZmxleC1jb2x1bW4oKTtcbiAgfVxuXG4gIC50b2dnbGUge1xuICAgIGNvbG9yOiB3aGl0ZTtcblxuICAgIC50b2dnbGUtbGluZSB7XG4gICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICB9XG4gIH1cbn1cbiIsIi5zaXRlLW5hdiB7XG4gICt0YWJsZXQoKSB7XG4gICAgc2l0ZS1uYXYtaGlkZS1ieS1kZWZhdWx0KCk7XG4gIH1cbn1cblxuLm1lbnUgLm1lbnUtaXRlbSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG5cbiAgYSB7XG4gICAgcGFkZGluZzogNXB4IDIwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQtY29sb3I7XG4gICAgbWVudS1pdGVtLXJvdygpO1xuXG4gICAgaWYgKG5vdCBoZXhvLWNvbmZpZygnbWVudV9zZXR0aW5ncy5iYWRnZXMnKSkge1xuICAgICAgJi5tZW51LWl0ZW0tYWN0aXZlOjphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRncmV5O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGNvbnRlbnQ6ICcgJztcbiAgICAgICAgaGVpZ2h0OiA2cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDE1cHg7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB3aWR0aDogNnB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICt0YWJsZXQtbW9iaWxlKCkge1xuICAgICYubWVudS1pdGVtLXNlYXJjaCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLnN1Yi1tZW51IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiA2cHggMDtcblxuICAubWVudS1pdGVtIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICBhIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgbWFyZ2luOiA1cHggMTBweDtcbiAgICAgIHBhZGRpbmc6IGluaXRpYWw7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzaWRlYmFyLWhpZ2hsaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWVudS1pdGVtLWFjdGl2ZSB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNpZGViYXItaGlnaGxpZ2h0O1xuICAgIGNvbG9yOiAkc2lkZWJhci1oaWdobGlnaHQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzaWRlYmFyLWhpZ2hsaWdodDtcbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgJy4uL1Bpc2Nlcy9fbGF5b3V0JztcbkBpbXBvcnQgJy4uL1Bpc2Nlcy9faGVhZGVyJztcbkBpbXBvcnQgJy4uL1Bpc2Nlcy9fbWVudSc7XG5AaW1wb3J0ICcuLi9QaXNjZXMvX3N1Yi1tZW51JztcbkBpbXBvcnQgJy4uL1Bpc2Nlcy9fc2lkZWJhcic7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBSZXdyaXRlIF9sYXlvdXQuc3R5bFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNpZGViYXIgcGFkZGluZyB1c2VkIGFzIG1haW4gZGVza3RvcCBjb250ZW50IHBhZGRpbmcgZm9yIHNpZGViYXIgcGFkZGluZyBhbmQgcG9zdCBibG9ja3MgcGFkZGluZyB0b28uXG5cbi8vIEluIGBzb3VyY2UvY3NzL192YXJpYWJsZXMvUGlzY2VzLnN0eWxgIHRoZXJlIGFyZSB2YXJpYWJsZSBmb3IgbWFpbiBvZmZzZXQ6XG4vLyAkc2lkZWJhci1vZmZzZXQgICAgICAgICAgICAgICAgICAgPSAxMnB4O1xuLy8gVGhpcyB2YWx1ZSBhbHNlIGNhbiBiZSBjaGFuZ2VkIGluIG1haW4gTmV4VCBjb25maWcgYXMgYHNpZGViYXI6IG9mZnNldDogMTJgIG9wdGlvbi5cblxuLy8gSW4gYHNvdXJjZS9jc3MvX3ZhcmlhYmxlcy9iYXNlLnN0eWxgIHRoZXJlIGFyZSB2YXJpYWJsZXMgZm9yIG90aGVyIHJlc29sdXRpb25zOlxuLy8gJGNvbnRlbnQtdGFibGV0LXBhZGRpbmcgICAgICAgICAgID0gMTBweDtcbi8vICRjb250ZW50LW1vYmlsZS1wYWRkaW5nICAgICAgICAgICA9IDhweDtcbi8vIFAuUy4gSWYgdSB3YW50IHRvIGNoYW5nZSB0aGlzIHBhZGRpbmdzIHUgbWF5IHNldCB0aGlzIHZhcmlhYmxlcyBpbnRvIGBjdXN0b21fZmlsZV9wYXRoLnZhcmlhYmxlYCAoaW4gdGhlbWUgX2NvbmZpZy55bWwpLlxuXG4vLyBTbywgaXQgd2lsbCAxMnB4IGluIERlc2t0b3AsIDEwcHggaW4gVGFibGV0cyBhbmQgOHB4IGluIE1vYmlsZXMgZm9yIGFsbCBwb3NzaWJsZSBwYWRkaW5ncy5cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIERlc2t0b3AgbGF5b3V0IHN0eWxlcy5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBQb3N0IGJsb2Nrcy5cbi5tYWluLWlubmVyIHtcbiAgLnN1Yi1tZW51LCAucG9zdC1ibG9jaywgLnRhYnMtY29tbWVudCwgJiA+IC5jb21tZW50cywgLmNvbW1lbnQtcG9zaXRpb24gLmNvbW1lbnRzLCAucGFnaW5hdGlvbiB7XG4gICAgZ2VtaW5pLWJsb2NrKCk7XG4gIH1cblxuICAucG9zdC1ibG9jazpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBnZW1pbmktYmxvY2stbm90LWZpcnN0KCk7XG4gICAgfVxuICB9XG5cbiAgLnRhYnMtY29tbWVudCwgJiA+IC5jb21tZW50cywgLmNvbW1lbnQtcG9zaXRpb24gLmNvbW1lbnRzLCAucGFnaW5hdGlvbiB7XG4gICAgZ2VtaW5pLWJsb2NrLW5vdC1maXJzdCgpO1xuICB9XG59XG5cbi8vIFBvc3QgJiBDb21tZW50cyBibG9ja3MuXG4ucG9zdC1ibG9jaywgLmNvbW1lbnRzIHtcbiAgcGFkZGluZzogJGNvbnRlbnQtZGVza3RvcC1wYWRkaW5nO1xufVxuXG4vLyBQb3N0IGRlbGltaXRlcnMuXG4ucG9zdC1lb2Yge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vLyBQYWdpbmF0aW9uLlxuLnBhZ2luYXRpb24ge1xuICBib3JkZXItdG9wOiBpbml0aWFsO1xuICBwYWRkaW5nOiAxMHB4IDA7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBIZWFkZXJzLlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi5wb3N0LWJvZHkge1xuICBoMSwgaDIge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9keS1iZy1jb2xvcjtcbiAgfVxuXG4gIGgzIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICRib2R5LWJnLWNvbG9yO1xuICB9XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyA+IDc2OHB4ICYgPCA5OTFweFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbit0YWJsZXQoKSB7XG4gIC8vIFBvc3RzIGluIGJsb2Nrcy5cbiAgLm1haW4taW5uZXIge1xuICAgIHBhZGRpbmc6ICRjb250ZW50LXRhYmxldC1wYWRkaW5nO1xuICB9XG5cbiAgLnBvc3RzLWV4cGFuZCB7XG4gICAgLy8gQ29tcG9uZW50cyBpbnNpZGUgUG9zdHMuXG4gICAgLnBvc3QtYnV0dG9uIHtcbiAgICAgIG1hcmdpbi10b3A6ICgkY29udGVudC10YWJsZXQtcGFkZGluZyAqIDIpO1xuICAgIH1cbiAgfVxuXG4gIC5wb3N0LWJsb2NrIHtcbiAgICAvLyBJbnNpZGUgcG9zdHMgYmxvY2tzIGNvbnRlbnQgcGFkZGluZyAoZGVmYXVsdCA0MHB4KS5cbiAgICBwYWRkaW5nOiAoJGNvbnRlbnQtdGFibGV0LXBhZGRpbmcgKiAyKTtcbiAgfVxuXG4gIC5jb21tZW50cyB7XG4gICAgcGFkZGluZzogJGNvbnRlbnQtdGFibGV0LXBhZGRpbmcgKCRjb250ZW50LXRhYmxldC1wYWRkaW5nICogMik7XG4gICAgLy8gcGFkZGluZzogaW5pdGlhbDtcbiAgICAvLyBwYWRkaW5nLXRvcDogJGNvbnRlbnQtdGFibGV0LXBhZGRpbmc7XG4gIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIDwgNzY3cHhcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4rbW9iaWxlKCkge1xuICAvLyBQb3N0cyBpbiBibG9ja3MuXG4gIC5tYWluLWlubmVyIHtcbiAgICBwYWRkaW5nOiAkY29udGVudC1tb2JpbGUtcGFkZGluZztcbiAgfVxuXG4gIC5wb3N0cy1leHBhbmQge1xuICAgIC8vIENvbXBvbmVudHMgaW5zaWRlIFBvc3RzLlxuICAgIC5wb3N0LWJ1dHRvbiB7XG4gICAgICBtYXJnaW46ICRzaWRlYmFyLW9mZnNldCAwO1xuICAgIH1cbiAgfVxuXG4gIC5wb3N0LWJsb2NrIHtcbiAgICAvLyBJbnNpZGUgcG9zdHMgYmxvY2tzIGNvbnRlbnQgcGFkZGluZyAoZGVmYXVsdCA0MHB4KS5cbiAgICBwYWRkaW5nOiAkc2lkZWJhci1vZmZzZXQ7XG4gIH1cblxuICAuY29tbWVudHMge1xuICAgIHBhZGRpbmc6IDEwcHggJHNpZGViYXItb2Zmc2V0O1xuICB9XG59XG4iXX0= */