/* !!! WARNING !!! 
This file is auto-generated. 
Do not edit it or else you will lose changes next time you compile! */

/*

github.com style (c) Vasily Polovnyov <vast@whiteants.net>

*/

.hljs {
    display: block;
    overflow-x: auto;
    padding: 0.5em;
    color: #333;
    background: #f8f8f8;
    -webkit-text-size-adjust: none;
}

.hljs-comment,
.diff .hljs-header {
    color: #998;
    font-style: italic;
}

.hljs-keyword,
.css .rule .hljs-keyword,
.hljs-winutils,
.nginx .hljs-title,
.hljs-subst,
.hljs-request,
.hljs-status {
    color: #333;
    font-weight: bold;
}

.hljs-number,
.hljs-hexcolor,
.ruby .hljs-constant {
    color: #008080;
}

.hljs-string,
.hljs-tag .hljs-value,
.hljs-doctag,
.tex .hljs-formula {
    color: #d14;
}

.hljs-title,
.hljs-id,
.scss .hljs-preprocessor {
    color: #900;
    font-weight: bold;
}

.hljs-list .hljs-keyword,
.hljs-subst {
    font-weight: normal;
}

.hljs-class .hljs-title,
.hljs-type,
.vhdl .hljs-literal,
.tex .hljs-command {
    color: #458;
    font-weight: bold;
}

.hljs-tag,
.hljs-tag .hljs-title,
.hljs-rule .hljs-property,
.django .hljs-tag .hljs-keyword {
    color: #000080;
    font-weight: normal;
}

.hljs-attribute,
.hljs-variable,
.lisp .hljs-body,
.hljs-name {
    color: #008080;
}

.hljs-regexp {
    color: #009926;
}

.hljs-symbol,
.ruby .hljs-symbol .hljs-string,
.lisp .hljs-keyword,
.clojure .hljs-keyword,
.scheme .hljs-keyword,
.tex .hljs-special,
.hljs-prompt {
    color: #990073;
}

.hljs-built_in {
    color: #0086b3;
}

.hljs-preprocessor,
.hljs-pragma,
.hljs-pi,
.hljs-doctype,
.hljs-shebang,
.hljs-cdata {
    color: #999;
    font-weight: bold;
}

.hljs-deletion {
    background: #fdd;
}

.hljs-addition {
    background: #dfd;
}

.diff .hljs-change {
    background: #0086b3;
}

.hljs-chunk {
    color: #aaa;
}

.uk-global-header #uky-header,.uk-container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}
@media (min-width:768px){
    .uk-search-bar__container,.uk-global-header #uky-header,.uk-container{width:750px}
}
@media (min-width:992px){
    .uk-search-bar__container,.uk-global-header #uky-header,.uk-container{width:970px}
}
@media (min-width:1200px){
    .uk-search-bar__container,.uk-global-header #uky-header,.uk-container{width:1170px}
}

.uk-search-bar__container{
    margin:0 auto;
}

.uk-search-bar__form input[type="search"],.uk-search-bar__submit,.uk-global-header__search-button button{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s}

.uk-search-bar__form form.search-form{
    margin-bottom:0;
}

.uk-lockup:before,.uk-lockup:after,.uk-lockup:before,.uk-lockup:after,.uk-search-bar__row:before,.uk-search-bar__row:after,.uk-footer-text:before,.uk-footer-text:after,.uk-row:before,.uk-row:after,.uk-lockup--white:before,.uk-lockup--white:after,.uk-lockup--white:before,.uk-lockup--white:after,.uk-search-bar__container:before,.uk-search-bar__container:after,.uk-global-header #uky-header:before,.uk-global-header #uky-header:after,.uk-container:before,.uk-container:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-header:after,.modal-footer:after,.uk-lockup:after,.uk-lockup:after,.uk-search-bar__row:after,.uk-footer-text:after,.uk-row:after,.uk-lockup--white:after,.uk-lockup--white:after,.uk-search-bar__container:after,.uk-global-header #uky-header:after,.uk-container:after{clear:both}



.uk-lockup,.uk-lockup--white{margin-left:0;margin-right:0;width:400px;padding-top:0;margin:0 auto;text-align:center}
.uk-lockup a{text-align:center;color:white}
.uk-lockup--white{color:white;fill:white}
.uk-lockup svg{fill:#fff;overflow:hidden}

.uk-logo{border:1px solid black;box-sizing:border-box;display:block}
.uk-logo img{width:50%;padding:25%}.uk-logo--white img{width:50%;padding:25%}
.uk-lockup,.uk-lockup--white{margin-left:-15px;margin-right:-15px;margin:0 auto;text-align:center;width:400px}
.uk-lockup img{width:100%}.uk-lockup--white{color:#FFF}

.uk-accordion__button{width:100%;padding:15px 60px 15px 30px;cursor:pointer;display:inline-block;background-color:#f1f1f1;border:0;font-size:17px;line-height:17px;text-align:left}
.uk-accordion__content{padding:15px 30px}
.uk-accordion--bordered{margin-top:15px;border:3px solid #f1f1f1}
/*[aria-hidden=true]{display:none !important}*/

.uk-search-bar{position:absolute;z-index:1000;width:100%;background:#272727;height:60px;transition:.2s;top:0;transition:top 200ms cubic-bezier(.17, .04, .03, .94)}
.uk-search-bar[aria-hidden=true]{top:-60px;display:block !important}
.uk-search-bar__menu{display:none;position:relative;float:left;width:25%;min-height:1px;padding-left:15px;padding-right:15px}

@media (min-width:992px){
    .uk-search-bar__menu{float:left;width:25%}
}
@media (min-width:992px){
    .uk-search-bar__menu{display:block}
}

.uk-search-bar__menu-item{display:block;height:46px;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:800;background:#272727;color:white;border:1px solid white;padding:2px 10px;transition:.2s;line-height:40px;width:80px;text-align:center;float:left;margin-right:10px}
.uk-search-bar__menu-item:hover{background:white;color:#272727;text-decoration:none;border:1px solid #272727}
.uk-search-bar__row{margin-left:-20px;margin-right:-20px;margin:7px 0;position:relative}
.uk-search-bar__dismiss{position:absolute;right:0;top:10px;background:#272727;border:0;padding:0}
.uk-search-bar__dismiss svg{fill:white;width:20px}

@media (min-width:768px){
    .uk-search-bar__dismiss{right:10px}
    .uk-search-bar__dismiss svg{width:30px}
}

.uk-search-bar__form{height:100%;position:relative}
/*.uk-search-bar__form form {display:none;}*/
.uk-search-bar__form input[type="search"]{float:left;width:66.66666667%;margin-left:0;position:relative;min-height:1px;padding-left:15px;padding-right:15px;font-size:30px;height:46px;border-radius:0}

@media (min-width:992px){
    .uk-search-bar__form input[type="search"]{float:left;width:41.66666667%}
}
@media (min-width:992px){
    .uk-search-bar__form input[type="search"]{margin-left:8.33333333%}
}
@media (min-width:768px){
    .uk-search-bar__form input[type="search"]{margin-right:10px}
}

.uk-search-bar__submit{float:left;width:25%;margin-left:0;position:relative;min-height:1px;padding-left:15px;padding-right:15px;right:1px;height:46px;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:800;background:#272727;color:white;border:1px solid white;padding:2px 5px;transition:.2s;border-radius:0}

@media (min-width:768px){
    .uk-search-bar__submit{float:left;width:16.66666667%}
}
@media (min-width:992px){
    .uk-search-bar__submit{float:left;width:16.66666667%}
}
@media (min-width:768px){
    .uk-search-bar__submit{right:0}
}

.uk-search-bar__submit:hover{background:white;color:#272727;border:1px solid #272727}
.uk-social{display:none}.uk-social__list{border-right:none;padding-left:0;padding-right:10px}
.uk-social__list-item{list-style-type:none;line-height:20px;margin-bottom:5px}
.uk-social__list-item:last-of-type a{border:none}
.uk-social__list-item a{display:block;width:90px;margin:0 auto;padding:10px 0 5px;border-bottom:2px solid rgba(255,255,255,0.2)}
.uk-social__icon{width:90px;height:25px;fill:#fff}
.uk-social__icon:hover{fill:#c3c3c3;transition:.2s ease}

@media (min-width:992px){
    .uk-social{display:block}
}

.uk-global-footer{
    background:#0033A0;
    /*height:100%;*/
    padding-top:50px
}
.uk-global-footer footer{margin:0 0;padding-left:20px;padding-right:20px}

@media (min-width:992px){
    .uk-global-footer footer{padding-left:0;padding-right:0}
}

.uk-footer-text{margin-left:0;margin-right:0;text-align:left}
.uk-footer-text__list{width:auto;padding-left:0;text-align:left;margin-bottom:10px !important;}
.uk-footer-text__list-item{list-style:none;display:inline;color:white;border-right:1px solid white;padding:0 10px;font-size:14px;line-height:32px;font-weight:bold;}
.uk-footer-text__list-item a{color:white; font-size:14px;}
.uk-footer-text__list-item a:hover{color:white;}
.uk-footer-text__list-item:first-child{padding:0 10px 0 0}
.uk-footer-text__list-item:last-child{border:none;padding:0 0 0 10px}

@media (min-width:992px){
    .uk-footer-text__list{text-align:center}
}

.uk-global-header{background:#0033A0;min-height:60px}
.uk-global-header__logo{float:left;width:75%;position:relative;min-height:1px;padding-right:15px;padding-left:0;margin-top:5px}

@media (min-width:768px){
    .uk-global-header__logo{float:left;width:41.66666667%}
}
@media (min-width:992px){
    .uk-global-header__logo{float:left;width:33.33333333%}
}

.uk-global-header__logo img{height:50px;width:100%}
.uk-global-header__left-nav{display:none;height:60px;float:left;width:25%;position:relative;min-height:1px;padding-left:15px;padding-right:15px}

@media (min-width:768px){
    .uk-global-header__left-nav{float:left;width:33.33333333%}
}
@media (min-width:992px){
    .uk-global-header__left-nav{float:left;width:50%}
}
@media (min-width:768px){
    .uk-global-header__left-nav{display:block}
}

.uk-global-header__right-nav{float:left;width:25%;position:relative;min-height:1px;padding-left:15px;padding-right:0}

@media (min-width:768px){
    .uk-global-header__right-nav{float:left;width:25%}
}
@media (min-width:992px){
    .uk-global-header__right-nav{float:left;width:16.66666667%}
}

.uk-global-header__nav-list{margin:0;padding:0;float:right}
.uk-global-header__nav-item{float:left;list-style:none;padding:0 5px;transition:.2s}
.uk-global-header__nav-item:hover{background-color:#272727}
.uk-global-header__myUK{display:none}
.uk-global-header__myUK a{display:block;background:url(../images/uk-global-header/my-UK.png) center no-repeat;background-size:contain;width:60px;height:60px;overflow:hidden;text-indent:-9999px}

@media (min-width:768px){
    .uk-global-header__myUK{display:block}
}

.uk-global-header__search-button{display:block;position:relative;left:15px}
.uk-global-header__search-button button{background-color:#0033A0;border:none;height:60px;transition:.2s;padding:0 10px}
.uk-global-header__search-button button svg{height:30px;width:30px;fill:#ffffff}
.uk-global-header__search-button:hover button{background-color:#272727}
.uk-row{margin-left:-15px;margin-right:-15px}
.uk-layout-aside{position:relative;min-height:1px;padding-left:15px;padding-right:15px}

@media (min-width:992px){
    .uk-layout-aside{float:left;width:16.66666667%}
}
.uk-layout-aside+.uk-layout-main{position:relative;min-height:1px;padding-left:15px;padding-right:15px}

@media (min-width:992px){
    .uk-layout-aside+.uk-layout-main{ float:left;width:83.33333333%}
}

@media (max-width:450px){
    .uk-lockup,.uk-lockup--white{width:100% !important;}

    ul.uk-footer-text__list{
        margin-left:0;
    }

    ul.uk-footer-text__list li{
        padding:0;
        margin:0;
        border:0;
        display:block;
    }
    ul.uk-footer-text__list li:last-child{
        padding:0;
        margin:0;
    }

}

/*@font-face{font-family:'Open Sans';src:url("../fonts/OpenSans-Light.woff2") format("woff2"),url("../fonts/OpenSans-Light.woff") format("woff");font-weight:300;font-style:normal}*/
/*@font-face{font-family:'Open Sans';src:url("../fonts/OpenSans-Regular.woff2") format("woff2"),url("../fonts/OpenSans-Regular.woff") format("woff");font-weight:normal;font-style:normal}*/
/*@font-face{font-family:'Open Sans';src:url("../fonts/OpenSans-Italic.woff2") format("woff2"),url("../fonts/OpenSans-Italic.woff") format("woff");font-weight:normal;font-style:italic}*/
/*@font-face{font-family:'Open Sans';src:url("../fonts/OpenSans-Bold.woff2") format("woff2"),url("../fonts/OpenSans-Bold.woff") format("woff");font-weight:bold;font-style:normal}*/
/*@font-face{font-family:'Inconsolata';src:url("../fonts/inconsolata.woff2") format("woff2"),url("../fonts/inconsolata.woff") format("woff");font-weight:normal;font-style:normal}*/

html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}body{font-family:"Open Sans","Helvetica Neue",Arial,sans-serif;color:#4a4a4a;margin:0}
.pp-container{position:absolute;z-index:200;min-height:100%;width:100%;right:0;transition:all 200ms ease;background-color:#fff}.pp-container.open{right:350px}
.pp-container.open .pp-menu-toggle__hamburger{background-color:transparent}
.pp-container.open .pp-menu-toggle__hamburger:before,.pp-container.open .pp-menu-toggle__hamburger:after{top:0}
.pp-container.open .pp-menu-toggle__hamburger:before{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}
.pp-container.open .pp-menu-toggle__hamburger:after{-webkit-transform:rotate(45deg);transform:rotate(45deg)}
.pp-container.open .pp-open-overlay{position:absolute;top:0;right:0;left:0;bottom:0;background-color:rgba(0,0,0,0.4);cursor:pointer}
.pp-content{max-width:750px;margin:0 20px}@media (min-width: 790px){.pp-content{margin:0 auto}}
.library__color-swatch{float:left;margin-right:2%;margin-bottom:15px;width:48%;border:1px solid #dadada;padding:5px;border-radius:3px}
.library__color-swatch:nth-child(even){margin-right:0}

@media (min-width: 790px){
    .library__color-swatch{width:20%}
    .library__color-swatch:nth-child(even){margin-right:2%}
    .library__color-swatch:nth-child(4n+4){margin-right:0}
}
.library__color-swatch__preview{display:block;margin-bottom:10px;height:75px}
.library__color-swatch__details{padding:0;list-style:none}
.pp-header{position:relative;margin-bottom:60px;padding-left:20px;padding-right:20px;height:70px;background-color:#0033a0;border-bottom:1px solid #dadada}
.pp-header__logo{max-height:50px;margin-top:10px}
.pp-menu-toggle{position:absolute;right:0;top:0;bottom:0;width:100px;height:100%;cursor:pointer}
.pp-menu-toggle__hamburger{position:absolute;top:50%;right:15px;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:25px;height:5px;float:right;text-indent:-999em;background-color:white;transition:all 200ms ease}
.pp-menu-toggle__hamburger:before,.pp-menu-toggle__hamburger:after{content:'';position:absolute;right:0;display:block;width:25px;height:5px;background-color:white;border-radius:3px;transition:all 200ms ease}
.pp-menu-toggle__hamburger:before{top:-9px}
.pp-menu-toggle__hamburger:after{top:9px}
.markdown__body:not(.library__example)>h1:not(.library__example){font-size:32px;font-weight:bold;border-bottom:1px solid #dadada;padding-bottom:10px}
.markdown__body:not(.library__example)>h2:not(.library__example){margin-bottom:20px;border-bottom:1px solid #dadada;padding-bottom:10px;font-size:24px;font-weight:bold}
.markdown__body:not(.library__example)>h3:not(.library__example){margin-top:10px;margin-bottom:20px;font-size:20px;font-weight:bold}
.markdown__body:not(.library__example)>p:not(.library__example){margin-bottom:1em;font-size:18px}
.markdown__body:not(.library__example)>p:not(.library__example) a{color:#0033a0;text-decoration:none}
.markdown__body:not(.library__example)>p:not(.library__example) a:hover{text-decoration:underline}
.markdown__body:not(.library__example)>p:not(.library__example) em{font-style:italic}
.markdown__body:not(.library__example)>code:not(.library__example){padding:3px;background-color:#f2f2f2;border:1px solid #dadada;border-radius:3px;font-family:"Inconsolata",Courier,monospace;font-size:16px}
.markdown__body:not(.library__example)>code:not(.library__example) .hljs{padding:15px;line-height:1.5em}
.pp-nav{position:fixed;z-index:100;top:0;right:0;overflow-y:scroll;width:350px;height:100%;background-color:#4a4a4a;padding:15px 0;color:#fff;box-shadow:5px 0 10px -2px rgba(0,0,0,0.2) inset}
.pp-nav a{width:100%;display:inline-block;padding:15px;text-decoration:none}
.pp-nav ul{margin:0 0 50px;padding-left:0;list-style:none}
.pp-nav li{border-bottom:1px solid #717171}
.pp-nav li a{color:#fff;font-size:16px;font-weight:300}
.pp-nav li a:hover{background-color:#313131}
.pp-nav__heading a{color:#B8B8B8;font-size:14px;font-weight:bold;text-transform:uppercase}
.uk-sgnav{background:white}
.uk-sgnav ul{padding:0}
.uk-sgnav ul li{list-style:none}
.uk-sgnav ul li a{display:block;font-size:16px;line-height:1;padding:10px;color:#212121}
.uk-sgnav>ul>li{padding:0;border-bottom:1px solid #212121}
.uk-sgnav ul li li{padding-left:10px}
.uk-sgnav ul li:last-child{border-bottom:none}
.markdown__body:not(.library__example) table{border-spacing:0;border-collapse:collapse}
.markdown__body:not(.library__example) table th{border-bottom:2px solid #dadada;padding:8px}
.markdown__body:not(.library__example) table td{border-bottom:1px solid #dadada;padding:8px}
.markdown__body{font-size:2rem;line-height:1.7}
.standards-section{margin-bottom:50px}
.pp-content{max-width:inherit}
.pp-content h1{font-family:'Lora', serif;text-align:center}
.pp-content h2{font-size:35px;margin:25px 0;font-weight:700;text-transform:uppercase}
.pp-content h2,.pp-content h3,.pp-content h4{font-family:'Muli', sans}
.pp-content h4{margin:50px 0 20px;font-size:30px}
.pp-content .font-example{font-size:30px;color:black}
.pp-content .font-example--muli{font-family:'Muli'}
.pp-content .font-example--lora{font-family:'Lora'}
.hljs{background:none !important;font-size:12px}
.preview{padding:15px 30px;border:1px solid #f1f1f1}.preview--full{padding:0;border:1px solid #f1f1f1}

/*!
 *  Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
 *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
 */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}

@charset "UTF-8";
/* Slider */
.slick-slider {
  position: relative;
  display: block;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent; }

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0; }
  .slick-list:focus {
    outline: none; }
  .slick-list.dragging {
    cursor: pointer;
    cursor: hand; }

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0); }

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block; }
  .slick-track:before, .slick-track:after {
    content: "";
    display: table; }
  .slick-track:after {
    clear: both; }
  .slick-loading .slick-track {
    visibility: hidden; }

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  display: none; }
  [dir="rtl"] .slick-slide {
    float: right; }
  .slick-slide img {
    display: block; }
  .slick-slide.slick-loading img {
    display: none; }
  .slick-slide.dragging img {
    pointer-events: none; }
  .slick-initialized .slick-slide {
    display: block; }
  .slick-loading .slick-slide {
    visibility: hidden; }
  .slick-vertical .slick-slide {
    display: block;
    height: auto;
    border: 1px solid transparent; }

.slick-arrow.slick-hidden {
  display: none; }

/* Slider */
.slick-loading .slick-list {
  background: #fff url("./ajax-loader.gif") center center no-repeat; }

/* Icons */
@font-face {
  font-family: "slick";
  src: url("./fonts/slick.eot");
  src: url("./fonts/slick.eot?#iefix") format("embedded-opentype"), url("./fonts/slick.woff") format("woff"), url("./fonts/slick.ttf") format("truetype"), url("./fonts/slick.svg#slick") format("svg");
  font-weight: normal;
  font-style: normal; }
/* Arrows */
.slick-prev,
.slick-next {
  position: absolute;
  display: block;
  height: 20px;
  width: 20px;
  line-height: 0px;
  font-size: 0px;
  cursor: pointer;
  background: transparent;
  color: transparent;
  top: 50%;
  margin-top: -10px\9;
  /*lte IE 8*/
  -webkit-transform: translate(0, -50%);
  -ms-transform: translate(0, -50%);
  transform: translate(0, -50%);
  padding: 0;
  border: none;
  outline: none; }
  .slick-prev:hover, .slick-prev:focus,
  .slick-next:hover,
  .slick-next:focus {
    outline: none;
    background: transparent;
    color: transparent; }
    .slick-prev:hover:before, .slick-prev:focus:before,
    .slick-next:hover:before,
    .slick-next:focus:before {
      opacity: 1; }
  .slick-prev.slick-disabled:before,
  .slick-next.slick-disabled:before {
    opacity: 0.25; }

.slick-prev:before, .slick-next:before {
  font-family: "slick";
  font-size: 20px;
  line-height: 1;
  color: white;
  opacity: 0.75;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.slick-prev {
  left: -25px; }
  [dir="rtl"] .slick-prev {
    left: auto;
    right: -25px; }
  .slick-prev:before {
    content: "←"; }
    [dir="rtl"] .slick-prev:before {
      content: "→"; }

.slick-next {
  right: -25px; }
  [dir="rtl"] .slick-next {
    left: -25px;
    right: auto; }
  .slick-next:before {
    content: "→"; }
    [dir="rtl"] .slick-next:before {
      content: "←"; }

/* Dots */
.slick-slider {
  margin-bottom: 30px; }

.slick-dots {
  position: absolute;
  bottom: -45px;
  list-style: none;
  display: block;
  text-align: center;
  padding: 0;
  width: 100%; }
  .slick-dots li {
    position: relative;
    display: inline-block;
    height: 20px;
    width: 20px;
    margin: 0 5px;
    padding: 0;
    cursor: pointer; }
    .slick-dots li button {
      border: 0;
      background: transparent;
      display: block;
      height: 20px;
      width: 20px;
      outline: none;
      line-height: 0px;
      font-size: 0px;
      color: transparent;
      padding: 5px;
      cursor: pointer; }
      .slick-dots li button:hover, .slick-dots li button:focus {
        outline: none; }
        .slick-dots li button:hover:before, .slick-dots li button:focus:before {
          opacity: 1; }
      .slick-dots li button:before {
        position: absolute;
        top: 0;
        left: 0;
        content: "•";
        width: 20px;
        height: 20px;
        font-family: "slick";
        font-size: 6px;
        line-height: 20px;
        text-align: center;
        color: black;
        opacity: 0.25;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale; }
    .slick-dots li.slick-active button:before {
      color: black;
      opacity: 0.75; }

/**
 * Foundation for Sites by ZURB
 * Version 6.2.3
 * foundation.zurb.com
 * Licensed under MIT Open Source
 */
.row {
  max-width: 73.125rem;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  flex-flow: row wrap; }
  .row .row {
    max-width: none;
    margin-left: -0.9375rem;
    margin-right: -0.9375rem; }
    @media screen and (min-width: 40em) {
      .row .row {
        margin-left: -1.25rem;
        margin-right: -1.25rem; } }
  .row.expanded {
    max-width: none; }
  .row.collapse > .column, .row.collapse > .columns {
    padding-left: 0;
    padding-right: 0; }

.column, .columns {
  flex: 1 1 0px;
  padding-left: 0.9375rem;
  padding-right: 0.9375rem;
  min-width: initial; }
  @media screen and (min-width: 40em) {
    .column, .columns {
      padding-left: 1.25rem;
      padding-right: 1.25rem; } }

.column.row.row, .row.row.columns {
  float: none;
  display: block; }
  .row .column.row.row, .row .row.row.columns {
    padding-left: 0;
    padding-right: 0;
    margin-left: 0;
    margin-right: 0; }

.small-1 {
  flex: 0 0 8.33333%;
  max-width: 8.33333%; }

.small-offset-0 {
  margin-left: 0%; }

.small-2 {
  flex: 0 0 16.66667%;
  max-width: 16.66667%; }

.small-offset-1 {
  margin-left: 8.33333%; }

.small-3 {
  flex: 0 0 25%;
  max-width: 25%; }

.small-offset-2 {
  margin-left: 16.66667%; }

.small-4 {
  flex: 0 0 33.33333%;
  max-width: 33.33333%; }

.small-offset-3 {
  margin-left: 25%; }

.small-5 {
  flex: 0 0 41.66667%;
  max-width: 41.66667%; }

.small-offset-4 {
  margin-left: 33.33333%; }

.small-6 {
  flex: 0 0 50%;
  max-width: 50%; }

.small-offset-5 {
  margin-left: 41.66667%; }

.small-7 {
  flex: 0 0 58.33333%;
  max-width: 58.33333%; }

.small-offset-6 {
  margin-left: 50%; }

.small-8 {
  flex: 0 0 66.66667%;
  max-width: 66.66667%; }

.small-offset-7 {
  margin-left: 58.33333%; }

.small-9 {
  flex: 0 0 75%;
  max-width: 75%; }

.small-offset-8 {
  margin-left: 66.66667%; }

.small-10 {
  flex: 0 0 83.33333%;
  max-width: 83.33333%; }

.small-offset-9 {
  margin-left: 75%; }

.small-11 {
  flex: 0 0 91.66667%;
  max-width: 91.66667%; }

.small-offset-10 {
  margin-left: 83.33333%; }

.small-12 {
  flex: 0 0 100%;
  max-width: 100%; }

.small-offset-11 {
  margin-left: 91.66667%; }

.small-order-1 {
  order: 1; }

.small-order-2 {
  order: 2; }

.small-order-3 {
  order: 3; }

.small-order-4 {
  order: 4; }

.small-order-5 {
  order: 5; }

.small-order-6 {
  order: 6; }

.small-up-1 {
  flex-wrap: wrap; }
  .small-up-1 > .column, .small-up-1 > .columns {
    flex: 0 0 100%;
    max-width: 100%; }

.small-up-2 {
  flex-wrap: wrap; }
  .small-up-2 > .column, .small-up-2 > .columns {
    flex: 0 0 50%;
    max-width: 50%; }

.small-up-3 {
  flex-wrap: wrap; }
  .small-up-3 > .column, .small-up-3 > .columns {
    flex: 0 0 33.33333%;
    max-width: 33.33333%; }

.small-up-4 {
  flex-wrap: wrap; }
  .small-up-4 > .column, .small-up-4 > .columns {
    flex: 0 0 25%;
    max-width: 25%; }

.small-up-5 {
  flex-wrap: wrap; }
  .small-up-5 > .column, .small-up-5 > .columns {
    flex: 0 0 20%;
    max-width: 20%; }

.small-up-6 {
  flex-wrap: wrap; }
  .small-up-6 > .column, .small-up-6 > .columns {
    flex: 0 0 16.66667%;
    max-width: 16.66667%; }

.small-up-7 {
  flex-wrap: wrap; }
  .small-up-7 > .column, .small-up-7 > .columns {
    flex: 0 0 14.28571%;
    max-width: 14.28571%; }

.small-up-8 {
  flex-wrap: wrap; }
  .small-up-8 > .column, .small-up-8 > .columns {
    flex: 0 0 12.5%;
    max-width: 12.5%; }

.small-collapse > .column, .small-collapse > .columns {
  padding-left: 0;
  padding-right: 0; }

.small-uncollapse > .column, .small-uncollapse > .columns {
  padding-left: 0.9375rem;
  padding-right: 0.9375rem; }

@media screen and (min-width: 40em) {
  .medium-1 {
    flex: 0 0 8.33333%;
    max-width: 8.33333%; }

  .medium-offset-0 {
    margin-left: 0%; }

  .medium-2 {
    flex: 0 0 16.66667%;
    max-width: 16.66667%; }

  .medium-offset-1 {
    margin-left: 8.33333%; }

  .medium-3 {
    flex: 0 0 25%;
    max-width: 25%; }

  .medium-offset-2 {
    margin-left: 16.66667%; }

  .medium-4 {
    flex: 0 0 33.33333%;
    max-width: 33.33333%; }

  .medium-offset-3 {
    margin-left: 25%; }

  .medium-5 {
    flex: 0 0 41.66667%;
    max-width: 41.66667%; }

  .medium-offset-4 {
    margin-left: 33.33333%; }

  .medium-6 {
    flex: 0 0 50%;
    max-width: 50%; }

  .medium-offset-5 {
    margin-left: 41.66667%; }

  .medium-7 {
    flex: 0 0 58.33333%;
    max-width: 58.33333%; }

  .medium-offset-6 {
    margin-left: 50%; }

  .medium-8 {
    flex: 0 0 66.66667%;
    max-width: 66.66667%; }

  .medium-offset-7 {
    margin-left: 58.33333%; }

  .medium-9 {
    flex: 0 0 75%;
    max-width: 75%; }

  .medium-offset-8 {
    margin-left: 66.66667%; }

  .medium-10 {
    flex: 0 0 83.33333%;
    max-width: 83.33333%; }

  .medium-offset-9 {
    margin-left: 75%; }

  .medium-11 {
    flex: 0 0 91.66667%;
    max-width: 91.66667%; }

  .medium-offset-10 {
    margin-left: 83.33333%; }

  .medium-12 {
    flex: 0 0 100%;
    max-width: 100%; }

  .medium-offset-11 {
    margin-left: 91.66667%; }

  .medium-order-1 {
    order: 1; }

  .medium-order-2 {
    order: 2; }

  .medium-order-3 {
    order: 3; }

  .medium-order-4 {
    order: 4; }

  .medium-order-5 {
    order: 5; }

  .medium-order-6 {
    order: 6; }

  .medium-up-1 {
    flex-wrap: wrap; }
    .medium-up-1 > .column, .medium-up-1 > .columns {
      flex: 0 0 100%;
      max-width: 100%; }

  .medium-up-2 {
    flex-wrap: wrap; }
    .medium-up-2 > .column, .medium-up-2 > .columns {
      flex: 0 0 50%;
      max-width: 50%; }

  .medium-up-3 {
    flex-wrap: wrap; }
    .medium-up-3 > .column, .medium-up-3 > .columns {
      flex: 0 0 33.33333%;
      max-width: 33.33333%; }

  .medium-up-4 {
    flex-wrap: wrap; }
    .medium-up-4 > .column, .medium-up-4 > .columns {
      flex: 0 0 25%;
      max-width: 25%; }

  .medium-up-5 {
    flex-wrap: wrap; }
    .medium-up-5 > .column, .medium-up-5 > .columns {
      flex: 0 0 20%;
      max-width: 20%; }

  .medium-up-6 {
    flex-wrap: wrap; }
    .medium-up-6 > .column, .medium-up-6 > .columns {
      flex: 0 0 16.66667%;
      max-width: 16.66667%; }

  .medium-up-7 {
    flex-wrap: wrap; }
    .medium-up-7 > .column, .medium-up-7 > .columns {
      flex: 0 0 14.28571%;
      max-width: 14.28571%; }

  .medium-up-8 {
    flex-wrap: wrap; }
    .medium-up-8 > .column, .medium-up-8 > .columns {
      flex: 0 0 12.5%;
      max-width: 12.5%; } }
@media screen and (min-width: 40em) and (min-width: 40em) {
  .medium-expand {
    flex: 1 1 0px; } }
.row.medium-unstack > .column, .row.medium-unstack > .columns {
  flex: 0 0 100%; }
  @media screen and (min-width: 40em) {
    .row.medium-unstack > .column, .row.medium-unstack > .columns {
      flex: 1 1 0px; } }
@media screen and (min-width: 40em) {
  .medium-collapse > .column, .medium-collapse > .columns {
    padding-left: 0;
    padding-right: 0; }

  .medium-uncollapse > .column, .medium-uncollapse > .columns {
    padding-left: 1.25rem;
    padding-right: 1.25rem; } }
@media screen and (min-width: 64em) {
  .large-1 {
    flex: 0 0 8.33333%;
    max-width: 8.33333%; }

  .large-offset-0 {
    margin-left: 0%; }

  .large-2 {
    flex: 0 0 16.66667%;
    max-width: 16.66667%; }

  .large-offset-1 {
    margin-left: 8.33333%; }

  .large-3 {
    flex: 0 0 25%;
    max-width: 25%; }

  .large-offset-2 {
    margin-left: 16.66667%; }

  .large-4 {
    flex: 0 0 33.33333%;
    max-width: 33.33333%; }

  .large-offset-3 {
    margin-left: 25%; }

  .large-5 {
    flex: 0 0 41.66667%;
    max-width: 41.66667%; }

  .large-offset-4 {
    margin-left: 33.33333%; }

  .large-6 {
    flex: 0 0 50%;
    max-width: 50%; }

  .large-offset-5 {
    margin-left: 41.66667%; }

  .large-7 {
    flex: 0 0 58.33333%;
    max-width: 58.33333%; }

  .large-offset-6 {
    margin-left: 50%; }

  .large-8 {
    flex: 0 0 66.66667%;
    max-width: 66.66667%; }

  .large-offset-7 {
    margin-left: 58.33333%; }

  .large-9 {
    flex: 0 0 75%;
    max-width: 75%; }

  .large-offset-8 {
    margin-left: 66.66667%; }

  .large-10 {
    flex: 0 0 83.33333%;
    max-width: 83.33333%; }

  .large-offset-9 {
    margin-left: 75%; }

  .large-11 {
    flex: 0 0 91.66667%;
    max-width: 91.66667%; }

  .large-offset-10 {
    margin-left: 83.33333%; }

  .large-12 {
    flex: 0 0 100%;
    max-width: 100%; }

  .large-offset-11 {
    margin-left: 91.66667%; }

  .large-order-1 {
    order: 1; }

  .large-order-2 {
    order: 2; }

  .large-order-3 {
    order: 3; }

  .large-order-4 {
    order: 4; }

  .large-order-5 {
    order: 5; }

  .large-order-6 {
    order: 6; }

  .large-up-1 {
    flex-wrap: wrap; }
    .large-up-1 > .column, .large-up-1 > .columns {
      flex: 0 0 100%;
      max-width: 100%; }

  .large-up-2 {
    flex-wrap: wrap; }
    .large-up-2 > .column, .large-up-2 > .columns {
      flex: 0 0 50%;
      max-width: 50%; }

  .large-up-3 {
    flex-wrap: wrap; }
    .large-up-3 > .column, .large-up-3 > .columns {
      flex: 0 0 33.33333%;
      max-width: 33.33333%; }

  .large-up-4 {
    flex-wrap: wrap; }
    .large-up-4 > .column, .large-up-4 > .columns {
      flex: 0 0 25%;
      max-width: 25%; }

  .large-up-5 {
    flex-wrap: wrap; }
    .large-up-5 > .column, .large-up-5 > .columns {
      flex: 0 0 20%;
      max-width: 20%; }

  .large-up-6 {
    flex-wrap: wrap; }
    .large-up-6 > .column, .large-up-6 > .columns {
      flex: 0 0 16.66667%;
      max-width: 16.66667%; }

  .large-up-7 {
    flex-wrap: wrap; }
    .large-up-7 > .column, .large-up-7 > .columns {
      flex: 0 0 14.28571%;
      max-width: 14.28571%; }

  .large-up-8 {
    flex-wrap: wrap; }
    .large-up-8 > .column, .large-up-8 > .columns {
      flex: 0 0 12.5%;
      max-width: 12.5%; } }
@media screen and (min-width: 64em) and (min-width: 64em) {
  .large-expand {
    flex: 1 1 0px; } }
.row.large-unstack > .column, .row.large-unstack > .columns {
  flex: 0 0 100%; }
  @media screen and (min-width: 64em) {
    .row.large-unstack > .column, .row.large-unstack > .columns {
      flex: 1 1 0px; } }
@media screen and (min-width: 64em) {
  .large-collapse > .column, .large-collapse > .columns {
    padding-left: 0;
    padding-right: 0; }

  .large-uncollapse > .column, .large-uncollapse > .columns {
    padding-left: 1.25rem;
    padding-right: 1.25rem; } }
.shrink {
  flex: 0 0 auto;
  max-width: 100%; }

.column.align-top, .align-top.columns {
  align-self: flex-start; }

.column.align-bottom, .align-bottom.columns {
  align-self: flex-end; }

.column.align-middle, .align-middle.columns {
  align-self: center; }

.column.align-stretch, .align-stretch.columns {
  align-self: stretch; }

.align-right {
  justify-content: flex-end; }

.align-center {
  justify-content: center; }

.align-justify {
  justify-content: space-between; }

.align-spaced {
  justify-content: space-around; }

.align-top {
  align-items: flex-start; }

.align-self-top {
  align-self: flex-start; }

.align-bottom {
  align-items: flex-end; }

.align-self-bottom {
  align-self: flex-end; }

.align-middle {
  align-items: center; }

.align-self-middle {
  align-self: center; }

.align-stretch {
  align-items: stretch; }

.align-self-stretch {
  align-self: stretch; }

.small-order-1 {
  order: 1; }

.small-order-2 {
  order: 2; }

.small-order-3 {
  order: 3; }

.small-order-4 {
  order: 4; }

.small-order-5 {
  order: 5; }

.small-order-6 {
  order: 6; }

@media screen and (min-width: 40em) {
  .medium-order-1 {
    order: 1; }

  .medium-order-2 {
    order: 2; }

  .medium-order-3 {
    order: 3; }

  .medium-order-4 {
    order: 4; }

  .medium-order-5 {
    order: 5; }

  .medium-order-6 {
    order: 6; } }
@media screen and (min-width: 64em) {
  .large-order-1 {
    order: 1; }

  .large-order-2 {
    order: 2; }

  .large-order-3 {
    order: 3; }

  .large-order-4 {
    order: 4; }

  .large-order-5 {
    order: 5; }

  .large-order-6 {
    order: 6; } }
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS and IE text size adjust after device orientation change,
 *    without disabling user zoom.
 */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

/**
 * Remove default margin.
 */
body {
  margin: 0; }

/* HTML5 display definitions
   ========================================================================== */
/**
 * Correct `block` display not defined for any HTML5 element in IE 8/9.
 * Correct `block` display not defined for `details` or `summary` in IE 10/11
 * and Firefox.
 * Correct `block` display not defined for `main` in IE 11.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block; }

/**
 * 1. Correct `inline-block` display not defined in IE 8/9.
 * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
 */
audio,
canvas,
progress,
video {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */ }

/**
 * Prevent modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */
audio:not([controls]) {
  display: none;
  height: 0; }

/**
 * Address `[hidden]` styling not present in IE 8/9/10.
 * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
 */
[hidden],
template {
  display: none; }

/* Links
   ========================================================================== */
/**
 * Remove the gray background color from active links in IE 10.
 */
a {
  background-color: transparent; }

/**
 * Improve readability of focused elements when they are also in an
 * active/hover state.
 */
a:active,
a:hover {
  outline: 0; }

/* Text-level semantics
   ========================================================================== */
/**
 * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
 */
abbr[title] {
  border-bottom: 1px dotted; }

/**
 * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
 */
b,
strong {
  font-weight: bold; }

/**
 * Address styling not present in Safari and Chrome.
 */
dfn {
  font-style: italic; }

/**
 * Address variable `h1` font-size and margin within `section` and `article`
 * contexts in Firefox 4+, Safari, and Chrome.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0; }

/**
 * Address styling not present in IE 8/9.
 */
mark {
  background: #ff0;
  color: #000; }

/**
 * Address inconsistent and variable font size in all browsers.
 */
small {
  font-size: 80%; }

/**
 * Prevent `sub` and `sup` affecting `line-height` in all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

/* Embedded content
   ========================================================================== */
/**
 * Remove border when inside `a` element in IE 8/9/10.
 */
img {
  border: 0; }

/**
 * Correct overflow not hidden in IE 9/10/11.
 */
svg:not(:root) {
  overflow: hidden; }

/* Grouping content
   ========================================================================== */
/**
 * Address margin not present in IE 8/9 and Safari.
 */
figure {
  margin: 1em 40px; }

/**
 * Address differences between Firefox and other browsers.
 */
hr {
  box-sizing: content-box;
  height: 0; }

/**
 * Contain overflow in all browsers.
 */
pre {
  overflow: auto; }

/**
 * Address odd `em`-unit font size rendering in all browsers.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em; }

/* Forms
   ========================================================================== */
/**
 * Known limitation: by default, Chrome and Safari on OS X allow very limited
 * styling of `select`, unless a `border` property is set.
 */
/**
 * 1. Correct color not being inherited.
 *    Known issue: affects color of disabled elements.
 * 2. Correct font properties not being inherited.
 * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
 */
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  /* 1 */
  font: inherit;
  /* 2 */
  margin: 0;
  /* 3 */ }

/**
 * Address `overflow` set to `hidden` in IE 8/9/10/11.
 */
button {
  overflow: visible; }

/**
 * Address inconsistent `text-transform` inheritance for `button` and `select`.
 * All other form control elements do not inherit `text-transform` values.
 * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
 * Correct `select` style inheritance in Firefox.
 */
button,
select {
  text-transform: none; }

/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *    `input` and others.
 */
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */ }

/**
 * Re-set default cursor for disabled elements.
 */
button[disabled],
html input[disabled] {
  cursor: not-allowed; }

/**
 * Remove inner padding and border in Firefox 4+.
 */
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0; }

/**
 * Address Firefox 4+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */
input {
  line-height: normal; }

/**
 * It's recommended that you don't attempt to style these elements.
 * Firefox's implementation doesn't respect box-sizing, padding, or width.
 *
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 */
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * Fix the cursor style for Chrome's increment/decrement buttons. For certain
 * `font-size` values of the `input`, it causes the cursor style of the
 * decrement button to change from `default` to `text`.
 */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto; }

/**
 * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
 */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  box-sizing: content-box;
  /* 2 */ }

/**
 * Remove inner padding and search cancel button in Safari and Chrome on OS X.
 * Safari (but not Chrome) clips the cancel button when the search input has
 * padding (and `textfield` appearance).
 */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/**
 * Define consistent border, margin, and padding.
 * [NOTE] We don't enable this ruleset in Foundation, because we want the <fieldset> element to have plain styling.
 */
/* fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
} */
/**
 * 1. Correct `color` not being inherited in IE 8/9/10/11.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * Remove default vertical scrollbar in IE 8/9/10/11.
 */
textarea {
  overflow: auto; }

/**
 * Don't inherit the `font-weight` (applied by a rule above).
 * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
 */
optgroup {
  font-weight: bold; }

/* Tables
   ========================================================================== */
/**
 * Remove most spacing between table cells.
 */
table {
  border-collapse: collapse;
  border-spacing: 0; }

td,
th {
  padding: 0; }

.foundation-mq {
  font-family: "small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em"; }

html {
  font-size: 100%;
  box-sizing: border-box; }

*,
*::before,
*::after {
  box-sizing: inherit; }

body {
  padding: 0;
  margin: 0;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: normal;
  line-height: 1.5;
  color: #000;
  background: #0033A0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

img {
  max-width: 100%;
  height: auto;
  -ms-interpolation-mode: bicubic;
  display: inline-block;
  vertical-align: middle; }

textarea {
  height: auto;
  min-height: 50px;
  border-radius: 0; }

select {
  width: 100%;
  border-radius: 0; }

#map_canvas img,
#map_canvas embed,
#map_canvas object,
.map_canvas img,
.map_canvas embed,
.map_canvas object,
.mqa-display img,
.mqa-display embed,
.mqa-display object {
  max-width: none !important; }

button {
  -webkit-appearance: none;
  -moz-appearance: none;
  background: transparent;
  padding: 0;
  border: 0;
  border-radius: 0;
  line-height: 1; }
  [data-whatinput='mouse'] button {
    outline: 0; }

.is-visible {
  display: block !important; }

.is-hidden {
  display: none !important; }

div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
form,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0; }

p {
  font-size: inherit;
  line-height: 1.6;
  margin-bottom: 1rem;
  text-rendering: optimizeLegibility; }

em,
i {
  font-style: italic;
  line-height: inherit; }

strong,
b {
  font-weight: bold;
  line-height: inherit; }

small {
  font-size: 80%;
  line-height: inherit; }

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "MuseoSlab-900", Georgia, Cambria, "Times New Roman", Times, serif;
  font-weight: bold;
  font-style: normal;
  color: inherit;
  text-rendering: optimizeLegibility;
  margin-top: 0;
  margin-bottom: 0.5rem;
  line-height: 1.4; }
  h1 small,
  h2 small,
  h3 small,
  h4 small,
  h5 small,
  h6 small {
    color: #a5acaf;
    line-height: 0; }

h1 {
  font-size: 1.875rem; }

h2 {
  font-size: 1.5625rem; }

h3 {
  font-size: 1.25rem; }

h4 {
  font-size: 1.25rem; }

h5 {
  font-size: 1.25rem; }

h6 {
  font-size: 1.1875rem; }

@media screen and (min-width: 40em) {
  h1 {
    font-size: 2.5rem; }

  h2 {
    font-size: 1.875rem; }

  h3 {
    font-size: 1.5625rem; }

  h4 {
    font-size: 1.5625rem; }

  h5 {
    font-size: 1.4375rem; }

  h6 {
    font-size: 1.25rem; } }
a {
  color: #2199e8;
  text-decoration: none;
  line-height: inherit;
  cursor: pointer; }
  a:hover, a:focus {
    color: #1585cf; }
  a img {
    border: 0; }

hr {
  max-width: 73.125rem;
  height: 0;
  border-right: 0;
  border-top: 0;
  border-bottom: 1px solid #a5acaf;
  border-left: 0;
  margin: 1.25rem auto;
  clear: both; }

ul,
ol,
dl {
  line-height: 1.6;
  margin-bottom: 1rem;
  list-style-position: outside; }

li {
  font-size: inherit; }

ul {
  list-style-type: disc;
  margin-left: 1.25rem; }

ol {
  margin-left: 1.25rem; }

ul ul, ol ul, ul ol, ol ol {
  margin-left: 1.25rem;
  margin-bottom: 0; }

dl {
  margin-bottom: 1rem; }
  dl dt {
    margin-bottom: 0.3rem;
    font-weight: bold; }

blockquote {
  margin: 0 0 1rem;
  padding: 0.5625rem 1.25rem 0 1.1875rem;
  border-left: 1px solid #a5acaf; }
  blockquote, blockquote p {
    line-height: 1.6;
    color: #63656a; }

cite {
  display: block;
  font-size: 0.8125rem;
  color: #63656a; }
  cite:before {
    content: '\2014 \0020'; }

abbr {
  color: #000;
  cursor: help;
  border-bottom: 1px dotted #000; }

code {
  font-family: "Muli", sans-serif;
  font-weight: normal;
  color: #000;
  background-color: #c8c8c7;
  border: 1px solid #a5acaf;
  padding: 0.125rem 0.3125rem 0.0625rem; }

kbd {
  padding: 0.125rem 0.25rem 0;
  margin: 0;
  background-color: #c8c8c7;
  color: #000;
  font-family: "Muli", sans-serif; }

.subheader {
  margin-top: 0.2rem;
  margin-bottom: 0.5rem;
  font-weight: normal;
  line-height: 1.4;
  color: #63656a; }

.lead {
  font-size: 125%;
  line-height: 1.6; }

.stat {
  font-size: 2.5rem;
  line-height: 1; }
  p + .stat {
    margin-top: -1rem; }

.no-bullet {
  margin-left: 0;
  list-style: none; }

.text-left {
  text-align: left; }

.text-right {
  text-align: right; }

.text-center {
  text-align: center; }

.text-justify {
  text-align: justify; }

@media screen and (min-width: 40em) {
  .medium-text-left {
    text-align: left; }

  .medium-text-right {
    text-align: right; }

  .medium-text-center {
    text-align: center; }

  .medium-text-justify {
    text-align: justify; } }
@media screen and (min-width: 64em) {
  .large-text-left {
    text-align: left; }

  .large-text-right {
    text-align: right; }

  .large-text-center {
    text-align: center; }

  .large-text-justify {
    text-align: justify; } }
.show-for-print {
  display: none !important; }

@media print {
  * {
    background: transparent !important;
    color: black !important;
    box-shadow: none !important;
    text-shadow: none !important; }

  .show-for-print {
    display: block !important; }

  .hide-for-print {
    display: none !important; }

  table.show-for-print {
    display: table !important; }

  thead.show-for-print {
    display: table-header-group !important; }

  tbody.show-for-print {
    display: table-row-group !important; }

  tr.show-for-print {
    display: table-row !important; }

  td.show-for-print {
    display: table-cell !important; }

  th.show-for-print {
    display: table-cell !important; }

  a,
  a:visited {
    text-decoration: underline; }

  a[href]:after {
    content: " (" attr(href) ")"; }

  .ir a:after,
  a[href^='javascript:']:after,
  a[href^='#']:after {
    content: ''; }

  abbr[title]:after {
    content: " (" attr(title) ")"; }

  pre,
  blockquote {
    border: 1px solid #63656a;
    page-break-inside: avoid; }

  thead {
    display: table-header-group; }

  tr,
  img {
    page-break-inside: avoid; }

  img {
    max-width: 100% !important; }

  @page {
    margin: 0.5cm; }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3; }

  h2,
  h3 {
    page-break-after: avoid; } }
.button, .webform-client-form input.form-submit {
  display: inline-block;
  text-align: center;
  line-height: 1;
  cursor: pointer;
  -webkit-appearance: none;
  transition: background-color 0.25s ease-out, color 0.25s ease-out;
  vertical-align: middle;
  border: 1px solid transparent;
  border-radius: 0;
  padding: 0.85em 1em;
  margin: 0 0 1rem 0;
  font-size: 0.9rem;
  background-color: #1897d4;
  color: #fff; }
  [data-whatinput='mouse'] .button, [data-whatinput='mouse'] .webform-client-form input.form-submit, .webform-client-form [data-whatinput='mouse'] input.form-submit {
    outline: 0; }
  .button:hover, .webform-client-form input.form-submit:hover, .button:focus, .webform-client-form input.form-submit:focus {
    background-color: #1480b4;
    color: #fff; }
  .button.tiny, .webform-client-form input.tiny.form-submit {
    font-size: 0.6rem; }
  .button.small, .webform-client-form input.small.form-submit {
    font-size: 0.75rem; }
  .button.large, .webform-client-form input.large.form-submit {
    font-size: 1.25rem; }
  .button.expanded, .webform-client-form input.expanded.form-submit {
    display: block;
    width: 100%;
    margin-left: 0;
    margin-right: 0; }
  .button.primary, .webform-client-form input.primary.form-submit {
    background-color: #2199e8;
    color: #fff; }
    .button.primary:hover, .webform-client-form input.primary.form-submit:hover, .button.primary:focus, .webform-client-form input.primary.form-submit:focus {
      background-color: #147cc0;
      color: #fff; }
  .button.secondary, .webform-client-form input.secondary.form-submit {
    background-color: #777;
    color: #fff; }
    .button.secondary:hover, .webform-client-form input.secondary.form-submit:hover, .button.secondary:focus, .webform-client-form input.secondary.form-submit:focus {
      background-color: #5f5f5f;
      color: #fff; }
  .button.success, .webform-client-form input.success.form-submit {
    background-color: #3adb76;
    color: #fff; }
    .button.success:hover, .webform-client-form input.success.form-submit:hover, .button.success:focus, .webform-client-form input.success.form-submit:focus {
      background-color: #22bb5b;
      color: #fff; }
  .button.warning, .webform-client-form input.warning.form-submit {
    background-color: #ffae00;
    color: #fff; }
    .button.warning:hover, .webform-client-form input.warning.form-submit:hover, .button.warning:focus, .webform-client-form input.warning.form-submit:focus {
      background-color: #cc8b00;
      color: #fff; }
  .button.alert, .webform-client-form input.alert.form-submit {
    background-color: #ec5840;
    color: #fff; }
    .button.alert:hover, .webform-client-form input.alert.form-submit:hover, .button.alert:focus, .webform-client-form input.alert.form-submit:focus {
      background-color: #da3116;
      color: #fff; }
  .button.hollow, .webform-client-form input.hollow.form-submit {
    border: 1px solid #2199e8;
    color: #2199e8; }
    .button.hollow, .webform-client-form input.hollow.form-submit, .button.hollow:hover, .webform-client-form input.hollow.form-submit:hover, .button.hollow:focus, .webform-client-form input.hollow.form-submit:focus {
      background-color: transparent; }
    .button.hollow:hover, .webform-client-form input.hollow.form-submit:hover, .button.hollow:focus, .webform-client-form input.hollow.form-submit:focus {
      border-color: #0c4d78;
      color: #0c4d78; }
    .button.hollow.primary, .webform-client-form input.hollow.primary.form-submit {
      border: 1px solid #2199e8;
      color: #2199e8; }
      .button.hollow.primary:hover, .webform-client-form input.hollow.primary.form-submit:hover, .button.hollow.primary:focus, .webform-client-form input.hollow.primary.form-submit:focus {
        border-color: #0c4d78;
        color: #0c4d78; }
    .button.hollow.secondary, .webform-client-form input.hollow.secondary.form-submit {
      border: 1px solid #777;
      color: #777; }
      .button.hollow.secondary:hover, .webform-client-form input.hollow.secondary.form-submit:hover, .button.hollow.secondary:focus, .webform-client-form input.hollow.secondary.form-submit:focus {
        border-color: #3b3b3b;
        color: #3b3b3b; }
    .button.hollow.success, .webform-client-form input.hollow.success.form-submit {
      border: 1px solid #3adb76;
      color: #3adb76; }
      .button.hollow.success:hover, .webform-client-form input.hollow.success.form-submit:hover, .button.hollow.success:focus, .webform-client-form input.hollow.success.form-submit:focus {
        border-color: #157539;
        color: #157539; }
    .button.hollow.warning, .webform-client-form input.hollow.warning.form-submit {
      border: 1px solid #ffae00;
      color: #ffae00; }
      .button.hollow.warning:hover, .webform-client-form input.hollow.warning.form-submit:hover, .button.hollow.warning:focus, .webform-client-form input.hollow.warning.form-submit:focus {
        border-color: #805700;
        color: #805700; }
    .button.hollow.alert, .webform-client-form input.hollow.alert.form-submit {
      border: 1px solid #ec5840;
      color: #ec5840; }
      .button.hollow.alert:hover, .webform-client-form input.hollow.alert.form-submit:hover, .button.hollow.alert:focus, .webform-client-form input.hollow.alert.form-submit:focus {
        border-color: #881f0e;
        color: #881f0e; }
  .button.disabled, .webform-client-form input.disabled.form-submit, .button[disabled], .webform-client-form input[disabled].form-submit {
    opacity: 0.25;
    cursor: not-allowed; }
    .button.disabled:hover, .webform-client-form input.disabled.form-submit:hover, .button.disabled:focus, .webform-client-form input.disabled.form-submit:focus, .button[disabled]:hover, .webform-client-form input[disabled].form-submit:hover, .button[disabled]:focus, .webform-client-form input[disabled].form-submit:focus {
      background-color: #1897d4;
      color: #fff; }
  .button.dropdown::after, .webform-client-form input.dropdown.form-submit::after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 0.4em;
    border-color: #fff transparent transparent;
    border-top-style: solid;
    border-bottom-width: 0;
    position: relative;
    top: 0.4em;
    float: right;
    margin-left: 1em;
    display: inline-block; }
  .button.arrow-only::after, .webform-client-form input.arrow-only.form-submit::after {
    margin-left: 0;
    float: none;
    top: -0.1em; }

[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],
textarea {
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: 2.4375rem;
  padding: 0.5rem;
  border: 1px solid #a5acaf;
  margin: 0 0 1rem;
  font-family: inherit;
  font-size: 1rem;
  color: #000;
  background-color: #fff;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  border-radius: 0;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  -webkit-appearance: none;
  -moz-appearance: none; }
  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,
  textarea:focus {
    border: 1px solid #63656a;
    background-color: #fff;
    outline: none;
    box-shadow: 0 0 5px #a5acaf;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }

textarea {
  max-width: 100%; }
  textarea[rows] {
    height: auto; }

input::placeholder,
textarea::placeholder {
  color: #a5acaf; }
input:disabled, input[readonly],
textarea:disabled,
textarea[readonly] {
  background-color: #c8c8c7;
  cursor: not-allowed; }

[type='submit'],
[type='button'] {
  border-radius: 0;
  -webkit-appearance: none;
  -moz-appearance: none; }

input[type='search'] {
  box-sizing: border-box; }

[type='file'],
[type='checkbox'],
[type='radio'] {
  margin: 0 0 1rem; }

[type='checkbox'] + label,
[type='radio'] + label {
  display: inline-block;
  margin-left: 0.5rem;
  margin-right: 1rem;
  margin-bottom: 0;
  vertical-align: baseline; }
  [type='checkbox'] + label[for],
  [type='radio'] + label[for] {
    cursor: pointer; }

label > [type='checkbox'],
label > [type='radio'] {
  margin-right: 0.5rem; }

[type='file'] {
  width: 100%; }

label {
  display: block;
  margin: 0;
  font-size: 0.875rem;
  font-weight: normal;
  line-height: 1.8;
  color: #000; }
  label.middle {
    margin: 0 0 1rem;
    padding: 0.5625rem 0; }

.help-text {
  margin-top: -0.5rem;
  font-size: 0.8125rem;
  font-style: italic;
  color: #000; }

.input-group {
  display: flex;
  width: 100%;
  margin-bottom: 1rem;
  align-items: stretch; }
  .input-group > :first-child {
    border-radius: 0 0 0 0; }
  .input-group > :last-child > * {
    border-radius: 0 0 0 0; }

.input-group-label, .input-group-field, .input-group-button {
  margin: 0;
  white-space: nowrap; }

.input-group-label {
  text-align: center;
  padding: 0 1rem;
  background: #c8c8c7;
  color: #000;
  border: 1px solid #a5acaf;
  white-space: nowrap;
  flex: 0 0 auto;
  display: flex;
  align-items: center; }
  .input-group-label:first-child {
    border-right: 0; }
  .input-group-label:last-child {
    border-left: 0; }

.input-group-field {
  border-radius: 0;
  flex: 1 1 0px;
  width: auto;
  height: auto; }

.input-group-button {
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  flex: 0 0 auto; }
  .input-group-button a,
  .input-group-button input,
  .input-group-button button {
    margin: 0; }

.input-group .input-group-button {
  display: table-cell; }

fieldset {
  border: 0;
  padding: 0;
  margin: 0; }

legend {
  margin-bottom: 0.5rem;
  max-width: 100%; }

.fieldset {
  border: 1px solid #a5acaf;
  padding: 1.25rem;
  margin: 1.125rem 0; }
  .fieldset legend {
    background: #0033A0;
    padding: 0 0.1875rem;
    margin: 0;
    margin-left: -0.1875rem; }

select {
  height: 2.4375rem;
  padding: 0.5rem;
  border: 1px solid #a5acaf;
  margin: 0 0 1rem;
  font-size: 1rem;
  font-family: inherit;
  line-height: normal;
  color: #000;
  background-color: #fff;
  border-radius: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='32' height='24' viewBox='0 0 32 24'><polygon points='0,0 32,0 16,24' style='fill: rgb%2899, 101, 106%29'></polygon></svg>");
  background-size: 9px 6px;
  background-position: right -1rem center;
  background-origin: content-box;
  background-repeat: no-repeat;
  padding-right: 1.5rem; }
  @media screen and (min-width: 0\0) {
    select {
      background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg=="); } }
  select:disabled {
    background-color: #c8c8c7;
    cursor: not-allowed; }
  select::-ms-expand {
    display: none; }
  select[multiple] {
    height: auto;
    background-image: none; }

.is-invalid-input:not(:focus) {
  background-color: rgba(236, 88, 64, 0.1);
  border-color: #ec5840; }

.is-invalid-label {
  color: #ec5840; }

.form-error {
  display: none;
  margin-top: -0.5rem;
  margin-bottom: 1rem;
  font-size: 0.75rem;
  font-weight: bold;
  color: #ec5840; }
  .form-error.is-visible {
    display: block; }

.hide {
  display: none !important; }

.invisible {
  visibility: hidden; }

@media screen and (max-width: 39.9375em) {
  .hide-for-small-only {
    display: none !important; } }

@media screen and (max-width: 0em), screen and (min-width: 40em) {
  .show-for-small-only {
    display: none !important; } }

@media screen and (min-width: 40em) {
  .hide-for-medium {
    display: none !important; } }

@media screen and (max-width: 39.9375em) {
  .show-for-medium {
    display: none !important; } }

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  .hide-for-medium-only {
    display: none !important; } }

@media screen and (max-width: 39.9375em), screen and (min-width: 64em) {
  .show-for-medium-only {
    display: none !important; } }

@media screen and (min-width: 64em) {
  .hide-for-large {
    display: none !important; } }

@media screen and (max-width: 63.9375em) {
  .show-for-large {
    display: none !important; } }

@media screen and (min-width: 64em) and (max-width: 74.9375em) {
  .hide-for-large-only {
    display: none !important; } }

@media screen and (max-width: 63.9375em), screen and (min-width: 75em) {
  .show-for-large-only {
    display: none !important; } }

.show-for-sr,
.show-on-focus {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0); }

.show-on-focus:active, .show-on-focus:focus {
  position: static !important;
  height: auto;
  width: auto;
  overflow: visible;
  clip: auto; }

.show-for-landscape,
.hide-for-portrait {
  display: block !important; }
  @media screen and (orientation: landscape) {
    .show-for-landscape,
    .hide-for-portrait {
      display: block !important; } }
  @media screen and (orientation: portrait) {
    .show-for-landscape,
    .hide-for-portrait {
      display: none !important; } }

.hide-for-landscape,
.show-for-portrait {
  display: none !important; }
  @media screen and (orientation: landscape) {
    .hide-for-landscape,
    .show-for-portrait {
      display: none !important; } }
  @media screen and (orientation: portrait) {
    .hide-for-landscape,
    .show-for-portrait {
      display: block !important; } }

.breadcrumbs {
  list-style: none;
  margin: 0 0 1rem 0; }
  .breadcrumbs::before, .breadcrumbs::after {
    content: ' ';
    display: table;
    flex-basis: 0;
    order: 1; }
  .breadcrumbs::after {
    clear: both; }
  .breadcrumbs li {
    float: left;
    color: #000;
    font-size: 0.875rem;
    cursor: default; }
    .breadcrumbs li:not(:last-child)::after {
      color: #a5acaf;
      content: "/";
      margin: 0 0.75rem;
      position: relative;
      top: 1px;
      opacity: 1; }
  .breadcrumbs a {
    color: #0033A0; }
    .breadcrumbs a:hover {
      text-decoration: underline; }
  .breadcrumbs .disabled {
    color: #000;
    cursor: not-allowed; }

.is-drilldown {
  position: relative;
  overflow: hidden; }
  .is-drilldown li {
    display: block !important; }

.is-drilldown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: -1;
  height: 100%;
  width: 100%;
  background: #fff;
  transition: transform 0.15s linear; }
  .is-drilldown-submenu.is-active {
    z-index: 1;
    display: block;
    transform: translateX(-100%); }
  .is-drilldown-submenu.is-closing {
    transform: translateX(100%); }

.is-drilldown-submenu-parent > a {
  position: relative; }
  .is-drilldown-submenu-parent > a::after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    border-color: transparent transparent transparent #2199e8;
    border-left-style: solid;
    border-right-width: 0;
    position: absolute;
    top: 50%;
    margin-top: -6px;
    right: 1rem; }

.js-drilldown-back > a::before {
  content: '';
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  border-color: transparent #2199e8 transparent transparent;
  border-right-style: solid;
  border-left-width: 0;
  border-left-width: 0;
  display: inline-block;
  vertical-align: middle;
  margin-right: 0.75rem; }

.dropdown.menu > li.opens-left > .is-dropdown-submenu {
  left: auto;
  right: 0;
  top: 100%; }
.dropdown.menu > li.opens-right > .is-dropdown-submenu {
  right: auto;
  left: 0;
  top: 100%; }
[data-whatinput='mouse'] .dropdown.menu a {
  outline: 0; }
.no-js .dropdown.menu ul {
  display: none; }
.dropdown.menu.vertical > li .is-dropdown-submenu {
  top: 0; }
.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {
  left: auto;
  right: 100%; }
.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {
  right: auto;
  left: 100%; }
@media screen and (min-width: 40em) {
  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {
    left: auto;
    right: 0;
    top: 100%; }
  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 0;
    top: 100%; }
  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {
    left: auto;
    right: 100%; }
  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; } }
@media screen and (min-width: 64em) {
  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {
    left: auto;
    right: 0;
    top: 100%; }
  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 0;
    top: 100%; }
  .dropdown.menu.large-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {
    left: auto;
    right: 100%; }
  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; } }
.dropdown.menu.align-right .is-dropdown-submenu.first-sub {
  top: 100%;
  left: auto;
  right: 0; }

.is-dropdown-menu.vertical {
  width: 100px; }
  .is-dropdown-menu.vertical.align-right {
    float: right; }

.is-dropdown-submenu-parent {
  position: relative; }
  .is-dropdown-submenu-parent a::after {
    position: absolute;
    top: 50%;
    right: 5px;
    margin-top: -2px; }
  .is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {
    top: 100%;
    left: auto; }
  .is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {
    left: auto;
    right: 100%; }
  .is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; }

.is-dropdown-submenu {
  display: none;
  position: absolute;
  top: 0;
  left: 100%;
  min-width: 200px;
  z-index: 1;
  background: #fff;
  border: 1px solid #a5acaf; }
  .is-dropdown-submenu .is-dropdown-submenu {
    margin-top: -1px; }
  .is-dropdown-submenu > li {
    width: 100%; }
  .is-dropdown-submenu.js-dropdown-active {
    display: block; }

.flex-video {
  position: relative;
  height: 0;
  padding-bottom: 75%;
  margin-bottom: 1rem;
  overflow: hidden; }
  .flex-video iframe,
  .flex-video object,
  .flex-video embed,
  .flex-video video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%; }
  .flex-video.widescreen {
    padding-bottom: 56.25%; }
  .flex-video.vimeo {
    padding-top: 0; }

.label {
  display: inline-block;
  padding: 0.33333rem 0.5rem;
  font-size: 0.8rem;
  line-height: 1;
  white-space: nowrap;
  cursor: default;
  border-radius: 0;
  background: #2199e8;
  color: #fff; }
  .label.secondary {
    background: #777;
    color: #fff; }
  .label.success {
    background: #3adb76;
    color: #fff; }
  .label.warning {
    background: #ffae00;
    color: #fff; }
  .label.alert {
    background: #ec5840;
    color: #fff; }

.media-object {
  margin-bottom: 1rem;
  display: flex;
  flex-wrap: nowrap; }
  .media-object img {
    max-width: none; }
  @media screen and (max-width: 39.9375em) {
    .media-object.stack-for-small {
      flex-wrap: wrap; } }
  @media screen and (max-width: 39.9375em) {
    .media-object.stack-for-small .media-object-section {
      padding: 0;
      padding-bottom: 1rem;
      flex-basis: 100%;
      max-width: 100%; }
      .media-object.stack-for-small .media-object-section img {
        width: 100%; } }

.media-object-section {
  flex: 0 1 auto; }
  .media-object-section:first-child {
    padding-right: 1rem; }
  .media-object-section:last-child:not(:nth-child(2)) {
    padding-left: 1rem; }
  .media-object-section > :last-child {
    margin-bottom: 0; }
  .media-object-section.main-section {
    flex: 1 1 0px; }

.menu {
  margin: 0;
  list-style-type: none;
  width: 100%;
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  flex-wrap: nowrap; }
  .menu > li {
    flex: 0 0 auto; }
    [data-whatinput='mouse'] .menu > li {
      outline: 0; }
  .menu > li > a {
    display: block;
    padding: 0.7rem 1rem;
    line-height: 1; }
  .menu input,
  .menu a,
  .menu button {
    margin-bottom: 0; }
  .menu > li > a {
    display: flex; }
  .menu > li > a {
    flex-flow: row nowrap; }
    .menu > li > a img,
    .menu > li > a i,
    .menu > li > a svg {
      margin-right: 0.25rem; }
  .menu > li {
    flex: 0 0 auto; }
  .menu.vertical {
    flex-wrap: wrap; }
    .menu.vertical > li {
      flex: 0 0 100%;
      max-width: 100%; }
    .menu.vertical > li > a {
      align-items: flex-start;
      justify-content: flex-start; }
  @media screen and (min-width: 40em) {
    .menu.medium-horizontal {
      flex-wrap: nowrap; }
      .menu.medium-horizontal > li {
        flex: 0 0 auto; }
    .menu.medium-vertical {
      flex-wrap: wrap; }
      .menu.medium-vertical > li {
        flex: 0 0 100%;
        max-width: 100%; }
      .menu.medium-vertical > li > a {
        align-items: flex-start;
        justify-content: flex-start; } }
  @media screen and (min-width: 64em) {
    .menu.large-horizontal {
      flex-wrap: nowrap; }
      .menu.large-horizontal > li {
        flex: 0 0 auto; }
    .menu.large-vertical {
      flex-wrap: wrap; }
      .menu.large-vertical > li {
        flex: 0 0 100%;
        max-width: 100%; }
      .menu.large-vertical > li > a {
        align-items: flex-start;
        justify-content: flex-start; } }
  .menu.simple li {
    line-height: 1;
    display: inline-block;
    margin-right: 1rem; }
  .menu.simple a {
    padding: 0; }
  .menu.align-right {
    justify-content: flex-end; }
  .menu.expanded > li {
    flex: 1 1 0px; }
  .menu.expanded > li:first-child:last-child {
    width: 100%; }
  .menu.icon-top > li > a {
    flex-flow: column nowrap; }
    .menu.icon-top > li > a img,
    .menu.icon-top > li > a i,
    .menu.icon-top > li > a svg {
      align-self: stretch;
      text-align: center;
      margin-bottom: 0.25rem; }
  .menu.nested {
    margin-left: 1rem; }
  .menu .active > a {
    color: #fff;
    background: #2199e8; }

.menu-text {
  font-weight: bold;
  color: inherit;
  line-height: 1;
  padding-top: 0;
  padding-bottom: 0;
  padding: 0.7rem 1rem; }

.menu-centered {
  text-align: center; }
  .menu-centered > .menu {
    display: inline-block; }

.no-js [data-responsive-menu] ul {
  display: none; }

html,
body {
  height: 100%; }

.off-canvas-wrapper {
  width: 100%;
  overflow-x: hidden;
  position: relative;
  backface-visibility: hidden;
  -webkit-overflow-scrolling: auto; }

.off-canvas-wrapper-inner {
  position: relative;
  width: 100%;
  transition: transform 0.5s ease; }
  .off-canvas-wrapper-inner::before, .off-canvas-wrapper-inner::after {
    content: ' ';
    display: table;
    flex-basis: 0;
    order: 1; }
  .off-canvas-wrapper-inner::after {
    clear: both; }

.off-canvas-content,
.off-canvas-content {
  min-height: 100%;
  background: #0033A0;
  transition: transform 0.5s ease;
  backface-visibility: hidden;
  z-index: 1;
  padding-bottom: 0.1px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); }

.js-off-canvas-exit {
  display: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.25);
  cursor: pointer;
  transition: background 0.5s ease; }

.off-canvas {
  position: absolute;
  background: #c8c8c7;
  z-index: -1;
  max-height: 100%;
  overflow-y: auto;
  transform: translateX(0); }
  [data-whatinput='mouse'] .off-canvas {
    outline: 0; }
  .off-canvas.position-left {
    left: -250px;
    top: 0;
    width: 250px; }
    .is-open-left {
      transform: translateX(250px); }
  .off-canvas.position-right {
    right: -250px;
    top: 0;
    width: 250px; }
    .is-open-right {
      transform: translateX(-250px); }

@media screen and (min-width: 40em) {
  .position-left.reveal-for-medium {
    left: 0;
    z-index: auto;
    position: fixed; }
    .position-left.reveal-for-medium ~ .off-canvas-content {
      margin-left: 250px; }

  .position-right.reveal-for-medium {
    right: 0;
    z-index: auto;
    position: fixed; }
    .position-right.reveal-for-medium ~ .off-canvas-content {
      margin-right: 250px; } }
@media screen and (min-width: 64em) {
  .position-left.reveal-for-large {
    left: 0;
    z-index: auto;
    position: fixed; }
    .position-left.reveal-for-large ~ .off-canvas-content {
      margin-left: 250px; }

  .position-right.reveal-for-large {
    right: 0;
    z-index: auto;
    position: fixed; }
    .position-right.reveal-for-large ~ .off-canvas-content {
      margin-right: 250px; } }
.orbit {
  position: relative; }

.orbit-container {
  position: relative;
  margin: 0;
  overflow: hidden;
  list-style: none; }

.orbit-slide {
  width: 100%;
  max-height: 100%; }
  .orbit-slide.no-motionui.is-active {
    top: 0;
    left: 0; }

.orbit-figure {
  margin: 0; }

.orbit-image {
  margin: 0;
  width: 100%;
  max-width: 100%; }

.orbit-caption {
  position: absolute;
  bottom: 0;
  width: 100%;
  padding: 1rem;
  margin-bottom: 0;
  color: #fff;
  background-color: rgba(0, 0, 0, 0.5); }

.orbit-previous, .orbit-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  padding: 1rem;
  color: #fff; }
  [data-whatinput='mouse'] .orbit-previous, [data-whatinput='mouse'] .orbit-next {
    outline: 0; }
  .orbit-previous:hover, .orbit-next:hover, .orbit-previous:active, .orbit-next:active, .orbit-previous:focus, .orbit-next:focus {
    background-color: rgba(0, 0, 0, 0.5); }

.orbit-previous {
  left: 0; }

.orbit-next {
  left: auto;
  right: 0; }

.orbit-bullets {
  position: relative;
  margin-top: 0.8rem;
  margin-bottom: 0.8rem;
  text-align: center; }
  [data-whatinput='mouse'] .orbit-bullets {
    outline: 0; }
  .orbit-bullets button {
    width: 1.2rem;
    height: 1.2rem;
    margin: 0.1rem;
    background-color: #a5acaf;
    border-radius: 50%; }
    .orbit-bullets button:hover {
      background-color: #63656a; }
    .orbit-bullets button.is-active {
      background-color: #63656a; }

.pagination {
  margin-left: 0;
  margin-bottom: 1rem; }
  .pagination::before, .pagination::after {
    content: ' ';
    display: table;
    flex-basis: 0;
    order: 1; }
  .pagination::after {
    clear: both; }
  .pagination li {
    font-size: 0.875rem;
    margin-right: 0.0625rem;
    border-radius: 0;
    display: none; }
    .pagination li:last-child, .pagination li:first-child {
      display: inline-block; }
    @media screen and (min-width: 40em) {
      .pagination li {
        display: inline-block; } }
  .pagination a,
  .pagination button {
    color: #000;
    display: block;
    padding: 0.1875rem 0.625rem;
    border-radius: 0; }
    .pagination a:hover,
    .pagination button:hover {
      background: #c8c8c7; }
  .pagination .current {
    padding: 0.1875rem 0.625rem;
    background: #2199e8;
    color: #fff;
    cursor: default; }
  .pagination .disabled {
    padding: 0.1875rem 0.625rem;
    color: #a5acaf;
    cursor: not-allowed; }
    .pagination .disabled:hover {
      background: transparent; }
  .pagination .ellipsis::after {
    content: '\2026';
    padding: 0.1875rem 0.625rem;
    color: #000; }

.pagination-previous a::before,
.pagination-previous.disabled::before {
  content: '\00ab';
  display: inline-block;
  margin-right: 0.5rem; }

.pagination-next a::after,
.pagination-next.disabled::after {
  content: '\00bb';
  display: inline-block;
  margin-left: 0.5rem; }

.slider {
  position: relative;
  height: 0.5rem;
  margin-top: 1.25rem;
  margin-bottom: 2.25rem;
  background-color: #c8c8c7;
  cursor: pointer;
  user-select: none;
  touch-action: none; }

.slider-fill {
  position: absolute;
  top: 0;
  left: 0;
  display: inline-block;
  max-width: 100%;
  height: 0.5rem;
  background-color: #a5acaf;
  transition: all 0.2s ease-in-out; }
  .slider-fill.is-dragging {
    transition: all 0s linear; }

.slider-handle {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  position: absolute;
  left: 0;
  z-index: 1;
  display: inline-block;
  width: 1.4rem;
  height: 1.4rem;
  background-color: #2199e8;
  transition: all 0.2s ease-in-out;
  touch-action: manipulation;
  border-radius: 0; }
  [data-whatinput='mouse'] .slider-handle {
    outline: 0; }
  .slider-handle:hover {
    background-color: #1583cc; }
  .slider-handle.is-dragging {
    transition: all 0s linear; }

.slider.disabled,
.slider[disabled] {
  opacity: 0.25;
  cursor: not-allowed; }

.slider.vertical {
  display: inline-block;
  width: 0.5rem;
  height: 12.5rem;
  margin: 0 1.25rem;
  transform: scale(1, -1); }
  .slider.vertical .slider-fill {
    top: 0;
    width: 0.5rem;
    max-height: 100%; }
  .slider.vertical .slider-handle {
    position: absolute;
    top: 0;
    left: 50%;
    width: 1.4rem;
    height: 1.4rem;
    transform: translateX(-50%); }

.sticky-container {
  position: relative; }

.sticky {
  position: absolute;
  z-index: 0;
  transform: translate3d(0, 0, 0); }

.sticky.is-stuck {
  position: fixed;
  z-index: 5; }
  .sticky.is-stuck.is-at-top {
    top: 0; }
  .sticky.is-stuck.is-at-bottom {
    bottom: 0; }

.sticky.is-anchored {
  position: absolute;
  left: auto;
  right: auto; }
  .sticky.is-anchored.is-at-bottom {
    bottom: 0; }

body.is-reveal-open {
  overflow: hidden; }

html.is-reveal-open,
html.is-reveal-open body {
  height: 100%;
  overflow: hidden;
  user-select: none; }

.reveal-overlay {
  display: none;
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1005;
  background-color: rgba(0, 0, 0, 0.45);
  overflow-y: scroll; }

.reveal {
  display: none;
  z-index: 1006;
  padding: 1rem;
  border: 1px solid #a5acaf;
  background-color: #fff;
  border-radius: 0;
  position: relative;
  top: 100px;
  margin-left: auto;
  margin-right: auto;
  overflow-y: auto; }
  [data-whatinput='mouse'] .reveal {
    outline: 0; }
  @media screen and (min-width: 40em) {
    .reveal {
      min-height: 0; } }
  .reveal .column, .reveal .columns,
  .reveal .columns {
    min-width: 0; }
  .reveal > :last-child {
    margin-bottom: 0; }
  @media screen and (min-width: 40em) {
    .reveal {
      width: 600px;
      max-width: 73.125rem; } }
  @media screen and (min-width: 40em) {
    .reveal .reveal {
      left: auto;
      right: auto;
      margin: 0 auto; } }
  .reveal.collapse {
    padding: 0; }
  @media screen and (min-width: 40em) {
    .reveal.tiny {
      width: 30%;
      max-width: 73.125rem; } }
  @media screen and (min-width: 40em) {
    .reveal.small {
      width: 50%;
      max-width: 73.125rem; } }
  @media screen and (min-width: 40em) {
    .reveal.large {
      width: 90%;
      max-width: 73.125rem; } }
  .reveal.full {
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    height: 100vh;
    min-height: 100vh;
    max-width: none;
    margin-left: 0;
    border: 0;
    border-radius: 0; }
  @media screen and (max-width: 39.9375em) {
    .reveal {
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      height: 100vh;
      min-height: 100vh;
      max-width: none;
      margin-left: 0;
      border: 0;
      border-radius: 0; } }
  .reveal.without-overlay {
    position: fixed; }

table {
  width: 100%;
  margin-bottom: 1rem;
  border-radius: 0; }
  thead,
  tbody,
  tfoot {
    border: 1px solid #f2f2f2;
    background-color: #fff; }

  caption {
    font-weight: bold;
    padding: 0.5rem 0.625rem 0.625rem; }

  thead,
  tfoot {
    background: #f9f9f9;
    color: #000; }
    thead tr,
    tfoot tr {
      background: transparent; }
    thead th,
    thead td,
    tfoot th,
    tfoot td {
      padding: 0.5rem 0.625rem 0.625rem;
      font-weight: bold;
      text-align: left; }

  tbody tr:nth-child(even) {
    background-color: #f2f2f2; }
  tbody th,
  tbody td {
    padding: 0.5rem 0.625rem 0.625rem; }

@media screen and (max-width: 63.9375em) {
  table.stack thead {
    display: none; }
  table.stack tfoot {
    display: none; }
  table.stack tr,
  table.stack th,
  table.stack td {
    display: block; }
  table.stack td {
    border-top: 0; } }

table.scroll {
  display: block;
  width: 100%;
  overflow-x: auto; }

table.hover tr:hover {
  background-color: #fafafa; }
table.hover tr:nth-of-type(even):hover {
  background-color: #ededed; }

.table-scroll {
  overflow-x: auto; }
  .table-scroll table {
    width: auto; }

.tabs {
  margin: 0;
  list-style-type: none;
  background: #fff;
  border: 1px solid #c8c8c7; }
  .tabs::before, .tabs::after {
    content: ' ';
    display: table;
    flex-basis: 0;
    order: 1; }
  .tabs::after {
    clear: both; }

.tabs.vertical > li {
  width: auto;
  float: none;
  display: block; }

.tabs.simple > li > a {
  padding: 0; }
  .tabs.simple > li > a:hover {
    background: transparent; }

.tabs.primary {
  background: #2199e8; }
  .tabs.primary > li > a {
    color: #fff; }
    .tabs.primary > li > a:hover, .tabs.primary > li > a:focus {
      background: #1893e4; }

.tabs-title {
  float: left; }
  .tabs-title > a {
    display: block;
    padding: 1.25rem 1.5rem;
    line-height: 1;
    font-size: 0.75rem; }
    .tabs-title > a:hover {
      background: #fff; }
    .tabs-title > a:focus, .tabs-title > a[aria-selected='true'] {
      background: #c8c8c7; }

.tabs-content {
  background: #fff;
  transition: all 0.5s ease;
  border: 1px solid #c8c8c7;
  border-top: 0; }

.tabs-content.vertical {
  border: 1px solid #c8c8c7;
  border-left: 0; }

.tabs-panel {
  display: none;
  padding: 1rem; }
  .tabs-panel.is-active {
    display: block; }

.title-bar {
  background: #000;
  color: #fff;
  padding: 0.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between; }
  .title-bar .menu-icon {
    margin-left: 0.25rem;
    margin-right: 0.25rem; }

.title-bar-left,
.title-bar-right {
  flex: 1 1 0px; }

.title-bar-right {
  text-align: right; }

.title-bar-title {
  font-weight: bold;
  vertical-align: middle;
  display: inline-block; }

.menu-icon.dark {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  cursor: pointer;
  width: 20px;
  height: 16px; }
  .menu-icon.dark::after {
    content: '';
    position: absolute;
    display: block;
    width: 100%;
    height: 2px;
    background: #000;
    top: 0;
    left: 0;
    box-shadow: 0 7px 0 #000, 0 14px 0 #000; }
  .menu-icon.dark:hover::after {
    background: #63656a;
    box-shadow: 0 7px 0 #63656a, 0 14px 0 #63656a; }

.top-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: nowrap;
  padding: 0.5rem;
  flex-wrap: wrap; }
  .top-bar,
  .top-bar ul {
    background-color: #c8c8c7; }
  .top-bar input {
    max-width: 200px;
    margin-right: 1rem; }
  .top-bar .input-group-field {
    width: 100%;
    margin-right: 0; }
  .top-bar input.button, .top-bar .webform-client-form input.form-submit, .webform-client-form .top-bar input.form-submit {
    width: auto; }
  .top-bar .top-bar-left,
  .top-bar .top-bar-right {
    flex: 0 0 100%;
    max-width: 100%; }
  @media screen and (min-width: 64em) {
    .top-bar {
      flex-wrap: nowrap; }
      .top-bar .top-bar-left,
      .top-bar .top-bar-right {
        flex: 1 1 0px; } }
  @media screen and (max-width: 63.9375em) {
    .top-bar.stacked-for-medium {
      flex-wrap: wrap; }
      .top-bar.stacked-for-medium .top-bar-left,
      .top-bar.stacked-for-medium .top-bar-right {
        flex: 0 0 100%;
        max-width: 100%; } }
  @media screen and (max-width: 74.9375em) {
    .top-bar.stacked-for-large {
      flex-wrap: wrap; }
      .top-bar.stacked-for-large .top-bar-left,
      .top-bar.stacked-for-large .top-bar-right {
        flex: 0 0 100%;
        max-width: 100%; } }

.top-bar-title {
  flex: 0 0 auto;
  margin-right: 1rem; }

.top-bar-left,
.top-bar-right {
  flex: 0 0 auto; }

#main-content {
  background: #fff; }

.lora {
  font-family: 'Lora', serif !important; }

.muli, a, p, ul li, .courses .course-item .course-note p, .events_list .rows-container .event-details p, .contact-column .content-container p, .search-results-container .tabs-content .tabs-panel #GCSEresults .gsc-control-cse, .search-results-container .tabs-content .tabs-panel #GCSEresults .gsc-control-cse .gsc-resultsRoot .gsc-results .gsc-webResult.gsc-result .gsc-table-result tbody tr td > div {
  font-family: 'Muli', sans-serif !important; }

.muli-bold, h1, h2, h3, h4, h5, h6, nav ul li a, .pane-map-embed .map-embed-container #map-canvas .marker-label, #breadcrumb-wrapper ul li p, .snippet-display h1, .snippet-display a.button, .courses .course-item h2, .courses .course-item .document-container .course-document a, .events_list .rows-container .event-info h2, .dashboard-list .content-item h2, .dashboard-list .content-item .heading p, .dashboard-list .content-item .document-container .documents a, .dashboard-list .content-item .document-container .documents p, .contact-column h2, .search-results-container .tabs .tabs-title > a, .search-results-container .tabs .tabs-title.is-active > a {
  font-family: 'Muli', sans-serif !important;
  font-weight: bold; }

.no-margin {
  margin: 0 !important; }

a, p {
  font-size: 18px; }

nav ul li {
  list-style-type: none !important;
  list-style-image: none !important; }

ul {
  margin: 0 0 1rem 0; }
  ul li {
    font-size: 18px;
    list-style-type: none; }

#admin-menu ul li {
  list-style-type: initial; }
  #admin-menu ul li.expandable ul li > ul {
    margin-left: 160px !important;
    margin-top: -28px !important; }
  #admin-menu ul li a {
    font-family: "lucida grande", tahoma, verdana, arial, sans-serif !important; }

h1 {
  margin-bottom: 27px;
  line-height: 0.9;
  margin-top: -4px;
  font-size: 2.5rem; }

h2 {
  font-size: 1.875rem;
  margin-bottom: 29px;
  line-height: 1; }

h3 {
  font-size: 1.5625rem;
  margin-bottom: 29px;
  line-height: 1; }

@media screen and (max-width: 63.9375em) {
  h1 {
    font-size: 1.875rem;
    margin-bottom: 19px; }

  h2 {
    font-size: 1.5625rem;
    margin-bottom: 18px; }

  h3 {
    font-size: 1.25rem;
    margin-bottom: 18px; } }
.ae-text-white {
  color: #fff; }

.ae-text-black {
  color: #000; }

.ae-text-light-black {
  color: #2C2A29; }

.ae-text-lighter-gray {
  color: #eee; }

.ae-text-light-gray {
  color: #c8c8c7; }

.ae-text-gray {
  color: #a5acaf; }

.ae-text-dark-gray {
  color: #63656a; }

.ae-text-charcoal {
  color: #2c2a29; }

.ae-text-blue {
  color: #0033A0; }

.ae-text-light-blue {
  color: #1897d4; }

.ae-text-medium-blue {
  color: #143887; }

.ae-text-dark-blue {
  color: #202c5f; }

.ae-header-white h1, .ae-header-white h2, .ae-header-white h3, .ae-header-white h4, .ae-header-white h5, .ae-header-white h6 {
  color: #fff; }

.ae-header-black h1, .ae-header-black h2, .ae-header-black h3, .ae-header-black h4, .ae-header-black h5, .ae-header-black h6 {
  color: #000; }

.ae-header-light-black h1, .ae-header-light-black h2, .ae-header-light-black h3, .ae-header-light-black h4, .ae-header-light-black h5, .ae-header-light-black h6 {
  color: #2C2A29; }

.ae-header-lighter-gray h1, .ae-header-lighter-gray h2, .ae-header-lighter-gray h3, .ae-header-lighter-gray h4, .ae-header-lighter-gray h5, .ae-header-lighter-gray h6 {
  color: #eee; }

.ae-header-light-gray h1, .ae-header-light-gray h2, .ae-header-light-gray h3, .ae-header-light-gray h4, .ae-header-light-gray h5, .ae-header-light-gray h6 {
  color: #c8c8c7; }

.ae-header-gray h1, .ae-header-gray h2, .ae-header-gray h3, .ae-header-gray h4, .ae-header-gray h5, .ae-header-gray h6 {
  color: #a5acaf; }

.ae-header-dark-gray h1, .ae-header-dark-gray h2, .ae-header-dark-gray h3, .ae-header-dark-gray h4, .ae-header-dark-gray h5, .ae-header-dark-gray h6 {
  color: #63656a; }

.ae-header-charcoal h1, .ae-header-charcoal h2, .ae-header-charcoal h3, .ae-header-charcoal h4, .ae-header-charcoal h5, .ae-header-charcoal h6 {
  color: #2c2a29; }

.ae-header-blue h1, .ae-header-blue h2, .ae-header-blue h3, .ae-header-blue h4, .ae-header-blue h5, .ae-header-blue h6 {
  color: #0033A0; }

.ae-header-light-blue h1, .ae-header-light-blue h2, .ae-header-light-blue h3, .ae-header-light-blue h4, .ae-header-light-blue h5, .ae-header-light-blue h6 {
  color: #1897d4; }

.ae-header-medium-blue h1, .ae-header-medium-blue h2, .ae-header-medium-blue h3, .ae-header-medium-blue h4, .ae-header-medium-blue h5, .ae-header-medium-blue h6 {
  color: #143887; }

.ae-header-dark-blue h1, .ae-header-dark-blue h2, .ae-header-dark-blue h3, .ae-header-dark-blue h4, .ae-header-dark-blue h5, .ae-header-dark-blue h6 {
  color: #202c5f; }

.ae-border-white {
  border-color: #fff !important; }

.ae-border-black {
  border-color: #000 !important; }

.ae-border-light-black {
  border-color: #2C2A29 !important; }

.ae-border-lighter-gray {
  border-color: #eee !important; }

.ae-border-light-gray {
  border-color: #c8c8c7 !important; }

.ae-border-gray {
  border-color: #a5acaf !important; }

.ae-border-dark-gray {
  border-color: #63656a !important; }

.ae-border-charcoal {
  border-color: #2c2a29 !important; }

.ae-border-blue {
  border-color: #0033A0 !important; }

.ae-border-light-blue {
  border-color: #1897d4 !important; }

.ae-border-medium-blue {
  border-color: #143887 !important; }

.ae-border-dark-blue {
  border-color: #202c5f !important; }

.ae-background-white {
  background-color: #fff; }

.ae-background-black {
  background-color: #000; }

.ae-background-light-black {
  background-color: #2C2A29; }

.ae-background-lighter-gray {
  background-color: #eee; }

.ae-background-light-gray {
  background-color: #c8c8c7; }

.ae-background-gray {
  background-color: #a5acaf; }

.ae-background-dark-gray {
  background-color: #63656a; }

.ae-background-charcoal {
  background-color: #2c2a29; }

.ae-background-blue {
  background-color: #0033A0; }

.ae-background-light-blue {
  background-color: #1897d4; }

.ae-background-medium-blue {
  background-color: #143887; }

.ae-background-dark-blue {
  background-color: #202c5f; }

.ae-link-white a {
  color: #fff; }

.ae-link-black a {
  color: #000; }

.ae-link-light-black a {
  color: #2C2A29; }

.ae-link-lighter-gray a {
  color: #eee; }

.ae-link-light-gray a {
  color: #c8c8c7; }

.ae-link-gray a {
  color: #a5acaf; }

.ae-link-dark-gray a {
  color: #63656a; }

.ae-link-charcoal a {
  color: #2c2a29; }

.ae-link-blue a {
  color: #0033A0; }

.ae-link-light-blue a {
  color: #1897d4; }

.ae-link-medium-blue a {
  color: #143887; }

.ae-link-dark-blue a {
  color: #202c5f; }

.border-top-0 {
  border-top-width: 0px; }

.border-top-1 {
  border-top-width: 1px; }

.border-top-3 {
  border-top-width: 3px; }

.border-top-5 {
  border-top-width: 5px; }

.border-bottom-0 {
  border-bottom-width: 0px; }

.border-bottom-1 {
  border-bottom-width: 1px; }

.border-bottom-3 {
  border-bottom-width: 3px; }

.border-bottom-5 {
  border-bottom-width: 5px; }

.border-left-0 {
  border-left-width: 0px; }

.border-left-1 {
  border-left-width: 1px; }

.border-left-3 {
  border-left-width: 3px; }

.border-left-5 {
  border-left-width: 5px; }

.border-right-0 {
  border-right-width: 0px; }

.border-right-1 {
  border-right-width: 1px; }

.border-right-3 {
  border-right-width: 3px; }

.border-right-5 {
  border-right-width: 5px; }

.ae-left {
  text-align: left; }

.ae-right {
  text-align: right; }

.ae-center {
  text-align: center; }

.ae-justify {
  text-align: justify; }

.ae-xsmall, .ae-xsmall p, .ae-xsmall span, .ae-xsmall a {
  font-size: 0.875rem; }

.ae-small, .ae-small p, .ae-small span, .ae-small a {
  font-size: 1.125rem; }

.ae-medium, .ae-medium p, .ae-medium span, .ae-medium a {
  font-size: 1.5625rem; }

.ae-large, .ae-large p, .ae-large span, .ae-large a {
  font-size: 1.875rem; }

.ae-xlarge, .ae-xlarge p, .ae-xlarge span, .ae-xlarge a {
  font-size: 2.5rem; }

.ae-content-header-xsmall h1, .ae-content-header-xsmall h2, .ae-content-header-xsmall h3, .ae-content-header-xsmall h4, .ae-content-header-xsmall h5, .ae-content-header-xsmall h6 {
  font-size: 0.875rem; }

.ae-content-header-small h1, .ae-content-header-small h2, .ae-content-header-small h3, .ae-content-header-small h4, .ae-content-header-small h5, .ae-content-header-small h6 {
  font-size: 1.125rem; }

.ae-content-header-medium h1, .ae-content-header-medium h2, .ae-content-header-medium h3, .ae-content-header-medium h4, .ae-content-header-medium h5, .ae-content-header-medium h6 {
  font-size: 1.5625rem; }

.ae-content-header-large h1, .ae-content-header-large h2, .ae-content-header-large h3, .ae-content-header-large h4, .ae-content-header-large h5, .ae-content-header-large h6 {
  font-size: 1.875rem; }

.ae-content-header-xlarge h1, .ae-content-header-xlarge h2, .ae-content-header-xlarge h3, .ae-content-header-xlarge h4, .ae-content-header-xlarge h5, .ae-content-header-xlarge h6 {
  font-size: 2.5rem; }

.ae-background-transparent {
  background-color: transparent; }

.default-top-spacing {
  padding-top: 80px; }

.default-bottom-spacing {
  padding-bottom: 80px; }

.box-pane-wrapper {
  padding: 36px 40px; }

.ae-light {
  font-weight: lighter; }

.ae-regular {
  font-weight: normal; }

.ae-bold {
  font-weight: bold; }

.uppercase {
  text-transform: uppercase; }

.bordered {
  border: 10px solid #d5d5d5;
  background-color: #fff;
  margin-bottom: 30px; }

.disc-bullets li ul,
.circle-bullets li ul,
.square-bullets li ul,
.caret-bullets li ul,
.no-bullets li ul {
  list-style: inherit; }

.disc-bullets ul, ul.disc-bullets {
  list-style-type: disc;
  margin-left: 1.25rem; }

.circle-bullets ul, ul.circle-bullets {
  list-style-type: circle;
  margin-left: 1.25rem; }

.square-bullets ul, ul.square-bullets {
  list-style-type: square;
  margin-left: 1.25rem; }

.no-bullets ul, ul.no-bullets, .caret-bullets ul {
  list-style: none;
  margin-left: 0; }

.no-bullets .field-item {
  list-style: none; }

@media screen and (max-width: 63.9375em) {
  .default-top-spacing {
    padding-top: 40px; }

  .default-bottom-spacing {
    padding-bottom: 40px; }

  .ae-medium {
    font-size: 1.25rem; }

  .ae-large {
    font-size: 1.5625rem; }

  .ae-xlarge {
    font-size: 1.875rem; }

  .ae-content-header-medium h1, .ae-content-header-medium h2, .ae-content-header-medium h3, .ae-content-header-medium h4, .ae-content-header-medium h5, .ae-content-header-medium h6 {
    font-size: 1.25rem; }

  .ae-content-header-large h1, .ae-content-header-large h2, .ae-content-header-large h3, .ae-content-header-large h4, .ae-content-header-large h5, .ae-content-header-large h6 {
    font-size: 1.5625rem; }

  .ae-content-header-xlarge h1, .ae-content-header-xlarge h2, .ae-content-header-xlarge h3, .ae-content-header-xlarge h4, .ae-content-header-xlarge h5, .ae-content-header-xlarge h6 {
    font-size: 1.875rem; } }
@media screen and (max-width: 39.9375em) {
  .default-top-spacing {
    padding-top: 30px; }

  .default-bottom-spacing {
    padding-bottom: 30px; } }
.pane-content h1 {
  margin-bottom: 46px;
  line-height: 0.9;
  margin-top: -4px; }
.pane-content p {
  font-size: 1.125rem; }
.pane-content ul {
  margin-left: 1rem; }
  .pane-content ul li {
    position: relative; }
    .pane-content ul li:before {
      content: '\f111';
      color: #0033A0;
      font-size: 8px;
      position: absolute;
      top: 8px;
      left: -1rem;
      font-family: FontAwesome; }
.pane-content nav ul {
  margin-left: 0; }
  .pane-content nav ul li:before {
    display: none; }
@media screen and (max-width: 63.9375em) {
  .pane-content h1 {
    margin-bottom: 19px; } }

#message-container {
  background: #a5acaf; }
  #message-container .messages {
    padding: 10px 10px 10px 0;
    color: #fff;
    font-weight: bold;
    border: 0;
    background-color: #a5acaf !important;
    background-image: none !important; }

.pane-map-embed .marker-label {
  width: 100%; }
  .pane-map-embed .marker-label:before {
    color: #d24839;
    margin-right: 10px; }
.pane-map-embed .map-embed-container {
  width: 100%;
  height: 570px;
  overflow: hidden;
  position: relative; }
  .pane-map-embed .map-embed-container .info-window {
    z-index: 1;
    position: absolute;
    left: 0;
    top: 0;
    display: none; }
    .pane-map-embed .map-embed-container .info-window .container {
      background-color: white;
      margin: 10px;
      padding: 9px 4px 9px 11px;
      -webkit-box-shadow: rgba(0, 0, 0, 0.29804) 0 1px 4px -1px;
      box-shadow: rgba(0, 0, 0, 0.29804) 0 1px 4px -1px;
      border-top-left-radius: 2px;
      border-top-right-radius: 2px;
      border-bottom-right-radius: 2px;
      border-bottom-left-radius: 2px; }
      .pane-map-embed .map-embed-container .info-window .container .map-info-box .map-info-desc {
        width: 200px;
        display: inline-block; }
        .pane-map-embed .map-embed-container .info-window .container .map-info-box .map-info-desc .name {
          overflow: hidden;
          white-space: nowrap;
          text-overflow: ellipsis;
          font-weight: 500;
          font-size: 14px;
          color: black; }
        .pane-map-embed .map-embed-container .info-window .container .map-info-box .map-info-desc .address {
          color: #5B5B5B;
          font-size: 12px; }
      .pane-map-embed .map-embed-container .info-window .container .map-info-box .directions {
        display: inline-block;
        vertical-align: top;
        height: 43px;
        padding: 0 7px; }
        .pane-map-embed .map-embed-container .info-window .container .map-info-box .directions a {
          font-size: 12px;
          color: #3a84df;
          text-decoration: none; }
          .pane-map-embed .map-embed-container .info-window .container .map-info-box .directions a .icon {
            width: 22px;
            height: 22px;
            overflow: hidden;
            margin: 0 auto;
            background-image: url(/sites/www.uky.edu.olli/themes/custom/uky-olli/images/map-icons.png);
            background-size: 70px 210px;
            background-position: 0 0; }
          .pane-map-embed .map-embed-container .info-window .container .map-info-box .directions a .directions-text {
            margin-top: 5px;
            text-align: center;
            color: #3a84df;
            font-size: 12px;
            max-width: 55px;
            overflow: hidden;
            white-space: nowrap;
            text-overflow: ellipsis; }
          .pane-map-embed .map-embed-container .info-window .container .map-info-box .directions a:hover .icon {
            background-position: -22px 0; }
          .pane-map-embed .map-embed-container .info-window .container .map-info-box .directions a:hover .directions-text {
            text-decoration: underline; }
      .pane-map-embed .map-embed-container .info-window .container .map-info-box .larger-link {
        padding-top: 5px; }
        .pane-map-embed .map-embed-container .info-window .container .map-info-box .larger-link a {
          color: #3a84df;
          font-size: 12px;
          text-decoration: none; }
          .pane-map-embed .map-embed-container .info-window .container .map-info-box .larger-link a:hover {
            text-decoration: underline; }
  .pane-map-embed .map-embed-container #map-canvas {
    width: 100%;
    height: 100%; }
    .pane-map-embed .map-embed-container #map-canvas .marker-label {
      font-size: 0.875rem;
      padding-left: 18px;
      padding-top: 9px;
      color: #830000; }
      .pane-map-embed .map-embed-container #map-canvas .marker-label:before {
        font: normal normal normal 10px/1 FontAwesome !important;
        position: absolute;
        top: 0;
        left: 1px; }

.video_embed {
  width: 40%;
  display: inline-block; }
  .video_embed .responsiveVideo {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
    max-width: 100%; }
    .video_embed .responsiveVideo img {
      cursor: pointer; }
    .video_embed .responsiveVideo .video-play-button {
      background: url("../images/video_play.png") no-repeat;
      width: 60px;
      height: 60px;
      position: absolute;
      left: 0;
      right: 0;
      margin: 0 auto;
      top: 42%;
      cursor: pointer; }
    .video_embed .responsiveVideo iframe {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%; }

.videoCloseButton {
  background: url("../images/close-icon-white.png") no-repeat;
  width: 20px;
  height: 20px;
  position: fixed;
  right: 37px;
  top: 37px;
  cursor: pointer;
  z-index: 9999; }

.video_overlay {
  width: 100%;
  height: 100%;
  position: fixed;
  z-index: 9998; }

@media screen and (max-width: 39.9375em) {
  .video_embed {
    width: 86%; }
    .video_embed .responsiveVideo .video-play-button {
      top: 32%; } }
#uky-header {
  padding: 0 15px !important; }

header {
  width: 100%;
  background: #fff;
  height: 110px;
  position: relative;
  display: flex;
  justify-content: center; }
  header .header-wrapper {
    align-items: center;
    height: 100%;
    width: 100%; }
    header .header-wrapper .row {
      height: 100%; }
    header .header-wrapper nav {
      height: 100%; }
      header .header-wrapper nav ul.menu {
        justify-content: flex-end;
        padding-right: 1rem; }
      header .header-wrapper nav ul li {
        list-style-type: none !important;
        list-style-image: none !important;
        padding-right: 0;
        margin-left: 0; }
        header .header-wrapper nav ul li a, header .header-wrapper nav ul li .nolink {
          z-index: 12;
          background: none;
          color: #000;
          font-size: 1rem;
          padding: 9px 14px;
          cursor: pointer; }
          header .header-wrapper nav ul li a:hover, header .header-wrapper nav ul li a:focus, header .header-wrapper nav ul li .nolink:hover, header .header-wrapper nav ul li .nolink:focus {
            box-shadow: none;
            outline: 0; }
          header .header-wrapper nav ul li a.active, header .header-wrapper nav ul li .nolink.active {
            background: none;
            color: #000; }
        header .header-wrapper nav ul li a:hover, header .header-wrapper nav ul li .nolink:hover {
          background: #1897d4;
          color: #fff; }
        header .header-wrapper nav ul li > ul {
          display: none;
          z-index: 1;
          -webkit-box-shadow: 0px 10px 23px 1px rgba(0, 0, 0, 0.13);
          -moz-box-shadow: 0px 10px 23px 1px rgba(0, 0, 0, 0.13);
          box-shadow: 0px 10px 23px 1px rgba(0, 0, 0, 0.13); }
          header .header-wrapper nav ul li > ul li {
            padding: 1px 0 0 0;
            margin-left: 0;
            position: relative; }
            header .header-wrapper nav ul li > ul li:after {
              content: '';
              position: absolute;
              width: 89%;
              height: 1px;
              background: #c8c8c7;
              left: 0;
              right: 0;
              margin: 0 auto;
              bottom: -1px; }
            header .header-wrapper nav ul li > ul li:first-of-type {
              padding-top: 0; }
            header .header-wrapper nav ul li > ul li:last-of-type:after {
              display: none; }
            header .header-wrapper nav ul li > ul li ul {
              margin-left: 16px; }
            header .header-wrapper nav ul li > ul li a {
              line-height: 1.2;
              padding: 6px 10px;
              font-size: 1rem;
              background: none !important;
              color: #000 !important; }
              header .header-wrapper nav ul li > ul li a:hover, header .header-wrapper nav ul li > ul li a:focus {
                color: #63656a !important; }
            header .header-wrapper nav ul li > ul li:first-child a {
              padding-top: 6px; }
            header .header-wrapper nav ul li > ul li:last-child a {
              padding-bottom: 8px; }
        header .header-wrapper nav ul li.is-active > a {
          background: #1897d4;
          color: #fff; }
      header .header-wrapper nav ul.controls-menu {
        margin-bottom: 0;
        width: auto;
        padding-left: 0; }
        header .header-wrapper nav ul.controls-menu li {
          display: inline-block; }
          header .header-wrapper nav ul.controls-menu li.mobile-menu-button {
            padding-right: 19px;
            position: relative; }
            header .header-wrapper nav ul.controls-menu li.mobile-menu-button button:hover, header .header-wrapper nav ul.controls-menu li.mobile-menu-button button:focus {
              outline: 0;
              box-shadow: none; }
            header .header-wrapper nav ul.controls-menu li.mobile-menu-button button.close-button {
              position: absolute;
              width: 20px;
              height: 16px;
              line-height: 0;
              left: -20px;
              top: 0; }
              header .header-wrapper nav ul.controls-menu li.mobile-menu-button button.close-button span {
                position: absolute;
                left: 0;
                font-size: 33px;
                top: 0;
                width: 20px;
                height: 16px;
                line-height: 0; }
          header .header-wrapper nav ul.controls-menu li a.menu-button, header .header-wrapper nav ul.controls-menu li span.menu-button {
            border: 2px solid #1897d4;
            background: #fff;
            color: #1897d4;
            padding: 5px 10px 5px 10px;
            font-weight: bold;
            font-size: 1rem;
            cursor: pointer; }
            header .header-wrapper nav ul.controls-menu li a.menu-button:hover, header .header-wrapper nav ul.controls-menu li a.menu-button:focus, header .header-wrapper nav ul.controls-menu li span.menu-button:hover, header .header-wrapper nav ul.controls-menu li span.menu-button:focus {
              background: #1897d4;
              color: #fff; }
          header .header-wrapper nav ul.controls-menu li span.menu-button {
            padding: 3px 24px 2px 8px;
            display: block;
            position: relative; }
            header .header-wrapper nav ul.controls-menu li span.menu-button:after {
              content: '';
              width: 0;
              height: 0;
              border-style: solid;
              border-width: 4px 3.5px 0 3.5px;
              border-color: #1897d4 transparent transparent transparent;
              position: absolute;
              right: 10px;
              top: 14px; }
            header .header-wrapper nav ul.controls-menu li span.menu-button:hover:after {
              border-color: #fff transparent transparent transparent; }
          header .header-wrapper nav ul.controls-menu li.is-active .menu-button {
            background: #1897d4;
            color: #fff; }
          header .header-wrapper nav ul.controls-menu li.is-active span.menu-button:after {
            border-color: #fff transparent transparent transparent; }
          header .header-wrapper nav ul.controls-menu li > ul {
            min-width: 160px;
            right: 0 !important;
            left: auto !important; }
            header .header-wrapper nav ul.controls-menu li > ul li:after {
              width: 87%; }
  @media screen and (max-width: 63.9375em) {
    header {
      height: 60px; } }

#responsive-menu {
  visibility: hidden;
  /* Prevents mobile menu from flashing onload */
  position: absolute;
  top: 60px;
  z-index: 1;
  left: 0;
  width: 100%; }
  @media screen and (min-width: 64em) {
    #responsive-menu {
      visibility: hidden !important; } }
  #responsive-menu ul {
    background: #2c2a29;
    margin-left: 0; }
    #responsive-menu ul li {
      margin: 0;
      padding: 0;
      border-bottom: 1px solid #c8c8c7; }
      #responsive-menu ul li.is-drilldown-submenu-parent a:after, #responsive-menu ul li.is-submenu-item a:after {
        border-color: transparent transparent transparent #fff; }
      #responsive-menu ul li.is-drilldown-submenu-parent a:before, #responsive-menu ul li.is-submenu-item a:before {
        border-color: transparent #fff transparent transparent; }
      #responsive-menu ul li a {
        line-height: 1;
        color: #fff;
        padding: 0.7rem 1rem;
        display: block; }
        #responsive-menu ul li a:hover, #responsive-menu ul li a:focus {
          outline: 0;
          box-shadow: none; }
        #responsive-menu ul li a.active-trail {
          background: #202c5f; }
        #responsive-menu ul li a[href~='/dashboard'] {
          background: #fff !important;
          color: #0033A0 !important;
          font-weight: bold; }
  #responsive-menu .is-drilldown {
    height: 100% !important;
    max-width: 100% !important; }

#breadcrumb-wrapper {
  background: #c8c8c7; }
  #breadcrumb-wrapper ul {
    margin-bottom: 0;
    margin-left: 0; }
    #breadcrumb-wrapper ul li {
      padding: 14px 0; }
      #breadcrumb-wrapper ul li:after {
        color: #000;
        margin: 0 8px 0 4px; }
      #breadcrumb-wrapper ul li a {
        font-size: 0.875rem; }
      #breadcrumb-wrapper ul li .nolink {
        color: #0033A0;
        font-weight: bold; }
      #breadcrumb-wrapper ul li p {
        margin: 0; }
    @media screen and (max-width: 39.9375em) {
      #breadcrumb-wrapper ul {
        height: 12px; }
        #breadcrumb-wrapper ul li {
          display: none; } }

.snippet-display h1 {
  margin-bottom: 20px;
  line-height: 1.2; }
.snippet-display .text-snippet {
  margin-bottom: 31px; }
.snippet-display a.button {
  color: #fff;
  font-size: 1.125rem;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  padding: 10px 20px 14px 20px; }
.snippet-display.entityqueue .icon {
  margin-bottom: 30px; }
  .snippet-display.entityqueue .icon i {
    font-size: 3.375rem;
    color: #1897d4; }
.snippet-display.entityqueue h1 {
  margin-bottom: 12px; }
.snippet-display.entityqueue .text-snippet {
  margin-bottom: 21px; }
@media screen and (min-width: 64em) {
  .snippet-display.large-padding {
    padding-top: 47px; } }
@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  .snippet-display.medium-padding {
    padding-top: 40px; } }
@media screen and (max-width: 39.9375em) {
  .snippet-display.small-padding {
    padding-top: 37px; }
  .snippet-display p {
    font-size: 1rem; }
  .snippet-display.entityqueue .icon {
    margin-bottom: 11px; } }

.image-slider {
  height: auto;
  position: relative;
  margin: 0;
  background: #2c2a29; }
  .image-slider > img {
    display: inline; }
  .image-slider.slider {
    display: none; }
    .image-slider.slider.slick-initialized {
      display: block; }
      .image-slider.slider.slick-initialized .slick-prev, .image-slider.slider.slick-initialized .slick-next {
        z-index: 1;
        width: 40px;
        height: 40px; }
        .image-slider.slider.slick-initialized .slick-prev:before, .image-slider.slider.slick-initialized .slick-next:before {
          font-family: FontAwesome;
          opacity: 1;
          top: 7px;
          position: absolute;
          font-size: 1.625rem;
          font-weight: bold; }
        .image-slider.slider.slick-initialized .slick-prev:after, .image-slider.slider.slick-initialized .slick-next:after {
          position: absolute;
          content: '';
          background: #000;
          opacity: 0.4;
          width: 40px;
          height: 40px;
          left: 0;
          top: 0; }
      .image-slider.slider.slick-initialized .slick-slide {
        position: relative; }
        .image-slider.slider.slick-initialized .slick-slide:focus {
          outline: 0;
          box-shadow: none; }
        .image-slider.slider.slick-initialized .slick-slide img:focus {
          outline: 0;
          box-shadow: none; }
        .image-slider.slider.slick-initialized .slick-slide .image-caption {
          width: 100%;
          height: 80%;
          top: 10%;
          position: absolute;
          z-index: 2; }
          .image-slider.slider.slick-initialized .slick-slide .image-caption .row {
            height: 100%; }
            .image-slider.slider.slick-initialized .slick-slide .image-caption .row .item {
              position: relative;
              padding: 30px 40px; }
              .image-slider.slider.slick-initialized .slick-slide .image-caption .row .item h1, .image-slider.slider.slick-initialized .slick-slide .image-caption .row .item h2, .image-slider.slider.slick-initialized .slick-slide .image-caption .row .item p {
                color: #fff; }
              .image-slider.slider.slick-initialized .slick-slide .image-caption .row .item h1 {
                font-size: 2.5rem;
                font-weight: bold; }
              .image-slider.slider.slick-initialized .slick-slide .image-caption .row .item h2 {
                font-size: 1.875rem; }
              .image-slider.slider.slick-initialized .slick-slide .image-caption .row .item p {
                font-size: 1.125rem;
                margin-bottom: 0;
                line-height: 1.3; }
              .image-slider.slider.slick-initialized .slick-slide .image-caption .row .item:before {
                content: '';
                background: #0033A0;
                position: absolute;
                width: 100%;
                height: 100%;
                z-index: -1;
                top: 0;
                left: 0; }
              .image-slider.slider.slick-initialized .slick-slide .image-caption .row .item a {
                margin-bottom: 0;
                margin-top: 18px;
                border-radius: 4px; }
                .image-slider.slider.slick-initialized .slick-slide .image-caption .row .item a:focus {
                  outline: 0;
                  box-shadow: none; }
          @media screen and (max-width: 63.9375em) {
            .image-slider.slider.slick-initialized .slick-slide .image-caption {
              position: relative;
              background: #0033A0; }
              .image-slider.slider.slick-initialized .slick-slide .image-caption .row {
                justify-content: flex-start; }
                .image-slider.slider.slick-initialized .slick-slide .image-caption .row .item {
                  color: #fff; }
                  .image-slider.slider.slick-initialized .slick-slide .image-caption .row .item:before {
                    background: none;
                    opacity: 1; }
                  .image-slider.slider.slick-initialized .slick-slide .image-caption .row .item h1, .image-slider.slider.slick-initialized .slick-slide .image-caption .row .item h2, .image-slider.slider.slick-initialized .slick-slide .image-caption .row .item h3, .image-slider.slider.slick-initialized .slick-slide .image-caption .row .item p {
                    color: #fff;
                    line-height: 1.1; } }
      .image-slider.slider.slick-initialized .slick-prev {
        left: 20px; }
        .image-slider.slider.slick-initialized .slick-prev:before {
          content: '\f104';
          left: 14px; }
      .image-slider.slider.slick-initialized .slick-next {
        right: 20px; }
        .image-slider.slider.slick-initialized .slick-next:before {
          content: '\f105';
          left: 16px; }
      @media screen and (max-width: 39.9375em) {
        .image-slider.slider.slick-initialized .slick-prev, .image-slider.slider.slick-initialized .slick-next {
          display: none !important; } }

.submenu-container nav ul li {
  padding: 0;
  border-bottom: 1px solid #fff; }
  .submenu-container nav ul li a {
    padding: 12px 19px 14px 19px;
    display: block;
    background: #eee;
    color: #0033A0;
    font-size: 1.125rem; }
  .submenu-container nav ul li:last-of-type {
    border-bottom: 0; }
  .submenu-container nav ul li ul {
    display: block; }
.submenu-container.gray-menu nav ul li a.active-trail {
  background: #63656a;
  color: #fff; }
.submenu-container.blue-menu nav ul li a.active-trail {
  background: #0033A0;
  color: #fff; }

.courses .course-item {
  margin-bottom: 40px; }
  .courses .course-item h2 {
    display: block;
    color: #fff;
    background: #0033A0;
    font-size: 1.875rem;
    padding: 19px 27px 24px 27px;
    margin-bottom: 4px; }
  .courses .course-item .document-container {
    background: #eee;
    padding: 23px 29px; }
    .courses .course-item .document-container .course-document a {
      color: #0033A0;
      font-size: 1.125rem;
      position: relative;
      display: table;
      line-height: 1.2;
      margin: 0 0 9px 0; }
      .courses .course-item .document-container .course-document a:before {
        content: '\f0f6';
        font-family: FontAwesome;
        color: #1897d4;
        font-size: 1.625rem;
        position: relative;
        top: -5px;
        padding-right: 17px;
        display: table-cell;
        vertical-align: middle; }
      .courses .course-item .document-container .course-document a:hover, .courses .course-item .document-container .course-document a:focus {
        outline: 0;
        box-shadow: none; }
    .courses .course-item .document-container .course-document:last-child a {
      margin-bottom: 0; }
  .courses .course-item .course-note {
    margin-top: 11px; }
    .courses .course-item .course-note p {
      font-size: 1rem;
      color: #000;
      margin-bottom: 0; }
  @media screen and (max-width: 39.9375em) {
    .courses .course-item .document-container .course-document a:before {
      display: none; } }

.events_list .rows-container {
  margin-bottom: 35px; }
  .events_list .rows-container:last-child {
    margin-bottom: 0; }
  .events_list .rows-container .event-info {
    padding: 18px 7px 26px 7px;
    border: 1px solid #c8c8c7;
    margin-bottom: 5px; }
    .events_list .rows-container .event-info h2 {
      font-size: 1.875rem;
      margin-bottom: 20px; }
      @media screen and (max-width: 63.9375em) {
        .events_list .rows-container .event-info h2 {
          font-size: 1.5625rem;
          line-height: 1.1; } }
    .events_list .rows-container .event-info p {
      font-size: 1.125rem;
      margin-bottom: 0;
      line-height: 1; }
      .events_list .rows-container .event-info p:first-of-type {
        margin-bottom: 4px; }
  .events_list .rows-container .event-details {
    background: #eee;
    padding: 13px 7px 15px 7px; }
    .events_list .rows-container .event-details p {
      font-size: 1rem;
      line-height: 1.3; }
    .events_list .rows-container .event-details .item {
      display: flex; }
      @media screen and (max-width: 39.9375em) {
        .events_list .rows-container .event-details .item .icon {
          width: 60px; } }
      .events_list .rows-container .event-details .item .icon:before {
        font-family: FontAwesome;
        color: #1897d4;
        position: relative;
        font-size: 34px;
        padding-right: 19px;
        display: inline-block; }
      .events_list .rows-container .event-details .item .content {
        position: relative; }
        .events_list .rows-container .event-details .item .content p {
          margin-bottom: 0; }
        @media screen and (max-width: 39.9375em) {
          .events_list .rows-container .event-details .item .content {
            align-self: center; } }
      .events_list .rows-container .event-details .item.date .icon {
        height: 48px; }
        .events_list .rows-container .event-details .item.date .icon:before {
          content: '\f073'; }
      .events_list .rows-container .event-details .item.date .content {
        top: 3px; }
      .events_list .rows-container .event-details .item.location .icon {
        height: 47px; }
        .events_list .rows-container .event-details .item.location .icon:before {
          content: '\f278'; }
      .events_list .rows-container .event-details .item.cost .icon {
        height: 40px; }
        .events_list .rows-container .event-details .item.cost .icon:before {
          content: '\f155';
          border: 2px solid #1897d4;
          width: 30px;
          height: 31px;
          top: 5px;
          font-size: 19px;
          padding: 0;
          margin-right: 15px;
          text-align: center;
          position: relative; }

.dashboard-list .content-item {
  margin-bottom: 29px; }
  .dashboard-list .content-item:last-child {
    margin-bottom: 0; }
  .dashboard-list .content-item h2 {
    font-size: 1.875rem;
    margin-bottom: 11px; }
  .dashboard-list .content-item .heading p {
    font-size: 0.875rem;
    text-transform: uppercase;
    margin: 4px 0; }
  .dashboard-list .content-item .document-container {
    border-top: 1px solid #c8c8c7; }
    .dashboard-list .content-item .document-container .documents:nth-child(even) {
      background: #e5e5e5; }
    .dashboard-list .content-item .document-container .documents a, .dashboard-list .content-item .document-container .documents p {
      font-size: 1.125rem;
      margin: 4px 0;
      display: block; }

.contact-column h2 {
  background: #0033A0;
  color: #fff;
  display: block;
  font-size: 1.875rem;
  margin-bottom: 5px;
  padding: 19px 30px; }
.contact-column .content-container {
  background: #eee;
  padding: 24px 30px 19px 30px; }
  .contact-column .content-container p {
    line-height: 1.3; }

#social-media-bar a.social-icon {
  position: relative;
  margin: 0 auto 14px auto;
  width: 60px;
  height: 60px;
  display: block; }
  #social-media-bar a.social-icon:before {
    position: absolute;
    font-family: 'FontAwesome';
    color: #fff;
    font-size: 2rem;
    left: 0;
    right: 0;
    top: 6px; }
  #social-media-bar a.social-icon.facebook {
    background: #3a5897;
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
    border-radius: 50%;
    border: 1px solid #3a5897;
    width: 58px;
    height: 58px;
    overflow: hidden; }
    #social-media-bar a.social-icon.facebook:before {
      content: '\f09a'; }
  #social-media-bar a.social-icon.twitter {
    background: #54aced;
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
    border-radius: 50%;
    border: 1px solid #54aced;
    width: 58px;
    height: 58px;
    overflow: hidden; }
    #social-media-bar a.social-icon.twitter:before {
      content: '\f099'; }
  #social-media-bar a.social-icon.linkedIn {
    background: #007ab5;
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
    border-radius: 50%;
    border: 1px solid #007ab5;
    width: 58px;
    height: 58px;
    overflow: hidden; }
    #social-media-bar a.social-icon.linkedIn:before {
      content: '\f0e1';
      top: 3px; }
  #social-media-bar a.social-icon.pinterest {
    background: #ca1f27;
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
    border-radius: 50%;
    border: 1px solid #ca1f27;
    width: 58px;
    height: 58px;
    overflow: hidden; }
    #social-media-bar a.social-icon.pinterest:before {
      content: '\f231'; }
  #social-media-bar a.social-icon.flickr {
    background: #ff3996;
    color: #fff;
    line-height: 1.25;
    font-size: 2.5rem;
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
    border-radius: 50%;
    border: 1px solid #ff3996;
    width: 58px;
    height: 58px;
    overflow: hidden; }
    #social-media-bar a.social-icon.flickr:before {
      content: ''; }
  #social-media-bar a.social-icon:hover, #social-media-bar a.social-icon:focus {
    outline: 0;
    box-shadow: none; }
#social-media-bar a.title {
  color: #000;
  font-size: 1rem; }
  #social-media-bar a.title:hover, #social-media-bar a.title:focus {
    outline: 0;
    box-shadow: none; }
  @media screen and (max-width: 39.9375em) {
    #social-media-bar a.title {
      display: block;
      margin-bottom: 17px; } }
#social-media-bar .contact-information {
  margin-top: 27px; }
  #social-media-bar .contact-information span {
    font-size: 1rem;
    position: relative; }
    #social-media-bar .contact-information span.dot-before {
      margin-left: 7px; }
      #social-media-bar .contact-information span.dot-before:before {
        content: '';
        position: absolute;
        left: -8px;
        top: 10px;
        width: 3px;
        height: 3px;
        line-height: 0;
        display: list-item;
        list-style-type: disc;
        list-style-position: inside;
        font-size: 0.6875rem; }
    #social-media-bar .contact-information span.dot-after {
      margin-right: 7px; }
      #social-media-bar .contact-information span.dot-after:after {
        content: '';
        position: absolute;
        right: -7px;
        top: 10px;
        width: 3px;
        height: 3px;
        line-height: 0;
        display: list-item;
        list-style-type: disc;
        list-style-position: inside;
        font-size: 0.6875rem; }

.person-node .person-image {
  float: right;
  border-left: 40px solid #fff;
  margin-bottom: 12px; }
.person-node .person-container {
  border-bottom: 1px solid #c8c8c7;
  padding-bottom: 32px;
  margin-bottom: 33px; }
@media screen and (max-width: 39.9375em) {
  .person-node .person-image {
    display: block;
    float: none;
    border: 0;
    margin-bottom: 31px; } }

.person-list h2 {
  line-height: 1;
  margin-bottom: 36px;
  font-size: 2.5rem; }
.person-list .person-item {
  margin-bottom: 40px; }
  .person-list .person-item .content {
    padding: 20px;
    border: 1px solid #c8c8c7; }
    .person-list .person-item .content img {
      margin-bottom: 10px; }
    .person-list .person-item .content h3 {
      font-size: 1.25rem;
      margin-bottom: 0; }
      .person-list .person-item .content h3 a {
        color: #000; }
    .person-list .person-item .content hr {
      margin-top: 12px;
      margin-bottom: 13px;
      border-bottom-color: #c8c8c7; }
    .person-list .person-item .content a {
      font-size: 1.125rem;
      line-height: 1.3; }
    .person-list .person-item .content p {
      font-size: 1rem;
      margin-bottom: 0;
      line-height: 1.3;
      color: #000; }

.featured-events .featured-events-list h2 {
  margin-bottom: 16px; }
.featured-events .featured-events-list .featured-item {
  border-top: 1px solid #eee;
  padding-top: 13px;
  padding-bottom: 12px; }
  .featured-events .featured-events-list .featured-item h3 {
    font-weight: bold;
    margin-bottom: 0;
    line-height: 1; }
    .featured-events .featured-events-list .featured-item h3 a {
      font-size: 1.125rem;
      color: #000; }
  .featured-events .featured-events-list .featured-item .date {
    color: #000;
    display: block;
    font-size: 1.125rem; }
  .featured-events .featured-events-list .featured-item .event-description p {
    margin-bottom: 0;
    line-height: 1.3; }
  .featured-events .featured-events-list .featured-item .event-description a {
    font-size: 1.125rem;
    line-height: 1.3;
    color: #1897d4;
    margin-bottom: 7px; }

.wysiwyg-box {
  padding: 25px 30px 30px 30px; }
  .wysiwyg-box p {
    font-size: 1.125rem;
    margin: 0;
    line-height: 1.3; }
  .wysiwyg-box a {
    color: #3d58ac; }

.in-the-news-list .list-item img {
  margin-bottom: 14px; }
.in-the-news-list .list-item a {
  font-size: 1.25rem;
  font-weight: bold;
  color: #1897d4;
  line-height: 1.3; }
  .in-the-news-list .list-item a:focus, .in-the-news-list .list-item a:hover {
    outline: 0;
    box-shadow: none; }
@media screen and (max-width: 39.9375em) {
  .in-the-news-list .list-item {
    margin-bottom: 24px; } }

.search-results-container {
  margin: 94px 0; }
  @media screen and (max-width: 39.9375em) {
    .search-results-container {
      margin: 30px 0; } }
  .search-results-container .search-results-search-form {
    margin: 30px 0; }
    .search-results-container .search-results-search-form .search-form input[type="search"], .search-results-container .search-results-search-form form input[type="search"] {
      box-shadow: none;
      display: inline-block;
      width: 300px;
      vertical-align: top; }
      .search-results-container .search-results-search-form .search-form input[type="search"]:hover, .search-results-container .search-results-search-form .search-form input[type="search"]:focus, .search-results-container .search-results-search-form form input[type="search"]:hover, .search-results-container .search-results-search-form form input[type="search"]:focus {
        outline: 0;
        box-shadow: none; }
    .search-results-container .search-results-search-form .search-form input[type="submit"], .search-results-container .search-results-search-form form input[type="submit"] {
      float: none;
      display: inline-block;
      height: 39px;
      width: 100px;
      color: #fff;
      font-size: 1rem;
      background: #0033A0;
      vertical-align: top;
      border: 1px solid #0033A0; }
      .search-results-container .search-results-search-form .search-form input[type="submit"]:hover, .search-results-container .search-results-search-form .search-form input[type="submit"]:focus, .search-results-container .search-results-search-form form input[type="submit"]:hover, .search-results-container .search-results-search-form form input[type="submit"]:focus {
        box-shadow: none;
        outline: 0; }
    @media screen and (max-width: 63.9375em) {
      .search-results-container .search-results-search-form .search-form input[type="search"], .search-results-container .search-results-search-form form input[type="search"] {
        width: 200px; } }
    @media screen and (max-width: 39.9375em) {
      .search-results-container .search-results-search-form .search-form input[type="search"], .search-results-container .search-results-search-form form input[type="search"] {
        width: 150px; } }
  .search-results-container .tabs {
    border: 0;
    border-bottom: 1px solid #0033A0; }
    .search-results-container .tabs .tabs-title > a {
      font-size: 1rem;
      color: #0033A0;
      background: #eee;
      padding: 15px 19px; }
    .search-results-container .tabs .tabs-title.is-active > a {
      background: #0033A0;
      color: #fff; }
    @media screen and (max-width: 39.9375em) {
      .search-results-container .tabs .tabs-title > a {
        font-size: 12px;
        padding: 13px 12px; } }
  .search-results-container .tabs-content {
    border: 0; }
    .search-results-container .tabs-content .tabs-panel {
      padding: 0; }
      .search-results-container .tabs-content .tabs-panel h1 {
        font-size: 1.875rem; }
      .search-results-container .tabs-content .tabs-panel h2.no-results {
        font-size: 1rem;
        font-style: italic; }
      .search-results-container .tabs-content .tabs-panel #GCSEresults h2.no-results {
        font-size: 1rem;
        font-style: italic; }
      .search-results-container .tabs-content .tabs-panel #GCSEresults .gsc-control-cse {
        background: none;
        border: 0;
        padding: 0; }
        .search-results-container .tabs-content .tabs-panel #GCSEresults .gsc-control-cse div {
          padding: 0;
          height: auto; }
        .search-results-container .tabs-content .tabs-panel #GCSEresults .gsc-control-cse .gsc-above-wrapper-area {
          display: none; }
        .search-results-container .tabs-content .tabs-panel #GCSEresults .gsc-control-cse .gsc-resultsRoot .gsc-resultsHeader {
          display: none; }
        .search-results-container .tabs-content .tabs-panel #GCSEresults .gsc-control-cse .gsc-resultsRoot .gsc-results .gsc-webResult.gsc-result {
          border: 0;
          background: none; }
          .search-results-container .tabs-content .tabs-panel #GCSEresults .gsc-control-cse .gsc-resultsRoot .gsc-results .gsc-webResult.gsc-result a.gs-title {
            overflow: visible;
            font-size: 1rem;
            color: #0033A0; }
          .search-results-container .tabs-content .tabs-panel #GCSEresults .gsc-control-cse .gsc-resultsRoot .gsc-results .gsc-webResult.gsc-result .gsc-url-top > div {
            color: #9d9d9d;
            font-size: 13px; }
          .search-results-container .tabs-content .tabs-panel #GCSEresults .gsc-control-cse .gsc-resultsRoot .gsc-results .gsc-webResult.gsc-result .gsc-table-result tbody {
            border: 0; }
            .search-results-container .tabs-content .tabs-panel #GCSEresults .gsc-control-cse .gsc-resultsRoot .gsc-results .gsc-webResult.gsc-result .gsc-table-result tbody tr td > div {
              font-size: 13px;
              line-height: 16px; }
        .search-results-container .tabs-content .tabs-panel #GCSEresults .gsc-control-cse .gsc-resultsRoot .gsc-results .gsc-cursor-box {
          margin: 0; }
          .search-results-container .tabs-content .tabs-panel #GCSEresults .gsc-control-cse .gsc-resultsRoot .gsc-results .gsc-cursor-box .gsc-cursor-page {
            color: #0033A0;
            background: none;
            padding: 6px 12px;
            line-height: 1.5;
            border: 1px solid #c3c3c3;
            font-size: 1rem;
            margin: 0 0 0 -1px; }
            .search-results-container .tabs-content .tabs-panel #GCSEresults .gsc-control-cse .gsc-resultsRoot .gsc-results .gsc-cursor-box .gsc-cursor-page:first-child {
              border-bottom-left-radius: 4px;
              border-top-left-radius: 4px; }
            .search-results-container .tabs-content .tabs-panel #GCSEresults .gsc-control-cse .gsc-resultsRoot .gsc-results .gsc-cursor-box .gsc-cursor-page:last-child {
              border-bottom-right-radius: 4px;
              border-top-right-radius: 4px; }
            .search-results-container .tabs-content .tabs-panel #GCSEresults .gsc-control-cse .gsc-resultsRoot .gsc-results .gsc-cursor-box .gsc-cursor-page:hover, .search-results-container .tabs-content .tabs-panel #GCSEresults .gsc-control-cse .gsc-resultsRoot .gsc-results .gsc-cursor-box .gsc-cursor-page:focus {
              outline: 0;
              box-shadow: none;
              text-decoration: none; }
            .search-results-container .tabs-content .tabs-panel #GCSEresults .gsc-control-cse .gsc-resultsRoot .gsc-results .gsc-cursor-box .gsc-cursor-page.gsc-cursor-current-page {
              background: #0033A0;
              color: #fff;
              border-color: #0033A0; }
      .search-results-container .tabs-content .tabs-panel ul.search-results {
        margin-left: 0; }
        .search-results-container .tabs-content .tabs-panel ul.search-results li h2 {
          margin-bottom: 0;
          line-height: 1; }
          .search-results-container .tabs-content .tabs-panel ul.search-results li h2 a {
            text-decoration: underline;
            font-size: 1rem;
            color: #0033A0; }
        .search-results-container .tabs-content .tabs-panel ul.search-results li .search-url {
          font-size: 13px;
          color: #9d9d9d; }
        .search-results-container .tabs-content .tabs-panel ul.search-results li p.search-snippet {
          font-size: 13px;
          line-height: 16px; }

#user-login input[type="submit"], #user-pass input[type="submit"], #user-register-form input[type="submit"] {
  background: #1897d4;
  color: #fff;
  margin-bottom: 0;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  padding: 9px 11px;
  font-size: 1rem;
  border: 0; }
  #user-login input[type="submit"]:hover, #user-login input[type="submit"]:focus, #user-pass input[type="submit"]:hover, #user-pass input[type="submit"]:focus, #user-register-form input[type="submit"]:hover, #user-register-form input[type="submit"]:focus {
    background: #1897d4;
    color: #fff;
    box-shadow: none;
    outline: 0; }

.page-not-found-container {
  margin: 90px 0; }
  @media screen and (max-width: 63.9375em) {
    .page-not-found-container {
      margin: 60px 0; } }
  .page-not-found-container .page-not-found-search {
    margin: 30px 0; }
    .page-not-found-container .page-not-found-search .search-form input[type="search"], .page-not-found-container .page-not-found-search form input[type="search"] {
      box-shadow: none;
      display: inline-block;
      width: 76%;
      vertical-align: top; }
      .page-not-found-container .page-not-found-search .search-form input[type="search"]:hover, .page-not-found-container .page-not-found-search .search-form input[type="search"]:focus, .page-not-found-container .page-not-found-search form input[type="search"]:hover, .page-not-found-container .page-not-found-search form input[type="search"]:focus {
        outline: 0;
        box-shadow: none; }
    .page-not-found-container .page-not-found-search .search-form input[type="submit"], .page-not-found-container .page-not-found-search form input[type="submit"] {
      float: none;
      display: inline-block;
      height: 39px;
      width: 100px;
      color: #fff;
      font-size: 1rem;
      background: #1897d4;
      vertical-align: top;
      border: 1px solid #1897d4; }
      .page-not-found-container .page-not-found-search .search-form input[type="submit"]:hover, .page-not-found-container .page-not-found-search .search-form input[type="submit"]:focus, .page-not-found-container .page-not-found-search form input[type="submit"]:hover, .page-not-found-container .page-not-found-search form input[type="submit"]:focus {
        box-shadow: none;
        outline: 0; }
    @media screen and (max-width: 63.9375em) {
      .page-not-found-container .page-not-found-search .search-form input[type="search"], .page-not-found-container .page-not-found-search form input[type="search"] {
        width: 200px; } }
    @media screen and (max-width: 39.9375em) {
      .page-not-found-container .page-not-found-search .search-form input[type="search"], .page-not-found-container .page-not-found-search form input[type="search"] {
        width: 150px; } }

.webform-client-form input.form-submit {
  background-color: #1897d4; }



/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdpdGh1Yi5jc3MiLCJwYXR0ZXJuLmNzcyIsInBhdHRlcm5wYWNrLXRoZW1lLmNzcyIsImZvbnQtYXdlc29tZS5taW4uY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zbGljay1jYXJvdXNlbC9zbGljay9zbGljay5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zbGljay1jYXJvdXNlbC9zbGljay9zbGljay10aGVtZS5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MiLCJ2ZW5kb3JzL2ZvdW5kYXRpb24vX3NldHRpbmdzLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19yb3cuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2JyZWFrcG9pbnQuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2d1dHRlci5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fY29sdW1uLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19wb3NpdGlvbi5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fZmxleC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvX2dsb2JhbC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fbWl4aW5zLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19iYXNlLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL191bml0LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19oZWxwZXJzLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19hbGlnbm1lbnQuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX3ByaW50LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19idXR0b24uc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2NvbG9yLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fdGV4dC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2NoZWNrYm94LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fbGFiZWwuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19oZWxwLXRleHQuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19pbnB1dC1ncm91cC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2ZpZWxkc2V0LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fc2VsZWN0LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fZXJyb3Iuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Zpc2liaWxpdHkuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2JyZWFkY3J1bWJzLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcmlsbGRvd24uc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2Ryb3Bkb3duLW1lbnUuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXgtdmlkZW8uc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2xhYmVsLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19tZWRpYS1vYmplY3Quc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lbnUuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX29mZi1jYW52YXMuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX29yYml0LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19wYWdpbmF0aW9uLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19zbGlkZXIuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3N0aWNreS5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fcmV2ZWFsLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190YWJsZS5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGFicy5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGl0bGUtYmFyLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190b3AtYmFyLnNjc3MiLCJiYXNlL19nbG9iYWwuc2NzcyIsInZlbmRvcnMvYWJsZXBhbmVzdHlsZXMvX2Jhc2Uuc2NzcyIsImxheW91dC9fcGFuZS1jb250ZW50LnNjc3MiLCJsYXlvdXQvX21lc3NhZ2VzLnNjc3MiLCJwYW5lbHNfcGx1Z2lucy9fbWFwLWVtYmVkLnNjc3MiLCJwYW5lbHNfcGx1Z2lucy9fdmlkZW8tZW1iZWQuc2NzcyIsImxheW91dC9faGVhZGVyLnNjc3MiLCJsYXlvdXQvX21vYmlsZS1tZW51LnNjc3MiLCJsYXlvdXQvX2JyZWFkY3J1bWJzLnNjc3MiLCJwYW5lbHNfcGx1Z2lucy9fc25pcHBldC1kaXNwbGF5LnNjc3MiLCJwYW5lbHNfcGx1Z2lucy9faW1hZ2Utc2xpZGVyLnNjc3MiLCJwYW5lbHNfcGx1Z2lucy9fc3VibWVudS5zY3NzIiwicGFuZWxzX3BsdWdpbnMvX2NvdXJzZXMuc2NzcyIsInBhbmVsc19wbHVnaW5zL19ldmVudHNfbGlzdC5zY3NzIiwicGFuZWxzX3BsdWdpbnMvX2Rhc2hib2FyZC1saXN0LnNjc3MiLCJwYW5lbHNfcGx1Z2lucy9fY29udGFjdC1jb2x1bW4uc2NzcyIsInBhbmVsc19wbHVnaW5zL19zb2NpYWwtbWVkaWEtYmFyLnNjc3MiLCJiYXNlL19taXhpbnMuc2NzcyIsInBhbmVsc19wbHVnaW5zL19wZXJzb24tbm9kZS5zY3NzIiwicGFuZWxzX3BsdWdpbnMvX3BlcnNvbi1saXN0LnNjc3MiLCJwYW5lbHNfcGx1Z2lucy9fZmVhdHVyZWQtZXZlbnRzLnNjc3MiLCJwYW5lbHNfcGx1Z2lucy9fd3lzaXd5Zy1ib3guc2NzcyIsInBhbmVsc19wbHVnaW5zL19pbi10aGUtbmV3cy1saXN0LnNjc3MiLCJsYXlvdXQvX3NlYXJjaC1yZXN1bHRzLnNjc3MiLCJsYXlvdXQvX3VzZXItbG9naW4uc2NzcyIsImxheW91dC9fcGFnZS1ub3QtZm91bmQuc2NzcyIsImxheW91dC9fd2ViZm9ybS1jbGllbnQtZm9ybS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQzFIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FB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Y0FBYyxFQUFFLEdBQUc7TUFDbkIsc1ZBQWlCO1FBQ2YsT0FBTyxFQUFFLENBQUM7UUFDVixVQUFVLEVBQUUsSUFBSTtJQUlwQiw4SkFBcUI7TUFDbkIsS0FBSyxFQUFFLElBQUk7TUFDWCxPQUFPLEVBQUUsWUFBWTtNQUNyQixNQUFNLEVBQUUsSUFBSTtNQUNaLEtBQUssRUFBRSxLQUFLO01BQ1osS0FBSyxFeEJ0QkMsSUFBTTtNd0J1QlosU0FBUyxFQUFFLElBQUk7TUFDZixVQUFVLEV4QmZDLE9BQVc7TXdCZ0J0QixjQUFjLEVBQUUsR0FBRztNQUNuQixNQUFNLEVBQUUsaUJBQXFCO01BQzdCLHNWQUFpQjtRQUNmLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLE9BQU8sRUFBRSxDQUFDO0lsRW1IaEIsd0NBQTBCO01rRTlHdEIsOEpBQXFCO1FBQ25CLEtBQUssRUFBRSxLQUFLO0lsRTZHbEIsd0NBQTBCO01rRXhHdEIsOEpBQXFCO1FBQ25CLEtBQUssRUFBRSxLQUFLOztBQzFDcEIsc0NBQWlCO0VBRWYsZ0JBQWdCLEV6QlFELE9BQVciLCJmaWxlIjoic3R5bGVzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5cbmdpdGh1Yi5jb20gc3R5bGUgKGMpIFZhc2lseSBQb2xvdm55b3YgPHZhc3RAd2hpdGVhbnRzLm5ldD5cblxuKi9cblxuLmhsanMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgcGFkZGluZzogMC41ZW07XG4gICAgY29sb3I6ICMzMzM7XG4gICAgYmFja2dyb3VuZDogI2Y4ZjhmODtcbiAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IG5vbmU7XG59XG5cbi5obGpzLWNvbW1lbnQsXG4uZGlmZiAuaGxqcy1oZWFkZXIge1xuICAgIGNvbG9yOiAjOTk4O1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLmhsanMta2V5d29yZCxcbi5jc3MgLnJ1bGUgLmhsanMta2V5d29yZCxcbi5obGpzLXdpbnV0aWxzLFxuLm5naW54IC5obGpzLXRpdGxlLFxuLmhsanMtc3Vic3QsXG4uaGxqcy1yZXF1ZXN0LFxuLmhsanMtc3RhdHVzIHtcbiAgICBjb2xvcjogIzMzMztcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLmhsanMtbnVtYmVyLFxuLmhsanMtaGV4Y29sb3IsXG4ucnVieSAuaGxqcy1jb25zdGFudCB7XG4gICAgY29sb3I6ICMwMDgwODA7XG59XG5cbi5obGpzLXN0cmluZyxcbi5obGpzLXRhZyAuaGxqcy12YWx1ZSxcbi5obGpzLWRvY3RhZyxcbi50ZXggLmhsanMtZm9ybXVsYSB7XG4gICAgY29sb3I6ICNkMTQ7XG59XG5cbi5obGpzLXRpdGxlLFxuLmhsanMtaWQsXG4uc2NzcyAuaGxqcy1wcmVwcm9jZXNzb3Ige1xuICAgIGNvbG9yOiAjOTAwO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uaGxqcy1saXN0IC5obGpzLWtleXdvcmQsXG4uaGxqcy1zdWJzdCB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLmhsanMtY2xhc3MgLmhsanMtdGl0bGUsXG4uaGxqcy10eXBlLFxuLnZoZGwgLmhsanMtbGl0ZXJhbCxcbi50ZXggLmhsanMtY29tbWFuZCB7XG4gICAgY29sb3I6ICM0NTg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5obGpzLXRhZyxcbi5obGpzLXRhZyAuaGxqcy10aXRsZSxcbi5obGpzLXJ1bGUgLmhsanMtcHJvcGVydHksXG4uZGphbmdvIC5obGpzLXRhZyAuaGxqcy1rZXl3b3JkIHtcbiAgICBjb2xvcjogIzAwMDA4MDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG4uaGxqcy1hdHRyaWJ1dGUsXG4uaGxqcy12YXJpYWJsZSxcbi5saXNwIC5obGpzLWJvZHksXG4uaGxqcy1uYW1lIHtcbiAgICBjb2xvcjogIzAwODA4MDtcbn1cblxuLmhsanMtcmVnZXhwIHtcbiAgICBjb2xvcjogIzAwOTkyNjtcbn1cblxuLmhsanMtc3ltYm9sLFxuLnJ1YnkgLmhsanMtc3ltYm9sIC5obGpzLXN0cmluZyxcbi5saXNwIC5obGpzLWtleXdvcmQsXG4uY2xvanVyZSAuaGxqcy1rZXl3b3JkLFxuLnNjaGVtZSAuaGxqcy1rZXl3b3JkLFxuLnRleCAuaGxqcy1zcGVjaWFsLFxuLmhsanMtcHJvbXB0IHtcbiAgICBjb2xvcjogIzk5MDA3Mztcbn1cblxuLmhsanMtYnVpbHRfaW4ge1xuICAgIGNvbG9yOiAjMDA4NmIzO1xufVxuXG4uaGxqcy1wcmVwcm9jZXNzb3IsXG4uaGxqcy1wcmFnbWEsXG4uaGxqcy1waSxcbi5obGpzLWRvY3R5cGUsXG4uaGxqcy1zaGViYW5nLFxuLmhsanMtY2RhdGEge1xuICAgIGNvbG9yOiAjOTk5O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uaGxqcy1kZWxldGlvbiB7XG4gICAgYmFja2dyb3VuZDogI2ZkZDtcbn1cblxuLmhsanMtYWRkaXRpb24ge1xuICAgIGJhY2tncm91bmQ6ICNkZmQ7XG59XG5cbi5kaWZmIC5obGpzLWNoYW5nZSB7XG4gICAgYmFja2dyb3VuZDogIzAwODZiMztcbn1cblxuLmhsanMtY2h1bmsge1xuICAgIGNvbG9yOiAjYWFhO1xufSIsIlxuLnVrLWdsb2JhbC1oZWFkZXIgI3VreS1oZWFkZXIsLnVrLWNvbnRhaW5lcnttYXJnaW4tcmlnaHQ6YXV0bzttYXJnaW4tbGVmdDphdXRvO3BhZGRpbmctbGVmdDoxNXB4O3BhZGRpbmctcmlnaHQ6MTVweH1cbkBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXtcbiAgICAudWstc2VhcmNoLWJhcl9fY29udGFpbmVyLC51ay1nbG9iYWwtaGVhZGVyICN1a3ktaGVhZGVyLC51ay1jb250YWluZXJ7d2lkdGg6NzUwcHh9XG59XG5AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7XG4gICAgLnVrLXNlYXJjaC1iYXJfX2NvbnRhaW5lciwudWstZ2xvYmFsLWhlYWRlciAjdWt5LWhlYWRlciwudWstY29udGFpbmVye3dpZHRoOjk3MHB4fVxufVxuQG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXtcbiAgICAudWstc2VhcmNoLWJhcl9fY29udGFpbmVyLC51ay1nbG9iYWwtaGVhZGVyICN1a3ktaGVhZGVyLC51ay1jb250YWluZXJ7d2lkdGg6MTE3MHB4fVxufVxuXG4udWstc2VhcmNoLWJhcl9fY29udGFpbmVye1xuICAgIG1hcmdpbjowIGF1dG87XG59XG5cbi51ay1zZWFyY2gtYmFyX19mb3JtIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sLnVrLXNlYXJjaC1iYXJfX3N1Ym1pdCwudWstZ2xvYmFsLWhlYWRlcl9fc2VhcmNoLWJ1dHRvbiBidXR0b257ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO2hlaWdodDozNHB4O3BhZGRpbmc6NnB4IDEycHg7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MS40Mjg1NzE0Mztjb2xvcjojNTU1O2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWltYWdlOm5vbmU7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2JvcmRlci1yYWRpdXM6NHB4O2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4wNzUpO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsIGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1c31cblxuLnVrLXNlYXJjaC1iYXJfX2Zvcm0gZm9ybS5zZWFyY2gtZm9ybXtcbiAgICBtYXJnaW4tYm90dG9tOjA7XG59XG5cbi51ay1sb2NrdXA6YmVmb3JlLC51ay1sb2NrdXA6YWZ0ZXIsLnVrLWxvY2t1cDpiZWZvcmUsLnVrLWxvY2t1cDphZnRlciwudWstc2VhcmNoLWJhcl9fcm93OmJlZm9yZSwudWstc2VhcmNoLWJhcl9fcm93OmFmdGVyLC51ay1mb290ZXItdGV4dDpiZWZvcmUsLnVrLWZvb3Rlci10ZXh0OmFmdGVyLC51ay1yb3c6YmVmb3JlLC51ay1yb3c6YWZ0ZXIsLnVrLWxvY2t1cC0td2hpdGU6YmVmb3JlLC51ay1sb2NrdXAtLXdoaXRlOmFmdGVyLC51ay1sb2NrdXAtLXdoaXRlOmJlZm9yZSwudWstbG9ja3VwLS13aGl0ZTphZnRlciwudWstc2VhcmNoLWJhcl9fY29udGFpbmVyOmJlZm9yZSwudWstc2VhcmNoLWJhcl9fY29udGFpbmVyOmFmdGVyLC51ay1nbG9iYWwtaGVhZGVyICN1a3ktaGVhZGVyOmJlZm9yZSwudWstZ2xvYmFsLWhlYWRlciAjdWt5LWhlYWRlcjphZnRlciwudWstY29udGFpbmVyOmJlZm9yZSwudWstY29udGFpbmVyOmFmdGVye2NvbnRlbnQ6XCIgXCI7ZGlzcGxheTp0YWJsZX0uY2xlYXJmaXg6YWZ0ZXIsLmRsLWhvcml6b250YWwgZGQ6YWZ0ZXIsLmNvbnRhaW5lcjphZnRlciwuY29udGFpbmVyLWZsdWlkOmFmdGVyLC5yb3c6YWZ0ZXIsLmZvcm0taG9yaXpvbnRhbCAuZm9ybS1ncm91cDphZnRlciwuYnRuLXRvb2xiYXI6YWZ0ZXIsLmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuLWdyb3VwOmFmdGVyLC5uYXY6YWZ0ZXIsLm5hdmJhcjphZnRlciwubmF2YmFyLWhlYWRlcjphZnRlciwubmF2YmFyLWNvbGxhcHNlOmFmdGVyLC5wYWdlcjphZnRlciwucGFuZWwtYm9keTphZnRlciwubW9kYWwtaGVhZGVyOmFmdGVyLC5tb2RhbC1mb290ZXI6YWZ0ZXIsLnVrLWxvY2t1cDphZnRlciwudWstbG9ja3VwOmFmdGVyLC51ay1zZWFyY2gtYmFyX19yb3c6YWZ0ZXIsLnVrLWZvb3Rlci10ZXh0OmFmdGVyLC51ay1yb3c6YWZ0ZXIsLnVrLWxvY2t1cC0td2hpdGU6YWZ0ZXIsLnVrLWxvY2t1cC0td2hpdGU6YWZ0ZXIsLnVrLXNlYXJjaC1iYXJfX2NvbnRhaW5lcjphZnRlciwudWstZ2xvYmFsLWhlYWRlciAjdWt5LWhlYWRlcjphZnRlciwudWstY29udGFpbmVyOmFmdGVye2NsZWFyOmJvdGh9XG5cblxuXG4udWstbG9ja3VwLC51ay1sb2NrdXAtLXdoaXRle21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjA7d2lkdGg6NDAwcHg7cGFkZGluZy10b3A6MDttYXJnaW46MCBhdXRvO3RleHQtYWxpZ246Y2VudGVyfVxuLnVrLWxvY2t1cCBhe3RleHQtYWxpZ246Y2VudGVyO2NvbG9yOndoaXRlfVxuLnVrLWxvY2t1cC0td2hpdGV7Y29sb3I6d2hpdGU7ZmlsbDp3aGl0ZX1cbi51ay1sb2NrdXAgc3Zne2ZpbGw6I2ZmZjtvdmVyZmxvdzpoaWRkZW59XG5cbi51ay1sb2dve2JvcmRlcjoxcHggc29saWQgYmxhY2s7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6YmxvY2t9XG4udWstbG9nbyBpbWd7d2lkdGg6NTAlO3BhZGRpbmc6MjUlfS51ay1sb2dvLS13aGl0ZSBpbWd7d2lkdGg6NTAlO3BhZGRpbmc6MjUlfVxuLnVrLWxvY2t1cCwudWstbG9ja3VwLS13aGl0ZXttYXJnaW4tbGVmdDotMTVweDttYXJnaW4tcmlnaHQ6LTE1cHg7bWFyZ2luOjAgYXV0bzt0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDo0MDBweH1cbi51ay1sb2NrdXAgaW1ne3dpZHRoOjEwMCV9LnVrLWxvY2t1cC0td2hpdGV7Y29sb3I6I0ZGRn1cblxuLnVrLWFjY29yZGlvbl9fYnV0dG9ue3dpZHRoOjEwMCU7cGFkZGluZzoxNXB4IDYwcHggMTVweCAzMHB4O2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JhY2tncm91bmQtY29sb3I6I2YxZjFmMTtib3JkZXI6MDtmb250LXNpemU6MTdweDtsaW5lLWhlaWdodDoxN3B4O3RleHQtYWxpZ246bGVmdH1cbi51ay1hY2NvcmRpb25fX2NvbnRlbnR7cGFkZGluZzoxNXB4IDMwcHh9XG4udWstYWNjb3JkaW9uLS1ib3JkZXJlZHttYXJnaW4tdG9wOjE1cHg7Ym9yZGVyOjNweCBzb2xpZCAjZjFmMWYxfVxuLypbYXJpYS1oaWRkZW49dHJ1ZV17ZGlzcGxheTpub25lICFpbXBvcnRhbnR9Ki9cblxuLnVrLXNlYXJjaC1iYXJ7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO3dpZHRoOjEwMCU7YmFja2dyb3VuZDojMjcyNzI3O2hlaWdodDo2MHB4O3RyYW5zaXRpb246LjJzO3RvcDowO3RyYW5zaXRpb246dG9wIDIwMG1zIGN1YmljLWJlemllciguMTcsIC4wNCwgLjAzLCAuOTQpfVxuLnVrLXNlYXJjaC1iYXJbYXJpYS1oaWRkZW49dHJ1ZV17dG9wOi02MHB4O2Rpc3BsYXk6YmxvY2sgIWltcG9ydGFudH1cbi51ay1zZWFyY2gtYmFyX19tZW51e2Rpc3BsYXk6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTtmbG9hdDpsZWZ0O3dpZHRoOjI1JTttaW4taGVpZ2h0OjFweDtwYWRkaW5nLWxlZnQ6MTVweDtwYWRkaW5nLXJpZ2h0OjE1cHh9XG5cbkBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXtcbiAgICAudWstc2VhcmNoLWJhcl9fbWVudXtmbG9hdDpsZWZ0O3dpZHRoOjI1JX1cbn1cbkBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXtcbiAgICAudWstc2VhcmNoLWJhcl9fbWVudXtkaXNwbGF5OmJsb2NrfVxufVxuXG4udWstc2VhcmNoLWJhcl9fbWVudS1pdGVte2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjQ2cHg7Zm9udC1mYW1pbHk6J0hlbHZldGljYSBOZXVlJyxIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZjtmb250LXdlaWdodDo4MDA7YmFja2dyb3VuZDojMjcyNzI3O2NvbG9yOndoaXRlO2JvcmRlcjoxcHggc29saWQgd2hpdGU7cGFkZGluZzoycHggMTBweDt0cmFuc2l0aW9uOi4ycztsaW5lLWhlaWdodDo0MHB4O3dpZHRoOjgwcHg7dGV4dC1hbGlnbjpjZW50ZXI7ZmxvYXQ6bGVmdDttYXJnaW4tcmlnaHQ6MTBweH1cbi51ay1zZWFyY2gtYmFyX19tZW51LWl0ZW06aG92ZXJ7YmFja2dyb3VuZDp3aGl0ZTtjb2xvcjojMjcyNzI3O3RleHQtZGVjb3JhdGlvbjpub25lO2JvcmRlcjoxcHggc29saWQgIzI3MjcyN31cbi51ay1zZWFyY2gtYmFyX19yb3d7bWFyZ2luLWxlZnQ6LTIwcHg7bWFyZ2luLXJpZ2h0Oi0yMHB4O21hcmdpbjo3cHggMDtwb3NpdGlvbjpyZWxhdGl2ZX1cbi51ay1zZWFyY2gtYmFyX19kaXNtaXNze3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjEwcHg7YmFja2dyb3VuZDojMjcyNzI3O2JvcmRlcjowO3BhZGRpbmc6MH1cbi51ay1zZWFyY2gtYmFyX19kaXNtaXNzIHN2Z3tmaWxsOndoaXRlO3dpZHRoOjIwcHh9XG5cbkBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXtcbiAgICAudWstc2VhcmNoLWJhcl9fZGlzbWlzc3tyaWdodDoxMHB4fVxuICAgIC51ay1zZWFyY2gtYmFyX19kaXNtaXNzIHN2Z3t3aWR0aDozMHB4fVxufVxuXG4udWstc2VhcmNoLWJhcl9fZm9ybXtoZWlnaHQ6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZX1cbi8qLnVrLXNlYXJjaC1iYXJfX2Zvcm0gZm9ybSB7ZGlzcGxheTpub25lO30qL1xuLnVrLXNlYXJjaC1iYXJfX2Zvcm0gaW5wdXRbdHlwZT1cInNlYXJjaFwiXXtmbG9hdDpsZWZ0O3dpZHRoOjY2LjY2NjY2NjY3JTttYXJnaW4tbGVmdDowO3Bvc2l0aW9uOnJlbGF0aXZlO21pbi1oZWlnaHQ6MXB4O3BhZGRpbmctbGVmdDoxNXB4O3BhZGRpbmctcmlnaHQ6MTVweDtmb250LXNpemU6MzBweDtoZWlnaHQ6NDZweDtib3JkZXItcmFkaXVzOjB9XG5cbkBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXtcbiAgICAudWstc2VhcmNoLWJhcl9fZm9ybSBpbnB1dFt0eXBlPVwic2VhcmNoXCJde2Zsb2F0OmxlZnQ7d2lkdGg6NDEuNjY2NjY2NjclfVxufVxuQG1lZGlhIChtaW4td2lkdGg6OTkycHgpe1xuICAgIC51ay1zZWFyY2gtYmFyX19mb3JtIGlucHV0W3R5cGU9XCJzZWFyY2hcIl17bWFyZ2luLWxlZnQ6OC4zMzMzMzMzMyV9XG59XG5AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7XG4gICAgLnVrLXNlYXJjaC1iYXJfX2Zvcm0gaW5wdXRbdHlwZT1cInNlYXJjaFwiXXttYXJnaW4tcmlnaHQ6MTBweH1cbn1cblxuLnVrLXNlYXJjaC1iYXJfX3N1Ym1pdHtmbG9hdDpsZWZ0O3dpZHRoOjI1JTttYXJnaW4tbGVmdDowO3Bvc2l0aW9uOnJlbGF0aXZlO21pbi1oZWlnaHQ6MXB4O3BhZGRpbmctbGVmdDoxNXB4O3BhZGRpbmctcmlnaHQ6MTVweDtyaWdodDoxcHg7aGVpZ2h0OjQ2cHg7Zm9udC1mYW1pbHk6J0hlbHZldGljYSBOZXVlJyxIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZjtmb250LXdlaWdodDo4MDA7YmFja2dyb3VuZDojMjcyNzI3O2NvbG9yOndoaXRlO2JvcmRlcjoxcHggc29saWQgd2hpdGU7cGFkZGluZzoycHggNXB4O3RyYW5zaXRpb246LjJzO2JvcmRlci1yYWRpdXM6MH1cblxuQG1lZGlhIChtaW4td2lkdGg6NzY4cHgpe1xuICAgIC51ay1zZWFyY2gtYmFyX19zdWJtaXR7ZmxvYXQ6bGVmdDt3aWR0aDoxNi42NjY2NjY2NyV9XG59XG5AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7XG4gICAgLnVrLXNlYXJjaC1iYXJfX3N1Ym1pdHtmbG9hdDpsZWZ0O3dpZHRoOjE2LjY2NjY2NjY3JX1cbn1cbkBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXtcbiAgICAudWstc2VhcmNoLWJhcl9fc3VibWl0e3JpZ2h0OjB9XG59XG5cbi51ay1zZWFyY2gtYmFyX19zdWJtaXQ6aG92ZXJ7YmFja2dyb3VuZDp3aGl0ZTtjb2xvcjojMjcyNzI3O2JvcmRlcjoxcHggc29saWQgIzI3MjcyN31cbi51ay1zb2NpYWx7ZGlzcGxheTpub25lfS51ay1zb2NpYWxfX2xpc3R7Ym9yZGVyLXJpZ2h0Om5vbmU7cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDoxMHB4fVxuLnVrLXNvY2lhbF9fbGlzdC1pdGVte2xpc3Qtc3R5bGUtdHlwZTpub25lO2xpbmUtaGVpZ2h0OjIwcHg7bWFyZ2luLWJvdHRvbTo1cHh9XG4udWstc29jaWFsX19saXN0LWl0ZW06bGFzdC1vZi10eXBlIGF7Ym9yZGVyOm5vbmV9XG4udWstc29jaWFsX19saXN0LWl0ZW0gYXtkaXNwbGF5OmJsb2NrO3dpZHRoOjkwcHg7bWFyZ2luOjAgYXV0bztwYWRkaW5nOjEwcHggMCA1cHg7Ym9yZGVyLWJvdHRvbToycHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjIpfVxuLnVrLXNvY2lhbF9faWNvbnt3aWR0aDo5MHB4O2hlaWdodDoyNXB4O2ZpbGw6I2ZmZn1cbi51ay1zb2NpYWxfX2ljb246aG92ZXJ7ZmlsbDojYzNjM2MzO3RyYW5zaXRpb246LjJzIGVhc2V9XG5cbkBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXtcbiAgICAudWstc29jaWFse2Rpc3BsYXk6YmxvY2t9XG59XG5cbi51ay1nbG9iYWwtZm9vdGVye1xuICAgIGJhY2tncm91bmQ6IzAwMzNBMDtcbiAgICAvKmhlaWdodDoxMDAlOyovXG4gICAgcGFkZGluZy10b3A6NTBweFxufVxuLnVrLWdsb2JhbC1mb290ZXIgZm9vdGVye21hcmdpbjowIDA7cGFkZGluZy1sZWZ0OjIwcHg7cGFkZGluZy1yaWdodDoyMHB4fVxuXG5AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7XG4gICAgLnVrLWdsb2JhbC1mb290ZXIgZm9vdGVye3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MH1cbn1cblxuLnVrLWZvb3Rlci10ZXh0e21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjA7dGV4dC1hbGlnbjpsZWZ0fVxuLnVrLWZvb3Rlci10ZXh0X19saXN0e3dpZHRoOmF1dG87cGFkZGluZy1sZWZ0OjA7dGV4dC1hbGlnbjpsZWZ0O21hcmdpbi1ib3R0b206MTBweCAhaW1wb3J0YW50O31cbi51ay1mb290ZXItdGV4dF9fbGlzdC1pdGVte2xpc3Qtc3R5bGU6bm9uZTtkaXNwbGF5OmlubGluZTtjb2xvcjp3aGl0ZTtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHdoaXRlO3BhZGRpbmc6MCAxMHB4O2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjMycHg7Zm9udC13ZWlnaHQ6Ym9sZDt9XG4udWstZm9vdGVyLXRleHRfX2xpc3QtaXRlbSBhe2NvbG9yOndoaXRlOyBmb250LXNpemU6MTRweDt9XG4udWstZm9vdGVyLXRleHRfX2xpc3QtaXRlbSBhOmhvdmVye2NvbG9yOndoaXRlO31cbi51ay1mb290ZXItdGV4dF9fbGlzdC1pdGVtOmZpcnN0LWNoaWxke3BhZGRpbmc6MCAxMHB4IDAgMH1cbi51ay1mb290ZXItdGV4dF9fbGlzdC1pdGVtOmxhc3QtY2hpbGR7Ym9yZGVyOm5vbmU7cGFkZGluZzowIDAgMCAxMHB4fVxuXG5AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7XG4gICAgLnVrLWZvb3Rlci10ZXh0X19saXN0e3RleHQtYWxpZ246Y2VudGVyfVxufVxuXG4udWstZ2xvYmFsLWhlYWRlcntiYWNrZ3JvdW5kOiMwMDMzQTA7bWluLWhlaWdodDo2MHB4fVxuLnVrLWdsb2JhbC1oZWFkZXJfX2xvZ297ZmxvYXQ6bGVmdDt3aWR0aDo3NSU7cG9zaXRpb246cmVsYXRpdmU7bWluLWhlaWdodDoxcHg7cGFkZGluZy1yaWdodDoxNXB4O3BhZGRpbmctbGVmdDowO21hcmdpbi10b3A6NXB4fVxuXG5AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7XG4gICAgLnVrLWdsb2JhbC1oZWFkZXJfX2xvZ297ZmxvYXQ6bGVmdDt3aWR0aDo0MS42NjY2NjY2NyV9XG59XG5AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7XG4gICAgLnVrLWdsb2JhbC1oZWFkZXJfX2xvZ297ZmxvYXQ6bGVmdDt3aWR0aDozMy4zMzMzMzMzMyV9XG59XG5cbi51ay1nbG9iYWwtaGVhZGVyX19sb2dvIGltZ3toZWlnaHQ6NTBweDt3aWR0aDoxMDAlfVxuLnVrLWdsb2JhbC1oZWFkZXJfX2xlZnQtbmF2e2Rpc3BsYXk6bm9uZTtoZWlnaHQ6NjBweDtmbG9hdDpsZWZ0O3dpZHRoOjI1JTtwb3NpdGlvbjpyZWxhdGl2ZTttaW4taGVpZ2h0OjFweDtwYWRkaW5nLWxlZnQ6MTVweDtwYWRkaW5nLXJpZ2h0OjE1cHh9XG5cbkBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXtcbiAgICAudWstZ2xvYmFsLWhlYWRlcl9fbGVmdC1uYXZ7ZmxvYXQ6bGVmdDt3aWR0aDozMy4zMzMzMzMzMyV9XG59XG5AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7XG4gICAgLnVrLWdsb2JhbC1oZWFkZXJfX2xlZnQtbmF2e2Zsb2F0OmxlZnQ7d2lkdGg6NTAlfVxufVxuQG1lZGlhIChtaW4td2lkdGg6NzY4cHgpe1xuICAgIC51ay1nbG9iYWwtaGVhZGVyX19sZWZ0LW5hdntkaXNwbGF5OmJsb2NrfVxufVxuXG4udWstZ2xvYmFsLWhlYWRlcl9fcmlnaHQtbmF2e2Zsb2F0OmxlZnQ7d2lkdGg6MjUlO3Bvc2l0aW9uOnJlbGF0aXZlO21pbi1oZWlnaHQ6MXB4O3BhZGRpbmctbGVmdDoxNXB4O3BhZGRpbmctcmlnaHQ6MH1cblxuQG1lZGlhIChtaW4td2lkdGg6NzY4cHgpe1xuICAgIC51ay1nbG9iYWwtaGVhZGVyX19yaWdodC1uYXZ7ZmxvYXQ6bGVmdDt3aWR0aDoyNSV9XG59XG5AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7XG4gICAgLnVrLWdsb2JhbC1oZWFkZXJfX3JpZ2h0LW5hdntmbG9hdDpsZWZ0O3dpZHRoOjE2LjY2NjY2NjY3JX1cbn1cblxuLnVrLWdsb2JhbC1oZWFkZXJfX25hdi1saXN0e21hcmdpbjowO3BhZGRpbmc6MDtmbG9hdDpyaWdodH1cbi51ay1nbG9iYWwtaGVhZGVyX19uYXYtaXRlbXtmbG9hdDpsZWZ0O2xpc3Qtc3R5bGU6bm9uZTtwYWRkaW5nOjAgNXB4O3RyYW5zaXRpb246LjJzfVxuLnVrLWdsb2JhbC1oZWFkZXJfX25hdi1pdGVtOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzI3MjcyN31cbi51ay1nbG9iYWwtaGVhZGVyX19teVVLe2Rpc3BsYXk6bm9uZX1cbi51ay1nbG9iYWwtaGVhZGVyX19teVVLIGF7ZGlzcGxheTpibG9jaztiYWNrZ3JvdW5kOnVybCguLi9pbWFnZXMvdWstZ2xvYmFsLWhlYWRlci9teS1VSy5wbmcpIGNlbnRlciBuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOmNvbnRhaW47d2lkdGg6NjBweDtoZWlnaHQ6NjBweDtvdmVyZmxvdzpoaWRkZW47dGV4dC1pbmRlbnQ6LTk5OTlweH1cblxuQG1lZGlhIChtaW4td2lkdGg6NzY4cHgpe1xuICAgIC51ay1nbG9iYWwtaGVhZGVyX19teVVLe2Rpc3BsYXk6YmxvY2t9XG59XG5cbi51ay1nbG9iYWwtaGVhZGVyX19zZWFyY2gtYnV0dG9ue2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7bGVmdDoxNXB4fVxuLnVrLWdsb2JhbC1oZWFkZXJfX3NlYXJjaC1idXR0b24gYnV0dG9ue2JhY2tncm91bmQtY29sb3I6IzAwMzNBMDtib3JkZXI6bm9uZTtoZWlnaHQ6NjBweDt0cmFuc2l0aW9uOi4ycztwYWRkaW5nOjAgMTBweH1cbi51ay1nbG9iYWwtaGVhZGVyX19zZWFyY2gtYnV0dG9uIGJ1dHRvbiBzdmd7aGVpZ2h0OjMwcHg7d2lkdGg6MzBweDtmaWxsOiNmZmZmZmZ9XG4udWstZ2xvYmFsLWhlYWRlcl9fc2VhcmNoLWJ1dHRvbjpob3ZlciBidXR0b257YmFja2dyb3VuZC1jb2xvcjojMjcyNzI3fVxuLnVrLXJvd3ttYXJnaW4tbGVmdDotMTVweDttYXJnaW4tcmlnaHQ6LTE1cHh9XG4udWstbGF5b3V0LWFzaWRle3Bvc2l0aW9uOnJlbGF0aXZlO21pbi1oZWlnaHQ6MXB4O3BhZGRpbmctbGVmdDoxNXB4O3BhZGRpbmctcmlnaHQ6MTVweH1cblxuQG1lZGlhIChtaW4td2lkdGg6OTkycHgpe1xuICAgIC51ay1sYXlvdXQtYXNpZGV7ZmxvYXQ6bGVmdDt3aWR0aDoxNi42NjY2NjY2NyV9XG59XG4udWstbGF5b3V0LWFzaWRlKy51ay1sYXlvdXQtbWFpbntwb3NpdGlvbjpyZWxhdGl2ZTttaW4taGVpZ2h0OjFweDtwYWRkaW5nLWxlZnQ6MTVweDtwYWRkaW5nLXJpZ2h0OjE1cHh9XG5cbkBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXtcbiAgICAudWstbGF5b3V0LWFzaWRlKy51ay1sYXlvdXQtbWFpbnsgZmxvYXQ6bGVmdDt3aWR0aDo4My4zMzMzMzMzMyV9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOjQ1MHB4KXtcbiAgICAudWstbG9ja3VwLC51ay1sb2NrdXAtLXdoaXRle3dpZHRoOjEwMCUgIWltcG9ydGFudDt9XG5cbiAgICB1bC51ay1mb290ZXItdGV4dF9fbGlzdHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6MDtcbiAgICB9XG5cbiAgICB1bC51ay1mb290ZXItdGV4dF9fbGlzdCBsaXtcbiAgICAgICAgcGFkZGluZzowO1xuICAgICAgICBtYXJnaW46MDtcbiAgICAgICAgYm9yZGVyOjA7XG4gICAgICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgfVxuICAgIHVsLnVrLWZvb3Rlci10ZXh0X19saXN0IGxpOmxhc3QtY2hpbGR7XG4gICAgICAgIHBhZGRpbmc6MDtcbiAgICAgICAgbWFyZ2luOjA7XG4gICAgfVxuXG59XG4iLCIvKkBmb250LWZhY2V7Zm9udC1mYW1pbHk6J09wZW4gU2Fucyc7c3JjOnVybChcIi4uL2ZvbnRzL09wZW5TYW5zLUxpZ2h0LndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLHVybChcIi4uL2ZvbnRzL09wZW5TYW5zLUxpZ2h0LndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtmb250LXdlaWdodDozMDA7Zm9udC1zdHlsZTpub3JtYWx9Ki9cbi8qQGZvbnQtZmFjZXtmb250LWZhbWlseTonT3BlbiBTYW5zJztzcmM6dXJsKFwiLi4vZm9udHMvT3BlblNhbnMtUmVndWxhci53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSx1cmwoXCIuLi9mb250cy9PcGVuU2Fucy1SZWd1bGFyLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHlsZTpub3JtYWx9Ki9cbi8qQGZvbnQtZmFjZXtmb250LWZhbWlseTonT3BlbiBTYW5zJztzcmM6dXJsKFwiLi4vZm9udHMvT3BlblNhbnMtSXRhbGljLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLHVybChcIi4uL2ZvbnRzL09wZW5TYW5zLUl0YWxpYy53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3R5bGU6aXRhbGljfSovXG4vKkBmb250LWZhY2V7Zm9udC1mYW1pbHk6J09wZW4gU2Fucyc7c3JjOnVybChcIi4uL2ZvbnRzL09wZW5TYW5zLUJvbGQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksdXJsKFwiLi4vZm9udHMvT3BlblNhbnMtQm9sZC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7Zm9udC13ZWlnaHQ6Ym9sZDtmb250LXN0eWxlOm5vcm1hbH0qL1xuLypAZm9udC1mYWNle2ZvbnQtZmFtaWx5OidJbmNvbnNvbGF0YSc7c3JjOnVybChcIi4uL2ZvbnRzL2luY29uc29sYXRhLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLHVybChcIi4uL2ZvbnRzL2luY29uc29sYXRhLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHlsZTpub3JtYWx9Ki9cblxuaHRtbHtib3gtc2l6aW5nOmJvcmRlci1ib3h9KiwqOmJlZm9yZSwqOmFmdGVye2JveC1zaXppbmc6aW5oZXJpdH1ib2R5e2ZvbnQtZmFtaWx5OlwiT3BlbiBTYW5zXCIsXCJIZWx2ZXRpY2EgTmV1ZVwiLEFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzRhNGE0YTttYXJnaW46MH1cbi5wcC1jb250YWluZXJ7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoyMDA7bWluLWhlaWdodDoxMDAlO3dpZHRoOjEwMCU7cmlnaHQ6MDt0cmFuc2l0aW9uOmFsbCAyMDBtcyBlYXNlO2JhY2tncm91bmQtY29sb3I6I2ZmZn0ucHAtY29udGFpbmVyLm9wZW57cmlnaHQ6MzUwcHh9XG4ucHAtY29udGFpbmVyLm9wZW4gLnBwLW1lbnUtdG9nZ2xlX19oYW1idXJnZXJ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH1cbi5wcC1jb250YWluZXIub3BlbiAucHAtbWVudS10b2dnbGVfX2hhbWJ1cmdlcjpiZWZvcmUsLnBwLWNvbnRhaW5lci5vcGVuIC5wcC1tZW51LXRvZ2dsZV9faGFtYnVyZ2VyOmFmdGVye3RvcDowfVxuLnBwLWNvbnRhaW5lci5vcGVuIC5wcC1tZW51LXRvZ2dsZV9faGFtYnVyZ2VyOmJlZm9yZXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKC00NWRlZyl9XG4ucHAtY29udGFpbmVyLm9wZW4gLnBwLW1lbnUtdG9nZ2xlX19oYW1idXJnZXI6YWZ0ZXJ7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX1cbi5wcC1jb250YWluZXIub3BlbiAucHAtb3Blbi1vdmVybGF5e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7bGVmdDowO2JvdHRvbTowO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjQpO2N1cnNvcjpwb2ludGVyfVxuLnBwLWNvbnRlbnR7bWF4LXdpZHRoOjc1MHB4O21hcmdpbjowIDIwcHh9QG1lZGlhIChtaW4td2lkdGg6IDc5MHB4KXsucHAtY29udGVudHttYXJnaW46MCBhdXRvfX1cbi5saWJyYXJ5X19jb2xvci1zd2F0Y2h7ZmxvYXQ6bGVmdDttYXJnaW4tcmlnaHQ6MiU7bWFyZ2luLWJvdHRvbToxNXB4O3dpZHRoOjQ4JTtib3JkZXI6MXB4IHNvbGlkICNkYWRhZGE7cGFkZGluZzo1cHg7Ym9yZGVyLXJhZGl1czozcHh9XG4ubGlicmFyeV9fY29sb3Itc3dhdGNoOm50aC1jaGlsZChldmVuKXttYXJnaW4tcmlnaHQ6MH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc5MHB4KXtcbiAgICAubGlicmFyeV9fY29sb3Itc3dhdGNoe3dpZHRoOjIwJX1cbiAgICAubGlicmFyeV9fY29sb3Itc3dhdGNoOm50aC1jaGlsZChldmVuKXttYXJnaW4tcmlnaHQ6MiV9XG4gICAgLmxpYnJhcnlfX2NvbG9yLXN3YXRjaDpudGgtY2hpbGQoNG4rNCl7bWFyZ2luLXJpZ2h0OjB9XG59XG4ubGlicmFyeV9fY29sb3Itc3dhdGNoX19wcmV2aWV3e2Rpc3BsYXk6YmxvY2s7bWFyZ2luLWJvdHRvbToxMHB4O2hlaWdodDo3NXB4fVxuLmxpYnJhcnlfX2NvbG9yLXN3YXRjaF9fZGV0YWlsc3twYWRkaW5nOjA7bGlzdC1zdHlsZTpub25lfVxuLnBwLWhlYWRlcntwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW4tYm90dG9tOjYwcHg7cGFkZGluZy1sZWZ0OjIwcHg7cGFkZGluZy1yaWdodDoyMHB4O2hlaWdodDo3MHB4O2JhY2tncm91bmQtY29sb3I6IzAwMzNhMDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGFkYWRhfVxuLnBwLWhlYWRlcl9fbG9nb3ttYXgtaGVpZ2h0OjUwcHg7bWFyZ2luLXRvcDoxMHB4fVxuLnBwLW1lbnUtdG9nZ2xle3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjA7Ym90dG9tOjA7d2lkdGg6MTAwcHg7aGVpZ2h0OjEwMCU7Y3Vyc29yOnBvaW50ZXJ9XG4ucHAtbWVudS10b2dnbGVfX2hhbWJ1cmdlcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3JpZ2h0OjE1cHg7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTt3aWR0aDoyNXB4O2hlaWdodDo1cHg7ZmxvYXQ6cmlnaHQ7dGV4dC1pbmRlbnQ6LTk5OWVtO2JhY2tncm91bmQtY29sb3I6d2hpdGU7dHJhbnNpdGlvbjphbGwgMjAwbXMgZWFzZX1cbi5wcC1tZW51LXRvZ2dsZV9faGFtYnVyZ2VyOmJlZm9yZSwucHAtbWVudS10b2dnbGVfX2hhbWJ1cmdlcjphZnRlcntjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7ZGlzcGxheTpibG9jazt3aWR0aDoyNXB4O2hlaWdodDo1cHg7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtib3JkZXItcmFkaXVzOjNweDt0cmFuc2l0aW9uOmFsbCAyMDBtcyBlYXNlfVxuLnBwLW1lbnUtdG9nZ2xlX19oYW1idXJnZXI6YmVmb3Jle3RvcDotOXB4fVxuLnBwLW1lbnUtdG9nZ2xlX19oYW1idXJnZXI6YWZ0ZXJ7dG9wOjlweH1cbi5tYXJrZG93bl9fYm9keTpub3QoLmxpYnJhcnlfX2V4YW1wbGUpPmgxOm5vdCgubGlicmFyeV9fZXhhbXBsZSl7Zm9udC1zaXplOjMycHg7Zm9udC13ZWlnaHQ6Ym9sZDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGFkYWRhO3BhZGRpbmctYm90dG9tOjEwcHh9XG4ubWFya2Rvd25fX2JvZHk6bm90KC5saWJyYXJ5X19leGFtcGxlKT5oMjpub3QoLmxpYnJhcnlfX2V4YW1wbGUpe21hcmdpbi1ib3R0b206MjBweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGFkYWRhO3BhZGRpbmctYm90dG9tOjEwcHg7Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6Ym9sZH1cbi5tYXJrZG93bl9fYm9keTpub3QoLmxpYnJhcnlfX2V4YW1wbGUpPmgzOm5vdCgubGlicmFyeV9fZXhhbXBsZSl7bWFyZ2luLXRvcDoxMHB4O21hcmdpbi1ib3R0b206MjBweDtmb250LXNpemU6MjBweDtmb250LXdlaWdodDpib2xkfVxuLm1hcmtkb3duX19ib2R5Om5vdCgubGlicmFyeV9fZXhhbXBsZSk+cDpub3QoLmxpYnJhcnlfX2V4YW1wbGUpe21hcmdpbi1ib3R0b206MWVtO2ZvbnQtc2l6ZToxOHB4fVxuLm1hcmtkb3duX19ib2R5Om5vdCgubGlicmFyeV9fZXhhbXBsZSk+cDpub3QoLmxpYnJhcnlfX2V4YW1wbGUpIGF7Y29sb3I6IzAwMzNhMDt0ZXh0LWRlY29yYXRpb246bm9uZX1cbi5tYXJrZG93bl9fYm9keTpub3QoLmxpYnJhcnlfX2V4YW1wbGUpPnA6bm90KC5saWJyYXJ5X19leGFtcGxlKSBhOmhvdmVye3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9XG4ubWFya2Rvd25fX2JvZHk6bm90KC5saWJyYXJ5X19leGFtcGxlKT5wOm5vdCgubGlicmFyeV9fZXhhbXBsZSkgZW17Zm9udC1zdHlsZTppdGFsaWN9XG4ubWFya2Rvd25fX2JvZHk6bm90KC5saWJyYXJ5X19leGFtcGxlKT5jb2RlOm5vdCgubGlicmFyeV9fZXhhbXBsZSl7cGFkZGluZzozcHg7YmFja2dyb3VuZC1jb2xvcjojZjJmMmYyO2JvcmRlcjoxcHggc29saWQgI2RhZGFkYTtib3JkZXItcmFkaXVzOjNweDtmb250LWZhbWlseTpcIkluY29uc29sYXRhXCIsQ291cmllcixtb25vc3BhY2U7Zm9udC1zaXplOjE2cHh9XG4ubWFya2Rvd25fX2JvZHk6bm90KC5saWJyYXJ5X19leGFtcGxlKT5jb2RlOm5vdCgubGlicmFyeV9fZXhhbXBsZSkgLmhsanN7cGFkZGluZzoxNXB4O2xpbmUtaGVpZ2h0OjEuNWVtfVxuLnBwLW5hdntwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDt0b3A6MDtyaWdodDowO292ZXJmbG93LXk6c2Nyb2xsO3dpZHRoOjM1MHB4O2hlaWdodDoxMDAlO2JhY2tncm91bmQtY29sb3I6IzRhNGE0YTtwYWRkaW5nOjE1cHggMDtjb2xvcjojZmZmO2JveC1zaGFkb3c6NXB4IDAgMTBweCAtMnB4IHJnYmEoMCwwLDAsMC4yKSBpbnNldH1cbi5wcC1uYXYgYXt3aWR0aDoxMDAlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmc6MTVweDt0ZXh0LWRlY29yYXRpb246bm9uZX1cbi5wcC1uYXYgdWx7bWFyZ2luOjAgMCA1MHB4O3BhZGRpbmctbGVmdDowO2xpc3Qtc3R5bGU6bm9uZX1cbi5wcC1uYXYgbGl7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzcxNzE3MX1cbi5wcC1uYXYgbGkgYXtjb2xvcjojZmZmO2ZvbnQtc2l6ZToxNnB4O2ZvbnQtd2VpZ2h0OjMwMH1cbi5wcC1uYXYgbGkgYTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMzMTMxMzF9XG4ucHAtbmF2X19oZWFkaW5nIGF7Y29sb3I6I0I4QjhCODtmb250LXNpemU6MTRweDtmb250LXdlaWdodDpib2xkO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX1cbi51ay1zZ25hdntiYWNrZ3JvdW5kOndoaXRlfVxuLnVrLXNnbmF2IHVse3BhZGRpbmc6MH1cbi51ay1zZ25hdiB1bCBsaXtsaXN0LXN0eWxlOm5vbmV9XG4udWstc2duYXYgdWwgbGkgYXtkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjE7cGFkZGluZzoxMHB4O2NvbG9yOiMyMTIxMjF9XG4udWstc2duYXY+dWw+bGl7cGFkZGluZzowO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICMyMTIxMjF9XG4udWstc2duYXYgdWwgbGkgbGl7cGFkZGluZy1sZWZ0OjEwcHh9XG4udWstc2duYXYgdWwgbGk6bGFzdC1jaGlsZHtib3JkZXItYm90dG9tOm5vbmV9XG4ubWFya2Rvd25fX2JvZHk6bm90KC5saWJyYXJ5X19leGFtcGxlKSB0YWJsZXtib3JkZXItc3BhY2luZzowO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZX1cbi5tYXJrZG93bl9fYm9keTpub3QoLmxpYnJhcnlfX2V4YW1wbGUpIHRhYmxlIHRoe2JvcmRlci1ib3R0b206MnB4IHNvbGlkICNkYWRhZGE7cGFkZGluZzo4cHh9XG4ubWFya2Rvd25fX2JvZHk6bm90KC5saWJyYXJ5X19leGFtcGxlKSB0YWJsZSB0ZHtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGFkYWRhO3BhZGRpbmc6OHB4fVxuLm1hcmtkb3duX19ib2R5e2ZvbnQtc2l6ZToycmVtO2xpbmUtaGVpZ2h0OjEuN31cbi5zdGFuZGFyZHMtc2VjdGlvbnttYXJnaW4tYm90dG9tOjUwcHh9XG4ucHAtY29udGVudHttYXgtd2lkdGg6aW5oZXJpdH1cbi5wcC1jb250ZW50IGgxe2ZvbnQtZmFtaWx5OidMb3JhJywgc2VyaWY7dGV4dC1hbGlnbjpjZW50ZXJ9XG4ucHAtY29udGVudCBoMntmb250LXNpemU6MzVweDttYXJnaW46MjVweCAwO2ZvbnQtd2VpZ2h0OjcwMDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9XG4ucHAtY29udGVudCBoMiwucHAtY29udGVudCBoMywucHAtY29udGVudCBoNHtmb250LWZhbWlseTonTXVsaScsIHNhbnN9XG4ucHAtY29udGVudCBoNHttYXJnaW46NTBweCAwIDIwcHg7Zm9udC1zaXplOjMwcHh9XG4ucHAtY29udGVudCAuZm9udC1leGFtcGxle2ZvbnQtc2l6ZTozMHB4O2NvbG9yOmJsYWNrfVxuLnBwLWNvbnRlbnQgLmZvbnQtZXhhbXBsZS0tbXVsaXtmb250LWZhbWlseTonTXVsaSd9XG4ucHAtY29udGVudCAuZm9udC1leGFtcGxlLS1sb3Jhe2ZvbnQtZmFtaWx5OidMb3JhJ31cbi5obGpze2JhY2tncm91bmQ6bm9uZSAhaW1wb3J0YW50O2ZvbnQtc2l6ZToxMnB4fVxuLnByZXZpZXd7cGFkZGluZzoxNXB4IDMwcHg7Ym9yZGVyOjFweCBzb2xpZCAjZjFmMWYxfS5wcmV2aWV3LS1mdWxse3BhZGRpbmc6MDtib3JkZXI6MXB4IHNvbGlkICNmMWYxZjF9XG4iLCIvKiFcbiAqICBGb250IEF3ZXNvbWUgNC43LjAgYnkgQGRhdmVnYW5keSAtIGh0dHA6Ly9mb250YXdlc29tZS5pbyAtIEBmb250YXdlc29tZVxuICogIExpY2Vuc2UgLSBodHRwOi8vZm9udGF3ZXNvbWUuaW8vbGljZW5zZSAoRm9udDogU0lMIE9GTCAxLjEsIENTUzogTUlUIExpY2Vuc2UpXG4gKi9AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidGb250QXdlc29tZSc7c3JjOnVybCgnLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC5lb3Q/dj00LjcuMCcpO3NyYzp1cmwoJy4uL2ZvbnRzL2ZvbnRhd2Vzb21lLXdlYmZvbnQuZW90PyNpZWZpeCZ2PTQuNy4wJykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLHVybCgnLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC53b2ZmMj92PTQuNy4wJykgZm9ybWF0KCd3b2ZmMicpLHVybCgnLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC53b2ZmP3Y9NC43LjAnKSBmb3JtYXQoJ3dvZmYnKSx1cmwoJy4uL2ZvbnRzL2ZvbnRhd2Vzb21lLXdlYmZvbnQudHRmP3Y9NC43LjAnKSBmb3JtYXQoJ3RydWV0eXBlJyksdXJsKCcuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LnN2Zz92PTQuNy4wI2ZvbnRhd2Vzb21lcmVndWxhcicpIGZvcm1hdCgnc3ZnJyk7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3R5bGU6bm9ybWFsfS5mYXtkaXNwbGF5OmlubGluZS1ibG9jaztmb250Om5vcm1hbCBub3JtYWwgbm9ybWFsIDE0cHgvMSBGb250QXdlc29tZTtmb250LXNpemU6aW5oZXJpdDt0ZXh0LXJlbmRlcmluZzphdXRvOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6Z3JheXNjYWxlfS5mYS1sZ3tmb250LXNpemU6MS4zMzMzMzMzM2VtO2xpbmUtaGVpZ2h0Oi43NWVtO3ZlcnRpY2FsLWFsaWduOi0xNSV9LmZhLTJ4e2ZvbnQtc2l6ZToyZW19LmZhLTN4e2ZvbnQtc2l6ZTozZW19LmZhLTR4e2ZvbnQtc2l6ZTo0ZW19LmZhLTV4e2ZvbnQtc2l6ZTo1ZW19LmZhLWZ3e3dpZHRoOjEuMjg1NzE0MjllbTt0ZXh0LWFsaWduOmNlbnRlcn0uZmEtdWx7cGFkZGluZy1sZWZ0OjA7bWFyZ2luLWxlZnQ6Mi4xNDI4NTcxNGVtO2xpc3Qtc3R5bGUtdHlwZTpub25lfS5mYS11bD5saXtwb3NpdGlvbjpyZWxhdGl2ZX0uZmEtbGl7cG9zaXRpb246YWJzb2x1dGU7bGVmdDotMi4xNDI4NTcxNGVtO3dpZHRoOjIuMTQyODU3MTRlbTt0b3A6LjE0Mjg1NzE0ZW07dGV4dC1hbGlnbjpjZW50ZXJ9LmZhLWxpLmZhLWxne2xlZnQ6LTEuODU3MTQyODZlbX0uZmEtYm9yZGVye3BhZGRpbmc6LjJlbSAuMjVlbSAuMTVlbTtib3JkZXI6c29saWQgLjA4ZW0gI2VlZTtib3JkZXItcmFkaXVzOi4xZW19LmZhLXB1bGwtbGVmdHtmbG9hdDpsZWZ0fS5mYS1wdWxsLXJpZ2h0e2Zsb2F0OnJpZ2h0fS5mYS5mYS1wdWxsLWxlZnR7bWFyZ2luLXJpZ2h0Oi4zZW19LmZhLmZhLXB1bGwtcmlnaHR7bWFyZ2luLWxlZnQ6LjNlbX0ucHVsbC1yaWdodHtmbG9hdDpyaWdodH0ucHVsbC1sZWZ0e2Zsb2F0OmxlZnR9LmZhLnB1bGwtbGVmdHttYXJnaW4tcmlnaHQ6LjNlbX0uZmEucHVsbC1yaWdodHttYXJnaW4tbGVmdDouM2VtfS5mYS1zcGluey13ZWJraXQtYW5pbWF0aW9uOmZhLXNwaW4gMnMgaW5maW5pdGUgbGluZWFyO2FuaW1hdGlvbjpmYS1zcGluIDJzIGluZmluaXRlIGxpbmVhcn0uZmEtcHVsc2V7LXdlYmtpdC1hbmltYXRpb246ZmEtc3BpbiAxcyBpbmZpbml0ZSBzdGVwcyg4KTthbmltYXRpb246ZmEtc3BpbiAxcyBpbmZpbml0ZSBzdGVwcyg4KX1ALXdlYmtpdC1rZXlmcmFtZXMgZmEtc3BpbnswJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX0xMDAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgzNTlkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMzU5ZGVnKX19QGtleWZyYW1lcyBmYS1zcGluezAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfTEwMCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDM1OWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgzNTlkZWcpfX0uZmEtcm90YXRlLTkwey1tcy1maWx0ZXI6XCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0xKVwiOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7LW1zLXRyYW5zZm9ybTpyb3RhdGUoOTBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfS5mYS1yb3RhdGUtMTgwey1tcy1maWx0ZXI6XCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0yKVwiOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpOy1tcy10cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS5mYS1yb3RhdGUtMjcwey1tcy1maWx0ZXI6XCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0zKVwiOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgyNzBkZWcpOy1tcy10cmFuc2Zvcm06cm90YXRlKDI3MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgyNzBkZWcpfS5mYS1mbGlwLWhvcml6b250YWx7LW1zLWZpbHRlcjpcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTAsIG1pcnJvcj0xKVwiOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC0xLCAxKTstbXMtdHJhbnNmb3JtOnNjYWxlKC0xLCAxKTt0cmFuc2Zvcm06c2NhbGUoLTEsIDEpfS5mYS1mbGlwLXZlcnRpY2Fsey1tcy1maWx0ZXI6XCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0yLCBtaXJyb3I9MSlcIjstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLCAtMSk7LW1zLXRyYW5zZm9ybTpzY2FsZSgxLCAtMSk7dHJhbnNmb3JtOnNjYWxlKDEsIC0xKX06cm9vdCAuZmEtcm90YXRlLTkwLDpyb290IC5mYS1yb3RhdGUtMTgwLDpyb290IC5mYS1yb3RhdGUtMjcwLDpyb290IC5mYS1mbGlwLWhvcml6b250YWwsOnJvb3QgLmZhLWZsaXAtdmVydGljYWx7ZmlsdGVyOm5vbmV9LmZhLXN0YWNre3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjJlbTtoZWlnaHQ6MmVtO2xpbmUtaGVpZ2h0OjJlbTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmZhLXN0YWNrLTF4LC5mYS1zdGFjay0yeHtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7d2lkdGg6MTAwJTt0ZXh0LWFsaWduOmNlbnRlcn0uZmEtc3RhY2stMXh7bGluZS1oZWlnaHQ6aW5oZXJpdH0uZmEtc3RhY2stMnh7Zm9udC1zaXplOjJlbX0uZmEtaW52ZXJzZXtjb2xvcjojZmZmfS5mYS1nbGFzczpiZWZvcmV7Y29udGVudDpcIlxcZjAwMFwifS5mYS1tdXNpYzpiZWZvcmV7Y29udGVudDpcIlxcZjAwMVwifS5mYS1zZWFyY2g6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwMDJcIn0uZmEtZW52ZWxvcGUtbzpiZWZvcmV7Y29udGVudDpcIlxcZjAwM1wifS5mYS1oZWFydDpiZWZvcmV7Y29udGVudDpcIlxcZjAwNFwifS5mYS1zdGFyOmJlZm9yZXtjb250ZW50OlwiXFxmMDA1XCJ9LmZhLXN0YXItbzpiZWZvcmV7Y29udGVudDpcIlxcZjAwNlwifS5mYS11c2VyOmJlZm9yZXtjb250ZW50OlwiXFxmMDA3XCJ9LmZhLWZpbG06YmVmb3Jle2NvbnRlbnQ6XCJcXGYwMDhcIn0uZmEtdGgtbGFyZ2U6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwMDlcIn0uZmEtdGg6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwMGFcIn0uZmEtdGgtbGlzdDpiZWZvcmV7Y29udGVudDpcIlxcZjAwYlwifS5mYS1jaGVjazpiZWZvcmV7Y29udGVudDpcIlxcZjAwY1wifS5mYS1yZW1vdmU6YmVmb3JlLC5mYS1jbG9zZTpiZWZvcmUsLmZhLXRpbWVzOmJlZm9yZXtjb250ZW50OlwiXFxmMDBkXCJ9LmZhLXNlYXJjaC1wbHVzOmJlZm9yZXtjb250ZW50OlwiXFxmMDBlXCJ9LmZhLXNlYXJjaC1taW51czpiZWZvcmV7Y29udGVudDpcIlxcZjAxMFwifS5mYS1wb3dlci1vZmY6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwMTFcIn0uZmEtc2lnbmFsOmJlZm9yZXtjb250ZW50OlwiXFxmMDEyXCJ9LmZhLWdlYXI6YmVmb3JlLC5mYS1jb2c6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwMTNcIn0uZmEtdHJhc2gtbzpiZWZvcmV7Y29udGVudDpcIlxcZjAxNFwifS5mYS1ob21lOmJlZm9yZXtjb250ZW50OlwiXFxmMDE1XCJ9LmZhLWZpbGUtbzpiZWZvcmV7Y29udGVudDpcIlxcZjAxNlwifS5mYS1jbG9jay1vOmJlZm9yZXtjb250ZW50OlwiXFxmMDE3XCJ9LmZhLXJvYWQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwMThcIn0uZmEtZG93bmxvYWQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwMTlcIn0uZmEtYXJyb3ctY2lyY2xlLW8tZG93bjpiZWZvcmV7Y29udGVudDpcIlxcZjAxYVwifS5mYS1hcnJvdy1jaXJjbGUtby11cDpiZWZvcmV7Y29udGVudDpcIlxcZjAxYlwifS5mYS1pbmJveDpiZWZvcmV7Y29udGVudDpcIlxcZjAxY1wifS5mYS1wbGF5LWNpcmNsZS1vOmJlZm9yZXtjb250ZW50OlwiXFxmMDFkXCJ9LmZhLXJvdGF0ZS1yaWdodDpiZWZvcmUsLmZhLXJlcGVhdDpiZWZvcmV7Y29udGVudDpcIlxcZjAxZVwifS5mYS1yZWZyZXNoOmJlZm9yZXtjb250ZW50OlwiXFxmMDIxXCJ9LmZhLWxpc3QtYWx0OmJlZm9yZXtjb250ZW50OlwiXFxmMDIyXCJ9LmZhLWxvY2s6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwMjNcIn0uZmEtZmxhZzpiZWZvcmV7Y29udGVudDpcIlxcZjAyNFwifS5mYS1oZWFkcGhvbmVzOmJlZm9yZXtjb250ZW50OlwiXFxmMDI1XCJ9LmZhLXZvbHVtZS1vZmY6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwMjZcIn0uZmEtdm9sdW1lLWRvd246YmVmb3Jle2NvbnRlbnQ6XCJcXGYwMjdcIn0uZmEtdm9sdW1lLXVwOmJlZm9yZXtjb250ZW50OlwiXFxmMDI4XCJ9LmZhLXFyY29kZTpiZWZvcmV7Y29udGVudDpcIlxcZjAyOVwifS5mYS1iYXJjb2RlOmJlZm9yZXtjb250ZW50OlwiXFxmMDJhXCJ9LmZhLXRhZzpiZWZvcmV7Y29udGVudDpcIlxcZjAyYlwifS5mYS10YWdzOmJlZm9yZXtjb250ZW50OlwiXFxmMDJjXCJ9LmZhLWJvb2s6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwMmRcIn0uZmEtYm9va21hcms6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwMmVcIn0uZmEtcHJpbnQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwMmZcIn0uZmEtY2FtZXJhOmJlZm9yZXtjb250ZW50OlwiXFxmMDMwXCJ9LmZhLWZvbnQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwMzFcIn0uZmEtYm9sZDpiZWZvcmV7Y29udGVudDpcIlxcZjAzMlwifS5mYS1pdGFsaWM6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwMzNcIn0uZmEtdGV4dC1oZWlnaHQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwMzRcIn0uZmEtdGV4dC13aWR0aDpiZWZvcmV7Y29udGVudDpcIlxcZjAzNVwifS5mYS1hbGlnbi1sZWZ0OmJlZm9yZXtjb250ZW50OlwiXFxmMDM2XCJ9LmZhLWFsaWduLWNlbnRlcjpiZWZvcmV7Y29udGVudDpcIlxcZjAzN1wifS5mYS1hbGlnbi1yaWdodDpiZWZvcmV7Y29udGVudDpcIlxcZjAzOFwifS5mYS1hbGlnbi1qdXN0aWZ5OmJlZm9yZXtjb250ZW50OlwiXFxmMDM5XCJ9LmZhLWxpc3Q6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwM2FcIn0uZmEtZGVkZW50OmJlZm9yZSwuZmEtb3V0ZGVudDpiZWZvcmV7Y29udGVudDpcIlxcZjAzYlwifS5mYS1pbmRlbnQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwM2NcIn0uZmEtdmlkZW8tY2FtZXJhOmJlZm9yZXtjb250ZW50OlwiXFxmMDNkXCJ9LmZhLXBob3RvOmJlZm9yZSwuZmEtaW1hZ2U6YmVmb3JlLC5mYS1waWN0dXJlLW86YmVmb3Jle2NvbnRlbnQ6XCJcXGYwM2VcIn0uZmEtcGVuY2lsOmJlZm9yZXtjb250ZW50OlwiXFxmMDQwXCJ9LmZhLW1hcC1tYXJrZXI6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwNDFcIn0uZmEtYWRqdXN0OmJlZm9yZXtjb250ZW50OlwiXFxmMDQyXCJ9LmZhLXRpbnQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwNDNcIn0uZmEtZWRpdDpiZWZvcmUsLmZhLXBlbmNpbC1zcXVhcmUtbzpiZWZvcmV7Y29udGVudDpcIlxcZjA0NFwifS5mYS1zaGFyZS1zcXVhcmUtbzpiZWZvcmV7Y29udGVudDpcIlxcZjA0NVwifS5mYS1jaGVjay1zcXVhcmUtbzpiZWZvcmV7Y29udGVudDpcIlxcZjA0NlwifS5mYS1hcnJvd3M6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwNDdcIn0uZmEtc3RlcC1iYWNrd2FyZDpiZWZvcmV7Y29udGVudDpcIlxcZjA0OFwifS5mYS1mYXN0LWJhY2t3YXJkOmJlZm9yZXtjb250ZW50OlwiXFxmMDQ5XCJ9LmZhLWJhY2t3YXJkOmJlZm9yZXtjb250ZW50OlwiXFxmMDRhXCJ9LmZhLXBsYXk6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwNGJcIn0uZmEtcGF1c2U6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwNGNcIn0uZmEtc3RvcDpiZWZvcmV7Y29udGVudDpcIlxcZjA0ZFwifS5mYS1mb3J3YXJkOmJlZm9yZXtjb250ZW50OlwiXFxmMDRlXCJ9LmZhLWZhc3QtZm9yd2FyZDpiZWZvcmV7Y29udGVudDpcIlxcZjA1MFwifS5mYS1zdGVwLWZvcndhcmQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwNTFcIn0uZmEtZWplY3Q6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwNTJcIn0uZmEtY2hldnJvbi1sZWZ0OmJlZm9yZXtjb250ZW50OlwiXFxmMDUzXCJ9LmZhLWNoZXZyb24tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwNTRcIn0uZmEtcGx1cy1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwNTVcIn0uZmEtbWludXMtY2lyY2xlOmJlZm9yZXtjb250ZW50OlwiXFxmMDU2XCJ9LmZhLXRpbWVzLWNpcmNsZTpiZWZvcmV7Y29udGVudDpcIlxcZjA1N1wifS5mYS1jaGVjay1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwNThcIn0uZmEtcXVlc3Rpb24tY2lyY2xlOmJlZm9yZXtjb250ZW50OlwiXFxmMDU5XCJ9LmZhLWluZm8tY2lyY2xlOmJlZm9yZXtjb250ZW50OlwiXFxmMDVhXCJ9LmZhLWNyb3NzaGFpcnM6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwNWJcIn0uZmEtdGltZXMtY2lyY2xlLW86YmVmb3Jle2NvbnRlbnQ6XCJcXGYwNWNcIn0uZmEtY2hlY2stY2lyY2xlLW86YmVmb3Jle2NvbnRlbnQ6XCJcXGYwNWRcIn0uZmEtYmFuOmJlZm9yZXtjb250ZW50OlwiXFxmMDVlXCJ9LmZhLWFycm93LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwNjBcIn0uZmEtYXJyb3ctcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwNjFcIn0uZmEtYXJyb3ctdXA6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwNjJcIn0uZmEtYXJyb3ctZG93bjpiZWZvcmV7Y29udGVudDpcIlxcZjA2M1wifS5mYS1tYWlsLWZvcndhcmQ6YmVmb3JlLC5mYS1zaGFyZTpiZWZvcmV7Y29udGVudDpcIlxcZjA2NFwifS5mYS1leHBhbmQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwNjVcIn0uZmEtY29tcHJlc3M6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwNjZcIn0uZmEtcGx1czpiZWZvcmV7Y29udGVudDpcIlxcZjA2N1wifS5mYS1taW51czpiZWZvcmV7Y29udGVudDpcIlxcZjA2OFwifS5mYS1hc3RlcmlzazpiZWZvcmV7Y29udGVudDpcIlxcZjA2OVwifS5mYS1leGNsYW1hdGlvbi1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwNmFcIn0uZmEtZ2lmdDpiZWZvcmV7Y29udGVudDpcIlxcZjA2YlwifS5mYS1sZWFmOmJlZm9yZXtjb250ZW50OlwiXFxmMDZjXCJ9LmZhLWZpcmU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwNmRcIn0uZmEtZXllOmJlZm9yZXtjb250ZW50OlwiXFxmMDZlXCJ9LmZhLWV5ZS1zbGFzaDpiZWZvcmV7Y29udGVudDpcIlxcZjA3MFwifS5mYS13YXJuaW5nOmJlZm9yZSwuZmEtZXhjbGFtYXRpb24tdHJpYW5nbGU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwNzFcIn0uZmEtcGxhbmU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwNzJcIn0uZmEtY2FsZW5kYXI6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwNzNcIn0uZmEtcmFuZG9tOmJlZm9yZXtjb250ZW50OlwiXFxmMDc0XCJ9LmZhLWNvbW1lbnQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwNzVcIn0uZmEtbWFnbmV0OmJlZm9yZXtjb250ZW50OlwiXFxmMDc2XCJ9LmZhLWNoZXZyb24tdXA6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwNzdcIn0uZmEtY2hldnJvbi1kb3duOmJlZm9yZXtjb250ZW50OlwiXFxmMDc4XCJ9LmZhLXJldHdlZXQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwNzlcIn0uZmEtc2hvcHBpbmctY2FydDpiZWZvcmV7Y29udGVudDpcIlxcZjA3YVwifS5mYS1mb2xkZXI6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwN2JcIn0uZmEtZm9sZGVyLW9wZW46YmVmb3Jle2NvbnRlbnQ6XCJcXGYwN2NcIn0uZmEtYXJyb3dzLXY6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwN2RcIn0uZmEtYXJyb3dzLWg6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwN2VcIn0uZmEtYmFyLWNoYXJ0LW86YmVmb3JlLC5mYS1iYXItY2hhcnQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwODBcIn0uZmEtdHdpdHRlci1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwODFcIn0uZmEtZmFjZWJvb2stc3F1YXJlOmJlZm9yZXtjb250ZW50OlwiXFxmMDgyXCJ9LmZhLWNhbWVyYS1yZXRybzpiZWZvcmV7Y29udGVudDpcIlxcZjA4M1wifS5mYS1rZXk6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwODRcIn0uZmEtZ2VhcnM6YmVmb3JlLC5mYS1jb2dzOmJlZm9yZXtjb250ZW50OlwiXFxmMDg1XCJ9LmZhLWNvbW1lbnRzOmJlZm9yZXtjb250ZW50OlwiXFxmMDg2XCJ9LmZhLXRodW1icy1vLXVwOmJlZm9yZXtjb250ZW50OlwiXFxmMDg3XCJ9LmZhLXRodW1icy1vLWRvd246YmVmb3Jle2NvbnRlbnQ6XCJcXGYwODhcIn0uZmEtc3Rhci1oYWxmOmJlZm9yZXtjb250ZW50OlwiXFxmMDg5XCJ9LmZhLWhlYXJ0LW86YmVmb3Jle2NvbnRlbnQ6XCJcXGYwOGFcIn0uZmEtc2lnbi1vdXQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwOGJcIn0uZmEtbGlua2VkaW4tc3F1YXJlOmJlZm9yZXtjb250ZW50OlwiXFxmMDhjXCJ9LmZhLXRodW1iLXRhY2s6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwOGRcIn0uZmEtZXh0ZXJuYWwtbGluazpiZWZvcmV7Y29udGVudDpcIlxcZjA4ZVwifS5mYS1zaWduLWluOmJlZm9yZXtjb250ZW50OlwiXFxmMDkwXCJ9LmZhLXRyb3BoeTpiZWZvcmV7Y29udGVudDpcIlxcZjA5MVwifS5mYS1naXRodWItc3F1YXJlOmJlZm9yZXtjb250ZW50OlwiXFxmMDkyXCJ9LmZhLXVwbG9hZDpiZWZvcmV7Y29udGVudDpcIlxcZjA5M1wifS5mYS1sZW1vbi1vOmJlZm9yZXtjb250ZW50OlwiXFxmMDk0XCJ9LmZhLXBob25lOmJlZm9yZXtjb250ZW50OlwiXFxmMDk1XCJ9LmZhLXNxdWFyZS1vOmJlZm9yZXtjb250ZW50OlwiXFxmMDk2XCJ9LmZhLWJvb2ttYXJrLW86YmVmb3Jle2NvbnRlbnQ6XCJcXGYwOTdcIn0uZmEtcGhvbmUtc3F1YXJlOmJlZm9yZXtjb250ZW50OlwiXFxmMDk4XCJ9LmZhLXR3aXR0ZXI6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwOTlcIn0uZmEtZmFjZWJvb2stZjpiZWZvcmUsLmZhLWZhY2Vib29rOmJlZm9yZXtjb250ZW50OlwiXFxmMDlhXCJ9LmZhLWdpdGh1YjpiZWZvcmV7Y29udGVudDpcIlxcZjA5YlwifS5mYS11bmxvY2s6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwOWNcIn0uZmEtY3JlZGl0LWNhcmQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwOWRcIn0uZmEtZmVlZDpiZWZvcmUsLmZhLXJzczpiZWZvcmV7Y29udGVudDpcIlxcZjA5ZVwifS5mYS1oZGQtbzpiZWZvcmV7Y29udGVudDpcIlxcZjBhMFwifS5mYS1idWxsaG9ybjpiZWZvcmV7Y29udGVudDpcIlxcZjBhMVwifS5mYS1iZWxsOmJlZm9yZXtjb250ZW50OlwiXFxmMGYzXCJ9LmZhLWNlcnRpZmljYXRlOmJlZm9yZXtjb250ZW50OlwiXFxmMGEzXCJ9LmZhLWhhbmQtby1yaWdodDpiZWZvcmV7Y29udGVudDpcIlxcZjBhNFwifS5mYS1oYW5kLW8tbGVmdDpiZWZvcmV7Y29udGVudDpcIlxcZjBhNVwifS5mYS1oYW5kLW8tdXA6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwYTZcIn0uZmEtaGFuZC1vLWRvd246YmVmb3Jle2NvbnRlbnQ6XCJcXGYwYTdcIn0uZmEtYXJyb3ctY2lyY2xlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwYThcIn0uZmEtYXJyb3ctY2lyY2xlLXJpZ2h0OmJlZm9yZXtjb250ZW50OlwiXFxmMGE5XCJ9LmZhLWFycm93LWNpcmNsZS11cDpiZWZvcmV7Y29udGVudDpcIlxcZjBhYVwifS5mYS1hcnJvdy1jaXJjbGUtZG93bjpiZWZvcmV7Y29udGVudDpcIlxcZjBhYlwifS5mYS1nbG9iZTpiZWZvcmV7Y29udGVudDpcIlxcZjBhY1wifS5mYS13cmVuY2g6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwYWRcIn0uZmEtdGFza3M6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwYWVcIn0uZmEtZmlsdGVyOmJlZm9yZXtjb250ZW50OlwiXFxmMGIwXCJ9LmZhLWJyaWVmY2FzZTpiZWZvcmV7Y29udGVudDpcIlxcZjBiMVwifS5mYS1hcnJvd3MtYWx0OmJlZm9yZXtjb250ZW50OlwiXFxmMGIyXCJ9LmZhLWdyb3VwOmJlZm9yZSwuZmEtdXNlcnM6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwYzBcIn0uZmEtY2hhaW46YmVmb3JlLC5mYS1saW5rOmJlZm9yZXtjb250ZW50OlwiXFxmMGMxXCJ9LmZhLWNsb3VkOmJlZm9yZXtjb250ZW50OlwiXFxmMGMyXCJ9LmZhLWZsYXNrOmJlZm9yZXtjb250ZW50OlwiXFxmMGMzXCJ9LmZhLWN1dDpiZWZvcmUsLmZhLXNjaXNzb3JzOmJlZm9yZXtjb250ZW50OlwiXFxmMGM0XCJ9LmZhLWNvcHk6YmVmb3JlLC5mYS1maWxlcy1vOmJlZm9yZXtjb250ZW50OlwiXFxmMGM1XCJ9LmZhLXBhcGVyY2xpcDpiZWZvcmV7Y29udGVudDpcIlxcZjBjNlwifS5mYS1zYXZlOmJlZm9yZSwuZmEtZmxvcHB5LW86YmVmb3Jle2NvbnRlbnQ6XCJcXGYwYzdcIn0uZmEtc3F1YXJlOmJlZm9yZXtjb250ZW50OlwiXFxmMGM4XCJ9LmZhLW5hdmljb246YmVmb3JlLC5mYS1yZW9yZGVyOmJlZm9yZSwuZmEtYmFyczpiZWZvcmV7Y29udGVudDpcIlxcZjBjOVwifS5mYS1saXN0LXVsOmJlZm9yZXtjb250ZW50OlwiXFxmMGNhXCJ9LmZhLWxpc3Qtb2w6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwY2JcIn0uZmEtc3RyaWtldGhyb3VnaDpiZWZvcmV7Y29udGVudDpcIlxcZjBjY1wifS5mYS11bmRlcmxpbmU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwY2RcIn0uZmEtdGFibGU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwY2VcIn0uZmEtbWFnaWM6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwZDBcIn0uZmEtdHJ1Y2s6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwZDFcIn0uZmEtcGludGVyZXN0OmJlZm9yZXtjb250ZW50OlwiXFxmMGQyXCJ9LmZhLXBpbnRlcmVzdC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwZDNcIn0uZmEtZ29vZ2xlLXBsdXMtc3F1YXJlOmJlZm9yZXtjb250ZW50OlwiXFxmMGQ0XCJ9LmZhLWdvb2dsZS1wbHVzOmJlZm9yZXtjb250ZW50OlwiXFxmMGQ1XCJ9LmZhLW1vbmV5OmJlZm9yZXtjb250ZW50OlwiXFxmMGQ2XCJ9LmZhLWNhcmV0LWRvd246YmVmb3Jle2NvbnRlbnQ6XCJcXGYwZDdcIn0uZmEtY2FyZXQtdXA6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwZDhcIn0uZmEtY2FyZXQtbGVmdDpiZWZvcmV7Y29udGVudDpcIlxcZjBkOVwifS5mYS1jYXJldC1yaWdodDpiZWZvcmV7Y29udGVudDpcIlxcZjBkYVwifS5mYS1jb2x1bW5zOmJlZm9yZXtjb250ZW50OlwiXFxmMGRiXCJ9LmZhLXVuc29ydGVkOmJlZm9yZSwuZmEtc29ydDpiZWZvcmV7Y29udGVudDpcIlxcZjBkY1wifS5mYS1zb3J0LWRvd246YmVmb3JlLC5mYS1zb3J0LWRlc2M6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwZGRcIn0uZmEtc29ydC11cDpiZWZvcmUsLmZhLXNvcnQtYXNjOmJlZm9yZXtjb250ZW50OlwiXFxmMGRlXCJ9LmZhLWVudmVsb3BlOmJlZm9yZXtjb250ZW50OlwiXFxmMGUwXCJ9LmZhLWxpbmtlZGluOmJlZm9yZXtjb250ZW50OlwiXFxmMGUxXCJ9LmZhLXJvdGF0ZS1sZWZ0OmJlZm9yZSwuZmEtdW5kbzpiZWZvcmV7Y29udGVudDpcIlxcZjBlMlwifS5mYS1sZWdhbDpiZWZvcmUsLmZhLWdhdmVsOmJlZm9yZXtjb250ZW50OlwiXFxmMGUzXCJ9LmZhLWRhc2hib2FyZDpiZWZvcmUsLmZhLXRhY2hvbWV0ZXI6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwZTRcIn0uZmEtY29tbWVudC1vOmJlZm9yZXtjb250ZW50OlwiXFxmMGU1XCJ9LmZhLWNvbW1lbnRzLW86YmVmb3Jle2NvbnRlbnQ6XCJcXGYwZTZcIn0uZmEtZmxhc2g6YmVmb3JlLC5mYS1ib2x0OmJlZm9yZXtjb250ZW50OlwiXFxmMGU3XCJ9LmZhLXNpdGVtYXA6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwZThcIn0uZmEtdW1icmVsbGE6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwZTlcIn0uZmEtcGFzdGU6YmVmb3JlLC5mYS1jbGlwYm9hcmQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwZWFcIn0uZmEtbGlnaHRidWxiLW86YmVmb3Jle2NvbnRlbnQ6XCJcXGYwZWJcIn0uZmEtZXhjaGFuZ2U6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwZWNcIn0uZmEtY2xvdWQtZG93bmxvYWQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwZWRcIn0uZmEtY2xvdWQtdXBsb2FkOmJlZm9yZXtjb250ZW50OlwiXFxmMGVlXCJ9LmZhLXVzZXItbWQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwZjBcIn0uZmEtc3RldGhvc2NvcGU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwZjFcIn0uZmEtc3VpdGNhc2U6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwZjJcIn0uZmEtYmVsbC1vOmJlZm9yZXtjb250ZW50OlwiXFxmMGEyXCJ9LmZhLWNvZmZlZTpiZWZvcmV7Y29udGVudDpcIlxcZjBmNFwifS5mYS1jdXRsZXJ5OmJlZm9yZXtjb250ZW50OlwiXFxmMGY1XCJ9LmZhLWZpbGUtdGV4dC1vOmJlZm9yZXtjb250ZW50OlwiXFxmMGY2XCJ9LmZhLWJ1aWxkaW5nLW86YmVmb3Jle2NvbnRlbnQ6XCJcXGYwZjdcIn0uZmEtaG9zcGl0YWwtbzpiZWZvcmV7Y29udGVudDpcIlxcZjBmOFwifS5mYS1hbWJ1bGFuY2U6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwZjlcIn0uZmEtbWVka2l0OmJlZm9yZXtjb250ZW50OlwiXFxmMGZhXCJ9LmZhLWZpZ2h0ZXItamV0OmJlZm9yZXtjb250ZW50OlwiXFxmMGZiXCJ9LmZhLWJlZXI6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwZmNcIn0uZmEtaC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwZmRcIn0uZmEtcGx1cy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYwZmVcIn0uZmEtYW5nbGUtZG91YmxlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxMDBcIn0uZmEtYW5nbGUtZG91YmxlLXJpZ2h0OmJlZm9yZXtjb250ZW50OlwiXFxmMTAxXCJ9LmZhLWFuZ2xlLWRvdWJsZS11cDpiZWZvcmV7Y29udGVudDpcIlxcZjEwMlwifS5mYS1hbmdsZS1kb3VibGUtZG93bjpiZWZvcmV7Y29udGVudDpcIlxcZjEwM1wifS5mYS1hbmdsZS1sZWZ0OmJlZm9yZXtjb250ZW50OlwiXFxmMTA0XCJ9LmZhLWFuZ2xlLXJpZ2h0OmJlZm9yZXtjb250ZW50OlwiXFxmMTA1XCJ9LmZhLWFuZ2xlLXVwOmJlZm9yZXtjb250ZW50OlwiXFxmMTA2XCJ9LmZhLWFuZ2xlLWRvd246YmVmb3Jle2NvbnRlbnQ6XCJcXGYxMDdcIn0uZmEtZGVza3RvcDpiZWZvcmV7Y29udGVudDpcIlxcZjEwOFwifS5mYS1sYXB0b3A6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxMDlcIn0uZmEtdGFibGV0OmJlZm9yZXtjb250ZW50OlwiXFxmMTBhXCJ9LmZhLW1vYmlsZS1waG9uZTpiZWZvcmUsLmZhLW1vYmlsZTpiZWZvcmV7Y29udGVudDpcIlxcZjEwYlwifS5mYS1jaXJjbGUtbzpiZWZvcmV7Y29udGVudDpcIlxcZjEwY1wifS5mYS1xdW90ZS1sZWZ0OmJlZm9yZXtjb250ZW50OlwiXFxmMTBkXCJ9LmZhLXF1b3RlLXJpZ2h0OmJlZm9yZXtjb250ZW50OlwiXFxmMTBlXCJ9LmZhLXNwaW5uZXI6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxMTBcIn0uZmEtY2lyY2xlOmJlZm9yZXtjb250ZW50OlwiXFxmMTExXCJ9LmZhLW1haWwtcmVwbHk6YmVmb3JlLC5mYS1yZXBseTpiZWZvcmV7Y29udGVudDpcIlxcZjExMlwifS5mYS1naXRodWItYWx0OmJlZm9yZXtjb250ZW50OlwiXFxmMTEzXCJ9LmZhLWZvbGRlci1vOmJlZm9yZXtjb250ZW50OlwiXFxmMTE0XCJ9LmZhLWZvbGRlci1vcGVuLW86YmVmb3Jle2NvbnRlbnQ6XCJcXGYxMTVcIn0uZmEtc21pbGUtbzpiZWZvcmV7Y29udGVudDpcIlxcZjExOFwifS5mYS1mcm93bi1vOmJlZm9yZXtjb250ZW50OlwiXFxmMTE5XCJ9LmZhLW1laC1vOmJlZm9yZXtjb250ZW50OlwiXFxmMTFhXCJ9LmZhLWdhbWVwYWQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxMWJcIn0uZmEta2V5Ym9hcmQtbzpiZWZvcmV7Y29udGVudDpcIlxcZjExY1wifS5mYS1mbGFnLW86YmVmb3Jle2NvbnRlbnQ6XCJcXGYxMWRcIn0uZmEtZmxhZy1jaGVja2VyZWQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxMWVcIn0uZmEtdGVybWluYWw6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxMjBcIn0uZmEtY29kZTpiZWZvcmV7Y29udGVudDpcIlxcZjEyMVwifS5mYS1tYWlsLXJlcGx5LWFsbDpiZWZvcmUsLmZhLXJlcGx5LWFsbDpiZWZvcmV7Y29udGVudDpcIlxcZjEyMlwifS5mYS1zdGFyLWhhbGYtZW1wdHk6YmVmb3JlLC5mYS1zdGFyLWhhbGYtZnVsbDpiZWZvcmUsLmZhLXN0YXItaGFsZi1vOmJlZm9yZXtjb250ZW50OlwiXFxmMTIzXCJ9LmZhLWxvY2F0aW9uLWFycm93OmJlZm9yZXtjb250ZW50OlwiXFxmMTI0XCJ9LmZhLWNyb3A6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxMjVcIn0uZmEtY29kZS1mb3JrOmJlZm9yZXtjb250ZW50OlwiXFxmMTI2XCJ9LmZhLXVubGluazpiZWZvcmUsLmZhLWNoYWluLWJyb2tlbjpiZWZvcmV7Y29udGVudDpcIlxcZjEyN1wifS5mYS1xdWVzdGlvbjpiZWZvcmV7Y29udGVudDpcIlxcZjEyOFwifS5mYS1pbmZvOmJlZm9yZXtjb250ZW50OlwiXFxmMTI5XCJ9LmZhLWV4Y2xhbWF0aW9uOmJlZm9yZXtjb250ZW50OlwiXFxmMTJhXCJ9LmZhLXN1cGVyc2NyaXB0OmJlZm9yZXtjb250ZW50OlwiXFxmMTJiXCJ9LmZhLXN1YnNjcmlwdDpiZWZvcmV7Y29udGVudDpcIlxcZjEyY1wifS5mYS1lcmFzZXI6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxMmRcIn0uZmEtcHV6emxlLXBpZWNlOmJlZm9yZXtjb250ZW50OlwiXFxmMTJlXCJ9LmZhLW1pY3JvcGhvbmU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxMzBcIn0uZmEtbWljcm9waG9uZS1zbGFzaDpiZWZvcmV7Y29udGVudDpcIlxcZjEzMVwifS5mYS1zaGllbGQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxMzJcIn0uZmEtY2FsZW5kYXItbzpiZWZvcmV7Y29udGVudDpcIlxcZjEzM1wifS5mYS1maXJlLWV4dGluZ3Vpc2hlcjpiZWZvcmV7Y29udGVudDpcIlxcZjEzNFwifS5mYS1yb2NrZXQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxMzVcIn0uZmEtbWF4Y2RuOmJlZm9yZXtjb250ZW50OlwiXFxmMTM2XCJ9LmZhLWNoZXZyb24tY2lyY2xlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxMzdcIn0uZmEtY2hldnJvbi1jaXJjbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxMzhcIn0uZmEtY2hldnJvbi1jaXJjbGUtdXA6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxMzlcIn0uZmEtY2hldnJvbi1jaXJjbGUtZG93bjpiZWZvcmV7Y29udGVudDpcIlxcZjEzYVwifS5mYS1odG1sNTpiZWZvcmV7Y29udGVudDpcIlxcZjEzYlwifS5mYS1jc3MzOmJlZm9yZXtjb250ZW50OlwiXFxmMTNjXCJ9LmZhLWFuY2hvcjpiZWZvcmV7Y29udGVudDpcIlxcZjEzZFwifS5mYS11bmxvY2stYWx0OmJlZm9yZXtjb250ZW50OlwiXFxmMTNlXCJ9LmZhLWJ1bGxzZXllOmJlZm9yZXtjb250ZW50OlwiXFxmMTQwXCJ9LmZhLWVsbGlwc2lzLWg6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxNDFcIn0uZmEtZWxsaXBzaXMtdjpiZWZvcmV7Y29udGVudDpcIlxcZjE0MlwifS5mYS1yc3Mtc3F1YXJlOmJlZm9yZXtjb250ZW50OlwiXFxmMTQzXCJ9LmZhLXBsYXktY2lyY2xlOmJlZm9yZXtjb250ZW50OlwiXFxmMTQ0XCJ9LmZhLXRpY2tldDpiZWZvcmV7Y29udGVudDpcIlxcZjE0NVwifS5mYS1taW51cy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxNDZcIn0uZmEtbWludXMtc3F1YXJlLW86YmVmb3Jle2NvbnRlbnQ6XCJcXGYxNDdcIn0uZmEtbGV2ZWwtdXA6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxNDhcIn0uZmEtbGV2ZWwtZG93bjpiZWZvcmV7Y29udGVudDpcIlxcZjE0OVwifS5mYS1jaGVjay1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxNGFcIn0uZmEtcGVuY2lsLXNxdWFyZTpiZWZvcmV7Y29udGVudDpcIlxcZjE0YlwifS5mYS1leHRlcm5hbC1saW5rLXNxdWFyZTpiZWZvcmV7Y29udGVudDpcIlxcZjE0Y1wifS5mYS1zaGFyZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxNGRcIn0uZmEtY29tcGFzczpiZWZvcmV7Y29udGVudDpcIlxcZjE0ZVwifS5mYS10b2dnbGUtZG93bjpiZWZvcmUsLmZhLWNhcmV0LXNxdWFyZS1vLWRvd246YmVmb3Jle2NvbnRlbnQ6XCJcXGYxNTBcIn0uZmEtdG9nZ2xlLXVwOmJlZm9yZSwuZmEtY2FyZXQtc3F1YXJlLW8tdXA6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxNTFcIn0uZmEtdG9nZ2xlLXJpZ2h0OmJlZm9yZSwuZmEtY2FyZXQtc3F1YXJlLW8tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxNTJcIn0uZmEtZXVybzpiZWZvcmUsLmZhLWV1cjpiZWZvcmV7Y29udGVudDpcIlxcZjE1M1wifS5mYS1nYnA6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxNTRcIn0uZmEtZG9sbGFyOmJlZm9yZSwuZmEtdXNkOmJlZm9yZXtjb250ZW50OlwiXFxmMTU1XCJ9LmZhLXJ1cGVlOmJlZm9yZSwuZmEtaW5yOmJlZm9yZXtjb250ZW50OlwiXFxmMTU2XCJ9LmZhLWNueTpiZWZvcmUsLmZhLXJtYjpiZWZvcmUsLmZhLXllbjpiZWZvcmUsLmZhLWpweTpiZWZvcmV7Y29udGVudDpcIlxcZjE1N1wifS5mYS1ydWJsZTpiZWZvcmUsLmZhLXJvdWJsZTpiZWZvcmUsLmZhLXJ1YjpiZWZvcmV7Y29udGVudDpcIlxcZjE1OFwifS5mYS13b246YmVmb3JlLC5mYS1rcnc6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxNTlcIn0uZmEtYml0Y29pbjpiZWZvcmUsLmZhLWJ0YzpiZWZvcmV7Y29udGVudDpcIlxcZjE1YVwifS5mYS1maWxlOmJlZm9yZXtjb250ZW50OlwiXFxmMTViXCJ9LmZhLWZpbGUtdGV4dDpiZWZvcmV7Y29udGVudDpcIlxcZjE1Y1wifS5mYS1zb3J0LWFscGhhLWFzYzpiZWZvcmV7Y29udGVudDpcIlxcZjE1ZFwifS5mYS1zb3J0LWFscGhhLWRlc2M6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxNWVcIn0uZmEtc29ydC1hbW91bnQtYXNjOmJlZm9yZXtjb250ZW50OlwiXFxmMTYwXCJ9LmZhLXNvcnQtYW1vdW50LWRlc2M6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxNjFcIn0uZmEtc29ydC1udW1lcmljLWFzYzpiZWZvcmV7Y29udGVudDpcIlxcZjE2MlwifS5mYS1zb3J0LW51bWVyaWMtZGVzYzpiZWZvcmV7Y29udGVudDpcIlxcZjE2M1wifS5mYS10aHVtYnMtdXA6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxNjRcIn0uZmEtdGh1bWJzLWRvd246YmVmb3Jle2NvbnRlbnQ6XCJcXGYxNjVcIn0uZmEteW91dHViZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxNjZcIn0uZmEteW91dHViZTpiZWZvcmV7Y29udGVudDpcIlxcZjE2N1wifS5mYS14aW5nOmJlZm9yZXtjb250ZW50OlwiXFxmMTY4XCJ9LmZhLXhpbmctc3F1YXJlOmJlZm9yZXtjb250ZW50OlwiXFxmMTY5XCJ9LmZhLXlvdXR1YmUtcGxheTpiZWZvcmV7Y29udGVudDpcIlxcZjE2YVwifS5mYS1kcm9wYm94OmJlZm9yZXtjb250ZW50OlwiXFxmMTZiXCJ9LmZhLXN0YWNrLW92ZXJmbG93OmJlZm9yZXtjb250ZW50OlwiXFxmMTZjXCJ9LmZhLWluc3RhZ3JhbTpiZWZvcmV7Y29udGVudDpcIlxcZjE2ZFwifS5mYS1mbGlja3I6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxNmVcIn0uZmEtYWRuOmJlZm9yZXtjb250ZW50OlwiXFxmMTcwXCJ9LmZhLWJpdGJ1Y2tldDpiZWZvcmV7Y29udGVudDpcIlxcZjE3MVwifS5mYS1iaXRidWNrZXQtc3F1YXJlOmJlZm9yZXtjb250ZW50OlwiXFxmMTcyXCJ9LmZhLXR1bWJscjpiZWZvcmV7Y29udGVudDpcIlxcZjE3M1wifS5mYS10dW1ibHItc3F1YXJlOmJlZm9yZXtjb250ZW50OlwiXFxmMTc0XCJ9LmZhLWxvbmctYXJyb3ctZG93bjpiZWZvcmV7Y29udGVudDpcIlxcZjE3NVwifS5mYS1sb25nLWFycm93LXVwOmJlZm9yZXtjb250ZW50OlwiXFxmMTc2XCJ9LmZhLWxvbmctYXJyb3ctbGVmdDpiZWZvcmV7Y29udGVudDpcIlxcZjE3N1wifS5mYS1sb25nLWFycm93LXJpZ2h0OmJlZm9yZXtjb250ZW50OlwiXFxmMTc4XCJ9LmZhLWFwcGxlOmJlZm9yZXtjb250ZW50OlwiXFxmMTc5XCJ9LmZhLXdpbmRvd3M6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxN2FcIn0uZmEtYW5kcm9pZDpiZWZvcmV7Y29udGVudDpcIlxcZjE3YlwifS5mYS1saW51eDpiZWZvcmV7Y29udGVudDpcIlxcZjE3Y1wifS5mYS1kcmliYmJsZTpiZWZvcmV7Y29udGVudDpcIlxcZjE3ZFwifS5mYS1za3lwZTpiZWZvcmV7Y29udGVudDpcIlxcZjE3ZVwifS5mYS1mb3Vyc3F1YXJlOmJlZm9yZXtjb250ZW50OlwiXFxmMTgwXCJ9LmZhLXRyZWxsbzpiZWZvcmV7Y29udGVudDpcIlxcZjE4MVwifS5mYS1mZW1hbGU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxODJcIn0uZmEtbWFsZTpiZWZvcmV7Y29udGVudDpcIlxcZjE4M1wifS5mYS1naXR0aXA6YmVmb3JlLC5mYS1ncmF0aXBheTpiZWZvcmV7Y29udGVudDpcIlxcZjE4NFwifS5mYS1zdW4tbzpiZWZvcmV7Y29udGVudDpcIlxcZjE4NVwifS5mYS1tb29uLW86YmVmb3Jle2NvbnRlbnQ6XCJcXGYxODZcIn0uZmEtYXJjaGl2ZTpiZWZvcmV7Y29udGVudDpcIlxcZjE4N1wifS5mYS1idWc6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxODhcIn0uZmEtdms6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxODlcIn0uZmEtd2VpYm86YmVmb3Jle2NvbnRlbnQ6XCJcXGYxOGFcIn0uZmEtcmVucmVuOmJlZm9yZXtjb250ZW50OlwiXFxmMThiXCJ9LmZhLXBhZ2VsaW5lczpiZWZvcmV7Y29udGVudDpcIlxcZjE4Y1wifS5mYS1zdGFjay1leGNoYW5nZTpiZWZvcmV7Y29udGVudDpcIlxcZjE4ZFwifS5mYS1hcnJvdy1jaXJjbGUtby1yaWdodDpiZWZvcmV7Y29udGVudDpcIlxcZjE4ZVwifS5mYS1hcnJvdy1jaXJjbGUtby1sZWZ0OmJlZm9yZXtjb250ZW50OlwiXFxmMTkwXCJ9LmZhLXRvZ2dsZS1sZWZ0OmJlZm9yZSwuZmEtY2FyZXQtc3F1YXJlLW8tbGVmdDpiZWZvcmV7Y29udGVudDpcIlxcZjE5MVwifS5mYS1kb3QtY2lyY2xlLW86YmVmb3Jle2NvbnRlbnQ6XCJcXGYxOTJcIn0uZmEtd2hlZWxjaGFpcjpiZWZvcmV7Y29udGVudDpcIlxcZjE5M1wifS5mYS12aW1lby1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxOTRcIn0uZmEtdHVya2lzaC1saXJhOmJlZm9yZSwuZmEtdHJ5OmJlZm9yZXtjb250ZW50OlwiXFxmMTk1XCJ9LmZhLXBsdXMtc3F1YXJlLW86YmVmb3Jle2NvbnRlbnQ6XCJcXGYxOTZcIn0uZmEtc3BhY2Utc2h1dHRsZTpiZWZvcmV7Y29udGVudDpcIlxcZjE5N1wifS5mYS1zbGFjazpiZWZvcmV7Y29udGVudDpcIlxcZjE5OFwifS5mYS1lbnZlbG9wZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxOTlcIn0uZmEtd29yZHByZXNzOmJlZm9yZXtjb250ZW50OlwiXFxmMTlhXCJ9LmZhLW9wZW5pZDpiZWZvcmV7Y29udGVudDpcIlxcZjE5YlwifS5mYS1pbnN0aXR1dGlvbjpiZWZvcmUsLmZhLWJhbms6YmVmb3JlLC5mYS11bml2ZXJzaXR5OmJlZm9yZXtjb250ZW50OlwiXFxmMTljXCJ9LmZhLW1vcnRhci1ib2FyZDpiZWZvcmUsLmZhLWdyYWR1YXRpb24tY2FwOmJlZm9yZXtjb250ZW50OlwiXFxmMTlkXCJ9LmZhLXlhaG9vOmJlZm9yZXtjb250ZW50OlwiXFxmMTllXCJ9LmZhLWdvb2dsZTpiZWZvcmV7Y29udGVudDpcIlxcZjFhMFwifS5mYS1yZWRkaXQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxYTFcIn0uZmEtcmVkZGl0LXNxdWFyZTpiZWZvcmV7Y29udGVudDpcIlxcZjFhMlwifS5mYS1zdHVtYmxldXBvbi1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxYTNcIn0uZmEtc3R1bWJsZXVwb246YmVmb3Jle2NvbnRlbnQ6XCJcXGYxYTRcIn0uZmEtZGVsaWNpb3VzOmJlZm9yZXtjb250ZW50OlwiXFxmMWE1XCJ9LmZhLWRpZ2c6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxYTZcIn0uZmEtcGllZC1waXBlci1wcDpiZWZvcmV7Y29udGVudDpcIlxcZjFhN1wifS5mYS1waWVkLXBpcGVyLWFsdDpiZWZvcmV7Y29udGVudDpcIlxcZjFhOFwifS5mYS1kcnVwYWw6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxYTlcIn0uZmEtam9vbWxhOmJlZm9yZXtjb250ZW50OlwiXFxmMWFhXCJ9LmZhLWxhbmd1YWdlOmJlZm9yZXtjb250ZW50OlwiXFxmMWFiXCJ9LmZhLWZheDpiZWZvcmV7Y29udGVudDpcIlxcZjFhY1wifS5mYS1idWlsZGluZzpiZWZvcmV7Y29udGVudDpcIlxcZjFhZFwifS5mYS1jaGlsZDpiZWZvcmV7Y29udGVudDpcIlxcZjFhZVwifS5mYS1wYXc6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxYjBcIn0uZmEtc3Bvb246YmVmb3Jle2NvbnRlbnQ6XCJcXGYxYjFcIn0uZmEtY3ViZTpiZWZvcmV7Y29udGVudDpcIlxcZjFiMlwifS5mYS1jdWJlczpiZWZvcmV7Y29udGVudDpcIlxcZjFiM1wifS5mYS1iZWhhbmNlOmJlZm9yZXtjb250ZW50OlwiXFxmMWI0XCJ9LmZhLWJlaGFuY2Utc3F1YXJlOmJlZm9yZXtjb250ZW50OlwiXFxmMWI1XCJ9LmZhLXN0ZWFtOmJlZm9yZXtjb250ZW50OlwiXFxmMWI2XCJ9LmZhLXN0ZWFtLXNxdWFyZTpiZWZvcmV7Y29udGVudDpcIlxcZjFiN1wifS5mYS1yZWN5Y2xlOmJlZm9yZXtjb250ZW50OlwiXFxmMWI4XCJ9LmZhLWF1dG9tb2JpbGU6YmVmb3JlLC5mYS1jYXI6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxYjlcIn0uZmEtY2FiOmJlZm9yZSwuZmEtdGF4aTpiZWZvcmV7Y29udGVudDpcIlxcZjFiYVwifS5mYS10cmVlOmJlZm9yZXtjb250ZW50OlwiXFxmMWJiXCJ9LmZhLXNwb3RpZnk6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxYmNcIn0uZmEtZGV2aWFudGFydDpiZWZvcmV7Y29udGVudDpcIlxcZjFiZFwifS5mYS1zb3VuZGNsb3VkOmJlZm9yZXtjb250ZW50OlwiXFxmMWJlXCJ9LmZhLWRhdGFiYXNlOmJlZm9yZXtjb250ZW50OlwiXFxmMWMwXCJ9LmZhLWZpbGUtcGRmLW86YmVmb3Jle2NvbnRlbnQ6XCJcXGYxYzFcIn0uZmEtZmlsZS13b3JkLW86YmVmb3Jle2NvbnRlbnQ6XCJcXGYxYzJcIn0uZmEtZmlsZS1leGNlbC1vOmJlZm9yZXtjb250ZW50OlwiXFxmMWMzXCJ9LmZhLWZpbGUtcG93ZXJwb2ludC1vOmJlZm9yZXtjb250ZW50OlwiXFxmMWM0XCJ9LmZhLWZpbGUtcGhvdG8tbzpiZWZvcmUsLmZhLWZpbGUtcGljdHVyZS1vOmJlZm9yZSwuZmEtZmlsZS1pbWFnZS1vOmJlZm9yZXtjb250ZW50OlwiXFxmMWM1XCJ9LmZhLWZpbGUtemlwLW86YmVmb3JlLC5mYS1maWxlLWFyY2hpdmUtbzpiZWZvcmV7Y29udGVudDpcIlxcZjFjNlwifS5mYS1maWxlLXNvdW5kLW86YmVmb3JlLC5mYS1maWxlLWF1ZGlvLW86YmVmb3Jle2NvbnRlbnQ6XCJcXGYxYzdcIn0uZmEtZmlsZS1tb3ZpZS1vOmJlZm9yZSwuZmEtZmlsZS12aWRlby1vOmJlZm9yZXtjb250ZW50OlwiXFxmMWM4XCJ9LmZhLWZpbGUtY29kZS1vOmJlZm9yZXtjb250ZW50OlwiXFxmMWM5XCJ9LmZhLXZpbmU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxY2FcIn0uZmEtY29kZXBlbjpiZWZvcmV7Y29udGVudDpcIlxcZjFjYlwifS5mYS1qc2ZpZGRsZTpiZWZvcmV7Y29udGVudDpcIlxcZjFjY1wifS5mYS1saWZlLWJvdXk6YmVmb3JlLC5mYS1saWZlLWJ1b3k6YmVmb3JlLC5mYS1saWZlLXNhdmVyOmJlZm9yZSwuZmEtc3VwcG9ydDpiZWZvcmUsLmZhLWxpZmUtcmluZzpiZWZvcmV7Y29udGVudDpcIlxcZjFjZFwifS5mYS1jaXJjbGUtby1ub3RjaDpiZWZvcmV7Y29udGVudDpcIlxcZjFjZVwifS5mYS1yYTpiZWZvcmUsLmZhLXJlc2lzdGFuY2U6YmVmb3JlLC5mYS1yZWJlbDpiZWZvcmV7Y29udGVudDpcIlxcZjFkMFwifS5mYS1nZTpiZWZvcmUsLmZhLWVtcGlyZTpiZWZvcmV7Y29udGVudDpcIlxcZjFkMVwifS5mYS1naXQtc3F1YXJlOmJlZm9yZXtjb250ZW50OlwiXFxmMWQyXCJ9LmZhLWdpdDpiZWZvcmV7Y29udGVudDpcIlxcZjFkM1wifS5mYS15LWNvbWJpbmF0b3Itc3F1YXJlOmJlZm9yZSwuZmEteWMtc3F1YXJlOmJlZm9yZSwuZmEtaGFja2VyLW5ld3M6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxZDRcIn0uZmEtdGVuY2VudC13ZWlibzpiZWZvcmV7Y29udGVudDpcIlxcZjFkNVwifS5mYS1xcTpiZWZvcmV7Y29udGVudDpcIlxcZjFkNlwifS5mYS13ZWNoYXQ6YmVmb3JlLC5mYS13ZWl4aW46YmVmb3Jle2NvbnRlbnQ6XCJcXGYxZDdcIn0uZmEtc2VuZDpiZWZvcmUsLmZhLXBhcGVyLXBsYW5lOmJlZm9yZXtjb250ZW50OlwiXFxmMWQ4XCJ9LmZhLXNlbmQtbzpiZWZvcmUsLmZhLXBhcGVyLXBsYW5lLW86YmVmb3Jle2NvbnRlbnQ6XCJcXGYxZDlcIn0uZmEtaGlzdG9yeTpiZWZvcmV7Y29udGVudDpcIlxcZjFkYVwifS5mYS1jaXJjbGUtdGhpbjpiZWZvcmV7Y29udGVudDpcIlxcZjFkYlwifS5mYS1oZWFkZXI6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxZGNcIn0uZmEtcGFyYWdyYXBoOmJlZm9yZXtjb250ZW50OlwiXFxmMWRkXCJ9LmZhLXNsaWRlcnM6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxZGVcIn0uZmEtc2hhcmUtYWx0OmJlZm9yZXtjb250ZW50OlwiXFxmMWUwXCJ9LmZhLXNoYXJlLWFsdC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxZTFcIn0uZmEtYm9tYjpiZWZvcmV7Y29udGVudDpcIlxcZjFlMlwifS5mYS1zb2NjZXItYmFsbC1vOmJlZm9yZSwuZmEtZnV0Ym9sLW86YmVmb3Jle2NvbnRlbnQ6XCJcXGYxZTNcIn0uZmEtdHR5OmJlZm9yZXtjb250ZW50OlwiXFxmMWU0XCJ9LmZhLWJpbm9jdWxhcnM6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxZTVcIn0uZmEtcGx1ZzpiZWZvcmV7Y29udGVudDpcIlxcZjFlNlwifS5mYS1zbGlkZXNoYXJlOmJlZm9yZXtjb250ZW50OlwiXFxmMWU3XCJ9LmZhLXR3aXRjaDpiZWZvcmV7Y29udGVudDpcIlxcZjFlOFwifS5mYS15ZWxwOmJlZm9yZXtjb250ZW50OlwiXFxmMWU5XCJ9LmZhLW5ld3NwYXBlci1vOmJlZm9yZXtjb250ZW50OlwiXFxmMWVhXCJ9LmZhLXdpZmk6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxZWJcIn0uZmEtY2FsY3VsYXRvcjpiZWZvcmV7Y29udGVudDpcIlxcZjFlY1wifS5mYS1wYXlwYWw6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxZWRcIn0uZmEtZ29vZ2xlLXdhbGxldDpiZWZvcmV7Y29udGVudDpcIlxcZjFlZVwifS5mYS1jYy12aXNhOmJlZm9yZXtjb250ZW50OlwiXFxmMWYwXCJ9LmZhLWNjLW1hc3RlcmNhcmQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxZjFcIn0uZmEtY2MtZGlzY292ZXI6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxZjJcIn0uZmEtY2MtYW1leDpiZWZvcmV7Y29udGVudDpcIlxcZjFmM1wifS5mYS1jYy1wYXlwYWw6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxZjRcIn0uZmEtY2Mtc3RyaXBlOmJlZm9yZXtjb250ZW50OlwiXFxmMWY1XCJ9LmZhLWJlbGwtc2xhc2g6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxZjZcIn0uZmEtYmVsbC1zbGFzaC1vOmJlZm9yZXtjb250ZW50OlwiXFxmMWY3XCJ9LmZhLXRyYXNoOmJlZm9yZXtjb250ZW50OlwiXFxmMWY4XCJ9LmZhLWNvcHlyaWdodDpiZWZvcmV7Y29udGVudDpcIlxcZjFmOVwifS5mYS1hdDpiZWZvcmV7Y29udGVudDpcIlxcZjFmYVwifS5mYS1leWVkcm9wcGVyOmJlZm9yZXtjb250ZW50OlwiXFxmMWZiXCJ9LmZhLXBhaW50LWJydXNoOmJlZm9yZXtjb250ZW50OlwiXFxmMWZjXCJ9LmZhLWJpcnRoZGF5LWNha2U6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxZmRcIn0uZmEtYXJlYS1jaGFydDpiZWZvcmV7Y29udGVudDpcIlxcZjFmZVwifS5mYS1waWUtY2hhcnQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyMDBcIn0uZmEtbGluZS1jaGFydDpiZWZvcmV7Y29udGVudDpcIlxcZjIwMVwifS5mYS1sYXN0Zm06YmVmb3Jle2NvbnRlbnQ6XCJcXGYyMDJcIn0uZmEtbGFzdGZtLXNxdWFyZTpiZWZvcmV7Y29udGVudDpcIlxcZjIwM1wifS5mYS10b2dnbGUtb2ZmOmJlZm9yZXtjb250ZW50OlwiXFxmMjA0XCJ9LmZhLXRvZ2dsZS1vbjpiZWZvcmV7Y29udGVudDpcIlxcZjIwNVwifS5mYS1iaWN5Y2xlOmJlZm9yZXtjb250ZW50OlwiXFxmMjA2XCJ9LmZhLWJ1czpiZWZvcmV7Y29udGVudDpcIlxcZjIwN1wifS5mYS1pb3hob3N0OmJlZm9yZXtjb250ZW50OlwiXFxmMjA4XCJ9LmZhLWFuZ2VsbGlzdDpiZWZvcmV7Y29udGVudDpcIlxcZjIwOVwifS5mYS1jYzpiZWZvcmV7Y29udGVudDpcIlxcZjIwYVwifS5mYS1zaGVrZWw6YmVmb3JlLC5mYS1zaGVxZWw6YmVmb3JlLC5mYS1pbHM6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyMGJcIn0uZmEtbWVhbnBhdGg6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyMGNcIn0uZmEtYnV5c2VsbGFkczpiZWZvcmV7Y29udGVudDpcIlxcZjIwZFwifS5mYS1jb25uZWN0ZGV2ZWxvcDpiZWZvcmV7Y29udGVudDpcIlxcZjIwZVwifS5mYS1kYXNoY3ViZTpiZWZvcmV7Y29udGVudDpcIlxcZjIxMFwifS5mYS1mb3J1bWJlZTpiZWZvcmV7Y29udGVudDpcIlxcZjIxMVwifS5mYS1sZWFucHViOmJlZm9yZXtjb250ZW50OlwiXFxmMjEyXCJ9LmZhLXNlbGxzeTpiZWZvcmV7Y29udGVudDpcIlxcZjIxM1wifS5mYS1zaGlydHNpbmJ1bGs6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyMTRcIn0uZmEtc2ltcGx5YnVpbHQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyMTVcIn0uZmEtc2t5YXRsYXM6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyMTZcIn0uZmEtY2FydC1wbHVzOmJlZm9yZXtjb250ZW50OlwiXFxmMjE3XCJ9LmZhLWNhcnQtYXJyb3ctZG93bjpiZWZvcmV7Y29udGVudDpcIlxcZjIxOFwifS5mYS1kaWFtb25kOmJlZm9yZXtjb250ZW50OlwiXFxmMjE5XCJ9LmZhLXNoaXA6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyMWFcIn0uZmEtdXNlci1zZWNyZXQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyMWJcIn0uZmEtbW90b3JjeWNsZTpiZWZvcmV7Y29udGVudDpcIlxcZjIxY1wifS5mYS1zdHJlZXQtdmlldzpiZWZvcmV7Y29udGVudDpcIlxcZjIxZFwifS5mYS1oZWFydGJlYXQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyMWVcIn0uZmEtdmVudXM6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyMjFcIn0uZmEtbWFyczpiZWZvcmV7Y29udGVudDpcIlxcZjIyMlwifS5mYS1tZXJjdXJ5OmJlZm9yZXtjb250ZW50OlwiXFxmMjIzXCJ9LmZhLWludGVyc2V4OmJlZm9yZSwuZmEtdHJhbnNnZW5kZXI6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyMjRcIn0uZmEtdHJhbnNnZW5kZXItYWx0OmJlZm9yZXtjb250ZW50OlwiXFxmMjI1XCJ9LmZhLXZlbnVzLWRvdWJsZTpiZWZvcmV7Y29udGVudDpcIlxcZjIyNlwifS5mYS1tYXJzLWRvdWJsZTpiZWZvcmV7Y29udGVudDpcIlxcZjIyN1wifS5mYS12ZW51cy1tYXJzOmJlZm9yZXtjb250ZW50OlwiXFxmMjI4XCJ9LmZhLW1hcnMtc3Ryb2tlOmJlZm9yZXtjb250ZW50OlwiXFxmMjI5XCJ9LmZhLW1hcnMtc3Ryb2tlLXY6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyMmFcIn0uZmEtbWFycy1zdHJva2UtaDpiZWZvcmV7Y29udGVudDpcIlxcZjIyYlwifS5mYS1uZXV0ZXI6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyMmNcIn0uZmEtZ2VuZGVybGVzczpiZWZvcmV7Y29udGVudDpcIlxcZjIyZFwifS5mYS1mYWNlYm9vay1vZmZpY2lhbDpiZWZvcmV7Y29udGVudDpcIlxcZjIzMFwifS5mYS1waW50ZXJlc3QtcDpiZWZvcmV7Y29udGVudDpcIlxcZjIzMVwifS5mYS13aGF0c2FwcDpiZWZvcmV7Y29udGVudDpcIlxcZjIzMlwifS5mYS1zZXJ2ZXI6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyMzNcIn0uZmEtdXNlci1wbHVzOmJlZm9yZXtjb250ZW50OlwiXFxmMjM0XCJ9LmZhLXVzZXItdGltZXM6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyMzVcIn0uZmEtaG90ZWw6YmVmb3JlLC5mYS1iZWQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyMzZcIn0uZmEtdmlhY29pbjpiZWZvcmV7Y29udGVudDpcIlxcZjIzN1wifS5mYS10cmFpbjpiZWZvcmV7Y29udGVudDpcIlxcZjIzOFwifS5mYS1zdWJ3YXk6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyMzlcIn0uZmEtbWVkaXVtOmJlZm9yZXtjb250ZW50OlwiXFxmMjNhXCJ9LmZhLXljOmJlZm9yZSwuZmEteS1jb21iaW5hdG9yOmJlZm9yZXtjb250ZW50OlwiXFxmMjNiXCJ9LmZhLW9wdGluLW1vbnN0ZXI6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyM2NcIn0uZmEtb3BlbmNhcnQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyM2RcIn0uZmEtZXhwZWRpdGVkc3NsOmJlZm9yZXtjb250ZW50OlwiXFxmMjNlXCJ9LmZhLWJhdHRlcnktNDpiZWZvcmUsLmZhLWJhdHRlcnk6YmVmb3JlLC5mYS1iYXR0ZXJ5LWZ1bGw6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyNDBcIn0uZmEtYmF0dGVyeS0zOmJlZm9yZSwuZmEtYmF0dGVyeS10aHJlZS1xdWFydGVyczpiZWZvcmV7Y29udGVudDpcIlxcZjI0MVwifS5mYS1iYXR0ZXJ5LTI6YmVmb3JlLC5mYS1iYXR0ZXJ5LWhhbGY6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyNDJcIn0uZmEtYmF0dGVyeS0xOmJlZm9yZSwuZmEtYmF0dGVyeS1xdWFydGVyOmJlZm9yZXtjb250ZW50OlwiXFxmMjQzXCJ9LmZhLWJhdHRlcnktMDpiZWZvcmUsLmZhLWJhdHRlcnktZW1wdHk6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyNDRcIn0uZmEtbW91c2UtcG9pbnRlcjpiZWZvcmV7Y29udGVudDpcIlxcZjI0NVwifS5mYS1pLWN1cnNvcjpiZWZvcmV7Y29udGVudDpcIlxcZjI0NlwifS5mYS1vYmplY3QtZ3JvdXA6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyNDdcIn0uZmEtb2JqZWN0LXVuZ3JvdXA6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyNDhcIn0uZmEtc3RpY2t5LW5vdGU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyNDlcIn0uZmEtc3RpY2t5LW5vdGUtbzpiZWZvcmV7Y29udGVudDpcIlxcZjI0YVwifS5mYS1jYy1qY2I6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyNGJcIn0uZmEtY2MtZGluZXJzLWNsdWI6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyNGNcIn0uZmEtY2xvbmU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyNGRcIn0uZmEtYmFsYW5jZS1zY2FsZTpiZWZvcmV7Y29udGVudDpcIlxcZjI0ZVwifS5mYS1ob3VyZ2xhc3MtbzpiZWZvcmV7Y29udGVudDpcIlxcZjI1MFwifS5mYS1ob3VyZ2xhc3MtMTpiZWZvcmUsLmZhLWhvdXJnbGFzcy1zdGFydDpiZWZvcmV7Y29udGVudDpcIlxcZjI1MVwifS5mYS1ob3VyZ2xhc3MtMjpiZWZvcmUsLmZhLWhvdXJnbGFzcy1oYWxmOmJlZm9yZXtjb250ZW50OlwiXFxmMjUyXCJ9LmZhLWhvdXJnbGFzcy0zOmJlZm9yZSwuZmEtaG91cmdsYXNzLWVuZDpiZWZvcmV7Y29udGVudDpcIlxcZjI1M1wifS5mYS1ob3VyZ2xhc3M6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyNTRcIn0uZmEtaGFuZC1ncmFiLW86YmVmb3JlLC5mYS1oYW5kLXJvY2stbzpiZWZvcmV7Y29udGVudDpcIlxcZjI1NVwifS5mYS1oYW5kLXN0b3AtbzpiZWZvcmUsLmZhLWhhbmQtcGFwZXItbzpiZWZvcmV7Y29udGVudDpcIlxcZjI1NlwifS5mYS1oYW5kLXNjaXNzb3JzLW86YmVmb3Jle2NvbnRlbnQ6XCJcXGYyNTdcIn0uZmEtaGFuZC1saXphcmQtbzpiZWZvcmV7Y29udGVudDpcIlxcZjI1OFwifS5mYS1oYW5kLXNwb2NrLW86YmVmb3Jle2NvbnRlbnQ6XCJcXGYyNTlcIn0uZmEtaGFuZC1wb2ludGVyLW86YmVmb3Jle2NvbnRlbnQ6XCJcXGYyNWFcIn0uZmEtaGFuZC1wZWFjZS1vOmJlZm9yZXtjb250ZW50OlwiXFxmMjViXCJ9LmZhLXRyYWRlbWFyazpiZWZvcmV7Y29udGVudDpcIlxcZjI1Y1wifS5mYS1yZWdpc3RlcmVkOmJlZm9yZXtjb250ZW50OlwiXFxmMjVkXCJ9LmZhLWNyZWF0aXZlLWNvbW1vbnM6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyNWVcIn0uZmEtZ2c6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyNjBcIn0uZmEtZ2ctY2lyY2xlOmJlZm9yZXtjb250ZW50OlwiXFxmMjYxXCJ9LmZhLXRyaXBhZHZpc29yOmJlZm9yZXtjb250ZW50OlwiXFxmMjYyXCJ9LmZhLW9kbm9rbGFzc25pa2k6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyNjNcIn0uZmEtb2Rub2tsYXNzbmlraS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyNjRcIn0uZmEtZ2V0LXBvY2tldDpiZWZvcmV7Y29udGVudDpcIlxcZjI2NVwifS5mYS13aWtpcGVkaWEtdzpiZWZvcmV7Y29udGVudDpcIlxcZjI2NlwifS5mYS1zYWZhcmk6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyNjdcIn0uZmEtY2hyb21lOmJlZm9yZXtjb250ZW50OlwiXFxmMjY4XCJ9LmZhLWZpcmVmb3g6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyNjlcIn0uZmEtb3BlcmE6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyNmFcIn0uZmEtaW50ZXJuZXQtZXhwbG9yZXI6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyNmJcIn0uZmEtdHY6YmVmb3JlLC5mYS10ZWxldmlzaW9uOmJlZm9yZXtjb250ZW50OlwiXFxmMjZjXCJ9LmZhLWNvbnRhbzpiZWZvcmV7Y29udGVudDpcIlxcZjI2ZFwifS5mYS01MDBweDpiZWZvcmV7Y29udGVudDpcIlxcZjI2ZVwifS5mYS1hbWF6b246YmVmb3Jle2NvbnRlbnQ6XCJcXGYyNzBcIn0uZmEtY2FsZW5kYXItcGx1cy1vOmJlZm9yZXtjb250ZW50OlwiXFxmMjcxXCJ9LmZhLWNhbGVuZGFyLW1pbnVzLW86YmVmb3Jle2NvbnRlbnQ6XCJcXGYyNzJcIn0uZmEtY2FsZW5kYXItdGltZXMtbzpiZWZvcmV7Y29udGVudDpcIlxcZjI3M1wifS5mYS1jYWxlbmRhci1jaGVjay1vOmJlZm9yZXtjb250ZW50OlwiXFxmMjc0XCJ9LmZhLWluZHVzdHJ5OmJlZm9yZXtjb250ZW50OlwiXFxmMjc1XCJ9LmZhLW1hcC1waW46YmVmb3Jle2NvbnRlbnQ6XCJcXGYyNzZcIn0uZmEtbWFwLXNpZ25zOmJlZm9yZXtjb250ZW50OlwiXFxmMjc3XCJ9LmZhLW1hcC1vOmJlZm9yZXtjb250ZW50OlwiXFxmMjc4XCJ9LmZhLW1hcDpiZWZvcmV7Y29udGVudDpcIlxcZjI3OVwifS5mYS1jb21tZW50aW5nOmJlZm9yZXtjb250ZW50OlwiXFxmMjdhXCJ9LmZhLWNvbW1lbnRpbmctbzpiZWZvcmV7Y29udGVudDpcIlxcZjI3YlwifS5mYS1ob3V6ejpiZWZvcmV7Y29udGVudDpcIlxcZjI3Y1wifS5mYS12aW1lbzpiZWZvcmV7Y29udGVudDpcIlxcZjI3ZFwifS5mYS1ibGFjay10aWU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyN2VcIn0uZmEtZm9udGljb25zOmJlZm9yZXtjb250ZW50OlwiXFxmMjgwXCJ9LmZhLXJlZGRpdC1hbGllbjpiZWZvcmV7Y29udGVudDpcIlxcZjI4MVwifS5mYS1lZGdlOmJlZm9yZXtjb250ZW50OlwiXFxmMjgyXCJ9LmZhLWNyZWRpdC1jYXJkLWFsdDpiZWZvcmV7Y29udGVudDpcIlxcZjI4M1wifS5mYS1jb2RpZXBpZTpiZWZvcmV7Y29udGVudDpcIlxcZjI4NFwifS5mYS1tb2R4OmJlZm9yZXtjb250ZW50OlwiXFxmMjg1XCJ9LmZhLWZvcnQtYXdlc29tZTpiZWZvcmV7Y29udGVudDpcIlxcZjI4NlwifS5mYS11c2I6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyODdcIn0uZmEtcHJvZHVjdC1odW50OmJlZm9yZXtjb250ZW50OlwiXFxmMjg4XCJ9LmZhLW1peGNsb3VkOmJlZm9yZXtjb250ZW50OlwiXFxmMjg5XCJ9LmZhLXNjcmliZDpiZWZvcmV7Y29udGVudDpcIlxcZjI4YVwifS5mYS1wYXVzZS1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyOGJcIn0uZmEtcGF1c2UtY2lyY2xlLW86YmVmb3Jle2NvbnRlbnQ6XCJcXGYyOGNcIn0uZmEtc3RvcC1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyOGRcIn0uZmEtc3RvcC1jaXJjbGUtbzpiZWZvcmV7Y29udGVudDpcIlxcZjI4ZVwifS5mYS1zaG9wcGluZy1iYWc6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyOTBcIn0uZmEtc2hvcHBpbmctYmFza2V0OmJlZm9yZXtjb250ZW50OlwiXFxmMjkxXCJ9LmZhLWhhc2h0YWc6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyOTJcIn0uZmEtYmx1ZXRvb3RoOmJlZm9yZXtjb250ZW50OlwiXFxmMjkzXCJ9LmZhLWJsdWV0b290aC1iOmJlZm9yZXtjb250ZW50OlwiXFxmMjk0XCJ9LmZhLXBlcmNlbnQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyOTVcIn0uZmEtZ2l0bGFiOmJlZm9yZXtjb250ZW50OlwiXFxmMjk2XCJ9LmZhLXdwYmVnaW5uZXI6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyOTdcIn0uZmEtd3Bmb3JtczpiZWZvcmV7Y29udGVudDpcIlxcZjI5OFwifS5mYS1lbnZpcmE6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyOTlcIn0uZmEtdW5pdmVyc2FsLWFjY2VzczpiZWZvcmV7Y29udGVudDpcIlxcZjI5YVwifS5mYS13aGVlbGNoYWlyLWFsdDpiZWZvcmV7Y29udGVudDpcIlxcZjI5YlwifS5mYS1xdWVzdGlvbi1jaXJjbGUtbzpiZWZvcmV7Y29udGVudDpcIlxcZjI5Y1wifS5mYS1ibGluZDpiZWZvcmV7Y29udGVudDpcIlxcZjI5ZFwifS5mYS1hdWRpby1kZXNjcmlwdGlvbjpiZWZvcmV7Y29udGVudDpcIlxcZjI5ZVwifS5mYS12b2x1bWUtY29udHJvbC1waG9uZTpiZWZvcmV7Y29udGVudDpcIlxcZjJhMFwifS5mYS1icmFpbGxlOmJlZm9yZXtjb250ZW50OlwiXFxmMmExXCJ9LmZhLWFzc2lzdGl2ZS1saXN0ZW5pbmctc3lzdGVtczpiZWZvcmV7Y29udGVudDpcIlxcZjJhMlwifS5mYS1hc2wtaW50ZXJwcmV0aW5nOmJlZm9yZSwuZmEtYW1lcmljYW4tc2lnbi1sYW5ndWFnZS1pbnRlcnByZXRpbmc6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyYTNcIn0uZmEtZGVhZm5lc3M6YmVmb3JlLC5mYS1oYXJkLW9mLWhlYXJpbmc6YmVmb3JlLC5mYS1kZWFmOmJlZm9yZXtjb250ZW50OlwiXFxmMmE0XCJ9LmZhLWdsaWRlOmJlZm9yZXtjb250ZW50OlwiXFxmMmE1XCJ9LmZhLWdsaWRlLWc6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyYTZcIn0uZmEtc2lnbmluZzpiZWZvcmUsLmZhLXNpZ24tbGFuZ3VhZ2U6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyYTdcIn0uZmEtbG93LXZpc2lvbjpiZWZvcmV7Y29udGVudDpcIlxcZjJhOFwifS5mYS12aWFkZW86YmVmb3Jle2NvbnRlbnQ6XCJcXGYyYTlcIn0uZmEtdmlhZGVvLXNxdWFyZTpiZWZvcmV7Y29udGVudDpcIlxcZjJhYVwifS5mYS1zbmFwY2hhdDpiZWZvcmV7Y29udGVudDpcIlxcZjJhYlwifS5mYS1zbmFwY2hhdC1naG9zdDpiZWZvcmV7Y29udGVudDpcIlxcZjJhY1wifS5mYS1zbmFwY2hhdC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyYWRcIn0uZmEtcGllZC1waXBlcjpiZWZvcmV7Y29udGVudDpcIlxcZjJhZVwifS5mYS1maXJzdC1vcmRlcjpiZWZvcmV7Y29udGVudDpcIlxcZjJiMFwifS5mYS15b2FzdDpiZWZvcmV7Y29udGVudDpcIlxcZjJiMVwifS5mYS10aGVtZWlzbGU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyYjJcIn0uZmEtZ29vZ2xlLXBsdXMtY2lyY2xlOmJlZm9yZSwuZmEtZ29vZ2xlLXBsdXMtb2ZmaWNpYWw6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyYjNcIn0uZmEtZmE6YmVmb3JlLC5mYS1mb250LWF3ZXNvbWU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyYjRcIn0uZmEtaGFuZHNoYWtlLW86YmVmb3Jle2NvbnRlbnQ6XCJcXGYyYjVcIn0uZmEtZW52ZWxvcGUtb3BlbjpiZWZvcmV7Y29udGVudDpcIlxcZjJiNlwifS5mYS1lbnZlbG9wZS1vcGVuLW86YmVmb3Jle2NvbnRlbnQ6XCJcXGYyYjdcIn0uZmEtbGlub2RlOmJlZm9yZXtjb250ZW50OlwiXFxmMmI4XCJ9LmZhLWFkZHJlc3MtYm9vazpiZWZvcmV7Y29udGVudDpcIlxcZjJiOVwifS5mYS1hZGRyZXNzLWJvb2stbzpiZWZvcmV7Y29udGVudDpcIlxcZjJiYVwifS5mYS12Y2FyZDpiZWZvcmUsLmZhLWFkZHJlc3MtY2FyZDpiZWZvcmV7Y29udGVudDpcIlxcZjJiYlwifS5mYS12Y2FyZC1vOmJlZm9yZSwuZmEtYWRkcmVzcy1jYXJkLW86YmVmb3Jle2NvbnRlbnQ6XCJcXGYyYmNcIn0uZmEtdXNlci1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyYmRcIn0uZmEtdXNlci1jaXJjbGUtbzpiZWZvcmV7Y29udGVudDpcIlxcZjJiZVwifS5mYS11c2VyLW86YmVmb3Jle2NvbnRlbnQ6XCJcXGYyYzBcIn0uZmEtaWQtYmFkZ2U6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyYzFcIn0uZmEtZHJpdmVycy1saWNlbnNlOmJlZm9yZSwuZmEtaWQtY2FyZDpiZWZvcmV7Y29udGVudDpcIlxcZjJjMlwifS5mYS1kcml2ZXJzLWxpY2Vuc2UtbzpiZWZvcmUsLmZhLWlkLWNhcmQtbzpiZWZvcmV7Y29udGVudDpcIlxcZjJjM1wifS5mYS1xdW9yYTpiZWZvcmV7Y29udGVudDpcIlxcZjJjNFwifS5mYS1mcmVlLWNvZGUtY2FtcDpiZWZvcmV7Y29udGVudDpcIlxcZjJjNVwifS5mYS10ZWxlZ3JhbTpiZWZvcmV7Y29udGVudDpcIlxcZjJjNlwifS5mYS10aGVybW9tZXRlci00OmJlZm9yZSwuZmEtdGhlcm1vbWV0ZXI6YmVmb3JlLC5mYS10aGVybW9tZXRlci1mdWxsOmJlZm9yZXtjb250ZW50OlwiXFxmMmM3XCJ9LmZhLXRoZXJtb21ldGVyLTM6YmVmb3JlLC5mYS10aGVybW9tZXRlci10aHJlZS1xdWFydGVyczpiZWZvcmV7Y29udGVudDpcIlxcZjJjOFwifS5mYS10aGVybW9tZXRlci0yOmJlZm9yZSwuZmEtdGhlcm1vbWV0ZXItaGFsZjpiZWZvcmV7Y29udGVudDpcIlxcZjJjOVwifS5mYS10aGVybW9tZXRlci0xOmJlZm9yZSwuZmEtdGhlcm1vbWV0ZXItcXVhcnRlcjpiZWZvcmV7Y29udGVudDpcIlxcZjJjYVwifS5mYS10aGVybW9tZXRlci0wOmJlZm9yZSwuZmEtdGhlcm1vbWV0ZXItZW1wdHk6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyY2JcIn0uZmEtc2hvd2VyOmJlZm9yZXtjb250ZW50OlwiXFxmMmNjXCJ9LmZhLWJhdGh0dWI6YmVmb3JlLC5mYS1zMTU6YmVmb3JlLC5mYS1iYXRoOmJlZm9yZXtjb250ZW50OlwiXFxmMmNkXCJ9LmZhLXBvZGNhc3Q6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyY2VcIn0uZmEtd2luZG93LW1heGltaXplOmJlZm9yZXtjb250ZW50OlwiXFxmMmQwXCJ9LmZhLXdpbmRvdy1taW5pbWl6ZTpiZWZvcmV7Y29udGVudDpcIlxcZjJkMVwifS5mYS13aW5kb3ctcmVzdG9yZTpiZWZvcmV7Y29udGVudDpcIlxcZjJkMlwifS5mYS10aW1lcy1yZWN0YW5nbGU6YmVmb3JlLC5mYS13aW5kb3ctY2xvc2U6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyZDNcIn0uZmEtdGltZXMtcmVjdGFuZ2xlLW86YmVmb3JlLC5mYS13aW5kb3ctY2xvc2UtbzpiZWZvcmV7Y29udGVudDpcIlxcZjJkNFwifS5mYS1iYW5kY2FtcDpiZWZvcmV7Y29udGVudDpcIlxcZjJkNVwifS5mYS1ncmF2OmJlZm9yZXtjb250ZW50OlwiXFxmMmQ2XCJ9LmZhLWV0c3k6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyZDdcIn0uZmEtaW1kYjpiZWZvcmV7Y29udGVudDpcIlxcZjJkOFwifS5mYS1yYXZlbHJ5OmJlZm9yZXtjb250ZW50OlwiXFxmMmQ5XCJ9LmZhLWVlcmNhc3Q6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyZGFcIn0uZmEtbWljcm9jaGlwOmJlZm9yZXtjb250ZW50OlwiXFxmMmRiXCJ9LmZhLXNub3dmbGFrZS1vOmJlZm9yZXtjb250ZW50OlwiXFxmMmRjXCJ9LmZhLXN1cGVycG93ZXJzOmJlZm9yZXtjb250ZW50OlwiXFxmMmRkXCJ9LmZhLXdwZXhwbG9yZXI6YmVmb3Jle2NvbnRlbnQ6XCJcXGYyZGVcIn0uZmEtbWVldHVwOmJlZm9yZXtjb250ZW50OlwiXFxmMmUwXCJ9LnNyLW9ubHl7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O2hlaWdodDoxcHg7cGFkZGluZzowO21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtjbGlwOnJlY3QoMCwgMCwgMCwgMCk7Ym9yZGVyOjB9LnNyLW9ubHktZm9jdXNhYmxlOmFjdGl2ZSwuc3Itb25seS1mb2N1c2FibGU6Zm9jdXN7cG9zaXRpb246c3RhdGljO3dpZHRoOmF1dG87aGVpZ2h0OmF1dG87bWFyZ2luOjA7b3ZlcmZsb3c6dmlzaWJsZTtjbGlwOmF1dG99XG4iLCIvKiBTbGlkZXIgKi9cblxuLnNsaWNrLXNsaWRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgICB0b3VjaC1hY3Rpb246IHBhbi15O1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uc2xpY2stbGlzdCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICAmLmRyYWdnaW5nIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBjdXJzb3I6IGhhbmQ7XG4gICAgfVxufVxuLnNsaWNrLXNsaWRlciAuc2xpY2stdHJhY2ssXG4uc2xpY2stc2xpZGVyIC5zbGljay1saXN0IHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cblxuLnNsaWNrLXRyYWNrIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAmOmJlZm9yZSxcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxuICAgIC5zbGljay1sb2FkaW5nICYge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxufVxuLnNsaWNrLXNsaWRlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMXB4O1xuICAgIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gICAgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgICYuc2xpY2stbG9hZGluZyBpbWcge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAmLmRyYWdnaW5nIGltZyB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgIC5zbGljay1pbml0aWFsaXplZCAmIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLnNsaWNrLWxvYWRpbmcgJiB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAuc2xpY2stdmVydGljYWwgJiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH1cbn1cbi5zbGljay1hcnJvdy5zbGljay1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vIERlZmF1bHQgVmFyaWFibGVzXG5cbiRzbGljay1mb250LXBhdGg6IFwiLi9mb250cy9cIiAhZGVmYXVsdDtcbiRzbGljay1mb250LWZhbWlseTogXCJzbGlja1wiICFkZWZhdWx0O1xuJHNsaWNrLWxvYWRlci1wYXRoOiBcIi4vXCIgIWRlZmF1bHQ7XG4kc2xpY2stYXJyb3ctY29sb3I6IHdoaXRlICFkZWZhdWx0O1xuJHNsaWNrLWRvdC1jb2xvcjogYmxhY2sgIWRlZmF1bHQ7XG4kc2xpY2stZG90LWNvbG9yLWFjdGl2ZTogJHNsaWNrLWRvdC1jb2xvciAhZGVmYXVsdDtcbiRzbGljay1wcmV2LWNoYXJhY3RlcjogXCLihpBcIiAhZGVmYXVsdDtcbiRzbGljay1uZXh0LWNoYXJhY3RlcjogXCLihpJcIiAhZGVmYXVsdDtcbiRzbGljay1kb3QtY2hhcmFjdGVyOiBcIuKAolwiICFkZWZhdWx0O1xuJHNsaWNrLWRvdC1zaXplOiA2cHggIWRlZmF1bHQ7XG4kc2xpY2stb3BhY2l0eS1kZWZhdWx0OiAwLjc1ICFkZWZhdWx0O1xuJHNsaWNrLW9wYWNpdHktb24taG92ZXI6IDEgIWRlZmF1bHQ7XG4kc2xpY2stb3BhY2l0eS1ub3QtYWN0aXZlOiAwLjI1ICFkZWZhdWx0O1xuXG5AZnVuY3Rpb24gc2xpY2staW1hZ2UtdXJsKCR1cmwpIHtcbiAgICBAaWYgZnVuY3Rpb24tZXhpc3RzKGltYWdlLXVybCkge1xuICAgICAgICBAcmV0dXJuIGltYWdlLXVybCgkdXJsKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgICBAcmV0dXJuIHVybCgkc2xpY2stbG9hZGVyLXBhdGggKyAkdXJsKTtcbiAgICB9XG59XG5cbkBmdW5jdGlvbiBzbGljay1mb250LXVybCgkdXJsKSB7XG4gICAgQGlmIGZ1bmN0aW9uLWV4aXN0cyhmb250LXVybCkge1xuICAgICAgICBAcmV0dXJuIGZvbnQtdXJsKCR1cmwpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAgIEByZXR1cm4gdXJsKCRzbGljay1mb250LXBhdGggKyAkdXJsKTtcbiAgICB9XG59XG5cbi8qIFNsaWRlciAqL1xuXG4uc2xpY2stbGlzdCB7XG4gICAgLnNsaWNrLWxvYWRpbmcgJiB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmYgc2xpY2staW1hZ2UtdXJsKFwiYWpheC1sb2FkZXIuZ2lmXCIpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O1xuICAgIH1cbn1cblxuLyogSWNvbnMgKi9cbkBpZiAkc2xpY2stZm9udC1mYW1pbHkgPT0gXCJzbGlja1wiIHtcbiAgICBAZm9udC1mYWNlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwic2xpY2tcIjtcbiAgICAgICAgc3JjOiBzbGljay1mb250LXVybChcInNsaWNrLmVvdFwiKTtcbiAgICAgICAgc3JjOiBzbGljay1mb250LXVybChcInNsaWNrLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHNsaWNrLWZvbnQtdXJsKFwic2xpY2sud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCBzbGljay1mb250LXVybChcInNsaWNrLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgc2xpY2stZm9udC11cmwoXCJzbGljay5zdmcjc2xpY2tcIikgZm9ybWF0KFwic3ZnXCIpO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgfVxufVxuXG4vKiBBcnJvd3MgKi9cblxuLnNsaWNrLXByZXYsXG4uc2xpY2stbmV4dCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMjBweDtcbiAgICB3aWR0aDogMjBweDtcbiAgICBsaW5lLWhlaWdodDogMHB4O1xuICAgIGZvbnQtc2l6ZTogMHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLTEwcHhcXDk7IC8qbHRlIElFIDgqL1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LW9uLWhvdmVyO1xuICAgICAgICB9XG4gICAgfVxuICAgICYuc2xpY2stZGlzYWJsZWQ6YmVmb3JlIHtcbiAgICAgICAgb3BhY2l0eTogJHNsaWNrLW9wYWNpdHktbm90LWFjdGl2ZTtcbiAgICB9XG59XG5cbi5zbGljay1wcmV2OmJlZm9yZSwgLnNsaWNrLW5leHQ6YmVmb3JlIHtcbiAgICBmb250LWZhbWlseTogJHNsaWNrLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogJHNsaWNrLWFycm93LWNvbG9yO1xuICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LWRlZmF1bHQ7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuLnNsaWNrLXByZXYge1xuICAgIGxlZnQ6IC0yNXB4O1xuICAgIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHJpZ2h0OiAtMjVweDtcbiAgICB9XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkc2xpY2stcHJldi1jaGFyYWN0ZXI7XG4gICAgICAgIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgICAgICAgICBjb250ZW50OiAkc2xpY2stbmV4dC1jaGFyYWN0ZXI7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zbGljay1uZXh0IHtcbiAgICByaWdodDogLTI1cHg7XG4gICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgbGVmdDogLTI1cHg7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgIH1cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRzbGljay1uZXh0LWNoYXJhY3RlcjtcbiAgICAgICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICRzbGljay1wcmV2LWNoYXJhY3RlcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogRG90cyAqL1xuXG4uc2xpY2stc2xpZGVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xufVxuXG4uc2xpY2stZG90cyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogLTQ1cHg7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBsaSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBtYXJnaW46IDAgNXB4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDBweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMHB4O1xuICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LW9uLWhvdmVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgY29udGVudDogJHNsaWNrLWRvdC1jaGFyYWN0ZXI7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkc2xpY2stZm9udC1mYW1pbHk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkc2xpY2stZG90LXNpemU7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2xpY2stZG90LWNvbG9yO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LW5vdC1hY3RpdmU7XG4gICAgICAgICAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAgICAgICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLnNsaWNrLWFjdGl2ZSBidXR0b246YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2xpY2stZG90LWNvbG9yLWFjdGl2ZTtcbiAgICAgICAgICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LWRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmbGV4LWdyaWRcbi8vLy9cblxuLy8vIENyZWF0ZXMgYSBjb250YWluZXIgZm9yIGEgZmxleCBncmlkIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxMaXN0fSAkYmVoYXZpb3IgW251bGxdXG4vLy8gICBNb2RpZmljYXRpb25zIHRvIHRoZSBkZWZhdWx0IGdyaWQgc3R5bGVzLiBgbmVzdGAgaW5kaWNhdGVzIHRoZSByb3cgd2lsbCBiZSBwbGFjZWQgaW5zaWRlIGFub3RoZXIgcm93LiBgY29sbGFwc2VgIGluZGljYXRlcyB0aGF0IHRoZSBjb2x1bW5zIGluc2lkZSB0aGlzIHJvdyB3aWxsIG5vdCBoYXZlIHBhZGRpbmcuIGBuZXN0IGNvbGxhcHNlYCBjb21iaW5lcyBib3RoIGJlaGF2aW9ycy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFskZ3JpZC1yb3ctd2lkdGhdIC0gTWF4aW11bSB3aWR0aCBvZiB0aGUgcm93LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1ucyBbbnVsbF0gLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UgZm9yIHRoaXMgcm93LiBJZiBzZXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCksIHRoZSBnbG9iYWwgY29sdW1uIGNvdW50IHdpbGwgYmUgdXNlZC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRiYXNlIFt0cnVlXSAtIFNldCB0byBgZmFsc2VgIHRvIHByZXZlbnQgYmFzaWMgc3R5bGVzIGZyb20gYmVpbmcgb3V0cHV0LiBVc2VmdWwgaWYgeW91J3JlIGNhbGxpbmcgdGhpcyBtaXhpbiBvbiB0aGUgc2FtZSBlbGVtZW50IHR3aWNlLCBhcyBpdCBwcmV2ZW50cyBkdXBsaWNhdGUgQ1NTIG91dHB1dC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGd1dHRlciBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIG1hcmdpbnMsIGluIGNhc2UgdGhlIHJvdyBpcyBuZXN0ZWQuXG5AbWl4aW4gZmxleC1ncmlkLXJvdyhcbiAgJGJlaGF2aW9yOiBudWxsLFxuICAkd2lkdGg6ICRncmlkLXJvdy13aWR0aCxcbiAgJGNvbHVtbnM6IG51bGwsXG4gICRiYXNlOiB0cnVlLFxuICAkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgJG1hcmdpbjogYXV0bztcblxuICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBuZXN0KSAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1uZXN0KCRndXR0ZXIpO1xuXG4gICAgQGlmIGluZGV4KCRiZWhhdmlvciwgY29sbGFwc2UpICE9IG51bGwge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBtYXgtd2lkdGg6ICR3aWR0aDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cblxuICBAaWYgJGJhc2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgfVxuXG4gIEBpZiAkY29sdW1ucyAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbnRleHQoJGNvbHVtbnMsICRiYXNlKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIENhbGN1bGF0ZXMgdGhlIGBmbGV4YCBwcm9wZXJ0eSBmb3IgYSBmbGV4IGdyaWQgY29sdW1uLiBJdCBhY2NlcHRzIGFsbCBvZiB0aGUgc2FtZSB2YWx1ZXMgYXMgdGhlIGJhc2ljIGBncmlkLWNvbHVtbigpYCBmdW5jdGlvbiwgYWxvbmcgd2l0aCB0d28gZXh0cmFzOlxuLy8vICAgLSBgbnVsbGAgKHRoZSBkZWZhdWx0KSB3aWxsIG1ha2UgdGhlIGNvbHVtbiBleHBhbmQgdG8gZmlsbCBzcGFjZS5cbi8vLyAgIC0gYHNocmlua2Agd2lsbCBtYWtlIHRoZSBjb2x1bW4gY29udHJhY3QsIHNvIGl0IG9ubHkgdGFrZXMgdXAgdGhlIGhvcml6b250YWwgc3BhY2UgaXQgbmVlZHMuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbbnVsbF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLlxuQGZ1bmN0aW9uIGZsZXgtZ3JpZC1jb2x1bW4oJGNvbHVtbnM6IG51bGwpIHtcbiAgLy8gc2Nzcy1saW50OmRpc2FibGUgWmVyb1VuaXRcbiAgJGZsZXg6IDEgMSAwcHg7XG5cbiAgQGlmICRjb2x1bW5zID09IHNocmluayB7XG4gICAgJGZsZXg6IDAgMCBhdXRvO1xuICB9XG4gIEBlbHNlIGlmICRjb2x1bW5zICE9IG51bGwge1xuICAgICRmbGV4OiAwIDAgZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xuICB9XG5cbiAgQHJldHVybiAkZmxleDtcbn1cblxuLy8vIENyZWF0ZXMgYSBjb2x1bW4gZm9yIGEgZmxleCBncmlkLiBCeSBkZWZhdWx0LCB0aGUgY29sdW1uIHdpbGwgc3RyZXRjaCB0byB0aGUgZnVsbCB3aWR0aCBvZiBpdHMgY29udGFpbmVyLCBidXQgdGhpcyBjYW4gYmUgb3ZlcnJpZGRlbiB3aXRoIHNpemluZyBjbGFzc2VzLCBvciBieSB1c2luZyB0aGUgYHVuc3RhY2tgIGNsYXNzIG9uIHRoZSBwYXJlbnQgZmxleCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbbnVsbF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLiBSZWZlciB0byB0aGUgYGZsZXgtZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGd1dHRlciBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBTcGFjZSBiZXR3ZWVuIGNvbHVtbnMsIGFkZGVkIGFzIGEgbGVmdCBhbmQgcmlnaHQgcGFkZGluZy5cbkBtaXhpbiBmbGV4LWdyaWQtY29sdW1uKFxuICAkY29sdW1uczogbnVsbCxcbiAgJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIC8vIEJhc2UgcHJvcGVydGllc1xuICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCRjb2x1bW5zKTtcblxuICAvLyBHdXR0ZXJzXG4gIEBpZiB0eXBlLW9mKCRndXR0ZXIpID09ICdtYXAnIHtcbiAgICBAZWFjaCAkYnJlYWtwb2ludCwgJHZhbHVlIGluICRndXR0ZXIge1xuICAgICAgJHBhZGRpbmc6IHJlbS1jYWxjKCR2YWx1ZSkgLyAyO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicmVha3BvaW50KSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiB0eXBlLW9mKCRndXR0ZXIpID09ICdudW1iZXInIGFuZCBzdHJpcC11bml0KCRndXR0ZXIpID4gMCB7XG4gICAgJHBhZGRpbmc6IHJlbS1jYWxjKCRndXR0ZXIpIC8gMjtcbiAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICB9XG5cbiAgLy8gZml4ZXMgcmVjZW50IENocm9tZSB2ZXJzaW9uIG5vdCBsaW1pdGluZyBjaGlsZCB3aWR0aFxuICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zNDkzNDU4Ni93aGl0ZS1zcGFjZS1ub3dyYXAtYW5kLWZsZXhib3gtZGlkLW5vdC13b3JrLWluLWNocm9tZVxuICBAaWYgJGNvbHVtbnMgPT0gbnVsbCB7XG4gICAgbWluLXdpZHRoOiBpbml0aWFsO1xuICB9XG4gIC8vIG1heC13aWR0aCBmaXhlcyBJRSAxMC8xMSBub3QgcmVzcGVjdGluZyB0aGUgZmxleC1iYXNpcyBwcm9wZXJ0eVxuICBAaWYgJGNvbHVtbnMgIT0gbnVsbCBhbmQgJGNvbHVtbnMgIT0gc2hyaW5rIHtcbiAgICBtYXgtd2lkdGg6IGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGJsb2NrIGdyaWQgZm9yIGEgZmxleCBncmlkIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbiAtIE51bWJlciBvZiBjb2x1bW5zIHRvIGRpc3BsYXkgb24gZWFjaCByb3cuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciAtIFNlbGVjdG9yIHRvIHVzZSB0byB0YXJnZXQgY29sdW1ucyB3aXRoaW4gdGhlIHJvdy5cbkBtaXhpbiBmbGV4LWdyaWQtbGF5b3V0KFxuICAkbixcbiAgJHNlbGVjdG9yOiAnLmNvbHVtbidcbikge1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgPiAjeyRzZWxlY3Rvcn0ge1xuICAgICRwY3Q6IHBlcmNlbnRhZ2UoMS8kbik7XG5cbiAgICBmbGV4OiAwIDAgJHBjdDtcbiAgICBtYXgtd2lkdGg6ICRwY3Q7XG4gIH1cbn1cblxuLy8vIENoYW5nZXMgdGhlIHNvdXJjZSBvcmRlciBvZiBhIGZsZXggZ3JpZCBjb2x1bW4uIENvbHVtbnMgd2l0aCBsb3dlciBudW1iZXJzIGFwcGVhciBmaXJzdCBpbiB0aGUgbGF5b3V0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb3JkZXIgWzBdIC0gT3JkZXIgbnVtYmVyIHRvIGFwcGx5LlxuQG1peGluIGZsZXgtZ3JpZC1vcmRlcigkb3JkZXI6IDApIHtcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgZmxleC1vcmRlcigpLiBmbGV4LWdyaWQtb3JkZXIoKSB3aWxsIGJlIHJlbW92ZWQgaW4gRm91bmRhdGlvbiA2LjMuJztcbiAgQGluY2x1ZGUgZmxleC1vcmRlcigkb3JkZXIpO1xufVxuXG4vLy8gSG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkgYWxpZ25zIHRoZSBjb2x1bW5zIHdpdGhpbiBhIGZsZXggcm93LiBBcHBseSB0aGlzIG1peGluIHRvIGEgZmxleCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR4IFtudWxsXSAtIEhvcml6b250YWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGBsZWZ0YCwgYHJpZ2h0YCwgYGNlbnRlcmAsIGBqdXN0aWZ5YCwgb3IgYHNwYWNlZGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCBob3Jpem9udGFsIGFsaWdubWVudC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR5IFtudWxsXSAtIFZlcnRpY2FsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgdG9wYCwgYGJvdHRvbWAsIGBtaWRkbGVgLCBvciBgc3RyZXRjaGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCB2ZXJ0aWNhbCBhbGlnbm1lbnQuXG5AbWl4aW4gZmxleC1ncmlkLXJvdy1hbGlnbigkeDogbnVsbCwgJHk6IG51bGwpIHtcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgZmxleC1hbGlnbigpLiBmbGV4LWdyaWQtcm93LWFsaWduKCkgd2lsbCBiZSByZW1vdmVkIGluIEZvdW5kYXRpb24gNi4zLic7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHgsICR5KTtcbn1cblxuLy8vIFZlcnRpY2FsbHkgYWxpZ24gYSBzaW5nbGUgY29sdW1uIHdpdGhpbiBhIGZsZXggcm93LiBBcHBseSB0aGlzIG1peGluIHRvIGEgZmxleCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR5IFtudWxsXSAtIFZlcnRpY2FsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgdG9wYCwgYGJvdHRvbWAsIGBtaWRkbGVgLCBvciBgc3RyZXRjaGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCB2ZXJ0aWNhbCBhbGlnbm1lbnQuXG5AbWl4aW4gZmxleC1ncmlkLWNvbHVtbi1hbGlnbigkeTogbnVsbCkge1xuICBAd2FybiAnVGhpcyBtaXhpbiBpcyBiZWluZyByZXBsYWNlZCBieSBmbGV4LWFsaWduLXNlbGYoKS4gZmxleC1ncmlkLWNvbHVtbi1hbGlnbigpIHdpbGwgYmUgcmVtb3ZlZCBpbiBGb3VuZGF0aW9uIDYuMy4nO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLXNlbGYoJHkpO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mbGV4LWdyaWQge1xuICAvLyBSb3dcbiAgLnJvdyB7XG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdztcblxuICAgIC8vIE5lc3RpbmcgYmVoYXZpb3JcbiAgICAmICYge1xuICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdyhuZXN0LCAkYmFzZTogZmFsc2UpO1xuICAgIH1cblxuICAgIC8vIEV4cGFuZGVkIHJvd1xuICAgICYuZXhwYW5kZWQge1xuICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cblxuICAgICYuY29sbGFwc2Uge1xuICAgICAgPiAuY29sdW1uIHsgQGluY2x1ZGUgZ3JpZC1jb2wtY29sbGFwc2U7IH1cbiAgICB9XG4gIH1cblxuICAvLyBDb2x1bW5cbiAgLmNvbHVtbiB7XG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbjtcbiAgfVxuXG4gIC8vIENvbHVtbiByb3dcbiAgLy8gVGhlIGRvdWJsZSAucm93IGNsYXNzIGlzIG5lZWRlZCB0byBidW1wIHVwIHRoZSBzcGVjaWZpY2l0eVxuICAuY29sdW1uLnJvdy5yb3cge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgLy8gVG8gcHJvcGVybHkgbmVzdCBhIGNvbHVtbiByb3csIHBhZGRpbmcgYW5kIG1hcmdpbiBpcyByZW1vdmVkXG4gICAgLnJvdyAmIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbi1jb3VudCB7XG4gICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAuI3skLXpmLXNpemV9LSN7JGl9IHtcbiAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigkaSk7XG4gICAgICAgIG1heC13aWR0aDogZ3JpZC1jb2x1bW4oJGkpO1xuICAgICAgfVxuXG4gICAgICAvLyBPZmZzZXRzXG4gICAgICAkbzogJGkgLSAxO1xuXG4gICAgICAuI3skLXpmLXNpemV9LW9mZnNldC0jeyRvfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLW9mZnNldCgkbyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU291cmNlIG9yZGVyaW5nXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCA2IHtcbiAgICAgIC4jeyQtemYtc2l6ZX0tb3JkZXItI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LW9yZGVyKCRpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCbG9jayBncmlkXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkYmxvY2stZ3JpZC1tYXgge1xuICAgICAgLiN7JC16Zi1zaXplfS11cC0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1sYXlvdXQoJGkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkLXpmLXNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgLy8gU2l6aW5nIChleHBhbmQpXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtc2l6ZSkge1xuICAgICAgICAuI3skLXpmLXNpemV9LWV4cGFuZCB7XG4gICAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEF1dG8tc3RhY2tpbmcvdW5zdGFja2luZ1xuICAgICAgQGF0LXJvb3QgKHdpdGhvdXQ6IG1lZGlhKSB7XG4gICAgICAgIC5yb3cuI3skLXpmLXNpemV9LXVuc3RhY2sge1xuICAgICAgICAgID4gLmNvbHVtbiB7XG4gICAgICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKDEwMCUpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtc2l6ZSkge1xuICAgICAgICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSBjb2xsYXBzaW5nXG4gICAgLiN7JC16Zi1zaXplfS1jb2xsYXBzZSB7XG4gICAgICA+IC5jb2x1bW4geyBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTsgfVxuICAgIH1cblxuICAgIC4jeyQtemYtc2l6ZX0tdW5jb2xsYXBzZSB7XG4gICAgICAkZ3V0dGVyOiAtemYtZ2V0LWJwLXZhbCgkZ3JpZC1jb2x1bW4tZ3V0dGVyLCAkLXpmLXNpemUpO1xuXG4gICAgICA+IC5jb2x1bW4geyBAaW5jbHVkZSBncmlkLWNvbC11bmNvbGxhcHNlKCRndXR0ZXIpOyB9XG4gICAgfVxuICB9XG5cbiAgLy8gU2l6aW5nIChzaHJpbmspXG4gIC5zaHJpbmsge1xuICAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oc2hyaW5rKTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cblxuICAvLyBWZXJ0aWNhbCBhbGlnbm1lbnQgdXNpbmcgYWxpZ24taXRlbXMgYW5kIGFsaWduLXNlbGZcbiAgLy8gUmVtb3ZlIHRoZXNlIGluIDYuM1xuICBAZWFjaCAkdmRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWFsaWduIHtcbiAgICAuY29sdW1uLmFsaWduLSN7JHZkaXJ9IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZigkdmRpcik7XG4gICAgfVxuICB9XG5cbiAgLmNvbHVtbnMge1xuICAgIC8vIHNjc3MtbGludDpkaXNhYmxlIFBsYWNlaG9sZGVySW5FeHRlbmRcbiAgICBAZXh0ZW5kIC5jb2x1bW47XG4gIH1cbn1cbiIsbnVsbCwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gQ2hhbmdlIHRoZSBiZWhhdmlvciBvZiBjb2x1bW5zIGRlZmluZWQgaW5zaWRlIHRoaXMgbWl4aW4gdG8gdXNlIGEgZGlmZmVyZW50IGNvbHVtbiBjb3VudC5cbi8vLyBAY29udGVudFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHJvb3QgW2ZhbHNlXVxuLy8vICAgSWYgYGZhbHNlYCwgc2VsZWN0b3JzIGluc2lkZSB0aGlzIG1peGluIHdpbGwgbmVzdCBpbnNpZGUgdGhlIHBhcmVudCBzZWxlY3Rvci5cbi8vLyAgIElmIGB0cnVlYCwgc2VsZWN0b3JzIHdpbGwgbm90IG5lc3QuXG5AbWl4aW4gZ3JpZC1jb250ZXh0KFxuICAkY29sdW1ucyxcbiAgJHJvb3Q6IGZhbHNlXG4pIHtcbiAgLy8gU3RvcmUgdGhlIGN1cnJlbnQgY29sdW1uIGNvdW50IHNvIGl0IGNhbiBiZSByZS1zZXQgbGF0ZXJcbiAgJG9sZC1ncmlkLWNvbHVtbi1jb3VudDogJGdyaWQtY29sdW1uLWNvdW50O1xuICAkZ3JpZC1jb2x1bW4tY291bnQ6ICRjb2x1bW5zICFnbG9iYWw7XG5cbiAgQGlmICRyb290IHtcbiAgICBAYXQtcm9vdCB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgLy8gUmVzdG9yZSB0aGUgb2xkIGNvbHVtbiBjb3VudFxuICAkZ3JpZC1jb2x1bW4tY291bnQ6ICRvbGQtZ3JpZC1jb2x1bW4tY291bnQ7XG59XG5cbi8vLyBDcmVhdGVzIGEgZ3JpZCByb3cuXG4vLy8gQGNvbnRlbnRcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1ucyBbbnVsbF0gLSBDb2x1bW4gY291bnQgZm9yIHRoaXMgcm93LiBgbnVsbGAgd2lsbCB1c2UgdGhlIGRlZmF1bHQgY29sdW1uIGNvdW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZHN9ICRiZWhhdmlvciBbbnVsbF1cbi8vLyAgIE1vZGlmaWNhdGlvbnMgdG8gdGhlIGRlZmF1bHQgZ3JpZCBzdHlsZXMuIGBuZXN0YCBpbmRpY2F0ZXMgdGhlIHJvdyB3aWxsIGJlIHBsYWNlZCBpbnNpZGUgYW5vdGhlciByb3cuIGBjb2xsYXBzZWAgaW5kaWNhdGVzIHRoYXQgdGhlIGNvbHVtbnMgaW5zaWRlIHRoaXMgcm93IHdpbGwgbm90IGhhdmUgcGFkZGluZy4gYG5lc3QgY29sbGFwc2VgIGNvbWJpbmVzIGJvdGggYmVoYXZpb3JzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWyRncmlkLXJvdy13aWR0aF0gLSBNYXhpbXVtIHdpZHRoIG9mIHRoZSByb3cuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkY2YgW3RydWVdIC0gV2hldGhlciBvciBub3QgdG8gaW5jbHVkZSBhIGNsZWFyZml4LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZ3V0dGVyIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciB0byB1c2Ugd2hlbiBpbnZlcnRpbmcgbWFyZ2lucywgaW4gY2FzZSB0aGUgcm93IGlzIG5lc3RlZC5cbkBtaXhpbiBncmlkLXJvdyhcbiAgJGNvbHVtbnM6IG51bGwsXG4gICRiZWhhdmlvcjogbnVsbCxcbiAgJHdpZHRoOiAkZ3JpZC1yb3ctd2lkdGgsXG4gICRjZjogdHJ1ZSxcbiAgJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gICRtYXJnaW46IGF1dG87XG5cbiAgQGlmIGluZGV4KCRiZWhhdmlvciwgbmVzdCkgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctbmVzdCgkZ3V0dGVyKTtcblxuICAgIEBpZiBpbmRleCgkYmVoYXZpb3IsIGNvbGxhcHNlKSAhPSBudWxsIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgbWF4LXdpZHRoOiAkd2lkdGg7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG5cbiAgQGlmICRjZiB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cblxuICBAaWYgJGNvbHVtbnMgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb250ZXh0KCRjb2x1bW5zKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEludmVydHMgdGhlIG1hcmdpbnMgb2YgYSByb3cgdG8gbmVzdCBpdCBpbnNpZGUgb2YgYSBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge01hcHxudWxsfSAkZ3V0dGVyIFtudWxsXSAtIEd1dHRlciB2YWx1ZSB0byB1c2Ugd2hlbiBpbnZlcnRpbmcgdGhlIG1hcmdpbnMuIFNldCB0byBgbnVsbGAgdG8gcmVmZXIgdG8gdGhlIHJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzLlxuQG1peGluIGdyaWQtcm93LW5lc3QoJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlcikge1xuICBAaWYgdHlwZS1vZigkZ3V0dGVyKSA9PSAnbnVtYmVyJyB7XG4gICAgJGd1dHRlcjogKCQtemYtemVyby1icmVha3BvaW50OiAkZ3V0dGVyKTtcbiAgfVxuICBtYXgtd2lkdGg6IG5vbmU7XG5cbiAgQGVhY2ggJGJyZWFrcG9pbnQsICR2YWx1ZSBpbiAkZ3V0dGVyIHtcbiAgICAkbWFyZ2luOiByZW0tY2FsYygkdmFsdWUpIC8gMiAqIC0xO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnJlYWtwb2ludCkge1xuICAgICAgbWFyZ2luLWxlZnQ6ICRtYXJnaW47XG4gICAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnaW47XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVha3BvaW50c1xuLy8vL1xuXG4vLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxuXG4vLy8gQSBsaXN0IG9mIG5hbWVkIGJyZWFrcG9pbnRzLiBZb3UgY2FuIHVzZSB0aGVzZSB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBxdWlja2x5IGNyZWF0ZSBtZWRpYSBxdWVyaWVzLlxuLy8vIEB0eXBlIE1hcFxuJGJyZWFrcG9pbnRzOiAoXG4gIHNtYWxsOiAwLFxuICBtZWRpdW06IDY0MHB4LFxuICBsYXJnZTogMTAyNHB4LFxuICB4bGFyZ2U6IDEyMDBweCxcbiAgeHhsYXJnZTogMTQ0MHB4LFxuKSAhZGVmYXVsdDtcblxuJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IHNtYWxsICFkZWZhdWx0O1xuXG5AaWYgbnRoKG1hcC12YWx1ZXMoJGJyZWFrcG9pbnRzKSwgMSkgIT0gMCB7XG4gIEBlcnJvciAnWW91ciBzbWFsbGVzdCBicmVha3BvaW50IChkZWZpbmVkIGluICRicmVha3BvaW50cykgbXVzdCBiZSBzZXQgdG8gXCIwXCIuJztcbn1cbkBlbHNlIHtcbiAgJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IG50aChtYXAta2V5cygkYnJlYWtwb2ludHMpLCAxKTtcbn1cblxuLy8vIEFsbCBvZiB0aGUgbmFtZXMgaW4gdGhpcyBsaXN0IHdpbGwgYmUgb3V0cHV0IGFzIGNsYXNzZXMgaW4geW91ciBDU1MsIGxpa2UgYC5zbWFsbC0xMmAsIGAubWVkaXVtLTZgLCBhbmQgc28gb24uIEVhY2ggdmFsdWUgaW4gdGhpcyBsaXN0IG11c3QgYWxzbyBiZSBpbiB0aGUgYCRicmVha3BvaW50c2AgbWFwLlxuLy8vIEB0eXBlIExpc3RcbiRicmVha3BvaW50LWNsYXNzZXM6IChzbWFsbCBtZWRpdW0gbGFyZ2UpICFkZWZhdWx0O1xuXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgc3RyaW5nIG1hdGNoaW5nIHRoZSBpbnB1dCB2YWx1ZS4gUmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBzZWUgd2hhdCB0aGUgcG9zc2libGUgaW5wdXRzIGFyZS5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICR2YWwgW3NtYWxsXSAtIEJyZWFrcG9pbnQgbmFtZSwgb3IgcHgsIHJlbSwgb3IgZW0gdmFsdWUgdG8gcHJvY2Vzcy5cbkBmdW5jdGlvbiBicmVha3BvaW50KCR2YWw6ICQtemYtemVyby1icmVha3BvaW50KSB7XG4gIC8vIFNpemUgb3Iga2V5d29yZFxuICAkYnA6IG50aCgkdmFsLCAxKTtcbiAgLy8gVmFsdWUgZm9yIG1heC13aWR0aCBtZWRpYSBxdWVyaWVzXG4gICRicC1tYXg6IDA7XG4gIC8vIERpcmVjdGlvbiBvZiBtZWRpYSBxdWVyeSAodXAsIGRvd24sIG9yIG9ubHkpXG4gICRkaXI6IGlmKGxlbmd0aCgkdmFsKSA+IDEsIG50aCgkdmFsLCAyKSwgdXApO1xuICAvLyBFdmVudHVhbCBvdXRwdXRcbiAgJHN0cjogJyc7XG4gIC8vIElzIGl0IGEgbmFtZWQgbWVkaWEgcXVlcnk/XG4gICRuYW1lZDogZmFsc2U7XG5cbiAgLy8gT3JpZW50YXRpb24gbWVkaWEgcXVlcmllcyBoYXZlIGEgdW5pcXVlIHN5bnRheFxuICBAaWYgJGJwID09ICdsYW5kc2NhcGUnIG9yICRicCA9PSAncG9ydHJhaXQnIHtcbiAgICBAcmV0dXJuICcob3JpZW50YXRpb246ICN7JGJwfSknO1xuICB9XG4gIEBlbHNlIGlmICRicCA9PSAncmV0aW5hJyB7XG4gICAgQHJldHVybiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSc7XG4gIH1cblxuICAvLyBUcnkgdG8gcHVsbCBhIG5hbWVkIGJyZWFrcG9pbnQgb3V0IG9mIHRoZSAkYnJlYWtwb2ludHMgbWFwXG4gIEBpZiB0eXBlLW9mKCRicCkgPT0gJ3N0cmluZycge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRicCkge1xuICAgICAgQGlmICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAgICAgJGJwLW1heDogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJGJwKTtcbiAgICAgIH1cblxuICAgICAgJGJwOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGJwKTtcbiAgICAgICRuYW1lZDogdHJ1ZTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGJwOiAwO1xuICAgICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogXCIjeyR2YWx9XCIgaXMgbm90IGRlZmluZWQgaW4geW91ciAkYnJlYWtwb2ludHMgc2V0dGluZy4nO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvbnZlcnQgYW55IHBpeGVsLCByZW0sIG9yIHVuaXRsZXNzIHZhbHVlIHRvIGVtXG4gICRicDogLXpmLWJwLXRvLWVtKCRicCk7XG4gIEBpZiAkYnAtbWF4IHtcbiAgICAkYnAtbWF4OiAtemYtYnAtdG8tZW0oJGJwLW1heCkgLSAoMS8xNik7XG4gIH1cblxuICAvLyBDb25kaXRpb25zIHRvIHNraXAgbWVkaWEgcXVlcnkgY3JlYXRpb25cbiAgLy8gLSBJdCdzIGEgbmFtZWQgYnJlYWtwb2ludCB0aGF0IHJlc29sdmVkIHRvIFwiMCBkb3duXCIgb3IgXCIwIHVwXCJcbiAgLy8gLSBJdCdzIGEgbnVtZXJpYyBicmVha3BvaW50IHRoYXQgcmVzb2x2ZWQgdG8gXCIwIFwiICsgYW55dGhpbmdcbiAgQGlmICRicCA+IDBlbSBvciAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICdkb3duJyB7XG4gICAgLy8gYG9ubHlgIHJhbmdlcyB1c2UgdGhlIGZvcm1hdCBgKG1pbi13aWR0aDogbikgYW5kIChtYXgtd2lkdGg6IG4pYFxuICAgIEBpZiAkZGlyID09ICdvbmx5JyB7XG4gICAgICAvLyBPbmx5IG5hbWVkIG1lZGlhIHF1ZXJpZXMgY2FuIGhhdmUgYW4gXCJvbmx5XCIgcmFuZ2VcbiAgICAgIEBpZiAkbmFtZWQgPT0gdHJ1ZSB7XG4gICAgICAgIC8vIE9ubHkgdXNlIFwibWluLXdpZHRoXCIgaWYgdGhlIGZsb29yIGlzIGdyZWF0ZXIgdGhhbiAwXG4gICAgICAgIEBpZiAkYnAgPiAwZW0ge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1pbi13aWR0aDogI3skYnB9KSc7XG5cbiAgICAgICAgICAvLyBPbmx5IGFkZCBcImFuZFwiIHRvIHRoZSBtZWRpYSBxdWVyeSBpZiB0aGVyZSdzIGEgY2VpbGluZ1xuICAgICAgICAgIEBpZiAkYnAtbWF4ICE9IG51bGwge1xuICAgICAgICAgICAgJHN0cjogJHN0ciArICcgYW5kICc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gT25seSB1c2UgXCJtYXgtd2lkdGhcIiBpZiB0aGVyZSdzIGEgY2VpbGluZ1xuICAgICAgICBAaWYgJGJwLW1heCAhPSBudWxsIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtYXgtd2lkdGg6ICN7JGJwLW1heH0pJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBPbmx5IG5hbWVkIG1lZGlhIHF1ZXJpZXMgY2FuIGhhdmUgYW4gYG9ubHlgIHJhbmdlLic7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYGRvd25gIHJhbmdlcyB1c2UgdGhlIGZvcm1hdCBgKG1heC13aWR0aDogbilgXG4gICAgQGVsc2UgaWYgJGRpciA9PSAnZG93bicge1xuICAgICAgJG1heDogaWYoJG5hbWVkLCAkYnAtbWF4LCAkYnApO1xuXG4gICAgICAvLyBTa2lwIG1lZGlhIHF1ZXJ5IGNyZWF0aW9uIGlmIGlucHV0IHZhbHVlIGlzIGV4YWN0bHkgXCIwIGRvd25cIixcbiAgICAgIC8vIHVubGVzcyB0aGUgZnVuY3Rpb24gd2FzIGNhbGxlZCBhcyBcInNtYWxsIGRvd25cIiwgaW4gd2hpY2ggY2FzZSBpdCdzIGp1c3QgXCJzbWFsbCBvbmx5XCJcbiAgICAgIEBpZiAkbmFtZWQgb3IgJGJwID4gMGVtIHtcbiAgICAgICAgQGlmICRtYXggIT0gbnVsbCB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWF4LXdpZHRoOiAjeyRtYXh9KSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBgdXBgIHJhbmdlcyB1c2UgdGhlIGZvcm1hdCBgKG1pbi13aWR0aDogbilgXG4gICAgQGVsc2UgaWYgJGJwID4gMGVtIHtcbiAgICAgICRzdHI6ICRzdHIgKyAnKG1pbi13aWR0aDogI3skYnB9KSc7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkc3RyO1xufVxuXG4vLy8gV3JhcHMgYSBtZWRpYSBxdWVyeSBhcm91bmQgdGhlIGNvbnRlbnQgeW91IHB1dCBpbnNpZGUgdGhlIG1peGluLiBUaGlzIG1peGluIGFjY2VwdHMgYSBudW1iZXIgb2YgdmFsdWVzOlxuLy8vICAtIElmIGEgc3RyaW5nIGlzIHBhc3NlZCwgdGhlIG1peGluIHdpbGwgbG9vayBmb3IgaXQgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcCwgYW5kIHVzZSBhIG1lZGlhIHF1ZXJ5IHRoZXJlLlxuLy8vICAtIElmIGEgcGl4ZWwgdmFsdWUgaXMgcGFzc2VkLCBpdCB3aWxsIGJlIGNvbnZlcnRlZCB0byBhbiBlbSB2YWx1ZSB1c2luZyBgJGdsb2JhbC1mb250LXNpemVgIGFzIHRoZSBiYXNlLlxuLy8vICAtIElmIGEgcmVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHVuaXQgd2lsbCBiZSBjaGFuZ2VkIHRvIGVtLlxuLy8vICAtIElmIGFuIGVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHZhbHVlIHdpbGwgYmUgdXNlZCBhcy1pcy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICR2YWx1ZSAtIEJyZWFrcG9pbnQgbmFtZSwgb3IgcHgsIHJlbSwgb3IgZW0gdmFsdWUgdG8gcHJvY2Vzcy5cbi8vL1xuLy8vIEBvdXRwdXQgSWYgdGhlIGJyZWFrcG9pbnQgaXMgXCIwcHggYW5kIGxhcmdlclwiLCBvdXRwdXRzIHRoZSBjb250ZW50IGFzLWlzLiBPdGhlcndpc2UsIG91dHB1dHMgdGhlIGNvbnRlbnQgd3JhcHBlZCBpbiBhIG1lZGlhIHF1ZXJ5LlxuQG1peGluIGJyZWFrcG9pbnQoJHZhbHVlKSB7XG4gICRzdHI6IGJyZWFrcG9pbnQoJHZhbHVlKTtcblxuICAvLyBJZiAkc3RyIGlzIHN0aWxsIGFuIGVtcHR5IHN0cmluZywgbm8gbWVkaWEgcXVlcnkgaXMgbmVlZGVkXG4gIEBpZiAkc3RyID09ICcnIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gIC8vIE90aGVyd2lzZSwgd3JhcCB0aGUgY29udGVudCBpbiBhIG1lZGlhIHF1ZXJ5XG4gIEBlbHNlIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQ29udmVycyB0aGUgYnJlYWtwb2ludHMgbWFwIHRvIGEgVVJMLWVuY29kZWQgc3RyaW5nLCBsaWtlIHRoaXM6IGBrZXkxPXZhbHVlMSZrZXkyPXZhbHVlMmAuIFRoZSB2YWx1ZSBpcyB0aGVuIGRyb3BwZWQgaW50byB0aGUgQ1NTIGZvciBhIHNwZWNpYWwgYDxtZXRhPmAgdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHQuIFRoaXMgaXMgaG93IHdlIHRyYW5zZmVyIHZhbHVlcyBmcm9tIFNhc3MgdG8gSmF2YVNjcmlwdCwgc28gdGhleSBjYW4gYmUgZGVmaW5lZCBpbiBvbmUgcGxhY2UuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBjb252ZXJ0LlxuLy8vXG4vLy8gQHJldHVybnMge1N0cmluZ30gQSBzdHJpbmcgY29udGFpbmluZyB0aGUgbWFwJ3MgY29udGVudHMuXG5AZnVuY3Rpb24gLXpmLWJwLXNlcmlhbGl6ZSgkbWFwKSB7XG4gICRzdHI6ICcnO1xuICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG4gICAgJHN0cjogJHN0ciArICRrZXkgKyAnPScgKyAtemYtYnAtdG8tZW0oJHZhbHVlKSArICcmJztcbiAgfVxuICAkc3RyOiBzdHItc2xpY2UoJHN0ciwgMSwgLTIpO1xuXG4gIEByZXR1cm4gJHN0cjtcbn1cblxuLy8vIEZpbmQgdGhlIG5leHQga2V5IGluIGEgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gdHJhdmVyc2UuXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGtleSAtIEtleSB0byB1c2UgYXMgYSBzdGFydGluZyBwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtNaXhlZH0gVGhlIHZhbHVlIGZvciB0aGUga2V5IGFmdGVyIGAka2V5YCwgaWYgYCRrZXlgIHdhcyBmb3VuZC4gSWYgYCRrZXlgIHdhcyBub3QgZm91bmQsIG9yIGAka2V5YCB3YXMgdGhlIGxhc3QgdmFsdWUgaW4gdGhlIG1hcCwgcmV0dXJucyBgbnVsbGAuXG5AZnVuY3Rpb24gLXpmLW1hcC1uZXh0KCRtYXAsICRrZXkpIHtcbiAgLy8gU3RvcmUgdGhlIHZhbHVlcyBvZiB0aGUgbWFwIGFzIGEgbGlzdCwgc28gd2UgY2FuIGFjY2VzcyB0aGVtIHdpdGggbnRoXG4gICR2YWx1ZXM6IG1hcC12YWx1ZXMoJG1hcCk7XG5cbiAgLy8gR2hldHRvIGZvciBsb29wXG4gICRpOiAxO1xuICAkZm91bmQ6IGZhbHNlO1xuICBAZWFjaCAkdmFsIGluIG1hcC1rZXlzKCRtYXApIHtcbiAgICBAaWYgJGZvdW5kID09IGZhbHNlIHtcbiAgICAgIEBpZiAoJGtleSA9PSAkdmFsKSB7XG4gICAgICAgICRmb3VuZDogdHJ1ZTtcbiAgICAgIH1cbiAgICAgICRpOiAkaSArIDE7XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgdGhlIGtleSBkb2Vzbid0IGV4aXN0LCBvciBpdCdzIHRoZSBsYXN0IGtleSBpbiB0aGUgbWFwLCByZXR1cm4gbnVsbFxuICBAaWYgJGkgPiBsZW5ndGgoJG1hcCkge1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBPdGhlcndpc2UsIHJldHVybiB0aGUgdmFsdWVcbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbnRoKCR2YWx1ZXMsICRpKTtcbiAgfVxufVxuXG4vLy8gR2V0IGEgdmFsdWUgZm9yIGEgYnJlYWtwb2ludCBmcm9tIGEgcmVzcG9uc2l2ZSBjb25maWcgbWFwLiBJZiB0aGUgY29uZmlnIG1hcCBoYXMgdGhlIGtleSBgJHZhbHVlYCwgdGhlIGV4YWN0IGJyZWFrcG9pbnQgdmFsdWUgaXMgcmV0dXJuZWQuIElmIHRoZSBjb25maWcgbWFwIGRvZXMgKm5vdCogaGF2ZSB0aGUgYnJlYWtwb2ludCwgdGhlIHZhbHVlIG1hdGNoaW5nIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGluIHRoZSBjb25maWcgbWFwIGlzIHJldHVybmVkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBJbnB1dCBjb25maWcgbWFwLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lIHRvIHVzZS5cbi8vL1xuLy8vIEByZXR1cm4ge01peGVkfSBUaGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlLlxuQGZ1bmN0aW9uIC16Zi1nZXQtYnAtdmFsKCRtYXAsICR2YWx1ZSkge1xuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBnbG9iYWxseVxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGluIHRoZSBsb2NhbCBjb25maWcgbWFwXG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRtYXAsICR2YWx1ZSkge1xuICAgIC8vIElmIGl0IGRvZXMsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkdmFsdWUpO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgZmluZCB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBhbmQgcmV0dXJuIHRoYXQgdmFsdWVcbiAgQGVsc2Uge1xuICAgICRhbmNob3I6IG51bGw7XG4gICAgJGZvdW5kOiBmYWxzZTtcblxuICAgIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRtYXAsICRrZXkpIHtcbiAgICAgICAgICAkYW5jaG9yOiAka2V5O1xuICAgICAgICB9XG4gICAgICAgIEBpZiAka2V5ID09ICR2YWx1ZSB7XG4gICAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICRhbmNob3IpO1xuICB9XG59XG5cbi8vIExlZ2FjeSBicmVha3BvaW50IHZhcmlhYmxlc1xuLy8gVGhlc2Ugd2lsbCBiZSByZW1vdmVkIGluIDYuM1xuJHNtYWxsLXVwOiBudWxsO1xuJHNtYWxsLW9ubHk6IG51bGw7XG4kbWVkaXVtLXVwOiBudWxsO1xuJG1lZGl1bS1vbmx5OiBudWxsO1xuJGxhcmdlLXVwOiBudWxsO1xuJGxhcmdlLW9ubHk6IG51bGw7XG4keGxhcmdlLXVwOiBudWxsO1xuJHhsYXJnZS1vbmx5OiBudWxsO1xuJHh4bGFyZ2UtdXA6IG51bGw7XG4keHhsYXJnZS1vbmx5OiBudWxsO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBzbWFsbCkge1xuICAkc21hbGwtdXA6IHNjcmVlbjtcbiAgJHNtYWxsLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHNtYWxsIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBtZWRpdW0pIHtcbiAgJG1lZGl1bS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtKX0nKTtcbiAgJG1lZGl1bS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0gb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIGxhcmdlKSB7XG4gICRsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2UpfScpO1xuICAkbGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2Ugb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHhsYXJnZSkge1xuICAkeGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2UpfScpO1xuICAkeGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeHhsYXJnZSkge1xuICAkeHhsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeHhsYXJnZSl9Jyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBDb2xsYXBzZSB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtbiBieSByZW1vdmluZyB0aGUgcGFkZGluZy4gKipOb3RlOioqIG9ubHkgdXNlIHRoaXMgbWl4aW4gd2l0aGluIGEgYnJlYWtwb2ludC4gVG8gY29sbGFwc2UgYSBjb2x1bW4ncyBndXR0ZXJzIG9uIGFsbCBzY3JlZW4gc2l6ZXMsIHVzZSB0aGUgYCRndXR0ZXJgIHBhcmFtZXRlciBvZiB0aGUgYGdyaWQtY29sdW1uKClgIG1peGluIGluc3RlYWQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tY29sbGFwc2Uge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG59XG5cbi8vLyBVbi1jb2xsYXBzZSB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtbiBieSByZS1hZGRpbmcgdGhlIHBhZGRpbmcuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGd1dHRlciBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBTcGFjaW5nIGJldHdlZW4gY29sdW1ucy5cbkBtaXhpbiBncmlkLWNvbHVtbi11bmNvbGxhcHNlKCRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcbiAgJGd1dHRlcjogcmVtLWNhbGMoJGd1dHRlcikgLyAyO1xuICBwYWRkaW5nLWxlZnQ6ICRndXR0ZXI7XG4gIHBhZGRpbmctcmlnaHQ6ICRndXR0ZXI7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1jb2xsYXBzZSgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tY29sbGFwc2VcbkBtaXhpbiBncmlkLWNvbC1jb2xsYXBzZSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWNvbGxhcHNlO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZSgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZVxuQG1peGluIGdyaWQtY29sLXVuY29sbGFwc2UoJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlcikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi11bmNvbGxhcHNlKCRndXR0ZXIpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gQ2FsY3VsYXRlcyB0aGUgd2lkdGggb2YgYSBjb2x1bW4gYmFzZWQgb24gYSBudW1iZXIgb2YgZmFjdG9ycy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRjb2x1bW5zXG4vLy8gICBXaWR0aCBvZiB0aGUgY29sdW1uLiBBY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gQSBwZXJjZW50YWdlIHZhbHVlIHdpbGwgbWFrZSB0aGUgY29sdW1uIHRoYXQgZXhhY3Qgc2l6ZS5cbi8vLyAgIC0gQSBzaW5nbGUgZGlnaXQgd2lsbCBtYWtlIHRoZSBjb2x1bW4gc3BhbiB0aGF0IG51bWJlciBvZiBjb2x1bW5zIHdpZGUsIHRha2luZyBpbnRvIGFjY291bnQgdGhlIGNvbHVtbiBjb3VudCBvZiB0aGUgcGFyZW50IHJvdy5cbi8vLyAgIC0gQSBzdHJpbmcgb2YgdGhlIGZvcm1hdCBcInggb2YgeVwiIHdpbGwgbWFrZSBhIGNvbHVtbiB0aGF0IGlzICp4KiBjb2x1bW5zIHdpZGUsIGFzc3VtaW5nICp5KiB0b3RhbCBjb2x1bW5zIGZvciB0aGUgcGFyZW50LlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBjYWxjdWxhdGVkIHBlcmNlbnRhZ2UgdmFsdWUuXG5AZnVuY3Rpb24gZ3JpZC1jb2x1bW4oJGNvbHVtbnMpIHtcbiAgJHdpZHRoOiAwJTtcblxuICAvLyBQYXJzaW5nIHBlcmNlbnRzLCBkZWNpbWFscywgYW5kIGNvbHVtbiBjb3VudHNcbiAgQGlmIHR5cGUtb2YoJGNvbHVtbnMpID09ICdudW1iZXInIHtcbiAgICBAaWYgdW5pdCgkY29sdW1ucykgPT0gJyUnIHtcbiAgICAgICR3aWR0aDogJGNvbHVtbnM7XG4gICAgfVxuICAgIEBlbHNlIGlmICRjb2x1bW5zIDwgMSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJGNvbHVtbnMpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW4tY291bnQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhcnNpbmcgXCJuIG9mIG5cIiBleHByZXNzaW9uc1xuICBAZWxzZSBpZiB0eXBlLW9mKCRjb2x1bW5zKSA9PSAnbGlzdCcge1xuICAgIEBpZiBsZW5ndGgoJGNvbHVtbnMpICE9IDMge1xuICAgICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uKCkuIFVzZSB0aGUgZm9ybWF0IFwibiBvZiBuXCIuJztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHdpZHRoOiBwZXJjZW50YWdlKG50aCgkY29sdW1ucywgMSkgLyBudGgoJGNvbHVtbnMsIDMpKTtcbiAgICB9XG4gIH1cblxuICAvLyBBbnl0aGluZyBlbHNlIGlzIGluY29ycmVjdFxuICBAZWxzZSB7XG4gICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uKCkuIFVzZSBhIG51bWJlciwgZGVjaW1hbCwgcGVyY2VudGFnZSwgb3IgXCJuIG9mIG5cIi4nO1xuICB9XG5cbiAgQHJldHVybiAkd2lkdGg7XG59XG5cbi8vLyBDcmVhdGVzIGEgZ3JpZCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbJGdyaWQtY29sdW1uLWNvdW50XSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uIFJlZmVyIHRvIHRoZSBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGd1dHRlciBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBTcGFjaW5nIGJldHdlZW4gY29sdW1ucy5cbkBtaXhpbiBncmlkLWNvbHVtbihcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudCxcbiAgJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXNpemUoJGNvbHVtbnMpO1xuICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xuXG4gIC8vIEd1dHRlcnNcbiAgQGlmIHR5cGUtb2YoJGd1dHRlcikgPT0gJ21hcCcge1xuICAgIEBlYWNoICRicmVha3BvaW50LCAkdmFsdWUgaW4gJGd1dHRlciB7XG4gICAgICAkcGFkZGluZzogcmVtLWNhbGMoJHZhbHVlKSAvIDI7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbiAgICAgICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmIHR5cGUtb2YoJGd1dHRlcikgPT0gJ251bWJlcicgYW5kIHN0cmlwLXVuaXQoJGd1dHRlcikgPiAwIHtcbiAgICAkcGFkZGluZzogcmVtLWNhbGMoJGd1dHRlcikgLyAyO1xuICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG4gICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gIH1cblxuICAvLyBMYXN0IGNvbHVtbiBhbGlnbm1lbnRcbiAgQGlmICRncmlkLWNvbHVtbi1hbGlnbi1lZGdlIHtcbiAgICAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6ICRnbG9iYWwtcmlnaHQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgZ3JpZCBjb2x1bW4gcm93LiBUaGlzIGlzIHRoZSBlcXVpdmFsZW50IG9mIGFkZGluZyBgLnJvd2AgYW5kIGAuY29sdW1uYCB0byB0aGUgc2FtZSBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRndXR0ZXIgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gV2lkdGggb2YgdGhlIGd1dHRlcnMgb24gZWl0aGVyIHNpZGUgb2YgdGhlIGNvbHVtbiByb3cuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tcm93KFxuICAkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1yb3c7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRndXR0ZXI6ICRndXR0ZXIpO1xuXG4gICYsXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gIH1cbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtblxuQGZ1bmN0aW9uIGdyaWQtY29sKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50XG4pIHtcbiAgQHJldHVybiBncmlkLWNvbHVtbigkY29sdW1ucyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW5cbkBtaXhpbiBncmlkLWNvbChcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudCxcbiAgJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zLCAkZ3V0dGVyKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXJvdygpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tcm93XG5AbWl4aW4gZ3JpZC1jb2wtcm93KFxuICAkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcm93KCRndXR0ZXIpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gUmVwb3NpdGlvbiBhIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfEtleXdvcmR9ICRwb3NpdGlvbiAtIERpcmVjdGlvbiBhbmQgYW1vdW50IHRvIG1vdmUuIFRoZSBjb2x1bW4gd2lsbCBtb3ZlIGVxdWFsIHRvIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1uIGNvdW50IHNwZWNpZmllZC4gQSBwb3NpdGl2ZSBudW1iZXIgd2lsbCBwdXNoIHRoZSBjb2x1bW4gdG8gdGhlIHJpZ2h0LCB3aGlsZSBhIG5lZ2F0aXZlIG51bWJlciB3aWxsIHB1bGwgaXQgdG8gdGhlIGxlZnQuIFNldCB0byBjZW50ZXIgdG8gY2VudGVyIHRoZSBjb2x1bW4uXG5AbWl4aW4gZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKSB7XG4gIEBpZiB0eXBlLW9mKCRwb3NpdGlvbikgPT0gJ251bWJlcicge1xuICAgICRvZmZzZXQ6IHBlcmNlbnRhZ2UoJHBvc2l0aW9uIC8gJGdyaWQtY29sdW1uLWNvdW50KTtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRvZmZzZXQ7XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGNlbnRlciB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnV3Jvbmcgc3ludGF4IGZvciBncmlkLWNvbHVtbi1wb3NpdGlvbigpLiBFbnRlciBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIG51bWJlciwgb3IgY2VudGVyLic7XG4gIH1cbn1cblxuLy8vIFJlc2V0IGEgcG9zaXRpb24gZGVmaW5pdGlvbi5cbkBtaXhpbiBncmlkLWNvbHVtbi11bnBvc2l0aW9uIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbi8vLyBPZmZzZXRzIGEgY29sdW1uIHRvIHRoZSByaWdodCBieSBgJG5gIGNvbHVtbnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJG4gLSBXaWR0aCB0byBvZmZzZXQgYnkuIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGBncmlkLWNvbHVtbigpYCBtaXhpbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbkBtaXhpbiBncmlkLWNvbHVtbi1vZmZzZXQoJG4pIHtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogZ3JpZC1jb2x1bW4oJG4pO1xufVxuXG4vLy8gRGlzYWJsZSB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiB0aGUgbGFzdCBjb2x1bW4gaW4gYSByb3cgYWxpZ25pbmcgdG8gdGhlIG9wcG9zaXRlIGVkZ2UuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tZW5kIHtcbiAgLy8gVGhpcyBleHRyYSBzcGVjaWZpY2l0eSBpcyByZXF1aXJlZCBmb3IgdGhlIHByb3BlcnR5IHRvIGJlIGFwcGxpZWRcbiAgJjpsYXN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gIH1cbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXBvc2l0aW9uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1wb3NpdGlvblxuQG1peGluIGdyaWQtY29sLXBvcygkcG9zaXRpb24pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXVucG9zaXRpb24oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXVucG9zaXRpb25cbkBtaXhpbiBncmlkLWNvbC11bnBvcyB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXVucG9zaXRpb247XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1vZmZzZXQoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLW9mZnNldFxuQG1peGluIGdyaWQtY29sLW9mZigkbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1vZmZzZXQoJG4pO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tZW5kKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1lbmRcbkBtaXhpbiBncmlkLWNvbC1lbmQge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1lbmQ7XG59XG4iLCIkLXpmLWZsZXgtanVzdGlmeTogKFxuICAnbGVmdCc6IGZsZXgtc3RhcnQsXG4gICdyaWdodCc6IGZsZXgtZW5kLFxuICAnY2VudGVyJzogY2VudGVyLFxuICAnanVzdGlmeSc6IHNwYWNlLWJldHdlZW4sXG4gICdzcGFjZWQnOiBzcGFjZS1hcm91bmQsXG4pO1xuXG4kLXpmLWZsZXgtYWxpZ246IChcbiAgJ3RvcCc6IGZsZXgtc3RhcnQsXG4gICdib3R0b20nOiBmbGV4LWVuZCxcbiAgJ21pZGRsZSc6IGNlbnRlcixcbiAgJ3N0cmV0Y2gnOiBzdHJldGNoLFxuKTtcblxuLy8vIEVuYWJsZXMgZmxleGJveCBieSBhZGRpbmcgYGRpc3BsYXk6IGZsZXhgIHRvIHRoZSBlbGVtZW50LlxuQG1peGluIGZsZXgge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4vLy8gSG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkgYWxpZ25zIHRoZSBpdGVtcyB3aXRoaW4gYSBmbGV4IGNvbnRhaW5lci5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHggW251bGxdIC0gSG9yaXpvbnRhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYGxlZnRgLCBgcmlnaHRgLCBgY2VudGVyYCwgYGp1c3RpZnlgLCBvciBgc3BhY2VkYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IGhvcml6b250YWwgYWxpZ25tZW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cbkBtaXhpbiBmbGV4LWFsaWduKCR4OiBudWxsLCAkeTogbnVsbCkge1xuICBAaWYgJHgge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtanVzdGlmeSwgJHgpIHtcbiAgICAgICR4OiBtYXAtZ2V0KCQtemYtZmxleC1qdXN0aWZ5LCAkeCk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtcm93LWFsaWduKCk6ICN7JHh9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciBob3Jpem9udGFsIGFsaWdubWVudC4gVXNlIGxlZnQsIHJpZ2h0LCBjZW50ZXIsIGp1c3RpZnksIG9yIHNwYWNlZC4nXG4gICAgfVxuICB9XG5cbiAgQGlmICR5IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xuICAgICAgJHk6IG1hcC1nZXQoJC16Zi1mbGV4LWFsaWduLCAkeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtcm93LWFsaWduKCk6ICN7JHl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnQuIFVzZSB0b3AsIGJvdHRvbSwgbWlkZGxlLCBvciBzdHJldGNoLidcbiAgICB9XG4gIH1cblxuICBqdXN0aWZ5LWNvbnRlbnQ6ICR4O1xuICBhbGlnbi1pdGVtczogJHk7XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGFsaWduIGEgc2luZ2xlIGNvbHVtbiB3aXRoaW4gYSBmbGV4IHJvdy4gQXBwbHkgdGhpcyBtaXhpbiB0byBhIGZsZXggY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeSBbbnVsbF0gLSBWZXJ0aWNhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYHRvcGAsIGBib3R0b21gLCBgbWlkZGxlYCwgb3IgYHN0cmV0Y2hgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgdmVydGljYWwgYWxpZ25tZW50LlxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkeTogbnVsbCkge1xuICBAaWYgJHkge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtYWxpZ24sICR5KSB7XG4gICAgICAkeTogbWFwLWdldCgkLXpmLWZsZXgtYWxpZ24sICR5KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1jb2x1bW4tYWxpZ24oKTogI3skeX0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGFsaWdubWVudC4gVXNlIHRvcCwgYm90dG9tLCBtaWRkbGUsIG9yIHN0cmV0Y2guJ1xuICAgIH1cbiAgfVxuXG4gIGFsaWduLXNlbGY6ICR5O1xufVxuXG4vLy8gQ2hhbmdlcyB0aGUgc291cmNlIG9yZGVyIG9mIGEgZmxleCBjaGlsZC4gQ2hpbGRyZW4gd2l0aCBsb3dlciBudW1iZXJzIGFwcGVhciBmaXJzdCBpbiB0aGUgbGF5b3V0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb3JkZXIgWzBdIC0gT3JkZXIgbnVtYmVyIHRvIGFwcGx5LlxuQG1peGluIGZsZXgtb3JkZXIoJG9yZGVyOiAwKSB7XG4gIG9yZGVyOiAkb3JkZXI7XG59XG4iLCJAbWl4aW4gZm91bmRhdGlvbi1mbGV4LWNsYXNzZXMge1xuICAvLyBIb3Jpem9udGFsIGFsaWdubWVudCB1c2luZyBqdXN0aWZ5LWNvbnRlbnRcbiAgQGVhY2ggJGhkaXIsICRwcm9wIGluIG1hcC1yZW1vdmUoJC16Zi1mbGV4LWp1c3RpZnksIGxlZnQpIHtcbiAgICAuYWxpZ24tI3skaGRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDogJGhkaXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFZlcnRpY2FsIGFsaWdubWVudCB1c2luZyBhbGlnbi1pdGVtcyBhbmQgYWxpZ24tc2VsZlxuICBAZWFjaCAkdmRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWFsaWduIHtcbiAgICAuYWxpZ24tI3skdmRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeTogJHZkaXIpO1xuICAgIH1cblxuICAgIC5hbGlnbi1zZWxmLSN7JHZkaXJ9IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZigkeTogJHZkaXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNvdXJjZSBvcmRlcmluZ1xuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDYge1xuICAgICAgLiN7JC16Zi1zaXplfS1vcmRlci0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtb3JkZXIoJGkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIHNjc3MtbGludDpkaXNhYmxlIENvbG9yVmFyaWFibGUsIFF1YWxpZnlpbmdFbGVtZW50LCBWZW5kb3JQcmVmaXhcblxuLy8vL1xuLy8vIEBncm91cCBnbG9iYWxcbi8vLy9cblxuLy8vIEZvbnQgc2l6ZSBhdHRyaWJ1dGUgYXBwbGllZCB0byBgPGh0bWw+YCBhbmQgYDxib2R5PmAuIFdlIHVzZSAxMDAlIGJ5IGRlZmF1bHQgc28gdGhlIHZhbHVlIGlzIGluaGVyaXRlZCBmcm9tIHRoZSB1c2VyJ3MgYnJvd3NlciBzZXR0aW5ncy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHdpZHRoIG9mIHlvdXIgc2l0ZS4gVXNlZCBieSB0aGUgZ3JpZCB0byBkZXRlcm1pbmUgcm93IHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTIwMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBhbGwgdHlwZS4gYCRnbG9iYWwtbGluZWhlaWdodGAgaXMgMjRweCB3aGlsZSBgJGdsb2JhbC1mb250LXNpemVgIGlzIDE2cHhcbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbGluZWhlaWdodDogMS41ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JzIHVzZWQgZm9yIGJ1dHRvbnMsIGNhbGxvdXRzLCBsaW5rcywgZXRjLiBUaGVyZSBtdXN0IGFsd2F5cyBiZSBhIGNvbG9yIGNhbGxlZCBgcHJpbWFyeWAuXG4vLy8gQHR5cGUgTWFwXG4kZm91bmRhdGlvbi1wYWxldHRlOiAoXG4gIHByaW1hcnk6ICMyMTk5ZTgsXG4gIHNlY29uZGFyeTogIzc3NyxcbiAgc3VjY2VzczogIzNhZGI3NixcbiAgd2FybmluZzogI2ZmYWUwMCxcbiAgYWxlcnQ6ICNlYzU4NDAsXG4pICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgbGlnaHQgZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGxpZ2h0LWdyYXk6ICNlNmU2ZTYgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBtZWRpdW0gZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJG1lZGl1bS1ncmF5OiAjY2FjYWNhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgZGFyayBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kZGFyay1ncmF5OiAjOGE4YThhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgYmxhY2sgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRibGFjazogIzBhMGEwYSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIHdoaXRlIHVpIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kd2hpdGU6ICNmZWZlZmUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIENvbG9yXG4kYm9keS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIENvbG9yXG4kYm9keS1mb250LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0YWNrIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIExpc3RcbiRib2R5LWZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbi8vLyBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSBhbnRpYWxpYXNlZCB0eXBlLCB1c2luZyB0aGUgYC13ZWJraXQtZm9udC1zbW9vdGhpbmdgIGFuZCBgLW1vei1vc3gtZm9udC1zbW9vdGhpbmdgIENTUyBwcm9wZXJ0aWVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIG1hcmdpbiBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgcGFkZGluZyBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIG5vcm1hbCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIGJvbGQgdHlwZS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kZ2xvYmFsLXdlaWdodC1ib2xkOiBib2xkICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBlbGVtZW50cyB0aGF0IGhhdmUgYSBib3JkZXIgcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1yYWRpdXM6IDAgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSB0ZXh0IGRpcmVjdGlvbiBvZiB0aGUgQ1NTLiBDYW4gYmUgZWl0aGVyIGBsdHJgIG9yIGBydGxgLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRnbG9iYWwtdGV4dC1kaXJlY3Rpb246IGx0ciAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZXMgZmxleGJveCBmb3IgY29tcG9uZW50cyB0aGF0IHN1cHBvcnQgaXQuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGdsb2JhbC1mbGV4Ym94OiBmYWxzZSAhZGVmYXVsdDtcblxuQGlmIG5vdCBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSB7XG4gIEBlcnJvciAnSW4gJGZvdW5kYXRpb24tcGFsZXR0ZSwgeW91IG11c3QgaGF2ZSBhIGNvbG9yIG5hbWVkIFwicHJpbWFyeVwiLic7XG59XG5cbi8vIEludGVybmFsIHZhcmlhYmxlcyB1c2VkIGZvciB0ZXh0IGRpcmVjdGlvblxuJGdsb2JhbC1sZWZ0OiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgcmlnaHQsIGxlZnQpO1xuJGdsb2JhbC1yaWdodDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIGxlZnQsIHJpZ2h0KTtcblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIGNvbG9yc1xuJHByaW1hcnktY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSk7XG4kc2Vjb25kYXJ5LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSk7XG4kc3VjY2Vzcy1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzdWNjZXNzKTtcbiR3YXJuaW5nLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHdhcm5pbmcpO1xuJGFsZXJ0LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KTtcblxuLy8gUmVtb3ZlIHRoaXMgaW4gNi4zXG4kLXpmLW1lbnUtaWNvbi1pbXBvcnRlZDogZmFsc2U7XG4kLXpmLWZsZXgtY2xhc3Nlcy1pbXBvcnRlZDogZmFsc2U7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXMge1xuICBAaW5jbHVkZSAtemYtbm9ybWFsaXplO1xuXG4gIC8vIFRoZXNlIHN0eWxlcyBhcmUgYXBwbGllZCB0byBhIDxtZXRhPiB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdFxuICAuZm91bmRhdGlvbi1tcSB7XG4gICAgZm9udC1mYW1pbHk6ICcjey16Zi1icC1zZXJpYWxpemUoJGJyZWFrcG9pbnRzKX0nO1xuICB9XG5cbiAgaHRtbCB7XG4gICAgZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgLy8gU2V0IGJveC1zaXppbmcgZ2xvYmFsbHkgdG8gaGFuZGxlIHBhZGRpbmcgYW5kIGJvcmRlciB3aWR0aHNcbiAgKixcbiAgKjo6YmVmb3JlLFxuICAqOjphZnRlciB7XG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIERlZmF1bHQgYm9keSBzdHlsZXNcbiAgYm9keSB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuXG4gICAgQGlmICgkYm9keS1hbnRpYWxpYXNlZCkge1xuICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIH1cbiAgfVxuXG4gIGltZyB7XG4gICAgLy8gR3JpZCBkZWZhdWx0cyB0byBnZXQgaW1hZ2VzIGFuZCBlbWJlZHMgdG8gd29yayBwcm9wZXJseVxuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYztcblxuICAgIC8vIEdldCByaWQgb2YgZ2FwIHVuZGVyIGltYWdlcyBieSBtYWtpbmcgdGhlbSBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJ5IGRlZmF1bHRcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSB0ZXh0YXJlYSB0YWtlcyBvbiBoZWlnaHQgYXV0b21hdGljYWxseVxuICB0ZXh0YXJlYSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBNYWtlIHNlbGVjdCBlbGVtZW50cyBhcmUgMTAwJSB3aWR0aCBieSBkZWZhdWx0XG4gIHNlbGVjdCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBTdHlsZXMgR29vZ2xlIE1hcHMgYW5kIE1hcFF1ZXN0IGVtYmVkcyBwcm9wZXJseVxuICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBJZFNlbGVjdG9yXG4gICNtYXBfY2FudmFzLFxuICAubWFwX2NhbnZhcyxcbiAgLm1xYS1kaXNwbGF5IHtcbiAgICBpbWcsXG4gICAgZW1iZWQsXG4gICAgb2JqZWN0IHtcbiAgICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IDxidXR0b24+IHN0eWxlcyBjcmVhdGVkIGJ5IG1vc3QgYnJvd3NlcnNcbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgfVxuXG4gIC8vIEludGVybmFsIGNsYXNzZXMgdG8gc2hvdy9oaWRlIGVsZW1lbnRzIGluIEphdmFTY3JpcHRcbiAgLmlzLXZpc2libGUge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaXMtaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIExvYWRzIG5vcm1hbGl6ZS5jc3MuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AbWl4aW4gLXpmLW5vcm1hbGl6ZSB7XG4gIC8qISBub3JtYWxpemUuY3NzIHYzLjAuMyB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuICAvKipcbiAgICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAgICogMi4gUHJldmVudCBpT1MgYW5kIElFIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgZGV2aWNlIG9yaWVudGF0aW9uIGNoYW5nZSxcbiAgICogICAgd2l0aG91dCBkaXNhYmxpbmcgdXNlciB6b29tLlxuICAgKi9cblxuICBodG1sIHtcbiAgICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMSAqL1xuICAgIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuICAgKi9cblxuICBib2R5IHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAvKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLyoqXG4gICAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXG4gICAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gICAqIGFuZCBGaXJlZm94LlxuICAgKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxuICAgKi9cblxuICBhcnRpY2xlLFxuICBhc2lkZSxcbiAgZGV0YWlscyxcbiAgZmlnY2FwdGlvbixcbiAgZmlndXJlLFxuICBmb290ZXIsXG4gIGhlYWRlcixcbiAgaGdyb3VwLFxuICBtYWluLFxuICBtZW51LFxuICBuYXYsXG4gIHNlY3Rpb24sXG4gIHN1bW1hcnkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLyoqXG4gICAqIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4gICAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAgICovXG5cbiAgYXVkaW8sXG4gIGNhbnZhcyxcbiAgcHJvZ3Jlc3MsXG4gIHZpZGVvIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbiAgfVxuXG4gIC8qKlxuICAgKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxuICAgKiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuICAgKi9cblxuICBhdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgaGVpZ2h0OiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAgICogSGlkZSB0aGUgYHRlbXBsYXRlYCBlbGVtZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgRmlyZWZveCA8IDIyLlxuICAgKi9cblxuICBbaGlkZGVuXSxcbiAgdGVtcGxhdGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvKiBMaW5rc1xuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gIC8qKlxuICAgKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAgICovXG5cbiAgYSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAvKipcbiAgICogSW1wcm92ZSByZWFkYWJpbGl0eSBvZiBmb2N1c2VkIGVsZW1lbnRzIHdoZW4gdGhleSBhcmUgYWxzbyBpbiBhblxuICAgKiBhY3RpdmUvaG92ZXIgc3RhdGUuXG4gICAqL1xuXG4gIGE6YWN0aXZlLFxuICBhOmhvdmVyIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG5cbiAgLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAvKipcbiAgICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICAgKi9cblxuICBhYmJyW3RpdGxlXSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gICAqL1xuXG4gIGIsXG4gIHN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cblxuICAvKipcbiAgICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICAgKi9cblxuICBkZm4ge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4gICAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAgICovXG5cbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgIG1hcmdpbjogMC42N2VtIDA7XG4gIH1cblxuICAvKipcbiAgICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAgICovXG5cbiAgbWFyayB7XG4gICAgYmFja2dyb3VuZDogI2ZmMDtcbiAgICBjb2xvcjogIzAwMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICovXG5cbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogODAlO1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAgICovXG5cbiAgc3ViLFxuICBzdXAge1xuICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIH1cblxuICBzdXAge1xuICAgIHRvcDogLTAuNWVtO1xuICB9XG5cbiAgc3ViIHtcbiAgICBib3R0b206IC0wLjI1ZW07XG4gIH1cblxuICAvKiBFbWJlZGRlZCBjb250ZW50XG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLyoqXG4gICAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuICAgKi9cblxuICBpbWcge1xuICAgIGJvcmRlcjogMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbiAgICovXG5cbiAgc3ZnOm5vdCg6cm9vdCkge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAvKiBHcm91cGluZyBjb250ZW50XG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLyoqXG4gICAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuICAgKi9cblxuICBmaWd1cmUge1xuICAgIG1hcmdpbjogMWVtIDQwcHg7XG4gIH1cblxuICAvKipcbiAgICogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuICAgKi9cblxuICBociB7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgaGVpZ2h0OiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICAgKi9cblxuICBwcmUge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbiAgICovXG5cbiAgY29kZSxcbiAga2JkLFxuICBwcmUsXG4gIHNhbXAge1xuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgfVxuXG4gIC8qIEZvcm1zXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLyoqXG4gICAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4gICAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiAgICovXG5cbiAgLyoqXG4gICAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cbiAgICogICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4gICAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gICAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICAgKi9cblxuICBidXR0b24sXG4gIGlucHV0LFxuICBvcHRncm91cCxcbiAgc2VsZWN0LFxuICB0ZXh0YXJlYSB7XG4gICAgY29sb3I6IGluaGVyaXQ7IC8qIDEgKi9cbiAgICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gICAgbWFyZ2luOiAwOyAvKiAzICovXG4gIH1cblxuICAvKipcbiAgICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4gICAqL1xuXG4gIGJ1dHRvbiB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cblxuICAvKipcbiAgICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuICAgKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuICAgKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuICAgKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4gICAqL1xuXG4gIGJ1dHRvbixcbiAgc2VsZWN0IHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIC8qKlxuICAgKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICAgKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbiAgICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICAgKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICAgKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gICAqL1xuXG4gIGJ1dHRvbixcbiAgaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG4gIGlucHV0W3R5cGU9XCJyZXNldFwiXSxcbiAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgICBjdXJzb3I6IHBvaW50ZXI7IC8qIDMgKi9cbiAgfVxuXG4gIC8qKlxuICAgKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICAgKi9cblxuICBidXR0b25bZGlzYWJsZWRdLFxuICBodG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4gICAqL1xuXG4gIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbiAgaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAgICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gICAqL1xuXG4gIGlucHV0IHtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cbiAgICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbiAgICpcbiAgICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbiAgICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAgICovXG5cbiAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgICBwYWRkaW5nOiAwOyAvKiAyICovXG4gIH1cblxuICAvKipcbiAgICogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiAgICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAgICogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuICAgKi9cblxuICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cblxuICAvKipcbiAgICogMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gICAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gICAqL1xuXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDIgKi9cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbiAgICogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xuICAgKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4gICAqL1xuXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gICAqIFtOT1RFXSBXZSBkb24ndCBlbmFibGUgdGhpcyBydWxlc2V0IGluIEZvdW5kYXRpb24sIGJlY2F1c2Ugd2Ugd2FudCB0aGUgPGZpZWxkc2V0PiBlbGVtZW50IHRvIGhhdmUgcGxhaW4gc3R5bGluZy5cbiAgICovXG5cbiAgLyogZmllbGRzZXQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gICAgbWFyZ2luOiAwIDJweDtcbiAgICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG4gIH0gKi9cblxuICAvKipcbiAgICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICAgKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gICAqL1xuXG4gIGxlZ2VuZCB7XG4gICAgYm9yZGVyOiAwOyAvKiAxICovXG4gICAgcGFkZGluZzogMDsgLyogMiAqL1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gICAqL1xuXG4gIHRleHRhcmVhIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC8qKlxuICAgKiBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuXG4gICAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICAgKi9cblxuICBvcHRncm91cCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cblxuICAvKiBUYWJsZXNcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAvKipcbiAgICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuICAgKi9cblxuICB0YWJsZSB7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBib3JkZXItc3BhY2luZzogMDtcbiAgfVxuXG4gIHRkLFxuICB0aCB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBDcmVhdGVzIGEgQ1NTIHRyaWFuZ2xlLCB3aGljaCBjYW4gYmUgdXNlZCBmb3IgZHJvcGRvd24gYXJyb3dzLCBkcm9wZG93biBwaXBzLCBhbmQgbW9yZS4gVXNlIHRoaXMgbWl4aW4gaW5zaWRlIGEgYCY6OmJlZm9yZWAgb3IgYCY6OmFmdGVyYCBzZWxlY3RvciwgdG8gYXR0YWNoIHRoZSB0cmlhbmdsZSB0byBhbiBleGlzdGluZyBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0cmlhbmdsZS1zaXplIC0gV2lkdGggb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICR0cmlhbmdsZS1jb2xvciAtIENvbG9yIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR0cmlhbmdsZS1kaXJlY3Rpb24gLSBEaXJlY3Rpb24gdGhlIHRyaWFuZ2xlIHBvaW50cy4gQ2FuIGJlIGB1cGAsIGByaWdodGAsIGBkb3duYCwgb3IgYGxlZnRgLlxuQG1peGluIGNzcy10cmlhbmdsZShcbiAgJHRyaWFuZ2xlLXNpemUsXG4gICR0cmlhbmdsZS1jb2xvcixcbiAgJHRyaWFuZ2xlLWRpcmVjdGlvblxuKSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCAkdHJpYW5nbGUtc2l6ZTtcblxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gZG93bikge1xuICAgIGJvcmRlci1jb2xvcjogJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHVwKSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gcmlnaHQpIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIG1lbnUgaWNvbiB3aXRoIGEgc2V0IHdpZHRoLCBoZWlnaHQsIG51bWJlciBvZiBiYXJzLCBhbmQgY29sb3JzLiBUaGUgbWl4aW4gdXNlcyB0aGUgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIHRoZSBiYXJzIHRvIGRldGVybWluZSBzcGFjaW5nLiA8ZGl2IGNsYXNzPVwiZG9jcy1leGFtcGxlLWJ1cmdlclwiPjwvZGl2PlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYmxhY2tdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3ItaG92ZXIgWyRkYXJrLWdyYXldIC0gQ29sb3IgdG8gdXNlIHdoZW4gdGhlIGljb24gaXMgaG92ZXJlZCBvdmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWzIwcHhdIC0gV2lkdGggb2YgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRoZWlnaHQgWzE2cHhdIC0gSGVpZ2h0IG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2VpZ2h0IFsycHhdIC0gSGVpZ2h0IG9mIGluZGl2aWR1YWwgYmFycyBpbiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhcnMgWzNdIC0gTnVtYmVyIG9mIGJhcnMgaW4gdGhlIGljb24uXG5AbWl4aW4gaGFtYnVyZ2VyKFxuICAkY29sb3I6ICRibGFjayxcbiAgJGNvbG9yLWhvdmVyOiAkZGFyay1ncmF5LFxuICAkd2lkdGg6IDIwcHgsXG4gICRoZWlnaHQ6IDE2cHgsXG4gICR3ZWlnaHQ6IDJweCxcbiAgJGJhcnM6IDNcbikge1xuICAvLyBib3gtc2hhZG93IENTUyBvdXRwdXRcbiAgJHNoYWRvdzogKCk7XG4gICRob3Zlci1zaGFkb3c6ICgpO1xuXG4gIC8vIFNwYWNpbmcgYmV0d2VlbiBiYXJzIGlzIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIHRvdGFsIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiBlYWNoIGJhclxuICAkc3BhY2luZzogZmxvb3IoKCRoZWlnaHQgLSAoJHdlaWdodCAqICRiYXJzKSkgLyAoJGJhcnMgLSAxKSk7XG5cbiAgLy8gSWNvbiBjb250YWluZXJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6ICR3aWR0aDtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuXG4gIC8vIEljb24gYmFyc1xuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJHdlaWdodDtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgICAkc2hhZG93OiBhcHBlbmQoJHNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLCBjb21tYSk7XG4gICAgfVxuXG4gICAgYm94LXNoYWRvdzogJHNoYWRvdztcbiAgfVxuXG4gIC8vIEhvdmVyIHN0YXRlXG4gIEBpZiAkY29sb3ItaG92ZXIge1xuICAgIC8vIEdlbmVyYXRlIENTU1xuICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJhcnMge1xuICAgICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcbiAgICAgICRob3Zlci1zaGFkb3c6IGFwcGVuZCgkaG92ZXItc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3ItaG92ZXIsIGNvbW1hKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItaG92ZXI7XG4gICAgICBib3gtc2hhZG93OiAkaG92ZXItc2hhZG93O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBhIGRvd253YXJkLWZhY2luZyB0cmlhbmdsZSBhcyBhIGJhY2tncm91bmQgaW1hZ2UgdG8gYW4gZWxlbWVudC4gVGhlIGltYWdlIGlzIGZvcm1hdHRlZCBhcyBhbiBTVkcsIG1ha2luZyBpdCBlYXN5IHRvIGNoYW5nZSB0aGUgY29sb3IuIEJlY2F1c2UgSW50ZXJuZXQgRXhwbG9yZXIgZG9lc24ndCBzdXBwb3J0IGVuY29kZWQgU1ZHcyBhcyBiYWNrZ3JvdW5kIGltYWdlcywgYSBQTkcgZmFsbGJhY2sgaXMgYWxzbyBpbmNsdWRlZC5cbi8vLyBUaGVyZSBhcmUgdHdvIFBORyBmYWxsYmFja3M6IGEgYmxhY2sgdHJpYW5nbGUgYW5kIGEgd2hpdGUgdHJpYW5nbGUuIFRoZSBvbmUgdXNlZCBkZXBlbmRzIG9uIHRoZSBsaWdodG5lc3Mgb2YgdGhlIGlucHV0IGNvbG9yLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYmxhY2tdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgdHJpYW5nbGUuXG5AbWl4aW4gYmFja2dyb3VuZC10cmlhbmdsZSgkY29sb3I6ICRibGFjaykge1xuICAkcmdiOiAncmdiJTI4I3tyZWQoJGNvbG9yKX0sICN7Z3JlZW4oJGNvbG9yKX0sICN7Ymx1ZSgkY29sb3IpfSUyOSc7XG5cbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgd2lkdGg9JzMyJyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMzIgMjQnPjxwb2x5Z29uIHBvaW50cz0nMCwwIDMyLDAgMTYsMjQnIHN0eWxlPSdmaWxsOiAjeyRyZ2J9Jz48L3BvbHlnb24+PC9zdmc+XCIpO1xuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MFxcMCkge1xuICAgIEBpZiBsaWdodG5lc3MoJGNvbG9yKSA8IDYwJSB7XG4gICAgICAvLyBXaGl0ZSB0cmlhbmdsZVxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQUlwSlJFRlVlTnJFa2NrTmdEQU1CQmZSa0V0ME9iUkJCZHNHWFVEZ21RZks0WGhIMm04Y3pRQUF5MjdSM3RzdzRRZmUyeDh1T082b1lMYjZHbE9vcjNHRitzd1VSQU9tVUorUnd0RUpzOVd2VEdFWXhCWHFJMU1RQVpoQ2ZVUUtSekRNVmorVHdyQUlWNmp2U1VFa1lBcjFMU2tjeVRCYi9WK0tZZlg3eEFldXNxM3NMRHRHSDNrRUdBQ1BXSWZsTlpmaFJRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIEJsYWNrIHRyaWFuZ2xlXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBTUJKUkVGVWVOckVsbHNPaENBTVJWc3pDOUlselU3S0NtVkhUSnNvTVdZTVV0cHl2OUJnYnVYUUI1WlNkZ0JZWVk0eWNnQml2azhLWUZzUU1mTWlUVEJQNG8zblV6Q0t6T2FiTEpiTHkyL2czMWV2R2tBZ2luUjQvWmVnS0g1cVgzYkpDc2NBM3QweDNrZ081dFFGeWhoRmY1MHhScUZMYnlNVU5KUXpneWpHUy93Z0Nwdktxa1JCcHVXckU0VjlkKzFFNGRQVVhxSWcxMDdTUU9FLzJEUlF4TXdURHlnSUluVkRFVDlUM2xDb2ovNmovVkNtR2paT2wybEtwWjhBQXdEUVA3eklpbURHRlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFwcGxpZXMgdGhlIG1pY3JvIGNsZWFyZml4IGhhY2sgcG9wdWxhcml6ZWQgYnkgTmljb2xhcyBHYWxsYWdoZXIuIEluY2x1ZGUgdGhpcyBtaXhpbiBvbiBhIGNvbnRhaW5lciBpZiBpdHMgY2hpbGRyZW4gYXJlIGFsbCBmbG9hdGVkLCB0byBnaXZlIHRoZSBjb250YWluZXIgYSBwcm9wZXIgaGVpZ2h0LlxuLy8vIFRoZSBjbGVhcmZpeCBpcyBhdWdtZW50ZWQgd2l0aCBzcGVjaWZpYyBzdHlsZXMgdG8gcHJldmVudCBib3JkZXJzIGluIGZsZXhib3ggZW52aXJvbm1lbnRzXG4vLy8gQGxpbmsgaHR0cDovL25pY29sYXNnYWxsYWdoZXIuY29tL21pY3JvLWNsZWFyZml4LWhhY2svIE1pY3JvIENsZWFyZml4IEhhY2tcbi8vLyBAbGluayBodHRwOi8vZGFuaXNhZGVzaWduZXIuY29tL2Jsb2cvZmxleGJveC1jbGVhci1maXgtcHNldWRvLWVsZW1lbnRzLyBGbGV4Ym94IGZpeFxuQG1peGluIGNsZWFyZml4IHtcbiAgJjo6YmVmb3JlLFxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyAnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgIG9yZGVyOiAxO1xuICAgIH1cbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG4vLy8gQWRkcyBDU1MgZm9yIGEgXCJxdWFudGl0eSBxdWVyeVwiIHNlbGVjdG9yIHRoYXQgYXV0b21hdGljYWxseSBzaXplcyBlbGVtZW50cyBiYXNlZCBvbiBob3cgbWFueSB0aGVyZSBhcmUgaW5zaWRlIGEgY29udGFpbmVyLlxuLy8vIEBsaW5rIGh0dHA6Ly9hbGlzdGFwYXJ0LmNvbS9hcnRpY2xlL3F1YW50aXR5LXF1ZXJpZXMtZm9yLWNzcyBRdWFudGl0eSBRdWVyaWVzIGZvciBDU1Ncbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4IC0gTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgdG8gZGV0ZWN0LiBUaGUgaGlnaGVyIHRoaXMgbnVtYmVyIGlzLCB0aGUgbW9yZSBDU1MgdGhhdCdzIHJlcXVpcmVkIHRvIGNvdmVyIGVhY2ggbnVtYmVyIG9mIGl0ZW1zLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGVsZW0gW2xpXSAtIFRhZyB0byB1c2UgZm9yIHNpYmxpbmcgc2VsZWN0b3JzLlxuQG1peGluIGF1dG8td2lkdGgoJG1heCwgJGVsZW06IGxpKSB7XG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJG1heCB7XG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQsXG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQgfiAjeyRlbGVtfSB7XG4gICAgICB3aWR0aDogcGVyY2VudGFnZSgxIC8gJGkpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gUmVtb3ZlcyB0aGUgZm9jdXMgcmluZyBhcm91bmQgYW4gZWxlbWVudCB3aGVuIGEgbW91c2UgaW5wdXQgaXMgZGV0ZWN0ZWQuXG5AbWl4aW4gZGlzYWJsZS1tb3VzZS1vdXRsaW5lIHtcbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddICYge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cbn1cblxuLy8vIE1ha2VzIGFuIGVsZW1lbnQgdmlzdWFsbHkgaGlkZGVuLCBidXQgc3RpbGwgYWNjZXNzaWJsZSB0byBrZXlib2FyZHMgYW5kIGFzc2lzdGl2ZSBkZXZpY2VzLlxuLy8vIEBsaW5rIGh0dHA6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHkgSGlkaW5nIENvbnRlbnQgZm9yIEFjY2Vzc2liaWxpdHlcbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbn1cblxuLy8vIFJldmVyc2VzIHRoZSBDU1Mgb3V0cHV0IGNyZWF0ZWQgYnkgdGhlIGBlbGVtZW50LWludmlzaWJsZSgpYCBtaXhpbi5cbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZS1vZmYge1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IGF1dG87XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBjbGlwOiBhdXRvO1xufVxuXG4vLy8gVmVydGljYWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiB2ZXJ0aWNhbC1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbi8vLyBIb3Jpem9udGFsbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gaG9yaXpvbnRhbC1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xufVxuXG4vLy8gQWJzb2x1dGVseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBhYnNvbHV0ZS1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufVxuXG4vLy8gSXRlcmF0ZXMgdGhyb3VnaCBicmVha3BvaW50cyBkZWZpbmVkIGluIGAkYnJlYWtwb2ludC1jbGFzc2VzYCBhbmQgcHJpbnRzIHRoZSBDU1MgaW5zaWRlIHRoZSBtaXhpbiBhdCBlYWNoIGJyZWFrcG9pbnQncyBtZWRpYSBxdWVyeS4gVXNlIHRoaXMgd2l0aCB0aGUgZ3JpZCwgb3IgYW55IG90aGVyIGNvbXBvbmVudCB0aGF0IGhhcyByZXNwb25zaXZlIGNsYXNzZXMuXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRzbWFsbCBbdHJ1ZV0gLSBJZiBgZmFsc2VgLCB0aGUgbWl4aW4gd2lsbCBza2lwIHRoZSBgc21hbGxgIGJyZWFrcG9pbnQuIFVzZSB0aGlzIHdpdGggY29tcG9uZW50cyB0aGF0IGRvbid0IHByZWZpeCBjbGFzc2VzIHdpdGggYHNtYWxsLWAsIG9ubHkgYG1lZGl1bS1gIGFuZCB1cC5cbkBtaXhpbiAtemYtZWFjaC1icmVha3BvaW50KCRzbWFsbDogdHJ1ZSkge1xuICAkbWFwOiAkYnJlYWtwb2ludC1jbGFzc2VzO1xuXG4gIEBpZiBub3QgJHNtYWxsIHtcbiAgICAkbWFwOiBtYXAtcmVtb3ZlKCRtYXAsICQtemYtemVyby1icmVha3BvaW50KTtcbiAgfVxuXG4gIEBlYWNoICRzaXplIGluICRtYXAge1xuICAgICQtemYtc2l6ZTogJHNpemUgIWdsb2JhbDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeS1iYXNlXG4vLy8vXG5cbi8vIEJhc2UgVHlwb2dyYXBoeVxuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbi8vIFRoZXNlIGFyZSBzdHlsZXMgYXBwbGllZCB0byBiYXNpYyBIVE1MIHRhZ3MsIGluY2x1ZGluZzpcbi8vICAgLSBQYXJhZ3JhcGhzIDxwPlxuLy8gICAtIEJvbGQvaXRhbGljcyA8Yj4gPHN0cm9uZz4gPGk+IDxlbT5cbi8vICAgLSBTbWFsbCB0ZXh0IDxzbWFsbD5cbi8vICAgLSBIZWFkaW5ncyA8aDE+4oCUPGg2PlxuLy8gICAtIEFuY2hvcnMgPGE+XG4vLyAgIC0gRGl2aWRlcnMgPGhyPlxuLy8gICAtIExpc3RzIDx1bD4gPG9sPiA8ZGw+XG4vLyAgIC0gQmxvY2txdW90ZXMgPGJsb2NrcXVvdGU+XG4vLyAgIC0gQ29kZSBibG9ja3MgPGNvZGU+XG4vLyAgIC0gQWJicmV2aWF0aW9ucyA8YWJicj5cbi8vICAgLSBDaXRhdGlvbnMgPGNpdGU+XG4vLyAgIC0gS2V5c3Ryb2tlcyA8a2JkPlxuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGhlYWRlciBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kaGVhZGVyLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0eWxlIChlLmcuIGl0YWxpY2l6ZWQpIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLWZvbnQtc3R5bGU6IG5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgdXNlZCBmb3IgZWxlbWVudHMgdGhhdCB1c2UgbW9ub3NwYWNlZCB0eXBlLCBzdWNoIGFzIGNvZGUgc2FtcGxlc1xuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRmb250LWZhbWlseS1tb25vc3BhY2U6IENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgQ291cmllciwgbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gU2l6ZXMgb2YgaGVhZGluZ3MgYXQgdmFyaW91cyBzY3JlZW4gc2l6ZXMuIEVhY2gga2V5IGlzIGEgYnJlYWtwb2ludCwgYW5kIGVhY2ggdmFsdWUgaXMgYSBtYXAgb2YgaGVhZGluZyBzaXplcy5cbi8vLyBAdHlwZSBNYXBcbiRoZWFkZXItc2l6ZXM6IChcbiAgc21hbGw6IChcbiAgICAnaDEnOiAyNCxcbiAgICAnaDInOiAyMCxcbiAgICAnaDMnOiAxOSxcbiAgICAnaDQnOiAxOCxcbiAgICAnaDUnOiAxNyxcbiAgICAnaDYnOiAxNixcbiAgKSxcbiAgbWVkaXVtOiAoXG4gICAgJ2gxJzogNDgsXG4gICAgJ2gyJzogNDAsXG4gICAgJ2gzJzogMzEsXG4gICAgJ2g0JzogMjUsXG4gICAgJ2g1JzogMjAsXG4gICAgJ2g2JzogMTYsXG4gICksXG4pICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJGhlYWRlci1jb2xvcjogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNCAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCByZW5kZXJpbmcgbWV0aG9kIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgYDxzbWFsbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHNtYWxsLWZvbnQtc2l6ZTogODAlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgYDxzbWFsbD5gIGVsZW1lbnRzIHdoZW4gcGxhY2VkIGluc2lkZSBoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIHRleHQgaW5zaWRlIGA8cD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhcmFncmFwaC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IHJlbmRlcmluZyBtZXRob2QgZm9yIHBhcmFncmFwaCB0ZXh0LlxuLy8vIEB0eXBlIFN0cmluZ1xuJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjb2RlLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiB0ZXh0IGluIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRjb2RlLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGNvZGUtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBMaXN0XG4kY29kZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGFyb3VuZCB0ZXh0IG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyIDUgMSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBsaW5rcy5cbi8vLyBAdHlwZSBDb2xvclxuJGFuY2hvci1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBsaW5rcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBDb2xvclxuJGFuY2hvci1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGFuY2hvci1jb2xvciwgJGxpZ2h0bmVzczogLTE0JSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgZGVvY3JhdGlvbiBmb3IgbGlua3MuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBkZWNvcmF0aW9uIGZvciBsaW5rcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBTdHJpbmdcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiBub25lICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSB3aWR0aCBvZiBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaHItd2lkdGg6ICRnbG9iYWwtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBmb3IgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIExpc3RcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBmb3IgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRoci1tYXJnaW46IHJlbS1jYWxjKDIwKSBhdXRvICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgZm9yIGl0ZW1zIGluIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LWxpbmVoZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodCAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIGl0ZW1zIGluIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbSAhZGVmYXVsdDtcblxuLy8vIEJ1bGxldCB0eXBlIHRvIHVzZSBmb3IgdW5vcmRlcmVkIGxpc3RzIChlLmcuLCBgc3F1YXJlYCwgYGNpcmNsZWAsIGBkaXNjYCkuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGlzdC1zdHlsZS10eXBlOiBkaXNjICFkZWZhdWx0O1xuXG4vLy8gUG9zaXRpb25pbmcgZm9yIGJ1bGxldHMgb24gdW5vcmRlcmVkIGxpc3QgaXRlbXMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZSAhZGVmYXVsdDtcblxuLy8vIExlZnQgKG9yIHJpZ2h0KSBtYXJnaW4gZm9yIGxpc3RzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3Qtc2lkZS1tYXJnaW46IDEuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IChvciByaWdodCkgbWFyZ2luIGZvciBhIGxpc3QgaW5zaWRlIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjogMS4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIGA8ZGw+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkZWZubGlzdC1tYXJnaW4tYm90dG9tOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGA8ZHQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRkZWZubGlzdC10ZXJtLXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBgPGR0PmAgYW5kIGA8ZGQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b206IDAuM3JlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYDxibG9ja3F1b3RlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRibG9ja3F1b3RlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYSBgPGJsb2NrcXVvdGU+YCBlbGVtZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSkgIWRlZmF1bHQ7XG5cbi8vLyBTaWRlIGJvcmRlciBmb3IgYDxibG9ja3F1b3RlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTGlzdFxuJGJsb2NrcXVvdGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBgPGNpdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjaXRlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjaXRlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGtleXN0cm9rZS1mb250OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGtleXN0cm9rZS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGtleXN0cm9rZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGtleXN0cm9rZS1wYWRkaW5nOiByZW0tY2FsYygyIDQgMCkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRrZXlzdHJva2UtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBib3JkZXIgc3R5bGUgZm9yIGA8YWJicj5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIExpc3RcbiRhYmJyLXVuZGVybGluZTogMXB4IGRvdHRlZCAkYmxhY2sgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXR5cG9ncmFwaHktYmFzZSB7XG4gIC8vIFR5cG9ncmFwaHkgcmVzZXRzXG4gIGRpdixcbiAgZGwsXG4gIGR0LFxuICBkZCxcbiAgdWwsXG4gIG9sLFxuICBsaSxcbiAgaDEsXG4gIGgyLFxuICBoMyxcbiAgaDQsXG4gIGg1LFxuICBoNixcbiAgcHJlLFxuICBmb3JtLFxuICBwLFxuICBibG9ja3F1b3RlLFxuICB0aCxcbiAgdGQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLy8gUGFyYWdyYXBoc1xuICBwIHtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4gICAgdGV4dC1yZW5kZXJpbmc6ICRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc7XG4gIH1cblxuICAvLyBFbXBoYXNpemVkIHRleHRcbiAgZW0sXG4gIGkge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFN0cm9uZyB0ZXh0XG4gIHN0cm9uZyxcbiAgYiB7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBTbWFsbCB0ZXh0XG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBIZWFkaW5nc1xuICBoMSxcbiAgaDIsXG4gIGgzLFxuICBoNCxcbiAgaDUsXG4gIGg2IHtcbiAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgICBmb250LXdlaWdodDogJGhlYWRlci1mb250LXdlaWdodDtcbiAgICBmb250LXN0eWxlOiAkaGVhZGVyLWZvbnQtc3R5bGU7XG4gICAgY29sb3I6ICRoZWFkZXItY29sb3I7XG4gICAgdGV4dC1yZW5kZXJpbmc6ICRoZWFkZXItdGV4dC1yZW5kZXJpbmc7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAkaGVhZGVyLW1hcmdpbi1ib3R0b207XG4gICAgbGluZS1oZWlnaHQ6ICRoZWFkZXItbGluZWhlaWdodDtcblxuICAgIHNtYWxsIHtcbiAgICAgIGNvbG9yOiAkaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICB9XG4gIH1cblxuICAvLyBIZWFkaW5nIHNpemVzXG4gIEBlYWNoICRzaXplLCAkaGVhZGVycyBpbiAkaGVhZGVyLXNpemVzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZWFjaCAkaGVhZGVyLCAkZm9udC1zaXplIGluICRoZWFkZXJzIHtcbiAgICAgICAgI3skaGVhZGVyfSB7XG4gICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygkZm9udC1zaXplKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIExpbmtzXG4gIGEge1xuICAgIGNvbG9yOiAkYW5jaG9yLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb247XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkYW5jaG9yLWNvbG9yLWhvdmVyO1xuICAgICAgQGlmICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyICE9ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhvcml6b250YWwgcnVsZVxuICBociB7XG4gICAgbWF4LXdpZHRoOiAkaHItd2lkdGg7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1yaWdodDogMDtcbiAgICBib3JkZXItdG9wOiAwO1xuICAgIGJvcmRlci1ib3R0b206ICRoci1ib3JkZXI7XG4gICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgbWFyZ2luOiAkaHItbWFyZ2luO1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG5cbiAgLy8gTGlzdHNcbiAgdWwsXG4gIG9sLFxuICBkbCB7XG4gICAgbGluZS1oZWlnaHQ6ICRsaXN0LWxpbmVoZWlnaHQ7XG4gICAgbWFyZ2luLWJvdHRvbTogJGxpc3QtbWFyZ2luLWJvdHRvbTtcbiAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiAkbGlzdC1zdHlsZS1wb3NpdGlvbjtcbiAgfVxuXG4gIC8vIExpc3QgaXRlbXNcbiAgbGkge1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFVub3JkZXJlZCBsaXN0c1xuICB1bCB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiAkbGlzdC1zdHlsZS10eXBlO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICB9XG5cbiAgLy8gT3JkZXJlZCBsaXN0c1xuICBvbCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3Qtc2lkZS1tYXJnaW47XG4gIH1cblxuICAvLyBOZXN0ZWQgdW5vcmRlcmVkL29yZGVyZWQgbGlzdHNcbiAgdWwsIG9sIHtcbiAgICAmICYge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAvLyBEZWZpbml0aW9uIGxpc3RzXG4gIGRsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTtcblxuICAgIGR0IHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b207XG4gICAgICBmb250LXdlaWdodDogJGRlZm5saXN0LXRlcm0td2VpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC8vIEJsb2NrcXVvdGVzXG4gIGJsb2NrcXVvdGUge1xuICAgIG1hcmdpbjogMCAwICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgICBwYWRkaW5nOiAkYmxvY2txdW90ZS1wYWRkaW5nO1xuICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06ICRibG9ja3F1b3RlLWJvcmRlcjtcblxuICAgICYsIHAge1xuICAgICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiAgICAgIGNvbG9yOiAkYmxvY2txdW90ZS1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBDaXRhdGlvbnNcbiAgY2l0ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAkY2l0ZS1mb250LXNpemU7XG4gICAgY29sb3I6ICRjaXRlLWNvbG9yO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJ1xcMjAxNCBcXDAwMjAnO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFiYnJldmlhdGlvbnNcbiAgYWJiciB7XG4gICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4gICAgY3Vyc29yOiBoZWxwO1xuICAgIGJvcmRlci1ib3R0b206ICRhYmJyLXVuZGVybGluZTtcbiAgfVxuXG4gIC8vIENvZGVcbiAgY29kZSB7XG4gICAgZm9udC1mYW1pbHk6ICRjb2RlLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkY29kZS1mb250LXdlaWdodDtcbiAgICBjb2xvcjogJGNvZGUtY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvZGUtYmFja2dyb3VuZDtcbiAgICBib3JkZXI6ICRjb2RlLWJvcmRlcjtcbiAgICBwYWRkaW5nOiAkY29kZS1wYWRkaW5nO1xuICB9XG5cbiAgLy8gS2V5c3Ryb2tlc1xuICBrYmQge1xuICAgIHBhZGRpbmc6ICRrZXlzdHJva2UtcGFkZGluZztcbiAgICBtYXJnaW46IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGtleXN0cm9rZS1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAka2V5c3Ryb2tlLWNvbG9yO1xuICAgIGZvbnQtZmFtaWx5OiAka2V5c3Ryb2tlLWZvbnQ7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRrZXlzdHJva2UtcmFkaXVzKSB7XG4gICAgICBib3JkZXItcmFkaXVzOiAka2V5c3Ryb2tlLXJhZGl1cztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8gc2Nzcy1saW50OmRpc2FibGUgWmVyb1VuaXRcblxuLy8vIFJlbW92ZXMgdGhlIHVuaXQgKGUuZy4gcHgsIGVtLCByZW0pIGZyb20gYSB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBudW1iZXIgb25seS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtIC0gTnVtYmVyIHRvIHN0cmlwIHVuaXQgZnJvbS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBzYW1lIG51bWJlciwgc2FucyB1bml0LlxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcbn1cblxuLy8vIENvbnZlcnRzIG9uZSBvciBtb3JlIHBpeGVsIHZhbHVlcyBpbnRvIG1hdGNoaW5nIHJlbSB2YWx1ZXMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkdmFsdWVzIC0gT25lIG9yIG1vcmUgdmFsdWVzIHRvIGNvbnZlcnQuIEJlIHN1cmUgdG8gc2VwYXJhdGUgdGhlbSB3aXRoIHNwYWNlcyBhbmQgbm90IGNvbW1hcy4gSWYgeW91IG5lZWQgdG8gY29udmVydCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCB3cmFwIHRoZSBsaXN0IGluIHBhcmVudGhlc2VzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBUaGUgYmFzZSB2YWx1ZSB0byB1c2Ugd2hlbiBjYWxjdWxhdGluZyB0aGUgYHJlbWAuIElmIHlvdSdyZSB1c2luZyBGb3VuZGF0aW9uIG91dCBvZiB0aGUgYm94LCB0aGlzIGlzIDE2cHguIElmIHRoaXMgcGFyYW1ldGVyIGlzIGBudWxsYCwgdGhlIGZ1bmN0aW9uIHdpbGwgcmVmZXJlbmNlIHRoZSBgJGJhc2UtZm9udC1zaXplYCB2YXJpYWJsZSBhcyB0aGUgYmFzZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtMaXN0fSBBIGxpc3Qgb2YgY29udmVydGVkIHZhbHVlcy5cbkBmdW5jdGlvbiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZTogbnVsbCkge1xuICAkcmVtLXZhbHVlczogKCk7XG4gICRjb3VudDogbGVuZ3RoKCR2YWx1ZXMpO1xuXG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlID09IG51bGwge1xuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICAvLyBUaGlzIGlzIGJlY2F1c2UgMTAwJSBmb250IHNpemUgPSAxNnB4IGluIG1vc3QgYWxsIGJyb3dzZXJzXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgJGNvdW50ID09IDEge1xuICAgIEByZXR1cm4gLXpmLXRvLXJlbSgkdmFsdWVzLCAkYmFzZSk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb3VudCB7XG4gICAgJHJlbS12YWx1ZXM6IGFwcGVuZCgkcmVtLXZhbHVlcywgLXpmLXRvLXJlbShudGgoJHZhbHVlcywgJGkpLCAkYmFzZSkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVtLXZhbHVlcztcbn1cblxuLy8gQ29udmVydHMgYSB1bml0bGVzcywgcGl4ZWwsIG9yIHJlbSB2YWx1ZSB0byBlbSwgZm9yIHVzZSBpbiBicmVha3BvaW50cy5cbkBmdW5jdGlvbiAtemYtYnAtdG8tZW0oJHZhbHVlKSB7XG4gIC8vIFBpeGVsIGFuZCB1bml0bGVzcyB2YWx1ZXMgYXJlIGNvbnZlcnRlZCB0byByZW1zXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3B4JyBvciB1bml0bGVzcygkdmFsdWUpIHtcbiAgICAkdmFsdWU6IHJlbS1jYWxjKCR2YWx1ZSwgJGJhc2U6IDE2cHgpO1xuICB9XG5cbiAgLy8gVGhlbiB0aGUgdmFsdWUgaXMgY29udmVydGVkIHRvIGVtc1xuICBAcmV0dXJuIHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFlbTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwgdmFsdWUgdG8gbWF0Y2hpbmcgcmVtIHZhbHVlLiAqQW55KiB2YWx1ZSBwYXNzZWQsIHJlZ2FyZGxlc3Mgb2YgdW5pdCwgaXMgYXNzdW1lZCB0byBiZSBhIHBpeGVsIHZhbHVlLiBCeSBkZWZhdWx0LCB0aGUgYmFzZSBwaXhlbCB2YWx1ZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgcmVtIHZhbHVlIGlzIHRha2VuIGZyb20gdGhlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgdmFyaWFibGUuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gUGl4ZWwgdmFsdWUgdG8gY29udmVydC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gQmFzZSBmb3IgcGl4ZWwgY29udmVyc2lvbi5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IEEgbnVtYmVyIGluIHJlbXMsIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIGdpdmVuIHZhbHVlIGFuZCB0aGUgYmFzZSBwaXhlbCB2YWx1ZS4gcmVtIHZhbHVlcyBhcmUgcGFzc2VkIHRocm91Z2ggYXMgaXMuXG5AZnVuY3Rpb24gLXpmLXRvLXJlbSgkdmFsdWUsICRiYXNlOiBudWxsKSB7XG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkdmFsdWUpICE9ICdudW1iZXInIHtcbiAgICBAd2FybiBpbnNwZWN0KCR2YWx1ZSkgKyAnIHdhcyBwYXNzZWQgdG8gcmVtLWNhbGMoKSwgd2hpY2ggaXMgbm90IGEgbnVtYmVyLic7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cblxuICAvLyBDYWxjdWxhdGUgcmVtIGlmIHVuaXRzIGZvciAkdmFsdWUgaXMgbm90IHJlbVxuICBAaWYgdW5pdCgkdmFsdWUpICE9ICdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UpICogMXJlbTtcbiAgfVxuXG4gIC8vIFR1cm4gMHJlbSBpbnRvIDBcbiAgQGlmICR2YWx1ZSA9PSAwcmVtIHtcbiAgICAkdmFsdWU6IDA7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktaGVscGVyc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGxlYWQgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxlYWQtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRzdWJoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdG9wIG1hcmdpbiBmb3Igc3ViaGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLW1hcmdpbi10b3A6IDAuMnJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIHN0YXRpc3RpYyBudW1iZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN0YXQtZm9udC1zaXplOiAyLjVyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXR5cG9ncmFwaHktaGVscGVycyB7XG4gIC8vIFVzZSB0byBjcmVhdGUgYSBzdWJoZWFkaW5nIHVuZGVyIGEgbWFpbiBoZWFkZXJcbiAgLy8gTWFrZSBzdXJlIHlvdSBwYWlyIHRoZSB0d28gZWxlbWVudHMgaW4gYSA8aGVhZGVyPiBlbGVtZW50LCBsaWtlIHRoaXM6XG4gIC8vIDxoZWFkZXI+XG4gIC8vICAgPGgxPkhlYWRpbmc8L2gxPlxuICAvLyAgIDxoMj5TdWJoZWFkaW5nPC9oMj5cbiAgLy8gPC9oZWFkZXI+XG4gIC5zdWJoZWFkZXIge1xuICAgIG1hcmdpbi10b3A6ICRzdWJoZWFkZXItbWFyZ2luLXRvcDtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3ViaGVhZGVyLW1hcmdpbi1ib3R0b207XG4gICAgZm9udC13ZWlnaHQ6ICRzdWJoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6ICRzdWJoZWFkZXItbGluZWhlaWdodDtcbiAgICBjb2xvcjogJHN1YmhlYWRlci1jb2xvcjtcbiAgfVxuXG4gIC8vIFVzZSB0byBzdHlsZSBhbiBpbnRyb2R1Y3RvcnkgbGVhZCwgZGVjaywgYmx1cmIsIGV0Yy5cbiAgLmxlYWQge1xuICAgIGZvbnQtc2l6ZTogJGxlYWQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGVhZC1saW5laGVpZ2h0O1xuICB9XG5cbiAgLy8gVXNlIHRvIHN0eWxlIGEgbGFyZ2UgbnVtYmVyIHRvIGRpc3BsYXkgYSBzdGF0aXN0aWNcbiAgLnN0YXQge1xuICAgIGZvbnQtc2l6ZTogJHN0YXQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgcCArICYge1xuICAgICAgbWFyZ2luLXRvcDogLTFyZW07XG4gICAgfVxuICB9XG5cbiAgLy8gVXNlIHRvIHJlbW92ZSB0aGUgYnVsbGV0cyBmcm9tIGFuIHVub3JkZXJlZCBsaXN0XG4gIC5uby1idWxsZXQge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRleHQtYWxpZ25tZW50IHtcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGVhY2ggJGFsaWduIGluIChsZWZ0LCByaWdodCwgY2VudGVyLCBqdXN0aWZ5KSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXRleHQtI3skYWxpZ259IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIC50ZXh0LSN7JGFsaWdufSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIElmIGB0cnVlYCwgYWxsIGVsZW1lbnRzIHdpbGwgaGF2ZSB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kcyB3aGVuIHByaW50ZWQsIHRvIHNhdmUgb24gaW5rLlxuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAZ3JvdXAgZ2xvYmFsXG4kcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIHNjc3MtbGludDpkaXNhYmxlIGFsbFxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcmludC1zdHlsZXMge1xuICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICBAbWVkaWEgcHJpbnQge1xuICAgICoge1xuICAgICAgQGlmICRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kcyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50OyAvLyBCbGFjayBwcmludHMgZmFzdGVyOiBoNWJwLmNvbS9zXG4gICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgICAuaGlkZS1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICAgIHRhYmxlLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAgIHRoZWFkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB0Ym9keS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgdHIuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICAgIHRkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gICAgdGguc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cblxuICAgIC8vIERpc3BsYXkgdGhlIFVSTCBvZiBhIGxpbmsgYWZ0ZXIgdGhlIHRleHRcbiAgICBhLFxuICAgIGE6dmlzaXRlZCB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO31cbiAgICBhW2hyZWZdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKGhyZWYpICcpJzsgfVxuXG4gICAgLy8gRG9uJ3QgZGlzcGxheSB0aGUgVVJMIGZvciBpbWFnZXMgb3IgSmF2YVNjcmlwdC9pbnRlcm5hbCBsaW5rc1xuICAgIC5pciBhOmFmdGVyLFxuICAgIGFbaHJlZl49J2phdmFzY3JpcHQ6J106YWZ0ZXIsXG4gICAgYVtocmVmXj0nIyddOmFmdGVyIHsgY29udGVudDogJyc7IH1cblxuICAgIC8vIERpc3BsYXkgd2hhdCBhbiBhYmJyZXZpYXRpb24gc3RhbmRzIGZvciBhZnRlciB0aGUgdGV4dFxuICAgIGFiYnJbdGl0bGVdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKHRpdGxlKSAnKSc7IH1cblxuICAgIC8vIFByZXZlbnQgcGFnZSBicmVha3MgaW4gdGhlIG1pZGRsZSBvZiBhIGJsb2NrcXVvdGUgb3IgcHJlZm9ybWF0dGVkIHRleHQgYmxvY2tcbiAgICBwcmUsXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkZGFyay1ncmF5O1xuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIH1cblxuICAgIC8vIGg1YnAuY29tL3RcbiAgICB0aGVhZCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgfVxuXG4gICAgdHIsXG4gICAgaW1nIHsgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG5cbiAgICBpbWcgeyBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4gICAgQHBhZ2UgeyBtYXJnaW46IDAuNWNtOyB9XG5cbiAgICBwLFxuICAgIGgyLFxuICAgIGgzIHtcbiAgICAgIG9ycGhhbnM6IDM7XG4gICAgICB3aWRvd3M6IDM7XG4gICAgfVxuXG4gICAgLy8gQXZvaWQgcGFnZSBicmVha3MgYWZ0ZXIgYSBoZWFkaW5nXG4gICAgaDIsXG4gICAgaDMgeyBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDsgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBidXR0b25cbi8vLy9cblxuLy8vIFBhZGRpbmcgaW5zaWRlIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1wYWRkaW5nOiAwLjg1ZW0gMWVtICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGFyb3VuZCBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZmlsbCBmb3IgYnV0dG9ucy4gQ2FuIGVpdGhlciBiZSBgc29saWRgIG9yIGBob2xsb3dgLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRidXR0b24tZmlsbDogc29saWQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRidXR0b24tYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRidXR0b24tYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTE1JSkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3IgZm9yIGJ1dHRvbnMsIGlmIHRoZSBiYWNrZ3JvdW5kIGlzIGxpZ2h0LlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBidXR0b25zLCBkZWZhdWx0ZWQgdG8gZ2xvYmFsLXJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIFNpemVzIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIE1hcFxuJGJ1dHRvbi1zaXplczogKFxuICB0aW55OiAwLjZyZW0sXG4gIHNtYWxsOiAwLjc1cmVtLFxuICBkZWZhdWx0OiAwLjlyZW0sXG4gIGxhcmdlOiAxLjI1cmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIG9wYWNpdHkgZm9yIGEgZGlzYWJsZWQgYnV0dG9uLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDogMC4yNSAhZGVmYXVsdDtcblxuLy8gSW50ZXJuYWw6IGZsaXAgZnJvbSBtYXJnaW4tcmlnaHQgdG8gbWFyZ2luLWxlZnQgZm9yIGRlZmF1bHRzXG5AaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAncnRsJyB7XG4gICRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG59XG5cbi8vIFRPRE86IERvY3VtZW50IGJ1dHRvbi1iYXNlKCkgbWl4aW5cbkBtaXhpbiBidXR0b24tYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgcGFkZGluZzogJGJ1dHRvbi1wYWRkaW5nO1xuICBtYXJnaW46ICRidXR0b24tbWFyZ2luO1xuICBmb250LXNpemU6IG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCk7XG59XG5cbi8vLyBFeHBhbmRzIGEgYnV0dG9uIHRvIG1ha2UgaXQgZnVsbC13aWR0aC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgdGhlIGV4cGFuZCBiZWhhdmlvci4gU2V0IHRvIGBmYWxzZWAgdG8gcmV2ZXJzZSB0aGlzIGJlaGF2aW9yLlxuQG1peGluIGJ1dHRvbi1leHBhbmQoJGV4cGFuZDogdHJ1ZSkge1xuICBAaWYgJGV4cGFuZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luOiAkYnV0dG9uLW1hcmdpbjtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgdmlzdWFsIHN0eWxlIG9mIGEgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kLWhvdmVyIFskYnV0dG9uLWJhY2tncm91bmQtaG92ZXJdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uIG9uIGhvdmVyLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBob3ZlciBjb2xvci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbkBtaXhpbiBidXR0b24tc3R5bGUoXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvclxuKSB7XG4gIEBpZiAkY29sb3IgPT0gYXV0byB7XG4gICAgJGNvbG9yOiBmb3JlZ3JvdW5kKCRiYWNrZ3JvdW5kLCAkYnV0dG9uLWNvbG9yLWFsdCwgJGJ1dHRvbi1jb2xvcik7XG4gIH1cblxuICBAaWYgJGJhY2tncm91bmQtaG92ZXIgPT0gYXV0byB7XG4gICAgJGJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRiYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMjAlKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogJGNvbG9yO1xuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuLy8vIFJlbW92ZXMgYmFja2dyb3VuZCBmaWxsIG9uIGhvdmVyIGFuZCBmb2N1cyBmb3IgaG9sbG93IGJ1dHRvbnMuXG5AbWl4aW4gYnV0dG9uLWhvbGxvdyB7XG4gICYsXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbkBtaXhpbiBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcjogJHByaW1hcnktY29sb3IpIHtcbiAgJGNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6IC01MCUpO1xuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvcjtcbiAgY29sb3I6ICRjb2xvcjtcblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgICBjb2xvcjogJGNvbG9yLWhvdmVyO1xuICB9XG59XG5cbi8vLyBBZGRzIGRpc2FibGVkIHN0eWxlcyB0byBhIGJ1dHRvbiBieSBmYWRpbmcgdGhlIGVsZW1lbnQsIHJlc2V0aW5nIHRoZSBjdXJzb3IsIGFuZCBkaXNhYmxpbmcgcG9pbnRlciBldmVudHMuXG5AbWl4aW4gYnV0dG9uLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGJ1dHRvbi1jb2xvcjtcbiAgfVxufVxuXG4vLy8gQWRkcyBhIGRyb3Bkb3duIGFycm93IHRvIGEgYnV0dG9uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2l6ZSBbMC40ZW1dIC0gU2l6ZSBvZiB0aGUgYXJyb3cuIFdlIHJlY29tbWVuZCB1c2luZyBhbiBgZW1gIHZhbHVlIHNvIHRoZSB0cmlhbmdsZSBzY2FsZXMgd2hlbiB1c2VkIGluc2lkZSBkaWZmZXJlbnQgc2l6ZXMgb2YgYnV0dG9ucy5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgW3doaXRlXSAtIENvbG9yIG9mIHRoZSBhcnJvdy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG9mZnNldCBbJGJ1dHRvbi1wYWRkaW5nXSAtIERpc3RhbmNlIGJldHdlZW4gdGhlIGFycm93IGFuZCB0aGUgdGV4dCBvZiB0aGUgYnV0dG9uLiBEZWZhdWx0cyB0byB3aGF0ZXZlciB0aGUgcmlnaHQgcGFkZGluZyBvZiBhIGJ1dHRvbiBpcy5cbkBtaXhpbiBidXR0b24tZHJvcGRvd24oXG4gICRzaXplOiAwLjRlbSxcbiAgJGNvbG9yOiAkd2hpdGUsXG4gICRvZmZzZXQ6IGdldC1zaWRlKCRidXR0b24tcGFkZGluZywgcmlnaHQpXG4pIHtcbiAgJjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkc2l6ZSwgJGNvbG9yLCBkb3duKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwLjRlbTsgLy8gQWxpZ25zIHRoZSBhcnJvdyB3aXRoIHRoZSB0ZXh0IG9mIHRoZSBidXR0b25cbiAgICBmbG9hdDogI3skZ2xvYmFsLXJpZ2h0fTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiBnZXQtc2lkZSgkYnV0dG9uLXBhZGRpbmcsIHJpZ2h0KTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbn1cblxuLy8vIEFkZHMgYWxsIHN0eWxlcyBmb3IgYSBidXR0b24uIEZvciBtb3JlIGdyYW51bGFyIGNvbnRyb2wgb3ZlciBzdHlsZXMsIHVzZSB0aGUgaW5kaXZpZHVhbCBidXR0b24gbWl4aW5zLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGV4cGFuZCBbZmFsc2VdIC0gU2V0IHRvIGB0cnVlYCB0byBtYWtlIHRoZSBidXR0b24gZnVsbC13aWR0aC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbiBvbiBob3Zlci4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgaG92ZXIgY29sb3IuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3R5bGUgW3NvbGlkXSAtIFNldCB0byBgaG9sbG93YCB0byBjcmVhdGUgYSBob2xsb3cgYnV0dG9uLiBUaGUgY29sb3IgZGVmaW5lZCBpbiBgJGJhY2tncm91bmRgIHdpbGwgYmUgdXNlZCBhcyB0aGUgcHJpbWFyeSBjb2xvciBvZiB0aGUgYnV0dG9uLlxuQG1peGluIGJ1dHRvbihcbiAgJGV4cGFuZDogZmFsc2UsXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvcixcbiAgJHN0eWxlOiAkYnV0dG9uLWZpbGxcbikge1xuICBAaW5jbHVkZSBidXR0b24tYmFzZTtcblxuICBAaWYgJHN0eWxlID09IHNvbGlkIHtcbiAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJhY2tncm91bmQsICRiYWNrZ3JvdW5kLWhvdmVyLCAkY29sb3IpO1xuICB9XG4gIEBlbHNlIGlmICRzdHlsZSA9PSBob2xsb3cge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkYmFja2dyb3VuZCk7XG4gIH1cblxuICBAaWYgJGV4cGFuZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1idXR0b24ge1xuICAuYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBidXR0b247XG5cbiAgICAvLyBTaXplc1xuICAgIEBlYWNoICRzaXplLCAkdmFsdWUgaW4gbWFwLXJlbW92ZSgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KSB7XG4gICAgICAmLiN7JHNpemV9IHtcbiAgICAgICAgZm9udC1zaXplOiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5leHBhbmRlZCB7IEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7IH1cblxuICAgIC8vIENvbG9yc1xuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGhvbGxvdyB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkY29sb3IsIGF1dG8sIGF1dG8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuI3skbmFtZX0uZHJvcGRvd246OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBIb2xsb3cgc3R5bGVcbiAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGhvbGxvdyB7XG4gICAgICAmLmhvbGxvdyB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGU7XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEaXNhYmxlZCBzdHlsZVxuICAgICYuZGlzYWJsZWQsXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWRpc2FibGVkO1xuICAgIH1cblxuICAgIC8vIERyb3Bkb3duIGFycm93XG4gICAgJi5kcm9wZG93biB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZHJvcGRvd247XG5cbiAgICAgIEBpZiAkYnV0dG9uLWZpbGwgPT0gaG9sbG93IHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRidXR0b24tYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJ1dHRvbiB3aXRoIGRyb3Bkb3duIGFycm93IG9ubHlcbiAgICAmLmFycm93LW9ubHk6OmFmdGVyIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIHRvcDogLTAuMWVtO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBDaGVja3MgdGhlIGxpZ2h0bmVzcyBvZiBgJGNvbG9yYCwgYW5kIGlmIGl0IHBhc3NlcyB0aGUgYCR0aHJlc2hvbGRgIG9mIGxpZ2h0bmVzcywgaXQgcmV0dXJucyB0aGUgYCR5ZXNgIGNvbG9yLiBPdGhlcndpc2UsIGl0IHJldHVybnMgdGhlIGAkbm9gIGNvbG9yLiBVc2UgdGhpcyBmdW5jdGlvbiB0byBkeW5hbWljYWxseSBvdXRwdXQgYSBmb3JlZ3JvdW5kIGNvbG9yIGJhc2VkIG9uIGEgZ2l2ZW4gYmFja2dyb3VuZCBjb2xvci5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIHRvIGNoZWNrIHRoZSBsaWdodG5lc3Mgb2YuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJHllcyBbJGJsYWNrXSAtIENvbG9yIHRvIHJldHVybiBpZiBgJGNvbG9yYCBpcyBsaWdodC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkbm8gWyR3aGl0ZV0gLSBDb2xvciB0byByZXR1cm4gaWYgYCRjb2xvcmAgaXMgZGFyay5cbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICR0aHJlc2hvbGQgWzYwJV0gLSBUaHJlc2hvbGQgb2YgbGlnaHRuZXNzIHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IFRoZSAkeWVzIGNvbG9yIG9yICRubyBjb2xvci5cbkBmdW5jdGlvbiBmb3JlZ3JvdW5kKCRjb2xvciwgJHllczogJGJsYWNrLCAkbm86ICR3aGl0ZSwgJHRocmVzaG9sZDogNjAlKSB7XG4gIEBpZiAkY29sb3IgPT0gdHJhbnNwYXJlbnQge1xuICAgICRjb2xvcjogJGJvZHktYmFja2dyb3VuZDtcbiAgfVxuICBAaWYgKGxpZ2h0bmVzcygkY29sb3IpID4gJHRocmVzaG9sZCkge1xuICAgIEByZXR1cm4gJHllcztcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkbm87XG4gIH1cbn1cblxuLy8vIFNjYWxlcyBhIGNvbG9yIHRvIGJlIGxpZ2h0ZXIgaWYgaXQncyBsaWdodCwgb3IgZGFya2VyIGlmIGl0J3MgZGFyay4gVXNlIHRoaXMgZnVuY3Rpb24gdG8gdGludCBhIGNvbG9yIGFwcHJvcHJpYXRlIHRvIGl0cyBsaWdodG5lc3MuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBzY2FsZS5cbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICRzY2FsZSBbNSVdIC0gQW1vdW50IHRvIHNjYWxlIHVwIG9yIGRvd24uXG4vLy8gQHBhcmFtIHtQZXJjZW50YWdlfSAkdGhyZXNob2xkIFs0MCVdIC0gVGhyZXNob2xkIG9mIGxpZ2h0bmVzcyB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHJldHVybnMge0NvbG9yfSBBIHNjYWxlZCBjb2xvci5cbkBmdW5jdGlvbiBzbWFydC1zY2FsZSgkY29sb3IsICRzY2FsZTogNSUsICR0aHJlc2hvbGQ6IDQwJSkge1xuICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPiAkdGhyZXNob2xkIHtcbiAgICAkc2NhbGU6IC0kc2NhbGU7XG4gIH1cbiAgQHJldHVybiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRzY2FsZSk7XG59XG5cbi8vLyBUcmFuc2ZlcnMgdGhlIGNvbG9ycyBpbiB0aGUgYCRmb3VuZGF0aW9uLXBhbGV0dGVgIHZhcmlhYmxlIGludG8gdGhlIGxlZ2FjeSBjb2xvciB2YXJpYWJsZXMsIHN1Y2ggYXMgYCRwcmltYXJ5LWNvbG9yYCBhbmQgYCRzZWNvbmRhcnktY29sb3JgLiBDYWxsIHRoaXMgbWl4aW4gYmVsb3cgdGhlIEdsb2JhbCBzZWN0aW9uIG9mIHlvdXIgc2V0dGluZ3MgZmlsZSB0byBwcm9wZXJseSBtaWdyYXRlIHlvdXIgY29kZWJhc2UuXG5AbWl4aW4gYWRkLWZvdW5kYXRpb24tY29sb3JzKCkge1xuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkge1xuICAgICRwcmltYXJ5LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSkge1xuICAgICRzZWNvbmRhcnktY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc2Vjb25kYXJ5KSAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBzdWNjZXNzKSB7XG4gICAgJHN1Y2Nlc3MtY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc3VjY2VzcykgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgd2FybmluZykge1xuICAgICR3YXJuaW5nLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHdhcm5pbmcpICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KSB7XG4gICAgJGFsZXJ0LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KSAhZ2xvYmFsO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRm9udCBjb2xvciBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIG9mIHBsYWNlaG9sZGVyIHRleHQgd2l0aGluIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEZvbnRcbiRpbnB1dC1mb250LWZhbWlseTogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRpbnB1dC1mb250LXNpemU6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGZvY3VzZWQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGRpc2FibGVkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgZm9jdXNlZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJvcmRlci1mb2N1czogMXB4IHNvbGlkICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IGluc2lkZSB0ZXh0IGlucHV0cyB3aGVuIG5vdCBmb2N1c2VkLlxuLy8vIEB0eXBlIFNoYWRvd1xuJGlucHV0LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoJGJsYWNrLCAwLjEpICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBvdXRzaWRlIHRleHQgaW5wdXRzIHdoZW4gZm9jdXNlZC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRpbnB1dC1zaGFkb3ctZm9jdXM6IDAgMCA1cHggJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQ3Vyc29yIHRvIHVzZSB3aGVuIGhvdmVyaW5nIG92ZXIgYSBkaXNhYmxlZCB0ZXh0IGlucHV0LlxuLy8vIEB0eXBlIEN1cnNvclxuJGlucHV0LWN1cnNvci1kaXNhYmxlZDogbm90LWFsbG93ZWQgIWRlZmF1bHQ7XG5cbi8vLyBQcm9wZXJ0aWVzIHRvIHRyYW5zaXRpb24gb24gdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJGlucHV0LXRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlcyB0aGUgdXAvZG93biBidXR0b25zIHRoYXQgQ2hyb21lIGFuZCBGaXJlZm94IGFkZCB0byBgPGlucHV0IHR5cGU9J251bWJlcic+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kaW5wdXQtbnVtYmVyLXNwaW5uZXJzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gUmFkaXVzIGZvciB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1lbGVtZW50IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKyAoJGZvcm0tc3BhY2luZyAqIDEuNSkgLSByZW0tY2FsYygxKSk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIHBhZGRpbmc6ICRmb3JtLXNwYWNpbmcgLyAyO1xuICBib3JkZXI6ICRpbnB1dC1ib3JkZXI7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG5cbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBjb2xvcjogJGlucHV0LWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZDtcbiAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdztcbiAgYm9yZGVyLXJhZGl1czogJGlucHV0LXJhZGl1cztcblxuICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gIH1cblxuICAvLyBGb2N1cyBzdGF0ZVxuICAmOmZvY3VzIHtcbiAgICBib3JkZXI6ICRpbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZm9jdXM7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93LWZvY3VzO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tdGV4dCB7XG4gIC8vIFRleHQgaW5wdXRzXG4gICN7dGV4dC1pbnB1dHMoKX0sXG4gIHRleHRhcmVhIHtcbiAgICBAaW5jbHVkZSBmb3JtLWVsZW1lbnQ7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC8vIFRleHQgYXJlYXNcbiAgdGV4dGFyZWEge1xuICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICZbcm93c10ge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIGlucHV0LFxuICB0ZXh0YXJlYSB7XG4gICAgLy8gUGxhY2Vob2xkZXIgdGV4dFxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAkaW5wdXQtcGxhY2Vob2xkZXItY29sb3I7XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZWQvcmVhZG9ubHkgc3RhdGVcbiAgICAmOmRpc2FibGVkLFxuICAgICZbcmVhZG9ubHldIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkO1xuICAgICAgY3Vyc29yOiAkaW5wdXQtY3Vyc29yLWRpc2FibGVkO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IHN0eWxlcyBvbiBidXR0b24tbGlrZSBpbnB1dHNcbiAgW3R5cGU9J3N1Ym1pdCddLFxuICBbdHlwZT0nYnV0dG9uJ10ge1xuICAgIGJvcmRlci1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cblxuICAvLyBSZXNldCBOb3JtYWxpemUgc2V0dGluZyBjb250ZW50LWJveCB0byBzZWFyY2ggZWxlbWVudHNcbiAgLy8gc2Nzcy1saW50OmRpc2FibGUgUXVhbGlmeWluZ0VsZW1lbnRcbiAgaW5wdXRbdHlwZT0nc2VhcmNoJ10ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAvLyBOdW1iZXIgaW5wdXQgc3R5bGVzXG4gIFt0eXBlPSdudW1iZXInXSB7XG4gICAgQGlmIG5vdCAkaW5wdXQtbnVtYmVyLXNwaW5uZXJzIHtcbiAgICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuXG4gICAgICBbdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gICAgICBbdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tY2hlY2tib3gge1xuICBbdHlwZT0nZmlsZSddLFxuICBbdHlwZT0nY2hlY2tib3gnXSxcbiAgW3R5cGU9J3JhZGlvJ10ge1xuICAgIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIH1cblxuICAvLyBTdHlsZXMgZm9yIGlucHV0L2xhYmVsIHNpYmxpbmdzXG4gIFt0eXBlPSdjaGVja2JveCddICsgbGFiZWwsXG4gIFt0eXBlPSdyYWRpbyddICsgbGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkZm9ybS1zcGFjaW5nICogMC41O1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkZm9ybS1zcGFjaW5nO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuXG4gICAgJltmb3JdIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAvLyBTdHlsZXMgZm9yIGlucHV0cyBpbnNpZGUgbGFiZWxzXG4gIGxhYmVsID4gW3R5cGU9J2NoZWNrYm94J10sXG4gIGxhYmVsID4gW3R5cGU9J3JhZGlvJ10ge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkZm9ybS1zcGFjaW5nICogMC41O1xuICB9XG5cbiAgLy8gTm9ybWFsaXplIGZpbGUgaW5wdXQgd2lkdGhcbiAgW3R5cGU9J2ZpbGUnXSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBDb2xvciBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRmb3JtLWxhYmVsLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IGZvciBmb3JtIGxhYmVscy4gVGhlIGhpZ2hlciB0aGUgbnVtYmVyLCB0aGUgbW9yZSBzcGFjZSBiZXR3ZWVuIHRoZSBsYWJlbCBhbmQgaXRzIGlucHV0IGZpZWxkLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuOCAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkZm9ybS1sYWJlbC1jb2xvcjtcbn1cblxuQG1peGluIGZvcm0tbGFiZWwtbWlkZGxlIHtcbiAgJGlucHV0LWJvcmRlci13aWR0aDogZ2V0LWJvcmRlci12YWx1ZSgkaW5wdXQtYm9yZGVyLCB3aWR0aCk7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICgkZm9ybS1zcGFjaW5nIC8gMiArIHJlbS1jYWxjKCRpbnB1dC1ib3JkZXItd2lkdGgpKSAwO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWxhYmVsIHtcbiAgbGFiZWwge1xuICAgIEBpbmNsdWRlIGZvcm0tbGFiZWw7XG5cbiAgICAmLm1pZGRsZSB7XG4gICAgICBAaW5jbHVkZSBmb3JtLWxhYmVsLW1pZGRsZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWxwdGV4dC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWxwdGV4dC1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzdHlsZSBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIEtleXdvcmRcbiRoZWxwdGV4dC1mb250LXN0eWxlOiBpdGFsaWMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0taGVscHRleHQge1xuICAuaGVscC10ZXh0IHtcbiAgICAkbWFyZ2luLXRvcDogKCRmb3JtLXNwYWNpbmcgKiAwLjUpICogLTE7XG5cbiAgICBtYXJnaW4tdG9wOiAkbWFyZ2luLXRvcDtcbiAgICBmb250LXNpemU6ICRoZWxwdGV4dC1mb250LXNpemU7XG4gICAgZm9udC1zdHlsZTogJGhlbHB0ZXh0LWZvbnQtc3R5bGU7XG4gICAgY29sb3I6ICRoZWxwdGV4dC1jb2xvcjtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIENvbG9yIG9mIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXByZWZpeC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1wcmVmaXgtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTGVmdC9yaWdodCBwYWRkaW5nIG9mIGFuIHByZS9wb3N0Zml4ZWQgaW5wdXQgbGFiZWxcbiRpbnB1dC1wcmVmaXgtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1wcmVwb3N0Zml4IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKyAkZm9ybS1zcGFjaW5nICogMS41KTtcblxuICAuaW5wdXQtZ3JvdXAge1xuICAgIGRpc3BsYXk6IGlmKCRnbG9iYWwtZmxleGJveCwgZmxleCwgdGFibGUpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIH1cblxuICAgID4gOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCAwICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzIDAsICRnbG9iYWwtcmFkaXVzIDAgMCAkZ2xvYmFsLXJhZGl1cyk7XG4gICAgfVxuXG4gICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICA+ICoge1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgJGdsb2JhbC1yYWRpdXMgMCAwICRnbG9iYWwtcmFkaXVzLCAwICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzIDApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICVpbnB1dC1ncm91cC1jaGlsZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtbGFiZWwge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwICRpbnB1dC1wcmVmaXgtcGFkZGluZztcbiAgICBiYWNrZ3JvdW5kOiAkaW5wdXQtcHJlZml4LWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRpbnB1dC1wcmVmaXgtY29sb3I7XG4gICAgYm9yZGVyOiAkaW5wdXQtcHJlZml4LWJvcmRlcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogMSU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtcHJlZml4LWJvcmRlcikge1xuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1maWVsZCB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgIC8vIHNjc3MtbGludDpkaXNhYmxlIFplcm9Vbml0XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAxIDEgMHB4O1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB3aWR0aDogMSU7XG4gICAgfVxuXG4gICAgYSxcbiAgICBpbnB1dCxcbiAgICBidXR0b24ge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNwZWNpZmljaXR5IGJ1bXAgbmVlZGVkIHRvIHByZXZlbnQgb3ZlcnJpZGUgYnkgYnV0dG9uc1xuICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBRdWFsaWZ5aW5nU2VsZWN0b3JcbiAgLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24ge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJvcmRlciBhcm91bmQgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRmaWVsZHNldC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZmllbGRzZXQtcGFkZGluZzogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gYXJvdW5kIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZmllbGRzZXQtbWFyZ2luOiByZW0tY2FsYygxOCAwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBiZXR3ZWVuIHRoZSBsZWdlbmQgdGV4dCBhbmQgZmllbGRzZXQgYm9yZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGxlZ2VuZC1wYWRkaW5nOiByZW0tY2FsYygwIDMpICFkZWZhdWx0O1xuXG5AbWl4aW4gZmllbGRzZXQge1xuICBib3JkZXI6ICRmaWVsZHNldC1ib3JkZXI7XG4gIHBhZGRpbmc6ICRmaWVsZHNldC1wYWRkaW5nO1xuICBtYXJnaW46ICRmaWVsZHNldC1tYXJnaW47XG5cbiAgbGVnZW5kIHtcbiAgICAvLyBDb3ZlcnMgdXAgdGhlIGZpZWxkc2V0J3MgYm9yZGVyIHRvIGNyZWF0ZSBhcnRpZmljaWFsIHBhZGRpbmdcbiAgICBiYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuICAgIHBhZGRpbmc6ICRsZWdlbmQtcGFkZGluZztcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogcmVtLWNhbGMoLTMpO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tZmllbGRzZXQge1xuICBmaWVsZHNldCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgbGVnZW5kIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nICogMC41O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5maWVsZHNldCB7XG4gICAgQGluY2x1ZGUgZmllbGRzZXQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBzZWxlY3QgbWVudXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGhlIGRyb3Bkb3duIHRyaWFuZ2xlIGluc2lkZSBzZWxlY3QgbWVudXMuIFNldCB0byBgdHJhbnNwYXJlbnRgIHRvIHJlbW92ZSBpdCBlbnRpcmVseS5cbi8vLyBAdHlwZSBDb2xvclxuJHNlbGVjdC10cmlhbmdsZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciBzZWxlY3QgbWVudXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tc2VsZWN0IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKyAoJGZvcm0tc3BhY2luZyAqIDEuNSkgLSByZW0tY2FsYygxKSk7XG5cbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBwYWRkaW5nOiAoJGZvcm0tc3BhY2luZyAvIDIpO1xuICBib3JkZXI6ICRpbnB1dC1ib3JkZXI7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICRpbnB1dC1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1iYWNrZ3JvdW5kO1xuICBib3JkZXItcmFkaXVzOiAkc2VsZWN0LXJhZGl1cztcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgQGlmICRzZWxlY3QtdHJpYW5nbGUtY29sb3IgIT0gdHJhbnNwYXJlbnQge1xuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtdHJpYW5nbGUoJHNlbGVjdC10cmlhbmdsZS1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1zaXplOiA5cHggNnB4O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRnbG9iYWwtcmlnaHQgKC0kZm9ybS1zcGFjaW5nKSBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgcGFkZGluZy0jeyRnbG9iYWwtcmlnaHR9OiAoJGZvcm0tc3BhY2luZyAqIDEuNSk7XG4gIH1cblxuICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XG4gIH1cblxuICAvLyBIaWRlIHRoZSBkcm9wZG93biBhcnJvdyBzaG93biBpbiBuZXdlciBJRSB2ZXJzaW9uc1xuICAmOjotbXMtZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJlttdWx0aXBsZV0ge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tc2VsZWN0IHtcbiAgc2VsZWN0IHtcbiAgICBAaW5jbHVkZSBmb3JtLXNlbGVjdDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYWJpZGVcbi8vLy9cblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBpbnB1dHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWlucHV0czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBsYWJlbHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWxhYmVsczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgdG8gdXNlIGZvciBpbnZhbGlkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHRvIHVzZSBmb3IgbGFiZWxzIG9mIGludmFsaWQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgZm9ybSBlcnJvciB0ZXh0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtZXJyb3ItY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRpbnB1dC1lcnJvci1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBTdHlsZXMgdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlciBvZiBhbiBpbnB1dCBmaWVsZCB0byBoYXZlIGFuIGVycm9yIHN0YXRlLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRhbGVydC1jb2xvcl0gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYWNrZ3JvdW5kLWFscGhhIFswLjFdIC0gVHJhbnNwYXJlbmN5IGxldmVsIG9mIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuQG1peGluIGZvcm0taW5wdXQtZXJyb3IoXG4gICRiYWNrZ3JvdW5kOiAkaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkLFxuICAkYmFja2dyb3VuZC1hbHBoYTogMC4xXG4pIHtcbiAgJjpub3QoOmZvY3VzKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYmFja2dyb3VuZCwgJGJhY2tncm91bmQtYWxwaGEpO1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQ7XG4gIH1cbn1cblxuLy8vIEFkZHMgZXJyb3Igc3R5bGVzIHRvIGEgZm9ybSBlbGVtZW50LCB1c2luZyB0aGUgdmFsdWVzIGluIHRoZSBzZXR0aW5ncyBmaWxlLlxuQG1peGluIGZvcm0tZXJyb3Ige1xuICBkaXNwbGF5OiBub25lO1xuICBtYXJnaW4tdG9wOiAkZm9ybS1zcGFjaW5nICogLTAuNTtcbiAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZztcbiAgZm9udC1zaXplOiAkaW5wdXQtZXJyb3ItZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0O1xuICBjb2xvcjogJGlucHV0LWVycm9yLWNvbG9yO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWVycm9yIHtcbiAgQGlmICRhYmlkZS1pbnB1dHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBpbnZhbGlkIGlucHV0c1xuICAgIC5pcy1pbnZhbGlkLWlucHV0IHtcbiAgICAgIEBpbmNsdWRlIGZvcm0taW5wdXQtZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgQGlmICRhYmlkZS1sYWJlbHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBsYWJlbHMgb2YgaW52YWxpZCBvdXRwdXRzXG4gICAgLmlzLWludmFsaWQtbGFiZWwge1xuICAgICAgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gRm9ybSBlcnJvciBlbGVtZW50XG4gIC5mb3JtLWVycm9yIHtcbiAgICBAaW5jbHVkZSBmb3JtLWVycm9yO1xuXG4gICAgJi5pcy12aXNpYmxlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yKCRzaXplKSB7XG4gICRzaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAkc2l6ZTogLXpmLWJwLXRvLWVtKCRzaXplKSAtICgxIC8gMTYpO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgZG93bikge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCB3aXRoaW4gYSBjZXJ0YWluIGJyZWFrcG9pbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvci1vbmx5KCRzaXplKSB7XG4gICRsb3dlci1ib3VuZC1zaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAkdXBwZXItYm91bmQtc2l6ZTogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJHNpemUpO1xuXG4gIC8vIG1vcmUgb2Z0ZW4gdGhhbiBub3QgdGhpcyB3aWxsIGJlIGNvcnJlY3QsIGp1c3Qgb25lIHRpbWUgcm91bmQgdGhlIGxvb3AgaXQgd29uJ3Qgc28gc2V0IGluIHNjb3BlIGhlcmVcbiAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpIC0gKDEgLyAxNik7XG4gIC8vIHRlc3QgYWN0dWFsIGxvd2VyLWJvdW5kLXNpemUsIGlmIDAgc2V0IGl0IHRvIDBlbVxuICBAaWYgc3RyaXAtdW5pdCgkbG93ZXItYm91bmQtc2l6ZSkgPT0gMCB7XG4gICAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpO1xuICB9XG5cbiAgQGlmICR1cHBlci1ib3VuZC1zaXplID09IG51bGwge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgJHVwcGVyLWJvdW5kOiAtemYtYnAtdG8tZW0oJHVwcGVyLWJvdW5kLXNpemUpO1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxvd2VyLWJvdW5kKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkdXBwZXItYm91bmQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8gU2hvdyBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIGFuZCBoaWRlIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIGhpZGUtZm9yKCRzaXplKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvci1vbmx5KCRzaXplKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgb25seSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXMge1xuICAvLyBCYXNpYyBoaWRpbmcgY2xhc3Nlc1xuICAuaGlkZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmludmlzaWJsZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgLy8gUmVzcG9uc2l2ZSB2aXNpYmlsaXR5IGNsYXNzZXNcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIC5oaWRlLWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIGhpZGUtZm9yKCRzaXplKTtcbiAgICAgIH1cblxuICAgICAgLnNob3ctZm9yLSN7JHNpemV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvdy1mb3IoJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5oaWRlLWZvci0jeyRzaXplfS1vbmx5IHtcbiAgICAgIEBpbmNsdWRlIGhpZGUtZm9yLW9ubHkoJHNpemUpO1xuICAgIH1cblxuICAgIC5zaG93LWZvci0jeyRzaXplfS1vbmx5IHtcbiAgICAgIEBpbmNsdWRlIHNob3ctZm9yLW9ubHkoJHNpemUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNjcmVlbiByZWFkZXIgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIC8vIE5lZWQgYSBcImhpZGUtZm9yLXNyXCIgY2xhc3M/IEFkZCBhcmlhLWhpZGRlbj0ndHJ1ZScgdG8gdGhlIGVsZW1lbnRcbiAgLnNob3ctZm9yLXNyLFxuICAuc2hvdy1vbi1mb2N1cyB7XG4gICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGU7XG4gIH1cblxuICAvLyBPbmx5IGRpc3BsYXkgdGhlIGVsZW1lbnQgd2hlbiBpdCdzIGZvY3VzZWRcbiAgLnNob3ctb24tZm9jdXMge1xuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGUtb2ZmO1xuICAgIH1cbiAgfVxuXG4gIC8vIExhbmRzY2FwZSBhbmQgcG9ydHJhaXQgdmlzaWJpbGl0eVxuICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhbmRzY2FwZSkge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhbmRzY2FwZSkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocG9ydHJhaXQpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVhZGNydW1ic1xuLy8vL1xuXG4vLy8gTWFyZ2luIGFyb3VuZCBhIGJyZWFkY3J1bWJzIGNvbnRhaW5lci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDExKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgQ29sb3JcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBhY3RpdmUgYnJlYWRjcnVtYiBsaW5rLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBPcGFjaXR5IG9mIGRpc2FibGVkIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGJldHdlZW4gYnJlYWRjcnVtYiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1pdGVtLW1hcmdpbjogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgbWFrZXMgYnJlYWRjcnVtYiBsaW5rcyB1cHBlcmNhc2UuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhZGRzIGEgc2xhc2ggYmV0d2VlbiBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRicmVhZGNydW1icy1pdGVtLXNsYXNoOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgYnJlYWRjcnVtYnMgY29udGFpbmVyLCBhbG9uZyB3aXRoIHRoZSBzdHlsZXMgZm9yIHRoZSBgPGxpPmAgYW5kIGA8YT5gIGVsZW1lbnRzIGluc2lkZSBvZiBpdC5cbkBtaXhpbiBicmVhZGNydW1icy1jb250YWluZXIge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAkYnJlYWRjcnVtYnMtbWFyZ2luO1xuXG4gIC8vIEl0ZW0gd3JhcHBlclxuICBsaSB7XG4gICAgZmxvYXQ6ICN7JGdsb2JhbC1sZWZ0fTtcbiAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDtcbiAgICBmb250LXNpemU6ICRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICBAaWYgJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgQGlmICRicmVhZGNydW1icy1pdGVtLXNsYXNoIHtcbiAgICAgIC8vIE5lZWQgdG8gZXNjYXBlIHRoZSBiYWNrc2xhc2hcbiAgICAgICRzbGFzaDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAnbHRyJywgJy8nLCAnXFxcXCcpO1xuXG4gICAgICAmOm5vdCg6bGFzdC1jaGlsZCk6OmFmdGVyIHtcbiAgICAgICAgY29sb3I6ICRtZWRpdW0tZ3JheTtcbiAgICAgICAgY29udGVudDogJHNsYXNoO1xuICAgICAgICBtYXJnaW46IDAgJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogMXB4O1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhZ2UgbGlua3NcbiAgYSB7XG4gICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnJlYWRjcnVtYnMge1xuICAuYnJlYWRjcnVtYnMge1xuICAgIEBpbmNsdWRlIGJyZWFkY3J1bWJzLWNvbnRhaW5lcjtcblxuICAgIC5kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJpbGxkb3duXG4vLy8vXG5cbi8vLyBUcmFuc2l0aW9uIHByb3BlcnR5IHRvIHVzZSBmb3IgYW5pbWF0aW5nIG1lbnVzLlxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRkcmlsbGRvd24tdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhciAhZGVmYXVsdDtcblxuLy8vIEFkZHMgYXJyb3dzIHRvIGRyaWxsZG93biBpdGVtcyB3aXRoIHN1Ym1lbnVzLCBhcyB3ZWxsIGFzIHRoZSBiYWNrIGJ1dHRvbi5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZHJpbGxkb3duLWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcmlsbGRvd24tYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgZHJpbGxkb3duIHN1Ym1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJpbGxkb3duLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnUge1xuICAvLyBBcHBsaWVkIHRvIHRoZSBNZW51IGNvbnRhaW5lclxuICAuaXMtZHJpbGxkb3duIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIGxpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gQXBwbGllZCB0byBuZXN0ZWQgPHVsPnNcbiAgLmlzLWRyaWxsZG93bi1zdWJtZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogMTAwJTtcbiAgICB6LWluZGV4OiAtMTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogJGRyaWxsZG93bi1iYWNrZ3JvdW5kO1xuICAgIHRyYW5zaXRpb246ICRkcmlsbGRvd24tdHJhbnNpdGlvbjtcblxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IGx0ciwgLTEwMCUsIDEwMCUpKTtcbiAgICB9XG5cbiAgICAmLmlzLWNsb3Npbmcge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gbHRyLCAxMDAlLCAtMTAwJSkpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkZHJpbGxkb3duLWFycm93cyB7XG4gICAgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSg2cHgsICRkcmlsbGRvd24tYXJyb3ctY29sb3IsICRnbG9iYWwtcmlnaHQpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBtYXJnaW4tdG9wOiAtNnB4O1xuICAgICAgICAjeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5qcy1kcmlsbGRvd24tYmFjayA+IGE6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoNnB4LCAkZHJpbGxkb3duLWFycm93LWNvbG9yLCAkZ2xvYmFsLWxlZnQpO1xuICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fS13aWR0aDogMDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMC43NXJlbTsgLy8gQ3JlYXRlcyBzcGFjZSBiZXR3ZWVuIHRoZSBhcnJvdyBhbmQgdGhlIHRleHRcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyb3Bkb3duLW1lbnVcbi8vLy9cblxuLy8vIEVuYWJsZXMgYXJyb3dzIGZvciBpdGVtcyB3aXRoIGRyb3Bkb3duIG1lbnVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRkcm9wZG93bm1lbnUtYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcm9wZG93biBtZW51IGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3I6ICRhbmNob3ItY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBNaW5pbXVtIHdpZHRoIG9mIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtbWluLXdpZHRoOiAyMDBweCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGRyb3Bkb3ducy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgZm9yIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd25tZW51LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8gQm9yZGVyIHdpZHRoIGZvciBkcm9wZG93biBzdWItbWVudXMuXG4vLyBVc2VkIHRvIGFkanVzdCB0b3AgbWFyZ2luIG9mIGEgc3ViLW1lbnUgaWYgYSBib3JkZXIgaXMgdXNlZC5cbi8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGg6IG50aCgkZHJvcGRvd25tZW51LWJvcmRlciwgMSk7XG5cbkBtaXhpbiBsZWZ0LXJpZ2h0LWFycm93cyB7XG4gID4gYTo6YWZ0ZXIge1xuICAgICN7JGdsb2JhbC1yaWdodH06IDE0cHg7XG4gICAgbWFyZ2luLXRvcDogLTNweDtcbiAgfVxuXG4gICYub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoNXB4LCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBsZWZ0KTtcbiAgfVxuXG4gICYub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKDVweCwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgcmlnaHQpO1xuICB9XG59XG5cbkBtaXhpbiBkcm9wZG93bi1tZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xuICAgID4gbGkub3BlbnMtbGVmdCB7XG4gICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGxpLm9wZW5zLXJpZ2h0IHtcbiAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgICAgIHBhZGRpbmctI3skZ2xvYmFsLXJpZ2h0fTogMS41cmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG5cbiAgICAgID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSg1cHgsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIGRvd24pO1xuICAgICAgICAjeyRnbG9iYWwtcmlnaHR9OiA1cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IC0ycHg7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gdmVydGljYWwge1xuICAgID4gbGkge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDA7XG4gICAgICB9XG5cbiAgICAgICYub3BlbnMtbGVmdCB7XG4gICAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5vcGVucy1yaWdodCB7XG4gICAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgICAgQGluY2x1ZGUgbGVmdC1yaWdodC1hcnJvd3M7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnVGhlIGRpcmVjdGlvbiB1c2VkIGZvciBkcm9wZG93bi1tZW51LWRpcmVjdGlvbigpIG11c3QgYmUgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbC4nO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnUge1xuICAuZHJvcGRvd24ubWVudSB7XG4gICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG5cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgICB9XG5cbiAgICAubm8tanMgJiB1bCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICYudmVydGljYWwge1xuICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgIH1cblxuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICAgICYuI3skc2l6ZX0taG9yaXpvbnRhbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLiN7JHNpemV9LXZlcnRpY2FsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmFsaWduLXJpZ2h0IHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51LmZpcnN0LXN1YiB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLW1lbnUudmVydGljYWwge1xuICAgIHdpZHRoOiAxMDBweDtcblxuICAgICYuYWxpZ24tcmlnaHQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgYTo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiA1cHg7XG4gICAgICBtYXJnaW4tdG9wOiAtMnB4O1xuICAgIH1cblxuICAgICYub3BlbnMtaW5uZXIgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG5cbiAgICAgIHRvcDogMTAwJTtcbiAgICAgIEBpZiAkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdydGwnIHtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgJi5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgbGVmdDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogMTAwJTtcbiAgICBtaW4td2lkdGg6ICRkcm9wZG93bm1lbnUtbWluLXdpZHRoO1xuICAgIHotaW5kZXg6IDE7XG4gICAgYmFja2dyb3VuZDogJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kO1xuICAgIGJvcmRlcjogJGRyb3Bkb3dubWVudS1ib3JkZXI7XG5cbiAgICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICAgICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgICAgQGluY2x1ZGUgbGVmdC1yaWdodC1hcnJvd3M7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICh0eXBlLW9mKCRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoKSA9PSAnbnVtYmVyJykge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICBtYXJnaW4tdG9wOiAoLSRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGxpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC8vIFtUT0RPXSBDdXQgYmFjayBzcGVjaWZpY2l0eVxuICAgIC8vIHNjc3MtbGludDpkaXNhYmxlIFNlbGVjdG9yRGVwdGhcbiAgICAvLyY6bm90KC5qcy1kcm9wZG93bi1ub2hvdmVyKSA+IC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudDpob3ZlciA+ICYsIC8vIHdoeSBpcyB0aGlzIGxpbmUgbmVlZGVkPyBPcGVuaW5nIGlzIGhhbmRsZWQgYnkgSlMgYW5kIHRoaXMgY2F1c2VzIHNvbWUgdWdseSBmbGlja2VyaW5nIHdoZW4gdGhlIHN1YiBpcyByZS1wb3NpdGlvbmVkIGF1dG9tYXRpY2FsbHkuLi5cbiAgICAmLmpzLWRyb3Bkb3duLWFjdGl2ZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZsZXgtdmlkZW9cbi8vLy9cblxuLy8vIE1hcmdpbiBiZWxvdyBhIGZsZXggdmlkZW8gY29udGFpbmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGZsZXh2aWRlby1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIHVzZWQgdG8gY3JlYXRlIGEgNDozIGFzcGVjdCByYXRpby5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmbGV4dmlkZW8tcmF0aW86IDQgYnkgMyAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgdXNlZCB0byBjcmVhdGUgYSAxNjo5IGFzcGVjdCByYXRpby5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmbGV4dmlkZW8tcmF0aW8td2lkZXNjcmVlbjogMTYgYnkgOSAhZGVmYXVsdDtcblxuLy8vIENyZWF0ZXMgYSBwZXJjZW50YWdlIGhlaWdodCB0aGF0IGNhbiBiZSB1c2VkIGFzIHBhZGRpbmcgaW4gYSBmbGV4IHZpZGVvIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge0xpc3R9ICRyYXRpbyAtIFJhdGlvIHRvIHVzZSB0byBjYWxjdWxhdGUgdGhlIGhlaWdodCwgZm9ybWF0dGVkIGFzIGB4IGJ5IHlgLlxuLy8vIEByZXR1cm4ge051bWJlcn0gQSBwZXJjZW50YWdlIHZhbHVlIHRoYXQgY2FuIGJlIHVzZWQgYXMgdGhlIGBwYWRkaW5nLWJvdHRvbWAgcGFyYW1ldGVyIG9mIGEgZmxleCB2aWRlbyBjb250YWluZXIuXG5AZnVuY3Rpb24gZmxleC12aWRlbygkcmF0aW8pIHtcbiAgJHc6IG50aCgkcmF0aW8sIDEpO1xuICAkaDogbnRoKCRyYXRpbywgMyk7XG4gIEByZXR1cm4gJGggLyAkdyAqIDEwMCU7XG59XG5cbi8vLyBDcmVhdGVzIGEgZmxleCB2aWRlbyBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtMaXN0fSAkcmF0aW8gWyRmbGV4dmlkZW8tcmF0aW9dIC0gUmF0aW8gdG8gdXNlIGZvciB0aGUgY29udGFpbmVyLCBmb3JtYXR0ZWQgYXMgYHggYnkgeWAuXG5AbWl4aW4gZmxleC12aWRlbygkcmF0aW86ICRmbGV4dmlkZW8tcmF0aW8pIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIHBhZGRpbmctYm90dG9tOiBmbGV4LXZpZGVvKCRyYXRpbyk7XG4gIG1hcmdpbi1ib3R0b206ICRmbGV4dmlkZW8tbWFyZ2luLWJvdHRvbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICBpZnJhbWUsXG4gIG9iamVjdCxcbiAgZW1iZWQsXG4gIHZpZGVvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZmxleC12aWRlbyB7XG4gIC5mbGV4LXZpZGVvIHtcbiAgICBAaW5jbHVkZSBmbGV4LXZpZGVvO1xuXG4gICAgJi53aWRlc2NyZWVuIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiBmbGV4LXZpZGVvKCRmbGV4dmlkZW8tcmF0aW8td2lkZXNjcmVlbik7XG4gICAgfVxuXG4gICAgJi52aW1lbyB7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGxhYmVsXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGxhYmVsLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsYWJlbC1jb2xvcjogZm9yZWdyb3VuZCgkbGFiZWwtYmFja2dyb3VuZCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxhYmVsLWZvbnQtc2l6ZTogMC44cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGFiZWwtcGFkZGluZzogMC4zMzMzM3JlbSAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBvZiBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGFiZWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyBiYXNlIHN0eWxlcyBmb3IgYSBsYWJlbC5cbkBtaXhpbiBsYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogJGxhYmVsLXBhZGRpbmc7XG4gIGZvbnQtc2l6ZTogJGxhYmVsLWZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgYm9yZGVyLXJhZGl1czogJGxhYmVsLXJhZGl1cztcbn1cblxuQG1peGluIGZvdW5kYXRpb24tbGFiZWwge1xuICAubGFiZWwge1xuICAgIEBpbmNsdWRlIGxhYmVsO1xuXG4gICAgYmFja2dyb3VuZDogJGxhYmVsLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRsYWJlbC1jb2xvcjtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICBAaWYgJG5hbWUgIT0gcHJpbWFyeSB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICAgICAgICBjb2xvcjogZm9yZWdyb3VuZCgkY29sb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBtZWRpYS1vYmplY3Rcbi8vLy9cblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgYSBtZWRpYSBvYmplY3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVkaWFvYmplY3QtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IGFuZCByaWdodCBwYWRkaW5nIG9uIHNlY3Rpb25zIHdpdGhpbiBhIG1lZGlhIG9iamVjdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFdpZHRoIG9mIGltYWdlcyB3aXRoaW4gYSBtZWRpYSBvYmplY3QsIHdoZW4gdGhlIG9iamVjdCBpcyBzdGFja2VkIHZlcnRpY2FsbHkuIFNldCB0byAnYXV0bycgdG8gdXNlIHRoZSBpbWFnZSdzIG5hdHVyYWwgd2lkdGguXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVkaWFvYmplY3QtaW1hZ2Utd2lkdGgtc3RhY2tlZDogMTAwJSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIG1lZGlhIG9iamVjdCBjb250YWluZXIuXG5AbWl4aW4gbWVkaWEtb2JqZWN0LWNvbnRhaW5lciB7XG4gIG1hcmdpbi1ib3R0b206ICRtZWRpYW9iamVjdC1tYXJnaW4tYm90dG9tO1xuICBkaXNwbGF5OiBpZigkZ2xvYmFsLWZsZXhib3gsIGZsZXgsIGJsb2NrKTtcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHNlY3Rpb25zIHdpdGhpbiBhIG1lZGlhIG9iamVjdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHBhZGRpbmcgWyRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmddIC0gUGFkZGluZyBiZXR3ZWVuIHNlY3Rpb25zLlxuQG1peGluIG1lZGlhLW9iamVjdC1zZWN0aW9uKCRwYWRkaW5nOiAkbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIH1cblxuICAmOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICRwYWRkaW5nO1xuICB9XG5cbiAgJjpsYXN0LWNoaWxkOm5vdCg6bnRoLWNoaWxkKDIpKSB7XG4gICAgcGFkZGluZy0jeyRnbG9iYWwtbGVmdH06ICRwYWRkaW5nO1xuICB9XG5cbiAgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgdG8gc3RhY2sgc2VjdGlvbnMgb2YgYSBtZWRpYSBvYmplY3QuIEFwcGx5IHRoaXMgdG8gdGhlIHNlY3Rpb24gZWxlbWVudHMsIG5vdCB0aGUgY29udGFpbmVyLlxuQG1peGluIG1lZGlhLW9iamVjdC1zdGFjayB7XG4gIHBhZGRpbmc6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAkbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIGltZyB7XG4gICAgd2lkdGg6ICRtZWRpYW9iamVjdC1pbWFnZS13aWR0aC1zdGFja2VkO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW1lZGlhLW9iamVjdCB7XG4gIC5tZWRpYS1vYmplY3Qge1xuICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1jb250YWluZXI7XG5cbiAgICBpbWcge1xuICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgJi5zdGFjay1mb3ItI3skLXpmLXplcm8tYnJlYWtwb2ludH0ge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtemVyby1icmVha3BvaW50IG9ubHkpIHtcbiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrLWZvci0jeyQtemYtemVyby1icmVha3BvaW50fSAubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXplcm8tYnJlYWtwb2ludCBvbmx5KSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1zdGFjaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xuICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1zZWN0aW9uO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxuICAgICAgJi5tYWluLXNlY3Rpb24ge1xuICAgICAgICBmbGV4OiAxIDEgMHB4O1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAmLm1pZGRsZSB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB9XG5cbiAgICAgICYuYm90dG9tIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG1lbnVcbi8vLy9cblxuLy8vIE1hcmdpbiBvZiBhIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0LWhhbmQgbWFyZ2luIG9mIGEgbmVzdGVkIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1tYXJnaW4tbmVzdGVkOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgaXRlbXMgaW4gYSBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaXRlbS1wYWRkaW5nOiAwLjdyZW0gMXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYW4gYWN0aXZlIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtaXRlbS1jb2xvci1hY3RpdmU6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYW4gYWN0aXZlIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBhbiBpY29uIGFuZCB0ZXh0IGluIGEgbWVudSBpdGVtLlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaWNvbi1zcGFjaW5nOiAwLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gQ3JlYXRlcyB0aGUgYmFzZSBzdHlsZXMgZm9yIGEgTWVudS5cbkBtaXhpbiBtZW51LWJhc2Uge1xuICBtYXJnaW46ICRtZW51LW1hcmdpbjtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gIC8vIExpc3QgaXRlbXMgYXJlIHRhYmxlIGNlbGwgdG8gYWxsb3cgZm9yIHZlcnRpY2FsIGFsaWdubWVudFxuICA+IGxpIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cblxuICAvLyBSZXNldCBsaW5lIGhlaWdodCB0byBtYWtlIHRoZSBoZWlnaHQgb2YgdGhlIG92ZXJhbGwgaXRlbSBlYXNpZXIgdG8gY2FsY3VsYXRlXG4gID4gbGkgPiBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkbWVudS1pdGVtLXBhZGRpbmc7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cblxuICAvLyBSZXNldCBzdHlsZXMgb2YgaW5uZXIgZWxlbWVudHNcbiAgaW5wdXQsXG4gIGEsXG4gIGJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gRXhwYW5kcyB0aGUgaXRlbXMgb2YgYSBNZW51LCBzbyBlYWNoIGl0ZW0gaXMgdGhlIHNhbWUgd2lkdGguXG5AbWl4aW4gbWVudS1leHBhbmQge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxuICAgID4gbGkge1xuICAgICAgZmxleDogMSAxIDBweDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIGRpcmVjdGlvbiBvZiBhIE1lbnUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIFtob3Jpem9udGFsXSAtIERpcmVjdGlvbiBvZiB0aGUgTWVudS4gQ2FuIGJlIGBob3Jpem9udGFsYCBvciBgdmVydGljYWxgLlxuQG1peGluIG1lbnUtZGlyZWN0aW9uKCRkaXI6IGhvcml6b250YWwpIHtcbiAgQGlmICRkaXIgPT0gaG9yaXpvbnRhbCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcblxuICAgICAgPiBsaSB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICA+IGxpIHtcbiAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGRpciA9PSB2ZXJ0aWNhbCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAgID4gbGkge1xuICAgICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICA+IGxpICA+IGEge1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICA+IGxpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnVGhlIGRpcmVjdGlvbiB1c2VkIGZvciBtZW51LWRpcmVjdGlvbigpIG11c3QgYmUgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbC4nO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgc2ltcGxlIE1lbnUsIHdoaWNoIGhhcyBubyBwYWRkaW5nIG9yIGhvdmVyIHN0YXRlLlxuQG1peGluIG1lbnUtc2ltcGxlIHtcbiAgbGkge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogZ2V0LXNpZGUoJG1lbnUtaXRlbS1wYWRkaW5nLCAkZ2xvYmFsLXJpZ2h0KTtcbiAgfVxuXG4gIGEge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIG5lc3RlZCBNZW51LCBieSBhZGRpbmcgYG1hcmdpbi1sZWZ0YCB0byB0aGUgbWVudS5cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkcGFkZGluZyBbYXV0b10gLSBMZW5ndGggb2YgdGhlIG1hcmdpbi5cbkBtaXhpbiBtZW51LW5lc3RlZCgkbWFyZ2luOiAkbWVudS1tYXJnaW4tbmVzdGVkKSB7XG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRtYXJnaW47XG59XG5cbi8vLyBBZGRzIHN1cHBvcnQgZm9yIGljb25zIHRvIE1lbnUgaXRlbXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkcG9zaXRpb24gW3NpZGVdIC0gUG9zaXRpb25pbmcgZm9yIGljb25zLiBDYW4gYmUgYHNpZGVgIChsZWZ0LCBvciByaWdodCBvbiBSVEwpIG9yIGB0b3BgLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGJhc2UgW3RydWVdIC0gU2V0IHRvIGBmYWxzZWAgdG8gcHJldmVudCB0aGUgc2hhcmVkIENTUyBiZXR3ZWVuIHNpZGUtIGFuZCB0b3AtYWxpZ25lZCBpY29ucyBmcm9tIGJlaW5nIHByaW50ZWQuIFNldCB0aGlzIHRvIGBmYWxzZWAgaWYgeW91J3JlIGNhbGxpbmcgdGhlIG1peGluIG11bHRpcGxlIHRpbWVzIG9uIHRoZSBzYW1lIGVsZW1lbnQuXG5AbWl4aW4gbWVudS1pY29ucygkcG9zaXRpb246IHNpZGUsICRiYXNlOiB0cnVlKSB7XG4gIEBpZiAkYmFzZSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICA+IGxpID4gYSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgID4gbGkgPiBhIHtcbiAgICAgICAgaW1nLFxuICAgICAgICBpLFxuICAgICAgICBzdmcge1xuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICArIHNwYW4ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJHBvc2l0aW9uID09IHNpZGUge1xuICAgID4gbGkgPiBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJG1lbnUtaWNvbi1zcGFjaW5nO1xuXG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgPiBsaSA+IGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbjogMCBhdXRvICRtZW51LWljb24tc3BhY2luZztcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogJG1lbnUtaWNvbi1zcGFjaW5nO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZW51LXRleHQge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIHBhZGRpbmc6ICRtZW51LWl0ZW0tcGFkZGluZztcbn1cblxuQG1peGluIGZvdW5kYXRpb24tbWVudSB7XG4gIC5tZW51IHtcbiAgICBAaW5jbHVkZSBtZW51LWJhc2U7XG4gICAgQGluY2x1ZGUgbWVudS1pY29ucztcblxuICAgIC8vIE9yaWVudGF0aW9uXG4gICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG5cbiAgICAmLnZlcnRpY2FsIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICB9XG5cbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgICAmLiN7JHNpemV9LWhvcml6b250YWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi4jeyRzaXplfS12ZXJ0aWNhbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2ltcGxlXG4gICAgJi5zaW1wbGUge1xuICAgICAgQGluY2x1ZGUgbWVudS1zaW1wbGU7XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gcmlnaHRcbiAgICAmLmFsaWduLSN7JGdsb2JhbC1yaWdodH0ge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuXG4gICAgICAgID4gbGkge1xuICAgICAgICAgIGZsb2F0OiAkZ2xvYmFsLXJpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXZlbi13aWR0aFxuICAgICYuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG5cbiAgICAgID4gbGk6Zmlyc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFZlcnRpY2FsIGljb25zXG4gICAgJi5pY29uLXRvcCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb25zKHRvcCwgJGJhc2U6IGZhbHNlKTtcbiAgICB9XG5cbiAgICAvLyBOZXN0aW5nXG4gICAgJi5uZXN0ZWQge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQ7XG4gICAgfVxuXG4gICAgLy8gQWN0aXZlIHN0YXRlXG4gICAgLmFjdGl2ZSA+IGEge1xuICAgICAgY29sb3I6ICRtZW51LWl0ZW0tY29sb3ItYWN0aXZlO1xuICAgICAgYmFja2dyb3VuZDogJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICB9XG4gIH1cblxuICAubWVudS10ZXh0IHtcbiAgICBAaW5jbHVkZSBtZW51LXRleHQ7XG4gIH1cblxuICAvLyBBbGlnbiBjZW50ZXJcbiAgLm1lbnUtY2VudGVyZWQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgID4gLm1lbnUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgfVxuXG4gIC8vIFByZXZlbnQgRk9VQyB3aGVuIHVzaW5nIHRoZSBSZXNwb25zaXZlIE1lbnUgcGx1Z2luXG4gIC5uby1qcyBbZGF0YS1yZXNwb25zaXZlLW1lbnVdIHVsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBvZmYtY2FudmFzXG4vLy8vXG5cbi8vLyBXaWR0aCBvZiBhbiBvZmYtY2FudmFzIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLXNpemU6IDI1MHB4ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBvZmYtY2FudmFzIG1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRvZmZjYW52YXMtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBaLWluZGV4IG9mIGFuIG9mZi1jYW52YXMgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtemluZGV4OiAtMSAhZGVmYXVsdDtcblxuLy8vIExlbmd0aCBvZiB0aGUgYW5pbWF0aW9uIG9uIGFuIG9mZi1jYW52YXMgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGg6IDAuNXMgIWRlZmF1bHQ7XG5cbi8vLyBUaW1pbmcgZnVuY3Rpb24gb2YgdGhlIGFuaW1hdGlvbiBvbiBhbiBvZmYtY2FudmFzIG1lbnUuXG4vLy8gQHR5cGUgS2V5d29yZFxuJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZzogZWFzZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYSByZXZlYWxlZCBvZmYtY2FudmFzIHdpbGwgYmUgZml4ZWQtcG9zaXRpb24sIGFuZCBzY3JvbGwgd2l0aCB0aGUgc2NyZWVuLlxuJG9mZmNhbnZhcy1maXhlZC1yZXZlYWw6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgb3ZlcmxheSB0aGF0IGFwcGVhcnMgd2hlbiBhbiBvZmYtY2FudmFzIG1lbnUgaXMgb3Blbi5cbi8vLyBAdHlwZSBDb2xvclxuJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAwLjI1KSAhZGVmYXVsdDtcblxuLy8vIENTUyBjbGFzcyB1c2VkIGZvciB0aGUgbWFpbiBjb250ZW50IGFyZWEuIFRoZSBvZmYtY2FudmFzIG1peGlucyB1c2UgdGhpcyB0byB0YXJnZXQgdGhlIHBhZ2UgYm9keS5cbiRtYWluY29udGVudC1jbGFzczogJ29mZi1jYW52YXMtY29udGVudCcgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IHRvIHBsYWNlIHVuZGVyIHRoZSBtYWluIGNvbnRlbnQgYXJlYS4gVGhpcyBzaGFkb3cgb3ZlcmxhcHMgdGhlIG9mZi1jYW52YXMgbWVudXMuXG4vLy8gQHR5cGUgU2hhZG93XG4kbWFpbmNvbnRlbnQtc2hhZG93OiAwIDAgMTBweCByZ2JhKCRibGFjaywgMC41KSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgYmFzZWxpbmUgc3R5bGVzIGZvciBvZmYtY2FudmFzLiBUaGlzIENTUyBpcyByZXF1aXJlZCB0byBtYWtlIHRoZSBvdGhlciBwaWVjZXMgd29yay5cbkBtaXhpbiBvZmYtY2FudmFzLWJhc2ljcyB7XG4gIC8vIEV4dHJhIHByb3BlcnRpZXMgbmVlZGVkIG9uIDxodG1sPiBhbmQgPGJvZHk+IHRvIG1ha2Ugb2ZmLWNhbnZhcyB3b3JrXG4gIGh0bWwsXG4gIGJvZHkge1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC5vZmYtY2FudmFzLXdyYXBwZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiBhdXRvO1xuICB9XG5cbiAgLm9mZi1jYW52YXMtd3JhcHBlci1pbm5lciB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc7XG4gIH1cblxuICAvLyBDb250YWluZXIgZm9yIHBhZ2UgY29udGVudFxuICAub2ZmLWNhbnZhcy1jb250ZW50LFxuICAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IHtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZztcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgei1pbmRleDogMTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC4xcHg7IC8vIFByZXZlbnRzIG1hcmdpbiBjb2xsYXBzaW5nLCB3aGljaCB3b3VsZCByZXZlYWwgdGhlIGJveCBzaGFkb3cgb2YgdGhlIHdyYXBwZXJcblxuICAgIEBpZiBoYXMtdmFsdWUoJG1haW5jb250ZW50LXNoYWRvdykge1xuICAgICAgYm94LXNoYWRvdzogJG1haW5jb250ZW50LXNoYWRvdztcbiAgICB9XG4gIH1cblxuICAvLyBDbGljay10by1leGl0IG92ZXJsYXkgKGdlbmVyYXRlZCBieSBKYXZhU2NyaXB0KVxuICAuanMtb2ZmLWNhbnZhcy1leGl0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nO1xuICB9XG59XG5cbi8vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgYW4gb2ZmLWNhbnZhcyBtZW51LlxuQG1peGluIG9mZi1jYW52YXMtYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kOiAkb2ZmY2FudmFzLWJhY2tncm91bmQ7XG4gIHotaW5kZXg6ICRvZmZjYW52YXMtemluZGV4O1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG59XG5cbkBtaXhpbiBvZmYtY2FudmFzLXBvc2l0aW9uKFxuICAkcG9zaXRpb246IGxlZnQsXG4gICRzaXplOiAkb2ZmY2FudmFzLXNpemUsXG4gICRmaXhlZDogZmFsc2Vcbikge1xuICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgIGxlZnQ6IC0kc2l6ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6ICRzaXplO1xuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgcmlnaHQ6IC0kc2l6ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6ICRzaXplO1xuICB9XG5cbiAgLy8gR2VuZXJhdGVzIGFuIG9wZW4gc3RhdGUgY2xhc3MgdGhhdCBtYXRjaGVzIHRoZSB3aWR0aCBvZiB0aGUgbWVudVxuICBAYXQtcm9vdCB7XG4gICAgLmlzLW9wZW4tI3skcG9zaXRpb259IHtcbiAgICAgIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkc2l6ZSk7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRzaXplKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIHRoYXQgcmV2ZWFsIGFuIG9mZi1jYW52YXMgbWVudS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRwb3NpdGlvbiBbbGVmdF0gLSBQb3NpdGlvbiBvZiB0aGUgb2ZmLWNhbnZhcyBtZW51IGJlaW5nIHJldmVhbGVkLlxuQG1peGluIG9mZi1jYW52YXMtcmV2ZWFsKFxuICAkcG9zaXRpb246IGxlZnRcbikge1xuICAjeyRwb3NpdGlvbn06IDA7XG4gIHotaW5kZXg6IGF1dG87XG5cbiAgQGlmICRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gIH1cblxuICAmIH4gLiN7JG1haW5jb250ZW50LWNsYXNzfSB7XG4gICAgbWFyZ2luLSN7JHBvc2l0aW9ufTogJG9mZmNhbnZhcy1zaXplO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW9mZi1jYW52YXMge1xuICBAaW5jbHVkZSBvZmYtY2FudmFzLWJhc2ljcztcblxuICAvLyBPZmYtY2FudmFzIGNvbnRhaW5lclxuICAub2ZmLWNhbnZhcyB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1iYXNlO1xuXG4gICAgJi5wb3NpdGlvbi1sZWZ0ICAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKGxlZnQpOyB9XG4gICAgJi5wb3NpdGlvbi1yaWdodCAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKHJpZ2h0KTsgfVxuICB9XG5cbiAgLy8gUmV2ZWFsIG9mZi1jYW52YXMgbWVudSBvbiBsYXJnZXIgc2NyZWVuc1xuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkbmFtZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKGxlZnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKHJpZ2h0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgb3JiaXRcbi8vLy9cblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGFjdGl2ZSBjb2xvciBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBkaWFtZXRlciBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1kaWFtZXRlcjogMS4ycmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gYmV0d2VlbiBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbjogMC4xcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBkaXN0YW5jZSBmcm9tIHNsaWRlIHJlZ2lvbiBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZnJvbSBPcmJpdCdzIGJ1bGxldHMgdG8gd2hhdGV2ZXIgY29udGVudCBtYXkgbHVyayBiZWxvdyBpdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1idWxsZXQtbWFyZ2luLWJvdHRvbTogMC44cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBPcmJpdCdzIGNhcHRpb24uXG4vLy8gQHR5cGUgQ29sb3JcbiRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciBPcmJpdCdzIGNhcHRpb24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtY2FwdGlvbi1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBPcmJpdCdzIGNvbnRyb2xzIHdoZW4gaG92ZXJlZC5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWNvbnRyb2wtYmFja2dyb3VuZC1ob3ZlcjogcmdiYSgkYmxhY2ssIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIE9yYml0J3MgY29udHJvbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtY29udHJvbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB6LWluZGV4IGZvciBPcmJpdCdzIGNvbnRyb2xzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWNvbnRyb2wtemluZGV4OiAxMCAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgb3V0ZXIgT3JiaXQgd3JhcHBlci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0YCBjbGFzcy5cbkBtaXhpbiBvcmJpdC13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbm5lciBPcmJpdCBzbGlkZSBjb250YWluZXIuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1jb250YWluZXJgIGNsYXNzLlxuQG1peGluIG9yYml0LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbmRpdmlkdWFsIHNsaWRlcyBvZiBhbiBPcmJpdCBzbGlkZXIuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1zbGlkZWAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtc2xpZGUge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogMTAwJTtcblxuICAmLm5vLW1vdGlvbnVpIHtcbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gb3JiaXQtZmlndXJlIHtcbiAgbWFyZ2luOiAwO1xufVxuXG5AbWl4aW4gb3JiaXQtaW1hZ2Uge1xuICBtYXJnaW46IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gb3JiaXQgc2xpZGUgY2FwdGlvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWNhcHRpb25gIGNsYXNzLlxuQG1peGluIG9yYml0LWNhcHRpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6ICRvcmJpdC1jYXB0aW9uLXBhZGRpbmc7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGNvbG9yOiBmb3JlZ3JvdW5kKCRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kO1xufVxuXG4vLy8gQWRkcyBiYXNlIHN0eWxlcyBmb3IgdGhlIG5leHQvcHJldmlvdXMgYnV0dG9ucyBpbiBhbiBPcmJpdCBzbGlkZXIuIFRoZXNlIHN0eWxlcyBhcmUgc2hhcmVkIGJldHdlZW4gdGhlIGAub3JiaXQtbmV4dGAgYW5kIGAub3JiaXQtcHJldmlvdXNgIGNsYXNzZXMgaW4gdGhlIGRlZmF1bHQgQ1NTLlxuQG1peGluIG9yYml0LWNvbnRyb2wge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIEBpbmNsdWRlIHZlcnRpY2FsLWNlbnRlcjtcbiAgei1pbmRleDogJG9yYml0LWNvbnRyb2wtemluZGV4O1xuICBwYWRkaW5nOiAkb3JiaXQtY29udHJvbC1wYWRkaW5nO1xuICBjb2xvcjogJHdoaXRlO1xuXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIE9yYml0IHByZXZpb3VzIGJ1dHRvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LXByZXZpb3VzYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1wcmV2aW91cyB7XG4gICN7JGdsb2JhbC1sZWZ0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgT3JiaXQgbmV4dCBidXR0b24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1uZXh0YCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1uZXh0IHtcbiAgI3skZ2xvYmFsLWxlZnR9OiBhdXRvO1xuICAjeyRnbG9iYWwtcmlnaHR9OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY29udGFpbmVyIG9mIE9yYml0IGJ1bGxldHMuIC8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIE9yYml0IHByZXZpb3VzIGJ1dHRvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWJ1bGxldHNgIGNsYXNzLlxuQG1peGluIG9yYml0LWJ1bGxldHMge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wO1xuICBtYXJnaW4tYm90dG9tOiAkb3JiaXQtYnVsbGV0LW1hcmdpbi1ib3R0b207XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBidXR0b24ge1xuICAgIHdpZHRoOiAkb3JiaXQtYnVsbGV0LWRpYW1ldGVyO1xuICAgIGhlaWdodDogJG9yYml0LWJ1bGxldC1kaWFtZXRlcjtcbiAgICBtYXJnaW46ICRvcmJpdC1idWxsZXQtbWFyZ2luO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1idWxsZXQtYmFja2dyb3VuZDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgfVxuXG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tb3JiaXQge1xuICAub3JiaXQge1xuICAgIEBpbmNsdWRlIG9yYml0LXdyYXBwZXI7XG4gIH1cblxuICAub3JiaXQtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1jb250YWluZXI7XG4gIH1cblxuICAub3JiaXQtc2xpZGUge1xuICAgIEBpbmNsdWRlIG9yYml0LXNsaWRlO1xuICB9XG5cbiAgLm9yYml0LWZpZ3VyZSB7XG4gICAgQGluY2x1ZGUgb3JiaXQtZmlndXJlO1xuICB9XG5cbiAgLm9yYml0LWltYWdlIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1pbWFnZTtcbiAgfVxuXG4gIC5vcmJpdC1jYXB0aW9uIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1jYXB0aW9uO1xuICB9XG5cbiAgJW9yYml0LWNvbnRyb2wge1xuICAgIEBpbmNsdWRlIG9yYml0LWNvbnRyb2w7XG4gIH1cblxuICAub3JiaXQtcHJldmlvdXMge1xuICAgIEBleHRlbmQgJW9yYml0LWNvbnRyb2w7XG4gICAgQGluY2x1ZGUgb3JiaXQtcHJldmlvdXM7XG4gIH1cblxuICAub3JiaXQtbmV4dCB7XG4gICAgQGV4dGVuZCAlb3JiaXQtY29udHJvbDtcbiAgICBAaW5jbHVkZSBvcmJpdC1uZXh0O1xuICB9XG5cbiAgLm9yYml0LWJ1bGxldHMge1xuICAgIEBpbmNsdWRlIG9yYml0LWJ1bGxldHM7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHBhZ2luYXRpb25cbi8vLy9cblxuLy8vIEZvbnQgc2l6ZSBvZiBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24tZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gb2YgdGhlIG1lZGlhIG9iamVjdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBvZiBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nOiByZW0tY2FsYygzIDEwKSAhZGVmYXVsdDtcblxuLy8vIFJpZ2h0IG1hcmdpbiB0byBzZXBhcmF0ZSBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nOiByZW0tY2FsYygxKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgcGFnaW5hdGlvbiBpdGVtcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgcGFnaW5hdGlvbiBpdGVtIGZvciB0aGUgY3VycmVudCBwYWdlLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtY3VycmVudDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIHRoZSBwYWdpbmF0aW9uIGl0ZW0gZm9yIHRoZSBjdXJyZW50IHBhZ2UuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItY3VycmVudDogZm9yZWdyb3VuZCgkcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtY3VycmVudCkgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGEgZGlzYWJsZWQgcGFnaW5hdGlvbiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0aGUgZWxsaXBzaXMgaW4gYSBwYWdpbmF0aW9uIG1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWVsbGlwc2lzLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgZmFsc2VgLCBkb24ndCBkaXNwbGF5IHBhZ2UgbnVtYmVyIGxpbmtzIG9uIG1vYmlsZSwgb25seSBuZXh0L3ByZXZpb3VzIGxpbmtzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGFycm93cyBhcmUgYWRkZWQgdG8gdGhlIG5leHQgYW5kIHByZXZpb3VzIGxpbmtzIG9mIHBhZ2luYXRpb24uXG4vLy8gQHR5cGUgQm9vbGVhblxuJHBhZ2luYXRpb24tYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgcGFnaW5hdGlvbiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gYSBgPHVsPmAuXG5AbWl4aW4gcGFnaW5hdGlvbi1jb250YWluZXIge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgbWFyZ2luLWJvdHRvbTogJHBhZ2luYXRpb24tbWFyZ2luLWJvdHRvbTtcblxuICAvLyBMaXN0IGl0ZW1cbiAgbGkge1xuICAgIGZvbnQtc2l6ZTogJHBhZ2luYXRpb24tZm9udC1zaXplO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmc7XG4gICAgYm9yZGVyLXJhZGl1czogJHBhZ2luYXRpb24tcmFkaXVzO1xuXG4gICAgQGlmICRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtcyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICY6bGFzdC1jaGlsZCxcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQYWdlIGxpbmtzXG4gIGEsXG4gIGJ1dHRvbiB7XG4gICAgY29sb3I6ICRwYWdpbmF0aW9uLWl0ZW0tY29sb3I7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGN1cnJlbnQgcGFnaW5hdGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIGFuIGA8YT5gLlxuQG1peGluIHBhZ2luYXRpb24taXRlbS1jdXJyZW50IHtcbiAgcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nO1xuICBiYWNrZ3JvdW5kOiAkcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtY3VycmVudDtcbiAgY29sb3I6ICRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItY3VycmVudDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgZGlzYWJsZWQgcGFnaW5hdGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIGFuIGA8YT5gLlxuQG1peGluIHBhZ2luYXRpb24taXRlbS1kaXNhYmxlZCB7XG4gIHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZztcbiAgY29sb3I6ICRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItZGlzYWJsZWQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBlbGxpcHNpcyBmb3IgdXNlIGluIGEgcGFnaW5hdGlvbiBsaXN0LlxuQG1peGluIHBhZ2luYXRpb24tZWxsaXBzaXMge1xuICBjb250ZW50OiAnXFwyMDI2JztcbiAgcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nO1xuICBjb2xvcjogJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3I7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXBhZ2luYXRpb24ge1xuICAucGFnaW5hdGlvbiB7XG4gICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1jb250YWluZXI7XG5cbiAgICAuY3VycmVudCB7XG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWl0ZW0tY3VycmVudDtcbiAgICB9XG5cbiAgICAuZGlzYWJsZWQge1xuICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1pdGVtLWRpc2FibGVkO1xuICAgIH1cblxuICAgIC5lbGxpcHNpczo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1lbGxpcHNpcztcbiAgICB9XG4gIH1cblxuICBAaWYgJHBhZ2luYXRpb24tYXJyb3dzIHtcbiAgICAucGFnaW5hdGlvbi1wcmV2aW91cyBhOjpiZWZvcmUsXG4gICAgLnBhZ2luYXRpb24tcHJldmlvdXMuZGlzYWJsZWQ6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnXFwwMGFiJztcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwLjVyZW07XG4gICAgfVxuXG4gICAgLnBhZ2luYXRpb24tbmV4dCBhOjphZnRlcixcbiAgICAucGFnaW5hdGlvbi1uZXh0LmRpc2FibGVkOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnXFwwMGJiJztcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDAuNXJlbTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBbVE9ET10gQ2hlY2sgaG93IHBsdWdpbiBjb25maXJtcyBkaXNhYmxlZCBvciB2ZXJ0aWNhbCBzdGF0dXNcbi8vIFtUT0RPXSBDaGVjayBpZiB0cmFuc2l0aW9uOiBhbGw7IGlzIG5lY2Vzc2FyeVxuXG4vLy8vXG4vLy8gQGdyb3VwIHNsaWRlclxuLy8vL1xuXG4vLy8gRGVmYXVsdCBzbGlkZXIgd2lkdGggb2YgYSB2ZXJ0aWNhbCBzbGlkZXIuIChEb2Vzbid0IGFwcGx5IHRvIHRoZSBuYXRpdmUgc2xpZGVyLilcbi8vLyBAdHlwZSBOdW1iZXJcbiRzbGlkZXItd2lkdGgtdmVydGljYWw6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIFRyYW5zaXRpb24gcHJvcGVydGllcyB0byBhcHBseSB0byB0aGUgc2xpZGVyIGhhbmRsZSBhbmQgZmlsbC4gKERvZXNuJ3QgYXBwbHkgdG8gdGhlIG5hdGl2ZSBzbGlkZXIuKVxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRzbGlkZXItdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3Igc2xpZGVycy5cbkBtaXhpbiBzbGlkZXItY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xuICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAyLjI1cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2xpZGVyLWJhY2tncm91bmQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbn1cblxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciBhY3RpdmUgZmlsbCBmb3Igc2xpZGVycy5cbkBtaXhpbiBzbGlkZXItZmlsbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAkc2xpZGVyLWhlaWdodDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNsaWRlci1maWxsLWJhY2tncm91bmQ7XG4gIHRyYW5zaXRpb246ICRzbGlkZXItdHJhbnNpdGlvbjtcblxuICAmLmlzLWRyYWdnaW5nIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyO1xuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3IgdGhlIHNsaWRlciBoYW5kbGVzLlxuQG1peGluIHNsaWRlci1oYW5kbGUge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIEBpbmNsdWRlIHZlcnRpY2FsLWNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAkc2xpZGVyLWhhbmRsZS13aWR0aDtcbiAgaGVpZ2h0OiAkc2xpZGVyLWhhbmRsZS1oZWlnaHQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ7XG4gIHRyYW5zaXRpb246ICRzbGlkZXItdHJhbnNpdGlvbjtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItcmFkaXVzO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHNjYWxlLWNvbG9yKCRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpO1xuICB9XG5cbiAgJi5pcy1kcmFnZ2luZyB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDBzIGxpbmVhcjtcbiAgfVxufVxuXG5AbWl4aW4gc2xpZGVyLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogJHNsaWRlci1vcGFjaXR5LWRpc2FibGVkO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG5AbWl4aW4gc2xpZGVyLXZlcnRpY2FsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogJHNsaWRlci13aWR0aC12ZXJ0aWNhbDtcbiAgaGVpZ2h0OiAxMi41cmVtO1xuICBtYXJnaW46IDAgMS4yNXJlbTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7XG5cbiAgLnNsaWRlci1maWxsIHtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6ICRzbGlkZXItd2lkdGgtdmVydGljYWw7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC5zbGlkZXItaGFuZGxlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB3aWR0aDogJHNsaWRlci1oYW5kbGUtaGVpZ2h0O1xuICAgIGhlaWdodDogJHNsaWRlci1oYW5kbGUtd2lkdGg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXNsaWRlciB7XG4gIC8vIENvbnRhaW5lclxuICAuc2xpZGVyIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItY29udGFpbmVyO1xuICB9XG5cbiAgLy8gRmlsbCBhcmVhXG4gIC5zbGlkZXItZmlsbCB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLWZpbGw7XG4gIH1cblxuICAvLyBEcmFnZ2FibGUgaGFuZGxlXG4gIC5zbGlkZXItaGFuZGxlIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItaGFuZGxlO1xuICB9XG5cbiAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgLnNsaWRlci5kaXNhYmxlZCxcbiAgLnNsaWRlcltkaXNhYmxlZF0ge1xuICAgIEBpbmNsdWRlIHNsaWRlci1kaXNhYmxlZDtcbiAgfVxuXG4gIC8vIFZlcnRpY2FsIHNsaWRlclxuICAuc2xpZGVyLnZlcnRpY2FsIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItdmVydGljYWw7XG4gIH1cblxuICAvLyBSVEwgc3VwcG9ydFxuICBAaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwge1xuICAgIC5zbGlkZXI6bm90KC52ZXJ0aWNhbCkge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQG1peGluIGZvdW5kYXRpb24tc3RpY2t5IHtcbiAgLnN0aWNreS1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIC5zdGlja3kge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICAuc3RpY2t5LmlzLXN0dWNrIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogNTtcblxuICAgICYuaXMtYXQtdG9wIHtcbiAgICAgIHRvcDogMDtcbiAgICB9XG5cbiAgICAmLmlzLWF0LWJvdHRvbSB7XG4gICAgICBib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLnN0aWNreS5pcy1hbmNob3JlZCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG5cbiAgICAmLmlzLWF0LWJvdHRvbSB7XG4gICAgICBib3R0b206IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCByZXZlYWxcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiBhIG1vZGFsLlxuLy8vIEB0eXBlIENvbG9yXG4kcmV2ZWFsLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgd2lkdGggb2YgYSBtb2RhbCwgd2l0aCBubyBjbGFzcyBhcHBsaWVkLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC13aWR0aDogNjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1heGltdW0gd2lkdGggb2YgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtbWF4LXdpZHRoOiAkZ2xvYmFsLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBhcm91bmQgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gei1pbmRleCBmb3IgbW9kYWxzLiBUaGUgb3ZlcmxheSB1c2VzIHRoaXMgdmFsdWUsIHdoaWxlIHRoZSBtb2RhbCBpdHNlbGYgdXNlcyB0aGlzIHZhbHVlIHBsdXMgb25lLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC16aW5kZXg6IDEwMDUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIG1vZGFsIG92ZXJsYXlzLlxuLy8vIEB0eXBlIENvbG9yXG4kcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNDUpICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbW9kYWwgb3ZlcmxheS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgb3ZlcmxheS5cbkBtaXhpbiByZXZlYWwtb3ZlcmxheSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB6LWluZGV4OiAkcmV2ZWFsLXppbmRleDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQ7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cblxuLy8vIEFkZHMgYmFzZSBzdHlsZXMgZm9yIGEgbW9kYWwuXG5AbWl4aW4gcmV2ZWFsLW1vZGFsLWJhc2Uge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHotaW5kZXg6ICRyZXZlYWwtemluZGV4ICsgMTtcbiAgcGFkZGluZzogJHJldmVhbC1wYWRkaW5nO1xuICBib3JkZXI6ICRyZXZlYWwtYm9yZGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmV2ZWFsLWJhY2tncm91bmQ7XG4gIGJvcmRlci1yYWRpdXM6ICRyZXZlYWwtcmFkaXVzO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgbWluLWhlaWdodDogMDtcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSByb3dzIGRvbid0IGhhdmUgYSBtaW4td2lkdGggb24gdGhlbVxuICAuY29sdW1uLFxuICAuY29sdW1ucyB7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgLy8gU3RyaXAgbWFyZ2lucyBmcm9tIHRoZSBsYXN0IGl0ZW0gaW4gdGhlIG1vZGFsXG4gID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEFkanVzdHMgdGhlIHdpZHRoIG9mIGEgbW9kYWwuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCAtIFdpZHRoIG9mIHRoZSBtb2RhbC4gR2VuZXJhbGx5IGEgcGVyY2VudGFnZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heC13aWR0aCBbJHJldmVhbC1tYXgtd2lkdGhdIC0gTWF4aW11bSB3aWR0aCBvZiB0aGUgbW9kYWwuXG5AbWl4aW4gcmV2ZWFsLW1vZGFsLXdpZHRoKFxuICAkd2lkdGg6ICRyZXZlYWwtd2lkdGgsXG4gICRtYXgtd2lkdGg6ICRyZXZlYWwtbWF4LXdpZHRoXG4pIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBAZXh0ZW5kICVyZXZlYWwtY2VudGVyZWQ7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgICBtYXgtd2lkdGg6ICRyZXZlYWwtbWF4LXdpZHRoO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgZnVsbC1zY3JlZW4gbW9kYWwsIHdoaWNoIHN0cmV0Y2hlcyB0aGUgZnVsbCB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSB3aW5kb3cuXG5AbWl4aW4gcmV2ZWFsLW1vZGFsLWZ1bGxzY3JlZW4ge1xuICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBEdXBsaWNhdGVQcm9wZXJ0eVxuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGhlaWdodDogMTAwdmg7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXJldmVhbCB7XG4gIC8vIFtUT0RPXSBJcyB0aGlzIG5lY2Vzc2FyeT9cbiAgLy8gc2Nzcy1saW50OmRpc2FibGUgUXVhbGlmeWluZ0VsZW1lbnRcbiAgYm9keS5pcy1yZXZlYWwtb3BlbiB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuICAvLyBodG1sIGdldHMgdGhpcyBjbGFzcyBvbmx5IGluIGlPU1xuICBodG1sLmlzLXJldmVhbC1vcGVuLFxuICBodG1sLmlzLXJldmVhbC1vcGVuIGJvZHkge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICB9XG5cbiAgLy8gT3ZlcmxheVxuICAucmV2ZWFsLW92ZXJsYXkge1xuICAgIEBpbmNsdWRlIHJldmVhbC1vdmVybGF5O1xuICB9XG5cbiAgLy8gTW9kYWwgY29udGFpbmVyXG4gIC5yZXZlYWwge1xuICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlO1xuICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCgkcmV2ZWFsLXdpZHRoKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxMDBweDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIC8vIFBsYWNlaG9sZGVyIHNlbGVjdG9yIGZvciBtZWRpdW0tYW5kLXVwIG1vZGFsc1xuICAgIC8vIFByZXZlbnRzIGR1cGxpY2F0ZSBDU1Mgd2hlbiBkZWZpbmluZyBtdWx0aXBsZSBSZXZlYWwgc2l6ZXNcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgJXJldmVhbC1jZW50ZXJlZCB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgcGFkZGluZ1xuICAgICYuY29sbGFwc2Uge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAvLyBTaXppbmcgY2xhc3Nlc1xuICAgICYudGlueSAgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoMzAlKTsgfVxuICAgICYuc21hbGwgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoNTAlKTsgfVxuICAgICYubGFyZ2UgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoOTAlKTsgfVxuXG4gICAgLy8gRnVsbC1zY3JlZW4gbW9kZVxuICAgICYuZnVsbCB7XG4gICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtemVyby1icmVha3BvaW50IG9ubHkpIHtcbiAgICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1mdWxsc2NyZWVuO1xuICAgIH1cblxuICAgICYud2l0aG91dC1vdmVybGF5IHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBzY3NzLWxpbnQ6ZGlzYWJsZSBNZXJnZWFibGVTZWxlY3RvciwgUXVhbGlmeWluZ0VsZW1lbnRcblxuLy8vL1xuLy8vIEBncm91cCB0YWJsZVxuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgdGFibGUgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWJhY2tncm91bmQ6ICR3aGl0ZSAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHNjYWxlIGZvciBkYXJrZW5pbmcgdGhlIHN0cmlwZWQgdGFibGUgcm93cyBhbmQgdGhlIHRhYmxlIGJvcmRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1jb2xvci1zY2FsZTogNSUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHN0eWxlIGZvciB0YWJsZSBib3JkZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLWJvcmRlcjogMXB4IHNvbGlkIHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciB0YWJsZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1wYWRkaW5nOiByZW0tY2FsYyg4IDEwIDEwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc2NhbGUgZm9yIGRhcmtlbmluZyB0aGUgdGFibGUgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1ob3Zlci1zY2FsZTogMiUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHN0YW5kYXJkIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBzdHJpcGVkIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlICsgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3Igc3RyaXBlZCByb3dzLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdmFsdWUgZm9yIHNob3dpbmcgdGhlIHN0cmlwZSBvbiByb3dzIG9mIHRoZSB0YWJsZXMsIGV4Y2x1ZGluZyB0aGUgaGVhZGVyIGFuZCBmb290ZXIuIElmIGV2ZW4sIHRoZSBldmVuIHJvd3Mgd2lsbCBoYXZlIGEgYmFja2dyb3VuZCBjb2xvci4gSWYgb2RkLCB0aGUgb2RkIHJvd3Mgd2lsbCBoYXZlIGEgYmFja2dyb3VuZCBjb2xvci4gSWYgZW1wdHksIG9yIGFueSBvdGhlciB2YWx1ZSwgdGhlIHRhYmxlIHJvd3Mgd2lsbCBoYXZlIG5vIHN0cmlwaW5nLlxuLy8vIEB0eXBlIEtleXdvcmRcbiR0YWJsZS1zdHJpcGU6IGV2ZW4gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBoZWFkZXIgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWhlYWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSAvIDIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgZm9vdGVyIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1mb290LWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBoZWFkZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1oZWFkLWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBzaG93aW5nIHRoZSBoZWFkZXIgd2hlbiB1c2luZyBzdGFja2VkIHRhYmxlcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQ6IGZhbHNlICFkZWZhdWx0O1xuXG5AbWl4aW4gLXpmLXRhYmxlLWNoaWxkcmVuLXN0eWxlcygkc3RyaXBlOiAkdGFibGUtc3RyaXBlKSB7XG4gIHRoZWFkLFxuICB0Ym9keSxcbiAgdGZvb3Qge1xuICAgIGJvcmRlcjogJHRhYmxlLWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmFja2dyb3VuZDtcbiAgfVxuXG4gIC8vIENhcHRpb25cbiAgY2FwdGlvbiB7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gIH1cblxuICAvLyBUYWJsZSBoZWFkIGFuZCBmb290XG4gIHRoZWFkLFxuICB0Zm9vdCB7XG4gICAgYmFja2dyb3VuZDogJHRhYmxlLWhlYWQtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHRhYmxlLWhlYWQtZm9udC1jb2xvcjtcblxuICAgIC8vIFJvd3Mgd2l0aGluIGhlYWQgYW5kIGZvb3RcbiAgICB0ciB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAvLyBDZWxscyB3aXRoaW4gaGVhZCBhbmQgZm9vdFxuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xuICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgICB0ZXh0LWFsaWduOiAjeyRnbG9iYWwtbGVmdH07XG4gICAgfVxuICB9XG5cbiAgLy8gVGFibGUgcm93c1xuICB0Ym9keSB7XG4gICAgdHIge1xuICAgICAgLy8gSWYgc3RyaXBlIGlzIHNldCB0byBldmVuLCBkYXJrZW4gdGhlIGV2ZW4gcm93cy5cbiAgICAgIEBpZiAkc3RyaXBlID09IGV2ZW4ge1xuICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBJZiBzdHJpcGUgaXMgc2V0IHRvIG9kZCwgZGFya2VuIHRoZSBvZGQgcm93cy5cbiAgICAgIEBlbHNlIGlmICRzdHJpcGUgPT0gb2RkIHtcbiAgICAgICAgJjpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIHRhYmxlcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdHJpcGUgWyR0YWJsZS1zdHJpcGVdIC0gVXNlcyBrZXl3b3JkcyBldmVuLCBvZGQsIG9yIG5vbmUgdG8gZGFya2VuIHJvd3Mgb2YgdGhlIHRhYmxlLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBldmVuLlxuQG1peGluIHRhYmxlKFxuICAkc3RyaXBlOiAkdGFibGUtc3RyaXBlLFxuICAkbmVzdDogZmFsc2Vcbikge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4gIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4gIEBpZiAkbmVzdCB7XG4gICAgQGluY2x1ZGUgLXpmLXRhYmxlLWNoaWxkcmVuLXN0eWxlcygkc3RyaXBlKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGF0LXJvb3Qge1xuICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLWNoaWxkcmVuLXN0eWxlcygkc3RyaXBlKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgdGhlIGFiaWxpdHkgdG8gaG9yaXpvbnRhbGx5IHNjcm9sbCB0aGUgdGFibGUgd2hlbiB0aGUgY29udGVudCBvdmVyZmxvd3MgaG9yaXpvbnRhbGx5LlxuQG1peGluIHRhYmxlLXNjcm9sbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3cteDogYXV0bztcbn1cblxuLy8vIFNsaWdodGx5IGRhcmtlbnMgdGhlIHRhYmxlIHJvd3Mgb24gaG92ZXIuXG5AbWl4aW4gdGFibGUtaG92ZXIge1xuICB0ciB7XG4gICAgLy9EYXJrZW5zIHRoZSBub24tc3RyaXBlZCB0YWJsZSByb3dzIG9uIGhvdmVyLlxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1ob3ZlcjtcbiAgICB9XG5cbiAgICAvL0RhcmtlbnMgdGhlIGV2ZW4gc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBpZigkdGFibGUtc3RyaXBlID09IGV2ZW4pIHtcbiAgICAgICY6bnRoLW9mLXR5cGUoZXZlbik6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvL0RhcmtlbnMgdGhlIG9kZCBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGVsc2VpZigkdGFibGUtc3RyaXBlID09IG9kZCkge1xuICAgICAgJjpudGgtb2YtdHlwZShvZGQpOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzdGFja2VkIHRhYmxlLiBVc2VmdWwgZm9yIHNtYWxsLXNjcmVlbiBsYXlvdXRzLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGhlYWRlciBbJHNob3ctaGVhZGVyLWZvci1zdGFja2VkXSAtIFNob3cgdGhlIGZpcnN0IHRoIG9mIGhlYWRlciB3aGVuIHN0YWNrZWQuXG5AbWl4aW4gdGFibGUtc3RhY2soJGhlYWRlcjogJHNob3ctaGVhZGVyLWZvci1zdGFja2VkKSB7XG4gIEBpZiAkaGVhZGVyIHtcbiAgICB0aGVhZCB7XG4gICAgICB0aDpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgICB0aCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICB0aGVhZCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIHRmb290IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgdHIsXG4gIHRoLFxuICB0ZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICB0ZCB7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10YWJsZSgkbmVzdDogZmFsc2UpIHtcbiAgdGFibGUge1xuICAgIEBpbmNsdWRlIHRhYmxlKCRuZXN0OiAkbmVzdCk7XG4gIH1cblxuICB0YWJsZS5zdGFjayB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgICAgQGluY2x1ZGUgdGFibGUtc3RhY2s7XG4gICAgfVxuICB9XG5cbiAgdGFibGUuc2Nyb2xsIHtcbiAgICBAaW5jbHVkZSB0YWJsZS1zY3JvbGw7XG4gIH1cblxuICB0YWJsZS5ob3ZlciB7XG4gICAgQGluY2x1ZGUgdGFibGUtaG92ZXI7XG4gIH1cblxuICAudGFibGUtc2Nyb2xsIHtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgdGFibGUge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0YWJzXG4vLy8vXG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBvZiB0aGUgdGFiIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGFiIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBhY3RpdmUgYmFja2dyb3VuZCBjb2xvciBvZiBhIHRhYiBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItYmFja2dyb3VuZC1hY3RpdmU6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIHRhYiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgaXRlbXMgaW4gYSBNZW51LlxuJHRhYi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiBhIHRhYiBpdGVtLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMS41cmVtICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSBudW1iZXIgb2YgYGV4cGFuZC1uYCBjbGFzc2VzIHRvIGluY2x1ZGUgaW4gdGhlIENTUy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItZXhwYW5kLW1heDogNiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtYm9yZGVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1jb250ZW50LWNvbG9yOiBmb3JlZ3JvdW5kKCR0YWItYmFja2dyb3VuZCwgJHByaW1hcnktY29sb3IpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kdGFiLWNvbnRlbnQtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHRhYiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gYSBgPHVsPmAuXG5AbWl4aW4gdGFicy1jb250YWluZXIge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWFyZ2luOiAkdGFiLW1hcmdpbjtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBiYWNrZ3JvdW5kOiAkdGFiLWJhY2tncm91bmQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICR0YWItY29udGVudC1ib3JkZXI7XG59XG5cbi8vLyBBdWdtZW50cyBhIHRhYiBjb250YWluZXIgdG8gaGF2ZSB2ZXJ0aWNhbCB0YWJzLiBVc2UgdGhpcyBpbiBjb25qdW5jdGlvbiB3aXRoIGB0YWJzLWNvbnRhaW5lcigpYC5cbkBtaXhpbiB0YWJzLWNvbnRhaW5lci12ZXJ0aWNhbCB7XG4gID4gbGkge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGZsb2F0OiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGxpbmtzIHdpdGhpbiBhIHRhYiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gdGhlIGA8bGk+YCBlbGVtZW50cyBpbnNpZGUgYSB0YWIgY29udGFpbmVyLlxuQG1peGluIHRhYnMtdGl0bGUge1xuICBmbG9hdDogI3skZ2xvYmFsLWxlZnR9O1xuXG4gID4gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJHRhYi1pdGVtLXBhZGRpbmc7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZm9udC1zaXplOiAkdGFiLWl0ZW0tZm9udC1zaXplO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjtcbiAgICB9XG5cbiAgICAmOmZvY3VzLFxuICAgICZbYXJpYS1zZWxlY3RlZD0ndHJ1ZSddIHtcbiAgICAgIGJhY2tncm91bmQ6ICR0YWItYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIHdyYXBwZXIgdGhhdCBzdXJyb3VuZHMgYSB0YWIgZ3JvdXAncyBjb250ZW50IHBhbmVzLlxuQG1peGluIHRhYnMtY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICR0YWItY29udGVudC1iYWNrZ3JvdW5kO1xuICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlO1xuICBib3JkZXI6IDFweCBzb2xpZCAkdGFiLWNvbnRlbnQtYm9yZGVyO1xuICBib3JkZXItdG9wOiAwO1xufVxuXG4vLy8gQXVnbWVudHMgYSB0YWIgY29udGVudCBjb250YWluZXIgdG8gaGF2ZSBhIHZlcnRpY2FsIHN0eWxlLCBieSBzaGlmdGluZyB0aGUgYm9yZGVyIGFyb3VuZC4gVXNlIHRoaXMgaW4gY29uanVuY3Rpb24gd2l0aCBgdGFicy1jb250ZW50KClgLlxuQG1peGluIHRhYnMtY29udGVudC12ZXJ0aWNhbCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICR0YWItY29udGVudC1ib3JkZXI7XG4gIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gaW5kaXZpZHVhbCB0YWIgY29udGVudCBwYW5lbCB3aXRoaW4gdGhlIHRhYiBjb250ZW50IGNvbnRhaW5lci5cbkBtaXhpbiB0YWJzLXBhbmVsIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogJHRhYi1jb250ZW50LXBhZGRpbmc7XG5cbiAgJi5pcy1hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRhYnMge1xuICAudGFicyB7XG4gICAgQGluY2x1ZGUgdGFicy1jb250YWluZXI7XG4gIH1cblxuICAvLyBWZXJ0aWNhbFxuICAudGFicy52ZXJ0aWNhbCB7XG4gICAgQGluY2x1ZGUgdGFicy1jb250YWluZXItdmVydGljYWw7XG4gIH1cblxuICAvLyBTaW1wbGVcbiAgLnRhYnMuc2ltcGxlIHtcbiAgICA+IGxpID4gYSB7XG4gICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUHJpbWFyeSBjb2xvclxuICAudGFicy5wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcblxuICAgID4gbGkgPiBhIHtcbiAgICAgIGNvbG9yOiBmb3JlZ3JvdW5kKCRwcmltYXJ5LWNvbG9yKTtcblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkcHJpbWFyeS1jb2xvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnRhYnMtdGl0bGUge1xuICAgIEBpbmNsdWRlIHRhYnMtdGl0bGU7XG4gIH1cblxuICAudGFicy1jb250ZW50IHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRlbnQ7XG4gIH1cblxuICAudGFicy1jb250ZW50LnZlcnRpY2FsIHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRlbnQtdmVydGljYWw7XG4gIH1cblxuICAudGFicy1wYW5lbCB7XG4gICAgQGluY2x1ZGUgdGFicy1wYW5lbDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdGl0bGUtYmFyXG4vLy8vXG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItYmFja2dyb3VuZDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kdGl0bGViYXItcGFkZGluZzogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgV2VpZ2h0XG4kdGl0bGViYXItdGV4dC1mb250LXdlaWdodDogYm9sZCAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIG1lbnUgaWNvbnMgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItaWNvbi1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgbWVudSBpY29ucyBpbnNpZGUgYSB0aXRsZSBiYXIgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1pY29uLWNvbG9yLWhvdmVyOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gdGhlIG1lbnUgaWNvbiBhbmQgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kdGl0bGViYXItaWNvbi1zcGFjaW5nOiAwLjI1cmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10aXRsZS1iYXIge1xuICAudGl0bGUtYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiAkdGl0bGViYXItYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHRpdGxlYmFyLWNvbG9yO1xuICAgIHBhZGRpbmc6ICR0aXRsZWJhci1wYWRkaW5nO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgfVxuXG4gICAgLm1lbnUtaWNvbiB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkdGl0bGViYXItaWNvbi1zcGFjaW5nO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICR0aXRsZWJhci1pY29uLXNwYWNpbmc7XG4gICAgfVxuICB9XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgLy8gc2Nzcy1saW50OmRpc2FibGUgWmVyb1VuaXRcbiAgICAudGl0bGUtYmFyLWxlZnQsXG4gICAgLnRpdGxlLWJhci1yaWdodCB7XG4gICAgICBmbGV4OiAxIDEgMHB4O1xuICAgIH1cblxuICAgIC50aXRsZS1iYXItcmlnaHQge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAudGl0bGUtYmFyLWxlZnQge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgLnRpdGxlLWJhci1yaWdodCB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG4gIH1cblxuICAudGl0bGUtYmFyLXRpdGxlIHtcbiAgICBmb250LXdlaWdodDogJHRpdGxlYmFyLXRleHQtZm9udC13ZWlnaHQ7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cblxuICAubWVudS1pY29uLmRhcmsge1xuICAgIEBpbmNsdWRlIGhhbWJ1cmdlcjtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdG9wLWJhclxuLy8vL1xuXG4vLy8gUGFkZGluZyBmb3IgdGhlIHRvcCBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9wYmFyLXBhZGRpbmc6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSB0b3AgYmFyLiBUaGlzIGNvbG9yIGFsc28gY2FzY2FkZXMgdG8gbWVudXMgd2l0aGluIHRoZSB0b3AgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdG9wYmFyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBzdWJtZW51cyB3aXRoaW4gdGhlIHRvcCBiYXIuIFVzZWZ1bGwgaWYgJHRvcGJhci1iYWNrZ3JvdW5kIGlzIHRyYW5zcGFyZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZDogJHRvcGJhci1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBmb3IgdGhlIHRvcCBiYXIgdGl0bGUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9wYmFyLXRpdGxlLXNwYWNpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIHdpZHRoIG9mIGA8aW5wdXQ+YCBlbGVtZW50cyBpbnNpZGUgdGhlIHRvcCBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9wYmFyLWlucHV0LXdpZHRoOiAyMDBweCAhZGVmYXVsdDtcblxuLy8vIEJyZWFrcG9pbnQgYXQgd2hpY2ggdG9wIGJhciBzd2l0Y2hlcyBmcm9tIG1vYmlsZSB0byBkZXNrdG9wIHZpZXcuXG4vLy8gQHR5cGUgQnJlYWtwb2ludFxuJHRvcGJhci11bnN0YWNrLWJyZWFrcG9pbnQ6IG1lZGl1bSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHRvcCBiYXIgY29udGFpbmVyLlxuQG1peGluIHRvcC1iYXItY29udGFpbmVyIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cblxuICBwYWRkaW5nOiAkdG9wYmFyLXBhZGRpbmc7XG5cbiAgJixcbiAgdWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0b3BiYXItYmFja2dyb3VuZDtcbiAgfVxuXG4gIC8vIENoZWNrIGlmICR0b3BiYXItYmFja2dyb3VuZCBpcyBkaWZmZXJudCBmcm9tICR0b3BiYXItYmFja2dyb3VuZC1zdWJtZW51XG4gIEBpZiAoJHRvcGJhci1iYWNrZ3JvdW5kICE9ICR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kKSB7XG4gICAgdWwgdWwge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzdHJhaW4gd2lkdGggb2YgaW5wdXRzIGJ5IGRlZmF1bHQgdG8gbWFrZSB0aGVtIGVhc2llciB0byBhcnJhbmdlXG4gIGlucHV0IHtcbiAgICBtYXgtd2lkdGg6ICR0b3BiYXItaW5wdXQtd2lkdGg7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gIH1cblxuICAvLyBUaGUgYWJvdmUgc3R5bGVzIHNob3VsZG4ndCBhcHBseSB0byBpbnB1dCBncm91cCBmaWVsZHNcbiAgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgfVxuXG4gIC8vIHNjc3MtbGludDpkaXNhYmxlIFF1YWxpZnlpbmdFbGVtZW50XG4gIGlucHV0LmJ1dHRvbiB7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLy8vIE1ha2VzIHNlY3Rpb25zIG9mIGEgdG9wIGJhciBzdGFjayBvbiB0b3Agb2YgZWFjaCBvdGhlci5cbkBtaXhpbiB0b3AtYmFyLXN0YWNrZWQge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAvLyBTdWItc2VjdGlvbnNcbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gU3ViLXNlY3Rpb25zXG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFVuZG9lcyB0aGUgQ1NTIGFwcGxpZWQgYnkgdGhlIGB0b3AtYmFyLXN0YWNrZWQoKWAgbWl4aW4uXG5AbWl4aW4gdG9wLWJhci11bnN0YWNrIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG5cbiAgICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxuICAgIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgZmxleDogMSAxIDBweDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRvcC1iYXIge1xuICAvLyBUb3AgYmFyIGNvbnRhaW5lclxuICAudG9wLWJhciB7XG4gICAgQGluY2x1ZGUgdG9wLWJhci1jb250YWluZXI7XG5cbiAgICAvLyBTdGFjayBvbiBzbWFsbCBzY3JlZW5zIGJ5IGRlZmF1bHRcbiAgICBAaW5jbHVkZSB0b3AtYmFyLXN0YWNrZWQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR0b3BiYXItdW5zdGFjay1icmVha3BvaW50KSB7XG4gICAgICBAaW5jbHVkZSB0b3AtYmFyLXVuc3RhY2s7XG4gICAgfVxuXG4gICAgLy8gR2VuZXJhdGUgY2xhc3NlcyBmb3Igc3RhY2tpbmcgb24gZWFjaCBzY3JlZW4gc2l6ZSAoZGVmaW5lZCBpbiAkYnJlYWtwb2ludC1jbGFzc2VzKVxuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgJi5zdGFja2VkLWZvci0jeyRzaXplfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBkb3duKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0b3AtYmFyLXN0YWNrZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gU3ViLXNlY3Rpb25zXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIC50b3AtYmFyLXRpdGxlIHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAkdG9wYmFyLXRpdGxlLXNwYWNpbmc7XG4gICAgfVxuXG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC50b3AtYmFyLXRpdGxlIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAkdG9wYmFyLXRpdGxlLXNwYWNpbmc7XG5cbiAgICB9XG5cbiAgICAudG9wLWJhci1sZWZ0IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cbn1cbiIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGxdLCJzb3VyY2VSb290IjoiLi4vc2NzcyJ9 */
