@import"https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css";@charset "UTF-8";.kinguin_bar .header_middle{display:none}.main{width:100%}.wrapper{min-width:320px}.cloud{position:absolute;-webkit-animation-duration:120s;animation-duration:120s;-webkit-animation-direction:reverse;animation-direction:reverse;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-name:Float,FadeFloat;animation-name:Float,FadeFloat}.upDownHeli{-webkit-animation-duration:12s;animation-duration:12s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-name:upDownHeli;animation-name:upDownHeli}.rotorAnimate{-webkit-animation:rotorAnimate .2s steps(2) infinite;animation:rotorAnimate .2s steps(2) infinite}.upDownPlane{-webkit-animation-duration:10s;animation-duration:10s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-name:upDownPlane;animation-name:upDownPlane}@-webkit-keyframes Float{from{-webkit-transform:translateX(100%) translateZ(0);transform:translateX(100%) translateZ(0)}to{-webkit-transform:translateX(-15%) translateZ(0);transform:translateX(-15%) translateZ(0)}}@keyframes Float{from{-webkit-transform:translateX(100%) translateZ(0);transform:translateX(100%) translateZ(0)}to{-webkit-transform:translateX(-15%) translateZ(0);transform:translateX(-15%) translateZ(0)}}@-webkit-keyframes FadeFloat{0%,100%{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"}1%,98%{opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}}@keyframes FadeFloat{0%,100%{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"}1%,98%{opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}}@-webkit-keyframes upDownHeli{25%,50%{-webkit-transform:translate(389%,100%);transform:translate(389%,100%)}75%{-webkit-transform:translate(389%,-250%);transform:translate(389%,-250%)}95%{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes upDownHeli{25%,50%{-webkit-transform:translate(389%,100%);transform:translate(389%,100%)}75%{-webkit-transform:translate(389%,-250%);transform:translate(389%,-250%)}95%{-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes rotorAnimate{100%{background-position:196% 0}}@keyframes rotorAnimate{100%{background-position:196% 0}}@-webkit-keyframes upDownPlane{50%{-webkit-transform:translate(-1300%,920%);transform:translate(-1300%,920%)}51%{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"}75%{-webkit-transform:translate(600%,-320%);transform:translate(600%,-320%);opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"}100%{-webkit-transform:translate(0,0);transform:translate(0,0);opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}}@keyframes upDownPlane{50%{-webkit-transform:translate(-1300%,920%);transform:translate(-1300%,920%)}51%{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"}75%{-webkit-transform:translate(600%,-320%);transform:translate(600%,-320%);opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"}100%{-webkit-transform:translate(0,0);transform:translate(0,0);opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}}.campaign-extra-cloud-big-opacity{display:inline-block;background-image:url(../images/dist/sprite/extra.png);background-position:0 -331px;width:747px;height:328px}.campaign-extra-cloud-big{display:inline-block;background-image:url(../images/dist/sprite/extra.png);background-position:0 0;width:749px;height:328px}.campaign-extra-cloud-small-shadow{display:inline-block;background-image:url(../images/dist/sprite/extra.png);background-position:-752px 0;width:476px;height:209px}.campaign-extra-cloud-small{display:inline-block;background-image:url(../images/dist/sprite/extra.png);background-position:-752px -212px;width:476px;height:209px}.campaign-extra-hat{display:inline-block;background-image:url(../images/dist/sprite/extra.png);background-position:-877px -424px;width:98px;height:69px}.campaign-extra-keyboard{display:inline-block;background-image:url(../images/dist/sprite/extra.png);background-position:-752px -424px;width:122px;height:100px}.campaign-extra-shop{display:inline-block;background-image:url(../images/dist/sprite/extra.png);background-position:-978px -424px;width:57px;height:60px}.owl-carousel .owl-wrapper:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.owl-carousel{display:none;position:relative;width:100%;-ms-touch-action:pan-y}.owl-carousel .owl-wrapper{display:none;position:relative;-webkit-transform:translate3d(0,0,0)}.owl-carousel .owl-wrapper-outer{position:relative;overflow:hidden;width:100%}.owl-carousel .owl-wrapper-outer.autoHeight{transition:height 500ms ease-in-out}.owl-carousel .owl-item{float:left}.owl-controls .owl-page,.owl-controls .owl-buttons div{cursor:pointer}.owl-controls{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.grabbing{cursor:url(grabbing.png) 8 8,move}.owl-carousel .owl-wrapper,.owl-carousel .owl-item{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0)}.owl-pagination{padding-top:5px}.owl-page{display:inline-block}.owl-page span{width:10px;height:10px;border:1px solid #f5f1ee;border-radius:12px;display:inline-block;margin:0 8px;transition:all .18s ease-in 0s}.owl-page span:hover{background:#ebe3dd;border:1px solid #ebe3dd}.owl-page.active span{background:#ebe3dd;border:1px solid #ebe3dd}.owl-buttons{display:none}.owl-controls{visibility:hidden}.section__title{color:#48806f;font-size:32px;font-weight:700;margin-bottom:30px;text-align:center;line-height:1em;padding:0 15px}.section__title--dark{color:#7e6f64}.section__title--light{color:#fff;text-shadow:1px 1px 1px rgba(0,0,0,.5);margin-bottom:20px}.section__title--publisher{line-height:60px;margin-bottom:5px;padding-top:14px!important}.section__desc{text-align:center;color:#5da58f;font-size:21px;margin:20px auto 23px;line-height:1em}.section__desc--dark{color:#d2beaf}.campaign__forest-img{position:absolute;top:60px;left:0;width:134px;height:195px;background:url(../images/magic_forest.png) center no-repeat;background-size:cover;display:none}.campaign__forest-img--offers{position:absolute;top:-88px;right:0;left:auto;-webkit-transform:scaleX(-1);transform:scaleX(-1)}.campaign__forest-img--youtube{position:absolute;top:60px;left:0}.campaign__maze-img{position:absolute;top:505px;right:0;width:134px;height:188px;background:url(../images/maze.png) center no-repeat;background-size:cover;display:none}.campaign__maze-img--offers{position:absolute;top:-23px;right:auto;left:0;-webkit-transform:scaleX(-1);transform:scaleX(-1)}.campaign__maze-img--youtube{position:absolute;top:60px;right:0}.campaign__main{background:#5fc9c7;background:linear-gradient(to bottom,#61c9c5 0,#7ed1bc 51%,#f2eeeb 74%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5fc9c7',endColorstr='#7ed1bc',GradientType=0);position:relative;z-index:0;height:auto;clear:both;text-align:center;padding:12px 0 0}.campaign__main-top{position:relative}.campaign__main-wrapper{margin:0 auto;max-width:1064px}.campaign__main .cloud{z-index:1}.campaign__main-cloud-s{width:25%;right:0;top:1%}.campaign__main-cloud-b{width:45%;left:0}.campaign__main-cloud-b.right{left:38%;top:1.5%}.campaign__main-indie-top{width:100%;height:auto;margin:-5% auto 0;display:block}.campaign__main-heli,.campaign__main-plane,.campaign__main-plane-shadow,.campaign__main-radiostation{height:auto;margin:0 auto;display:block}.campaign__main-radiostation{width:2.66%;top:28%;left:18%}.campaign__main-heli{width:100%;padding-top:93%;background-image:url(../images/heli.png);background-position:left center;background-size:200%;background-repeat:no-repeat}.campaign__main-heli-rwd{width:6.75%;top:8%;left:34.8%}.campaign__main-heli-main{max-width:96px}.campaign__main-plane{width:10%;top:24%;right:0}.campaign__main-plane-shadow{width:8%;top:69%;right:0}.c-navmenu{position:fixed;top:170px;right:30px;width:51px;display:none;z-index:110}.c-navmenu i{width:51px;height:51px;display:inline-block;background-color:#3e7161;background-position:center;background-repeat:no-repeat;border-bottom:3px solid #345a4e;border-radius:5px;position:relative;transition:all .18s ease-in 0s}.c-navmenu i.navmenu__item--top{background-image:url(../images/top-icon.png)}.c-navmenu i.navmenu__item--join{background-image:url(../images/join-icon.png)}.c-navmenu i.navmenu__item--offers{background-image:url(../images/offers-icon.png);background-position:10px 16px!important}.c-navmenu i.navmenu__item--academy{background-image:url(../images/academy-icon.png)}.c-navmenu i.navmenu__item--youtube{background-image:url(../images/play-icon.png)}.c-navmenu a{text-decoration:none;width:300px;height:54px;margin-bottom:4px;font-size:0;position:relative;left:0;display:block;overflow:hidden;text-align:left;transition:all .25s ease-in 0s}.c-navmenu a:hover{text-decoration:none}.c-navmenu a:hover{left:-222px;cursor:pointer;color:#fff}.c-navmenu a:hover i{background-color:#5a5d5e;border-color:#444647}.c-navmenu a:hover span{background-color:#73787a;color:#fff}.c-navmenu span{width:224px;height:51px;background-color:transparent;font-family:Roboto Condensed,sans-serif;color:transparent;font-size:18px;margin:1px 0 0 -2px;padding-left:13px;padding-right:7px;vertical-align:top;display:inline-block;box-sizing:border-box;line-height:52px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;transition:all .18s ease-in 0s}div#tatakafeedback-cloud{top:520px!important}.campaign__publisher{background:url(../images/background/slider-bg.png) top center no-repeat;margin:-6% auto 0;position:relative;width:100%;height:322px}.campaign__publisher-bg{position:absolute;left:0;width:100%;height:100%;z-index:0}.publisher__wrapper{position:absolute;width:100%;padding-top:22px;overflow:hidden}.publisher__wrapper-loader{position:absolute;top:120px;left:50%;margin-left:-25px;z-index:1}.publisher__wrapper-loader i{color:#faf9f4}.publisher__wrapper-container{max-width:1064px;margin:0 auto;position:relative;display:none}.publisher__wrapper-center{margin:0 auto;max-width:950px;position:relative}.publisher__navigation{position:absolute;top:calc(50% - 54px);z-index:2;cursor:pointer;transition:opacity .18s ease-in 0s}.publisher__navigation i{color:#80cb7d;font-size:47px;text-shadow:-1px -1px 1px #57865b;transition:all .18s ease-in 0s}.publisher__navigation:hover i{color:#90db8d}.publisher__navigation--prev{left:10px}.publisher__navigation--next{right:10px}.publisher__name{position:absolute;bottom:0;left:0;width:100%;height:22px;text-align:center;background:#ece3de;font-size:18px;line-height:26px;color:#645a52;transition:all .18s ease-in 0s}.publisher__item{width:210px;height:166px;background:#fff;position:relative;display:inline-block;margin:0 0 16px;cursor:pointer}.publisher__item:before{content:' ';display:inline-block;vertical-align:middle;height:100%}.publisher__item img{max-width:170px;max-height:144px;display:inline-block;vertical-align:middle;margin-top:-22px;filter:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="filter"><feColorMatrix type="matrix" color-interpolation-filters="sRGB" values="0.2126 .7152 .0722 0 0 .2126 .7152 .0722 0 0 .2126 .7152 .0722 0 0 0 0 0 1 0" /></filter></svg>#filter');-webkit-filter:grayscale(100%);filter:grayscale(100%);-webkit-filter:gray;filter:gray;transition:all .18s ease-in 0s}.publisher__item:hover{text-decoration:none}.publisher__item:hover img{filter:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="filter"><feColorMatrix type="matrix" color-interpolation-filters="sRGB" values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0" /></filter></svg>#filter');-webkit-filter:grayscale(0);filter:grayscale(0)}.publisher__item:hover .publisher__name{color:#5fa690}.campaign__join{background:url(../images/background/join-top.png) top center no-repeat #f2eeeb;position:relative;padding:0 15px 30px;text-align:center;border-bottom:1px solid #e4e4e4}.join__buttons{margin:0 auto;max-width:432px}.join__buttons-sign.redirect{padding:9px 25px 4px}.join__buttons span{display:block;margin:10px 15px;font-size:18px;font-weight:600;color:#d2beaf}.join__keyboard-icon{margin-top:3px}.campaign__offers{background:linear-gradient(to bottom,#fdfcfc 0,#f2eeeb 20%);position:relative;text-align:center;padding-top:50px;padding-bottom:40px;overflow:visible}.campaign__offers .campaign__wrapper{max-width:980px}.indiedeveloper__wrapper{text-align:center;padding:0 10px}.offers__shop-icon{margin-bottom:-10px}.offers__cloud{z-index:1;display:none;position:absolute}.offers__cloud--left{left:-140px;top:190px}.offers__cloud--left-shadow{left:-140px;top:410px}.offers__cloud--right{right:-120px;top:-250px}.offers__cloud--right-shadow{right:-120px;top:-30px}.c-games{position:relative;overflow:visible;padding:60px 0;text-align:center;background:#f2eeeb}.c-games .c-section__wrapper{position:relative;z-index:3}.c-games__wrapper{position:relative;font-size:0;min-height:260px;padding-bottom:30px}.c-games h2{margin-bottom:20px;font-size:40px;line-height:40px;font-weight:700;color:#49806f}.c-games__background-element{position:absolute}.c-games__cloud--left{top:70px;left:-100px}.c-games__cloud--right{bottom:200px;right:-50px}.c-games__cloud-shadow--left{top:330px;left:-100px}.c-games__cloud-shadow--right{bottom:30px;right:-50px}.c-games__magic-forest{top:20px;left:0}.c-games__maze{bottom:-100px;right:0;z-index:1}.c-games__loader{position:absolute;top:calc(50% - 20px);left:calc(50% - 25px);display:none;font-size:40px;z-index:5}.c-filters{padding:6px;text-align:center;font-size:20px;border-bottom:2px solid #d8d8d8;border-radius:4px;background:#fff}.c-filters__item{margin:6px 0;vertical-align:bottom}.c-filters__item i{cursor:pointer;transition:opacity .18s ease-in 0s}.c-filters__item i:hover{opacity:.8;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"}.c-filters__input{padding:4px 8px;line-height:26px;color:#5c5c5c;border:1px solid #d8d8d8;border-radius:3px}.c-filters__input input{width:calc(100% - 25px);font-size:20px;border:none}.c-filters__dropdown select{font-size:20px;font-family:DINCompPro-CondMedium,Trebuchet MS,Arial,Helvetica,sans-serif;color:#5c5c5c;border:none;position:relative;top:-1px}.c-filters__checkbox input[type=checkbox]{display:none}.c-filters__checkbox-check{font-size:14px;line-height:24px;color:#5c5c5c}.c-filters__checkbox .fa-check{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";transition:all .2s ease-in}.c-filters__checkbox input:checked+label .fa-check{opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}.c-game{display:inline-block;width:220px;margin:15px;vertical-align:top;text-align:left;font-size:20px;transition:all .2s ease-in;border:1px solid transparent;background:#fff}.c-game:hover{border-color:#d7d7d7;background:#fff}.c-game__title{padding:8px;line-height:22px;min-height:44px}.c-game__bottom{padding:8px}.c-game__price{font-size:28px;color:#f83010}.c-game__price-wrapper{float:left;padding-top:5px;line-height:28px}.c-game__discount{display:inline-block;vertical-align:top;height:24px;padding:0 4px;margin-left:4px;font-size:17px;line-height:28px;color:#fff;background:#5c5c5c}.c-game__discount--0{display:none}.c-game__buy{float:right;transition:all .2s ease-in}.c-game__buy.c-game__buy--smaller{font-size:22px;padding:5px 18px 0}.campaign__academy{background:url(../images/academy-shadow-top.png) top center no-repeat,linear-gradient(#5ec8c9 0,#e6f9f7 100%);padding-top:42px;position:relative}.campaign__academy .campaign__wrapper{text-align:center;box-sizing:border-box;padding:15px}.campaign__academy .cloud{z-index:1}.academy__title{color:#fff;font-size:40px;font-weight:600;text-shadow:1px 1px 1px rgba(0,0,0,.5)}.partners__wrapper{padding-bottom:40px}.partners__title{color:#fff;font-size:30px;padding-bottom:10px;text-shadow:1px 1px 1px rgba(0,0,0,.5)}.partners__box{width:154px;height:115px;background:#eee;background-position:center;background-size:100% auto;background-repeat:no-repeat;display:inline-block;margin:0 5px 5px;border:1px solid #b7b7b7;transition:all .18s ease-in 0s;filter:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="filter"><feColorMatrix type="matrix" color-interpolation-filters="sRGB" values="0.2126 .7152 .0722 0 0 .2126 .7152 .0722 0 0 .2126 .7152 .0722 0 0 0 0 0 1 0" /></filter></svg>#filter');-webkit-filter:grayscale(100%);filter:grayscale(100%);-webkit-filter:gray;filter:gray}.partners__box:hover{filter:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="filter"><feColorMatrix type="matrix" color-interpolation-filters="sRGB" values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0" /></filter></svg>#filter');-webkit-filter:grayscale(0);filter:grayscale(0)}.youtube__wrapper{text-align:center;padding-bottom:60px}.youtube__box{width:295px;height:164px;display:inline-block;cursor:pointer;font-size:0;position:relative;border:1px solid #a1a1a1;border-radius:5px;transition:all .18s ease-in 0s}.youtube__box iframe{width:295px;height:164px;border:none!important;position:relative;z-index:2;border-radius:5px}.academy__cloud--left{left:-150px;top:70px}.academy__cloud--right{display:none;right:50px;top:70px}.academy__cloud--right-mid{left:calc(50% - 80px);top:400px}.academy__cloud--right-mid--youtube{left:calc(50% - 200px);top:250px}.academy__cloud--right-bottom{right:-130px;top:700px}.academy__cloud--right-bottom--youtube{left:-250px;top:400px}.campaign__footer{padding:10px 10px 0;overflow:hidden;color:#7e6f64;text-transform:uppercase;text-align:center;font-weight:300;font-size:16px;border-top:1px solid #ebe3dd;box-shadow:0 0 4px rgba(0,0,0,.4);background:#fff;position:relative}.campaign__footer .campaign__wrapper{max-width:980px;margin:0 auto}.campaign__footer a{color:#7e6f64}.campaign__footer ul{margin:0;padding:0}.campaign__footer li{display:inline-block;vertical-align:middle;padding:3px 14px 0;line-height:14px;list-style:none;border-right:2px solid #7e6f64}.campaign__footer li:last-child{border-right:none}.footer__left{float:left;width:100%;padding:20px 0;text-align:center}.footer__right{float:right;width:100%;padding:0 0 20px;text-align:center}.footer__kbp{width:17px;height:35px;display:inline-block;margin-left:3px;filter:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="filter"><feColorMatrix type="matrix" color-interpolation-filters="sRGB" values="0.2126 .7152 .0722 0 0 .2126 .7152 .0722 0 0 .2126 .7152 .0722 0 0 0 0 0 1 0" /></filter></svg>#filter');-webkit-filter:grayscale(100%);filter:grayscale(100%);-webkit-filter:gray;filter:gray;transition:all .18s ease-in;background:url(../images/kbp.png) 0 0 no-repeat;background-size:cover}.footer__kbp:hover{filter:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="filter"><feColorMatrix type="matrix" color-interpolation-filters="sRGB" values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0" /></filter></svg>#filter');-webkit-filter:grayscale(0);filter:grayscale(0)}@media only screen and (min-width:480px){.section__title{font-size:40px}.section__desc{margin:20px auto 8px}.publisher__navigation--prev{left:40px}.publisher__navigation--next{right:40px}.youtube__box{width:445px;height:247px}.youtube__box iframe{width:445px;height:247px}.campaign__forest-img{display:block}.campaign__maze-img{display:block}.offers__cloud{z-index:1;display:block}}@media only screen and (min-width:680px){.join__buttons span{display:inline-block}.section__title{padding:0 35px}.campaign__forest-img{width:200px;height:291px;top:70px}.campaign__forest-img--offers{top:-100px}.campaign__maze-img{width:200px;height:280px;top:370px}.campaign__maze-img--offers{top:20px}.campaign__maze-img--youtube{top:70px}}@media only screen and (min-width:768px){.publisher__wrapper-center{max-width:640px}.youtube__box{width:734px;height:413px}.youtube__box iframe{width:734px;height:413px}.campaign__maze-img--offers{top:230px}.campaign__maze-img--youtube{top:70px}.owl-controls{visibility:visible}.c-filters{text-align:left}.c-filters__item{display:inline-block;margin:0 12px 0 0}}@media only screen and (min-width:992px){.c-games{padding-bottom:110px}.c-games__wrapper{text-align:left}.c-game{background:transparent}.c-game:nth-child(4n-2){margin-left:1px}.c-game:nth-child(4n+1){margin-right:0}.indiedeveloper__wrapper{padding:0}}@media only screen and (min-width:992px) and (max-width:1014px){.publisher__item{margin-left:10px;margin-right:10px}}@media only screen and (min-width:1015px){.campaign__publisher{margin:-5% auto 0}.publisher__navigation--prev{left:20px}.publisher__navigation--next{right:20px}.publisher__wrapper-center{max-width:950px}.academy__cloud--right{display:block}.campaign__forest-img{width:304px;height:442px;top:170px}.campaign__forest-img--offers{top:-153px}.campaign__maze-img{width:312px;height:437px;top:470px}.campaign__maze-img--offers{top:230px}.campaign__maze-img--youtube{top:170px}.offers__cloud--left{left:-50px;top:190px}.offers__cloud--left-shadow{left:-50px;top:410px}.offers__cloud--right{right:-150px;top:-250px}.offers__cloud--right-shadow{right:-150px;top:-30px}}@media only screen and (min-width:1200px){.publisher__navigation--prev{left:0}.publisher__navigation--next{right:0}.footer__left{width:60%;text-align:left}.footer__right{width:40%;text-align:right;padding-top:10px}}@media only screen and (min-width:1300px){.c-navmenu{display:block}}.indievalleymain{background:#fff;background-size:auto;font-family:DINCompPro-CondMedium,Trebuchet MS,Arial,Helvetica,sans-serif;font-size:13px;margin:0 auto;overflow:hidden;position:relative;width:100%}section{overflow:hidden}section .campaign__wrapper{margin:0 auto;max-width:1100px;width:100%;position:relative}section .campaign__wrapper.top{max-width:1425px}.absolute{position:absolute}.above{position:relative;z-index:2}::-webkit-input-placeholder{color:#d8ccc3;font-family:DINCompPro-CondMedium,Trebuchet MS,Arial,Helvetica,sans-serif}:-ms-input-placeholder{color:#d8ccc3;font-family:DINCompPro-CondMedium,Trebuchet MS,Arial,Helvetica,sans-serif}::placeholder{color:#d8ccc3;font-family:DINCompPro-CondMedium,Trebuchet MS,Arial,Helvetica,sans-serif}.join__buttons-log,.campaign__publisher-wrapper-button,.campaign__publisher-wrapper-button-new{display:inline-block;position:relative;color:#fff;text-transform:uppercase;text-decoration:none;font-size:25px;font-weight:700;line-height:25px;text-shadow:1px 1px #ab852d;cursor:pointer;text-align:center;outline:none;background-color:#ffc743;border:none;border-radius:8px;padding:9px 15px 4px;box-shadow:0 4px #e3ae17;transition:all .18s ease-in 0s}.join__buttons-log:hover:not(.campaign__publisher-wrapper-button-new),.campaign__publisher-wrapper-button:hover:not(.campaign__publisher-wrapper-button-new),.campaign__publisher-wrapper-button-new:hover:not(.campaign__publisher-wrapper-button-new){background-color:#fdbf2e;text-decoration:none}.join__buttons-log:active,.campaign__publisher-wrapper-button:active,.campaign__publisher-wrapper-button-new:active{box-shadow:0 2px #dca813;-webkit-transform:translateY(2px);transform:translateY(2px)}.join__buttons-log-new,.campaign__publisher-wrapper-button-new,.campaign__publisher-wrapper-button-new-new{background-color:#151615;box-shadow:none;text-shadow:none;color:#35a59c}.join__buttons-log-new:hover,.campaign__publisher-wrapper-button-new:hover,.campaign__publisher-wrapper-button-new-new:hover{text-decoration:none}.join__buttons-sign,.c-game__buy,.c-section__button-showmore,.campaign__main-developers-wrapper-grid-item-hover a{display:inline-block;position:relative;color:#fff;text-transform:uppercase;text-decoration:none;font-size:25px;font-weight:700;line-height:25px;text-shadow:1px 1px #4e907a;cursor:pointer;text-align:center;outline:none;background-color:#6fcdae;border:none;border-radius:8px;padding:9px 18px 4px;box-shadow:0 4px #5fa690;transition:all .18s ease-in 0s}.join__buttons-sign:hover,.c-game__buy:hover,.c-section__button-showmore:hover,.campaign__main-developers-wrapper-grid-item-hover a:hover{background-color:#62c2a2;text-decoration:none}.join__buttons-sign:active,.c-game__buy:active,.c-section__button-showmore:active,.campaign__main-developers-wrapper-grid-item-hover a:active{box-shadow:0 2px #377360;-webkit-transform:translateY(2px);transform:translateY(2px)}.clear:after{display:block;content:"";height:0;clear:both}.footer-container,#hot_stuff{display:none}.main-container.col1-layout{margin:0;padding:0}.main-container.col1-layout .main{padding-top:0}.header-container{position:relative;z-index:1}.header-container .header{margin-bottom:0}.col1-layout .col-main{width:100%;background:#0a101e}.main{width:100%}.kinguin_bar .header_top{height:52px}iframe[name=google_conversion_frame]{height:0}/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVzLmNzcyIsInNvdXJjZXMiOlsic3R5bGVzLnNjc3MiLCJfY2FtcGFpZ24uc2NzcyIsIi4uLy4uL19tb2R1bGUuc2NzcyIsIi4uLy4uL19mb250LnNjc3MiLCIuLi8uLi9fdmFyaWFibGUuc2NzcyIsIi4uLy4uL2JvdXJib24vX2JvdXJib24uc2NzcyIsIi4uLy4uL2JvdXJib24vc2V0dGluZ3MvX3ByZWZpeGVyLnNjc3MiLCIuLi8uLi9ib3VyYm9uL3NldHRpbmdzL19weC10by1lbS5zY3NzIiwiLi4vLi4vYm91cmJvbi9zZXR0aW5ncy9fYXNzZXQtcGlwZWxpbmUuc2NzcyIsIi4uLy4uL2JvdXJib24vZnVuY3Rpb25zL19hc3NpZ24taW5wdXRzLnNjc3MiLCIuLi8uLi9ib3VyYm9uL2Z1bmN0aW9ucy9fY29udGFpbnMuc2NzcyIsIi4uLy4uL2JvdXJib24vZnVuY3Rpb25zL19jb250YWlucy1mYWxzeS5zY3NzIiwiLi4vLi4vYm91cmJvbi9mdW5jdGlvbnMvX2lzLWxlbmd0aC5zY3NzIiwiLi4vLi4vYm91cmJvbi9mdW5jdGlvbnMvX2lzLWxpZ2h0LnNjc3MiLCIuLi8uLi9ib3VyYm9uL2Z1bmN0aW9ucy9faXMtbnVtYmVyLnNjc3MiLCIuLi8uLi9ib3VyYm9uL2Z1bmN0aW9ucy9faXMtc2l6ZS5zY3NzIiwiLi4vLi4vYm91cmJvbi9mdW5jdGlvbnMvX3B4LXRvLWVtLnNjc3MiLCIuLi8uLi9ib3VyYm9uL2Z1bmN0aW9ucy9fcHgtdG8tcmVtLnNjc3MiLCIuLi8uLi9ib3VyYm9uL2Z1bmN0aW9ucy9fc2hhZGUuc2NzcyIsIi4uLy4uL2JvdXJib24vZnVuY3Rpb25zL19zdHJpcC11bml0cy5zY3NzIiwiLi4vLi4vYm91cmJvbi9mdW5jdGlvbnMvX3RpbnQuc2NzcyIsIi4uLy4uL2JvdXJib24vZnVuY3Rpb25zL190cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUuc2NzcyIsIi4uLy4uL2JvdXJib24vZnVuY3Rpb25zL191bnBhY2suc2NzcyIsIi4uLy4uL2JvdXJib24vZnVuY3Rpb25zL19tb2R1bGFyLXNjYWxlLnNjc3MiLCIuLi8uLi9ib3VyYm9uL2hlbHBlcnMvX2NvbnZlcnQtdW5pdHMuc2NzcyIsIi4uLy4uL2JvdXJib24vaGVscGVycy9fZGlyZWN0aW9uYWwtdmFsdWVzLnNjc3MiLCIuLi8uLi9ib3VyYm9uL2hlbHBlcnMvX2ZvbnQtc291cmNlLWRlY2xhcmF0aW9uLnNjc3MiLCIuLi8uLi9ib3VyYm9uL2hlbHBlcnMvX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsIi4uLy4uL2JvdXJib24vaGVscGVycy9fbGluZWFyLWFuZ2xlLXBhcnNlci5zY3NzIiwiLi4vLi4vYm91cmJvbi9oZWxwZXJzL19saW5lYXItZ3JhZGllbnQtcGFyc2VyLnNjc3MiLCIuLi8uLi9ib3VyYm9uL2hlbHBlcnMvX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCIuLi8uLi9ib3VyYm9uL2hlbHBlcnMvX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIuc2NzcyIsIi4uLy4uL2JvdXJib24vaGVscGVycy9fcmFkaWFsLWFyZy1wYXJzZXIuc2NzcyIsIi4uLy4uL2JvdXJib24vaGVscGVycy9fcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsIi4uLy4uL2JvdXJib24vaGVscGVycy9fcmFkaWFsLWdyYWRpZW50LXBhcnNlci5zY3NzIiwiLi4vLi4vYm91cmJvbi9oZWxwZXJzL19yZW5kZXItZ3JhZGllbnRzLnNjc3MiLCIuLi8uLi9ib3VyYm9uL2hlbHBlcnMvX3NoYXBlLXNpemUtc3RyaXBwZXIuc2NzcyIsIi4uLy4uL2JvdXJib24vaGVscGVycy9fc3RyLXRvLW51bS5zY3NzIiwiLi4vLi4vYm91cmJvbi9jc3MzL19hbmltYXRpb24uc2NzcyIsIi4uLy4uL2JvdXJib24vY3NzMy9fYXBwZWFyYW5jZS5zY3NzIiwiLi4vLi4vYm91cmJvbi9jc3MzL19iYWNrZmFjZS12aXNpYmlsaXR5LnNjc3MiLCIuLi8uLi9ib3VyYm9uL2NzczMvX2JhY2tncm91bmQuc2NzcyIsIi4uLy4uL2JvdXJib24vY3NzMy9fYmFja2dyb3VuZC1pbWFnZS5zY3NzIiwiLi4vLi4vYm91cmJvbi9jc3MzL19ib3JkZXItaW1hZ2Uuc2NzcyIsIi4uLy4uL2JvdXJib24vY3NzMy9fY2FsYy5zY3NzIiwiLi4vLi4vYm91cmJvbi9jc3MzL19jb2x1bW5zLnNjc3MiLCIuLi8uLi9ib3VyYm9uL2NzczMvX2ZpbHRlci5zY3NzIiwiLi4vLi4vYm91cmJvbi9jc3MzL19mbGV4LWJveC5zY3NzIiwiLi4vLi4vYm91cmJvbi9jc3MzL19mb250LWZhY2Uuc2NzcyIsIi4uLy4uL2JvdXJib24vY3NzMy9fZm9udC1mZWF0dXJlLXNldHRpbmdzLnNjc3MiLCIuLi8uLi9ib3VyYm9uL2NzczMvX2hpZHBpLW1lZGlhLXF1ZXJ5LnNjc3MiLCIuLi8uLi9ib3VyYm9uL2NzczMvX2h5cGhlbnMuc2NzcyIsIi4uLy4uL2JvdXJib24vY3NzMy9faW1hZ2UtcmVuZGVyaW5nLnNjc3MiLCIuLi8uLi9ib3VyYm9uL2NzczMvX2tleWZyYW1lcy5zY3NzIiwiLi4vLi4vYm91cmJvbi9jc3MzL19saW5lYXItZ3JhZGllbnQuc2NzcyIsIi4uLy4uL2JvdXJib24vY3NzMy9fcGVyc3BlY3RpdmUuc2NzcyIsIi4uLy4uL2JvdXJib24vY3NzMy9fcGxhY2Vob2xkZXIuc2NzcyIsIi4uLy4uL2JvdXJib24vY3NzMy9fcmFkaWFsLWdyYWRpZW50LnNjc3MiLCIuLi8uLi9ib3VyYm9uL2NzczMvX3NlbGVjdGlvbi5zY3NzIiwiLi4vLi4vYm91cmJvbi9jc3MzL190ZXh0LWRlY29yYXRpb24uc2NzcyIsIi4uLy4uL2JvdXJib24vY3NzMy9fdHJhbnNmb3JtLnNjc3MiLCIuLi8uLi9ib3VyYm9uL2NzczMvX3RyYW5zaXRpb24uc2NzcyIsIi4uLy4uL2JvdXJib24vY3NzMy9fdXNlci1zZWxlY3Quc2NzcyIsIi4uLy4uL2JvdXJib24vYWRkb25zL19ib3JkZXItY29sb3Iuc2NzcyIsIi4uLy4uL2JvdXJib24vYWRkb25zL19ib3JkZXItcmFkaXVzLnNjc3MiLCIuLi8uLi9ib3VyYm9uL2FkZG9ucy9fYm9yZGVyLXN0eWxlLnNjc3MiLCIuLi8uLi9ib3VyYm9uL2FkZG9ucy9fYm9yZGVyLXdpZHRoLnNjc3MiLCIuLi8uLi9ib3VyYm9uL2FkZG9ucy9fYnV0dG9ucy5zY3NzIiwiLi4vLi4vYm91cmJvbi9hZGRvbnMvX2NsZWFyZml4LnNjc3MiLCIuLi8uLi9ib3VyYm9uL2FkZG9ucy9fZWxsaXBzaXMuc2NzcyIsIi4uLy4uL2JvdXJib24vYWRkb25zL19mb250LXN0YWNrcy5zY3NzIiwiLi4vLi4vYm91cmJvbi9hZGRvbnMvX2hpZGUtdGV4dC5zY3NzIiwiLi4vLi4vYm91cmJvbi9hZGRvbnMvX21hcmdpbi5zY3NzIiwiLi4vLi4vYm91cmJvbi9hZGRvbnMvX3BhZGRpbmcuc2NzcyIsIi4uLy4uL2JvdXJib24vYWRkb25zL19wb3NpdGlvbi5zY3NzIiwiLi4vLi4vYm91cmJvbi9hZGRvbnMvX3ByZWZpeGVyLnNjc3MiLCIuLi8uLi9ib3VyYm9uL2FkZG9ucy9fcmV0aW5hLWltYWdlLnNjc3MiLCIuLi8uLi9ib3VyYm9uL2FkZG9ucy9fc2l6ZS5zY3NzIiwiLi4vLi4vYm91cmJvbi9hZGRvbnMvX3RleHQtaW5wdXRzLnNjc3MiLCIuLi8uLi9ib3VyYm9uL2FkZG9ucy9fdGltaW5nLWZ1bmN0aW9ucy5zY3NzIiwiLi4vLi4vYm91cmJvbi9hZGRvbnMvX3RyaWFuZ2xlLnNjc3MiLCIuLi8uLi9ib3VyYm9uL2FkZG9ucy9fd29yZC13cmFwLnNjc3MiLCIuLi8uLi9ib3VyYm9uL19ib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmcuc2NzcyIsIi4uLy4uL19taXhpbi5zY3NzIiwiLi4vLi4vbWl4aW5zL19tcS5zY3NzIiwiLi4vLi4vbWl4aW5zL19wb3NpdGlvbi5zY3NzIiwiLi4vLi4vbWl4aW5zL19ncmFkaWVudC5zY3NzIiwiLi4vLi4vbWl4aW5zL19iYWNrZ3JvdW5kLnNjc3MiLCIuLi8uLi9taXhpbnMvX2JvcmRlci5zY3NzIiwiLi4vLi4vbWl4aW5zL19kaXNwbGF5LnNjc3MiLCIuLi8uLi9taXhpbnMvX2hvdmVyLnNjc3MiLCIuLi8uLi9taXhpbnMvX2ltcG9ydGFudC5zY3NzIiwiLi4vLi4vbWl4aW5zL19pbWFnZS5zY3NzIiwiLi4vLi4vbWl4aW5zL19yZXNldC5zY3NzIiwiLi4vLi4vbWl4aW5zL19zaGFkb3cuc2NzcyIsIi4uLy4uL21peGlucy9fc2l6ZS5zY3NzIiwiLi4vLi4vbWl4aW5zL190ZXh0LnNjc3MiLCIuLi8uLi9taXhpbnMvX3RyYW5zZm9ybS5zY3NzIiwiLi4vLi4vbWl4aW5zL190cmFuc2l0aW9uLnNjc3MiLCIuLi8uLi9taXhpbnMvX3V0aWxzLnNjc3MiLCIuLi8uLi9taXhpbnMvX2NhbGMuc2NzcyIsIl9yZXNldC5zY3NzIiwiX3ZhcmlhYmxlLnNjc3MiLCJfbWl4aW4uc2NzcyIsInNwcml0ZS9fZXh0cmEuc2NzcyIsIm93bC1jYXJvdXNlbC9fb3dsLWNhcm91c2VsLnNjc3MiLCJvd2wtY2Fyb3VzZWwvX3ZhcmlhYmxlLnNjc3MiLCJvd2wtY2Fyb3VzZWwvX2NvcmUuc2NzcyIsImdsb2JhbC9fZ2xvYmFsLnNjc3MiLCJnbG9iYWwvX3ZhcmlhYmxlLnNjc3MiLCJnbG9iYWwvX2NvcmUuc2NzcyIsIm1haW4vX21haW4uc2NzcyIsIm1haW4vX3ZhcmlhYmxlLnNjc3MiLCJtYWluL19jb3JlLnNjc3MiLCJuYXZtZW51L19uYXZtZW51LnNjc3MiLCJuYXZtZW51L192YXJpYWJsZS5zY3NzIiwibmF2bWVudS9fY29yZS5zY3NzIiwicHVibGlzaGVyL19wdWJsaXNoZXIuc2NzcyIsInB1Ymxpc2hlci9fdmFyaWFibGUuc2NzcyIsInB1Ymxpc2hlci9fY29yZS5zY3NzIiwiam9pbi9fam9pbi5zY3NzIiwiam9pbi9fdmFyaWFibGUuc2NzcyIsImpvaW4vX2NvcmUuc2NzcyIsIm9mZmVycy9fb2ZmZXJzLnNjc3MiLCJvZmZlcnMvX3ZhcmlhYmxlLnNjc3MiLCJvZmZlcnMvX2NvcmUuc2NzcyIsImdhbWVzL19nYW1lcy5zY3NzIiwiZ2FtZXMvX3ZhcmlhYmxlLnNjc3MiLCJnYW1lcy9fY29yZS5zY3NzIiwiZ2FtZXMvX2ZpbHRlcnMuc2NzcyIsImdhbWVzL19nYW1lLnNjc3MiLCJhY2FkZW15L19hY2FkZW15LnNjc3MiLCJhY2FkZW15L192YXJpYWJsZS5zY3NzIiwiYWNhZGVteS9fY29yZS5zY3NzIiwiZm9vdGVyL19mb290ZXIuc2NzcyIsImZvb3Rlci9fdmFyaWFibGUuc2NzcyIsImZvb3Rlci9fY29yZS5zY3NzIiwicndkL19yd2Quc2NzcyIsInJ3ZC9fdmFyaWFibGUuc2NzcyIsInJ3ZC9fY29yZS5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vXG4vL1x0R3VscCBsaXN0ZW4gY29tbWFuZCAoZm9yIGRlc2t0b3AgdmVyc2lvbik6XG4vLyAga2luZ3Vpbi1ndWxwIGxpc3RlbjpjYW1wYWlnbiAtLWNhbXBhaWduPWluZGlldmFsbGV5bWFpbiAtLWJzeW5jPWZhbHNlXG4vL1xuXG5AaW1wb3J0IFwiY2FtcGFpZ25cIjtcbkBpbXBvcnQgXCJzcHJpdGUvZXh0cmFcIjtcbkBpbXBvcnQgXCJvd2wtY2Fyb3VzZWwvb3dsLWNhcm91c2VsXCI7XG5AaW1wb3J0IFwiZ2xvYmFsL2dsb2JhbFwiO1xuQGltcG9ydCBcIm1haW4vbWFpblwiO1xuQGltcG9ydCBcIm5hdm1lbnUvbmF2bWVudVwiO1xuQGltcG9ydCBcInB1Ymxpc2hlci9wdWJsaXNoZXJcIjtcbkBpbXBvcnQgXCJqb2luL2pvaW5cIjtcbkBpbXBvcnQgXCJvZmZlcnMvb2ZmZXJzXCI7XG5AaW1wb3J0IFwiZ2FtZXMvZ2FtZXNcIjtcbkBpbXBvcnQgXCJhY2FkZW15L2FjYWRlbXlcIjtcbkBpbXBvcnQgXCJmb290ZXIvZm9vdGVyXCI7XG5AaW1wb3J0IFwicndkL3J3ZFwiO1xuXG4uaW5kaWV2YWxsZXltYWluIHtcblx0YmFja2dyb3VuZDogI2ZmZjtcblx0YmFja2dyb3VuZC1zaXplOiBhdXRvO1xuXHRmb250LWZhbWlseTogRElOQ29tcFByby1Db25kTWVkaXVtLCBUcmVidWNoZXQgTVMsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG5cdGZvbnQtc2l6ZTogMTNweDtcblx0bWFyZ2luOiAwIGF1dG87XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0d2lkdGg6IDEwMCVcbn1cblxuc2VjdGlvbiB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbnNlY3Rpb24gLmNhbXBhaWduX193cmFwcGVyIHtcblx0bWFyZ2luOiAwIGF1dG87XG5cdG1heC13aWR0aDogMTEwMHB4O1xuXHR3aWR0aDogMTAwJTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdCYudG9wIHtcblx0XHRtYXgtd2lkdGg6IDE0MjVweFxuXHR9XG59XG5cbi5hYnNvbHV0ZSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZVxufVxuXG4uYWJvdmUge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHotaW5kZXg6IDJcbn1cblxuOjpwbGFjZWhvbGRlciB7XG5cdGNvbG9yOiAjZDhjY2MzO1xuXHRmb250LWZhbWlseTogRElOQ29tcFByby1Db25kTWVkaXVtLCBUcmVidWNoZXQgTVMsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG59XG5cbi5qb2luX19idXR0b25zLWxvZywgLmNhbXBhaWduX19wdWJsaXNoZXItd3JhcHBlci1idXR0b24sIC5jYW1wYWlnbl9fcHVibGlzaGVyLXdyYXBwZXItYnV0dG9uLW5ldyB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRjb2xvcjogI2ZmZjtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRmb250LXNpemU6IDI1cHg7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRsaW5lLWhlaWdodDogMjVweDtcblx0dGV4dC1zaGFkb3c6IDFweCAxcHggI2FiODUyZDtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdG91dGxpbmU6IG5vbmU7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmM3NDM7XG5cdGJvcmRlcjogbm9uZTtcblx0Ym9yZGVyLXJhZGl1czogOHB4O1xuXHRwYWRkaW5nOiA5cHggMTVweCA0cHggMTVweDtcblx0Ym94LXNoYWRvdzogMCA0cHggI2UzYWUxNztcblx0dHJhbnNpdGlvbjogYWxsIDAuMThzIGVhc2UtaW4gMHM7XG5cblx0Jjpob3Zlcjpub3QoLmNhbXBhaWduX19wdWJsaXNoZXItd3JhcHBlci1idXR0b24tbmV3KSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZkYmYyZTtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmVcblx0fVxuXG5cdCY6YWN0aXZlIHtcblx0XHRib3gtc2hhZG93OiAwIDJweCAjZGNhODEzO1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgycHgpXG5cdH1cblxuXHQmLW5ldyB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzE1MTYxNTtcblx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdHRleHQtc2hhZG93OiBub25lO1xuXHRcdGNvbG9yOiAjMzVhNTljO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmVcblx0XHR9XG5cdH1cbn1cblxuXG4uam9pbl9fYnV0dG9ucy1zaWduLCAuYy1nYW1lX19idXksIC5jLXNlY3Rpb25fX2J1dHRvbi1zaG93bW9yZSwgLmNhbXBhaWduX19tYWluLWRldmVsb3BlcnMtd3JhcHBlci1ncmlkLWl0ZW0taG92ZXIgYSB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRjb2xvcjogI2ZmZjtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRmb250LXNpemU6IDI1cHg7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRsaW5lLWhlaWdodDogMjVweDtcblx0dGV4dC1zaGFkb3c6IDFweCAxcHggIzRlOTA3YTtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdG91dGxpbmU6IG5vbmU7XG5cdGJhY2tncm91bmQtY29sb3I6ICM2ZmNkYWU7XG5cdGJvcmRlcjogbm9uZTtcblx0Ym9yZGVyLXJhZGl1czogOHB4O1xuXHRwYWRkaW5nOiA5cHggMThweCA0cHggMThweDtcblx0Ym94LXNoYWRvdzogMCA0cHggIzVmYTY5MDtcblx0dHJhbnNpdGlvbjogYWxsIDAuMThzIGVhc2UtaW4gMHM7XG5cblx0Jjpob3ZlciB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzYyYzJhMjtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmVcblx0fVxuXG5cdCY6YWN0aXZlIHtcblx0XHRib3gtc2hhZG93OiAwIDJweCAjMzc3MzYwO1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgycHgpXG5cdH1cbn1cblxuLmNsZWFyIHtcblx0JjphZnRlciB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0Y29udGVudDogXCJcIjtcblx0XHRoZWlnaHQ6IDA7XG5cdFx0Y2xlYXI6IGJvdGg7XG5cdH1cbn1cblxuXG4vKiogYmVnaW4gb2YgcmV3cml0ZSBtYWluIGtpbmd1aW4gc3R5bGVzICoqL1xuLmZvb3Rlci1jb250YWluZXIsICNob3Rfc3R1ZmYge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4ubWFpbi1jb250YWluZXIuY29sMS1sYXlvdXQge1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDA7XG59XG5cbi5tYWluLWNvbnRhaW5lci5jb2wxLWxheW91dCAubWFpbiB7XG5cdHBhZGRpbmctdG9wOiAwO1xufVxuXG4uaGVhZGVyLWNvbnRhaW5lciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ei1pbmRleDoxXG59XG5cbi5oZWFkZXItY29udGFpbmVyIC5oZWFkZXIge1xuXHRtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uY29sMS1sYXlvdXQgLmNvbC1tYWluIHtcblx0d2lkdGg6IDEwMCU7XG5cdGJhY2tncm91bmQ6ICMwQTEwMUVcbn1cblxuLm1haW4ge1xuXHR3aWR0aDogMTAwJVxufVxuXG4ua2luZ3Vpbl9iYXIgLmhlYWRlcl90b3Age1xuXHRoZWlnaHQ6IDUycHg7XG59XG5cbmlmcmFtZVtuYW1lPVwiZ29vZ2xlX2NvbnZlcnNpb25fZnJhbWVcIl0ge1xuXHRoZWlnaHQ6IDBweDtcbn1cbi8qKiBlbmQgb2YgcmV3cml0ZSBtYWluIGtpbmd1aW4gc3R5bGVzICoqL1xuIiwiQGltcG9ydCB1cmwoJ2h0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNS4wL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcycpO1xuXG5AaW1wb3J0IFwiLi4vLi4vbW9kdWxlXCI7XG5AaW1wb3J0IFwicmVzZXRcIjtcbkBpbXBvcnQgXCJ2YXJpYWJsZVwiO1xuQGltcG9ydCBcIm1peGluXCI7XG5cblxuIiwiQGltcG9ydCBcImZvbnRcIjtcclxuQGltcG9ydCBcInZhcmlhYmxlXCI7XHJcbkBpbXBvcnQgXCJib3VyYm9uL2JvdXJib25cIjtcclxuQGltcG9ydCBcIm1peGluXCI7IiwiJGJhc2VGb250OiBBcmlhbDtcbiRraW5ndWluRm9udDogXCJESU5Db21wUHJvLUNvbmRNZWRpdW1cIjsiLCIvKiBETyBOT1QgQ0hBTkdFIFZBUklBQkxFUyBCRUxPVyAhISEhISEhISEhISEhISAqL1xuXG4kY2FtcGFpZ25Sb290UGF0aDogXCIuLi9cIjtcbiRjYW1wYWlnbkltYWdlc1BhdGg6ICRjYW1wYWlnblJvb3RQYXRoK1wiaW1hZ2VzL1wiO1xuXG4vKiAtLSBTTElERVIgLS0gKi9cbiRjYW1wYWlnbkltYWdlc1ByZWZpeDogXCJjYW1wYWlnbl9cIjsiLCIvLyBCb3VyYm9uIDQuMi41XG4vLyBodHRwOi8vYm91cmJvbi5pb1xuLy8gQ29weXJpZ2h0IDIwMTEtMjAxNSB0aG91Z2h0Ym90LCBpbmMuXG4vLyBNSVQgTGljZW5zZVxuXG5AaW1wb3J0IFwic2V0dGluZ3MvcHJlZml4ZXJcIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy9weC10by1lbVwiO1xuQGltcG9ydCBcInNldHRpbmdzL2Fzc2V0LXBpcGVsaW5lXCI7XG5cbkBpbXBvcnQgXCJmdW5jdGlvbnMvYXNzaWduLWlucHV0c1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9jb250YWluc1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9jb250YWlucy1mYWxzeVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1sZW5ndGhcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbGlnaHRcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbnVtYmVyXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLXNpemVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvcHgtdG8tZW1cIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvcHgtdG8tcmVtXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3NoYWRlXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3N0cmlwLXVuaXRzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3RpbnRcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3VucGFja1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9tb2R1bGFyLXNjYWxlXCI7XG5cbkBpbXBvcnQgXCJoZWxwZXJzL2NvbnZlcnQtdW5pdHNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2RpcmVjdGlvbmFsLXZhbHVlc1wiO1xuQGltcG9ydCBcImhlbHBlcnMvZm9udC1zb3VyY2UtZGVjbGFyYXRpb25cIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1hbmdsZS1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1ncmFkaWVudC1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtYXJnLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1ncmFkaWVudC1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JlbmRlci1ncmFkaWVudHNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3NoYXBlLXNpemUtc3RyaXBwZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3N0ci10by1udW1cIjtcblxuQGltcG9ydCBcImNzczMvYW5pbWF0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy9hcHBlYXJhbmNlXCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZmFjZS12aXNpYmlsaXR5XCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZ3JvdW5kXCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZ3JvdW5kLWltYWdlXCI7XG5AaW1wb3J0IFwiY3NzMy9ib3JkZXItaW1hZ2VcIjtcbkBpbXBvcnQgXCJjc3MzL2NhbGNcIjtcbkBpbXBvcnQgXCJjc3MzL2NvbHVtbnNcIjtcbkBpbXBvcnQgXCJjc3MzL2ZpbHRlclwiO1xuQGltcG9ydCBcImNzczMvZmxleC1ib3hcIjtcbkBpbXBvcnQgXCJjc3MzL2ZvbnQtZmFjZVwiO1xuQGltcG9ydCBcImNzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzXCI7XG5AaW1wb3J0IFwiY3NzMy9oaWRwaS1tZWRpYS1xdWVyeVwiO1xuQGltcG9ydCBcImNzczMvaHlwaGVuc1wiO1xuQGltcG9ydCBcImNzczMvaW1hZ2UtcmVuZGVyaW5nXCI7XG5AaW1wb3J0IFwiY3NzMy9rZXlmcmFtZXNcIjtcbkBpbXBvcnQgXCJjc3MzL2xpbmVhci1ncmFkaWVudFwiO1xuQGltcG9ydCBcImNzczMvcGVyc3BlY3RpdmVcIjtcbkBpbXBvcnQgXCJjc3MzL3BsYWNlaG9sZGVyXCI7XG5AaW1wb3J0IFwiY3NzMy9yYWRpYWwtZ3JhZGllbnRcIjtcbkBpbXBvcnQgXCJjc3MzL3NlbGVjdGlvblwiO1xuQGltcG9ydCBcImNzczMvdGV4dC1kZWNvcmF0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy90cmFuc2Zvcm1cIjtcbkBpbXBvcnQgXCJjc3MzL3RyYW5zaXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL3VzZXItc2VsZWN0XCI7XG5cbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLWNvbG9yXCI7XG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1yYWRpdXNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXN0eWxlXCI7XG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci13aWR0aFwiO1xuQGltcG9ydCBcImFkZG9ucy9idXR0b25zXCI7XG5AaW1wb3J0IFwiYWRkb25zL2NsZWFyZml4XCI7XG5AaW1wb3J0IFwiYWRkb25zL2VsbGlwc2lzXCI7XG5AaW1wb3J0IFwiYWRkb25zL2ZvbnQtc3RhY2tzXCI7XG5AaW1wb3J0IFwiYWRkb25zL2hpZGUtdGV4dFwiO1xuQGltcG9ydCBcImFkZG9ucy9tYXJnaW5cIjtcbkBpbXBvcnQgXCJhZGRvbnMvcGFkZGluZ1wiO1xuQGltcG9ydCBcImFkZG9ucy9wb3NpdGlvblwiO1xuQGltcG9ydCBcImFkZG9ucy9wcmVmaXhlclwiO1xuQGltcG9ydCBcImFkZG9ucy9yZXRpbmEtaW1hZ2VcIjtcbkBpbXBvcnQgXCJhZGRvbnMvc2l6ZVwiO1xuQGltcG9ydCBcImFkZG9ucy90ZXh0LWlucHV0c1wiO1xuQGltcG9ydCBcImFkZG9ucy90aW1pbmctZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RyaWFuZ2xlXCI7XG5AaW1wb3J0IFwiYWRkb25zL3dvcmQtd3JhcFwiO1xuXG5AaW1wb3J0IFwiYm91cmJvbi1kZXByZWNhdGVkLXVwY29taW5nXCI7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHbG9iYWwgdmFyaWFibGVzIHRvIGVuYWJsZSBvciBkaXNhYmxlIHZlbmRvciBwcmVmaXhlc1xuXG4kcHJlZml4LWZvci13ZWJraXQ6ICAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1tb3ppbGxhOiAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1taWNyb3NvZnQ6IHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1vcGVyYTogICAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1zcGVjOiAgICAgIHRydWUgIWRlZmF1bHQ7XG4iLCIkZW0tYmFzZTogMTZweCAhZGVmYXVsdDtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEEgZ2xvYmFsIHNldHRpbmcgdG8gZW5hYmxlIG9yIGRpc2FibGUgdGhlIGAkYXNzZXQtcGlwZWxpbmVgIHZhcmlhYmxlIGZvciBhbGwgZnVuY3Rpb25zIHRoYXQgYWNjZXB0IGl0LlxuLy8vXG4vLy8gQHR5cGUgQm9vbFxuXG4kYXNzZXQtcGlwZWxpbmU6IGZhbHNlICFkZWZhdWx0O1xuIiwiQGZ1bmN0aW9uIGFzc2lnbi1pbnB1dHMoJGlucHV0cywgJHBzZXVkbzogbnVsbCkge1xuICAkbGlzdDogKCk7XG5cbiAgQGVhY2ggJGlucHV0IGluICRpbnB1dHMge1xuICAgICRpbnB1dDogdW5xdW90ZSgkaW5wdXQpO1xuICAgICRpbnB1dDogaWYoJHBzZXVkbywgJGlucHV0ICsgXCI6XCIgKyAkcHNldWRvLCAkaW5wdXQpO1xuICAgICRsaXN0OiBhcHBlbmQoJGxpc3QsICRpbnB1dCwgY29tbWEpO1xuICB9XG5cbiAgQHJldHVybiAkbGlzdDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBpZiBhIGxpc3QgY29udGFpbnMgYSB2YWx1ZShzKS5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdFxuLy8vICAgVGhlIGxpc3QgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHVlc1xuLy8vICAgQSBzaW5nbGUgdmFsdWUgb3IgbGlzdCBvZiB2YWx1ZXMgdG8gY2hlY2sgZm9yLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICBjb250YWlucygkbGlzdCwgJHZhbHVlKVxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGNvbnRhaW5zKCRsaXN0LCAkdmFsdWVzLi4uKSB7XG4gIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWVzIHtcbiAgICBAaWYgdHlwZS1vZihpbmRleCgkbGlzdCwgJHZhbHVlKSkgIT0gXCJudW1iZXJcIiB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gdHJ1ZTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBpZiBhIGxpc3QgZG9lcyBub3QgY29udGFpbnMgYSB2YWx1ZS5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdFxuLy8vICAgVGhlIGxpc3QgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9XG5cbkBmdW5jdGlvbiBjb250YWlucy1mYWxzeSgkbGlzdCkge1xuICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XG4gICAgQGlmIG5vdCAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBmYWxzZTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBDU1MgbGVuZ3RoLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR2YWx1ZVxuXG5AZnVuY3Rpb24gaXMtbGVuZ3RoKCR2YWx1ZSkge1xuICBAcmV0dXJuIHR5cGUtb2YoJHZhbHVlKSAhPSBcIm51bGxcIiBhbmQgKHN0ci1zbGljZSgkdmFsdWUgKyBcIlwiLCAxLCA0KSA9PSBcImNhbGNcIlxuICAgICAgIG9yIGluZGV4KGF1dG8gaW5oZXJpdCBpbml0aWFsIDAsICR2YWx1ZSlcbiAgICAgICBvciAodHlwZS1vZigkdmFsdWUpID09IFwibnVtYmVyXCIgYW5kIG5vdCh1bml0bGVzcygkdmFsdWUpKSkpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvZ3JhbWF0aWNhbGx5IGRldGVybWluZXMgd2hldGhlciBhIGNvbG9yIGlzIGxpZ2h0IG9yIGRhcmsuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vcm9ib3RzLnRob3VnaHRib3QuY29tL2Nsb3Nlci1sb29rLWNvbG9yLWxpZ2h0bmVzc1xuLy8vXG4vLy8gQHBhcmFtIHtDb2xvciAoSGV4KX0gJGNvbG9yXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIGlzLWxpZ2h0KCRjb2xvcilcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9XG5cbkBmdW5jdGlvbiBpcy1saWdodCgkaGV4LWNvbG9yKSB7XG4gICQtbG9jYWwtcmVkOiByZWQocmdiYSgkaGV4LWNvbG9yLCAxKSk7XG4gICQtbG9jYWwtZ3JlZW46IGdyZWVuKHJnYmEoJGhleC1jb2xvciwgMSkpO1xuICAkLWxvY2FsLWJsdWU6IGJsdWUocmdiYSgkaGV4LWNvbG9yLCAxKSk7XG4gICQtbG9jYWwtbGlnaHRuZXNzOiAoJC1sb2NhbC1yZWQgKiAwLjIxMjYgKyAkLWxvY2FsLWdyZWVuICogMC43MTUyICsgJC1sb2NhbC1ibHVlICogMC4wNzIyKSAvIDI1NTtcblxuICBAcmV0dXJuICQtbG9jYWwtbGlnaHRuZXNzID4gMC42O1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIG51bWJlci5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWVcbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnNcblxuQGZ1bmN0aW9uIGlzLW51bWJlcigkdmFsdWUpIHtcbiAgQHJldHVybiBjb250YWlucyhcIjBcIiBcIjFcIiBcIjJcIiBcIjNcIiBcIjRcIiBcIjVcIiBcIjZcIiBcIjdcIiBcIjhcIiBcIjlcIiAwIDEgMiAzIDQgNSA2IDcgOCA5LCAkdmFsdWUpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIENTUyBzaXplLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR2YWx1ZVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWluc1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gaXMtbGVuZ3RoXG5cbkBmdW5jdGlvbiBpcy1zaXplKCR2YWx1ZSkge1xuICBAcmV0dXJuIGlzLWxlbmd0aCgkdmFsdWUpXG4gICAgICAgICAgb3IgY29udGFpbnMoXCJmaWxsXCIgXCJmaXQtY29udGVudFwiIFwibWluLWNvbnRlbnRcIiBcIm1heC1jb250ZW50XCIsICR2YWx1ZSk7XG59XG4iLCIvLyBDb252ZXJ0IHBpeGVscyB0byBlbXNcbi8vIGVnLiBmb3IgYSByZWxhdGlvbmFsIHZhbHVlIG9mIDEycHggd3JpdGUgZW0oMTIpIHdoZW4gdGhlIHBhcmVudCBpcyAxNnB4XG4vLyBpZiB0aGUgcGFyZW50IGlzIGFub3RoZXIgdmFsdWUgc2F5IDI0cHggd3JpdGUgZW0oMTIsIDI0KVxuXG5AZnVuY3Rpb24gZW0oJHB4dmFsLCAkYmFzZTogJGVtLWJhc2UpIHtcbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcbiAgICAkcHh2YWw6IHN0cmlwLXVuaXRzKCRweHZhbCk7XG4gIH1cbiAgQGlmIG5vdCB1bml0bGVzcygkYmFzZSkge1xuICAgICRiYXNlOiBzdHJpcC11bml0cygkYmFzZSk7XG4gIH1cbiAgQHJldHVybiAoJHB4dmFsIC8gJGJhc2UpICogMWVtO1xufVxuIiwiLy8gQ29udmVydCBwaXhlbHMgdG8gcmVtc1xuLy8gZWcuIGZvciBhIHJlbGF0aW9uYWwgdmFsdWUgb2YgMTJweCB3cml0ZSByZW0oMTIpXG4vLyBBc3N1bWVzICRlbS1iYXNlIGlzIHRoZSBmb250LXNpemUgb2YgPGh0bWw+XG5cbkBmdW5jdGlvbiByZW0oJHB4dmFsKSB7XG4gIEBpZiBub3QgdW5pdGxlc3MoJHB4dmFsKSB7XG4gICAgJHB4dmFsOiBzdHJpcC11bml0cygkcHh2YWwpO1xuICB9XG5cbiAgJGJhc2U6ICRlbS1iYXNlO1xuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcbiAgfVxuICBAcmV0dXJuICgkcHh2YWwgLyAkYmFzZSkgKiAxcmVtO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gTWl4ZXMgYSBjb2xvciB3aXRoIGJsYWNrLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAoUGVyY2VudGFnZSl9ICRwZXJjZW50XG4vLy8gICBUaGUgYW1vdW50IG9mIGJsYWNrIHRvIGJlIG1peGVkIGluLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHNoYWRlKCNmZmJiNTIsIDYwJSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICM2NjRhMjA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmV0dXJuIHtDb2xvcn1cblxuQGZ1bmN0aW9uIHNoYWRlKCRjb2xvciwgJHBlcmNlbnQpIHtcbiAgQHJldHVybiBtaXgoIzAwMCwgJGNvbG9yLCAkcGVyY2VudCk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBTdHJpcHMgdGhlIHVuaXQgZnJvbSBhIG51bWJlci5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIChXaXRoIFVuaXQpfSAkdmFsdWVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgJGRpbWVuc2lvbjogc3RyaXAtdW5pdHMoMTBlbSk7XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAkZGltZW5zaW9uOiAxMDtcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlciAoVW5pdGxlc3MpfVxuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdHMoJHZhbHVlKSB7XG4gIEByZXR1cm4gKCR2YWx1ZSAvICgkdmFsdWUgKiAwICsgMSkpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gTWl4ZXMgYSBjb2xvciB3aXRoIHdoaXRlLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAoUGVyY2VudGFnZSl9ICRwZXJjZW50XG4vLy8gICBUaGUgYW1vdW50IG9mIHdoaXRlIHRvIGJlIG1peGVkIGluLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoIzZlY2FhNiwgNDAlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2E4ZGZjOTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXR1cm4ge0NvbG9yfVxuXG5AZnVuY3Rpb24gdGludCgkY29sb3IsICRwZXJjZW50KSB7XG4gIEByZXR1cm4gbWl4KCNmZmYsICRjb2xvciwgJHBlcmNlbnQpO1xufVxuIiwiLy8gUmV0dXJuIHZlbmRvci1wcmVmaXhlZCBwcm9wZXJ0eSBuYW1lcyBpZiBhcHByb3ByaWF0ZVxuLy8gRXhhbXBsZTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygodHJhbnNmb3JtLCBjb2xvciwgYmFja2dyb3VuZCksIG1veikgLT4gLW1vei10cmFuc2Zvcm0sIGNvbG9yLCBiYWNrZ3JvdW5kXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcHMsICR2ZW5kb3I6IGZhbHNlKSB7XG4gICRuZXctcHJvcHM6ICgpO1xuXG4gIEBlYWNoICRwcm9wIGluICRwcm9wcyB7XG4gICAgJG5ldy1wcm9wczogYXBwZW5kKCRuZXctcHJvcHMsIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvciksIGNvbW1hKTtcbiAgfVxuXG4gIEByZXR1cm4gJG5ldy1wcm9wcztcbn1cblxuQGZ1bmN0aW9uIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvcjogZmFsc2UpIHtcbiAgLy8gcHV0IG90aGVyIHByb3BlcnRpZXMgdGhhdCBuZWVkIHRvIGJlIHByZWZpeGVkIGhlcmUgYXN3ZWxsXG4gIEBpZiAkdmVuZG9yIGFuZCAkcHJvcCA9PSB0cmFuc2Zvcm0ge1xuICAgIEByZXR1cm4gdW5xdW90ZSgnLScrJHZlbmRvcisnLScrJHByb3ApO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICRwcm9wO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDb252ZXJ0cyBzaG9ydGhhbmQgdG8gdGhlIDQtdmFsdWUgc3ludGF4LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hvcnRoYW5kXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luOiB1bnBhY2soMWVtIDJlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbjogMWVtIDJlbSAxZW0gMmVtO1xuLy8vICAgfVxuXG5AZnVuY3Rpb24gdW5wYWNrKCRzaG9ydGhhbmQpIHtcbiAgQGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAxIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKTtcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMiB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMik7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDMge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKSBudGgoJHNob3J0aGFuZCwgMykgbnRoKCRzaG9ydGhhbmQsIDIpO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuICRzaG9ydGhhbmQ7XG4gIH1cbn1cbiIsIi8vIFNjYWxpbmcgVmFyaWFibGVzXG4kZ29sZGVuOiAgICAgICAgICAgMS42MTg7XG4kbWlub3Itc2Vjb25kOiAgICAgMS4wNjc7XG4kbWFqb3Itc2Vjb25kOiAgICAgMS4xMjU7XG4kbWlub3ItdGhpcmQ6ICAgICAgMS4yO1xuJG1ham9yLXRoaXJkOiAgICAgIDEuMjU7XG4kcGVyZmVjdC1mb3VydGg6ICAgMS4zMzM7XG4kYXVnbWVudGVkLWZvdXJ0aDogMS40MTQ7XG4kcGVyZmVjdC1maWZ0aDogICAgMS41O1xuJG1pbm9yLXNpeHRoOiAgICAgIDEuNjtcbiRtYWpvci1zaXh0aDogICAgICAxLjY2NztcbiRtaW5vci1zZXZlbnRoOiAgICAxLjc3ODtcbiRtYWpvci1zZXZlbnRoOiAgICAxLjg3NTtcbiRvY3RhdmU6ICAgICAgICAgICAyO1xuJG1ham9yLXRlbnRoOiAgICAgIDIuNTtcbiRtYWpvci1lbGV2ZW50aDogICAyLjY2NztcbiRtYWpvci10d2VsZnRoOiAgICAzO1xuJGRvdWJsZS1vY3RhdmU6ICAgIDQ7XG5cbiRtb2R1bGFyLXNjYWxlLXJhdGlvOiAkcGVyZmVjdC1mb3VydGggIWRlZmF1bHQ7XG4kbW9kdWxhci1zY2FsZS1iYXNlOiBlbSgkZW0tYmFzZSkgIWRlZmF1bHQ7XG5cbkBmdW5jdGlvbiBtb2R1bGFyLXNjYWxlKCRpbmNyZW1lbnQsICR2YWx1ZTogJG1vZHVsYXItc2NhbGUtYmFzZSwgJHJhdGlvOiAkbW9kdWxhci1zY2FsZS1yYXRpbykge1xuICAkdjE6IG50aCgkdmFsdWUsIDEpO1xuICAkdjI6IG50aCgkdmFsdWUsIGxlbmd0aCgkdmFsdWUpKTtcbiAgJHZhbHVlOiAkdjE7XG5cbiAgLy8gc2NhbGUgJHYyIHRvIGp1c3QgYWJvdmUgJHYxXG4gIEB3aGlsZSAkdjIgPiAkdjEge1xuICAgICR2MjogKCR2MiAvICRyYXRpbyk7IC8vIHdpbGwgYmUgb2ZmLWJ5LTFcbiAgfVxuICBAd2hpbGUgJHYyIDwgJHYxIHtcbiAgICAkdjI6ICgkdjIgKiAkcmF0aW8pOyAvLyB3aWxsIGZpeCBvZmYtYnktMVxuICB9XG5cbiAgLy8gY2hlY2sgQUZURVIgc2NhbGluZyAkdjIgdG8gcHJldmVudCBkb3VibGUtY291bnRpbmcgY29ybmVyLWNhc2VcbiAgJGRvdWJsZS1zdHJhbmRlZDogJHYyID4gJHYxO1xuXG4gIEBpZiAkaW5jcmVtZW50ID4gMCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkaW5jcmVtZW50IHtcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxICogJHJhdGlvKSA+ICR2MiB7XG4gICAgICAgICR2YWx1ZTogJHYyO1xuICAgICAgICAkdjI6ICgkdjIgKiAkcmF0aW8pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR2MTogKCR2MSAqICRyYXRpbyk7XG4gICAgICAgICR2YWx1ZTogJHYxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkaW5jcmVtZW50IDwgMCB7XG4gICAgLy8gYWRqdXN0ICR2MiB0byBqdXN0IGJlbG93ICR2MVxuICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIHtcbiAgICAgICR2MjogKCR2MiAvICRyYXRpbyk7XG4gICAgfVxuXG4gICAgQGZvciAkaSBmcm9tICRpbmNyZW1lbnQgdGhyb3VnaCAtMSB7XG4gICAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCBhbmQgKCR2MSAvICRyYXRpbykgPCAkdjIge1xuICAgICAgICAkdmFsdWU6ICR2MjtcbiAgICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkdjE6ICgkdjEgLyAkcmF0aW8pO1xuICAgICAgICAkdmFsdWU6ICR2MTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEhlbHBlciBmdW5jdGlvbiBmb3Igc3RyLXRvLW51bSBmbi5cbi8vIFNvdXJjZTogaHR0cDovL3Nhc3NtZWlzdGVyLmNvbS9naXN0Lzk2NDc0MDhcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiBfY29udmVydC11bml0cygkbnVtYmVyLCAkdW5pdCkge1xuICAkc3RyaW5nczogXCJweFwiLCBcImNtXCIsIFwibW1cIiwgXCIlXCIsIFwiY2hcIiwgXCJwaWNhXCIsIFwiaW5cIiwgXCJlbVwiLCBcInJlbVwiLCBcInB0XCIsIFwicGNcIiwgXCJleFwiLCBcInZ3XCIsIFwidmhcIiwgXCJ2bWluXCIsIFwidm1heFwiLCBcImRlZ1wiLCBcInJhZFwiLCBcImdyYWRcIiwgXCJ0dXJuXCI7XG4gICR1bml0czogICAxcHgsIDFjbSwgMW1tLCAxJSwgMWNoLCAxcGljYSwgMWluLCAxZW0sIDFyZW0sIDFwdCwgMXBjLCAxZXgsIDF2dywgMXZoLCAxdm1pbiwgMXZtYXgsIDFkZWcsIDFyYWQsIDFncmFkLCAxdHVybjtcbiAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJHVuaXQpO1xuXG4gIEBpZiBub3QgJGluZGV4IHtcbiAgICBAd2FybiBcIlVua25vd24gdW5pdCBgI3skdW5pdH1gLlwiO1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkbnVtYmVyKSAhPSBcIm51bWJlclwiIHtcbiAgICBAd2FybiBcImAjeyRudW1iZXJ9IGlzIG5vdCBhIG51bWJlcmBcIjtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgQHJldHVybiAkbnVtYmVyICogbnRoKCR1bml0cywgJGluZGV4KTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIERpcmVjdGlvbmFsLXByb3BlcnR5IG1peGlucyBhcmUgc2hvcnRoYW5kcyBmb3Igd3JpdGluZyBwcm9wZXJ0aWVzIGxpa2UgdGhlIGZvbGxvd2luZ1xuLy8vXG4vLy8gQGlnbm9yZSBZb3UgY2FuIGFsc28gdXNlIGBmYWxzZWAgaW5zdGVhZCBvZiBgbnVsbGAuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGRpcmVjdGlvbmFsIHZhbHVlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1zdHlsZShkb3R0ZWQgbnVsbCk7XG4vLy8gICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIDAgMTBweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IGRvdHRlZDtcbi8vLyAgICAgYm9yZGVyLXRvcC1zdHlsZTogZG90dGVkO1xuLy8vICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuLy8vICAgICBtYXJnaW4tbGVmdDogMDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWlucy1mYWxzeVxuLy8vXG4vLy8gQHJldHVybiB7TGlzdH1cblxuQGZ1bmN0aW9uIGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscykge1xuICAkb3V0cHV0OiBudWxsO1xuXG4gICRhOiBudGgoJHZhbHMsIDEpO1xuICAkYjogaWYobGVuZ3RoKCR2YWxzKSA8IDIsICRhLCBudGgoJHZhbHMsIDIpKTtcbiAgJGM6IGlmKGxlbmd0aCgkdmFscykgPCAzLCAkYSwgbnRoKCR2YWxzLCAzKSk7XG4gICRkOiBpZihsZW5ndGgoJHZhbHMpIDwgMiwgJGEsIG50aCgkdmFscywgaWYobGVuZ3RoKCR2YWxzKSA8IDQsIDIsIDQpKSk7XG5cbiAgQGlmICRhID09IDAgeyAkYTogMDsgfVxuICBAaWYgJGIgPT0gMCB7ICRiOiAwOyB9XG4gIEBpZiAkYyA9PSAwIHsgJGM6IDA7IH1cbiAgQGlmICRkID09IDAgeyAkZDogMDsgfVxuXG4gIEBpZiAkYSA9PSAkYiBhbmQgJGEgPT0gJGMgYW5kICRhID09ICRkIHsgJG91dHB1dDogJGE7ICAgICAgICAgIH1cbiAgQGVsc2UgaWYgJGEgPT0gJGMgYW5kICRiID09ICRkICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYjsgICAgICAgfVxuICBAZWxzZSBpZiAkYiA9PSAkZCAgICAgICAgICAgICAgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiICRjOyAgICB9XG4gIEBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJGEgJGIgJGMgJGQ7IH1cblxuICBAcmV0dXJuICRvdXRwdXQ7XG59XG5cbi8vLyBPdXRwdXQgZGlyZWN0aW9uYWwgcHJvcGVydGllcywgZm9yIGluc3RhbmNlIGBtYXJnaW5gLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByZVxuLy8vICAgUHJlZml4IHRvIHVzZVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3VmXG4vLy8gICBTdWZmaXggdG8gdXNlXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiB2YWx1ZXNcbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29sbGFwc2UtZGlyZWN0aW9uYWxzXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWlucy1mYWxzeVxuXG5AbWl4aW4gZGlyZWN0aW9uYWwtcHJvcGVydHkoJHByZSwgJHN1ZiwgJHZhbHMpIHtcbiAgLy8gUHJvcGVydHkgTmFtZXNcbiAgJHRvcDogICAgJHByZSArIFwiLXRvcFwiICAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGJvdHRvbTogJHByZSArIFwiLWJvdHRvbVwiICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGxlZnQ6ICAgJHByZSArIFwiLWxlZnRcIiAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJHJpZ2h0OiAgJHByZSArIFwiLXJpZ2h0XCIgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGFsbDogICAgJHByZSArICAgICAgICAgICAgIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG5cbiAgJHZhbHM6IGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscyk7XG5cbiAgQGlmIGNvbnRhaW5zLWZhbHN5KCR2YWxzKSB7XG4gICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyR0b3B9OiBudGgoJHZhbHMsIDEpOyB9XG5cbiAgICBAaWYgbGVuZ3RoKCR2YWxzKSA9PSAxIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDEpOyB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JHJpZ2h0fTogbnRoKCR2YWxzLCAyKTsgfVxuICAgIH1cblxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDIge1xuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDEpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgMik7IH1cbiAgICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFscykgPT0gMyB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAzKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMyk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSA0IHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgNCkgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDQpOyB9XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAjeyRhbGx9OiAkdmFscztcbiAgfVxufVxuIiwiLy8gVXNlZCBmb3IgY3JlYXRpbmcgdGhlIHNvdXJjZSBzdHJpbmcgZm9yIGZvbnRzIHVzaW5nIEBmb250LWZhY2Vcbi8vIFJlZmVyZW5jZTogaHR0cDovL2dvby5nbC9SdTFiS1BcblxuQGZ1bmN0aW9uIGZvbnQtdXJsLXByZWZpeGVyKCRhc3NldC1waXBlbGluZSkge1xuICBAaWYgJGFzc2V0LXBpcGVsaW5lID09IHRydWUge1xuICAgIEByZXR1cm4gZm9udC11cmw7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gdXJsO1xuICB9XG59XG5cbkBmdW5jdGlvbiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcbiAgJGZvbnQtZmFtaWx5LFxuICAkZmlsZS1wYXRoLFxuICAkYXNzZXQtcGlwZWxpbmUsXG4gICRmaWxlLWZvcm1hdHMsXG4gICRmb250LXVybCkge1xuXG4gICRzcmM6ICgpO1xuXG4gICRmb3JtYXRzLW1hcDogKFxuICAgIGVvdDogICBcIiN7JGZpbGUtcGF0aH0uZW90PyNpZWZpeFwiIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLFxuICAgIHdvZmYyOiBcIiN7JGZpbGUtcGF0aH0ud29mZjJcIiBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgICB3b2ZmOiAgXCIjeyRmaWxlLXBhdGh9LndvZmZcIiBmb3JtYXQoXCJ3b2ZmXCIpLFxuICAgIHR0ZjogICBcIiN7JGZpbGUtcGF0aH0udHRmXCIgZm9ybWF0KFwidHJ1ZXR5cGVcIiksXG4gICAgc3ZnOiAgIFwiI3skZmlsZS1wYXRofS5zdmcjI3skZm9udC1mYW1pbHl9XCIgZm9ybWF0KFwic3ZnXCIpXG4gICk7XG5cbiAgQGVhY2ggJGtleSwgJHZhbHVlcyBpbiAkZm9ybWF0cy1tYXAge1xuICAgIEBpZiBjb250YWlucygkZmlsZS1mb3JtYXRzLCAka2V5KSB7XG4gICAgICAkZmlsZS1wYXRoOiBudGgoJHZhbHVlcywgMSk7XG4gICAgICAkZm9udC1mb3JtYXQ6IG50aCgkdmFsdWVzLCAyKTtcblxuICAgICAgQGlmICRhc3NldC1waXBlbGluZSA9PSB0cnVlIHtcbiAgICAgICAgJHNyYzogYXBwZW5kKCRzcmMsIGZvbnQtdXJsKCRmaWxlLXBhdGgpICRmb250LWZvcm1hdCwgY29tbWEpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRzcmM6IGFwcGVuZCgkc3JjLCB1cmwoJGZpbGUtcGF0aCkgJGZvbnQtZm9ybWF0LCBjb21tYSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkc3JjO1xufVxuIiwiQGZ1bmN0aW9uIF9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC10eXBlLCAkZ3JhZGllbnQtcG9zaXRpb25zKSB7XG4gIEBpZiAkZ3JhZGllbnQtcG9zaXRpb25zXG4gIGFuZCAoJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyKVxuICBhbmQgKHR5cGUtb2YoJGdyYWRpZW50LXBvc2l0aW9ucykgIT0gY29sb3IpIHtcbiAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvc2l0aW9ucyk7XG4gIH1cbiAgQGVsc2UgaWYgJGdyYWRpZW50LXBvc2l0aW9uc1xuICBhbmQgKCRncmFkaWVudC10eXBlID09IHJhZGlhbClcbiAgYW5kICh0eXBlLW9mKCRncmFkaWVudC1wb3NpdGlvbnMpICE9IGNvbG9yKSB7XG4gICAgJGdyYWRpZW50LXBvc2l0aW9uczogX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3NpdGlvbnMpO1xuICB9XG4gIEByZXR1cm4gJGdyYWRpZW50LXBvc2l0aW9ucztcbn1cbiIsIi8vIFByaXZhdGUgZnVuY3Rpb24gZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcbkBmdW5jdGlvbiBfbGluZWFyLWFuZ2xlLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgpIHtcbiAgJG9mZnNldDogbnVsbDtcbiAgJHVuaXQtc2hvcnQ6ICBzdHItc2xpY2UoJGZpcnN0LXZhbCwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSAtIDIsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAkdW5pdC1sb25nOiAgIHN0ci1zbGljZSgkZmlyc3QtdmFsLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpIC0gMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG5cbiAgQGlmICgkdW5pdC1sb25nID09IFwiZ3JhZFwiKSBvclxuICAgICAgKCR1bml0LWxvbmcgPT0gXCJ0dXJuXCIpIHtcbiAgICAkb2Zmc2V0OiBpZigkdW5pdC1sb25nID09IFwiZ3JhZFwiLCAtMTAwZ3JhZCAqIDMsIC0wLjc1dHVybik7XG4gIH1cblxuICBAZWxzZSBpZiAoJHVuaXQtc2hvcnQgPT0gXCJkZWdcIikgb3JcbiAgICAgICAgICAgKCR1bml0LXNob3J0ID09IFwicmFkXCIpIHtcbiAgICAkb2Zmc2V0OiBpZigkdW5pdC1zaG9ydCA9PSBcImRlZ1wiLCAtOTAgKiAzLCAxLjZyYWQpO1xuICB9XG5cbiAgQGlmICRvZmZzZXQge1xuICAgICRudW06IF9zdHItdG8tbnVtKCRmaXJzdC12YWwpO1xuXG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICgkb2Zmc2V0IC0gJG51bSkgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxufVxuIiwiQGZ1bmN0aW9uIF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSkge1xuICAkaW1hZ2U6IHVucXVvdGUoJGltYWdlKTtcbiAgJGdyYWRpZW50czogKCk7XG4gICRzdGFydDogc3RyLWluZGV4KCRpbWFnZSwgXCIoXCIpO1xuICAkZW5kOiBzdHItaW5kZXgoJGltYWdlLCBcIixcIik7XG4gICRmaXJzdC12YWw6IHN0ci1zbGljZSgkaW1hZ2UsICRzdGFydCArIDEsICRlbmQgLSAxKTtcblxuICAkcHJlZml4OiBzdHItc2xpY2UoJGltYWdlLCAxLCAkc3RhcnQpO1xuICAkc3VmZml4OiBzdHItc2xpY2UoJGltYWdlLCAkZW5kLCBzdHItbGVuZ3RoKCRpbWFnZSkpO1xuXG4gICRoYXMtbXVsdGlwbGUtdmFsczogc3RyLWluZGV4KCRmaXJzdC12YWwsIFwiIFwiKTtcbiAgJGhhcy1zaW5nbGUtcG9zaXRpb246IHVucXVvdGUoX3Bvc2l0aW9uLWZsaXBwZXIoJGZpcnN0LXZhbCkgKyBcIlwiKTtcbiAgJGhhcy1hbmdsZTogaXMtbnVtYmVyKHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAxKSk7XG5cbiAgQGlmICRoYXMtbXVsdGlwbGUtdmFscyB7XG4gICAgJGdyYWRpZW50czogX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4LCAkaGFzLW11bHRpcGxlLXZhbHMpO1xuICB9XG5cbiAgQGVsc2UgaWYgJGhhcy1zaW5nbGUtcG9zaXRpb24gIT0gXCJcIiB7XG4gICAgJHBvczogdW5xdW90ZSgkaGFzLXNpbmdsZS1wb3NpdGlvbiArIFwiXCIpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRwcmVmaXggKyBcInRvIFwiICsgJHBvcyArICRzdWZmaXhcbiAgICApO1xuICB9XG5cbiAgQGVsc2UgaWYgJGhhcy1hbmdsZSB7XG4gICAgLy8gUm90YXRlIGRlZ3JlZSBmb3Igd2Via2l0XG4gICAgJGdyYWRpZW50czogX2xpbmVhci1hbmdsZS1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4KTtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEByZXR1cm4gJGdyYWRpZW50cztcbn1cbiIsIkBmdW5jdGlvbiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcykge1xuICAkdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xuICAkc3BlYzogbnVsbDtcbiAgJGRlZ3JlZTogbnVsbDtcbiAgJHNpZGU6IG51bGw7XG4gICRjb3JuZXI6IG51bGw7XG4gICRsZW5ndGg6IGxlbmd0aCgkcG9zKTtcbiAgLy8gUGFyc2UgU2lkZSBhbmQgY29ybmVyIHBvc2l0aW9uc1xuICBAaWYgKCRsZW5ndGggPiAxKSB7XG4gICAgQGlmIG50aCgkcG9zLCAxKSA9PSBcInRvXCIgeyAvLyBOZXdlciBzeW50YXhcbiAgICAgICRzaWRlOiBudGgoJHBvcywgMik7XG5cbiAgICAgIEBpZiAkbGVuZ3RoID09IDIgeyAvLyBlZy4gdG8gdG9wXG4gICAgICAgIC8vIFN3YXAgZm9yIGJhY2t3YXJkcyBjb21wYXRhYmlsaXR5XG4gICAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAyKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDMgeyAvLyBlZy4gdG8gdG9wIGxlZnRcbiAgICAgICAgJGNvcm5lcjogbnRoKCRwb3MsIDMpO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDIgeyAvLyBPbGRlciBzeW50YXggKFwidG9wIGxlZnRcIilcbiAgICAgICRzaWRlOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMSkpO1xuICAgICAgJGNvcm5lcjogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDIpKTtcbiAgICB9XG5cbiAgICBAaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwibGVmdCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIGxlZnRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJyaWdodCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIHJpZ2h0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwicmlnaHQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSByaWdodFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImxlZnQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSBsZWZ0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgJHNwZWM6IHRvICRzaWRlICRjb3JuZXI7XG4gIH1cbiAgQGVsc2UgaWYgJGxlbmd0aCA9PSAxIHtcbiAgICAvLyBTd2FwIGZvciBiYWNrd2FyZHMgY29tcGF0YWJpbGl0eVxuICAgIEBpZiAkdHlwZSA9PSBzdHJpbmcge1xuICAgICAgJGRlZ3JlZTogJHBvcztcbiAgICAgICRzcGVjOiB0byBfcG9zaXRpb24tZmxpcHBlcigkcG9zKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGRlZ3JlZTogLTI3MCAtICRwb3M7IC8vcm90YXRlIHRoZSBncmFkaWVudCBvcHBvc2l0ZSBmcm9tIHNwZWNcbiAgICAgICRzcGVjOiAkcG9zO1xuICAgIH1cbiAgfVxuICAkZGVncmVlOiB1bnF1b3RlKCRkZWdyZWUgKyBcIixcIik7XG4gICRzcGVjOiAgIHVucXVvdGUoJHNwZWMgKyBcIixcIik7XG4gIEByZXR1cm4gJGRlZ3JlZSAkc3BlYztcbn1cblxuQGZ1bmN0aW9uIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpIHtcbiAgQHJldHVybiBpZigkcG9zID09IGxlZnQsIHJpZ2h0LCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSByaWdodCwgbGVmdCwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gdG9wLCBib3R0b20sIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IGJvdHRvbSwgdG9wLCBudWxsKTtcbn1cbiIsIi8vIFByaXZhdGUgZnVuY3Rpb24gZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcbkBmdW5jdGlvbiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscykge1xuICAkdmFsLTE6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAkaGFzLW11bHRpcGxlLXZhbHMgLSAxKTtcbiAgJHZhbC0yOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGhhcy1tdWx0aXBsZS12YWxzICsgMSwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICR2YWwtMzogbnVsbDtcbiAgJGhhcy12YWwtMzogc3RyLWluZGV4KCR2YWwtMiwgXCIgXCIpO1xuXG4gIEBpZiAkaGFzLXZhbC0zIHtcbiAgICAkdmFsLTM6IHN0ci1zbGljZSgkdmFsLTIsICRoYXMtdmFsLTMgKyAxLCBzdHItbGVuZ3RoKCR2YWwtMikpO1xuICAgICR2YWwtMjogc3RyLXNsaWNlKCR2YWwtMiwgMSwgJGhhcy12YWwtMyAtIDEpO1xuICB9XG5cbiAgJHBvczogX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0xKSBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTIpIF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMyk7XG4gICRwb3M6IHVucXVvdGUoJHBvcyArIFwiXCIpO1xuXG4gIC8vIFVzZSBvbGQgc3BlYyBmb3Igd2Via2l0XG4gIEBpZiAkdmFsLTEgPT0gXCJ0b1wiIHtcbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgLy8gQnJpbmcgdGhlIGNvZGUgdXAgdG8gc3BlY1xuICBAZWxzZSB7XG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJHByZWZpeCArIFwidG8gXCIgKyAkcG9zICsgJHN1ZmZpeFxuICAgICk7XG4gIH1cbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLWFyZy1wYXJzZXIoJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplKSB7XG4gIEBlYWNoICR2YWx1ZSBpbiAkZzEsICRnMiB7XG4gICAgJGZpcnN0LXZhbDogbnRoKCR2YWx1ZSwgMSk7XG4gICAgJHBvcy10eXBlOiAgdHlwZS1vZigkZmlyc3QtdmFsKTtcbiAgICAkc3BlYy1hdC1pbmRleDogbnVsbDtcblxuICAgIC8vIERldGVybWluZSBpZiBzcGVjIHdhcyBwYXNzZWQgdG8gbWl4aW5cbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09IGxpc3Qge1xuICAgICAgJHNwZWMtYXQtaW5kZXg6IGlmKGluZGV4KCR2YWx1ZSwgYXQpLCBpbmRleCgkdmFsdWUsIGF0KSwgZmFsc2UpO1xuICAgIH1cbiAgICBAaWYgJHNwZWMtYXQtaW5kZXgge1xuICAgICAgQGlmICRzcGVjLWF0LWluZGV4ID4gMSB7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggKCRzcGVjLWF0LWluZGV4IC0gMSkge1xuICAgICAgICAgICRzaGFwZS1zaXplOiAkc2hhcGUtc2l6ZSBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgICAgQGZvciAkaSBmcm9tICgkc3BlYy1hdC1pbmRleCArIDEpIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgICAgICRwb3M6ICRwb3MgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkc3BlYy1hdC1pbmRleCA9PSAxIHtcbiAgICAgICAgQGZvciAkaSBmcm9tICgkc3BlYy1hdC1pbmRleCArIDEpIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgICAgICRwb3M6ICRwb3MgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAkZzE6IG51bGw7XG4gICAgfVxuXG4gICAgLy8gSWYgbm90IHNwZWMgY2FsY3VsYXRlIGNvcnJlY3QgdmFsdWVzXG4gICAgQGVsc2Uge1xuICAgICAgQGlmICgkcG9zLXR5cGUgIT0gY29sb3IpIG9yICgkZmlyc3QtdmFsICE9IFwidHJhbnNwYXJlbnRcIikge1xuICAgICAgICBAaWYgKCRwb3MtdHlwZSA9PSBudW1iZXIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2VudGVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwidG9wXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwicmlnaHRcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJib3R0b21cIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJsZWZ0XCIpIHtcblxuICAgICAgICAgICRwb3M6ICR2YWx1ZTtcblxuICAgICAgICAgIEBpZiAkcG9zID09ICRnMSB7XG4gICAgICAgICAgICAkZzE6IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2UgaWZcbiAgICAgICAgICAgKCRmaXJzdC12YWwgPT0gXCJlbGxpcHNlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2lyY2xlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2xvc2VzdC1zaWRlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2xvc2VzdC1jb3JuZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJmYXJ0aGVzdC1zaWRlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiZmFydGhlc3QtY29ybmVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY29udGFpblwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNvdmVyXCIpIHtcblxuICAgICAgICAgICRzaGFwZS1zaXplOiAkdmFsdWU7XG5cbiAgICAgICAgICBAaWYgJHZhbHVlID09ICRnMSB7XG4gICAgICAgICAgICAkZzE6IG51bGw7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGVsc2UgaWYgJHZhbHVlID09ICRnMiB7XG4gICAgICAgICAgICAkZzI6IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplO1xufVxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zKSB7XG4gICRzaGFwZS1zaXplOiBudGgoJGdyYWRpZW50LXBvcywgMSk7XG4gICRwb3M6ICAgICAgICBudGgoJGdyYWRpZW50LXBvcywgMik7XG4gICRzaGFwZS1zaXplLXNwZWM6IF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKTtcblxuICAkcHJlLXNwZWM6IHVucXVvdGUoaWYoJHBvcywgXCIjeyRwb3N9LCBcIiwgbnVsbCkpXG4gICAgICAgICAgICAgdW5xdW90ZShpZigkc2hhcGUtc2l6ZSwgXCIjeyRzaGFwZS1zaXplfSxcIiwgbnVsbCkpO1xuICAkcG9zLXNwZWM6IGlmKCRwb3MsIFwiYXQgI3skcG9zfVwiLCBudWxsKTtcblxuICAkc3BlYzogXCIjeyRzaGFwZS1zaXplLXNwZWN9ICN7JHBvcy1zcGVjfVwiO1xuXG4gIC8vIEFkZCBjb21tYVxuICBAaWYgKCRzcGVjICE9IFwiICBcIikge1xuICAgICRzcGVjOiBcIiN7JHNwZWN9LFwiO1xuICB9XG5cbiAgQHJldHVybiAkcHJlLXNwZWMgJHNwZWM7XG59XG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoJGltYWdlKSB7XG4gICRpbWFnZTogdW5xdW90ZSgkaW1hZ2UpO1xuICAkZ3JhZGllbnRzOiAoKTtcbiAgJHN0YXJ0OiBzdHItaW5kZXgoJGltYWdlLCBcIihcIik7XG4gICRlbmQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiLFwiKTtcbiAgJGZpcnN0LXZhbDogc3RyLXNsaWNlKCRpbWFnZSwgJHN0YXJ0ICsgMSwgJGVuZCAtIDEpO1xuXG4gICRwcmVmaXg6IHN0ci1zbGljZSgkaW1hZ2UsIDEsICRzdGFydCk7XG4gICRzdWZmaXg6IHN0ci1zbGljZSgkaW1hZ2UsICRlbmQsIHN0ci1sZW5ndGgoJGltYWdlKSk7XG5cbiAgJGlzLXNwZWMtc3ludGF4OiBzdHItaW5kZXgoJGZpcnN0LXZhbCwgXCJhdFwiKTtcblxuICBAaWYgJGlzLXNwZWMtc3ludGF4IGFuZCAkaXMtc3BlYy1zeW50YXggPiAxIHtcbiAgICAka2V5d29yZDogc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsICRpcy1zcGVjLXN5bnRheCAtIDIpO1xuICAgICRwb3M6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaXMtc3BlYy1zeW50YXggKyAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcbiAgICAkcG9zOiBhcHBlbmQoJHBvcywgJGtleXdvcmQsIGNvbW1hKTtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQGVsc2UgaWYgJGlzLXNwZWMtc3ludGF4ID09IDEge1xuICAgICRwb3M6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaXMtc3BlYy1zeW50YXggKyAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQGVsc2UgaWYgc3RyLWluZGV4KCRpbWFnZSwgXCJjb3ZlclwiKSBvciBzdHItaW5kZXgoJGltYWdlLCBcImNvbnRhaW5cIikge1xuICAgIEB3YXJuIFwiUmFkaWFsLWdyYWRpZW50IG5lZWRzIHRvIGJlIHVwZGF0ZWQgdG8gY29uZm9ybSB0byBsYXRlc3Qgc3BlYy5cIjtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogbnVsbCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAcmV0dXJuICRncmFkaWVudHM7XG59XG4iLCIvLyBVc2VyIGZvciBsaW5lYXIgYW5kIHJhZGlhbCBncmFkaWVudHMgd2l0aGluIGJhY2tncm91bmQtaW1hZ2Ugb3IgYm9yZGVyLWltYWdlIHByb3BlcnRpZXNcblxuQGZ1bmN0aW9uIF9yZW5kZXItZ3JhZGllbnRzKCRncmFkaWVudC1wb3NpdGlvbnMsICRncmFkaWVudHMsICRncmFkaWVudC10eXBlLCAkdmVuZG9yOiBmYWxzZSkge1xuICAkcHJlLXNwZWM6IG51bGw7XG4gICRzcGVjOiBudWxsO1xuICAkdmVuZG9yLWdyYWRpZW50czogbnVsbDtcbiAgQGlmICRncmFkaWVudC10eXBlID09IGxpbmVhciB7XG4gICAgQGlmICRncmFkaWVudC1wb3NpdGlvbnMge1xuICAgICAgJHByZS1zcGVjOiBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMSk7XG4gICAgICAkc3BlYzogICAgIG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAyKTtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gcmFkaWFsIHtcbiAgICAkcHJlLXNwZWM6IG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAxKTtcbiAgICAkc3BlYzogICAgIG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAyKTtcbiAgfVxuXG4gIEBpZiAkdmVuZG9yIHtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogLSN7JHZlbmRvcn0tI3skZ3JhZGllbnQtdHlwZX0tZ3JhZGllbnQoI3skcHJlLXNwZWN9ICRncmFkaWVudHMpO1xuICB9XG4gIEBlbHNlIGlmICR2ZW5kb3IgPT0gZmFsc2Uge1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiBcIiN7JGdyYWRpZW50LXR5cGV9LWdyYWRpZW50KCN7JHNwZWN9ICN7JGdyYWRpZW50c30pXCI7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IHVucXVvdGUoJHZlbmRvci1ncmFkaWVudHMpO1xuICB9XG4gIEByZXR1cm4gJHZlbmRvci1ncmFkaWVudHM7XG59XG4iLCJAZnVuY3Rpb24gX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpIHtcbiAgJHNoYXBlLXNpemUtc3BlYzogbnVsbDtcbiAgQGVhY2ggJHZhbHVlIGluICRzaGFwZS1zaXplIHtcbiAgICBAaWYgKCR2YWx1ZSA9PSBcImNvdmVyXCIpIG9yICgkdmFsdWUgPT0gXCJjb250YWluXCIpIHtcbiAgICAgICR2YWx1ZTogbnVsbDtcbiAgICB9XG4gICAgJHNoYXBlLXNpemUtc3BlYzogXCIjeyRzaGFwZS1zaXplLXNwZWN9ICN7JHZhbHVlfVwiO1xuICB9XG4gIEByZXR1cm4gJHNoYXBlLXNpemUtc3BlYztcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEhlbHBlciBmdW5jdGlvbiBmb3IgbGluZWFyL3JhZGlhbC1ncmFkaWVudC1wYXJzZXJzLlxuLy8gU291cmNlOiBodHRwOi8vc2Fzc21laXN0ZXIuY29tL2dpc3QvOTY0NzQwOFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIF9zdHItdG8tbnVtKCRzdHJpbmcpIHtcbiAgLy8gTWF0cmljZXNcbiAgJHN0cmluZ3M6IFwiMFwiIFwiMVwiIFwiMlwiIFwiM1wiIFwiNFwiIFwiNVwiIFwiNlwiIFwiN1wiIFwiOFwiIFwiOVwiO1xuICAkbnVtYmVyczogIDAgICAxICAgMiAgIDMgICA0ICAgNSAgIDYgICA3ICAgOCAgIDk7XG5cbiAgLy8gUmVzdWx0XG4gICRyZXN1bHQ6IDA7XG4gICRkaXZpZGVyOiAwO1xuICAkbWludXM6IGZhbHNlO1xuXG4gIC8vIExvb3BpbmcgdGhyb3VnaCBhbGwgY2hhcmFjdGVyc1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHN0cmluZykge1xuICAgICRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkc3RyaW5nLCAkaSwgJGkpO1xuICAgICRpbmRleDogaW5kZXgoJHN0cmluZ3MsICRjaGFyYWN0ZXIpO1xuXG4gICAgQGlmICRjaGFyYWN0ZXIgPT0gXCItXCIge1xuICAgICAgJG1pbnVzOiB0cnVlO1xuICAgIH1cblxuICAgIEBlbHNlIGlmICRjaGFyYWN0ZXIgPT0gXCIuXCIge1xuICAgICAgJGRpdmlkZXI6IDE7XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgQGlmIG5vdCAkaW5kZXgge1xuICAgICAgICAkcmVzdWx0OiBpZigkbWludXMsICRyZXN1bHQgKiAtMSwgJHJlc3VsdCk7XG4gICAgICAgIEByZXR1cm4gX2NvbnZlcnQtdW5pdHMoJHJlc3VsdCwgc3RyLXNsaWNlKCRzdHJpbmcsICRpKSk7XG4gICAgICB9XG5cbiAgICAgICRudW1iZXI6IG50aCgkbnVtYmVycywgJGluZGV4KTtcblxuICAgICAgQGlmICRkaXZpZGVyID09IDAge1xuICAgICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTA7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgLy8gTW92ZSB0aGUgZGVjaW1hbCBkb3QgdG8gdGhlIGxlZnRcbiAgICAgICAgJGRpdmlkZXI6ICRkaXZpZGVyICogMTA7XG4gICAgICAgICRudW1iZXI6ICRudW1iZXIgLyAkZGl2aWRlcjtcbiAgICAgIH1cblxuICAgICAgJHJlc3VsdDogJHJlc3VsdCArICRudW1iZXI7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gaWYoJG1pbnVzLCAkcmVzdWx0ICogLTEsICRyZXN1bHQpO1xufVxuIiwiLy8gaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1hbmltYXRpb25zLyN0aGUtYW5pbWF0aW9uLW5hbWUtcHJvcGVydHktXG4vLyBFYWNoIG9mIHRoZXNlIG1peGlucyBzdXBwb3J0IGNvbW1hIHNlcGFyYXRlZCBsaXN0cyBvZiB2YWx1ZXMsIHdoaWNoIGFsbG93cyBkaWZmZXJlbnQgdHJhbnNpdGlvbnMgZm9yIGluZGl2aWR1YWwgcHJvcGVydGllcyB0byBiZSBkZXNjcmliZWQgaW4gYSBzaW5nbGUgc3R5bGUgcnVsZS4gRWFjaCB2YWx1ZSBpbiB0aGUgbGlzdCBjb3JyZXNwb25kcyB0byB0aGUgdmFsdWUgYXQgdGhhdCBzYW1lIHBvc2l0aW9uIGluIHRoZSBvdGhlciBwcm9wZXJ0aWVzLlxuXG5AbWl4aW4gYW5pbWF0aW9uKCRhbmltYXRpb25zLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbiwgJGFuaW1hdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tbmFtZSgkbmFtZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLW5hbWUsICRuYW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kdXJhdGlvbigkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uKCRtb3Rpb25zLi4uKSB7XG4gIC8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkbW90aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQoJHZhbHVlcy4uLikge1xuICAvLyBpbmZpbml0ZSB8IDxudW1iZXI+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsICR2YWx1ZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZGlyZWN0aW9uKCRkaXJlY3Rpb25zLi4uKSB7XG4gIC8vIG5vcm1hbCB8IGFsdGVybmF0ZVxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGlyZWN0aW9uLCAkZGlyZWN0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1wbGF5LXN0YXRlKCRzdGF0ZXMuLi4pIHtcbiAgLy8gcnVubmluZyB8IHBhdXNlZFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tcGxheS1zdGF0ZSwgJHN0YXRlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kZWxheSgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZmlsbC1tb2RlKCRtb2Rlcy4uLikge1xuICAvLyBub25lIHwgZm9yd2FyZHMgfCBiYWNrd2FyZHMgfCBib3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1maWxsLW1vZGUsICRtb2Rlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiBhcHBlYXJhbmNlKCR2YWx1ZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhcHBlYXJhbmNlLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cbiIsIkBtaXhpbiBiYWNrZmFjZS12aXNpYmlsaXR5KCR2aXNpYmlsaXR5KSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJhY2tmYWNlLXZpc2liaWxpdHksICR2aXNpYmlsaXR5LCB3ZWJraXQgc3BlYyk7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBCYWNrZ3JvdW5kIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZHMgdXNpbmcgc2hvcnRoYW5kXG4vLyBub3RhdGlvbi5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cblxuQG1peGluIGJhY2tncm91bmQoJGJhY2tncm91bmRzLi4uKSB7XG4gICR3ZWJraXQtYmFja2dyb3VuZHM6ICgpO1xuICAkc3BlYy1iYWNrZ3JvdW5kczogKCk7XG5cbiAgQGVhY2ggJGJhY2tncm91bmQgaW4gJGJhY2tncm91bmRzIHtcbiAgICAkd2Via2l0LWJhY2tncm91bmQ6ICgpO1xuICAgICRzcGVjLWJhY2tncm91bmQ6ICgpO1xuICAgICRiYWNrZ3JvdW5kLXR5cGU6IHR5cGUtb2YoJGJhY2tncm91bmQpO1xuXG4gICAgQGlmICRiYWNrZ3JvdW5kLXR5cGUgPT0gc3RyaW5nIG9yICRiYWNrZ3JvdW5kLXR5cGUgPT0gbGlzdCB7XG4gICAgICAkYmFja2dyb3VuZC1zdHI6IGlmKCRiYWNrZ3JvdW5kLXR5cGUgPT0gbGlzdCwgbnRoKCRiYWNrZ3JvdW5kLCAxKSwgJGJhY2tncm91bmQpO1xuXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRiYWNrZ3JvdW5kLXN0ciwgMSwgMyk7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRiYWNrZ3JvdW5kLXN0ciwgMSwgNik7XG5cbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKFwiI3skYmFja2dyb3VuZH1cIik7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcihcIiN7JGJhY2tncm91bmR9XCIpO1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJHdlYmtpdC1iYWNrZ3JvdW5kczogYXBwZW5kKCR3ZWJraXQtYmFja2dyb3VuZHMsICR3ZWJraXQtYmFja2dyb3VuZCwgY29tbWEpO1xuICAgICRzcGVjLWJhY2tncm91bmRzOiAgIGFwcGVuZCgkc3BlYy1iYWNrZ3JvdW5kcywgICAkc3BlYy1iYWNrZ3JvdW5kLCAgIGNvbW1hKTtcbiAgfVxuXG4gIGJhY2tncm91bmQ6ICR3ZWJraXQtYmFja2dyb3VuZHM7XG4gIGJhY2tncm91bmQ6ICRzcGVjLWJhY2tncm91bmRzO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gQmFja2dyb3VuZC1pbWFnZSBwcm9wZXJ0eSBmb3IgYWRkaW5nIG11bHRpcGxlIGJhY2tncm91bmQgaW1hZ2VzIHdpdGhcbi8vIGdyYWRpZW50cywgb3IgZm9yIHN0cmluZ2luZyBtdWx0aXBsZSBncmFkaWVudHMgdG9nZXRoZXIuXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5cbkBtaXhpbiBiYWNrZ3JvdW5kLWltYWdlKCRpbWFnZXMuLi4pIHtcbiAgJHdlYmtpdC1pbWFnZXM6ICgpO1xuICAkc3BlYy1pbWFnZXM6ICgpO1xuXG4gIEBlYWNoICRpbWFnZSBpbiAkaW1hZ2VzIHtcbiAgICAkd2Via2l0LWltYWdlOiAoKTtcbiAgICAkc3BlYy1pbWFnZTogKCk7XG5cbiAgICBAaWYgKHR5cGUtb2YoJGltYWdlKSA9PSBzdHJpbmcpIHtcbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGltYWdlLCAxLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGltYWdlLCAxLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWltYWdlOiAkaW1hZ2U7XG4gICAgICAgICRzcGVjLWltYWdlOiAgICRpbWFnZTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSk7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6ICBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWltYWdlOiAgICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoJGltYWdlKTtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1pbWFnZTogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgICR3ZWJraXQtaW1hZ2VzOiBhcHBlbmQoJHdlYmtpdC1pbWFnZXMsICR3ZWJraXQtaW1hZ2UsIGNvbW1hKTtcbiAgICAkc3BlYy1pbWFnZXM6ICAgYXBwZW5kKCRzcGVjLWltYWdlcywgICAkc3BlYy1pbWFnZSwgICBjb21tYSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWltYWdlOiAkd2Via2l0LWltYWdlcztcbiAgYmFja2dyb3VuZC1pbWFnZTogJHNwZWMtaW1hZ2VzO1xufVxuIiwiQG1peGluIGJvcmRlci1pbWFnZSgkYm9yZGVycy4uLikge1xuICAkd2Via2l0LWJvcmRlcnM6ICgpO1xuICAkc3BlYy1ib3JkZXJzOiAoKTtcblxuICBAZWFjaCAkYm9yZGVyIGluICRib3JkZXJzIHtcbiAgICAkd2Via2l0LWJvcmRlcjogKCk7XG4gICAgJHNwZWMtYm9yZGVyOiAoKTtcbiAgICAkYm9yZGVyLXR5cGU6IHR5cGUtb2YoJGJvcmRlcik7XG5cbiAgICBAaWYgJGJvcmRlci10eXBlID09IHN0cmluZyBvciBsaXN0IHtcbiAgICAgICRib3JkZXItc3RyOiBpZigkYm9yZGVyLXR5cGUgPT0gbGlzdCwgbnRoKCRib3JkZXIsIDEpLCAkYm9yZGVyKTtcblxuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkYm9yZGVyLXN0ciwgMSwgMyk7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRib3JkZXItc3RyLCAxLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcihcIiN7JGJvcmRlcn1cIik7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoXCIjeyRib3JkZXJ9XCIpO1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XG4gICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICB9XG5cbiAgICAkd2Via2l0LWJvcmRlcnM6IGFwcGVuZCgkd2Via2l0LWJvcmRlcnMsICR3ZWJraXQtYm9yZGVyLCBjb21tYSk7XG4gICAgJHNwZWMtYm9yZGVyczogICBhcHBlbmQoJHNwZWMtYm9yZGVycywgICAkc3BlYy1ib3JkZXIsICAgY29tbWEpO1xuICB9XG5cbiAgLXdlYmtpdC1ib3JkZXItaW1hZ2U6ICR3ZWJraXQtYm9yZGVycztcbiAgICAgICAgICBib3JkZXItaW1hZ2U6ICRzcGVjLWJvcmRlcnM7XG4gICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbn1cblxuLy9FeGFtcGxlczpcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZSh1cmwoXCJpbWFnZS5wbmdcIikpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSAyMCBzdHJldGNoKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykgc3RyZXRjaCk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykgMjAgMzAgNDAgNTAgc3RyZXRjaCByb3VuZCk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UocmFkaWFsLWdyYWRpZW50KHRvcCwgY292ZXIsIG9yYW5nZSwgeWVsbG93LCBvcmFuZ2UpKTtcbiIsIkBtaXhpbiBjYWxjKCRwcm9wZXJ0eSwgJHZhbHVlKSB7XG4gICN7JHByb3BlcnR5fTogLXdlYmtpdC1jYWxjKCN7JHZhbHVlfSk7XG4gICN7JHByb3BlcnR5fTogY2FsYygjeyR2YWx1ZX0pO1xufVxuIiwiQG1peGluIGNvbHVtbnMoJGFyZzogYXV0bykge1xuICAvLyA8Y29sdW1uLWNvdW50PiB8fCA8Y29sdW1uLXdpZHRoPlxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW5zLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCRpbnQ6IGF1dG8pIHtcbiAgLy8gYXV0byB8fCBpbnRlZ2VyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1jb3VudCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJGxlbmd0aDogbm9ybWFsKSB7XG4gIC8vIG5vcm1hbCB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWdhcCwgJGxlbmd0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1maWxsKCRhcmc6IGF1dG8pIHtcbiAgLy8gYXV0byB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWZpbGwsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZSgkYXJnKSB7XG4gIC8vIDxib3JkZXItd2lkdGg+IHx8IDxib3JkZXItc3R5bGU+IHx8IDxjb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZS1jb2xvcigkY29sb3IpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtY29sb3IsICRjb2xvciwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLXN0eWxlKCRzdHlsZTogbm9uZSkge1xuICAvLyBub25lIHwgaGlkZGVuIHwgZGFzaGVkIHwgZG90dGVkIHwgZG91YmxlIHwgZ3Jvb3ZlIHwgaW5zZXQgfCBpbnNldCB8IG91dHNldCB8IHJpZGdlIHwgc29saWRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtc3R5bGUsICRzdHlsZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLXdpZHRoICgkd2lkdGg6IG5vbmUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtd2lkdGgsICR3aWR0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1zcGFuKCRhcmc6IG5vbmUpIHtcbiAgLy8gbm9uZSB8fCBhbGxcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXNwYW4sICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4td2lkdGgoJGxlbmd0aDogYXV0bykge1xuICAvLyBhdXRvIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4td2lkdGgsICRsZW5ndGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gZmlsdGVyKCRmdW5jdGlvbjogbm9uZSkge1xuICAvLyA8ZmlsdGVyLWZ1bmN0aW9uPiBbPGZpbHRlci1mdW5jdGlvbl0qIHwgbm9uZVxuICBAaW5jbHVkZSBwcmVmaXhlcihmaWx0ZXIsICRmdW5jdGlvbiwgd2Via2l0IHNwZWMpO1xufVxuIiwiLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG5cbi8vIEN1c3RvbSBzaG9ydGhhbmQgbm90YXRpb24gZm9yIGZsZXhib3hcbkBtaXhpbiBib3goJG9yaWVudDogaW5saW5lLWF4aXMsICRwYWNrOiBzdGFydCwgJGFsaWduOiBzdHJldGNoKSB7XG4gIEBpbmNsdWRlIGRpc3BsYXktYm94O1xuICBAaW5jbHVkZSBib3gtb3JpZW50KCRvcmllbnQpO1xuICBAaW5jbHVkZSBib3gtcGFjaygkcGFjayk7XG4gIEBpbmNsdWRlIGJveC1hbGlnbigkYWxpZ24pO1xufVxuXG5AbWl4aW4gZGlzcGxheS1ib3gge1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLW1vei1ib3g7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyBJRSAxMFxuICBkaXNwbGF5OiBib3g7XG59XG5cbkBtaXhpbiBib3gtb3JpZW50KCRvcmllbnQ6IGlubGluZS1heGlzKSB7XG4vLyBob3Jpem9udGFsfHZlcnRpY2FsfGlubGluZS1heGlzfGJsb2NrLWF4aXN8aW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkb3JpZW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LXBhY2soJHBhY2s6IHN0YXJ0KSB7XG4vLyBzdGFydHxlbmR8Y2VudGVyfGp1c3RpZnlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRwYWNrLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wYWNrOiAkcGFjazsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1hbGlnbigkYWxpZ246IHN0cmV0Y2gpIHtcbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8YmFzZWxpbmV8c3RyZXRjaFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbGlnbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtYWxpZ246ICRhbGlnbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1kaXJlY3Rpb24oJGRpcmVjdGlvbjogbm9ybWFsKSB7XG4vLyBub3JtYWx8cmV2ZXJzZXxpbmhlcml0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1saW5lcygkbGluZXM6IHNpbmdsZSkge1xuLy8gc2luZ2xlfG11bHRpcGxlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGxpbmVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LW9yZGluYWwtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZmxleCgkdmFsdWU6IDApIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXg6ICR2YWx1ZTsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1mbGV4LWdyb3VwKCRpbnQ6IDEpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xuLy8gVW5pZmllZCBhdHRyaWJ1dGVzIGZvciAyMDA5LCAyMDExLCBhbmQgMjAxMiBmbGF2b3Vycy5cblxuLy8gMjAwOSAtIGRpc3BsYXkgKGJveCB8IGlubGluZS1ib3gpXG4vLyAyMDExIC0gZGlzcGxheSAoZmxleGJveCB8IGlubGluZS1mbGV4Ym94KVxuLy8gMjAxMiAtIGRpc3BsYXkgKGZsZXggfCBpbmxpbmUtZmxleClcbkBtaXhpbiBkaXNwbGF5KCR2YWx1ZSkge1xuLy8gZmxleCB8IGlubGluZS1mbGV4XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4XCIge1xuICAgIC8vIDIwMDlcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICBkaXNwbGF5OiAtbW96LWJveDtcbiAgICBkaXNwbGF5OiBib3g7XG5cbiAgICAvLyAyMDEyXG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgIGRpc3BsYXk6IC1tb3otZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsgLy8gMjAxMSAoSUUgMTApXG4gICAgZGlzcGxheTogZmxleDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJpbmxpbmUtZmxleFwiIHtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XG4gICAgZGlzcGxheTogLW1vei1pbmxpbmUtYm94O1xuICAgIGRpc3BsYXk6IGlubGluZS1ib3g7XG5cbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4O1xuICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWZsZXg7XG4gICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB9IEBlbHNlIHtcbiAgICBkaXNwbGF5OiAkdmFsdWU7XG4gIH1cbn1cblxuLy8gMjAwOSAtIGJveC1mbGV4IChpbnRlZ2VyKVxuLy8gMjAxMSAtIGZsZXggKGRlY2ltYWwgfCB3aWR0aCBkZWNpbWFsKVxuLy8gMjAxMiAtIGZsZXggKGludGVnZXIgaW50ZWdlciB3aWR0aClcbkBtaXhpbiBmbGV4KCR2YWx1ZSkge1xuXG4gIC8vIEdyYWIgZmxleC1ncm93IGZvciBvbGRlciBicm93c2Vycy5cbiAgJGZsZXgtZ3JvdzogbnRoKCR2YWx1ZSwgMSk7XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJGZsZXgtZ3Jvdywgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMCksIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gYm94LW9yaWVudCAoIGhvcml6b250YWwgfCB2ZXJ0aWNhbCB8IGlubGluZS1heGlzIHwgYmxvY2stYXhpcylcbi8vICAgICAgLSBib3gtZGlyZWN0aW9uIChub3JtYWwgfCByZXZlcnNlKVxuLy8gMjAxMSAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxuLy8gMjAxMiAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZTogcm93KSB7XG5cbiAgLy8gQWx0IHZhbHVlcy5cbiAgJHZhbHVlLTIwMDk6ICR2YWx1ZTtcbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgJGRpcmVjdGlvbjogbm9ybWFsO1xuXG4gIEBpZiAkdmFsdWUgPT0gcm93IHtcbiAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJyb3ctcmV2ZXJzZVwiIHtcbiAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcbiAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBjb2x1bW4ge1xuICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJjb2x1bW4tcmV2ZXJzZVwiIHtcbiAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XG4gICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJHZhbHVlLTIwMDksIHdlYmtpdCBtb3ogc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWRpcmVjdGlvbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cblxuLy8gMjAwOSAtIGJveC1saW5lcyAoc2luZ2xlIHwgbXVsdGlwbGUpXG4vLyAyMDExIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxuLy8gMjAxMiAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlOiBub3dyYXApIHtcbiAgLy8gQWx0IHZhbHVlc1xuICAkYWx0LXZhbHVlOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gbm93cmFwIHtcbiAgICAkYWx0LXZhbHVlOiBzaW5nbGU7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IHdyYXAge1xuICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcIndyYXAtcmV2ZXJzZVwiIHtcbiAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcbiAgfVxuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC13cmFwLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTEgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTIgLSBmbGV4LWZsb3cgKGZsZXgtZGlyZWN0aW9uIHx8IGZsZXgtd3JhcClcbkBtaXhpbiBmbGV4LWZsb3coJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZmxvdywgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gYm94LW9yZGluYWwtZ3JvdXAgKGludGVnZXIpXG4vLyAyMDExIC0gZmxleC1vcmRlciAoaW50ZWdlcilcbi8vIDIwMTIgLSBvcmRlciAoaW50ZWdlcilcbkBtaXhpbiBvcmRlcigkaW50OiAwKSB7XG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihvcmRlciwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7XG59XG5cbi8vIDIwMTIgLSBmbGV4LWdyb3cgKG51bWJlcilcbkBtaXhpbiBmbGV4LWdyb3coJG51bWJlcjogMCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWdyb3csICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXBvc2l0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1zaHJpbmsgKG51bWJlcilcbkBtaXhpbiBmbGV4LXNocmluaygkbnVtYmVyOiAxKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtc2hyaW5rLCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1uZWdhdGl2ZTogJG51bWJlcjtcbn1cblxuLy8gMjAxMiAtIGZsZXgtYmFzaXMgKG51bWJlcilcbkBtaXhpbiBmbGV4LWJhc2lzKCR3aWR0aDogYXV0bykge1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWJhc2lzLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAkd2lkdGg7XG59XG5cbi8vIDIwMDkgLSBib3gtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxuLy8gMjAxMSAtIGZsZXgtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxuLy8gMjAxMiAtIGp1c3RpZnktY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZClcbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQoJHZhbHVlOiBmbGV4LXN0YXJ0KSB7XG5cbiAgLy8gQWx0IHZhbHVlcy5cbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkYWx0LXZhbHVlOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkYWx0LXZhbHVlOiBlbmQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAkYWx0LXZhbHVlOiBqdXN0aWZ5O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcbiAgICAkYWx0LXZhbHVlOiBkaXN0cmlidXRlO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGp1c3RpZnktY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LXBhY2s6ICRhbHQtdmFsdWU7XG59XG5cbi8vIDIwMDkgLSBib3gtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMSAtIGZsZXgtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLWl0ZW1zIChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24taXRlbXMoJHZhbHVlOiBzdHJldGNoKSB7XG5cbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xuXG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGVuZDtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWFsaWduLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24taXRlbXMsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1hbGlnbjogJGFsdC12YWx1ZTtcbn1cblxuLy8gMjAxMSAtIGZsZXgtaXRlbS1hbGlnbiAoYXV0byB8IHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLXNlbGYgKGF1dG8gfCBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24tc2VsZigkdmFsdWU6IGF1dG8pIHtcblxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgfVxuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tc2VsZiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1pdGVtLWFsaWduOiAkdmFsdWUtMjAxMTtcbn1cblxuLy8gMjAxMSAtIGZsZXgtbGluZS1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkgfCBkaXN0cmlidXRlIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1jb250ZW50KCR2YWx1ZTogc3RyZXRjaCkge1xuXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkdmFsdWUtMjAxMTogZW5kO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XG4gICAgJHZhbHVlLTIwMTE6IGp1c3RpZnk7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xuICAgICR2YWx1ZS0yMDExOiBkaXN0cmlidXRlO1xuICB9XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWxpbmUtcGFjazogJHZhbHVlLTIwMTE7XG59XG4iLCJAbWl4aW4gZm9udC1mYWNlKFxuICAkZm9udC1mYW1pbHksXG4gICRmaWxlLXBhdGgsXG4gICR3ZWlnaHQ6IG5vcm1hbCxcbiAgJHN0eWxlOiBub3JtYWwsXG4gICRhc3NldC1waXBlbGluZTogJGFzc2V0LXBpcGVsaW5lLFxuICAkZmlsZS1mb3JtYXRzOiBlb3Qgd29mZjIgd29mZiB0dGYgc3ZnKSB7XG5cbiAgJGZvbnQtdXJsLXByZWZpeDogZm9udC11cmwtcHJlZml4ZXIoJGFzc2V0LXBpcGVsaW5lKTtcblxuICBAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc3R5bGU6ICRzdHlsZTtcbiAgICBmb250LXdlaWdodDogJHdlaWdodDtcblxuICAgIHNyYzogZm9udC1zb3VyY2UtZGVjbGFyYXRpb24oXG4gICAgICAkZm9udC1mYW1pbHksXG4gICAgICAkZmlsZS1wYXRoLFxuICAgICAgJGFzc2V0LXBpcGVsaW5lLFxuICAgICAgJGZpbGUtZm9ybWF0cyxcbiAgICAgICRmb250LXVybC1wcmVmaXhcbiAgICApO1xuICB9XG59XG4iLCJAbWl4aW4gZm9udC1mZWF0dXJlLXNldHRpbmdzKCRzZXR0aW5ncy4uLikge1xuICBAaWYgbGVuZ3RoKCRzZXR0aW5ncykgPT0gMCB7ICRzZXR0aW5nczogbm9uZTsgfVxuICBAaW5jbHVkZSBwcmVmaXhlcihmb250LWZlYXR1cmUtc2V0dGluZ3MsICRzZXR0aW5ncywgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cbiIsIi8vIEhpRFBJIG1peGluLiBEZWZhdWx0IHZhbHVlIHNldCB0byAxLjMgdG8gdGFyZ2V0IEdvb2dsZSBOZXh1cyA3IChodHRwOi8vYmphbmdvLmNvbS9hcnRpY2xlcy9taW4tZGV2aWNlLXBpeGVsLXJhdGlvLylcbkBtaXhpbiBoaWRwaSgkcmF0aW86IDEuMykge1xuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxuICBvbmx5IHNjcmVlbiBhbmQgKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHJhdGlvfS8xKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogcm91bmQoJHJhdGlvICogOTZkcGkpKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogJHJhdGlvICogMWRwcHgpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiQG1peGluIGh5cGhlbnMoJGh5cGhlbmF0aW9uOiBub25lKSB7XG4gIC8vIG5vbmUgfCBtYW51YWwgfCBhdXRvXG4gIEBpbmNsdWRlIHByZWZpeGVyKGh5cGhlbnMsICRoeXBoZW5hdGlvbiwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cbiIsIkBtaXhpbiBpbWFnZS1yZW5kZXJpbmcgKCRtb2RlOmF1dG8pIHtcblxuICBAaWYgKCRtb2RlID09IGNyaXNwLWVkZ2VzKSB7XG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogbmVhcmVzdC1uZWlnaGJvcjsgLy8gSUU4K1xuICAgIGltYWdlLXJlbmRlcmluZzogLW1vei1jcmlzcC1lZGdlcztcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC1vLWNyaXNwLWVkZ2VzO1xuICAgIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDtcbiAgICBpbWFnZS1yZW5kZXJpbmc6IGNyaXNwLWVkZ2VzO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgIGltYWdlLXJlbmRlcmluZzogJG1vZGU7XG4gIH1cbn1cbiIsIi8vIEFkZHMga2V5ZnJhbWVzIGJsb2NrcyBmb3Igc3VwcG9ydGVkIHByZWZpeGVzLCByZW1vdmluZyByZWR1bmRhbnQgcHJlZml4ZXMgaW4gdGhlIGJsb2NrJ3MgY29udGVudFxuQG1peGluIGtleWZyYW1lcygkbmFtZSkge1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQ6ICAgICRwcmVmaXgtZm9yLXdlYmtpdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYTogICAkcHJlZml4LWZvci1tb3ppbGxhO1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQ6ICRwcmVmaXgtZm9yLW1pY3Jvc29mdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmE6ICAgICAkcHJlZml4LWZvci1vcGVyYTtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYzogICAgICAkcHJlZml4LWZvci1zcGVjO1xuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcbiAgICAkcHJlZml4LWZvci13ZWJraXQ6IHRydWUgIWdsb2JhbDtcbiAgICBALXdlYmtpdC1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGEge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcbiAgICAkcHJlZml4LWZvci1tb3ppbGxhOiB0cnVlICFnbG9iYWw7XG4gICAgQC1tb3ota2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0ICAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogJG9yaWdpbmFsLXByZWZpeC1mb3ItbWljcm9zb2Z0ICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmEgICAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyAgICAgICFnbG9iYWw7XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWMge1xuICAgIEBrZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gbGluZWFyLWdyYWRpZW50KCRwb3MsICRnMSwgJGcyOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzM6IG51bGwsICRnNDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc1OiBudWxsLCAkZzY6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNzogbnVsbCwgJGc4OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzk6IG51bGwsICRnMTA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xuICAvLyBEZXRlY3Qgd2hhdCB0eXBlIG9mIHZhbHVlIGV4aXN0cyBpbiAkcG9zXG4gICRwb3MtdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xuICAkcG9zLXNwZWM6IG51bGw7XG4gICRwb3MtZGVncmVlOiBudWxsO1xuXG4gIC8vIElmICRwb3MgaXMgbWlzc2luZyBmcm9tIG1peGluLCByZWFzc2lnbiB2YXJzIGFuZCBhZGQgZGVmYXVsdCBwb3NpdGlvblxuICBAaWYgKCRwb3MtdHlwZSA9PSBjb2xvcikgb3IgKG50aCgkcG9zLCAxKSA9PSBcInRyYW5zcGFyZW50XCIpICB7XG4gICAgJGcxMDogJGc5OyAkZzk6ICRnODsgJGc4OiAkZzc7ICRnNzogJGc2OyAkZzY6ICRnNTtcbiAgICAkZzU6ICRnNDsgJGc0OiAkZzM7ICRnMzogJGcyOyAkZzI6ICRnMTsgJGcxOiAkcG9zO1xuICAgICRwb3M6IG51bGw7XG4gIH1cblxuICBAaWYgJHBvcyB7XG4gICAgJHBvc2l0aW9uczogX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRwb3MpO1xuICAgICRwb3MtZGVncmVlOiBudGgoJHBvc2l0aW9ucywgMSk7XG4gICAgJHBvcy1zcGVjOiAgIG50aCgkcG9zaXRpb25zLCAyKTtcbiAgfVxuXG4gICRmdWxsOiAkZzEsICRnMiwgJGczLCAkZzQsICRnNSwgJGc2LCAkZzcsICRnOCwgJGc5LCAkZzEwO1xuXG4gIC8vIFNldCAkZzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJGcxLCAxKTtcblxuICAvLyBJZiAkZmFsbGJhY2sgaXMgYSBjb2xvciB1c2UgdGhhdCBjb2xvciBhcyB0aGUgZmFsbGJhY2sgY29sb3JcbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgJGZhbGxiYWNrLWNvbG9yOiAkZmFsbGJhY2s7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmFsbGJhY2stY29sb3I7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCRwb3MtZGVncmVlICRmdWxsKTsgLy8gU2FmYXJpIDUuMSssIENocm9tZVxuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnF1b3RlKFwibGluZWFyLWdyYWRpZW50KCN7JHBvcy1zcGVjfSN7JGZ1bGx9KVwiKTtcbn1cbiIsIkBtaXhpbiBwZXJzcGVjdGl2ZSgkZGVwdGg6IG5vbmUpIHtcbiAgLy8gbm9uZSB8IDxsZW5ndGg+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLCAkZGVwdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBwZXJzcGVjdGl2ZS1vcmlnaW4oJHZhbHVlOiA1MCUgNTAlKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLW9yaWdpbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJHBsYWNlaG9sZGVyczogXCI6LXdlYmtpdC1pbnB1dFwiIFwiOi1tb3pcIiBcIi1tb3pcIiBcIi1tcy1pbnB1dFwiO1xuICBAZWFjaCAkcGxhY2Vob2xkZXIgaW4gJHBsYWNlaG9sZGVycyB7XG4gICAgJjojeyRwbGFjZWhvbGRlcn0tcGxhY2Vob2xkZXIge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBSZXF1aXJlcyBTYXNzIDMuMStcbkBtaXhpbiByYWRpYWwtZ3JhZGllbnQoJGcxLCAkZzIsXG4gICAgICAgICAgICAgICAgICAgICAgICRnMzogbnVsbCwgJGc0OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzU6IG51bGwsICRnNjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc3OiBudWxsLCAkZzg6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnOTogbnVsbCwgJGcxMDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJHBvczogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJHNoYXBlLXNpemU6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xuXG4gICRkYXRhOiBfcmFkaWFsLWFyZy1wYXJzZXIoJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplKTtcbiAgJGcxOiAgbnRoKCRkYXRhLCAxKTtcbiAgJGcyOiAgbnRoKCRkYXRhLCAyKTtcbiAgJHBvczogbnRoKCRkYXRhLCAzKTtcbiAgJHNoYXBlLXNpemU6IG50aCgkZGF0YSwgNCk7XG5cbiAgJGZ1bGw6ICRnMSwgJGcyLCAkZzMsICRnNCwgJGc1LCAkZzYsICRnNywgJGc4LCAkZzksICRnMTA7XG5cbiAgLy8gU3RyaXAgZGVwcmVjYXRlZCBjb3Zlci9jb250YWluIGZvciBzcGVjXG4gICRzaGFwZS1zaXplLXNwZWM6IF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKTtcblxuICAvLyBTZXQgJGcxIGFzIHRoZSBkZWZhdWx0IGZhbGxiYWNrIGNvbG9yXG4gICRmaXJzdC1jb2xvcjogbnRoKCRmdWxsLCAxKTtcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJGZpcnN0LWNvbG9yLCAxKTtcblxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcbiAgfVxuXG4gIC8vIEFkZCBDb21tYXMgYW5kIHNwYWNlc1xuICAkc2hhcGUtc2l6ZTogaWYoJHNoYXBlLXNpemUsIFwiI3skc2hhcGUtc2l6ZX0sIFwiLCBudWxsKTtcbiAgJHBvczogICAgICAgIGlmKCRwb3MsIFwiI3skcG9zfSwgXCIsIG51bGwpO1xuICAkcG9zLXNwZWM6ICAgaWYoJHBvcywgXCJhdCAjeyRwb3N9XCIsIG51bGwpO1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBpZigoJHNoYXBlLXNpemUtc3BlYyAhPSBcIiBcIikgYW5kICgkcG9zID09IG51bGwpLCBcIiN7JHNoYXBlLXNpemUtc3BlY30sIFwiLCBcIiN7JHNoYXBlLXNpemUtc3BlY30gXCIpO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICAkZmFsbGJhY2stY29sb3I7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KHVucXVvdGUoI3skcG9zfSN7JHNoYXBlLXNpemV9I3skZnVsbH0pKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdW5xdW90ZShcInJhZGlhbC1ncmFkaWVudCgjeyRzaGFwZS1zaXplLXNwZWN9I3skcG9zLXNwZWN9I3skZnVsbH0pXCIpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIE91dHB1dHMgdGhlIHNwZWMgYW5kIHByZWZpeGVkIHZlcnNpb25zIG9mIHRoZSBgOjpzZWxlY3Rpb25gIHBzZXVkby1lbGVtZW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7Qm9vbH0gJGN1cnJlbnQtc2VsZWN0b3IgW2ZhbHNlXVxyXG4vLy8gICBJZiBzZXQgdG8gYHRydWVgLCBpdCB0YWtlcyB0aGUgY3VycmVudCBlbGVtZW50IGludG8gY29uc2lkZXJhdGlvbi5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIHNlbGVjdGlvbih0cnVlKSB7XHJcbi8vLyAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xyXG4vLy8gICAgIH1cclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQ6Oi1tb3otc2VsZWN0aW9uIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAuZWxlbWVudDo6c2VsZWN0aW9uIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xyXG4vLy8gICB9XHJcblxyXG5AbWl4aW4gc2VsZWN0aW9uKCRjdXJyZW50LXNlbGVjdG9yOiBmYWxzZSkge1xyXG4gIEBpZiAkY3VycmVudC1zZWxlY3RvciB7XHJcbiAgICAmOjotbW96LXNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG5cclxuICAgICY6OnNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2Uge1xyXG4gICAgOjotbW96LXNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG5cclxuICAgIDo6c2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIkBtaXhpbiB0ZXh0LWRlY29yYXRpb24oJHZhbHVlKSB7XG4vLyA8dGV4dC1kZWNvcmF0aW9uLWxpbmU+IHx8IDx0ZXh0LWRlY29yYXRpb24tc3R5bGU+IHx8IDx0ZXh0LWRlY29yYXRpb24tY29sb3I+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbiwgJHZhbHVlLCBtb3opO1xufVxuXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLWxpbmUoJGxpbmU6IG5vbmUpIHtcbi8vIG5vbmUgfHwgdW5kZXJsaW5lIHx8IG92ZXJsaW5lIHx8IGxpbmUtdGhyb3VnaFxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tbGluZSwgJGxpbmUsIG1veik7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tc3R5bGUoJHN0eWxlOiBzb2xpZCkge1xuLy8gc29saWQgfHwgZG91YmxlIHx8IGRvdHRlZCB8fCBkYXNoZWQgfHwgd2F2eVxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tc3R5bGUsICRzdHlsZSwgbW96IHdlYmtpdCk7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tY29sb3IoJGNvbG9yOiBjdXJyZW50Q29sb3IpIHtcbi8vIGN1cnJlbnRDb2xvciB8fCA8Y29sb3I+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1jb2xvciwgJGNvbG9yLCBtb3opO1xufVxuIiwiQG1peGluIHRyYW5zZm9ybSgkcHJvcGVydHk6IG5vbmUpIHtcbiAgLy8gbm9uZSB8IDx0cmFuc2Zvcm0tZnVuY3Rpb24+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybSwgJHByb3BlcnR5LCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2Zvcm0tb3JpZ2luKCRheGVzOiA1MCUpIHtcbiAgLy8geC1heGlzIC0gbGVmdCB8IGNlbnRlciB8IHJpZ2h0ICB8IGxlbmd0aCB8ICVcbiAgLy8geS1heGlzIC0gdG9wICB8IGNlbnRlciB8IGJvdHRvbSB8IGxlbmd0aCB8ICVcbiAgLy8gei1heGlzIC0gICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0tb3JpZ2luLCAkYXhlcywgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNmb3JtLXN0eWxlKCRzdHlsZTogZmxhdCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0tc3R5bGUsICRzdHlsZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuIiwiLy8gU2hvcnRoYW5kIG1peGluLiBTdXBwb3J0cyBtdWx0aXBsZSBwYXJlbnRoZXNlcy1kZWxpbWluYXRlZCB2YWx1ZXMgZm9yIGVhY2ggdmFyaWFibGUuXG4vLyBFeGFtcGxlOiBAaW5jbHVkZSB0cmFuc2l0aW9uIChhbGwgMnMgZWFzZS1pbi1vdXQpO1xuLy8gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbiAob3BhY2l0eSAxcyBlYXNlLWluIDJzLCB3aWR0aCAycyBlYXNlLW91dCk7XG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLXByb3BlcnR5ICh0cmFuc2Zvcm0sIG9wYWNpdHkpO1xuXG5AbWl4aW4gdHJhbnNpdGlvbigkcHJvcGVydGllcy4uLikge1xuICAvLyBGaXggZm9yIHZlbmRvci1wcmVmaXggdHJhbnNmb3JtIHByb3BlcnR5XG4gICRuZWVkcy1wcmVmaXhlczogZmFsc2U7XG4gICR3ZWJraXQ6ICgpO1xuICAkbW96OiAoKTtcbiAgJHNwZWM6ICgpO1xuXG4gIC8vIENyZWF0ZSBsaXN0cyBmb3IgdmVuZG9yLXByZWZpeGVkIHRyYW5zZm9ybVxuICBAZWFjaCAkbGlzdCBpbiAkcHJvcGVydGllcyB7XG4gICAgQGlmIG50aCgkbGlzdCwgMSkgPT0gXCJ0cmFuc2Zvcm1cIiB7XG4gICAgICAkbmVlZHMtcHJlZml4ZXM6IHRydWU7XG4gICAgICAkbGlzdDE6IC13ZWJraXQtdHJhbnNmb3JtO1xuICAgICAgJGxpc3QyOiAtbW96LXRyYW5zZm9ybTtcbiAgICAgICRsaXN0MzogKCk7XG5cbiAgICAgIEBlYWNoICR2YXIgaW4gJGxpc3Qge1xuICAgICAgICAkbGlzdDM6IGpvaW4oJGxpc3QzLCAkdmFyKTtcblxuICAgICAgICBAaWYgJHZhciAhPSBcInRyYW5zZm9ybVwiIHtcbiAgICAgICAgICAkbGlzdDE6IGpvaW4oJGxpc3QxLCAkdmFyKTtcbiAgICAgICAgICAkbGlzdDI6IGpvaW4oJGxpc3QyLCAkdmFyKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAkd2Via2l0OiBhcHBlbmQoJHdlYmtpdCwgJGxpc3QxKTtcbiAgICAgICRtb3o6ICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdDIpO1xuICAgICAgJHNwZWM6ICAgYXBwZW5kKCRzcGVjLCAgICRsaXN0Myk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkd2Via2l0OiBhcHBlbmQoJHdlYmtpdCwgJGxpc3QsIGNvbW1hKTtcbiAgICAgICRtb3o6ICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdCwgY29tbWEpO1xuICAgICAgJHNwZWM6ICAgYXBwZW5kKCRzcGVjLCAgICRsaXN0LCBjb21tYSk7XG4gICAgfVxuICB9XG5cbiAgQGlmICRuZWVkcy1wcmVmaXhlcyB7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAkd2Via2l0O1xuICAgICAgIC1tb3otdHJhbnNpdGlvbjogJG1vejtcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICRzcGVjO1xuICB9IEBlbHNlIHtcbiAgICBAaWYgbGVuZ3RoKCRwcm9wZXJ0aWVzKSA+PSAxIHtcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHByb3BlcnRpZXM6IGFsbCAwLjE1cyBlYXNlLW91dCAwcztcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1wcm9wZXJ0eSgkcHJvcGVydGllcy4uLikge1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIFwid2Via2l0XCIpO1xuICAgICAtbW96LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIFwibW96XCIpO1xuICAgICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIGZhbHNlKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tZHVyYXRpb24oJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKCRtb3Rpb25zLi4uKSB7XG4gIC8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dCB8IGN1YmljLWJlemllcigpXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkbW90aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tZGVsYXkoJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiB1c2VyLXNlbGVjdCgkdmFsdWU6IG5vbmUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodXNlci1zZWxlY3QsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1jb2xvcmAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLWNvbG9yKCNhNjBiNTUgIzc2Y2Q5YyBudWxsICNlOGFlMWEpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItbGVmdC1jb2xvcjogI2U4YWUxYTtcbi8vLyAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjNzZjZDljO1xuLy8vICAgICBib3JkZXItdG9wLWNvbG9yOiAjYTYwYjU1O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLWNvbG9yYFxuXG5AbWl4aW4gYm9yZGVyLWNvbG9yKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgY29sb3IsICR2YWxzLi4uKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1yYWRpdXNgIG9uIGJvdGggY29ybmVycyBvbiB0aGUgc2lkZSBvZiBhIGJveC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcmFkaWlcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50LW9uZSB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci10b3AtcmFkaXVzKDVweCk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50LXR3byB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1sZWZ0LXJhZGl1cygzcHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQtb25lIHtcbi8vLyAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXB4O1xuLy8vICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXB4O1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudC10d28ge1xuLy8vICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XG4vLy8gICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci1yYWRpdXNgXG5cbkBtaXhpbiBib3JkZXItdG9wLXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbn1cblxuQG1peGluIGJvcmRlci1ib3R0b20tcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG59XG5cbkBtaXhpbiBib3JkZXItbGVmdC1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGlpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXN0eWxlYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItc3R5bGUoZGFzaGVkIG51bGwgc29saWQpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbi8vLyAgICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLXN0eWxlYFxuXG5AbWl4aW4gYm9yZGVyLXN0eWxlKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgc3R5bGUsICR2YWxzLi4uKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci13aWR0aGAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXdpZHRoKDFlbSBudWxsIDIwcHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAyMHB4O1xuLy8vICAgICBib3JkZXItdG9wLXdpZHRoOiAxZW07XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItd2lkdGhgXG5cbkBtaXhpbiBib3JkZXItd2lkdGgoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCB3aWR0aCwgJHZhbHMuLi4pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VuZXJhdGVzIHZhcmlhYmxlcyBmb3IgYWxsIGJ1dHRvbnMuIFBsZWFzZSBub3RlIHRoYXQgeW91IG11c3QgdXNlIGludGVycG9sYXRpb24gb24gdGhlIHZhcmlhYmxlOiBgI3skYWxsLWJ1dHRvbnN9YC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgI3skYWxsLWJ1dHRvbnN9IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLWJ1dHRvbnMtZm9jdXN9LFxuLy8vICAgI3skYWxsLWJ1dHRvbnMtaG92ZXJ9IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLWJ1dHRvbnMtYWN0aXZlfSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICBidXR0b24sXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGJ1dHRvbjpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmZvY3VzLFxuLy8vICAgYnV0dG9uOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06aG92ZXIge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBidXR0b246YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTphY3RpdmUge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUgYXNzaWduLWlucHV0c1xuLy8vXG4vLy8gQHR5cGUgTGlzdFxuLy8vXG4vLy8gQHRvZG8gUmVtb3ZlIGRvdWJsZSBhc3NpZ25lZCB2YXJpYWJsZXMgKExpbmVzIDU54oCTNjIpIGluIHY1LjAuMFxuXG4kYnV0dG9ucy1saXN0OiAnYnV0dG9uJyxcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiYnV0dG9uXCJdJyxcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwicmVzZXRcIl0nLFxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJzdWJtaXRcIl0nO1xuXG4kYWxsLWJ1dHRvbnM6ICAgICAgICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QpO1xuJGFsbC1idXR0b25zLWFjdGl2ZTogYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBhY3RpdmUpO1xuJGFsbC1idXR0b25zLWZvY3VzOiAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBmb2N1cyk7XG4kYWxsLWJ1dHRvbnMtaG92ZXI6ICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGhvdmVyKTtcblxuJGFsbC1idXR0b24taW5wdXRzOiAgICAgICAgJGFsbC1idXR0b25zO1xuJGFsbC1idXR0b24taW5wdXRzLWFjdGl2ZTogJGFsbC1idXR0b25zLWFjdGl2ZTtcbiRhbGwtYnV0dG9uLWlucHV0cy1mb2N1czogICRhbGwtYnV0dG9ucy1mb2N1cztcbiRhbGwtYnV0dG9uLWlucHV0cy1ob3ZlcjogICRhbGwtYnV0dG9ucy1ob3ZlcjtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGluY2x1ZGUgYSBjbGVhcmZpeCBmb3IgY29udGFpbmluZyBmbG9hdHMuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vY3NzbW9qby5jb20vbGF0ZXN0X25ld19jbGVhcmZpeF9zb19mYXIvXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudDo6YWZ0ZXIge1xuLy8vICAgICBjbGVhcjogYm90aDtcbi8vLyAgICAgY29udGVudDogXCJcIjtcbi8vLyAgICAgZGlzcGxheTogdGFibGU7XG4vLy8gICB9XG5cbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBUcnVuY2F0ZXMgdGV4dCBhbmQgYWRkcyBhbiBlbGxpcHNpcyB0byByZXByZXNlbnQgb3ZlcmZsb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsxMDAlXVxuLy8vICAgTWF4LXdpZHRoIGZvciB0aGUgc3RyaW5nIHRvIHJlc3BlY3QgYmVmb3JlIGJlaW5nIHRydW5jYXRlZFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGVsbGlwc2lzO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4vLy8gICAgIG1heC13aWR0aDogMTAwJTtcbi8vLyAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbi8vLyAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4vLy8gICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4vLy8gICAgIHdvcmQtd3JhcDogbm9ybWFsO1xuLy8vICAgfVxuXG5AbWl4aW4gZWxsaXBzaXMoJHdpZHRoOiAxMDAlKSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAkd2lkdGg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3b3JkLXdyYXA6IG5vcm1hbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdlb3JnaWEgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJGdlb3JnaWE6IFwiR2VvcmdpYVwiLCBcIkNhbWJyaWFcIiwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgXCJUaW1lc1wiLCBzZXJpZjtcblxuLy8vIEhlbHZldGljYSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kaGVsdmV0aWNhOiBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhXCIsIFwiUm9ib3RvXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcblxuLy8vIEx1Y2lkYSBHcmFuZGUgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJGx1Y2lkYS1ncmFuZGU6IFwiTHVjaWRhIEdyYW5kZVwiLCBcIlRhaG9tYVwiLCBcIlZlcmRhbmFcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuXG4vLy8gTW9ub3NwYWNlIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRtb25vc3BhY2U6IFwiQml0c3RyZWFtIFZlcmEgU2FucyBNb25vXCIsIFwiQ29uc29sYXNcIiwgXCJDb3VyaWVyXCIsIG1vbm9zcGFjZTtcblxuLy8vIFZlcmRhbmEgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJHZlcmRhbmE6IFwiVmVyZGFuYVwiLCBcIkdlbmV2YVwiLCBzYW5zLXNlcmlmO1xuIiwiLy8vIEhpZGVzIHRoZSB0ZXh0IGluIGFuIGVsZW1lbnQsIGNvbW1vbmx5IHVzZWQgdG8gc2hvdyBhbiBpbWFnZS4gU29tZSBlbGVtZW50cyB3aWxsIG5lZWQgYmxvY2stbGV2ZWwgc3R5bGVzIGFwcGxpZWQuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vemVsZG1hbi5jb20vMjAxMi8wMy8wMS9yZXBsYWNpbmctdGhlLTk5OTlweC1oYWNrLW5ldy1pbWFnZS1yZXBsYWNlbWVudFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGhpZGUtdGV4dDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbi8vLyAgICAgdGV4dC1pbmRlbnQ6IDEwMSU7XG4vLy8gICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4vLy8gICB9XG4vLy9cbi8vLyBAdG9kbyBSZW1vdmUgaGVpZ2h0IGFyZ3VtZW50IGluIHY1LjAuMFxuXG5AbWl4aW4gaGlkZS10ZXh0KCRoZWlnaHQ6IG51bGwpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1pbmRlbnQ6IDEwMSU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgQGlmICRoZWlnaHQge1xuICAgIEB3YXJuIFwiVGhlIGBoaWRlLXRleHRgIG1peGluIGhhcyBjaGFuZ2VkIGFuZCBubyBsb25nZXIgcmVxdWlyZXMgYSBoZWlnaHQuIFRoZSBoZWlnaHQgYXJndW1lbnQgd2lsbCBubyBsb25nZXIgYmUgYWNjZXB0ZWQgaW4gdjUuMC4wXCI7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYG1hcmdpbmAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMTBweCAzZW0gMjB2aCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbi1ib3R0b206IDNlbTtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IDIwdmg7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMTBweDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYG1hcmdpbmBcblxuQG1peGluIG1hcmdpbigkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShtYXJnaW4sIGZhbHNlLCAkdmFscy4uLik7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBwYWRkaW5nYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwYWRkaW5nKDEydmggbnVsbCAxMHB4IDUlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4vLy8gICAgIHBhZGRpbmctbGVmdDogNSU7XG4vLy8gICAgIHBhZGRpbmctdG9wOiAxMnZoO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgcGFkZGluZ2BcblxuQG1peGluIHBhZGRpbmcoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkocGFkZGluZywgZmFsc2UsICR2YWxzLi4uKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciBzZXR0aW5nIGFuIGVsZW1lbnTigJlzIHBvc2l0aW9uLiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge1Bvc2l0aW9ufSAkcG9zaXRpb24gW3JlbGF0aXZlXVxuLy8vICAgQSBDU1MgcG9zaXRpb24gdmFsdWVcbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJGNvb3JkaW5hdGVzIFtudWxsIG51bGwgbnVsbCBudWxsXVxuLy8vICAgTGlzdCBvZiB2YWx1ZXMgdGhhdCBjb3JyZXNwb25kIHRvIHRoZSA0LXZhbHVlIHN5bnRheCBmb3IgdGhlIGVkZ2VzIG9mIGEgYm94XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgbnVsbCBudWxsIDEwZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBsZWZ0OiAxMGVtO1xuLy8vICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLy8gICAgIHRvcDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gaXMtbGVuZ3RoXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSB1bnBhY2tcblxuQG1peGluIHBvc2l0aW9uKCRwb3NpdGlvbjogcmVsYXRpdmUsICRjb29yZGluYXRlczogbnVsbCBudWxsIG51bGwgbnVsbCkge1xuICBAaWYgdHlwZS1vZigkcG9zaXRpb24pID09IGxpc3Qge1xuICAgICRjb29yZGluYXRlczogJHBvc2l0aW9uO1xuICAgICRwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAkY29vcmRpbmF0ZXM6IHVucGFjaygkY29vcmRpbmF0ZXMpO1xuXG4gICRvZmZzZXRzOiAoXG4gICAgdG9wOiAgICBudGgoJGNvb3JkaW5hdGVzLCAxKSxcbiAgICByaWdodDogIG50aCgkY29vcmRpbmF0ZXMsIDIpLFxuICAgIGJvdHRvbTogbnRoKCRjb29yZGluYXRlcywgMyksXG4gICAgbGVmdDogICBudGgoJGNvb3JkaW5hdGVzLCA0KVxuICApO1xuXG4gIHBvc2l0aW9uOiAkcG9zaXRpb247XG5cbiAgQGVhY2ggJG9mZnNldCwgJHZhbHVlIGluICRvZmZzZXRzIHtcbiAgICBAaWYgaXMtbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgI3skb2Zmc2V0fTogJHZhbHVlO1xuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQSBtaXhpbiBmb3IgZ2VuZXJhdGluZyB2ZW5kb3IgcHJlZml4ZXMgb24gbm9uLXN0YW5kYXJkaXplZCBwcm9wZXJ0aWVzLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcm9wZXJ0eVxuLy8vICAgUHJvcGVydHkgdG8gcHJlZml4XG4vLy9cbi8vLyBAcGFyYW0geyp9ICR2YWx1ZVxuLy8vICAgVmFsdWUgdG8gdXNlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRwcmVmaXhlc1xuLy8vICAgUHJlZml4ZXMgdG8gZGVmaW5lXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXJhZGl1cywgMTBweCwgd2Via2l0IG1zIHNwZWMpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDEwcHg7XG4vLy8gICAgIC1tb3otYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itd2Via2l0XG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1tb3ppbGxhXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1taWNyb3NvZnRcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW9wZXJhXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1zcGVjXG5cbkBtaXhpbiBwcmVmaXhlcigkcHJvcGVydHksICR2YWx1ZSwgJHByZWZpeGVzKSB7XG4gIEBlYWNoICRwcmVmaXggaW4gJHByZWZpeGVzIHtcbiAgICBAaWYgJHByZWZpeCA9PSB3ZWJraXQge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLXdlYmtpdCB7XG4gICAgICAgIC13ZWJraXQtI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG1veiB7XG4gICAgICBAaWYgJHByZWZpeC1mb3ItbW96aWxsYSB7XG4gICAgICAgIC1tb3otI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG1zIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1taWNyb3NvZnQge1xuICAgICAgICAtbXMtI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG8ge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW9wZXJhIHtcbiAgICAgICAgLW8tI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IHNwZWMge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLXNwZWMge1xuICAgICAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlICB7XG4gICAgICBAd2FybiBcIlVucmVjb2duaXplZCBwcmVmaXg6ICN7JHByZWZpeH1cIjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKSB7XG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6IGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICBmYWxzZSAhZ2xvYmFsO1xufVxuIiwiQG1peGluIHJldGluYS1pbWFnZSgkZmlsZW5hbWUsICRiYWNrZ3JvdW5kLXNpemUsICRleHRlbnNpb246IHBuZywgJHJldGluYS1maWxlbmFtZTogbnVsbCwgJHJldGluYS1zdWZmaXg6IF8yeCwgJGFzc2V0LXBpcGVsaW5lOiAkYXNzZXQtcGlwZWxpbmUpIHtcbiAgQGlmICRhc3NldC1waXBlbGluZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gIH0gQGVsc2Uge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgICAgIHVybChcIiN7JGZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICB9XG5cbiAgQGluY2x1ZGUgaGlkcGkge1xuICAgIEBpZiAkYXNzZXQtcGlwZWxpbmUge1xuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRyZXRpbmEtZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9I3skcmV0aW5hLXN1ZmZpeH0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpZiAkcmV0aW5hLWZpbGVuYW1lIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3skcmV0aW5hLWZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7JGZpbGVuYW1lfSN7JHJldGluYS1zdWZmaXh9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1zaXplOiAkYmFja2dyb3VuZC1zaXplO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBTZXRzIHRoZSBgd2lkdGhgIGFuZCBgaGVpZ2h0YCBvZiB0aGUgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNpemVcbi8vLyAgIEEgbGlzdCBvZiBhdCBtb3N0IDIgc2l6ZSB2YWx1ZXMuXG4vLy9cbi8vLyAgIElmIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgdmFsdWUgaW4gYCRzaXplYCBpdCBpcyB1c2VkIGZvciBib3RoIHdpZHRoIGFuZCBoZWlnaHQuIEFsbCB1bml0cyBhcmUgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZmlyc3QtZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNpemUoMmVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLnNlY29uZC1lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2l6ZShhdXRvIDEwZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmZpcnN0LWVsZW1lbnQge1xuLy8vICAgICB3aWR0aDogMmVtO1xuLy8vICAgICBoZWlnaHQ6IDJlbTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLnNlY29uZC1lbGVtZW50IHtcbi8vLyAgICAgd2lkdGg6IGF1dG87XG4vLy8gICAgIGhlaWdodDogMTBlbTtcbi8vLyAgIH1cbi8vL1xuLy8vIEB0b2RvIFJlZmFjdG9yIGluIDUuMC4wIHRvIHVzZSBhIGNvbW1hLXNlcGFyYXRlZCBhcmd1bWVudFxuXG5AbWl4aW4gc2l6ZSgkdmFsdWUpIHtcbiAgJHdpZHRoOiBudGgoJHZhbHVlLCAxKTtcbiAgJGhlaWdodDogJHdpZHRoO1xuXG4gIEBpZiBsZW5ndGgoJHZhbHVlKSA+IDEge1xuICAgICRoZWlnaHQ6IG50aCgkdmFsdWUsIDIpO1xuICB9XG5cbiAgQGlmIGlzLXNpemUoJGhlaWdodCkge1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJgI3skaGVpZ2h0fWAgaXMgbm90IGEgdmFsaWQgbGVuZ3RoIGZvciB0aGUgYCRoZWlnaHRgIHBhcmFtZXRlciBpbiB0aGUgYHNpemVgIG1peGluLlwiO1xuICB9XG5cbiAgQGlmIGlzLXNpemUoJHdpZHRoKSB7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJgI3skd2lkdGh9YCBpcyBub3QgYSB2YWxpZCBsZW5ndGggZm9yIHRoZSBgJHdpZHRoYCBwYXJhbWV0ZXIgaW4gdGhlIGBzaXplYCBtaXhpbi5cIjtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VuZXJhdGVzIHZhcmlhYmxlcyBmb3IgYWxsIHRleHQtYmFzZWQgaW5wdXRzLiBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBtdXN0IHVzZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSB2YXJpYWJsZTogYCN7JGFsbC10ZXh0LWlucHV0c31gLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHN9IHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWZvY3VzfSxcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1ob3Zlcn0ge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtYWN0aXZlfSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl0sXG4vLy8gICB0ZXh0YXJlYSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTpmb2N1cyxcbi8vLyAgIHRleHRhcmVhOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmhvdmVyLFxuLy8vICAgdGV4dGFyZWE6aG92ZXIge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmFjdGl2ZSxcbi8vLyAgIHRleHRhcmVhOmFjdGl2ZSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSBhc3NpZ24taW5wdXRzXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiR0ZXh0LWlucHV0cy1saXN0OiAnaW5wdXRbdHlwZT1cImNvbG9yXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGVcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZW1haWxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibW9udGhcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibnVtYmVyXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInNlYXJjaFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZWxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGV4dFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0aW1lXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInVybFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ3ZWVrXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXQ6bm90KFt0eXBlXSknLFxuICAgICAgICAgICAgICAgICAgICd0ZXh0YXJlYSc7XG5cbiRhbGwtdGV4dC1pbnB1dHM6ICAgICAgICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0KTtcbiRhbGwtdGV4dC1pbnB1dHMtYWN0aXZlOiBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBhY3RpdmUpO1xuJGFsbC10ZXh0LWlucHV0cy1mb2N1czogIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGZvY3VzKTtcbiRhbGwtdGV4dC1pbnB1dHMtaG92ZXI6ICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBob3Zlcik7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDU1MgY3ViaWMtYmV6aWVyIHRpbWluZyBmdW5jdGlvbnMuIFRpbWluZyBmdW5jdGlvbnMgY291cnRlc3kgb2YganF1ZXJ5LmVhc2llIChnaXRodWIuY29tL2phdWtpYS9lYXNpZSlcbi8vL1xuLy8vIFRpbWluZyBmdW5jdGlvbnMgYXJlIHRoZSBzYW1lIGFzIGRlbW9lZCBoZXJlOiBodHRwOi8vanF1ZXJ5dWkuY29tL3Jlc291cmNlcy9kZW1vcy9lZmZlY3QvZWFzaW5nLmh0bWxcbi8vL1xuLy8vIEB0eXBlIGN1YmljLWJlemllclxuXG4kZWFzZS1pbi1xdWFkOiAgICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDg1LCAwLjY4MCwgMC41MzApO1xuJGVhc2UtaW4tY3ViaWM6ICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiRlYXNlLWluLXF1YXJ0OiAgICAgY3ViaWMtYmV6aWVyKDAuODk1LCAgMC4wMzAsIDAuNjg1LCAwLjIyMCk7XG4kZWFzZS1pbi1xdWludDogICAgIGN1YmljLWJlemllcigwLjc1NSwgIDAuMDUwLCAwLjg1NSwgMC4wNjApO1xuJGVhc2UtaW4tc2luZTogICAgICBjdWJpYy1iZXppZXIoMC40NzAsICAwLjAwMCwgMC43NDUsIDAuNzE1KTtcbiRlYXNlLWluLWV4cG86ICAgICAgY3ViaWMtYmV6aWVyKDAuOTUwLCAgMC4wNTAsIDAuNzk1LCAwLjAzNSk7XG4kZWFzZS1pbi1jaXJjOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgIDAuMDQwLCAwLjk4MCwgMC4zMzUpO1xuJGVhc2UtaW4tYmFjazogICAgICBjdWJpYy1iZXppZXIoMC42MDAsIC0wLjI4MCwgMC43MzUsIDAuMDQ1KTtcblxuJGVhc2Utb3V0LXF1YWQ6ICAgICBjdWJpYy1iZXppZXIoMC4yNTAsICAwLjQ2MCwgMC40NTAsIDAuOTQwKTtcbiRlYXNlLW91dC1jdWJpYzogICAgY3ViaWMtYmV6aWVyKDAuMjE1LCAgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4kZWFzZS1vdXQtcXVhcnQ6ICAgIGN1YmljLWJlemllcigwLjE2NSwgIDAuODQwLCAwLjQ0MCwgMS4wMDApO1xuJGVhc2Utb3V0LXF1aW50OiAgICBjdWJpYy1iZXppZXIoMC4yMzAsICAxLjAwMCwgMC4zMjAsIDEuMDAwKTtcbiRlYXNlLW91dC1zaW5lOiAgICAgY3ViaWMtYmV6aWVyKDAuMzkwLCAgMC41NzUsIDAuNTY1LCAxLjAwMCk7XG4kZWFzZS1vdXQtZXhwbzogICAgIGN1YmljLWJlemllcigwLjE5MCwgIDEuMDAwLCAwLjIyMCwgMS4wMDApO1xuJGVhc2Utb3V0LWNpcmM6ICAgICBjdWJpYy1iZXppZXIoMC4wNzUsICAwLjgyMCwgMC4xNjUsIDEuMDAwKTtcbiRlYXNlLW91dC1iYWNrOiAgICAgY3ViaWMtYmV6aWVyKDAuMTc1LCAgMC44ODUsIDAuMzIwLCAxLjI3NSk7XG5cbiRlYXNlLWluLW91dC1xdWFkOiAgY3ViaWMtYmV6aWVyKDAuNDU1LCAgMC4wMzAsIDAuNTE1LCAwLjk1NSk7XG4kZWFzZS1pbi1vdXQtY3ViaWM6IGN1YmljLWJlemllcigwLjY0NSwgIDAuMDQ1LCAwLjM1NSwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXF1YXJ0OiBjdWJpYy1iZXppZXIoMC43NzAsICAwLjAwMCwgMC4xNzUsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1xdWludDogY3ViaWMtYmV6aWVyKDAuODYwLCAgMC4wMDAsIDAuMDcwLCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtc2luZTogIGN1YmljLWJlemllcigwLjQ0NSwgIDAuMDUwLCAwLjU1MCwgMC45NTApO1xuJGVhc2UtaW4tb3V0LWV4cG86ICBjdWJpYy1iZXppZXIoMS4wMDAsICAwLjAwMCwgMC4wMDAsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1jaXJjOiAgY3ViaWMtYmV6aWVyKDAuNzg1LCAgMC4xMzUsIDAuMTUwLCAwLjg2MCk7XG4kZWFzZS1pbi1vdXQtYmFjazogIGN1YmljLWJlemllcigwLjY4MCwgLTAuNTUwLCAwLjI2NSwgMS41NTApO1xuIiwiQG1peGluIHRyaWFuZ2xlKCRzaXplLCAkY29sb3IsICRkaXJlY3Rpb24pIHtcbiAgJHdpZHRoOiBudGgoJHNpemUsIDEpO1xuICAkaGVpZ2h0OiBudGgoJHNpemUsIGxlbmd0aCgkc2l6ZSkpO1xuICAkZm9yZWdyb3VuZC1jb2xvcjogbnRoKCRjb2xvciwgMSk7XG4gICRiYWNrZ3JvdW5kLWNvbG9yOiBpZihsZW5ndGgoJGNvbG9yKSA9PSAyLCBudGgoJGNvbG9yLCAyKSwgdHJhbnNwYXJlbnQpO1xuICBoZWlnaHQ6IDA7XG4gIHdpZHRoOiAwO1xuXG4gIEBpZiAoJGRpcmVjdGlvbiA9PSB1cCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bikgb3IgKCRkaXJlY3Rpb24gPT0gcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICAkd2lkdGg6ICR3aWR0aCAvIDI7XG4gICAgJGhlaWdodDogaWYobGVuZ3RoKCRzaXplKSA+IDEsICRoZWlnaHQsICRoZWlnaHQvMik7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSByaWdodCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItbGVmdDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93biB7XG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBsZWZ0IHtcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gdXAtcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IHVwLWxlZnQpIHtcbiAgICBib3JkZXItdG9wOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAtcmlnaHQge1xuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHVwLWxlZnQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGRvd24tcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGRvd24tbGVmdCkge1xuICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LXVwKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtZG93bikge1xuICAgIGJvcmRlci1jb2xvcjogJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LXJpZ2h0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtbGVmdCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhbiBlYXN5IHdheSB0byBjaGFuZ2UgdGhlIGB3b3JkLXdyYXBgIHByb3BlcnR5LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR3cmFwIFticmVhay13b3JkXVxuLy8vICAgVmFsdWUgZm9yIHRoZSBgd29yZC1icmVha2AgcHJvcGVydHkuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC53cmFwcGVyIHtcbi8vLyAgICAgQGluY2x1ZGUgd29yZC13cmFwKGJyZWFrLXdvcmQpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLndyYXBwZXIge1xuLy8vICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuLy8vICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4vLy8gICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbi8vLyAgIH1cblxuQG1peGluIHdvcmQtd3JhcCgkd3JhcDogYnJlYWstd29yZCkge1xuICBvdmVyZmxvdy13cmFwOiAkd3JhcDtcbiAgd29yZC13cmFwOiAkd3JhcDtcblxuICBAaWYgJHdyYXAgPT0gYnJlYWstd29yZCB7XG4gICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICB9IEBlbHNlIHtcbiAgICB3b3JkLWJyZWFrOiAkd3JhcDtcbiAgfVxufVxuIiwiLy8gVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IE1BSk9SIHZlcnNpb24gcmVsZWFzZVxuXG5AbWl4aW4gaW5saW5lLWJsb2NrIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gIEB3YXJuIFwiVGhlIGlubGluZS1ibG9jayBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbkBtaXhpbiBidXR0b24gKCRzdHlsZTogc2ltcGxlLCAkYmFzZS1jb2xvcjogIzQyOTRmMCwgJHRleHQtc2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBzdHJpbmcgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IGNvbG9yIHtcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IHN0cmluZyBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gbnVtYmVyIHtcbiAgICAkcGFkZGluZzogJHRleHQtc2l6ZTtcbiAgICAkdGV4dC1zaXplOiAkYmFzZS1jb2xvcjtcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcblxuICAgIEBpZiAkcGFkZGluZyA9PSBpbmhlcml0IHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBjb2xvciB7XG4gICAgJGJhc2UtY29sb3I6ICRzdHlsZTtcbiAgICAkc3R5bGU6IHNpbXBsZTtcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xuICAgICR0ZXh0LXNpemU6ICRiYXNlLWNvbG9yO1xuICAgICRiYXNlLWNvbG9yOiAkc3R5bGU7XG4gICAgJHN0eWxlOiBzaW1wbGU7XG5cbiAgICBAaWYgJHBhZGRpbmcgPT0gaW5oZXJpdCB7XG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkYmFzZS1jb2xvcjtcbiAgICAkdGV4dC1zaXplOiAkc3R5bGU7XG4gICAgJGJhc2UtY29sb3I6ICM0Mjk0ZjA7XG4gICAgJHN0eWxlOiBzaW1wbGU7XG5cbiAgICBAaWYgJHBhZGRpbmcgPT0gIzQyOTRmMCB7XG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBvcGFjaXR5OiAwLjU7XG4gIH1cblxuICBAd2FybiBcIlRoZSBidXR0b24gbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG4vLyBTZWxlY3RvciBTdHlsZSBCdXR0b25cbkBtaXhpbiBidXR0b25zdHlsZSgkdHlwZSwgJGItY29sb3IsICR0LXNpemUsICRwYWQpIHtcbiAgLy8gR3JheXNjYWxlIGJ1dHRvblxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBzaW1wbGUoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGlmICR0eXBlID09IHNoaW55IGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBzaGlueSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gcGlsbCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gZmxhdCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgZmxhdCgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICAvLyBDb2xvcmVkIGJ1dHRvblxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIHtcbiAgICBAaW5jbHVkZSBzaW1wbGUoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBlbHNlIGlmICR0eXBlID09IHNoaW55IHtcbiAgICBAaW5jbHVkZSBzaGlueSgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gcGlsbCB7XG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gZmxhdCB7XG4gICAgQGluY2x1ZGUgZmxhdCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG59XG5cbi8vIFNpbXBsZSBCdXR0b25cbkBtaXhpbiBzaW1wbGUoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDklLCAgJGxpZ2h0bmVzczogLTE0JSk7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtOCUsICAkbGlnaHRuZXNzOiAgMTUlKTtcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA5JSwgICRsaWdodG5lc3M6IC0xMSUpO1xuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDE1JSwgJGxpZ2h0bmVzczogLTE4JSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlcjogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgfVxuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIDFweCAwICR0ZXh0LXNoYWRvdztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xuICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNyUsICRsaWdodG5lc3M6ICA1JSk7XG4gICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA4JSwgJGxpZ2h0bmVzczogLTE0JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcbiAgICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3ItaG92ZXIsICRzdG9wLWdyYWRpZW50LWhvdmVyKTtcblxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogOSUsICRsaWdodG5lc3M6IC0xNCUpO1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA3JSwgJGxpZ2h0bmVzczogLTE3JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICBncmF5c2NhbGUoJGJvcmRlci1hY3RpdmUpO1xuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1hY3RpdmU7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDhweCA0cHggJGluc2V0LXNoYWRvdy1hY3RpdmUsIGluc2V0IDAgMCA4cHggNHB4ICRpbnNldC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIFNoaW55IEJ1dHRvblxuQG1peGluIHNoaW55KCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcbiAgJGJvcmRlcjogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTExNywgJGdyZWVuOiAtMTExLCAkYmx1ZTogLTgxKTtcbiAgJGJvcmRlci1ib3R0b206IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTEyNiwgJGdyZWVuOiAtMTI3LCAkYmx1ZTogLTEyMik7XG4gICRmb3VydGgtc3RvcDogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC03OSwgICRncmVlbjogLTcwLCAgJGJsdWU6IC00Nik7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6ICAzNywgICRncmVlbjogIDI5LCAgJGJsdWU6ICAxMik7XG4gICRzZWNvbmQtc3RvcDogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC01NiwgICRncmVlbjogLTUwLCAgJGJsdWU6IC0zMyk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xNDAsICRncmVlbjogLTE0MSwgJGJsdWU6IC0xMTQpO1xuICAkdGhpcmQtc3RvcDogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICAkZ3JlZW46IC03NSwgICRibHVlOiAtNDgpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcbiAgfVxuXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICRib3JkZXI6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlcik7XG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgJGZvdXJ0aC1zdG9wOiAgIGdyYXlzY2FsZSgkZm91cnRoLXN0b3ApO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHNlY29uZC1zdG9wOiAgIGdyYXlzY2FsZSgkc2Vjb25kLXN0b3ApO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgICAkdGhpcmQtc3RvcDogICAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRiYXNlLWNvbG9yIDAlLCAkc2Vjb25kLXN0b3AgNTAlLCAkdGhpcmQtc3RvcCA1MCUsICRmb3VydGgtc3RvcCAxMDAlKTtcblxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdztcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkZmlyc3Qtc3RvcC1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTEzLCAkZ3JlZW46IC0xNSwgJGJsdWU6IC0xOCk7XG4gICAgJHNlY29uZC1zdG9wLWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC02NiwgJGdyZWVuOiAtNjIsICRibHVlOiAtNTEpO1xuICAgICR0aGlyZC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtOTMsICRncmVlbjogLTg1LCAkYmx1ZTogLTY2KTtcbiAgICAkZm91cnRoLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTg2LCAkZ3JlZW46IC04MCwgJGJsdWU6IC02Myk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgZ3JheXNjYWxlKCRmaXJzdC1zdG9wLWhvdmVyKTtcbiAgICAgICRzZWNvbmQtc3RvcC1ob3ZlcjogZ3JheXNjYWxlKCRzZWNvbmQtc3RvcC1ob3Zlcik7XG4gICAgICAkdGhpcmQtc3RvcC1ob3ZlcjogIGdyYXlzY2FsZSgkdGhpcmQtc3RvcC1ob3Zlcik7XG4gICAgICAkZm91cnRoLXN0b3AtaG92ZXI6IGdyYXlzY2FsZSgkZm91cnRoLXN0b3AtaG92ZXIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRmaXJzdC1zdG9wLWhvdmVyICAwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2Vjb25kLXN0b3AtaG92ZXIgNTAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlyZC1zdG9wLWhvdmVyICA1MCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZvdXJ0aC1zdG9wLWhvdmVyIDEwMCUpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTExLCAkZ3JlZW46IC0xMTYsICRibHVlOiAtMTIyKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDIwcHggMCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG4vLyBQaWxsIEJ1dHRvblxuQG1peGluIHBpbGwoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyLWJvdHRvbTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246IC0xMSUsICRsaWdodG5lc3M6IC0yNiUpO1xuICAkYm9yZGVyLXNpZGVzOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yMSUsICRsaWdodG5lc3M6IC0yMSUpO1xuICAkYm9yZGVyLXRvcDogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0zMCUsICRsaWdodG5lc3M6IC0xNSUpO1xuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0xJSwgICRsaWdodG5lc3M6ICA3JSk7XG4gICRzdG9wLWdyYWRpZW50OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogIDE0JSwgJGxpZ2h0bmVzczogLTEwJSk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA1LCAkc2F0dXJhdGlvbjogLTE5JSwgJGxpZ2h0bmVzczogLTE1JSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgJGJvcmRlci1zaWRlczogIGdyYXlzY2FsZSgkYm9yZGVyLXNpZGVzKTtcbiAgICAkYm9yZGVyLXRvcDogICAgZ3JheXNjYWxlKCRib3JkZXItdG9wKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgfVxuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItdG9wO1xuICBib3JkZXItY29sb3I6ICRib3JkZXItdG9wICRib3JkZXItc2lkZXMgJGJvcmRlci1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvciwgJHN0b3AtZ3JhZGllbnQpO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpZ2h0bmVzczogLTQuNSUpO1xuICAgICRib3JkZXItYm90dG9tOiAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogIDEzLjUlLCAkbGlnaHRuZXNzOiAtMzIlKTtcbiAgICAkYm9yZGVyLXNpZGVzOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yJSwgICAgJGxpZ2h0bmVzczogLTI3JSk7XG4gICAgJGJvcmRlci10b3A6ICAgICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMTclLCAgICRsaWdodG5lc3M6IC0yMSUpO1xuICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICAgICAgICAgICAkc2F0dXJhdGlvbjogLTElLCAgICAkbGlnaHRuZXNzOiAgMyUpO1xuICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTQlLCAgICAkbGlnaHRuZXNzOiAtMTUuNSUpO1xuICAgICR0ZXh0LXNoYWRvdy1ob3ZlcjogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA1LCAkc2F0dXJhdGlvbjogLTUlLCAgICAkbGlnaHRuZXNzOiAtMjIlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgICAkYm9yZGVyLWJvdHRvbTogICAgICAgZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAgICRib3JkZXItc2lkZXM6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1zaWRlcyk7XG4gICAgICAkYm9yZGVyLXRvcDogICAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItdG9wKTtcbiAgICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1ob3Zlcik7XG4gICAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50LWhvdmVyKTtcbiAgICAgICR0ZXh0LXNoYWRvdy1ob3ZlcjogICBncmF5c2NhbGUoJHRleHQtc2hhZG93LWhvdmVyKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLWhvdmVyLCAkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG5cbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItdG9wO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci10b3AgJGJvcmRlci1zaWRlcyAkYm9yZGVyLWJvdHRvbTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdy1ob3ZlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWhvdmVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA0LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNiwgICRzYXR1cmF0aW9uOiAtMi41JSwgJGxpZ2h0bmVzczogLTMwJSk7XG4gICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDExLCAkc2F0dXJhdGlvbjogIDYlLCAgICRsaWdodG5lc3M6IC0zMSUpO1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA5LCAgJHNhdHVyYXRpb246ICAyJSwgICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xuICAgICR0ZXh0LXNoYWRvdy1hY3RpdmU6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA1LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYWN0aXZlLWNvbG9yOiAgICAgICAgIGdyYXlzY2FsZSgkYWN0aXZlLWNvbG9yKTtcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItYWN0aXZlKTtcbiAgICAgICRib3JkZXItYm90dG9tLWFjdGl2ZTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tLWFjdGl2ZSk7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgICAkdGV4dC1zaGFkb3ctYWN0aXZlOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kOiAkYWN0aXZlLWNvbG9yO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItYWN0aXZlO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWJvdHRvbS1hY3RpdmU7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDZweCAzcHggJGluc2V0LXNoYWRvdy1hY3RpdmU7XG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG4vLyBGbGF0IEJ1dHRvblxuQG1peGluIGZsYXQoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3JkZXI6IDA7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCl7XG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDQlLCAkbGlnaHRuZXNzOiA1JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC00JSwgJGxpZ2h0bmVzczogLTUlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItYWN0aXZlOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItYWN0aXZlKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvci1hY3RpdmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG5cbi8vIEZsZXhpYmxlIGdyaWRcbkBmdW5jdGlvbiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zKSB7XG4gICR3aWR0aDogJGNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgQHJldHVybiBwZXJjZW50YWdlKCR3aWR0aCAvICRjb250YWluZXItd2lkdGgpO1xuXG4gIEB3YXJuIFwiVGhlIGZsZXgtZ3JpZCBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbi8vIEZsZXhpYmxlIGd1dHRlclxuQGZ1bmN0aW9uIGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zLCAkZ3V0dGVyOiAkZmctZ3V0dGVyKSB7XG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJGd1dHRlciAvICRjb250YWluZXItd2lkdGgpO1xuXG4gIEB3YXJuIFwiVGhlIGZsZXgtZ3V0dGVyIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuQGZ1bmN0aW9uIGdyaWQtd2lkdGgoJG4pIHtcbiAgQHJldHVybiAkbiAqICRndy1jb2x1bW4gKyAoJG4gLSAxKSAqICRndy1ndXR0ZXI7XG5cbiAgQHdhcm4gXCJUaGUgZ3JpZC13aWR0aCBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbkBmdW5jdGlvbiBnb2xkZW4tcmF0aW8oJHZhbHVlLCAkaW5jcmVtZW50KSB7XG4gIEByZXR1cm4gbW9kdWxhci1zY2FsZSgkaW5jcmVtZW50LCAkdmFsdWUsICRyYXRpbzogJGdvbGRlbik7XG5cbiAgQHdhcm4gXCJUaGUgZ29sZGVuLXJhdGlvIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2UuIFBsZWFzZSB1c2UgdGhlIG1vZHVsYXItc2NhbGUgZnVuY3Rpb24sIGluc3RlYWQuXCI7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRib3gpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXNpemluZywgJGJveCwgd2Via2l0IG1veiBzcGVjKTtcblxuICBAd2FybiBcIlRoZSBib3gtc2l6aW5nIG1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2UuIFRoaXMgcHJvcGVydHkgY2FuIG5vdyBiZSB1c2VkIHVuLXByZWZpeGVkLlwiO1xufVxuIiwiQGltcG9ydCBcIm1peGlucy9tcVwiO1xuQGltcG9ydCBcIm1peGlucy9wb3NpdGlvblwiO1xuQGltcG9ydCBcIm1peGlucy9ncmFkaWVudFwiO1xuQGltcG9ydCBcIm1peGlucy9iYWNrZ3JvdW5kXCI7XG5AaW1wb3J0IFwibWl4aW5zL2JvcmRlclwiO1xuQGltcG9ydCBcIm1peGlucy9kaXNwbGF5XCI7XG5AaW1wb3J0IFwibWl4aW5zL2hvdmVyXCI7XG5AaW1wb3J0IFwibWl4aW5zL2ltcG9ydGFudFwiO1xuQGltcG9ydCBcIm1peGlucy9pbWFnZVwiO1xuQGltcG9ydCBcIm1peGlucy9yZXNldFwiO1xuQGltcG9ydCBcIm1peGlucy9zaGFkb3dcIjtcbkBpbXBvcnQgXCJtaXhpbnMvc2l6ZVwiO1xuQGltcG9ydCBcIm1peGlucy90ZXh0XCI7XG5AaW1wb3J0IFwibWl4aW5zL3RyYW5zZm9ybVwiO1xuQGltcG9ydCBcIm1peGlucy90cmFuc2l0aW9uXCI7XG5AaW1wb3J0IFwibWl4aW5zL3V0aWxzXCI7XG5AaW1wb3J0IFwibWl4aW5zL2NhbGNcIjsiLCJAbWl4aW4gc2V0LW1xLW1pbigkbWluV2lkdGgpIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbWluV2lkdGgpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2V0LW1xLW1heCgkbWluV2lkdGgpIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbWluV2lkdGgpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufSIsIi8qIHBvc2l0aW9uICovXG5cbi8qXG4gKiBNaXhpbiBzZXR1amFjeSBib3gtc2l6aW5nLlxuICovXG5AbWl4aW4gc2V0LWJveC1zaXppbmcoJHR5cGU6IGJvcmRlci1ib3gpXG57XG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkdHlwZTtcbiAgICAtbW96LWJveC1zaXppbmc6ICR0eXBlO1xuICAgIGJveC1zaXppbmc6ICR0eXBlO1xufVxuXG4vKlxuICogTWl4aW4gc2V0dWphY3kgZmxvYXQuXG4qIFxuKiBAcGFyYW0gZmxvYXQgJGZsb2F0IC0gcHJ6eWptdWplIHdhcnRvc2NpOiBsZWZ0LCByaWdodCBsdWIgbm9uZS5cbiogQHBhcmFtIGNsZWFyICRjbGVhciAtIHByenlqbXVqZSB3YXJ0b3NjaTogbGVmdCwgcmlnaHQsIGJvdGgsIG5vbmUuIERvbXlzbG5pZTogZmFsc2UuXG4qIFxuKiBAcmV0dXJuIFp3cmFjYSBmbG9hdCB6IGNsZWFyZWFtIGx1YiBiZXpcbiAqL1xuQG1peGluIHNldC1mbG9hdCgkZmxvYXQsICRjbGVhcjpmYWxzZSwgJGltcG9ydGFudDpcIlwiKVxue1xuICAgIGZsb2F0OiBpbXBvcnRhbnQtYmFzZSgkZmxvYXQsICRpbXBvcnRhbnQpO1xuICAgIFxuICAgIEBpZiAkY2xlYXJcbiAgICB7XG4gICAgICAgIEBpbmNsdWRlIHNldC1jbGVhcigkY2xlYXIpO1xuICAgIH1cbn1cblxuQG1peGluIHNldC1jbGVhcigkY2xlYXIpXG57XG4gICAgY2xlYXI6ICRjbGVhcjtcbn1cblxuLypcbiAqIE1peGluIHNldHVqYWN5IHBvenljam9ub3dhbmllIGVsZW1lbnR1IHcga29udGVuZXJhY2guXG4qIFxuKiBOcC4gQGluY2x1ZGUgc2V0LXBvc2l0aW9uKDEycHggZmFsc2UgZmFsc2UgMTBweCwgYWJzb2x1dGUpIC0gWndyb2NpIHBvenljam9ub3dhbmllIGVsZW1lbnR1XG4qIHd6Z2xlZGVtIHRvcDoxMnB4IG9yYXogbGVmdDogMTBweC5cbiogXG4qIEBwYXJhbSBhcnJheSAkcG9zaXRpb25zIC0gcHJ6eWptdWplIHRhYmxpY2Ugd2FydG9zY2kgdyBva3Jlc2xvbmVqIGtvbGVqbm9zY2k6ICh0b3AsIHJpZ2h0LCBib3R0b20gLGxlZnQpXG4qIGRsYSBhdHJ5YnV0b3c6IHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdC5cbiogXG4qICAgICAgIFVXQUdBISBKZcW8ZWxpIG5pZSBwb3RyemViYSBwcnpla2F6YW5pYSB3YXJ0b3NjaSBkbGEgYXRyeWJ1dG93IHRha2ljaCBqYWsgbnAuIHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdCB3b3djemFzXG4qICAgICAgIHByemVrYXp1amVteSB3YXJ0b3NjIEZBTFNFLlxuKiBcbiogQHBhcmFtIHBvc2l0aW9uICR0eXBlIC0gcHJ6eWptdWplIHdhcnRvc2MgcG96eWNqbm93b3dhbmlhIGVsZW1lbnR1OiBhYnNvbHV0ZSwgcmVsYXRpdmUsIHN0YXRpYywgZml4ZWQsIGluaGVyaXQgaXRwLlxuKiBAcGFyYW0gc3RyaW5nICRpbXBvcnRhbnQgLSBwcnp5am11amUgamFrbyBzdHJpbmcgZGVrbGFyYWNqxJkgIWltcG9ydGFudC5cbiogXG4qIEByZXR1cm4gWndyYWNhIHBvenljam9ub3dhbmllIGVsZW1lbnR1IHdlZGxlIHByemVrYXphbnljaCBwYXJhbWV0cm93LlxuKiBcbiAqL1xuQG1peGluIHNldC1wb3NpdGlvbigkcG9zaXRpb25zLCAkdHlwZSwgJGltcG9ydGFudDpcIlwiKVxue1xuICAgIEBpZiAkaW1wb3J0YW50ID09IFwiYWxsXCJcbiAgICB7XG4gICAgICAgIHBvc2l0aW9uOiBpbXBvcnRhbnQtYmFzZSgkdHlwZSxcIiFpbXBvcnRhbnRcIik7XG4gICAgfVxuICAgIEBlbHNlXG4gICAge1xuICAgICAgICBwb3NpdGlvbjogJHR5cGU7XG4gICAgfVxuICAgIFxuICAgIFxuICAgICR0b3A6IG50aCgkcG9zaXRpb25zLCAxKTtcbiAgICAkcmlnaHQ6IG50aCgkcG9zaXRpb25zLCAyKTtcbiAgICAkYm90dG9tOiBudGgoJHBvc2l0aW9ucywgMyk7XG4gICAgJGxlZnQ6IG50aCgkcG9zaXRpb25zLCA0KTtcbiAgICBcbiAgICBAaWYgJHRvcCAhPSBmYWxzZVxuICAgIHtcbiAgICAgICAgdG9wOiAkdG9wO1xuICAgICAgICBcbiAgICAgICAgQGlmICRpbXBvcnRhbnQgPT0gXCJ0b3BcIiBvciAkaW1wb3J0YW50ID09IFwiYWxsXCJcbiAgICAgICAge1xuICAgICAgICAgICAgdG9wOiBpbXBvcnRhbnQtYmFzZSgkdG9wLCBcIiFpbXBvcnRhbnRcIik7ICAgXG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgQGlmICRyaWdodCAhPSBmYWxzZVxuICAgIHtcbiAgICAgICAgcmlnaHQ6ICRyaWdodDtcbiAgICAgICAgXG4gICAgICAgIEBpZiAkaW1wb3J0YW50ID09IFwicmlnaHRcIiBvciAkaW1wb3J0YW50ID09IFwiYWxsXCJcbiAgICAgICAge1xuICAgICAgICAgICAgcmlnaHQ6IGltcG9ydGFudC1iYXNlKCRyaWdodCwgXCIhaW1wb3J0YW50XCIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIEBpZiAkYm90dG9tICE9IGZhbHNlXG4gICAge1xuICAgICAgICBib3R0b206ICRib3R0b207XG4gICAgICAgIFxuICAgICAgICBAaWYgJGltcG9ydGFudCA9PSBcImJvdHRvbVwiIG9yICRpbXBvcnRhbnQgPT0gXCJhbGxcIlxuICAgICAgICB7XG4gICAgICAgICAgICBib3R0b206IGltcG9ydGFudC1iYXNlKCRib3R0b20sIFwiIWltcG9ydGFudFwiKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBAaWYgJGxlZnQgIT0gZmFsc2VcbiAgICB7XG4gICAgICAgIGxlZnQ6ICRsZWZ0O1xuICAgICAgICBcbiAgICAgICAgQGlmICRpbXBvcnRhbnQgPT0gXCJsZWZ0XCIgb3IgJGltcG9ydGFudCA9PSBcImFsbFwiXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxlZnQ6IGltcG9ydGFudC1iYXNlKCRsZWZ0LCBcIiFpbXBvcnRhbnRcIik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG59XG5cbi8qXG4gKiBNaXhpbiBzZXR1amFjeSBtYXJnaW4gaSBwYWRkaW5nIGRsYSBlbGVtZW50dS5cbiogXG4qIE5wLlxuKiBcbiogQGluY2x1ZGUgc2V0LW1hcmdpbi1wYWRkaW5nKDNweCA0cHggNXB4IDVweCwgMTJweCAwICAwICAzMnB4LCBcInBhZGRpbmcmbWFyZ2luXCIpXG4qIFBvd3nFvHN6eSBtaXhpbiB6d3JvY2kgbmFtOlxuKiBcbiogcGFkZGluZzogM3B4IDRweCA1cHggNXB4O1xuKiBtYXJnaW46IDEycHggMCAwIDMycHg7XG4qIFxuKiBAcGFyYW0gYXJyYXkgJHBvc2l0aW9uc0ZpcnN0IC0gcHJ6eWptdWplIHRhYmxpY2Ugd2FydG9zY2kgZGxhIHBpZXJ3c3plZ28gYXRyeWJ1dHUgcG9kYW5lZ28gdyAzIHBhcmFtZXRyemUuXG4qIEBwYXJhbSBhcnJheXxmYWxzZSAkcG9zaXRpb25zU2Vjb25kIC0gcHJ6eWptdWplIHRhYmxpY2Ugd2FydG9zY2kgZGxhIGRydWdpZWdvIGF0cnlidXR1IHBvZGFuZWdvIHcgMyBwYXJhbWV0cnplXG4qIGx1YiBmYWxzZSB3IHByenlwYWRrdSBicmFrdWplIGRydWdpZWdvIHBhcmFtZXRydS5cbiogXG4qIEBwYXJhbSBzdHJpbmcgJHR5cGUgLSBwcnp5am11amUgb2tyZXNsb25lIHdhcnRvc2NpIHN0cmluZy5cbiogXG4qIE5wLlxuKiBcbiogJHR5cGU6IFwiYWxsXCIgLSB1c3Rhd2lhIGlkZW50eWN6bmUgd2FydG9zY2kgZGxhIG1hcmdpbiBpIHBhZGRpbmcgcG9kYW5lIHcgMSBwYXJhbWV0cnplLlxuKiAkdHlwZTogXCJtYXJnaW5cIiAtIHVzdGF3aWEgd2FydG9zY2kgZGxhIG1hcmdpbiB6IDEgcGFyYW1ldHJ1XG4qICR0eXBlOiBcInBhZGRpbmdcIiAtIGoudy4gZGxhIHBhZGRpbmcuXG4qICR0eXBlOiBcIm1hcmdpbiZwYWRkaW5nXCIgLSB1c3Rhd2lhIHdhcnRvc2NpIGRsYSBtYXJnaW4geiAxIHBhcmFtZXRydSBpIHBhZGRpbmcgeiAyIHBhcmFtZXRydS5cbiogJHR5cGU6IFwicGFkZGluZyZtYXJnaW5cIiAtIHVzdGF3aWEgd2FydG9zY2kgZGxhIHBhZGRpbmcgeiAxIHBhcmFtZXRydSBpIG1hcmdpbiB6IDIgcGFyYW1ldHJ1LlxuKiBcbiogQHJldHVybiBad3JhY2EgbWFyZ2luLCBwYWRkaW5nLCBtYXJnaW4gaSBwYWRkaW5nIGx1YiBwYWRkaW5nIGkgbWFyZ2luIGRsYSBlbGVtZW50dS5cbiogXG4gKi9cbkBtaXhpbiBzZXQtbWFyZ2luLXBhZGRpbmcoJHBvc2l0aW9uc0ZpcnN0LCAkcG9zaXRpb25zU2Vjb25kOmZhbHNlLCAkdHlwZTpcImFsbFwiLCAkaW1wb3J0YW50OlwiXCIpXG57XG4gICAgQGlmICR0eXBlID09IFwiYWxsXCJcbiAgICB7XG4gICAgICAgIEBpbmNsdWRlIHNldC1iYXNlLW1hcmdpbi1wYWRkaW5nKCRwb3NpdGlvbnNGaXJzdCxcIm1hcmdpblwiLCAkaW1wb3J0YW50KTtcbiAgICAgICAgQGluY2x1ZGUgc2V0LWJhc2UtbWFyZ2luLXBhZGRpbmcoJHBvc2l0aW9uc0ZpcnN0LFwicGFkZGluZ1wiLCAkaW1wb3J0YW50KTtcbiAgICB9XG4gICAgQGVsc2VcbiAgICB7XG4gICAgICAgIEBpZiAkdHlwZSA9PSBcIm1hcmdpblwiXG4gICAgICAgIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNldC1iYXNlLW1hcmdpbi1wYWRkaW5nKCRwb3NpdGlvbnNGaXJzdCxcIm1hcmdpblwiLCAkaW1wb3J0YW50KTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgQGlmICR0eXBlID09IFwicGFkZGluZ1wiXG4gICAgICAgIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNldC1iYXNlLW1hcmdpbi1wYWRkaW5nKCRwb3NpdGlvbnNGaXJzdCxcInBhZGRpbmdcIiwgJGltcG9ydGFudCk7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIEBpZiAkdHlwZSA9PSBcIm1hcmdpbiZwYWRkaW5nXCIgYW5kICRwb3NpdGlvbnNTZWNvbmRcbiAgICAgICAge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2V0LWJhc2UtbWFyZ2luLXBhZGRpbmcoJHBvc2l0aW9uc0ZpcnN0LFwibWFyZ2luXCIsICRpbXBvcnRhbnQpO1xuICAgICAgICAgICAgcGFkZGluZzogaW1wb3J0YW50LWJhc2UoJHBvc2l0aW9uc1NlY29uZCwgJGltcG9ydGFudCk7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIEBpZiAkdHlwZSA9PSBcInBhZGRpbmcmbWFyZ2luXCIgYW5kICRwb3NpdGlvbnNTZWNvbmRcbiAgICAgICAge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2V0LWJhc2UtbWFyZ2luLXBhZGRpbmcoJHBvc2l0aW9uc0ZpcnN0LFwicGFkZGluZ1wiLCAkaW1wb3J0YW50KTtcbiAgICAgICAgICAgIG1hcmdpbjogaW1wb3J0YW50LWJhc2UoJHBvc2l0aW9uc1NlY29uZCwgJGltcG9ydGFudCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qXG4gKiBNaXhpbiBzZXR1amFjeSBwb2RzdGF3b3d5IG1hcmdpbiBsdWIgcGFkZGluZ1xuKiBcbiogQHBhcmFtIGFycmF5ICRwb3NpdGlvbnMgLSBwcnp5am11amUgdGFibGljZSB3YXJ0b3NjaSBkbGEgb2tyZXNsb25lZ28gdyBkcnVnaW0gcGFyYW1ldHJ6ZSBhdHJ5YnV0dS5cbiogQHBhcmFtIHN0cmluZyAkdHlwZSAgICAgLSBwcnp5am11amUgd2FydG9zYyB3IHBvc3RhY2kgc3RyaW5nYTogXCJtYXJnaW5cIiBsdWIgXCJwYWRkaW5nXCJcbiogXG4qIEByZXR1cm4gWndyYWNhIG1hcmdpbiBsdWIgcGFkZGluZyBvIG9rcmVzbG9ueWNoIHdhcnRvc2NpYWNoLlxuICovXG5cbkBtaXhpbiBzZXQtYmFzZS1tYXJnaW4tcGFkZGluZygkcG9zaXRpb25zLCAkdHlwZTpcIm1hcmdpblwiLCAkaW1wb3J0YW50OlwiXCIpXG57XG4gICAgQGlmICR0eXBlID09IFwibWFyZ2luXCJcbiAgICB7XG4gICAgICAgIG1hcmdpbjogaW1wb3J0YW50LWJhc2UoJHBvc2l0aW9ucywgJGltcG9ydGFudCk7XG4gICAgfVxuICAgIFxuICAgIEBpZiAkdHlwZSA9PSBcInBhZGRpbmdcIlxuICAgIHtcbiAgICAgICAgcGFkZGluZzogaW1wb3J0YW50LWJhc2UoJHBvc2l0aW9ucywgJGltcG9ydGFudCk7XG4gICAgfVxufSIsIi8qXG4gKiBNaXhpbiBzZXR1amFjeSBncmFkaWVudCBsaW5lYXJueS5cbipcbiogQHBhcmFtIGNvbG9yICRmcm9tQ29sb3IgLSBwcnp5am11amUgd2FydG9zY2kga29sb3J1IG9kIGt0b3JlZ28gZ3JhZGllbnQgbWEgc2llIHphY3p5bmFjLiBOcC4gIzAwMCBsdWIgcmdiYSgwLCAwLCAwLCAwLjMxKSBpdHAuXG4qIEBwYXJhbSBjb2xvciAkdG9Db2xvciAgIC0gcHJ6eWptdWplIHdhcnRvc2NpIGtvbG9ydSBuYSBrdG9yeW0gZ3JhZGllbnQgbWEgc2llIHpha29uY3p5Yy4gTnAuICMwMDAgbHViIHJnYmEoMCwgMCwgMCwgMC4zMSkgaXRwLlxuKiBAcGFyYW0gYm9vbGVhbiAkY29sb3JTdG9wIC0gcHJ6eWptdWplIHRydWUgbHViIGZhbHNlLCB3IHphbGV6bm9zY2kgY3p5IGRvY2Vsb3dvIHcgZ3JhZGllbmNpZSBiZWR6aWUgbWlhbG9cbiogemFzdG9zb3dhbmllIHByb2NlbnRvd3ljaCB3YXJ0b3NjaSBkbGEgb3NpIGdyYWRpZW50dS5cbipcbiogQHBhcmFtIHBlcmNlbnQgJGNvbG9yU3RvcEZyb20gLSBwcnp5am11amUgcHJvY2VudG93YSB3YXJ0b3NjIGRsYSBjb2xvci1zdG9wIGtvbG9ydSBwb2N6YXRrb3dlZ28uXG4qIEBwYXJhbSBwZXJjZW50ICRjb2xvclN0b3BUbyAgIC0gcHJ6eWptdWplIHByb2NlbnRvd2Egd2FydG9zYyBkbGEgY29sb3Itc3RvcCBrb2xvcnUga29uY293ZWdvLlxuKlxuKiBAcmV0dXJuIGdyYWRpZW50IGxpbmVhcm55IGRsYSB3c3p5c3RraWNoIGtvbXBhdHliaWxueWNoIHByemVnbGFkYXJlay5cbipcbiAqL1xuXG5AbWl4aW4gc2V0LWJhc2UtZ3JhZGllbnQoJGZyb21Db2xvciwgJHRvQ29sb3IsICRjb2xvclN0b3A6ZmFsc2UsICRjb2xvclN0b3BGcm9tOjEwMCUsICRjb2xvclN0b3BUbzoxMDAlLCAkc3VwcG9ydElFOmZhbHNlLCAkY29sb3JEaXJlY3Rpb25TdGFydDpmYWxzZSwgJGNvbG9yRGlyZWN0aW9uU3RvcDogZmFsc2UpXG57XG4gICAgJF9kaXJlY3Rpb246IGJvdHRvbTtcblxuICAgIEBpZiAkY29sb3JEaXJlY3Rpb25TdGFydCA9PSBmYWxzZSB7XG4gICAgICAgICRjb2xvckRpcmVjdGlvblN0YXJ0OiBsZWZ0IHRvcDtcbiAgICB9XG5cbiAgICBAaWYgJGNvbG9yRGlyZWN0aW9uU3RvcCA9PSBmYWxzZSB7XG4gICAgICAgICRjb2xvckRpcmVjdGlvblN0b3A6IGxlZnQgYm90dG9tO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICAkX2RpcmVjdGlvbjogbnRoKCRjb2xvckRpcmVjdGlvblN0b3AsIDEpO1xuICAgIH1cblxuICAgIEBpZiAkY29sb3JTdG9wXG4gICAge1xuICAgICAgICBAaW5jbHVkZSBfc2V0LWJhc2UtZ3JhZGllbnQtY29sb3Itc3RvcCgkZnJvbUNvbG9yLCAkdG9Db2xvciwgJGNvbG9yU3RvcEZyb20sICRjb2xvclN0b3BUbywgJHN1cHBvcnRJRTpmYWxzZSwgJGNvbG9yRGlyZWN0aW9uU3RhcnQ6ZmFsc2UsICRjb2xvckRpcmVjdGlvblN0b3A6ZmFsc2UpO1xuICAgIH1cbiAgICBAZWxzZVxuICAgIHtcbiAgICAgICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAgJGZyb21Db2xvciwgICR0b0NvbG9yKTtcbiAgICAgICAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsICRjb2xvckRpcmVjdGlvblN0YXJ0LCAkY29sb3JEaXJlY3Rpb25TdG9wLCBmcm9tKCRmcm9tQ29sb3IpLCB0bygkdG9Db2xvcikpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIGZyb20oJGZyb21Db2xvciksIHRvKCR0b0NvbG9yKSk7XG4gICAgICAgIGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudCh0b3AsICRmcm9tQ29sb3IsICR0b0NvbG9yKTtcbiAgICAgICAgYmFja2dyb3VuZDogLW1zLWxpbmVhci1ncmFkaWVudCh0b3AsICAkZnJvbUNvbG9yLCAgJHRvQ29sb3IpO1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gI3skX2RpcmVjdGlvbn0sICRmcm9tQ29sb3IsICR0b0NvbG9yKTtcbiAgICAgICAgZmlsdGVyOiAgdW5xdW90ZShcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPSdcIiskZnJvbUNvbG9yK1wiJywgZW5kQ29sb3JzdHI9J1wiKyR0b0NvbG9yK1wiJyxHcmFkaWVudFR5cGU9MClcIik7XG5cblxuICAgIH1cbn1cblxuQG1peGluIF9zZXQtYmFzZS1ncmFkaWVudC1jb2xvci1zdG9wKCRmcm9tQ29sb3IsICR0b0NvbG9yLCAkY29sb3JTdG9wRnJvbSwgJGNvbG9yU3RvcFRvLCAkc3VwcG9ydElFOmZhbHNlLCAkY29sb3JEaXJlY3Rpb25TdGFydDpmYWxzZSwgJGNvbG9yRGlyZWN0aW9uU3RvcDpmYWxzZSlcbntcbiAgICBAaWYgJGNvbG9yRGlyZWN0aW9uU3RhcnQgPT0gZmFsc2Uge1xuICAgICAgICAkY29sb3JEaXJlY3Rpb25TdGFydDogbGVmdCB0b3A7XG4gICAgfVxuXG4gICAgQGlmICRjb2xvckRpcmVjdGlvblN0b3AgPT0gZmFsc2Uge1xuICAgICAgICAkY29sb3JEaXJlY3Rpb25TdG9wOiBsZWZ0IGJvdHRvbTtcbiAgICB9XG5cbiAgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgICRmcm9tQ29sb3IgJGNvbG9yU3RvcEZyb20sICR0b0NvbG9yICRjb2xvclN0b3BUbyk7IC8qIEZGMy42KyAqL1xuICAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsICRjb2xvckRpcmVjdGlvblN0YXJ0LCAkY29sb3JEaXJlY3Rpb25TdG9wLCBjb2xvci1zdG9wKCRjb2xvclN0b3BGcm9tLCRmcm9tQ29sb3IpLCBjb2xvci1zdG9wKCRjb2xvclN0b3BUbywkdG9Db2xvcikpOyAvKiBDaHJvbWUsU2FmYXJpNCsgKi9cbiAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgICRmcm9tQ29sb3IgJGNvbG9yU3RvcEZyb20sICR0b0NvbG9yICRjb2xvclN0b3BUbyk7IC8qIENocm9tZTEwKyxTYWZhcmk1LjErICovXG4gICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCAgJGZyb21Db2xvciAkY29sb3JTdG9wRnJvbSwgJHRvQ29sb3IgJGNvbG9yU3RvcFRvKTsgLyogT3BlcmEgMTEuMTArICovXG4gICBiYWNrZ3JvdW5kOiAtbXMtbGluZWFyLWdyYWRpZW50KHRvcCwgICRmcm9tQ29sb3IgJGNvbG9yU3RvcEZyb20sICR0b0NvbG9yICRjb2xvclN0b3BUbyk7IC8qIElFMTArICovXG4gICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAgJGZyb21Db2xvciAkY29sb3JTdG9wRnJvbSwgJHRvQ29sb3IgJGNvbG9yU3RvcFRvKTsgLyogVzNDICovXG4gICBmaWx0ZXI6IHVucXVvdGUoXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9J1wiKyRmcm9tQ29sb3IrXCInLCBlbmRDb2xvcnN0cj0nXCIrJHRvQ29sb3IrXCInLEdyYWRpZW50VHlwZT0wIClcIik7IC8qIElFNi05ICovXG5cblxufSIsIi8qKlxuKiBNaXhpbiBzZXR1asSFY3kgYmFja2dyb3VuZC5cbipcbiogQHBhcmFtIGNvbG9yICRjb2xvciAtIHByenlqbXVqZSBrb2xvciBucC4gIzAwMCBsdWIgcmdiYSgwLCAwLCAwLCAwLjMxKVxuKiBAcGFyYW0gc3RyaW5nICRwYXRoIC0gcHJ6eWptdWplIHNjaWXFvGvEmSBwcm93YWR6xIVjxIUgZG8gemRqxJljaWEuIE5wLiAuLi9pbWFnZXMvaWNvbi5wbmdcbiogQHBhcmFtIHN0cmluZyAkaW1wb3J0YW50IC0gcHJ6eWptdWplIGpha28gc3RyaW5nIGRla2xhcmFjasSZICFpbXBvcnRhbnQuXG4qIEByZXR1cm4gYmFja2dyb3VuZFxuKi9cblxuQG1peGluIHNldC1iYWNrZ3JvdW5kKCRjb2xvciwgJHBhdGg6ZmFsc2UsICRpbXBvcnRhbnQ6XCJcIilcbntcbiAgICBAaWYgbm90ICRwYXRoXG4gICAge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3IgdW5xdW90ZSgkaW1wb3J0YW50KTtcbiAgICB9XG4gICAgQGVsc2VcbiAgICB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvciB1cmwodW5xdW90ZSgkcGF0aCkpIHVucXVvdGUoJGltcG9ydGFudCk7XG4gICAgfVxufVxuXG5AbWl4aW4gc2V0LWJhY2tncm91bmQtZXh0cmEoJGltYWdlLCAkY29sb3I6ZmFsc2UsICRyZXBlYXQ6ZmFsc2UsICRhdHRhY2htZW50OmZhbHNlLCAkcG9zaXRpb246ZmFsc2UpXG57XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblxuICAgIEBpZiAkaW1hZ2VcbiAgICB7XG4gICAgICAgIEBpbmNsdWRlIHNldC1iYWNrZ3JvdW5kLWltYWdlKCRpbWFnZSk7XG4gICAgfVxuXG4gICAgQGlmICRjb2xvclxuICAgIHtcbiAgICAgICAgQGluY2x1ZGUgc2V0LWJhY2tncm91bmQtY29sb3IoJGNvbG9yKTtcbiAgICB9XG5cbiAgICBAaWYgJHJlcGVhdFxuICAgIHtcbiAgICAgICAgQGluY2x1ZGUgc2V0LWJhY2tncm91bmQtcmVwZWF0KCRyZXBlYXQpO1xuICAgIH1cblxuICAgIEBpZiAkYXR0YWNobWVudFxuICAgIHtcbiAgICAgICAgQGluY2x1ZGUgc2V0LWJhY2tncm91bmQtYXR0YWNobWVudCgkYXR0YWNobWVudCk7XG4gICAgfVxuXG4gICAgQGlmICRwb3NpdGlvblxuICAgIHtcbiAgICAgICAgQGluY2x1ZGUgc2V0LWJhY2tncm91bmQtcG9zaXRpb24oJHBvc2l0aW9uKTtcbiAgICB9XG59XG5cbkBtaXhpbiBzZXQtYmFja2dyb3VuZC1pbWFnZSgkaW1hZ2UpXG57XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKHVucXVvdGUoJGltYWdlKSk7XG59XG5cbkBtaXhpbiBzZXQtYmFja2dyb3VuZC1jb2xvcigkY29sb3IsICRpbXBvcnRhbnQ6XCJcIilcbntcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3IgdW5xdW90ZSgkaW1wb3J0YW50KTtcbn1cblxuQG1peGluIHNldC1iYWNrZ3JvdW5kLXJlcGVhdCgkcmVwZWF0KVxue1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiAkcmVwZWF0O1xufVxuXG5AbWl4aW4gc2V0LWJhY2tncm91bmQtYXR0YWNobWVudCgkYXR0YWNobWVudClcbntcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6ICRhdHRhY2htZW50O1xufVxuXG5AbWl4aW4gc2V0LWJhY2tncm91bmQtcG9zaXRpb24oJHBvc2l0aW9uKVxue1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRwb3NpdGlvbjtcbn1cblxuQG1peGluIHNldC1iYWNrZ3JvdW5kLXNpemUoJHNpemUpXG57XG4gICAgYmFja2dyb3VuZC1zaXplOiAkc2l6ZTtcbn1cblxuQG1peGluIHNldC1iYWNrZ3JvdW5kLWNlbnRlcigkYmdWYWx1ZTowLCAkYmdQbGFjZTogXCJ5XCIpXG57XG4gICAgJHRtcFZhbHVlOiBjYWxjKDUwJSArICN7JGJnVmFsdWV9KTtcblxuICAgIEBpZiAkYmdQbGFjZSA9PSBcInlcIlxuICAgIHtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlICN7JHRtcFZhbHVlfTtcbiAgICB9XG4gICAgQGVsc2VcbiAgICB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246ICN7JHRtcFZhbHVlfSA1MCU7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcbn0iLCIvKipcbiogTWl4aW4gc2V0dWrEhWN5IGJvcmRlci1yYWRpdXNcbiogXG4qIEBwYXJhbSByYWRpdXMgJHJhZGl1cyAtIHByenlqbXVqZSB3YXJ0b3PEhyB3eXJhxbxvbsSFIHcgcHguIE5wOiAzcHguIFxuKiBOaWUgcHJ6ZWthenVqZW15IHdhcnRvc2NpIGRvIG1peGluYSB3IHpuYWthY2ggY3VkenlzbG93aXUuIFR5bGtvIGkgd3lsYWN6bmllIHNhbWEgd2FydG9zYy5cbiogXG4qIEBwYXJhbSBzdHJpbmcgJGltcG9ydGFudCAtIHByenlqbXVqZSBqYWtvIHN0cmluZyBkZWtsYXJhY2rEmSAhaW1wb3J0YW50LlxuKiBcbiogQHJldHVybiBib3JkZXItcmFkaXVzIGRsYSB3c3p5c3RraWNoIGtvbXBhdHliaWxueWNoIHByemVnbGFkYXJlay5cbiogXG4gKi9cbkBtaXhpbiBzZXQtYm9yZGVyLXJhZGl1cygkcmFkaXVzLCAkaW1wb3J0YW50OlwiXCIpXG57XG4gICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiBpbXBvcnRhbnQtYmFzZSgkcmFkaXVzLCAkaW1wb3J0YW50KTtcbiAgICAtbW96LWJvcmRlci1yYWRpdXM6IGltcG9ydGFudC1iYXNlKCRyYWRpdXMsICRpbXBvcnRhbnQpO1xuICAgIC1vLWJvcmRlci1yYWRpdXM6IGltcG9ydGFudC1iYXNlKCRyYWRpdXMsICRpbXBvcnRhbnQpO1xuICAgIC1tcy1ib3JkZXItcmFkaXVzOiBpbXBvcnRhbnQtYmFzZSgkcmFkaXVzLCAkaW1wb3J0YW50KTtcbiAgICBib3JkZXItcmFkaXVzOiBpbXBvcnRhbnQtYmFzZSgkcmFkaXVzLCAkaW1wb3J0YW50KTtcbn1cblxuLypcbiAqIE1peGluIHNldHVqxIVjeSBib3JkZXItcmFkaXVzIHogZG93b2xuZWogc3Ryb255XG4qIFxuKiBAcGFyYW0gcmFkaXVzICRyYWRpdXMgLSBwcnp5am11amUgd2FydG9zxIcgd3lyYcW8b27EhSB3IHB4LiBOcDogM3B4LlxuKiBOaWUgcHJ6ZWthenVqZW15IHdhcnRvc2NpIGRvIG1peGluYSB3IHpuYWthY2ggY3VkenlzbG93aXUuIFR5bGtvIGkgd3lsYWN6bmllIHNhbWEgd2FydG9zYy5cbiogXG4qIEBwYXJhbSBhcnJheSAkc2lkZXMgLSBwcnp5am11amUgdGFibGljxJkgemF3aWVyYWphY2EgamFraWUgc3Ryb255IGVsZW1lbnR1IG1hamEgYnljIG9ib3JkZXJvd2FuZS4gTnAuIHRvcC1sZWZ0IHRvcC1yaWdodCBib3R0b20tbGVmdFxuKiBAcGFyYW0gc3RyaW5nICRpbXBvcnRhbnQgLSBwcnp5am11amUgamFrbyBzdHJpbmcgZGVrbGFyYWNqxJkgIWltcG9ydGFudC5cbiogXG4qIEByZXR1cm4gWndyYWNhIGJvcmRlci1yYWRpdXMgZGxhIG9rcmVzbG9ueWNoIHN0cm9uLCBkbGEgd3N6eXN0a2ljaCBrb21wYXR5YmlsbnljaCBwcnplZ2xhZGFyZWsuXG4qIFxuICovXG5AbWl4aW4gc2V0LWJvcmRlci1yYWRpdXMtZXh0cmEoJHJhZGl1cywgJHNpZGVzLCAkaW1wb3J0YW50OlwiXCIpXG57XG4gICAgQGlmIGxlbmd0aCgkc2lkZXMpID4gMFxuICAgIHtcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJHNpZGVzKVxuICAgICAgICB7XG4gICAgICAgICAgICAkaXRlbTogbnRoKCRzaWRlcywgJGkpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBAaWYgJGl0ZW0gPT0gXCJ0b3AtbGVmdFwiXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xuICAgICAgICAgICAgICAgIC1tb3otYm9yZXItcmFkaXVzLXRvcGxlZnQ6ICRyYWRpdXM7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGl1cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgQGlmICRpdGVtID09IFwidG9wLXJpZ2h0XCJcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAtd2Via2l0LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICAgICAgICAgICAgICAgIC1tb3otYm9yZGVyLXJhZGl1cy10b3ByaWdodDogJHJhZGl1cztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgQGlmICRpdGVtID09IFwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGl1cztcbiAgICAgICAgICAgICAgICAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tbGVmdDogJHJhZGl1cztcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICBAaWYgJGl0ZW0gPT0gXCJib3R0b20tcmlnaHRcIlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG4gICAgICAgICAgICAgICAgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OiAkcmFkaXVzO1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKlxuICogTWl4aW4gc2V0dWphY3kga29tcGxldG55IHplc3RhdyBib3JkZXIgZGxhIGVsZW1lbnR1IGx1YlxuKiAgdHlsa28gYm9yZGVyIGplZG5vc3Ryb25ueS5cbiogXG4qICBAcGFyYW0gYXJyYXkgJHBhcmFtcyAtIHByenlqbXVqZSB0YWJsaWPEmSB3YXJ0b3NjaSBkbGEgZWxlbWVudHUgYm9yZGVyLiBOcC4gMXB4IHNvbGlkLCAxMHB4IGRhc2hlZCBpdHAuXG4qICBAcGFyYW0gYXJyYXkgJHNpZGVzICAtIHByenlqbXVqZSB0YWJsaWPEmSB6YXdpZXJhamFjYSBqYWtpZSBzdHJvbnkgZWxlbWVudHUgbWFqYSBieWMgb2JvcmRlcm93YW5lLlxuKiAgTnAuICh0b3AgbGVmdCBib3R0b20gcmlnaHQpIGx1YiAodG9wIGxlZnQgcmlnaHQpIGl0cC5cbiogIFxuKiAgQHBhcmFtIHN0cmluZyAkaW1wb3J0YW50IC0gcHJ6eWptdWplIGpha28gc3RyaW5nIGRla2xhcmFjasSZICFpbXBvcnRhbnQuXG4qIFxuKiAgQHJldHVybiBrb21wbGV0bmUgb2JvcmRlcm93YW5pZSBlbGVtZW50dSBsdWIgamVkbm9zdHJvbm55IGJvcmRlci5cbiAqL1xuQG1peGluIHNldC1ib3JkZXIoJHBhcmFtcywgJHNpZGVzLCAkaW1wb3J0YW50OlwiXCIpXG57XG4gICAgQGlmIGxlbmd0aCgkc2lkZXMpID4gMFxuICAgIHtcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJHNpZGVzKVxuICAgICAgICB7XG4gICAgICAgICAgICAkaXRlbTogbnRoKCRzaWRlcywgJGkpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBAaWYgJGl0ZW0gPT0gXCJ0b3BcIlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IGltcG9ydGFudC1iYXNlKCRwYXJhbXMsICRpbXBvcnRhbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICBAaWYgJGl0ZW0gPT0gXCJyaWdodFwiXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiBpbXBvcnRhbnQtYmFzZSgkcGFyYW1zLCAkaW1wb3J0YW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgQGlmICRpdGVtID09IFwiYm90dG9tXCJcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiBpbXBvcnRhbnQtYmFzZSgkcGFyYW1zLCAkaW1wb3J0YW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgQGlmICRpdGVtID09IFwibGVmdFwiXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IGltcG9ydGFudC1iYXNlKCRwYXJhbXMsICRpbXBvcnRhbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICBAaWYgJGl0ZW0gPT0gXCJhbGxcIlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogaW1wb3J0YW50LWJhc2UoJHBhcmFtcywgJGltcG9ydGFudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qXG4qIE1peGluIHNldHVqYWN5IHBvemlvbXkgZ3JhZGllbnQgdyBib3JkZXJ6ZVxuKlxuKiBAcGFyYW0gdmFsdWUgJGNvbG9yRnJvbSAgLSBwaWVyd3N6eSBrb2xvciBncmFkaWVudHUgdyBoZXhcbiogQHBhcmFtIHZhbHVlICRjb2xvclRvICAgIC0gZHJ1Z2kga29sb3IgZ3JhZGllbnR1IHcgaGV4XG4qIEBwYXJhbSB2YWx1ZSAkYm9yZGVyU2l6ZSAtIHBhcmFtZXRyeSBib3JkZXJhIGJleiBrb2xvcnUgLCBucC4gMXB4IHNvbGlkXG4qXG4qL1xuQG1peGluIHNldC1ib3JkZXItZ3JhZGllbnQtaG9yaXpvbnRhbCgkY29sb3JGcm9tLCAkY29sb3JUbywgJGJvcmRlclNpemUpIHtcblxuICAgICRib3JkZXJXaWR0aDogbnRoKCRib3JkZXJTaXplLCAxKTtcblxuICAgIGJvcmRlci1sZWZ0OiAjeyRib3JkZXJTaXplKyRjb2xvckZyb219O1xuICAgIGJvcmRlci1yaWdodDogI3skYm9yZGVyU2l6ZSskY29sb3JUb307XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjpiZWZvcmUsXG4gICAgJjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIHNldC1wb3NpdGlvbigjeyctJyskYm9yZGVyV2lkdGh9IGZhbHNlIGZhbHNlICN7Jy0nKyRib3JkZXJXaWR0aH0sICBhYnNvbHV0ZSk7XG4gICAgICAgIEBpbmNsdWRlIHNldC1iYXNlLWdyYWRpZW50KCRjb2xvckZyb20sICRjb2xvclRvLCBmYWxzZSwgMTAwJSwgMTAwJSwgZmFsc2UsIGxlZnQgdG9wLCByaWdodCB0b3ApO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAkYm9yZGVyV2lkdGg7XG4gICAgICAgIHotaW5kZXg6IDA7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIHNldC1wb3NpdGlvbihhdXRvIGZhbHNlICN7Jy0nKyRib3JkZXJXaWR0aH0gI3snLScrJGJvcmRlcldpZHRofSwgIGFic29sdXRlKTtcbiAgICB9XG5cbn1cblxuLypcbiogTWl4aW4gc2V0dWphY3kgcGlvbm93eSBncmFkaWVudCB3IGJvcmRlcnplXG4qXG4qIEBwYXJhbSB2YWx1ZSAkY29sb3JGcm9tICAgLSBwaWVyd3N6eSBrb2xvciBncmFkaWVudHUgdyBoZXhcbiogQHBhcmFtIHZhbHVlICRjb2xvclRvICAgICAtIGRydWdpIGtvbG9yIGdyYWRpZW50dSB3IGhleFxuKiBAcGFyYW0gdmFsdWUgJGJvcmRlclNpemUgIC0gcGFyYW1ldHJ5IGJvcmRlcmEgYmV6IGtvbG9ydSAsIG5wLiAxcHggc29saWRcbiogQHBhcmFtIHZhbHVlICRkaXNhYmxlVXAgICAtIGN6eSB1a3J5YyBnb3JueSBib3JkZXJcbiogQHBhcmFtIHZhbHVlICRkaXNhYmxlRG93biAtIGN6eSB1a3J5YyBkb2xueSBib3JkZXJcbipcbiovXG5AbWl4aW4gc2V0LWJvcmRlci1ncmFkaWVudC12ZXJ0aWNhbCgkY29sb3JGcm9tLCAkY29sb3JUbywgJGJvcmRlclNpemUsICRkaXNhYmxlVXA6IGZhbHNlLCAkZGlzYWJsZURvd246IGZhbHNlKSB7XG5cbiAgICAkYm9yZGVyV2lkdGg6IG50aCgkYm9yZGVyU2l6ZSwgMSk7XG5cbiAgICAmIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAkYm9yZGVyV2lkdGg7XG4gICAgICAgIGJvcmRlci1zdHlsZTogI3tudGgoJGJvcmRlclNpemUsIDIpfTtcbiAgICAgICAgLXdlYmtpdC1ib3JkZXItaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCAwIDAsIDAgMTAwJSwgZnJvbSgkY29sb3JGcm9tKSwgdG8oJGNvbG9yVG8pKSAxIDEwMCU7XG4gICAgICAgIC13ZWJraXQtYm9yZGVyLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgkY29sb3JGcm9tLCAkY29sb3JUbykgMSAxMDAlO1xuICAgICAgICAtbW96LWJvcmRlci1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQoJGNvbG9yRnJvbSwgJGNvbG9yVG8pIDEgMTAwJTtcbiAgICAgICAgLW8tYm9yZGVyLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoJGNvbG9yRnJvbSwgJGNvbG9yVG8pIDEgMTAwJTtcbiAgICAgICAgYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAkY29sb3JGcm9tLCAkY29sb3JUbykgMSAxMDAlO1xuICAgIH1cblxuICAgICY6YmVmb3JlLFxuICAgICY6YWZ0ZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAkYm9yZGVyV2lkdGg7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHotaW5kZXg6IDA7XG4gICAgfVxuXG4gICAgQGlmICRkaXNhYmxlVXAgPT0gdHJ1ZSB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGRpc2FibGVEb3duID09IHRydWUge1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIHNldC1wb3NpdGlvbigjeyctJyskYm9yZGVyV2lkdGh9IGZhbHNlIGZhbHNlIDAsICBhYnNvbHV0ZSk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvckZyb207XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIHNldC1wb3NpdGlvbihmYWxzZSBmYWxzZSAjeyctJyskYm9yZGVyV2lkdGh9IDAsICBhYnNvbHV0ZSk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvclRvO1xuICAgIH1cblxufSIsIi8qIFplc3RhdyBtaXhpbm93IGRsYSBkaXNwbGF5LCBvcGFjaXR5LCBpdHAuICovXG5cbkBtaXhpbiBzZXQtb3BhY2l0eSgkb3BhY2l0eTpcIlwiLCAkaW1wb3J0YW50OlwiXCIpXG57XG5cdG9wYWNpdHk6IGltcG9ydGFudC1iYXNlKCRvcGFjaXR5LCAkaW1wb3J0YW50KTtcblx0LW1vei1vcGFjaXR5OiBpbXBvcnRhbnQtYmFzZSgkb3BhY2l0eSwgJGltcG9ydGFudCk7XG5cdC1tcy1maWx0ZXI6IFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9XCIrJG9wYWNpdHkqMTAwK1wiKVwiO1xufSIsIi8qIGhvdmVycyAqL1xuXG4vKlxuICogTWl4aW4gc2V0dWphY3kgcG9ka3Jlc2xlbmllIGRsYSB3eWJyYW5lZ28gZWxlbWVudHUgbmEgYWtjamUgOmhvdmVyLlxuKlxuKiBAcGFyYW0gc3RyaW5nICRkZWNvcmF0aW9uIC0gcHJ6eWptdWplIHdhcnRvc2NpIHN0cmluZy4gTnAuIFwidW5kZXJsaW5lXCIsIFwib3ZlcmxpbmVcIiwgXCJsaW5lLXRocm91Z2hcIi5cbipcbiogQHJldHVybiBad3JhY2EgemVzdGF3IHphY2hvd2FuaWEgZGVrb3JhY2ppIHRla3N0dSBkbGEgYWtjamkgaG92ZXJhIGkgYmV6IGhvdmVyYS5cbiAqL1xuQG1peGluIHNldC1ob3Zlci10ZXh0LWRlY29yYXRpb24oJGRlY29yYXRpb24pXG57XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgJjpob3ZlclxuICAgIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bnF1b3RlKCRkZWNvcmF0aW9uKTtcbiAgICB9XG59XG5cbkBtaXhpbiBzZXQtaG92ZXItdGV4dC1kZWNvcmF0aW9uLWV4dHJhKCRpbnB1dENsYXNzLCAkZGVjb3JhdGlvbkJlZm9yZUhvdmVyLCAkZGVjb3JhdGlvbkFmdGVySG92ZXIpXG57XG5cdHRleHQtZGVjb3JhdGlvbjogdW5xdW90ZSgkZGVjb3JhdGlvbkJlZm9yZUhvdmVyKTtcblxuXHQkaW5wdXRDbGFzc0hvbGRlcjogdW5xdW90ZSgkaW5wdXRDbGFzcyk7XG5cblx0Jjpob3ZlciAjeyRpbnB1dENsYXNzSG9sZGVyfVxuXHR7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiB1bnF1b3RlKCRkZWNvcmF0aW9uQWZ0ZXJIb3Zlcik7XG5cdH1cbn1cblxuLypcbiAqIE1peGluIHNldHVqYWN5IGtvbG9yIHRsYSBkbGEgd3licmFuZWdvIGVsZW1lbnR1IG5hIGFrY2plIDpob3Zlci5cbipcbiogQHBhcmFtIGNvbG9yICRjb2xvciAtIHByenlqbXVqZSB3YXJ0b3NjaSBrb2xvcnUgZGxhIGJhY2tncm91bmQuIE5wLiAjZmZmIGx1YiByZ2JhKDAsIDAsIDAsIDAuMzEpO1xuKlxuKiBAcmV0dXJuIFp3cmFjYSB6ZXN0YXcgemFjaG93YW5pYSBrb2xvcnUgdGxhIGRsYSBha2NqaSA6aG92ZXIuXG4gKi9cbkBtaXhpbiBzZXQtaG92ZXItYmFja2dyb3VuZC1jb2xvcigkY29sb3IsICRpbXBvcnRhbnQ6XCJcIilcbntcbiAgICAmOmhvdmVyXG4gICAge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbXBvcnRhbnQtYmFzZSh1bnF1b3RlKCRjb2xvciksICRpbXBvcnRhbnQpO1xuICAgIH1cbn1cblxuLyoqXG4gICAgTWl4aW4gc2V0dWphY3kgcHJ6ZXpyb2N6eXN0b3NjIHd5YnJhbmVnbyBlbGVtZW50dSBkbGEgYWtjamkgOmhvdmVyLlxuXG4gICAgQHBhcmFtIG9wYWNpdHkgJG9wYWNpdHkgLSBwcnp5am11amUgd2FydG9zY2kgZHppZXNpZXRuZSBkbGEgb3BhY2l0eS4gTnAuIDAuNywgMC41LCBpdHAuXG5cbiAgICBAcmV0dXJuIFp3cmFjYSB6ZXN0YXcgemFjaG93YW5pYSBwcnplenJvY3p5c3Rvc2NpIGRsYSBha2NqaSA6aG92ZXIuXG4qL1xuQG1peGluIHNldC1ob3Zlci1vcGFjaXR5KCRvcGFjaXR5KVxue1xuICAgICY6aG92ZXJcbiAgICB7XG4gICAgICAgIEBpbmNsdWRlIHNldC1vcGFjaXR5KCRvcGFjaXR5KTtcbiAgICB9XG59XG5cbkBtaXhpbiBzZXQtaG92ZXItdHJhbnNpdGlvbigkdHlwZSwgJHRpbWUpXG57XG4gICAgJjpob3ZlclxuICAgIHtcbiAgICAgICAgQGluY2x1ZGUgc2V0LXRyYW5zaXRpb24oJHR5cGUsICR0aW1lKTtcbiAgICB9XG59IiwiLyogaW1wb3J0YW50ICovXG5cbi8qXG4gKiBGdW5rY2phIHp3cmFjYWphY2Egd2FydG9zYyBkbGEgYXRyeWJ1dHUgc2VsZWt0b3JhIHogZGVrbGFyYWNqYSAhaW1wb3J0YW50IGx1YiBiZXouXG4qIFxuKiBAcGFyYW0gdmFsdWUgJHZhbHVlIC0gcHJ6eWptdWplIHJvem5lIHdhcnRvc2NpLiBOcC4gMXB4IHNvbGlkIGx1YiAoMTJweCAycHggMnB4IDFweCkgaXRwLlxuKiBAcGFyYW0gc3RyaW5nICRpbXBvcnRhbnQgLSBwcnp5am11amUgamFrbyBzdHJpbmcgZGVrbGFyYWNqxJkgIWltcG9ydGFudC5cbiogXG4qIEByZXR1cm4gWndyYWNhIG9kcG93aWVkbmlhIHdhcnRvc2MgZGxhIGF0cnlidXR1IHogZGVrbHJhY2FjamEgIWltcG9ydGFudCBsdWIgbmllLlxuKiBcbiAqL1xuXG5AZnVuY3Rpb24gaW1wb3J0YW50LWJhc2UoJHZhbHVlLCAkaW1wb3J0YW50KVxue1xuICAgIEBpZiAkaW1wb3J0YW50XG4gICAge1xuICAgICAgICBAcmV0dXJuICN7JHZhbHVlKyRpbXBvcnRhbnR9O1xuICAgIH1cbiAgICBAZWxzZVxuICAgIHtcbiAgICAgICAgQHJldHVybiAjeyR2YWx1ZX07XG4gICAgfVxufSIsIlxuQGZ1bmN0aW9uIGdldC1pbWFnZS1kaW1lbnNpb25zKCRpbWFnZUZpbGUsICRvcHRpb24pXG57XG4gICAgJGltZ0ZpbGUgICA6IGZhbHNlO1xuICAgICRpbWdXaWR0aCAgOiBmYWxzZTtcbiAgICAkaW1nSGVpZ2h0IDogZmFsc2U7XG4gICAgJGltZ05hbWUgICA6IGZhbHNlO1xuICAgICRpbWdFeHQgICAgOiBmYWxzZTtcblxuICAgIEBlYWNoICRpZCBpbiAkbWFwLWltYWdlcyB7XG4gICAgICAgIEBpZiBudGgoJGlkLDIpID09IHVucXVvdGUoJGltYWdlRmlsZSlcbiAgICAgICAge1xuICAgICAgICAgICAgJGltZ0ZpbGUgICA6IG50aCgkaWQsMik7XG4gICAgICAgICAgICAkaW1nV2lkdGggIDogbnRoKCRpZCwzKTtcbiAgICAgICAgICAgICRpbWdIZWlnaHQgOiBudGgoJGlkLDQpO1xuICAgICAgICAgICAgJGltZ05hbWUgICA6IG50aCgkaWQsNSk7XG4gICAgICAgICAgICAkaW1nRXh0ICAgIDogbnRoKCRpZCw2KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkb3B0aW9uID09IHdpZHRoXG4gICAge1xuICAgICAgICBAcmV0dXJuICRpbWdXaWR0aDtcbiAgICB9XG5cbiAgICBAaWYgJG9wdGlvbiA9PSBoZWlnaHRcbiAgICB7XG4gICAgICAgIEByZXR1cm4gJGltZ0hlaWdodDtcbiAgICB9XG5cbiAgICBAaWYgJG9wdGlvbiA9PSBuYW1lXG4gICAge1xuICAgICAgICBAcmV0dXJuICRpbWdOYW1lO1xuICAgIH1cblxuICAgIEBpZiAkb3B0aW9uID09IGV4dGVuc2lvblxuICAgIHtcbiAgICAgICAgQHJldHVybiAkaW1nRXh0O1xuICAgIH1cbn1cblxuQGZ1bmN0aW9uIGdldC1pbWFnZS1zaXplKCRpbWdGaWxlKVxue1xuICAgICR0bXBXaWR0aDogZ2V0LWltYWdlLWRpbWVuc2lvbnMoJGltZ0ZpbGUsIHdpZHRoKTtcbiAgICAkdG1wSGVpZ2h0OiBnZXQtaW1hZ2UtZGltZW5zaW9ucygkaW1nRmlsZSwgaGVpZ2h0KTtcblxuICAgICRyZXR1cm5MaXN0OiAoJHRtcFdpZHRoICR0bXBIZWlnaHQpO1xuXG4gICAgQHJldHVybiAkcmV0dXJuTGlzdDtcbn1cblxuQGZ1bmN0aW9uIGdldC1jbGFzcy1uYW1lLWZyb20tZmlsZSgkaW1hZ2UpXG57XG4gICAgJGltZ0ZpbGVDbGFzczogZmFsc2U7XG5cbiAgICBAZWFjaCAkaWQgaW4gJG1hcC1pbWFnZXNcbiAgICB7XG4gICAgICAgIEBpZiBudGgoJGlkLDIpID09IHVucXVvdGUoJGltYWdlKVxuICAgICAgICB7XG4gICAgICAgICAgICAkaW1nRmlsZUNsYXNzICAgOiBudGgoJGlkLDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiAkaW1nRmlsZUNsYXNzO1xufVxuXG5AZnVuY3Rpb24gY2hlY2staW1hZ2UoJGltZ0ZpbGUpXG57XG4gICAgQGVhY2ggJGlkIGluICRtYXAtaW1hZ2VzXG4gICAge1xuICAgICAgICBAaWYgbnRoKCRpZCwyKSA9PSB1bnF1b3RlKCRpbWdGaWxlKVxuICAgICAgICB7XG4gICAgICAgICAgICBAcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2VcbiAgICAgICAge1xuICAgICAgICAgICAgQHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1peGluIHNldC1pbWFnZS1kaW1lbnNpb25zKCRpbWdGaWxlLCAkb3B0aW9uKVxue1xuICAgICR3aWR0aDogZ2V0LWltYWdlLWRpbWVuc2lvbnMoJGltZ0ZpbGUsIHdpZHRoKTtcbiAgICAkaGVpZ2h0OiBnZXQtaW1hZ2UtZGltZW5zaW9ucygkaW1nRmlsZSwgaGVpZ2h0KTtcblxuICAgIEBpZiAkb3B0aW9uID09IGJvdGgge1xuICAgICAgICB3aWR0aDogJHdpZHRoO1xuICAgICAgICBoZWlnaHQ6ICRoZWlnaHQ7IH1cbiAgICBAZWxzZSBpZiAkb3B0aW9uID09IGhlaWdodCB7XG4gICAgICAgIGhlaWdodDogJGhlaWdodDsgfVxuICAgIEBlbHNlIGlmICRvcHRpb24gPT0gd2lkdGgge1xuICAgICAgICB3aWR0aDogJHdpZHRoOyB9XG59IiwiLyogcmVzZXRzICovXG5cbkBtaXhpbiByZXNldC1ib3JkZXIoJGltcG9ydGFudDpmYWxzZSlcbntcbiAgICBib3JkZXI6IGltcG9ydGFudC1iYXNlKDAsICRpbXBvcnRhbnQpO1xufVxuXG5AbWl4aW4gcmVzZXQtbWFyZ2luLXBhZGRpbmcoJHR5cGU6XCJhbGxcIiwkaW1wb3J0YW50OmZhbHNlKVxue1xuICAgIEBpZiAkdHlwZSA9PSBcImFsbFwiXG4gICAge1xuICAgICAgICBtYXJnaW46IGltcG9ydGFudC1iYXNlKDAsICRpbXBvcnRhbnQpO1xuICAgICAgICBwYWRkaW5nOiBpbXBvcnRhbnQtYmFzZSgwLCAkaW1wb3J0YW50KTtcbiAgICB9XG5cbiAgICBAaWYgJHR5cGUgPT0gXCJtYXJnaW5cIlxuICAgIHtcbiAgICAgICAgbWFyZ2luOiBpbXBvcnRhbnQtYmFzZSgwLCAkaW1wb3J0YW50KTtcbiAgICB9XG5cbiAgICBAaWYgJHR5cGUgPT0gXCJwYWRkaW5nXCJcbiAgICB7XG4gICAgICAgIHBhZGRpbmc6IGltcG9ydGFudC1iYXNlKDAsICRpbXBvcnRhbnQpO1xuICAgIH1cbn1cblxuQG1peGluIHJlc2V0LWJveC1zaGFkb3coJGltcG9ydGFudDpmYWxzZSlcbntcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IGltcG9ydGFudC1iYXNlKG5vbmUsICRpbXBvcnRhbnQpOztcbiAgICAtbW96LWJveC1zaGFkb3c6IGltcG9ydGFudC1iYXNlKG5vbmUsICRpbXBvcnRhbnQpOztcbiAgICBib3gtc2hhZG93OiBpbXBvcnRhbnQtYmFzZShub25lLCAkaW1wb3J0YW50KTs7XG59XG5cbkBtaXhpbiByZXNldC1maWx0ZXIoJGltcG9ydGFudDpmYWxzZSlcbntcbiAgICAtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChlbmFibGVkPWZhbHNlKVwiO1xuICAgIGZpbHRlcjogXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoZW5hYmxlZD1mYWxzZSlcIjtcbn1cblxuQG1peGluIHJlc2V0LWJhY2tncm91bmQoJGltcG9ydGFudDpmYWxzZSlcbntcbiAgICBiYWNrZ3JvdW5kOiBpbXBvcnRhbnQtYmFzZShub25lLCAkaW1wb3J0YW50KTtcbn1cblxuQG1peGluIHJlc2V0LWJvcmRlci1yYWRpdXMoKVxue1xuICAgIEBpbmNsdWRlIHNldC1ib3JkZXItcmFkaXVzKDBweCk7XG59XG5cbkBtaXhpbiByZXNldC1ib3gtc2l6aW5nKClcbntcbiAgICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG5cbkBtaXhpbiByZXNldC1wb3NpdGlvbigkaW1wb3J0YW50OmZhbHNlKVxue1xuICAgIHRvcDogaW1wb3J0YW50LWJhc2UoYXV0bywgJGltcG9ydGFudCk7XG4gICAgcmlnaHQ6IGltcG9ydGFudC1iYXNlKGF1dG8sICRpbXBvcnRhbnQpO1xuICAgIGJvdHRvbTogaW1wb3J0YW50LWJhc2UoYXV0bywgJGltcG9ydGFudCk7XG4gICAgbGVmdDogaW1wb3J0YW50LWJhc2UoYXV0bywgJGltcG9ydGFudCk7XG59XG5cbkBtaXhpbiByZXNldC1iYWNrZ3JvdW5kLWltYWdlKCRpbXBvcnRhbnQ6ZmFsc2UsICR3aXRoSG92ZXI6IGZhbHNlKVxue1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGltcG9ydGFudC1iYXNlKG5vbmUsICRpbXBvcnRhbnQpO1xuXG4gICAgQGlmICR3aXRoSG92ZXJcbiAgICB7XG4gICAgICAgICY6aG92ZXJcbiAgICAgICAge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaW1wb3J0YW50LWJhc2Uobm9uZSwgJGltcG9ydGFudCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiByZXNldC1vdXRsaW5lKCkge1xuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMsXG4gICAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICB9XG59IiwiLypcbiAqIE1peGluIHNldHVqYWN5IHBvc3dpYXRlL2NpZW4gZGxhIHRla3N0dS5cbiAqIFxuKiBAcGFyYW0gY29sb3IgJGNvbG9yIC0gcHJ6eWptdWplIHdhcnRvc2NpIGtvbG9ydSwgbnAuICMwMDAgbHViIHJnYmEoMCwgMCwgMCwgMC4zMSlcbiogQHBhcmFtIHB4ICRob3Jpem9udGFsIC0gcHJ6eWptdWplIHdhcnRvc2NpIHcgcHggZGxhIHdsYXNub3NjaSBob3J5em9udGFsbmVqLlxuKiBAcGFyYW0gcHggJHZlcnRpY2FsICAgLSBwcnp5am11amUgd2FydG9zY2kgdyBweCBkbGEgd2xhc25vc2NpIHdlcnR5a2FsbmVqLlxuKiBAcGFyYW0gcHggJGJsdXIgICAgICAgLSBwcnp5am11amUgd2FydG9zY2kgdyBweCBkbGEgd2xhc25vc2NpIHJvem15Y2lhLlxuKiBcbiogQHJldHVybiBad3JhY2EgcG9zd2lhdGUvY2llbiB0ZWtzdHUgZGxhIGtvbXBhdHliaWxueWNoIHByemVnbGFkYXJlay5cbiAqL1xuQG1peGluIHNldC10ZXh0LXNoYWRvdygkY29sb3IsICRob3Jpem9udGFsOjBweCwgJHZlcnRpY2FsOjBweCwgJGJsdXI6MHB4KVxue1xuICAgIC13ZWJraXQtdGV4dC1zaGFkb3c6ICRob3Jpem9udGFsICR2ZXJ0aWNhbCAkYmx1ciAkY29sb3I7XG4gICAgLW1vei10ZXh0LXNoYWRvdzogJGhvcml6b250YWwgJHZlcnRpY2FsICRibHVyICRjb2xvcjtcbiAgICB0ZXh0LXNoYWRvdzogJGhvcml6b250YWwgJHZlcnRpY2FsICRibHVyICRjb2xvcjtcbn1cblxuQG1peGluIHVuc2V0LXRleHQtc2hhZG93KClcbntcbiAgICAtd2Via2l0LXRleHQtc2hhZG93OiBub25lO1xuICAgIC1tb3otdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG5cbi8qXG4gKiBNaXhpbiBzZXR1amFjeSBwb3N3aWF0ZS9jaWVuIGRsYSBrb250ZW5lcm93LlxuICogXG4qIEBwYXJhbSBjb2xvciAkY29sb3IgLSBwcnp5am11amUgd2FydG9zY2kga29sb3J1LCBucC4gIzAwMCBsdWIgcmdiYSgwLCAwLCAwLCAwLjMxKVxuKiBAcGFyYW0gcHggJGhvcml6b250YWwgLSBwcnp5am11amUgd2FydG9zY2kgdyBweCBkbGEgd2xhc25vc2NpIGhvcnl6b250YWxuZWouXG4qIEBwYXJhbSBweCAkdmVydGljYWwgICAtIHByenlqbXVqZSB3YXJ0b3NjaSB3IHB4IGRsYSB3bGFzbm9zY2kgd2VydHlrYWxuZWouXG4qIEBwYXJhbSBweCAkYmx1ciAgICAgICAtIHByenlqbXVqZSB3YXJ0b3NjaSB3IHB4IGRsYSB3bGFzbm9zY2kgcm96bXljaWEuXG4qIEBwYXJhbSBweCAkc3ByZWFkICAgICAtIHByenlqbXVqZSB3YXJ0b3NjaSB3IHB4IGRsYSB3bGFzbm9zY2kgcm96c3plcnplbmlhIGVmZWt0dS5cbiogXG4qIEByZXR1cm4gWndyYWNhIHBvc3dpYXRlL2NpZW4ga29udGVuZXJhIGRsYSBrb21wYXR5YmlsbnljaCBwcnplZ2xhZGFyZWsuXG4gKi9cbkBtaXhpbiBzZXQtYm94LXNoYWRvdygkY29sb3IsICRob3Jpem9udGFsOjBweCwgJHZlcnRpY2FsOjBweCwgJGJsdXI6MHB4LCAkc3ByZWFkOjBweCwgJHR5cGU6XCJcIilcbntcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IHVucXVvdGUoJHR5cGUpICRob3Jpem9udGFsICR2ZXJ0aWNhbCAkYmx1ciAkc3ByZWFkICRjb2xvcjtcbiAgICAtbW96LWJveC1zaGFkb3c6IHVucXVvdGUoJHR5cGUpICRob3Jpem9udGFsICR2ZXJ0aWNhbCAkYmx1ciAkc3ByZWFkICRjb2xvcjtcbiAgICBib3gtc2hhZG93OiB1bnF1b3RlKCR0eXBlKSAkaG9yaXpvbnRhbCAkdmVydGljYWwgJGJsdXIgJHNwcmVhZCAkY29sb3I7XG59XG5cbkBtaXhpbiBzZXQtYm94LXNoYWRvdy1jdXN0b20oJGNvbG9yLCAkcGFyYW1zKVxue1xuXHQtd2Via2l0LWJveC1zaGFkb3c6IHVucXVvdGUoJHBhcmFtcykgJGNvbG9yO1xuXHQtbW96LWJveC1zaGFkb3c6IHVucXVvdGUoJHBhcmFtcykgJGNvbG9yO1xuXHRib3gtc2hhZG93OiB1bnF1b3RlKCRwYXJhbXMpICRjb2xvcjtcbn0iLCIvKlxuICogTWl4aW4gc2V0dWphY3kgc3plcm9rb3NjIGRsYSBkYW5lZ28gZWxlbWVudHUuXG4qXG4qIEBwYXJhbSBweHwlICR3aWR0aCAtIHByenlqbXVqZSB3YXJ0b3NjaSB3IHB4IGx1YiAlIGRsYSB3aWR0aC5cbiogQHBhcmFtIHB4fCUgJG1pbldpZHRoIC0gcHJ6eWptdWplIHdhcnRvc2NpIHcgcHggbHViICUgZGxhIG1pbi13aWR0aC5cbiogQHBhcmFtIHB4fCUgJG1heFdpZHRoIC0gcHJ6eWptdWplIHdhcnRvc2NpIHcgcHggbHViICUgZGxhIG1heC13aWR0aC5cbipcbiogQHJldHVybiBad3JhY2EgemVzdGF3IHN6ZXJva29zY2kgZGxhIG9rcmVzbG9uZWdvIGVsZW1lbnR1LlxuICovXG5AbWl4aW4gc2V0LXdpZHRoKCR3aWR0aCwgJG1pbldpZHRoOmZhbHNlLCAkbWF4V2lkdGg6ZmFsc2UsICRpbXBvcnRhbnQ6XCJcIilcbntcbiAgICBAaWYgJHdpZHRoXG4gICAge1xuICAgICAgICB3aWR0aDogaW1wb3J0YW50X2Jhc2UoJHdpZHRoLCAkaW1wb3J0YW50KTtcbiAgICB9XG5cbiAgICBAaWYgJG1pbldpZHRoXG4gICAge1xuICAgICAgIG1pbi13aWR0aDogaW1wb3J0YW50X2Jhc2UoJG1pbldpZHRoLCAkaW1wb3J0YW50KTtcbiAgICB9XG5cbiAgICBAaWYgJG1heFdpZHRoXG4gICAge1xuICAgICAgICBtYXgtd2lkdGg6IGltcG9ydGFudF9iYXNlKCRtYXhXaWR0aCwgJGltcG9ydGFudCk7XG4gICAgfVxufVxuXG5AbWl4aW4gc2V0LXdpZHRoLWFsbCgkd2lkdGgpXG57XG4gICAgQGluY2x1ZGUgc2V0LXdpZHRoKCR3aWR0aCwgJHdpZHRoLCAkd2lkdGgpO1xufVxuXG4vKlxuICogTWl4aW4gc2V0dWphY3kgd3lzb2tvc2MgZGxhIGRhbmVnbyBlbGVtZW50dS5cbipcbiogQHBhcmFtIHB4fCUgJGhlaWdodCAtIHByenlqbXVqZSB3YXJ0b3NjaSB3IHB4IGx1YiAlIGRsYSBoZWlnaHQuXG4qIEBwYXJhbSBweHwlICRtaW5IZWlnaHQgLSBwcnp5am11amUgd2FydG9zY2kgdyBweCBsdWIgJSBkbGEgbWluLWhlaWdodC5cbiogQHBhcmFtIHB4fCUgJG1heEhlaWdodCAtIHByenlqbXVqZSB3YXJ0b3NjaSB3IHB4IGx1YiAlIGRsYSBtYXgtaGVpZ2h0LlxuKlxuKiBAcmV0dXJuIFp3cmFjYSB6ZXN0YXcgd3lzb2tvc2NpIGRsYSBva3Jlc2xvbmVnbyBlbGVtZW50dS5cbiAqL1xuQG1peGluIHNldC1oZWlnaHQoJGhlaWdodCwgJG1pbkhlaWdodDpmYWxzZSwgJG1heEhlaWdodDpmYWxzZSwgJGltcG9ydGFudDpcIlwiKVxue1xuICAgIEBpZiAkaGVpZ2h0XG4gICAge1xuICAgICAgICBoZWlnaHQ6IGltcG9ydGFudF9iYXNlKCRoZWlnaHQsICRpbXBvcnRhbnQpO1xuICAgIH1cblxuICAgIEBpZiAkbWluSGVpZ2h0XG4gICAge1xuICAgICAgICBtaW4taGVpZ2h0OiBpbXBvcnRhbnRfYmFzZSgkbWluSGVpZ2h0LCAkaW1wb3J0YW50KTtcbiAgICB9XG5cbiAgICBAaWYgJG1heEhlaWdodFxuICAgIHtcbiAgICAgICAgbWF4LWhlaWdodDogaW1wb3J0YW50X2Jhc2UoJG1heEhlaWdodCwgJGltcG9ydGFudCk7XG4gICAgfVxufVxuXG5AbWl4aW4gc2V0LXNpemUoJHdpZHRoOmZhbHNlLCAkaGVpZ2h0OmZhbHNlLCAkbWluV2lkdGg6ZmFsc2UsICRtaW5IZWlnaHQ6ZmFsc2UsICRtYXhXaWR0aDpmYWxzZSwgJG1heEhlaWdodDpmYWxzZSlcbntcbiAgICBAaW5jbHVkZSBzZXQtd2lkdGgoJHdpZHRoLCAkbWluV2lkdGgsICRtYXhXaWR0aCk7XG4gICAgQGluY2x1ZGUgc2V0LWhlaWdodCgkaGVpZ2h0LCAkbWluSGVpZ2h0LCAkbWF4SGVpZ2h0KTtcbn1cblxuQG1peGluIHNldC1zaXplLWV4dHJhKCRzaXplLCAkbWluU2l6ZTpmYWxzZSwgJG1heFNpemU6ZmFsc2UpXG57XG4gICAgQGluY2x1ZGUgc2V0LXdpZHRoKCRzaXplLCAkbWluU2l6ZSwgJG1heFNpemUpO1xuICAgIEBpbmNsdWRlIHNldC1oZWlnaHQoJHNpemUsICRtaW5TaXplLCAkbWF4U2l6ZSk7XG59IiwiLypcbiAqIE1peGluIHNldHVqxIVjeSB6YWNob3dhbmllIFwicHJ6ZXBlbG5pZW5pYSB0ZWtzdHVcIi5cbiogXG4qIEBwYXJhbSB0ZXh0LW92ZXJmbG93ICR0eXBlIC0gcHJ6eWptdWplIHdhcnRvc2NpIHpnb2RuZSBkbGEgYXRyeWJ1dHUgdGV4dC1vdmVyZmxvdzogY2xpcHxlbGxpcHNpc3xzdHJpbmd8aW5pdGlhbHxpbmhlcml0O1xuKiBAcGFyYW0gYm9vbGVhbiAkd2l0aE92ZXJmbG93IC0gcHJ6eWptdWplIHdhcnRvc2NpIGJvb2xlYW4sIGN6eSB0ZWtzdCBtYSBwb3NpYWRhYyBuYWxvem9ueSBhdHJ5YnV0IG92ZXJmbG93LlxuKiBAcGFyYW0gYm9vbGVhbiAkd2l0aE5vV3JhcCAtIHByenlqbXVqZSB3YXJ0b3NjaSBib29sZWFuIGRsYSB6YWNob3dhbmlhIGJpYWx5Y2ggc3BhY2ppLCB0em4gY3p5IHRla3N0IG5pZSBtYSB6b3N0YWMgXCJ6bGFtYW55XCIsIHR5bGtvIHd5c3dpZXRsb255IHcgamVkbmVqIGxpbmlpLlxuKiBcbiogQHJldHVybiBad3JhY2EgemVzdGF3IGF0cnlidXRvdyBkbGEgZGFuZWdvIGVsZW1lbnR1LlxuICovXG5AbWl4aW4gc2V0LXRleHQtb3ZlcmZsb3coJHR5cGUsICR3aXRoT3ZlcmZsb3c6ZmFsc2UsICR3aXRoTm9XcmFwOmZhbHNlLCAkaXNQOmZhbHNlLCAkbWF4SGVpZ2h0OjEwMCUpXG57XG4gICAgdGV4dC1vdmVyZmxvdzogJHR5cGU7XG4gICAgXG4gICAgQGlmICR3aXRoT3ZlcmZsb3cgPT0gdHJ1ZVxuICAgIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG4gICAgXG4gICAgQGlmICR3aXRoTm9XcmFwID09IHRydWUgYW5kICRpc1AgPT0gZmFsc2VcbiAgICB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuXG4gICAgQGlmICRpc1AgPT0gdHJ1ZVxuICAgIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtaGVpZ2h0OiAkbWF4SGVpZ2h0O1xuXG4gICAgICAgICY6YWZ0ZXJcbiAgICAgICAge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiLi4uXCI7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1peGluIHNldC10ZXh0LWhlaWdodCgkaGVpZ2h0KVxue1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJGhlaWdodDtcbn1cblxuXG5AbWl4aW4gc2V0LXVzZXItc2VsZWN0KCR2YWx1ZSlcbntcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiAkdmFsdWU7ICAvLyBDaHJvbWUgYWxsIC8gU2FmYXJpIGFsbFxuICAgIC1tb3otdXNlci1zZWxlY3Q6ICR2YWx1ZTsgICAgIC8vIEZpcmVmb3ggYWxsIFxuICAgIC1tcy11c2VyLXNlbGVjdDogJHZhbHVlOyAgICAgIC8vIElFIDEwK1xuICAgIHVzZXItc2VsZWN0OiAkdmFsdWU7XG59XG4gICAgXG5AbWl4aW4gc2V0LW11bHRpbGluZS1lbGxpcHNpcygkbGluZUhlaWdodDogMS4yZW0sICRsaW5lQ291bnQ6IDEsICRiZ0NvbG9yOiB3aGl0ZSl7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lSGVpZ2h0O1xuICAgIG1heC1oZWlnaHQ6ICRsaW5lSGVpZ2h0ICogJGxpbmVDb3VudDtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICAgIG1hcmdpbi1yaWdodDogLTFlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxZW07XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnLi4uJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgIH1cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHdpZHRoOiAxZW07XG4gICAgICAgIGhlaWdodDogMWVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJGJnQ29sb3I7XG4gICAgfVxufVxuXG5AbWl4aW4gc2V0LXRleHQtc2VwYXJhdG9yLWJhc2UoJGhlaWdodCwgJHBhZGRpbmcpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmc6IDAgJHBhZGRpbmc7XG5cbiAgICAmOmJlZm9yZSxcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgc2V0LXdpZHRoKDEwMDBweCk7XG4gICAgICAgIEBpbmNsdWRlIHNldC1oZWlnaHQoMXB4KTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIHNldC1wb3NpdGlvbigkaGVpZ2h0IGZhbHNlIGZhbHNlIDEwMCUsIGFic29sdXRlKTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRwYWRkaW5nO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBzZXQtcG9zaXRpb24oJGhlaWdodCAxMDAlIGZhbHNlIGZhbHNlLCBhYnNvbHV0ZSk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJHBhZGRpbmc7XG4gICAgfVxufVxuXG5AbWl4aW4gc2V0LXRleHQtc2VwYXJhdG9yKCRoZWlnaHQ6IDEycHgsICRwYWRkaW5nOiAxMHB4LCAkYmFja2dyb3VuZDogI2NiY2JjYiwgJGlzR3JhZGllbnQ6IGZhbHNlKSB7XG4gICAgJiB7XG4gICAgICAgIEBpbmNsdWRlIHNldC10ZXh0LXNlcGFyYXRvci1iYXNlKCRoZWlnaHQsICRwYWRkaW5nKTtcblxuICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAaWYgJGlzR3JhZGllbnQgPT0gZmFsc2Uge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogJGJhY2tncm91bmQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBQbGVhc2UgdXNlIHdpdGggY29uanVjdGlvbiBvZiBqcXVlcnkubGV0dGVyaW5nLm1pbi5qcyBwbHVnaW4gaW4gL2pzIHJvb3QgZGlyZWN0b3J5ICovXG5AbWl4aW4gc2V0LXRleHQtb24tYS1jaXJjbGUoJGFuZ2xlLCAkb2Zmc2V0LCAkbGV0dGVycykge1xuICAgICRhbmdsZVBlckNoYXI6ICRhbmdsZSAvICRsZXR0ZXJzO1xuXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGV0dGVycyB7XG4gICAgICAgIC5jaGFyI3skaX0ge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoI3skYW5nbGUgKyAkYW5nbGVQZXJDaGFyICogJGl9KTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIvKiB0cmFuc2Zvcm1zIG1peGluICovXG5cbkBtaXhpbiBzZXQtdHJhbnNmb3JtKCRvcGVyYXRpb24sICR2YWx1ZSlcbntcblx0LXdlYmtpdC10cmFuc2Zvcm06IHVucXVvdGUoI3skb3BlcmF0aW9uICsgdW5xdW90ZShcIihcIiskdmFsdWUrXCIpXCIpfSk7XG5cdC1tb3otdHJhbnNmb3JtOiB1bnF1b3RlKCN7JG9wZXJhdGlvbiArIHVucXVvdGUoXCIoXCIrJHZhbHVlK1wiKVwiKX0pO1xuXHQtbXMtdHJhbnNmb3JtOiB1bnF1b3RlKCN7JG9wZXJhdGlvbiArIHVucXVvdGUoXCIoXCIrJHZhbHVlK1wiKVwiKX0pO1xuXHQtby10cmFuc2Zvcm06IHVucXVvdGUoI3skb3BlcmF0aW9uICsgdW5xdW90ZShcIihcIiskdmFsdWUrXCIpXCIpfSk7XG5cdHRyYW5zZm9ybTogdW5xdW90ZSgjeyRvcGVyYXRpb24gKyB1bnF1b3RlKFwiKFwiKyR2YWx1ZStcIilcIil9KTtcbn1cblxuQG1peGluIHNldC1iYXNpYy10cmFuc2Zvcm0oJG9wZXJhdG9yKVxue1xuXHQtd2Via2l0LXRyYW5zZm9ybTogdW5xdW90ZSgkb3BlcmF0b3IpO1xuXHQtbW96LXRyYW5zZm9ybTogdW5xdW90ZSgkb3BlcmF0b3IpO1xuXHQtbXMtdHJhbnNmb3JtOiB1bnF1b3RlKCRvcGVyYXRvcik7XG5cdC1vLXRyYW5zZm9ybTogdW5xdW90ZSgkb3BlcmF0b3IpO1xuXHR0cmFuc2Zvcm06IHVucXVvdGUoJG9wZXJhdG9yKTtcbn0iLCJAbWl4aW4gc2V0LXRyYW5zaXRpb24oJHR5cGUsICR0aW1lKVxue1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogI3skdHlwZSArIFwiIFwiICsgJHRpbWV9O1xuICAgIC1tb3otdHJhbnNpdGlvbjogI3skdHlwZSArIFwiIFwiICsgJHRpbWV9O1xuICAgIC1vLXRyYW5zaXRpb246ICN7JHR5cGUgKyBcIiBcIiArICR0aW1lfTtcbiAgICB0cmFuc2l0aW9uOiAjeyR0eXBlICsgXCIgXCIgKyAkdGltZX07XG59XG5cbkBtaXhpbiBzZXQtdHJhbnNpdGlvbi1leHRlbmRlZCgkdHlwZTpcImFsbFwiLCAkdGltZTpcIjAuMnNcIiwgJGFuaW1hdGlvbjpcImVhc2UtaW4tb3V0XCIsICR0aW1lMjpcIjBzXCIpXG57XG4gICAgQGluY2x1ZGUgc2V0LXRyYW5zaXRpb24oJHR5cGUsICN7JHRpbWUgKyBcIiBcIiArICRhbmltYXRpb24gKyBcIiBcIiArICR0aW1lMn0pO1xufVxuXG5AbWl4aW4gc2V0LWJhc2ljLXRyYW5zaXRpb24oKVxue1xuICAgIEBpbmNsdWRlIHNldC10cmFuc2l0aW9uLWV4dGVuZGVkKCk7XG59XG5cbkBtaXhpbiBzZXQtdmFyaWFibGUtdHJhbnNpdGlvbigkbGVuZ3RoKVxue1xuICAgIEBpbmNsdWRlIHNldC10cmFuc2l0aW9uLWV4dGVuZGVkKFwiYWxsXCIsICRsZW5ndGgpO1xufVxuXG5AbWl4aW4gc2V0LXRyYW5zbGF0ZS0zZCgkbW92ZVg6ZmFsc2UsICRtb3ZlWTpmYWxzZSwgJG1vdmVaOmZhbHNlKVxue1xuICAgICRvcGVyYXRvcjpcIlwiO1xuXG4gICAgQGlmICRtb3ZlWCAhPSBmYWxzZVxuICAgIHtcbiAgICAgICAgJHRlbXA6IFwidHJhbnNsYXRlWCgjeyRtb3ZlWH0pXCI7XG4gICAgICAgICRvcGVyYXRvcjojeyRvcGVyYXRvciArIFwiIFwiICsgJHRlbXB9O1xuICAgIH1cblxuICAgIEBpZiAkbW92ZVkgIT0gZmFsc2VcbiAgICB7XG4gICAgICAgICR0ZW1wOiBcInRyYW5zbGF0ZVkoI3skbW92ZVl9KVwiO1xuICAgICAgICAkb3BlcmF0b3I6I3skb3BlcmF0b3IgKyBcIiBcIiArICR0ZW1wfTtcbiAgICB9XG5cbiAgICBAaWYgJG1vdmVaICE9IGZhbHNlXG4gICAge1xuICAgICAgICAkdGVtcDogXCJ0cmFuc2xhdGVaKCN7JG1vdmVafSlcIjtcbiAgICAgICAgJG9wZXJhdG9yOiN7JG9wZXJhdG9yICsgXCIgXCIgKyAkdGVtcH07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgc2V0LWJhc2ljLXRyYW5zZm9ybSgkb3BlcmF0b3IpO1xufVxuXG5AbWl4aW4gc2V0LXJvdGF0aW9uKCRkZWdyZWUpXG57XG4gICAgQGluY2x1ZGUgc2V0LXRyYW5zZm9ybShyb3RhdGUsICN7JGRlZ3JlZSArIFwiZGVnXCJ9KTtcbn0iLCIvKiBVdGlscyAqL1xuXG4vKipcblx0TWl4aW4gc2V0dWphY3kgb3N0eWxvd2FuaWUgcGxhY2Vob2xkZXJhIGRsYSB3eWJyYW5lZ28gc2VsZWt0b3JhLCBkbGEgd3N6eXN0a2ljaCBwcnplZ2xhZGFyZWsuXG5cblx0QHBhcmFtIHN0cmluZyAkdHlwZSAtIHByenlqbXVqZSB3YXJ0b3NjaSBhdHJ5YnV0dSwgbnAuIGNvbG9yLCBiYWNrZ3JvdW5kLCBpdHAuXG5cdEBwYXJhbSBzdHJpbmcgJHZhbHVlIC0gcHJ6eWptdWplIHdhcnRvc2MgYXRyeWJ1dHUsIG5wLiByZWQsIGJsdWUsIHllbGxvdywgaXRwLlxuXG5cdEByZXR1cm4gWndyYWNhIHplc3RhdyBvc3R5bG93YW5pYSBwbGFjZWhvbGRlcmEgd3licmFuZWdvIHNlbGVrdG9yYS5cbiovXG5AbWl4aW4gc2V0LXV0aWxzLXBsYWNlaG9sZGVyKCR0eXBlLCAkdmFsdWUsICRpbXBvcnRhbnQ6XCJcIiwgJHNlbGY6dHJ1ZSlcbntcblx0QGlmICRzZWxmXG5cdHtcblx0XHQmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxuXHRcdCY6LW1vei1wbGFjZWhvbGRlcixcblx0XHQmOjotbW96LXBsYWNlaG9sZGVyLFxuXHRcdCY6LW1zLWlucHV0LXBsYWNlaG9sZGVyXG5cdFx0e1xuXHRcdFx0I3t1bnF1b3RlKCR0eXBlKX06IGltcG9ydGFudC1iYXNlKHVucXVvdGUoJHZhbHVlKSwgJGltcG9ydGFudCk7XG5cdFx0fVxuXHR9XG5cdEBlbHNlXG5cdHtcblx0XHQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXG5cdFx0Oi1tb3otcGxhY2Vob2xkZXIsXG5cdFx0OjotbW96LXBsYWNlaG9sZGVyLFxuXHRcdDotbXMtaW5wdXQtcGxhY2Vob2xkZXJcblx0XHR7XG5cdFx0XHQje3VucXVvdGUoJHR5cGUpfTogaW1wb3J0YW50LWJhc2UodW5xdW90ZSgkdmFsdWUpLCAkaW1wb3J0YW50KTtcblx0XHR9XG5cdH1cbn1cblxuLyoqXG5cdE1peGluIHNldHVqYWN5IG9zdHlsb3dhbmllIHBsYWNlaG9sZGVyYSBkbGEgd3licmFuZWdvIHNlbGVrdG9yYSwgZGxhIHdzenlzdGtpY2ggcHJ6ZWdsYWRhcmVrLlxuXHRucC5cblx0XHRAaW5jbHVkZSB1dGlscy1wbGFjZWhvbGRlciB7XG4gICAgICAgIFx0b3BhY2l0eTogMC45O1xuICAgICAgICBcdGNvbG9yOiBncmF5O1xuICAgICAgXHR9XG4qL1xuQG1peGluIHV0aWxzLXBsYWNlaG9sZGVyXG57XG5cdCY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuXHRcdEBjb250ZW50O1xuXHR9XG5cblx0JjotbW96LXBsYWNlaG9sZGVyIHtcblx0XHRAY29udGVudDtcblx0fVxuXG5cdCY6Oi1tb3otcGxhY2Vob2xkZXIge1xuXHRcdEBjb250ZW50O1xuXHR9XG5cblx0JjotbXMtaW5wdXQtcGxhY2Vob2xkZXJcdHtcblx0XHRAY29udGVudDtcblx0fVxuXG5cdCY6LW8taW5wdXQtcGxhY2Vob2xkZXIge1xuXHRcdEBjb250ZW50O1xuXHR9XG59XG5cblxuLyoqXG5cdE1peGluIGRvIGJ1cmdlcmEgdyBuYXdpZ2FjamkgUldELCB6IGFuaW1hY2rEhSB6YW1pYW55IG5hIFggZG8gamVqIHphbWtuacSZY2lhLlxuXG5cdHNldC1idXJnZXItYmFzZSgpIC0gZ8WCw7N3bnkgbWl4aW4gYnVkdWrEhWN5IGJ1cmdlcmEuXG5cdEBwYXJhbSBzdHJpbmcgJHdpZHRoIC0gc3plcm9rb8WbxIcgYnVyZ2VyYVxuXHRAcGFyYW0gc3RyaW5nICRoZWlnaHQgLSB3eXNva2/Fm8SHIGJ1cmdlcmFcblx0QHBhcmFtIHN0cmluZyAkc2xpY2UgLSB3eXNva2/Fm8SHIC8gZ3J1Ym/Fm8SHIHBvamVkeW5jemVnbyBwbGFzdHJhXG5cdEBwYXJhbSBzdHJpbmcgJGJhY2tncm91bmRDb2xvciAtIGtvbG9yIHTFgmEgcGxhc3Ryw7N3IGJ1cmdlcmFcblxuXHRzZXQtYnVyZ2VyLXNpemUoKSAtIHBvbW9jbmljenkgbWl4aW4gZG8gem1pYW55IHd5bWlhcsOzdyAoZG8gdcW8eWNpYSBucC4gdyBtcSkuXG5cblx0UGFyYW1ldHJ5IGphayB3ecW8ZWosIG5hZHBpc3VqxIVjZSBiYXpvd2Ugd2FydG/Fm2NpLlxuKi9cblxuQG1peGluIHNldC1idXJnZXItYmFzZSgkd2lkdGgsICRoZWlnaHQsICRzbGljZSwgJGJhY2tncm91bmRDb2xvcikge1xuXHRAaW5jbHVkZSBzZXQtc2l6ZSgkd2lkdGgsICRoZWlnaHQpO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRtYXJnaW4tbGVmdDogMTBweDtcblx0bGluZS1oZWlnaHQ6IDEuNXJlbTtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0dHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG5cdHRyYW5zaXRpb246IC41cyBlYXNlLWluLW91dDtcblxuXHRzcGFuIHtcblx0XHRAaW5jbHVkZSBzZXQtc2l6ZSgkd2lkdGgsICRoZWlnaHQpO1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0fVxuXG5cdCY6YmVmb3JlLFxuXHQmOmFmdGVyLFxuXHRzcGFuOmJlZm9yZSxcblx0c3BhbjphZnRlciB7XG5cdFx0QGluY2x1ZGUgc2V0LXBvc2l0aW9uKGZhbHNlIGZhbHNlIGZhbHNlIDAsIGFic29sdXRlKTtcblx0XHRAaW5jbHVkZSBzZXQtc2l6ZSgxMDAlLCAkc2xpY2UpO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0YmFja2dyb3VuZDogJGJhY2tncm91bmRDb2xvcjtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuXHRcdHRyYW5zaXRpb246IC4yNXMgZWFzZS1pbi1vdXQ7XG5cdH1cblxuXG5cdCY6YmVmb3JlIHtcblx0XHR0b3A6IDA7XG5cdH1cblxuXHQmOmFmdGVyLFxuXHRzcGFuOmJlZm9yZSB7XG5cdFx0dG9wOiAjeygkaGVpZ2h0IC0gJHNsaWNlKSAvIDJ9O1xuXHR9XG5cblx0c3BhbjphZnRlciB7XG5cdFx0dG9wOiAjeyRoZWlnaHQgLSAkc2xpY2V9O1xuXHR9XG5cblx0Ji5hY3RpdmUge1xuXHRcdCY6YmVmb3JlIHtcblx0XHRcdHRvcDogI3soJGhlaWdodCAtICRzbGljZSkgLyAyfTtcblx0XHRcdHdpZHRoOiAwO1xuXHRcdFx0bGVmdDogNTAlO1xuXHRcdH1cblxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuXHRcdH1cblxuXHRcdHNwYW46YmVmb3JlIHtcblx0XHRcdHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG5cdFx0fVxuXG5cdFx0c3BhbjphZnRlciB7XG5cdFx0XHR0b3A6ICN7KCRoZWlnaHQgLSAkc2xpY2UpIC8gMn07XG5cdFx0XHR3aWR0aDogMDtcblx0XHRcdGxlZnQ6IDUwJTtcblx0XHR9XG5cdH1cbn1cblxuQG1peGluIHNldC1idXJnZXItc2l6ZSgkd2lkdGgsICRoZWlnaHQsICRzbGljZSwgJGJhY2tncm91bmRDb2xvcikge1xuXHQmLFxuXHRzcGFuIHtcblx0XHRAaW5jbHVkZSBzZXQtc2l6ZSgkd2lkdGgsICRoZWlnaHQpO1xuXHR9XG5cblx0JjpiZWZvcmUsXG5cdCY6YWZ0ZXIsXG5cdHNwYW46YmVmb3JlLFxuXHRzcGFuOmFmdGVyIHtcblx0XHRAaW5jbHVkZSBzZXQtc2l6ZSgxMDAlLCAkc2xpY2UpO1xuXHRcdGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kQ29sb3I7XG5cdH1cblxuXHQmOmFmdGVyLFxuXHRzcGFuOmJlZm9yZSxcblx0Ji5hY3RpdmU6YmVmb3JlLFxuXHQmLmFjdGl2ZSBzcGFuOmFmdGVyIHtcblx0XHR0b3A6ICN7KCRoZWlnaHQgLSAkc2xpY2UpIC8gMn07XG5cdH1cblxuXHRzcGFuOmFmdGVyIHtcblx0XHR0b3A6ICN7JGhlaWdodCAtICRzbGljZX07XG5cdH1cbn1cblxuQG1peGluIHNldC1maXgtc3ByaXRlLXBhZGRpbmcoKSB7XG5cdCYge1xuXHRcdGJhY2tncm91bmQtY2xpcDogY29udGVudC1ib3g7XG5cdFx0YmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xuXHR9XG59IiwiQG1peGluIHNldC1jYWxjKCRwcm9wZXJ0eSwgJGV4cHJlc3Npb24pIFxue1xuICAgICN7JHByb3BlcnR5fTogLW1vei1jYWxjKCN7JGV4cHJlc3Npb259KTtcbiAgICAjeyRwcm9wZXJ0eX06IC13ZWJraXQtY2FsYygjeyRleHByZXNzaW9ufSk7XG4gICAgI3skcHJvcGVydHl9OiBjYWxjKCN7JGV4cHJlc3Npb259KTtcbn0iLCIua2luZ3Vpbl9iYXJcbntcbiAgICAuaGVhZGVyX21pZGRsZVxuICAgIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5tYWluXG57XG4gICAgQGluY2x1ZGUgc2V0LXdpZHRoKDEwMCUpO1xufVxuXG4ud3JhcHBlciB7XG4gICAgbWluLXdpZHRoOiAzMjBweDtcbn0iLCIkYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LC4yNSk7XG4kdHJhbnNpdGlvbi1hbGw6IGFsbCAwLjE4cyBlYXNlLWluIDBzO1xuJHRyYW5zaXRpb24tYm9yZGVyOiBib3JkZXIgMC4xOHMgZWFzZS1pbiAwcztcbiR0cmFuc2l0aW9uLWJnLWNvbG9yOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMThzIGVhc2UtaW4gMHM7XG4kcm9ib3RvQ29uZEZvbnQ6ICdSb2JvdG8gQ29uZGVuc2VkJywgc2Fucy1zZXJpZjtcbiRkZWZhdWx0Rm9udEZhbWlseTogXCJESU5Db21wUHJvLUNvbmRNZWRpdW1cIiwgXCJUcmVidWNoZXQgTVNcIiwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiRkZWZhdWx0VHJhbnNpdGlvbjogYWxsIC4ycyBlYXNlLWluO1xuXG4uY2xvdWQge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGFuaW1hdGlvbi1kdXJhdGlvbjogMTIwcztcblx0YW5pbWF0aW9uLWRpcmVjdGlvbjogcmV2ZXJzZTtcblx0YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG5cdGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzO1xuXHRhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG5cdGFuaW1hdGlvbi1uYW1lOiBGbG9hdCwgRmFkZUZsb2F0O1xufVxuXG4udXBEb3duSGVsaSB7XG5cdGFuaW1hdGlvbi1kdXJhdGlvbjogMTJzO1xuXHRhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcblx0YW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XG5cdGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcblx0YW5pbWF0aW9uLW5hbWU6IHVwRG93bkhlbGlcbn1cblxuLnJvdG9yQW5pbWF0ZSB7XG5cdGFuaW1hdGlvbjogcm90b3JBbmltYXRlIC4ycyBzdGVwcygyKSBpbmZpbml0ZVxufVxuXG4udXBEb3duUGxhbmUge1xuXHRhbmltYXRpb24tZHVyYXRpb246IDEwcztcblx0YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG5cdGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzO1xuXHRhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG5cdGFuaW1hdGlvbi1uYW1lOiB1cERvd25QbGFuZVxufVxuXG5Aa2V5ZnJhbWVzIEZsb2F0IHtcblx0ZnJvbSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpIHRyYW5zbGF0ZVooMCk7XG5cdH1cblx0dG8ge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTUlKSB0cmFuc2xhdGVaKDApO1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgRmFkZUZsb2F0IHtcblx0MCUsXG5cdDEwMCUge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cblx0MSUsXG5cdDk4JSB7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxufVxuXG5Aa2V5ZnJhbWVzIHVwRG93bkhlbGkge1xuXHQyNSUsIDUwJSB7XG5cdFx0QGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZSgzODklLCAxMDAlKSk7XG5cdH1cblx0NzUlIHtcblx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlKDM4OSUsIC0yNTAlKSk7XG5cdH1cblx0OTUlIHtcblx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgwKSk7XG5cdH1cbn1cblxuQGtleWZyYW1lcyByb3RvckFuaW1hdGUge1xuXHQxMDAlIHtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxOTYlIDA7XG5cdH1cbn1cblxuQGtleWZyYW1lcyB1cERvd25QbGFuZSB7XG5cdDUwJXtcblx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlKC0xMzAwJSwgOTIwJSkpO1xuXHR9XG5cdDUxJSB7XG5cdFx0b3BhY2l0eTogMFxuXHR9XG5cdDc1JXtcblx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlKDYwMCUsIC0zMjAlKSk7XG5cdFx0b3BhY2l0eTogMFxuXHR9XG5cdDEwMCUge1xuXHRcdEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUoMCwgMCkpO1xuXHRcdG9wYWNpdHk6IDFcblx0fVxufVxuXG4iLCJAbWl4aW4gYW5pbWF0aW9uLW9wYWNpdHktMXtcblx0Y29udGVudDogXCJcIjtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdG9wYWNpdHk6IDE7XG5cdHRyYW5zaXRpb246ICR0cmFuc2l0aW9uLWFsbDtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1vcGFjaXR5LTB7XG5cdGNvbnRlbnQ6IFwiXCI7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHRvcGFjaXR5OiAwO1xuXHR0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbi1hbGw7XG59IiwiLmNhbXBhaWduLWV4dHJhLWNsb3VkLWJpZy1vcGFjaXR5IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2Rpc3Qvc3ByaXRlL2V4dHJhLnBuZyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMzMxcHg7XG4gIHdpZHRoOiA3NDdweDtcbiAgaGVpZ2h0OiAzMjhweDtcbn1cbi5jYW1wYWlnbi1leHRyYS1jbG91ZC1iaWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvZGlzdC9zcHJpdGUvZXh0cmEucG5nKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IDBweDtcbiAgd2lkdGg6IDc0OXB4O1xuICBoZWlnaHQ6IDMyOHB4O1xufVxuLmNhbXBhaWduLWV4dHJhLWNsb3VkLXNtYWxsLXNoYWRvdyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9kaXN0L3Nwcml0ZS9leHRyYS5wbmcpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzUycHggMHB4O1xuICB3aWR0aDogNDc2cHg7XG4gIGhlaWdodDogMjA5cHg7XG59XG4uY2FtcGFpZ24tZXh0cmEtY2xvdWQtc21hbGwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvZGlzdC9zcHJpdGUvZXh0cmEucG5nKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTc1MnB4IC0yMTJweDtcbiAgd2lkdGg6IDQ3NnB4O1xuICBoZWlnaHQ6IDIwOXB4O1xufVxuLmNhbXBhaWduLWV4dHJhLWhhdCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9kaXN0L3Nwcml0ZS9leHRyYS5wbmcpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODc3cHggLTQyNHB4O1xuICB3aWR0aDogOThweDtcbiAgaGVpZ2h0OiA2OXB4O1xufVxuLmNhbXBhaWduLWV4dHJhLWtleWJvYXJkIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2Rpc3Qvc3ByaXRlL2V4dHJhLnBuZyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03NTJweCAtNDI0cHg7XG4gIHdpZHRoOiAxMjJweDtcbiAgaGVpZ2h0OiAxMDBweDtcbn1cbi5jYW1wYWlnbi1leHRyYS1zaG9wIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2Rpc3Qvc3ByaXRlL2V4dHJhLnBuZyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC05NzhweCAtNDI0cHg7XG4gIHdpZHRoOiA1N3B4O1xuICBoZWlnaHQ6IDYwcHg7XG59XG4iLCJAaW1wb3J0IFwidmFyaWFibGVcIjtcbkBpbXBvcnQgXCJjb3JlXCI7IiwiIiwiLypcbiAqIFx0Q29yZSBPd2wgQ2Fyb3VzZWwgQ1NTIEZpbGVcbiAqXHR2MS4zLjNcbiAqL1xuXG4vKiBjbGVhcmZpeCAqL1xuLm93bC1jYXJvdXNlbCAub3dsLXdyYXBwZXI6YWZ0ZXIge1xuXHRjb250ZW50OiBcIi5cIjtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGNsZWFyOiBib3RoO1xuXHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdGxpbmUtaGVpZ2h0OiAwO1xuXHRoZWlnaHQ6IDA7XG59XG4vKiBkaXNwbGF5IG5vbmUgdW50aWwgaW5pdCAqL1xuLm93bC1jYXJvdXNlbHtcblx0ZGlzcGxheTogbm9uZTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aWR0aDogMTAwJTtcblx0LW1zLXRvdWNoLWFjdGlvbjogcGFuLXk7XG59XG4ub3dsLWNhcm91c2VsIC5vd2wtd3JhcHBlcntcblx0ZGlzcGxheTogbm9uZTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMHB4LCAwcHgsIDBweCk7XG59XG4ub3dsLWNhcm91c2VsIC5vd2wtd3JhcHBlci1vdXRlcntcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cdHdpZHRoOiAxMDAlO1xufVxuLm93bC1jYXJvdXNlbCAub3dsLXdyYXBwZXItb3V0ZXIuYXV0b0hlaWdodHtcblx0LXdlYmtpdC10cmFuc2l0aW9uOiBoZWlnaHQgNTAwbXMgZWFzZS1pbi1vdXQ7XG5cdC1tb3otdHJhbnNpdGlvbjogaGVpZ2h0IDUwMG1zIGVhc2UtaW4tb3V0O1xuXHQtbXMtdHJhbnNpdGlvbjogaGVpZ2h0IDUwMG1zIGVhc2UtaW4tb3V0O1xuXHQtby10cmFuc2l0aW9uOiBoZWlnaHQgNTAwbXMgZWFzZS1pbi1vdXQ7XG5cdHRyYW5zaXRpb246IGhlaWdodCA1MDBtcyBlYXNlLWluLW91dDtcbn1cblxuLm93bC1jYXJvdXNlbCAub3dsLWl0ZW17XG5cdGZsb2F0OiBsZWZ0O1xufVxuLm93bC1jb250cm9scyAub3dsLXBhZ2UsXG4ub3dsLWNvbnRyb2xzIC5vd2wtYnV0dG9ucyBkaXZ7XG5cdGN1cnNvcjogcG9pbnRlcjtcbn1cbi5vd2wtY29udHJvbHMge1xuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuXHQta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC1tcy11c2VyLXNlbGVjdDogbm9uZTtcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbn1cblxuLyogbW91c2UgZ3JhYiBpY29uICovXG4uZ3JhYmJpbmcge1xuXHRjdXJzb3I6dXJsKGdyYWJiaW5nLnBuZykgOCA4LCBtb3ZlO1xufVxuXG4vKiBmaXggKi9cbi5vd2wtY2Fyb3VzZWwgIC5vd2wtd3JhcHBlcixcbi5vd2wtY2Fyb3VzZWwgIC5vd2wtaXRlbXtcblx0LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cdC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTogICAgaGlkZGVuO1xuXHQtbXMtYmFja2ZhY2UtdmlzaWJpbGl0eTogICAgIGhpZGRlbjtcblx0LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTtcblx0LW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTtcblx0LW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDApO1xufVxuXG4ub3dsLXBhZ2luYXRpb24ge1xuXHRwYWRkaW5nLXRvcDogNXB4O1xufVxuXG4ub3dsLXBhZ2Uge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cblx0c3BhbiB7XG5cdFx0QGluY2x1ZGUgc2V0LXNpemUoMTBweCwgMTBweCk7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgI2Y1ZjFlZTtcblx0XHRib3JkZXItcmFkaXVzOiAxMnB4O1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRtYXJnaW46IDAgOHB4O1xuXHRcdHRyYW5zaXRpb246IGFsbCAwLjE4cyBlYXNlLWluIDBzO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiAjZWJlM2RkO1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgI2ViZTNkZDtcblx0XHR9XG5cdH1cblxuXHQmLmFjdGl2ZSB7XG5cdFx0c3BhbiB7XG5cdFx0XHRiYWNrZ3JvdW5kOiAjZWJlM2RkO1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgI2ViZTNkZDtcblx0XHR9XG5cdH1cbn1cblxuLm93bC1idXR0b25zIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLm93bC1jb250cm9scyB7XG5cdHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbiIsIkBpbXBvcnQgXCJ2YXJpYWJsZVwiO1xuQGltcG9ydCBcImNvcmVcIjsiLCIiLCIuc2VjdGlvbl9fdGl0bGUge1xuICAgIGNvbG9yOiAjNDg4MDZmO1xuICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgIHBhZGRpbmc6IDAgMTVweDtcblxuICAgICYtLWRhcmsge1xuICAgICAgICBjb2xvcjogIzdlNmY2NDtcbiAgICB9XG5cbiAgICAmLS1saWdodCB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB0ZXh0LXNoYWRvdzogMXB4IDFweCAxcHggcmdiYSgjMDAwLCAwLjUpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIH1cblxuICAgICYtLXB1Ymxpc2hlciB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA2MHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxNHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4uc2VjdGlvbl9fZGVzYyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAjNWRhNThmO1xuICAgIGZvbnQtc2l6ZTogMjFweDtcbiAgICBtYXJnaW46IDIwcHggYXV0byAyM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxZW07XG5cbiAgICAmLS1kYXJrIHtcbiAgICAgICAgY29sb3I6ICNkMmJlYWY7XG4gICAgfVxufVxuXG4uY2FtcGFpZ25fX2ZvcmVzdC1pbWcge1xuICAgIEBpbmNsdWRlIHNldC1wb3NpdGlvbig2MHB4IGZhbHNlIGZhbHNlIDAsIGFic29sdXRlKTtcbiAgICBAaW5jbHVkZSBzZXQtc2l6ZSgxMzRweCwgMTk1cHgpO1xuXG4gICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1hZ2VzL21hZ2ljX2ZvcmVzdC5wbmdcIikgY2VudGVyIG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAmLS1vZmZlcnMge1xuICAgICAgICBAaW5jbHVkZSBzZXQtcG9zaXRpb24oLTg4cHggMCBmYWxzZSBhdXRvLCBhYnNvbHV0ZSk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKC0xKTtcbiAgICB9XG5cbiAgICAmLS15b3V0dWJlIHtcbiAgICAgICAgQGluY2x1ZGUgc2V0LXBvc2l0aW9uKDYwcHggZmFsc2UgZmFsc2UgMCwgYWJzb2x1dGUpO1xuICAgIH1cbn1cblxuLmNhbXBhaWduX19tYXplLWltZyB7XG4gICAgQGluY2x1ZGUgc2V0LXBvc2l0aW9uKDUwNXB4IDAgZmFsc2UgZmFsc2UsIGFic29sdXRlKTtcbiAgICBAaW5jbHVkZSBzZXQtc2l6ZSgxMzRweCwgMTg4cHgpO1xuXG4gICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1hZ2VzL21hemUucG5nXCIpIGNlbnRlciBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgJi0tb2ZmZXJzIHtcbiAgICAgICAgQGluY2x1ZGUgc2V0LXBvc2l0aW9uKC0yM3B4IGF1dG8gZmFsc2UgMCwgYWJzb2x1dGUpO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgtMSk7XG4gICAgfVxuXG4gICAgJi0teW91dHViZSB7XG4gICAgICAgIEBpbmNsdWRlIHNldC1wb3NpdGlvbig2MHB4IDAgZmFsc2UgZmFsc2UsIGFic29sdXRlKTtcbiAgICB9XG59IiwiQGltcG9ydCBcInZhcmlhYmxlXCI7XG5AaW1wb3J0IFwiY29yZVwiOyIsIiIsIi5jYW1wYWlnbl9fbWFpbiB7XG4gICAgLyogUGVybWFsaW5rIC0gdXNlIHRvIGVkaXQgYW5kIHNoYXJlIHRoaXMgZ3JhZGllbnQ6IGh0dHA6Ly9jb2xvcnppbGxhLmNvbS9ncmFkaWVudC1lZGl0b3IvIzVmYzljNyswLDc2Y2ZhZCs1MSxmMmVlZWIrOTIgKi9cbiAgICBiYWNrZ3JvdW5kOiAjNWZjOWM3O1xuICAgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgIzYxYzljNSAwJSwgIzdlZDFiYyA1MSUsICNmMmVlZWIgNzQlKTtcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICM2MWM5YzUgMCUsICM3ZWQxYmMgNTElLCAjZjJlZWViIDc0JSk7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzYxYzljNSAwJSwgIzdlZDFiYyA1MSUsICNmMmVlZWIgNzQlKTtcbiAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjNWZjOWM3JywgZW5kQ29sb3JzdHI9JyM3ZWQxYmMnLCBHcmFkaWVudFR5cGU9MCk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDA7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGNsZWFyOiBib3RoO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAxMnB4IDAgMDtcblxuICAgICYtdG9wIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlXG4gICAgfVxuXG4gICAgJi13cmFwcGVyIHtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIG1heC13aWR0aDogMTA2NHB4XG4gICAgfVxuXG4gICAgLmNsb3VkIHtcbiAgICAgICAgei1pbmRleDogMVxuICAgIH1cblxuICAgICYtY2xvdWQtcyB7XG4gICAgICAgIHdpZHRoOiAyNSU7XG4gICAgICAgIHJpZ2h0OiAwJTtcbiAgICAgICAgdG9wOiAxJVxuICAgIH1cblxuICAgICYtY2xvdWQtYiB7XG4gICAgICAgIHdpZHRoOiA0NSU7XG4gICAgICAgIGxlZnQ6IDAlO1xuXG4gICAgICAgICYucmlnaHQge1xuICAgICAgICAgICAgbGVmdDogMzglO1xuICAgICAgICAgICAgdG9wOiAxLjUlXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLWluZGllLXRvcCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIG1hcmdpbjogLTUlIGF1dG8gMCBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBibG9ja1xuICAgIH1cblxuICAgICYtaGVsaSwgJi1wbGFuZSwgJi1wbGFuZS1zaGFkb3csICYtcmFkaW9zdGF0aW9uIHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgZGlzcGxheTogYmxvY2tcbiAgICB9XG5cbiAgICAmLXJhZGlvc3RhdGlvbiB7XG4gICAgICAgIHdpZHRoOiAyLjY2JTtcbiAgICAgICAgdG9wOiAyOCU7XG4gICAgICAgIGxlZnQ6IDE4JTtcbiAgICB9XG5cbiAgICAmLWhlbGkge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZy10b3A6IDkzJTtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9oZWxpLnBuZyk7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMCU7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cbiAgICAgICAgJi1yd2Qge1xuICAgICAgICAgICAgd2lkdGg6IDYuNzUlO1xuICAgICAgICAgICAgdG9wOiA4JTtcbiAgICAgICAgICAgIGxlZnQ6IDM0LjglO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1tYWluIHtcbiAgICAgICAgICAgbWF4LXdpZHRoOiA5NnB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi1wbGFuZSB7XG4gICAgICAgIHdpZHRoOiAxMCU7XG4gICAgICAgIHRvcDogMjQlO1xuICAgICAgICByaWdodDogMCU7XG5cbiAgICAgICAgJi1zaGFkb3cge1xuICAgICAgICAgICAgd2lkdGg6IDglO1xuICAgICAgICAgICAgdG9wOiA2OSU7XG4gICAgICAgICAgICByaWdodDogMCU7XG4gICAgICAgIH1cbiAgICB9XG59IiwiQGltcG9ydCBcInZhcmlhYmxlXCI7XG5AaW1wb3J0IFwiY29yZVwiOyIsIiIsIi5jLW5hdm1lbnUge1xuICAgIEBpbmNsdWRlIHNldC1wb3NpdGlvbigxNzBweCAzMHB4IGZhbHNlIGZhbHNlLCBmaXhlZCk7XG4gICAgd2lkdGg6IDUxcHg7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB6LWluZGV4OiAxMTA7XG5cbiAgICBpIHtcbiAgICAgICAgQGluY2x1ZGUgc2V0LXNpemUoNTFweCwgNTFweCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzNlNzE2MTtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQgIzM0NWE0ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE4cyBlYXNlLWluIDBzO1xuXG4gICAgICAgICYubmF2bWVudV9faXRlbSB7XG4gICAgICAgICAgICAmLS10b3Age1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy90b3AtaWNvbi5wbmdcIik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWpvaW4ge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9qb2luLWljb24ucG5nXCIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1vZmZlcnMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9vZmZlcnMtaWNvbi5wbmdcIik7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTBweCAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjYWRlbXkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9hY2FkZW15LWljb24ucG5nXCIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS15b3V0dWJlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvcGxheS1pY29uLnBuZ1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgICBAaW5jbHVkZSBzZXQtaG92ZXItdGV4dC1kZWNvcmF0aW9uKG5vbmUpO1xuICAgICAgICBAaW5jbHVkZSBzZXQtc2l6ZSgzMDBweCwgNTRweCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICAgICAgZm9udC1zaXplOiAwO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1pbiAwcztcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGxlZnQ6IC0yMjJweDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuXG4gICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWE1ZDVlO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogIzQ0NDY0NztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzczNzg3YTtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNwYW4ge1xuICAgICAgICBAaW5jbHVkZSBzZXQtc2l6ZSgyMjRweCwgNTFweCk7XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkcm9ib3RvQ29uZEZvbnQ7XG4gICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICBtYXJnaW46IDFweCAwIDAgLTJweDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxM3B4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA3cHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDUycHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xOHMgZWFzZS1pbiAwcztcbiAgICB9XG59XG5cbmRpdiN0YXRha2FmZWVkYmFjay1jbG91ZCB7XG4gICAgdG9wOiA1MjBweCAhaW1wb3J0YW50O1xufVxuIiwiQGltcG9ydCBcInZhcmlhYmxlXCI7XG5AaW1wb3J0IFwiY29yZVwiOyIsIiIsIi5jYW1wYWlnbl9fcHVibGlzaGVyIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvYmFja2dyb3VuZC9zbGlkZXItYmcucG5nXCIpIHRvcCBjZW50ZXIgbm8tcmVwZWF0O1xuICAgIG1hcmdpbjogLTYlIGF1dG8gMCBhdXRvO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDMyMnB4O1xufVxuXG4uY2FtcGFpZ25fX3B1Ymxpc2hlci1iZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHotaW5kZXg6IDBcbn1cblxuLnB1Ymxpc2hlcl9fd3JhcHBlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctdG9wOiAyMnB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5wdWJsaXNoZXJfX3dyYXBwZXItbG9hZGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMjBweDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IC0yNXB4O1xuICAgIHotaW5kZXg6IDE7XG5cbiAgICBpIHtcbiAgICAgICAgY29sb3I6ICNmYWY5ZjRcbiAgICB9XG59XG5cbi5wdWJsaXNoZXJfX3dyYXBwZXItY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDEwNjRweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogbm9uZVxufVxuXG4ucHVibGlzaGVyX193cmFwcGVyLWNlbnRlciB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgbWF4LXdpZHRoOiA5NTBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5wdWJsaXNoZXJfX25hdmlnYXRpb24ge1xuICAgIEBpbmNsdWRlIHNldC1wb3NpdGlvbihjYWxjKDUwJSAtIDU0cHgpIGZhbHNlIGZhbHNlIGZhbHNlLCBhYnNvbHV0ZSk7XG5cbiAgICB6LWluZGV4OiAyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMThzIGVhc2UtaW4gMHM7XG5cbiAgICBpIHtcbiAgICAgICAgY29sb3I6ICM4MGNiN2Q7XG4gICAgICAgIGZvbnQtc2l6ZTogNDdweDtcbiAgICAgICAgdGV4dC1zaGFkb3c6IC0xcHggLTFweCAxcHggIzU3ODY1YjtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMThzIGVhc2UtaW4gMHM7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGkge1xuICAgICAgICAgICAgY29sb3I6ICM5MGRiOGQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1wcmV2IHtcbiAgICAgICAgbGVmdDogMTBweDtcbiAgICB9XG5cbiAgICAmLS1uZXh0IHtcbiAgICAgICAgcmlnaHQ6IDEwcHg7XG4gICAgfVxufVxuXG4ucHVibGlzaGVyX19uYW1lIHtcbiAgICBAaW5jbHVkZSBzZXQtcG9zaXRpb24oZmFsc2UgZmFsc2UgMCAwLCBhYnNvbHV0ZSk7XG4gICAgQGluY2x1ZGUgc2V0LXNpemUoMTAwJSwgMjJweCk7XG5cbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZDogI2VjZTNkZTtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDI2cHg7XG4gICAgY29sb3I6ICM2NDVhNTI7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMThzIGVhc2UtaW4gMHM7XG59XG5cbi5wdWJsaXNoZXJfX2l0ZW0ge1xuICAgIEBpbmNsdWRlIHNldC1zaXplKDIxMHB4LCAxNjZweCk7XG5cbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwIDAgMTZweCAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyAnO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgICBtYXgtd2lkdGg6IDE3MHB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNDRweDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBtYXJnaW4tdG9wOiAtMjJweDtcbiAgICAgICAgZmlsdGVyOiBncmF5c2NhbGUoMTAwJSk7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE4cyBlYXNlLWluIDBzO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIGZpbHRlcjogZ3JheXNjYWxlKDAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wdWJsaXNoZXJfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICM1ZmE2OTA7XG4gICAgICAgIH1cbiAgICB9XG59IiwiQGltcG9ydCBcInZhcmlhYmxlXCI7XG5AaW1wb3J0IFwiY29yZVwiOyIsIiIsIi5jYW1wYWlnbl9fam9pbiB7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1hZ2VzL2JhY2tncm91bmQvam9pbi10b3AucG5nXCIpIHRvcCBjZW50ZXIgbm8tcmVwZWF0ICNmMmVlZWI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDAgMTVweCAzMHB4IDE1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTRlNGU0O1xufVxuXG4uam9pbl9fYnV0dG9ucyB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgbWF4LXdpZHRoOiA0MzJweDtcblxuICAgICYtc2lnbi5yZWRpcmVjdCB7XG4gICAgICAgIHBhZGRpbmc6IDlweCAyNXB4IDRweCAyNXB4O1xuICAgIH1cblxuICAgIHNwYW4ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAxMHB4IDE1cHggMTBweDtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogI2QyYmVhZjtcbiAgICB9XG59XG5cbi5qb2luX19rZXlib2FyZC1pY29uIHtcbiAgICBtYXJnaW4tdG9wOiAzcHg7XG59XG4iLCJAaW1wb3J0IFwidmFyaWFibGVcIjtcbkBpbXBvcnQgXCJjb3JlXCI7IiwiIiwiLmNhbXBhaWduX19vZmZlcnMge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNmZGZjZmMgMCUsI2YyZWVlYiAyMCUpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZy10b3A6IDUwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDQwcHg7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG5cbiAgICAuY2FtcGFpZ25fX3dyYXBwZXIge1xuICAgICAgICBtYXgtd2lkdGg6IDk4MHB4O1xuICAgIH1cbn1cblxuLmluZGllZGV2ZWxvcGVyX193cmFwcGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMCAxMHB4O1xufVxuXG4ub2ZmZXJzX19zaG9wLWljb24ge1xuICAgIG1hcmdpbi1ib3R0b206IC0xMHB4O1xufVxuXG4ub2ZmZXJzX19jbG91ZCB7XG4gICAgei1pbmRleDogMTtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICYtLWxlZnQge1xuICAgICAgICBsZWZ0OiAtMTQwcHg7XG4gICAgICAgIHRvcDogMTkwcHg7XG5cbiAgICAgICAgJi1zaGFkb3cge1xuICAgICAgICAgICAgbGVmdDogLTE0MHB4O1xuICAgICAgICAgICAgdG9wOiA0MTBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLXJpZ2h0IHtcbiAgICAgICAgcmlnaHQ6IC0xMjBweDtcbiAgICAgICAgdG9wOiAtMjUwcHg7XG5cbiAgICAgICAgJi1zaGFkb3cge1xuICAgICAgICAgICAgcmlnaHQ6IC0xMjBweDtcbiAgICAgICAgICAgIHRvcDogLTMwcHg7XG4gICAgICAgIH1cbiAgICB9XG59IiwiQGltcG9ydCBcInZhcmlhYmxlXCI7XG5AaW1wb3J0IFwiY29yZVwiO1xuQGltcG9ydCBcImZpbHRlcnNcIjtcbkBpbXBvcnQgXCJnYW1lXCI7IiwiJGZpbHRlcnNCb3hDb2xvcjogI2Q4ZDhkODtcbiRmaWx0ZXJzSGlnaGxpZ2h0Q29sb3I6ICM1YzVjNWM7XG4kZmlsdGVyc0ZvbnRTaXplOiAyMHB4OyIsIi5jLWdhbWVzIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgcGFkZGluZzogNjBweCAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiAjZjJlZWViO1xuICAgIFxuICAgIC5jLXNlY3Rpb25fX3dyYXBwZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDM7XG4gICAgfVxuICAgIFxuICAgICZfX3dyYXBwZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGZvbnQtc2l6ZTogMDtcbiAgICAgICAgbWluLWhlaWdodDogMjYwcHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xuICAgIH1cbiAgICBcbiAgICBoMiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBjb2xvcjogIzQ5ODA2ZjtcbiAgICB9XG4gICAgXG4gICAgJl9fYmFja2dyb3VuZC1lbGVtZW50IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cbiAgICBcbiAgICAmX19jbG91ZCB7XG4gICAgICAgICYtLWxlZnQge1xuICAgICAgICAgICAgdG9wOiA3MHB4O1xuICAgICAgICAgICAgbGVmdDogLTEwMHB4XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgICYtLXJpZ2h0IHtcbiAgICAgICAgICAgIGJvdHRvbTogMjAwcHg7XG4gICAgICAgICAgICByaWdodDogLTUwcHhcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgJi1zaGFkb3cge1xuICAgICAgICAgICAgJi0tbGVmdCB7XG4gICAgICAgICAgICAgICAgdG9wOiAzMzBweDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAtMTAwcHhcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgJi0tcmlnaHQge1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMzBweDtcbiAgICAgICAgICAgICAgICByaWdodDogLTUwcHhcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAmX19tYWdpYy1mb3Jlc3Qge1xuICAgICAgICB0b3A6IDIwcHg7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgfVxuICAgIFxuICAgICZfX21hemUge1xuICAgICAgICBib3R0b206IC0xMDBweDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuICAgIFxuICAgICZfX2xvYWRlciB7XG4gICAgICAgIEBpbmNsdWRlIHNldC1wb3NpdGlvbihjYWxjKDUwJSAtIDIwcHgpIGZhbHNlIGZhbHNlIGNhbGMoNTAlIC0gMjVweCksIGFic29sdXRlKTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgZm9udC1zaXplOiA0MHB4O1xuICAgICAgICB6LWluZGV4OiA1O1xuICAgIH1cbn0iLCIuYy1maWx0ZXJzIHtcbiAgICBwYWRkaW5nOiA2cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogJGZpbHRlcnNGb250U2l6ZTtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGZpbHRlcnNCb3hDb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBcbiAgICAmX19pdGVtIHtcbiAgICAgICAgbWFyZ2luOiA2cHggMDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcblxuICAgICAgICBpIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xOHMgZWFzZS1pbiAwcztcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC44O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgICZfX2lucHV0IHtcbiAgICAgICAgcGFkZGluZzogNHB4IDhweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI2cHg7XG4gICAgICAgIGNvbG9yOiAjNWM1YzVjO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkZmlsdGVyc0JveENvbG9yO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgIFxuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMjVweCk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmaWx0ZXJzRm9udFNpemU7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgJl9fZHJvcGRvd24ge1xuICAgICAgICBzZWxlY3Qge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZmlsdGVyc0ZvbnRTaXplO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRkZWZhdWx0Rm9udEZhbWlseTtcbiAgICAgICAgICAgIGNvbG9yOiAkZmlsdGVyc0hpZ2hsaWdodENvbG9yO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgdG9wOiAtMXB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgICZfX2NoZWNrYm94IHtcbiAgICAgICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgICYtY2hlY2sge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICBjb2xvcjogJGZpbHRlcnNIaWdobGlnaHRDb2xvcjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLmZhLWNoZWNrIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAkZGVmYXVsdFRyYW5zaXRpb247XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGlucHV0OmNoZWNrZWQge1xuICAgICAgICAgICAgKyBsYWJlbCAuZmEtY2hlY2sge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiLmMtZ2FtZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAyMjBweDtcbiAgICBtYXJnaW46IDE1cHg7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICB0cmFuc2l0aW9uOiAkZGVmYXVsdFRyYW5zaXRpb247XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjZDdkN2Q3O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIH1cbiAgICBcbiAgICAmX190aXRsZSB7XG4gICAgICAgIHBhZGRpbmc6IDhweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIycHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQ0cHg7XG4gICAgfVxuICAgIFxuICAgICZfX2JvdHRvbSB7XG4gICAgICAgIHBhZGRpbmc6IDhweDtcbiAgICB9XG4gICAgXG4gICAgJl9fcHJpY2Uge1xuICAgICAgICBmb250LXNpemU6IDI4cHg7XG4gICAgICAgIGNvbG9yOiAjZjgzMDEwO1xuICAgICAgICBcbiAgICAgICAgJi13cmFwcGVyIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDVweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgICZfX2Rpc2NvdW50IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIHBhZGRpbmc6IDAgNHB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogNHB4O1xuICAgICAgICBmb250LXNpemU6IDE3cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZDogJGZpbHRlcnNIaWdobGlnaHRDb2xvcjtcblxuICAgICAgICAmLS0wIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgJl9fYnV5IHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICB0cmFuc2l0aW9uOiAkZGVmYXVsdFRyYW5zaXRpb247XG4gICAgICAgIFxuICAgICAgICAmLmMtZ2FtZV9fYnV5LS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDVweCAxOHB4IDA7XG4gICAgICAgIH1cbiAgICB9XG59IiwiQGltcG9ydCBcInZhcmlhYmxlXCI7XG5AaW1wb3J0IFwiY29yZVwiOyIsIiIsIi5jYW1wYWlnbl9fYWNhZGVteSB7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1hZ2VzL2FjYWRlbXktc2hhZG93LXRvcC5wbmdcIikgdG9wIGNlbnRlciBuby1yZXBlYXQsIGxpbmVhci1ncmFkaWVudCgjNWVjOGM5IDAlLCNlNmY5ZjcgMTAwJSk7XG4gICAgcGFkZGluZy10b3A6IDQycHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLmNhbXBhaWduX193cmFwcGVyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBwYWRkaW5nOiAxNXB4O1xuICAgIH1cblxuICAgIC5jbG91ZCB7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxufVxuXG4uYWNhZGVteV9fdGl0bGUge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHRleHQtc2hhZG93OiAxcHggMXB4IDFweCByZ2JhKCMwMDAsIDAuNSk7XG59XG5cbi5wYXJ0bmVyc19fd3JhcHBlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDQwcHg7XG59XG5cbi5wYXJ0bmVyc19fdGl0bGUge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgICB0ZXh0LXNoYWRvdzogMXB4IDFweCAxcHggcmdiYSgjMDAwLCAwLjUpO1xufVxuXG4ucGFydG5lcnNfX2JveCB7XG4gICAgQGluY2x1ZGUgc2V0LXNpemUoMTU0cHgsIDExNXB4KTtcblxuICAgIGJhY2tncm91bmQ6ICNlZWU7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSBhdXRvO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMCA1cHggNXB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNiN2I3Yjc7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMThzIGVhc2UtaW4gMHM7XG4gICAgZmlsdGVyOiBncmF5c2NhbGUoMTAwJSk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgZmlsdGVyOiBncmF5c2NhbGUoMCUpO1xuICAgIH1cbn1cblxuLnlvdXR1YmVfX3dyYXBwZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nLWJvdHRvbTogNjBweDtcbn1cblxuLnlvdXR1YmVfX2JveCB7XG4gICAgQGluY2x1ZGUgc2V0LXNpemUoMjk1cHgsIDE2NHB4KTtcblxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1zaXplOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYTFhMWExO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xOHMgZWFzZS1pbiAwcztcblxuICAgIGlmcmFtZSB7XG4gICAgICAgIEBpbmNsdWRlIHNldC1zaXplKDI5NXB4LCAxNjRweCk7XG5cbiAgICAgICAgYm9yZGVyOm5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgfVxufVxuXG4uYWNhZGVteV9fY2xvdWQge1xuICAgICYtLWxlZnQge1xuICAgICAgICBsZWZ0OiAtMTUwcHg7XG4gICAgICAgIHRvcDogNzBweDtcbiAgICB9XG5cbiAgICAmLS1yaWdodCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHJpZ2h0OiA1MHB4O1xuICAgICAgICB0b3A6IDcwcHg7XG4gICAgfVxuXG4gICAgJi0tcmlnaHQtbWlkIHtcbiAgICAgICAgbGVmdDogY2FsYyg1MCUgLSA4MHB4KTtcbiAgICAgICAgdG9wOiA0MDBweDtcblxuICAgICAgICAmLS15b3V0dWJlIHtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gMjAwcHgpO1xuICAgICAgICAgICAgdG9wOiAyNTBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLXJpZ2h0LWJvdHRvbSB7XG4gICAgICAgIHJpZ2h0OiAtMTMwcHg7XG4gICAgICAgIHRvcDogNzAwcHg7XG5cbiAgICAgICAgJi0teW91dHViZSB7XG4gICAgICAgICAgICBsZWZ0OiAtMjUwcHg7XG4gICAgICAgICAgICB0b3A6IDQwMHB4O1xuICAgICAgICB9XG4gICAgfVxufSIsIkBpbXBvcnQgXCJ2YXJpYWJsZVwiO1xuQGltcG9ydCBcImNvcmVcIjsiLCIiLCIuY2FtcGFpZ25fX2Zvb3RlciB7XG4gICAgcGFkZGluZzogMTBweCAxMHB4IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBjb2xvcjogIzdlNmY2NDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2ViZTNkZDtcbiAgICBib3gtc2hhZG93OiAwIDAgNHB4IHJnYmEoIzAwMCwgMC40KTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5jYW1wYWlnbl9fd3JhcHBlciB7XG4gICAgICAgIG1heC13aWR0aDogOTgwcHg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgICBjb2xvcjogIzdlNmY2NFxuICAgIH1cblxuICAgIHVsIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtbWFyZ2luLXBhZGRpbmcoKTtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgcGFkZGluZzogM3B4IDE0cHggMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICM3ZTZmNjQ7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmZvb3Rlcl9fbGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMjBweCAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmZvb3Rlcl9fcmlnaHQge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwIDAgMjBweCAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlclxufVxuXG4uZm9vdGVyX19rYnAge1xuICAgIEBpbmNsdWRlIHNldC1zaXplKDE3cHgsIDM1cHgpO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tbGVmdDogM3B4O1xuICAgIGZpbHRlcjogZ3JheXNjYWxlKDEwMCUpO1xuICAgIHRyYW5zaXRpb246IGFsbCAuMThzIGVhc2UtaW47XG4gICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1hZ2VzL2ticC5wbmdcIikgMCAwIG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGZpbHRlcjogZ3JheXNjYWxlKDAlKTtcbiAgICB9XG59IiwiQGltcG9ydCBcInZhcmlhYmxlXCI7XG5AaW1wb3J0IFwiY29yZVwiOyIsIiIsIkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aCA6IDQ4MHB4KSB7XG5cdC5zZWN0aW9uX190aXRsZSB7XG5cdFx0Zm9udC1zaXplOiA0MHB4O1xuXHR9XG5cblx0LnNlY3Rpb25fX2Rlc2Mge1xuXHRcdG1hcmdpbjogMjBweCBhdXRvIDhweCBhdXRvO1xuXHR9XG5cblx0LnB1Ymxpc2hlcl9fbmF2aWdhdGlvbiB7XG5cdFx0Ji0tcHJldiB7XG5cdFx0XHRsZWZ0OiA0MHB4O1xuXHRcdH1cblxuXHRcdCYtLW5leHQge1xuXHRcdFx0cmlnaHQ6IDQwcHg7XG5cdFx0fVxuXHR9XG5cblx0LnlvdXR1YmVfX2JveCB7XG5cdFx0QGluY2x1ZGUgc2V0LXNpemUoNDQ1cHgsIDI0N3B4KTtcblxuXHRcdGlmcmFtZSB7XG5cdFx0XHRAaW5jbHVkZSBzZXQtc2l6ZSg0NDVweCwgMjQ3cHgpO1xuXHRcdH1cblx0fVxuXG5cdC5jYW1wYWlnbl9fZm9yZXN0LWltZyB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblxuXHQuY2FtcGFpZ25fX21hemUtaW1nIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG5cdC5vZmZlcnNfX2Nsb3VkIHtcblx0XHR6LWluZGV4OiAxO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aCA6IDY4MHB4KSB7XG5cdC5qb2luX19idXR0b25zIHtcblx0XHRzcGFuIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHR9XG5cdH1cblxuXHQuc2VjdGlvbl9fdGl0bGUge1xuXHRcdHBhZGRpbmc6IDAgMzVweDtcblx0fVxuXG5cdC5jYW1wYWlnbl9fZm9yZXN0LWltZyB7XG5cdFx0QGluY2x1ZGUgc2V0LXNpemUoMjAwcHgsIDI5MXB4KTtcblx0XHR0b3A6IDcwcHg7XG5cblx0XHQmLS1vZmZlcnMge1xuXHRcdFx0dG9wOiAtMTAwcHhcblx0XHR9XG5cdH1cblxuXHQuY2FtcGFpZ25fX21hemUtaW1nIHtcblx0XHRAaW5jbHVkZSBzZXQtc2l6ZSgyMDBweCwgMjgwcHgpO1xuXHRcdHRvcDogMzcwcHg7XG5cblx0XHQmLS1vZmZlcnMge1xuXHRcdFx0dG9wOiAyMHB4O1xuXHRcdH1cblxuXHRcdCYtLXlvdXR1YmUge1xuXHRcdFx0dG9wOiA3MHB4XG5cdFx0fVxuXHR9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aCA6IDc2OHB4KSB7XG5cdC5wdWJsaXNoZXJfX3dyYXBwZXItY2VudGVyIHtcblx0XHRtYXgtd2lkdGg6IDY0MHB4O1xuXHR9XG5cblx0LnlvdXR1YmVfX2JveCB7XG5cdFx0QGluY2x1ZGUgc2V0LXNpemUoNzM0cHgsIDQxM3B4KTtcblxuXHRcdGlmcmFtZSB7XG5cdFx0XHRAaW5jbHVkZSBzZXQtc2l6ZSg3MzRweCwgNDEzcHgpO1xuXHRcdH1cblx0fVxuXG5cdC5jYW1wYWlnbl9fbWF6ZS1pbWcge1xuXHRcdCYtLW9mZmVycyB7XG5cdFx0XHR0b3A6IDIzMHB4O1xuXHRcdH1cblxuXHRcdCYtLXlvdXR1YmUge1xuXHRcdFx0dG9wOiA3MHB4XG5cdFx0fVxuXHR9XG5cblx0Lm93bC1jb250cm9scyB7XG5cdFx0dmlzaWJpbGl0eTogdmlzaWJsZTtcblx0fVxuXG5cdC5jIHtcblx0XHQmLWZpbHRlcnMge1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblxuXHRcdFx0Jl9faXRlbSB7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0bWFyZ2luOiAwIDEycHggMCAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGggOiA5OTJweCkge1xuXHQuYyB7XG5cdFx0Ji1nYW1lcyB7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogMTEwcHg7XG5cblx0XHRcdCZfX3dyYXBwZXIge1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYtZ2FtZSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuXHRcdFx0JjpudGgtY2hpbGQoNG4gLSAyKSB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAxcHg7XG5cdFx0XHR9XG5cblx0XHRcdCY6bnRoLWNoaWxkKDRuICsgMSkge1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LmluZGllZGV2ZWxvcGVyX193cmFwcGVyIHtcblx0XHRwYWRkaW5nOiAwO1xuXHR9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMDE0cHgpe1xuXHQucHVibGlzaGVyX19pdGVtIHtcblx0XHRtYXJnaW4tbGVmdDogMTBweDtcblx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XG5cdH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoIDogMTAxNXB4KSB7XG5cdC5jYW1wYWlnbl9fcHVibGlzaGVyIHtcblx0XHRtYXJnaW46IC01JSBhdXRvIDAgYXV0bztcblx0fVxuXG5cdC5wdWJsaXNoZXJfX25hdmlnYXRpb24ge1xuXHRcdCYtLXByZXYge1xuXHRcdFx0bGVmdDogMjBweDtcblx0XHR9XG5cblx0XHQmLS1uZXh0IHtcblx0XHRcdHJpZ2h0OiAyMHB4O1xuXHRcdH1cblx0fVxuXG5cdC5wdWJsaXNoZXJfX3dyYXBwZXItY2VudGVyIHtcblx0XHRtYXgtd2lkdGg6IDk1MHB4O1xuXHR9XG5cblx0LmFjYWRlbXlfX2Nsb3VkIHtcblx0XHQmLS1yaWdodCB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cdH1cblxuXHQuY2FtcGFpZ25fX2ZvcmVzdC1pbWcge1xuXHRcdEBpbmNsdWRlIHNldC1zaXplKDMwNHB4LCA0NDJweCk7XG5cdFx0dG9wOiAxNzBweDtcblxuXHRcdCYtLW9mZmVycyB7XG5cdFx0XHR0b3A6IC0xNTNweDtcblx0XHR9XG5cdH1cblxuXHQuY2FtcGFpZ25fX21hemUtaW1nIHtcblx0XHRAaW5jbHVkZSBzZXQtc2l6ZSgzMTJweCwgNDM3cHgpO1xuXHRcdHRvcDogNDcwcHg7XG5cblx0XHQmLS1vZmZlcnMge1xuXHRcdFx0dG9wOiAyMzBweDtcblx0XHR9XG5cdFx0XG5cdFx0Ji0teW91dHViZSB7XG5cdFx0XHR0b3A6IDE3MHB4O1xuXHRcdH1cblx0fVxuXG5cdC5vZmZlcnNfX2Nsb3VkIHtcblx0XHQmLS1sZWZ0IHtcblx0XHRcdGxlZnQ6IC01MHB4O1xuXHRcdFx0dG9wOiAxOTBweDtcblxuXHRcdFx0Ji1zaGFkb3cge1xuXHRcdFx0XHRsZWZ0OiAtNTBweDtcblx0XHRcdFx0dG9wOiA0MTBweDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLS1yaWdodCB7XG5cdFx0XHRyaWdodDogLTE1MHB4O1xuXHRcdFx0dG9wOiAtMjUwcHg7XG5cblx0XHRcdCYtc2hhZG93IHtcblx0XHRcdFx0cmlnaHQ6IC0xNTBweDtcblx0XHRcdFx0dG9wOiAtMzBweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoIDogMTIwMHB4KSB7XG5cdC5wdWJsaXNoZXJfX25hdmlnYXRpb24ge1xuXHRcdCYtLXByZXYge1xuXHRcdFx0bGVmdDogMDtcblx0XHR9XG5cblx0XHQmLS1uZXh0IHtcblx0XHRcdHJpZ2h0OiAwO1xuXHRcdH1cblx0fVxuXG5cdC5mb290ZXJfX2xlZnQge1xuXHRcdHdpZHRoOiA2MCU7XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0fVxuXG5cdC5mb290ZXJfX3JpZ2h0IHtcblx0XHR3aWR0aDogNDAlO1xuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdHBhZGRpbmctdG9wOiAxMHB4O1xuXHR9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aCA6IDEzMDBweCkge1xuXHQuYy1uYXZtZW51IHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxufSJdLCJtYXBwaW5ncyI6IjtBQ0FBLE9BQU8sQ0FBQyxrRkFBSTtBR0FaLGtEQUFrRDtBQUtsRCxrQkFBa0I7QWlGTGxCLGNBQWM7QUFFZDs7R0FFRztBQVFIOzs7Ozs7O0dBT0c7QUFnQkg7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBNERIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQkc7QUFrQ0g7Ozs7Ozs7R0FPRztBQ3BMSDs7Ozs7Ozs7Ozs7OztHQWFHO0FDYkg7Ozs7Ozs7RUFPRTtBQ1BGOzs7Ozs7Ozs7O0dBVUc7QUFVSDs7Ozs7Ozs7Ozs7R0FXRztBQXdDSDs7Ozs7Ozs7Ozs7R0FXRztBQXFDSDs7Ozs7OztFQU9FO0FBeUJGOzs7Ozs7Ozs7RUFTRTtBQ2hLRiwrQ0FBK0M7QUNBL0MsWUFBWTtBQUVaOzs7Ozs7R0FNRztBQXNCSDs7Ozs7O0dBTUc7QUFTSDs7Ozs7O0VBTUU7QUNuREYsZUFBZTtBQUVm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 */
/*# sourceMappingURL=styles.css.map */
