.hud__logo,.title--main,button.button{text-transform:uppercase}#road,.is-home .hud{visibility:hidden}.button--credits,.description p,.hud__punchlines p{text-shadow:0 0 2px #3e64a7}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font:inherit;font-size:100%;vertical-align:baseline}html{line-height:1}ol,ul{list-style:none}table{border-collapse:collapse;border-spacing:0}caption,td,th{text-align:left;font-weight:400;vertical-align:middle}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}a img{border:none}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}.button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;outline:0;background:0 0;cursor:pointer;padding:0;margin:0;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.button--basic,.button--keyboard{box-sizing:border-box}.button,body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:londrina_solidregular}body,html{position:relative;width:100%;height:100%;overflow:hidden;background:#3E5CA7}body:before{content:url(../images/santa-loader.png);display:none}#road,.title--main span{display:block}#road{position:absolute;top:0;left:0}@font-face{font-family:londrina_solidregular;src:url(../fonts/londrinasolid-regular-webfont.woff2) format("woff2"),url(../fonts/londrinasolid-regular-webfont.woff) format("woff");font-weight:400;font-style:normal}body{font-size:18px;line-height:22px;color:#FFF}.title--main{font-size:17vh;letter-spacing:5px;line-height:.83;color:#FFF}.button--basic,.button--credits{color:rgba(255,255,255,.8);float:left}.title--main em{letter-spacing:-2px}.title--main--small{font-size:3.8333333333em}.is-mobile .title--main{font-size:26vh;letter-spacing:2px}.is-mobile .title--main--small{font-size:1.1111111111em;letter-spacing:1px}.button{display:inline-block;font-size:initial}.button--basic{font-size:.8888888889em;line-height:2.375em;min-width:128px;padding:0 1em;text-align:center;box-shadow:inset 0 0 0 1px rgba(255,255,255,.7)}.button--basic--key{min-width:0}.button--credits{font-size:1.4444444444em;line-height:1;padding:.1153846154em .3846153846em;transition:color .3s cubic-bezier(.445,.05,.55,.95)}.button--keyboard,.button--svg{font-size:.8888888889em;text-align:center}body:not(.is-touch) .button--credits:hover{color:#FFF}.button--sound{position:relative;width:16px;height:20px}.button--sound i{width:4px;height:20px;background:rgba(255,255,255,.8);position:absolute;bottom:0;left:0;transition:height .2s cubic-bezier(.25,.46,.45,.94);transform:translateZ(0)}.is-muted .button--sound i{height:3px!important}.button--sound i:nth-child(1){height:8px;left:0;transition-delay:.1s}.button--sound i:nth-child(2){height:13px;left:6px;transition-delay:50ms}.button--sound i:nth-child(3){height:18px;left:12px;transition-delay:0}.button--svg{position:relative;min-width:120px;height:44px;line-height:44px;color:#FFF;transition:color .5s cubic-bezier(.455,.03,.515,.955);padding:0 1em}.button--svg>svg{position:absolute;top:0;left:0;width:100%;height:100%}.button--svg span{display:block;position:relative;z-index:1}.link--external,.link--external span{position:relative;display:inline-block}.button--svg span svg{transition:fill .5s cubic-bezier(.455,.03,.515,.955);width:.8888888889em;fill:#FFF;margin-right:5px}.button--svg--direction{min-width:0}.button--svg:hover:not(.button--svg--nointeraction){color:#4269af}.button--svg:hover:not(.button--svg--nointeraction) span svg{fill:#4269af}.button--keyboard{position:relative;min-width:110px;-ms-transform-origin:50% 50%;transform-origin:50% 50%;line-height:38px;color:#FFF;border:1px solid #FFF;border-radius:6px;transition:color .5s cubic-bezier(.455,.03,.515,.955);padding:0 .8em}.button--keyboard--fluid{min-width:0}.link{outline:0;text-decoration:none}.link--external{font-size:1em;line-height:1em;color:rgba(142,161,189,.8)}.link--external svg{fill:rgba(142,161,189,.8);width:.8888888889em;position:relative;top:.1111111111em;margin-right:8px;transition:fill .5s cubic-bezier(.77,0,.175,1)}.link--external span{transition:color .5s cubic-bezier(.77,0,.175,1)}.link--external span:after{content:"";position:absolute;right:0;bottom:-1px;width:100%;height:2px;transition:width .5s cubic-bezier(.77,0,.175,1);background:rgba(142,161,189,.8)}.app,.app__game,.app__views{top:0;right:0;bottom:0;left:0;display:block;height:100%}body:not(.is-touch) .link--external:hover span:after{width:0}.app{position:fixed;width:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.app a,.app button{pointer-events:auto}.app__game,.app__views{position:absolute;width:100%}.app__hud{position:absolute;top:3em;right:4.8888888889em;bottom:3em;left:4.8888888889em}@media screen and (max-width:767px){.link--external{font-size:.8333333333em;line-height:.8333333333em}.app__hud{top:14px;bottom:14px;left:34px;right:34px}}.hud__logo{display:none;position:absolute;top:0;left:0;color:#FFF;text-align:left;font-size:1.8888888889em;line-height:.8823529412em}.hud__punchlines{position:absolute;top:4.1111111111em;left:0}.hud__car,.hud__items,.hud__punchlines p{top:0;position:absolute;left:0}.hud__punchlines p{font-size:1em;line-height:1.3333333333em;text-align:left;visibility:hidden;white-space:nowrap}@media screen and (max-width:767px){.hud__punchlines{top:0}}.hud__items{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.is-touch .hud__items{display:none!important}.hud__item svg{display:block;width:100%;height:auto;opacity:1}.hud__item.is-disabled svg{opacity:.3}.hud__car,.is-credits.is-touch .hud__mobile,[data-view=end].is-touch .hud__mobile{opacity:0}.hud__item--bottle{width:2.4444444444em}.hud__item--rifle{width:3.7222222222em}.hud__item--gelule{width:2.9444444444em}.hud__item--boot{width:2.6666666667em}.hud__item--glasses{width:3.5555555556em}.hud__item--gameboy{width:2.7777777778em}.hud__item--kebab{width:3.0555555556em}.hud__item--mystery{width:2.7222222222em}.hud__item--key{width:2.6666666667em}.hud__car{transform:translate3d(-50%,-50%,0);white-space:nowrap}.hud__car .button{margin-left:.75em;padding:0 1em}.hud__car .touch,.is-touch .hud__car .no-touch{display:none}.is-touch .hud__car .touch{display:block}.hud__power,.hud__scores{display:-ms-flexbox;visibility:hidden}.hud__power{position:absolute;bottom:0;left:0;display:flex;-ms-flex-align:center;align-items:center}.hud__power__icon{width:30px;height:30px;position:relative;margin-right:1.1111111111em}.hud__power__icon svg{position:absolute;top:50%;left:50%;display:block;-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:2.1111111111em;heigth:auto}.is-touch .hud__power{left:110px;bottom:.5em}.is-touch .hud__power__icon{visibility:hidden}.hud__scores{position:absolute;top:0;left:0;display:flex;-ms-flex-align:center;align-items:center}.hud__score{font-size:1.4444444444em;line-height:1;color:#FFF}.hud__score--orbs{margin-right:3.0769230769em}.hud__helpers{position:absolute;right:0;bottom:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.hud__helpers .button:first-child{margin-right:26px}.is-touch .hud__helpers{top:auto;bottom:auto}[data-view=end].is-touch .hud__helpers{top:auto;bottom:0}.hud__mobile{display:none!important;@extends %clearfix;position:absolute;right:0;bottom:0;left:0}.is-touch .hud__mobile{transition:opacity .3s cubic-bezier(.455,.03,.515,.955);display:block!important}.home,.loading{display:-ms-flexbox}.car__buttons .button,.home-tutorial__buttons .button{opacity:.9}.hud__controls--left{float:left}.hud__controls--right{float:right}.hud__controls--right .button--svg{min-width:50px}.hud__controls--right .button--svg+.button--svg{margin-left:1em}.power{width:170px;height:5px;background:#445da6;-ms-transform-origin:0 50%;transform-origin:0 50%}.power__progress{position:relative;width:0;height:100%;overflow:hidden}.car,.car__container,.home-tutorial,.power__bar{position:absolute}.power__bar{top:0;left:0;background-image:linear-gradient(to right,#fff 0,#fcb883 56.5%,#f4668f 84%);width:170px;height:5px}.loading{display:flex;width:100%;height:100%;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;-ms-flex-direction:column;flex-direction:column}.loading div+div{margin-top:1em}.loading__santa{display:block;width:90px;height:109px}.loading__santa i{width:180px;height:218px;background-image:url(../images/santa-loader.png);background-repeat:none;display:block;-ms-transform-origin:0 0;transform-origin:0 0;-ms-transform:scale(.5);transform:scale(.5)}.loading__headphones svg{width:15px;height:auto;margin-left:5px}.end,.home{height:100%}.home{display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;width:100%}.end,.end__scores{display:-ms-flexbox}.home__container{-ms-transform:translateY(-20%);transform:translateY(-20%);width:80%;margin:auto}@media screen and (max-width:767px){.home__container{width:calc(100% - 68px)}.home .title{position:absolute;top:0;left:0}.home .description{margin-top:0}}.home-tutorial{top:0;right:0;bottom:0;left:0}.home-tutorial__container{position:absolute;left:21.3333333333%;top:18.6666666667%;right:18.6666666667%}.home-tutorial__container p+p{margin-top:.75em}.car__buttons,.home-tutorial__buttons{margin-top:1.6666666667em;margin-bottom:1.6666666667em}@media screen and (max-width:767px){.home-tutorial__container{top:11.1111111111%;left:34px;right:34px}}.home-tutorial__buttons .button+.button{margin-left:1.5em}.home-tutorial__buttons .button--keyboard--fluid+.button--keyboard--fluid{margin-left:.5em}.home-tutorial__buttons .button--keyboard--fluid+.button--keyboard--fluid svg{-ms-transform:scale(-1,1);transform:scale(-1,1)}.car{top:0;right:0;bottom:0;left:0}.car__container{left:21.3333333333%;top:18.6666666667%;right:18.6666666667%}.car__buttons .button+.button{margin-left:1.5em}.car__buttons .button--keyboard--fluid+.button--keyboard--fluid{margin-left:.5em}.car__buttons .button--keyboard--fluid+.button--keyboard--fluid svg{-ms-transform:scale(-1,1);transform:scale(-1,1)}.end{display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center;width:100%}.end__container{margin-left:auto;margin-right:auto;width:calc(100% - 344px)}@media screen and (max-width:767px){.car__container{top:11.1111111111%;left:34px;right:34px}.end__container{top:11.1111111111%;width:calc(100% - 68px)}}.end__scores{display:flex;-ms-flex-align:end;align-items:flex-end}.end__details{font-size:1.4444444444em;line-height:1.1538461538em}.end__details>div{position:relative}.end__details .orb{position:absolute;top:15px;left:15px;-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.end__details .orb+span{margin-left:40px}.end__details__time{margin-top:.75em}.end__details__total{font-size:2.9230769231em;line-height:1;margin-top:.3289473684em}@media screen and (max-width:767px){.end__details__time{margin-top:.4em}.end__details__total{margin-top:.1973684211em}}@media screen and (max-width:568px){.end__details__time{margin-top:.4em}.end__details__total{margin-top:.1973684211em}}.end__punchline{font-size:1.1111111111em;line-height:1em;margin-left:3em;margin-bottom:.4em}.end__buttons{margin-top:4em}.end__buttons button{pointer-events:none}.credits__overlay,.is-shown .end__buttons button{pointer-events:auto}.end__buttons .button+.button{margin-left:1em}@media screen and (max-width:767px){.end__buttons{margin-top:1.5em}}@media screen and (max-width:568px){.end__buttons{margin-top:1.5em}}.credits__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.6);z-index:1}.credits__container{position:relative;width:80%;margin-top:15%;margin-left:auto;margin-right:auto;z-index:2}.credits__baseline{margin-top:4.4444444444em;margin-bottom:1.6666666667em;font-size:1em}.credits__authors{display:-ms-flexbox;display:flex;width:100%;-ms-flex-pack:start;justify-content:flex-start}.credits__authors>div:not(:first-child){margin-left:70px}.credits__authors p:first-child{font-size:1em;color:rgba(142,161,189,.8)}.credits__authors p:first-child span{color:#FFF}.credits__authors .link{margin-top:.8em}@media screen and (max-width:767px){.credits__authors p:first-child,.credits__baseline{font-size:.8333333333em}.credits__container{margin-top:5%}.credits__baseline{margin-top:1em;margin-bottom:1em}.credits__authors{-ms-flex-direction:column;flex-direction:column}.credits__authors div{margin-bottom:1.5em}.credits__authors>div:not(:first-child){margin-left:0}.credits__authors .link{margin-top:0}}.view{position:absolute;top:0;right:0;bottom:0;left:0;visibility:hidden;transition:opacity .5s cubic-bezier(.445,.05,.55,.95)}.is-credits .view:not(.view--credits){opacity:0}.description{margin-top:1.6666666667em;margin-bottom:1.6666666667em;color:rgba(255,255,255,.7)}.description p+p{margin-top:.75em}.orb{position:relative;width:66px}.orb svg{display:block;width:100%;height:auto}@media screen and (max-width:767px){.orb{width:30px}}.rotation-screen{display:none;width:100%;height:100%;z-index:10;background-repeat:no-reepat;background-size:cover;background-position:center bottom;position:absolute;top:0;left:0;background-color:#000;text-indent:-9999px}@media screen and (orientation:portrait){body.is-touch .rotation-screen{display:block;background-image:url(../images/rotation-screen.jpg)}}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvX2h1ZC5zY3NzIiwidHlwb2dyYXBoeS9fdGl0bGVzLnNjc3MiLCJjb21wb25lbnRzL19idXR0b25zLnNjc3MiLCJzdHlsZXMuc2NzcyIsImNvbXBvbmVudHMvX2Rlc2NyaXB0aW9uLnNjc3MiLCJzdHlsZXMuY3NzIiwiY29yZS9fcmVzZXQuc2NzcyIsImNvcmUvX2V4dGVuZHMuc2NzcyIsInR5cG9ncmFwaHkvX2ZvbnQtZmFjZS5zY3NzIiwiY29yZS9taXhpbnMvX3Bvc2l0aW9uLnNjc3MiLCJjb21wb25lbnRzL19saW5rLnNjc3MiLCJjb21wb25lbnRzL19hcHAuc2NzcyIsImNvcmUvbWl4aW5zL19tZWRpYS1xdWVyaWVzLnNjc3MiLCJjb21wb25lbnRzL3ZpZXdzL192aWV3cy5zY3NzIiwiY29tcG9uZW50cy92aWV3cy9faG9tZS5zY3NzIiwiY29tcG9uZW50cy92aWV3cy9fbG9hZGluZy5zY3NzIiwiY29tcG9uZW50cy92aWV3cy9fY2FyLnNjc3MiLCJjb21wb25lbnRzL3ZpZXdzL19ob21lLXR1dG9yaWFsLnNjc3MiLCJjb21wb25lbnRzL19wb3dlci5zY3NzIiwiY29tcG9uZW50cy92aWV3cy9fZW5kLnNjc3MiLCJjb21wb25lbnRzL3ZpZXdzL19jcmVkaXRzLnNjc3MiLCJjb21wb25lbnRzL19vcmIuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxXQ0FBLGFDMEtBLGNGbEtRLGVBQUEsVUdRUixNSGhCQSxjQTJCWSxXQUFBLE9FM0JaLGlCRUFBLGVKQUEsbUJJTVEsWUFBQSxFQUFBLEVBQUEsSUFBQSxRQ0ZSLEVBQUcsS0FBTSxRQUFTLFFDUmxCLE9EZUEsUUFBUyxNQUdHLE1BUFosRUFIMkIsSUFEQSxXQ1AzQixLRGVnQixPQURULFFBSEUsT0FIdUIsS0FBTSxLQUk5QixHQUhSLElBTXdCLFFBTm5CLElDVEwsSURZQSxHQUFJLEdBSE0sR0FNdUIsTUFGakMsU0FHUSxXQUFSLE9BQW9CLE9BSFYsS0FOVixHQUFJ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V0FBQSxJQUNBLFlBQUEsS0FDQSxhQUFBLEtBQ0EsUUFBQSxFQWRSLG1CQWtCUSxXQUFBLGVBQ0EsY0FBQSxlQUNBLFVBQUEsSUFwQlIsa0JBd0JRLFFBQUEsWUFBQSxRQUFBLEtBQ0EsTUFBQSxLQUNBLGNBQUEsTUFBQSxnQkFBQSxXQTFCUix3Q0E2QlksWUFBQSxLQTdCWixnQ0FpQ1ksVUFBQSxJQUNBLE1BQUEscUJBbENaLHFDQXFDZ0IsTUFBQSxLQXJDaEIsd0JBMENZLFdBQUEsS1JMUixvQ1FyQ0osZ0NBQUEsbUJBcUVnQixVQUFBLGNBckVoQixvQkFnRFksV0FBQSxHQWhEWixtQkFxRFksV0FBQSxJQUNBLGNBQUEsSUF0RFosa0JBMERZLG1CQUFBLE9BQUEsZUFBQSxPQTFEWixzQkE2RGdCLGNBQUEsTUE3RGhCLHdDQWlFZ0IsWUFBQSxFQWpFaEIsd0JBeUVnQixXQUFBLEdQbEVoQixNSjZCRSxTQUFBLFNBSUksSUFBQSxFQUFBLE1BQUEsRUFBQSxPQUFBLEVBQUEsS0FBQSxFSS9CRixXQUFBLE9BQ0EsV0FBQSxRQUFBLElBQUEsK0JBSEosc0NBTVEsUUFBQSxFVGJSLGFBQ0ksV0FBQSxlQUNBLGNBQUEsZUFDQSxNQUFBLHFCQUhKLGlCQVVRLFdBQUEsTWlCVlIsS1pvQ0UsU0FBQSxTWWxDRSxNQUFBLEtBRkosU0FLUSxRQUFBLE1BQ0EsTUFBQSxLQUNBLE9BQUEsS1Q4Qkosb0NTckNKLEtBV1EsTUFBQSxNbEJtQ1IsaUJBQ0ksUUFBQSxLQUNBLE1BQUEsS0FDQSxPQUFBLEtBQ0EsUUFBQSxHQUNBLGtCQUFBLFVBQ0EsZ0JBQUEsTUFDQSxvQkFBQSxPQUFBLE9BQ0EsU0FBQSxTQUNBLElBQUEsRUFDQSxLQUFBLEVBQ0EsaUJBQUEsS0FDQSxZQUFBLFFBR0oseUNBRUksK0JBQ0ksUUFBQSxNQUNBLGlCQUFBIiwiZmlsZSI6InN0eWxlcy5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICAgICAgICBIVURcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uaHVkIHtcbiAgICAuaXMtaG9tZSAmIHtcbiAgICAgICAgdmlzaWJpbGl0eTpoaWRkZW47XG4gICAgfVxuXG4gICAgJl9fbG9nbyB7XG4gICAgICAgIGRpc3BsYXk6bm9uZTtcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDBweCBudWxsIG51bGwgMHB4KTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO1xuICAgICAgICBjb2xvcjokY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246bGVmdDtcbiAgICAgICAgZm9udC1zaXplOmVtKDM0cHgpO1xuICAgICAgICBsaW5lLWhlaWdodDplbSgzMHB4LCAzNHB4KTtcbiAgICB9XG5cbiAgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiAgICAvKiAgICAgICAgUFVOQ0hMSU5FU1xuICAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4gICAgJl9fcHVuY2hsaW5lcyB7XG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCBlbSg1NHB4ICsgMjBweCkgbnVsbCBudWxsIDBweCk7XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMHB4IG51bGwgbnVsbCAwcHgpO1xuICAgICAgICAgICAgZm9udC1zaXplOmVtKDE4cHgpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ZW0oMjRweCwgMThweCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOmxlZnQ7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OmhpZGRlbjtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOm5vd3JhcDtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDAgMnB4ICMzZTY0YTc7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtb2JpbGUge1xuICAgICAgICAgICAgdG9wOjBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuICAgIC8qICAgICAgICBJVEVNU1xuICAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4gICAgJl9faXRlbXMge1xuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMHB4IG51bGwgbnVsbCAwcHgpO1xuXG4gICAgICAgIGRpc3BsYXk6ZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6Y2VudGVyO1xuXG4gICAgICAgIC5pcy10b3VjaCAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBkaXNwbGF5OmJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6MTAwJTtcbiAgICAgICAgICAgIGhlaWdodDphdXRvO1xuICAgICAgICAgICAgb3BhY2l0eToxO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1kaXNhYmxlZCB7XG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6MC4zO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dGxlIHtcbiAgICAgICAgICAgIHdpZHRoOmVtKDQ0cHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmlmbGUge1xuICAgICAgICAgICAgd2lkdGg6ZW0oNjdweCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1nZWx1bGUge1xuICAgICAgICAgICAgd2lkdGg6ZW0oNTNweCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib290IHtcbiAgICAgICAgICAgIHdpZHRoOmVtKDQ4cHgpOyAgIFxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZ2xhc3NlcyB7XG4gICAgICAgICAgICB3aWR0aDplbSg2NHB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWdhbWVib3kge1xuICAgICAgICAgICAgd2lkdGg6ZW0oNTBweCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1rZWJhYiB7XG4gICAgICAgICAgICB3aWR0aDplbSg1NXB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW15c3Rlcnkge1xuICAgICAgICAgICAgd2lkdGg6ZW0oNDlweCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1rZXkge1xuICAgICAgICAgICAgd2lkdGg6ZW0oNDhweCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiAgICAvKiAgICAgICAgQ0FSXG4gICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiAgICAmX19jYXIge1xuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMHB4IG51bGwgbnVsbCAwcHgpO1xuICAgICAgICB0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG4gICAgICAgIHdoaXRlLXNwYWNlOm5vd3JhcDtcbiAgICAgICAgb3BhY2l0eTowO1xuXG4gICAgICAgIC5idXR0b24ge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6MC43NWVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAxZW07XG4gICAgICAgIH1cblxuICAgICAgICAudG91Y2gge1xuICAgICAgICAgICAgZGlzcGxheTpub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmlzLXRvdWNoICYge1xuICAgICAgICAgICAgLm5vLXRvdWNoIHsgZGlzcGxheTpub25lOyB9XG4gICAgICAgICAgICAudG91Y2ggeyBkaXNwbGF5OmJsb2NrOyB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiAgICAvKiAgICAgICAgUE9XRVJcbiAgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuICAgICZfX3Bvd2VyIHtcbiAgICAgICAgdmlzaWJpbGl0eTpoaWRkZW47XG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCBudWxsIG51bGwgMHB4IDBweCk7XG4gICAgICAgIGRpc3BsYXk6ZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6Y2VudGVyO1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgd2lkdGg6MzBweDtcbiAgICAgICAgICAgIGhlaWdodDozMHB4O1xuICAgICAgICAgICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ZW0oMjBweCk7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDUwJSBudWxsIG51bGwgNTAlKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OmJsb2NrO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgICAgICAgICAgd2lkdGg6ZW0oMzhweCk7XG4gICAgICAgICAgICAgICAgaGVpZ3RoOmF1dG87XG4gICAgICAgICAgICB9ICAgXG4gICAgICAgIH1cblxuICAgICAgICAuaXMtdG91Y2ggJiB7XG4gICAgICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OmhpZGRlbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGVmdDoxMTBweDtcbiAgICAgICAgICAgIGJvdHRvbTowLjVlbTtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4gICAgLyogICAgICAgIFNDT1JFU1xuICAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4gICAgJl9fc2NvcmVzIHtcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDBweCBudWxsIG51bGwgMHB4KTtcbiAgICAgICAgZGlzcGxheTpmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczpjZW50ZXI7XG4gICAgICAgIHZpc2liaWxpdHk6aGlkZGVuO1xuICAgIH1cblxuICAgICZfX3Njb3JlIHtcbiAgICAgICAgZm9udC1zaXplOmVtKDI2cHgpO1xuICAgICAgICBsaW5lLWhlaWdodDoxO1xuICAgICAgICBjb2xvcjokY29sb3Itd2hpdGU7XG5cbiAgICAgICAgJi0tb3JicyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ZW0oODBweCwgMjZweCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiAgICAvKiAgICAgICAgQ1JFRElUU1xuICAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4gICAgJl9faGVscGVycyB7XG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCBudWxsIDBweCAwcHggbnVsbCk7XG4gICAgICAgIGRpc3BsYXk6ZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6Y2VudGVyO1xuXG4gICAgICAgIC5idXR0b246Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OjI2cHg7XG4gICAgICAgIH1cblxuICAgICAgICAuaXMtdG91Y2ggJiB7XG4gICAgICAgICAgICB0b3A6YXV0bztcbiAgICAgICAgICAgIGJvdHRvbTphdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgW2RhdGEtdmlldz1cImVuZFwiXS5pcy10b3VjaCAmIHtcbiAgICAgICAgICAgIHRvcDphdXRvO1xuICAgICAgICAgICAgYm90dG9tOjA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiAgICAvKiAgICAgICAgTU9CSUxFXG4gICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiAgICAmX19tb2JpbGUge1xuICAgICAgICBkaXNwbGF5Om5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgXG4gICAgICAgIEBleHRlbmRzICVjbGVhcmZpeDtcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIG51bGwgMHB4IDBweCAwcHgpO1xuXG4gICAgICAgIC5pcy10b3VjaCAmIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246b3BhY2l0eSAwLjNzICRlYXNlSW5PdXRRdWFkO1xuICAgICAgICAgICAgZGlzcGxheTpibG9jayAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgXG4gICAgICAgIC5pcy1jcmVkaXRzLmlzLXRvdWNoICYsXG4gICAgICAgIFtkYXRhLXZpZXc9XCJlbmRcIl0uaXMtdG91Y2ggJiB7XG4gICAgICAgICAgICBvcGFjaXR5OjA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250cm9scyB7XG4gICAgICAgICYtLWxlZnQge1xuICAgICAgICAgICAgZmxvYXQ6bGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJpZ2h0IHtcbiAgICAgICAgICAgIGZsb2F0OnJpZ2h0O1xuXG4gICAgICAgICAgICAuYnV0dG9uLS1zdmcge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDo1MHB4O1xuXG4gICAgICAgICAgICAgICAgJiArIC5idXR0b24tLXN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OjFlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgICAgICAgVElUTEUgREVDTEFSQVRJT05cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4udGl0bGUge1xuICAgIC8vIEBleHRlbmQgJXNtb290aDsgLy8gT3B0aW9ubmFsXG4gICAgLy8gQGV4dGVuZCAlUmVndWxhcjtcblxuICAgIC8vIFZhcmlhbnRzLCBjYW4gYmUgLnRpdGxlLS0xIG9yIC50aXRsZS0tbWFpblxuICAgIC8vIGlmIHlvdXIgcHJlZmVyIG9yZGVyIHlvdXIgdGl0bGVzIGJ5IHNsdWdzXG5cbiAgICAmLS1tYWluIHtcbiAgICAgICAgLy8gZm9udC1zaXplOmVtKDE3NHB4KTtcbiAgICAgICAgLy8gbGluZS1oZWlnaHQ6ZW0oMTQ1cHgsIDE3NHB4KTtcbiAgICAgICAgZm9udC1zaXplOjE3dmg7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOjVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6MC44MztcbiAgICAgICAgY29sb3I6JGNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7XG5cbiAgICAgICAgZW0ge1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6LTJweDtcbiAgICAgICAgfVxuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgZGlzcGxheTpibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTplbSg2OXB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pcy1tb2JpbGUgJiB7XG4gICAgICAgICAgICBmb250LXNpemU6MjZ2aDtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOjJweDtcblxuICAgICAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTplbSgyMHB4KTtcbiAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzoxcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0yIHtcblxuICAgIH1cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogICAgICAgIEJVVFRPTlNcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uYnV0dG9uIHtcbiAgICBAZXh0ZW5kICVidXR0b24tcmVzZXQ7XG4gICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOmluaXRpYWw7XG4gICAgXG5cbiAgICAmLS1iYXNpYyB7XG4gICAgICAgIEBleHRlbmQgJWJvcmRlci1ib3g7XG4gICAgICAgIGZvbnQtc2l6ZTplbSgxNnB4KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ZW0oMzhweCwgMTZweCk7XG4gICAgICAgIG1pbi13aWR0aDoxMjhweDtcbiAgICAgICAgcGFkZGluZzowIDFlbTtcbiAgICAgICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgICAgIGNvbG9yOnJnYmEoJGNvbG9yLXdoaXRlLCAwLjgpO1xuICAgICAgICBib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCByZ2JhKCRjb2xvci13aGl0ZSwgMC43KTtcbiAgICAgICAgZmxvYXQ6bGVmdDtcblxuICAgICAgICAmLS1rZXkge1xuICAgICAgICAgICAgbWluLXdpZHRoOjA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1jcmVkaXRzIHtcbiAgICAgICAgZm9udC1zaXplOmVtKDI2cHgpO1xuICAgICAgICBsaW5lLWhlaWdodDoxO1xuICAgICAgICBwYWRkaW5nOmVtKDNweCwgMjZweCkgZW0oMTBweCwgMjZweCk7XG4gICAgICAgIGNvbG9yOnJnYmEoJGNvbG9yLXdoaXRlLCAwLjgpO1xuICAgICAgICB0cmFuc2l0aW9uOmNvbG9yIDAuM3MgJGVhc2VJbk91dFNpbmU7XG4gICAgICAgIHRleHQtc2hhZG93OiAwIDAgMnB4ICMzZTY0YTc7XG4gICAgICAgIGZsb2F0OmxlZnQ7XG5cbiAgICAgICAgYm9keTpub3QoLmlzLXRvdWNoKSAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiRjb2xvci13aGl0ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLXNvdW5kIHtcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oKTtcbiAgICAgICAgd2lkdGg6MyAqIDRweCArIDIgKiAycHg7XG4gICAgICAgIGhlaWdodDoyMHB4O1xuXG4gICAgICAgIGkge1xuICAgICAgICAgICAgd2lkdGg6NHB4O1xuICAgICAgICAgICAgaGVpZ2h0OjIwcHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOnJnYmEoJGNvbG9yLXdoaXRlLCAwLjgpO1xuICAgICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIG51bGwgbnVsbCAwcHggMHB4KTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246aGVpZ2h0IDAuMnMgJGVhc2VPdXRRdWFkO1xuICAgICAgICAgICAgdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgIC5pcy1tdXRlZCAmIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6M3B4ICFpbXBvcnRhbnQ7O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm50aC1jaGlsZCgxKSB7IFxuICAgICAgICAgICAgICAgIGhlaWdodDo4cHg7XG4gICAgICAgICAgICAgICAgbGVmdDowcHg7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTowLjFzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm50aC1jaGlsZCgyKSB7IFxuICAgICAgICAgICAgICAgIGhlaWdodDoxM3B4O1xuICAgICAgICAgICAgICAgIGxlZnQ6NnB4O1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6MC4wNXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDMpIHsgXG4gICAgICAgICAgICAgICAgaGVpZ2h0OjE4cHg7XG4gICAgICAgICAgICAgICAgbGVmdDoxMnB4O1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6MDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9ICAgXG4gICAgfVxuXG4gICAgJi0tc3ZnIHtcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oKTtcbiAgICAgICAgbWluLXdpZHRoOjEyMHB4O1xuICAgICAgICBoZWlnaHQ6NDRweDtcbiAgICAgICAgZm9udC1zaXplOmVtKDE2cHgpO1xuICAgICAgICBsaW5lLWhlaWdodDo0NHB4O1xuICAgICAgICBjb2xvcjokY29sb3Itd2hpdGU7XG4gICAgICAgIHRyYW5zaXRpb246Y29sb3IgMC41cyAkZWFzZUluT3V0UXVhZDtcbiAgICAgICAgcGFkZGluZzowIDFlbTtcbiAgICAgICAgdGV4dC1hbGlnbjpjZW50ZXI7XG5cbiAgICAgICAgJiA+IHN2ZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMHB4IG51bGwgbnVsbCAwcHgpO1xuICAgICAgICAgICAgd2lkdGg6MTAwJTtcbiAgICAgICAgICAgIGhlaWdodDoxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBkaXNwbGF5OmJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OjE7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjpmaWxsIDAuNXMgJGVhc2VJbk91dFF1YWQ7XG4gICAgICAgICAgICAgICAgd2lkdGg6ZW0oMTZweCwgMThweCk7XG4gICAgICAgICAgICAgICAgZmlsbDokY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OjVweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpcmVjdGlvbiB7XG4gICAgICAgICAgICBtaW4td2lkdGg6MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3Zlcjpub3QoLmJ1dHRvbi0tc3ZnLS1ub2ludGVyYWN0aW9uKSB7XG4gICAgICAgICAgICBjb2xvcjokY29sb3ItYmx1ZTtcblxuICAgICAgICAgICAgc3BhbiBzdmcge1xuICAgICAgICAgICAgICAgIGZpbGw6JGNvbG9yLWJsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1rZXlib2FyZCB7XG4gICAgICAgIEBleHRlbmQgJWJvcmRlci1ib3g7XG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKCk7XG5cbiAgICAgICAgbWluLXdpZHRoOjExMHB4O1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOjUwJSA1MCU7XG4gICAgICAgIC8vIGhlaWdodDo0NHB4O1xuICAgICAgICBcbiAgICAgICAgZm9udC1zaXplOmVtKDE2cHgpO1xuICAgICAgICBsaW5lLWhlaWdodDozOHB4O1xuICAgICAgICBcbiAgICAgICAgY29sb3I6JGNvbG9yLXdoaXRlO1xuXG4gICAgICAgIGJvcmRlcjoxcHggc29saWQgJGNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItcmFkaXVzOjZweDtcbiAgICAgICAgXG4gICAgICAgIHRyYW5zaXRpb246Y29sb3IgMC41cyAkZWFzZUluT3V0UXVhZDtcbiAgICAgICAgcGFkZGluZzowIDAuOGVtO1xuICAgICAgICB0ZXh0LWFsaWduOmNlbnRlcjtcblxuICAgICAgICAmLS1mbHVpZCB7XG4gICAgICAgICAgICBtaW4td2lkdGg6MDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vICYtLWtleWJvYXJkIHtcbiAgICAvLyAgICAgQGtleWZyYW1lcyBrZXktcHVzaGVkIHtcbiAgICAvLyAgICAgICAgIDAlIHsgdHJhbnNmb3JtOnNjYWxlKDEsIDEpIHRyYW5zbGF0ZVooMCk7IH1cbiAgICAvLyAgICAgICAgIDEwJSB7IHRyYW5zZm9ybTpzY2FsZSgwLjk3LCAwLjk3KSB0cmFuc2xhdGVaKDApOyB9XG4gICAgLy8gICAgICAgICAyMCUgeyB0cmFuc2Zvcm06c2NhbGUoMSwgMSkgdHJhbnNsYXRlWigwKTsgfVxuICAgIC8vICAgICAgICAgMTAwJSB7IHRyYW5zZm9ybTpzY2FsZSgxLCAxKSB0cmFuc2xhdGVaKDApOyB9XG4gICAgLy8gICAgIH1cblxuICAgIC8vICAgICAuaXMtc2hvd24gJiB7XG4gICAgLy8gICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOjUwJSA1MCU7XG4gICAgLy8gICAgICAgICBhbmltYXRpb246IGtleS1wdXNoZWQgMnMgJGVhc2VJbk91dFF1YWQgaW5maW5pdGU7XG4gICAgLy8gICAgIH1cblxuICAgIC8vICAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgLy8gICAgICAgICBhbmltYXRpb24tZGVsYXk6MXM7XG4gICAgLy8gICAgIH1cblxuICAgIC8vICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgLy8gICAgICAgICBhbmltYXRpb24tZGVsYXk6NHM7XG4gICAgLy8gICAgIH1cblxuICAgIC8vICAgICAmOm50aC1jaGlsZCgzKSB7XG4gICAgLy8gICAgICAgICBhbmltYXRpb24tZGVsYXk6OHM7XG4gICAgLy8gICAgIH1cbiAgICAvLyB9XG59XG5cblxuYnV0dG9uLmJ1dHRvbiB7XG4gICAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO1xufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgICAgICAgWU9VUiBQUk9KRUNUIE5BTUVcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vLyBJbXBvcnQgY29yZVxuQGltcG9ydCBcImNvcmUvaW1wb3J0XCI7XG5cbmh0bWwsIGJvZHkge1xuICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgIHdpZHRoOjEwMCU7XG4gICAgaGVpZ2h0OjEwMCU7XG4gICAgb3ZlcmZsb3c6aGlkZGVuO1xuICAgIGJhY2tncm91bmQ6IzNFNUNBNztcbn1cblxuYm9keTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6dXJsKC4uL2ltYWdlcy9zYW50YS1sb2FkZXIucG5nKTsgLy91cmwoLi4vaW1hZ2VzL2xvZ28tMDEuc3ZnKSB1cmwoLi4vaW1hZ2VzL2xvZ28tMDIuc3ZnKTtcbiAgICBkaXNwbGF5Om5vbmU7XG59XG5cbiNyb2FkIHtcbiAgICB2aXNpYmlsaXR5OmhpZGRlbjtcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICB0b3A6MHB4O1xuICAgIGxlZnQ6MHB4O1xuICAgIGRpc3BsYXk6YmxvY2s7XG59XG5cbi8vIEFkZCB0aGUgbGF5b3V0IGRlcGVuZGVuY2llcyBoZXJlXG4vLyBAaW1wb3J0IFwibGF5b3V0cy9ncmlkXCI7XG4vLyBAaW1wb3J0IFwibGF5b3V0cy9oZWFkZXJcIjtcbi8vIEBpbXBvcnQgXCJsYXlvdXRzL2Zvb3RlclwiO1xuXG4vLyBUeXBvZ3JhcGh5XG5AaW1wb3J0IFwidHlwb2dyYXBoeS9mb250LWZhY2VcIjtcbkBpbXBvcnQgXCJ0eXBvZ3JhcGh5L3RpdGxlc1wiO1xuQGltcG9ydCBcInR5cG9ncmFwaHkvc3VidGl0bGVzXCI7XG5cbi8vIEFkZCB5b3VyIGNvbXBvbmVudHMgaGVyZVxuQGltcG9ydCBcImNvbXBvbmVudHMvYnV0dG9uc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvbGlua1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvYXBwXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9odWRcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3Bvd2VyXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy92aWV3cy92aWV3c1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvZGVzY3JpcHRpb25cIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL29yYlwiO1xuLy8gQGltcG9ydCBcImNvbXBvbmVudHMvbXljb21wb25lbnRcIjtcblxuXG4ucm90YXRpb24tc2NyZWVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiAxMDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZWVwYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOmNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIGJvdHRvbTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOjBweDtcbiAgICBsZWZ0OjBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgICB0ZXh0LWluZGVudDotOTk5OXB4O1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246cG9ydHJhaXQpIHtcblxuICAgIGJvZHkuaXMtdG91Y2ggLnJvdGF0aW9uLXNjcmVlbiB7XG4gICAgICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6dXJsKC4uL2ltYWdlcy9yb3RhdGlvbi1zY3JlZW4uanBnKTtcbiAgICB9XG59IiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgICAgICAgREVTQ1JJUFRJT05cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uZGVzY3JpcHRpb24ge1xuICAgIG1hcmdpbi10b3A6ZW0oMzBweCk7XG4gICAgbWFyZ2luLWJvdHRvbTplbSgzMHB4KTtcbiAgICBjb2xvcjpyZ2JhKCRjb2xvci13aGl0ZSwgMC43KTtcblxuICAgIHAge1xuICAgICAgICB0ZXh0LXNoYWRvdzogMCAwIDJweCAjM2U2NGE3O1xuICAgIH1cblxuICAgIHAgKyBwIHtcbiAgICAgICAgbWFyZ2luLXRvcDowLjc1ZW07XG4gICAgfVxufSIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogICAgICAgIFlPVVIgUFJPSkVDVCBOQU1FXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogICAgICAgIENPUkUgSU1QT1JUU1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5odG1sLCBib2R5LCBkaXYsIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLCBibG9ja3F1b3RlLCBwcmUsXG5hLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsXG5kZWwsIGRmbiwgZW0sIGltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsXG5zbWFsbCwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0dCwgdmFyLFxuYiwgdSwgaSwgY2VudGVyLFxuZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSxcbmZpZWxkc2V0LCBmb3JtLCBsYWJlbCwgbGVnZW5kLFxudGFibGUsIGNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQsXG5hcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLCBlbWJlZCxcbmZpZ3VyZSwgZmlnY2FwdGlvbiwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCxcbm1lbnUsIG5hdiwgb3V0cHV0LCBydWJ5LCBzZWN0aW9uLCBzdW1tYXJ5LFxudGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbmh0bWwge1xuICBsaW5lLWhlaWdodDogMTsgfVxuXG5vbCwgdWwge1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7IH1cblxuY2FwdGlvbiwgdGgsIHRkIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuXG5xLCBibG9ja3F1b3RlIHtcbiAgcXVvdGVzOiBub25lOyB9XG5cbnE6YmVmb3JlLCBxOmFmdGVyLCBibG9ja3F1b3RlOmJlZm9yZSwgYmxvY2txdW90ZTphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGNvbnRlbnQ6IG5vbmU7IH1cblxuYSBpbWcge1xuICBib3JkZXI6IG5vbmU7IH1cblxuYXJ0aWNsZSwgYXNpZGUsIGRldGFpbHMsIGZpZ2NhcHRpb24sIGZpZ3VyZSwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWFpbiwgbWVudSwgbmF2LCBzZWN0aW9uLCBzdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgICAgICAgQ09NTU9OIFBST0pFQ1QgVkFSSUFCTEVTXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogICAgICAgIEJSRUFLUE9JTlRTXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogICAgICAgIENPTE9SU1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKlxuKiAgIEVhc2luZyBFcXVhdGlvbnMgcG9ydGVkIHRvIENTUyBieSBAbWF0dGhld2xlaW4gLSBodHRwOi8vbWF0dGhld2xlaW4uY29tL2NlYXNlci9cbiogICBDb252ZXJ0ZWQgdG8gU0NTUyB2YXJzIGJ5IEBwZXR0cGV0dFxuKlxuKiAgIHNhbXBsZSB1c2FnZTpcbiogICBhIHtcbiogICAgIGNvbG9yOiAjZmYwMDAwO1xuKiAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihjb2xvciAwLjVzICRlYXNlT3V0UXVpbnQpO1xuKiAgICAgJjpob3ZlcixcbiogICAgICY6Zm9jdXMge1xuKiAgICAgICBjb2xvcjogI2ZmOTkwMDtcbiogICAgIH1cbiogICB9XG4qL1xuLyogRGVmYXVsdCBFcXVhdGlvbnMgKi9cbi8qIFBlbm5lciBFcXVhdGlvbnMgKGFwcHJveGltYXRlZCkgb3JpZ2luYWxseSBjcmVhdGVkIGJ5IEByb2JwZW5uZXIgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogICAgICAgIENPTlZFUlQgUFggVE8gRU1cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgICAgICAgTUVESUEgT0JKRUNUU1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICAgICAgICBBVFRFTlRJT05cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgICAgICAgQVJST1dcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgICAgICAgUExBQ0VIT0xERVJcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgICAgICAgTUVESUEgUVVFUklFU1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICAgICAgICBDTEVBUkZJWFxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICAgICAgICBCVVRUT05cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmJ1dHRvbiB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgb3V0bGluZTogMDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHVzZXItc2VsZWN0OiBub25lOyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogICAgICAgIEJPUkRFUi1CT1hcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmJ1dHRvbi0tYmFzaWMsIC5idXR0b24tLWtleWJvYXJkIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICAgICAgICBTTU9PVEhcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmJ1dHRvbiwgYm9keSB7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogICAgICAgIEZVTExcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgICAgICAgRUxMSVBTSVNcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuaHRtbCwgYm9keSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogIzNFNUNBNzsgfVxuXG5ib2R5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IHVybCguLi9pbWFnZXMvc2FudGEtbG9hZGVyLnBuZyk7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuI3JvYWQge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgICAgICAgRk9OVCBGQUNFIERFQ0xBUkFUSU9OXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ2xvbmRyaW5hX3NvbGlkcmVndWxhcic7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvbG9uZHJpbmFzb2xpZC1yZWd1bGFyLXdlYmZvbnQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uL2ZvbnRzL2xvbmRyaW5hc29saWQtcmVndWxhci13ZWJmb250LndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogICAgICAgIFZBUklBQkxFUyBERUNMQVJBVElPTlxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uYnV0dG9uLCBib2R5IHtcbiAgZm9udC1mYW1pbHk6ICdsb25kcmluYV9zb2xpZHJlZ3VsYXInOyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogICAgICAgIEdMT0JBTFxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5ib2R5IHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMjJweDtcbiAgY29sb3I6ICNGRkZGRkY7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgICAgICAgVElUTEUgREVDTEFSQVRJT05cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnRpdGxlLS1tYWluIHtcbiAgZm9udC1zaXplOiAxN3ZoO1xuICBsZXR0ZXItc3BhY2luZzogNXB4O1xuICBsaW5lLWhlaWdodDogMC44MztcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgLnRpdGxlLS1tYWluIGVtIHtcbiAgICBsZXR0ZXItc3BhY2luZzogLTJweDsgfVxuICAudGl0bGUtLW1haW4gc3BhbiB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLnRpdGxlLS1tYWluLS1zbWFsbCB7XG4gICAgZm9udC1zaXplOiAzLjgzMzMzMzMzMzNlbTsgfVxuICAuaXMtbW9iaWxlIC50aXRsZS0tbWFpbiB7XG4gICAgZm9udC1zaXplOiAyNnZoO1xuICAgIGxldHRlci1zcGFjaW5nOiAycHg7IH1cbiAgICAuaXMtbW9iaWxlIC50aXRsZS0tbWFpbi0tc21hbGwge1xuICAgICAgZm9udC1zaXplOiAxLjExMTExMTExMTFlbTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgICAgICAgU1VCVElUTEVTIERFQ0xBUkFUSU9OXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogICAgICAgIEJVVFRPTlNcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiBpbml0aWFsOyB9XG4gIC5idXR0b24tLWJhc2ljIHtcbiAgICBmb250LXNpemU6IDAuODg4ODg4ODg4OWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjM3NWVtO1xuICAgIG1pbi13aWR0aDogMTI4cHg7XG4gICAgcGFkZGluZzogMCAxZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAgIC5idXR0b24tLWJhc2ljLS1rZXkge1xuICAgICAgbWluLXdpZHRoOiAwOyB9XG4gIC5idXR0b24tLWNyZWRpdHMge1xuICAgIGZvbnQtc2l6ZTogMS40NDQ0NDQ0NDQ0ZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgcGFkZGluZzogMC4xMTUzODQ2MTU0ZW0gMC4zODQ2MTUzODQ2ZW07XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzIGN1YmljLWJlemllcigwLjQ0NSwgMC4wNSwgMC41NSwgMC45NSk7XG4gICAgdGV4dC1zaGFkb3c6IDAgMCAycHggIzNlNjRhNztcbiAgICBmbG9hdDogbGVmdDsgfVxuICAgIGJvZHk6bm90KC5pcy10b3VjaCkgLmJ1dHRvbi0tY3JlZGl0czpob3ZlciB7XG4gICAgICBjb2xvcjogI0ZGRkZGRjsgfVxuICAuYnV0dG9uLS1zb3VuZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMjBweDsgfVxuICAgIC5idXR0b24tLXNvdW5kIGkge1xuICAgICAgd2lkdGg6IDRweDtcbiAgICAgIGhlaWdodDogMjBweDtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogMHB4O1xuICAgICAgbGVmdDogMHB4O1xuICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuMnMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApOyB9XG4gICAgICAuaXMtbXV0ZWQgLmJ1dHRvbi0tc291bmQgaSB7XG4gICAgICAgIGhlaWdodDogM3B4ICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5idXR0b24tLXNvdW5kIGk6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgaGVpZ2h0OiA4cHg7XG4gICAgICAgIGxlZnQ6IDBweDtcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4xczsgfVxuICAgICAgLmJ1dHRvbi0tc291bmQgaTpudGgtY2hpbGQoMikge1xuICAgICAgICBoZWlnaHQ6IDEzcHg7XG4gICAgICAgIGxlZnQ6IDZweDtcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4wNXM7IH1cbiAgICAgIC5idXR0b24tLXNvdW5kIGk6bnRoLWNoaWxkKDMpIHtcbiAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgICBsZWZ0OiAxMnB4O1xuICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwOyB9XG4gIC5idXR0b24tLXN2ZyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1pbi13aWR0aDogMTIwcHg7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIGZvbnQtc2l6ZTogMC44ODg4ODg4ODg5ZW07XG4gICAgbGluZS1oZWlnaHQ6IDQ0cHg7XG4gICAgY29sb3I6ICNGRkZGRkY7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC41cyBjdWJpYy1iZXppZXIoMC40NTUsIDAuMDMsIDAuNTE1LCAwLjk1NSk7XG4gICAgcGFkZGluZzogMCAxZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLmJ1dHRvbi0tc3ZnID4gc3ZnIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMHB4O1xuICAgICAgbGVmdDogMHB4O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICAuYnV0dG9uLS1zdmcgc3BhbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDE7IH1cbiAgICAgIC5idXR0b24tLXN2ZyBzcGFuIHN2ZyB7XG4gICAgICAgIHRyYW5zaXRpb246IGZpbGwgMC41cyBjdWJpYy1iZXppZXIoMC40NTUsIDAuMDMsIDAuNTE1LCAwLjk1NSk7XG4gICAgICAgIHdpZHRoOiAwLjg4ODg4ODg4ODllbTtcbiAgICAgICAgZmlsbDogI0ZGRkZGRjtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7IH1cbiAgICAuYnV0dG9uLS1zdmctLWRpcmVjdGlvbiB7XG4gICAgICBtaW4td2lkdGg6IDBweDsgfVxuICAgIC5idXR0b24tLXN2Zzpob3Zlcjpub3QoLmJ1dHRvbi0tc3ZnLS1ub2ludGVyYWN0aW9uKSB7XG4gICAgICBjb2xvcjogIzQyNjlhZjsgfVxuICAgICAgLmJ1dHRvbi0tc3ZnOmhvdmVyOm5vdCguYnV0dG9uLS1zdmctLW5vaW50ZXJhY3Rpb24pIHNwYW4gc3ZnIHtcbiAgICAgICAgZmlsbDogIzQyNjlhZjsgfVxuICAuYnV0dG9uLS1rZXlib2FyZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1pbi13aWR0aDogMTEwcHg7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICBmb250LXNpemU6IDAuODg4ODg4ODg4OWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAzOHB4O1xuICAgIGNvbG9yOiAjRkZGRkZGO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNGRkZGRkY7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuNXMgY3ViaWMtYmV6aWVyKDAuNDU1LCAwLjAzLCAwLjUxNSwgMC45NTUpO1xuICAgIHBhZGRpbmc6IDAgMC44ZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLmJ1dHRvbi0ta2V5Ym9hcmQtLWZsdWlkIHtcbiAgICAgIG1pbi13aWR0aDogMDsgfVxuXG5idXR0b24uYnV0dG9uIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICAgICAgICBMSU5LXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5saW5rIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5saW5rLS1leHRlcm5hbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgIGNvbG9yOiByZ2JhKDE0MiwgMTYxLCAxODksIDAuOCk7IH1cbiAgICAubGluay0tZXh0ZXJuYWwgc3ZnIHtcbiAgICAgIGZpbGw6IHJnYmEoMTQyLCAxNjEsIDE4OSwgMC44KTtcbiAgICAgIHdpZHRoOiAwLjg4ODg4ODg4ODllbTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogMC4xMTExMTExMTExZW07XG4gICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICAgIHRyYW5zaXRpb246IGZpbGwgMC41cyBjdWJpYy1iZXppZXIoMC43NywgMCwgMC4xNzUsIDEpOyB9XG4gICAgLmxpbmstLWV4dGVybmFsIHNwYW4ge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC41cyBjdWJpYy1iZXppZXIoMC43NywgMCwgMC4xNzUsIDEpOyB9XG4gICAgICAubGluay0tZXh0ZXJuYWwgc3BhbjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDBweDtcbiAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuNXMgY3ViaWMtYmV6aWVyKDAuNzcsIDAsIDAuMTc1LCAxKTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNDIsIDE2MSwgMTg5LCAwLjgpOyB9XG4gICAgYm9keTpub3QoLmlzLXRvdWNoKSAubGluay0tZXh0ZXJuYWw6aG92ZXIgc3BhbjphZnRlciB7XG4gICAgICB3aWR0aDogMCU7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgLmxpbmstLWV4dGVybmFsIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjgzMzMzMzMzMzNlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDAuODMzMzMzMzMzM2VtOyB9IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgICAgICAgQVBQXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5hcHAge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMHB4O1xuICByaWdodDogMHB4O1xuICBib3R0b206IDBweDtcbiAgbGVmdDogMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lOyB9XG4gIC5hcHAgYnV0dG9uLCAuYXBwIGEge1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOyB9XG4gIC5hcHBfX2dhbWUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDBweDtcbiAgICByaWdodDogMHB4O1xuICAgIGJvdHRvbTogMHB4O1xuICAgIGxlZnQ6IDBweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLmFwcF9fdmlld3Mge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDBweDtcbiAgICByaWdodDogMHB4O1xuICAgIGJvdHRvbTogMHB4O1xuICAgIGxlZnQ6IDBweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLmFwcF9faHVkIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAzZW07XG4gICAgcmlnaHQ6IDQuODg4ODg4ODg4OWVtO1xuICAgIGJvdHRvbTogM2VtO1xuICAgIGxlZnQ6IDQuODg4ODg4ODg4OWVtOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgIC5hcHBfX2h1ZCB7XG4gICAgICAgIHRvcDogMTRweDtcbiAgICAgICAgYm90dG9tOiAxNHB4O1xuICAgICAgICBsZWZ0OiAzNHB4O1xuICAgICAgICByaWdodDogMzRweDsgfSB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogICAgICAgIEhVRFxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uaHVkIHtcbiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4gIC8qICAgICAgICBQVU5DSExJTkVTXG4gICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4gIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuICAvKiAgICAgICAgSVRFTVNcbiAgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4gIC8qICAgICAgICBDQVJcbiAgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4gIC8qICAgICAgICBQT1dFUlxuICAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiAgLyogICAgICAgIFNDT1JFU1xuICAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiAgLyogICAgICAgIENSRURJVFNcbiAgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4gIC8qICAgICAgICBNT0JJTEVcbiAgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8gfVxuICAuaXMtaG9tZSAuaHVkIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgLmh1ZF9fbG9nbyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwcHg7XG4gICAgbGVmdDogMHB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICNGRkZGRkY7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBmb250LXNpemU6IDEuODg4ODg4ODg4OWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAwLjg4MjM1Mjk0MTJlbTsgfVxuICAuaHVkX19wdW5jaGxpbmVzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA0LjExMTExMTExMTFlbTtcbiAgICBsZWZ0OiAwcHg7IH1cbiAgICAuaHVkX19wdW5jaGxpbmVzIHAge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwcHg7XG4gICAgICBsZWZ0OiAwcHg7XG4gICAgICBmb250LXNpemU6IDFlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjMzMzMzMzMzMzNlbTtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgdGV4dC1zaGFkb3c6IDAgMCAycHggIzNlNjRhNzsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAuaHVkX19wdW5jaGxpbmVzIHtcbiAgICAgICAgdG9wOiAwcHg7IH0gfVxuICAuaHVkX19pdGVtcyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMHB4O1xuICAgIGxlZnQ6IDBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAuaXMtdG91Y2ggLmh1ZF9faXRlbXMge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5odWRfX2l0ZW0gc3ZnIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgb3BhY2l0eTogMTsgfVxuICAuaHVkX19pdGVtLmlzLWRpc2FibGVkIHN2ZyB7XG4gICAgb3BhY2l0eTogMC4zOyB9XG4gIC5odWRfX2l0ZW0tLWJvdHRsZSB7XG4gICAgd2lkdGg6IDIuNDQ0NDQ0NDQ0NGVtOyB9XG4gIC5odWRfX2l0ZW0tLXJpZmxlIHtcbiAgICB3aWR0aDogMy43MjIyMjIyMjIyZW07IH1cbiAgLmh1ZF9faXRlbS0tZ2VsdWxlIHtcbiAgICB3aWR0aDogMi45NDQ0NDQ0NDQ0ZW07IH1cbiAgLmh1ZF9faXRlbS0tYm9vdCB7XG4gICAgd2lkdGg6IDIuNjY2NjY2NjY2N2VtOyB9XG4gIC5odWRfX2l0ZW0tLWdsYXNzZXMge1xuICAgIHdpZHRoOiAzLjU1NTU1NTU1NTZlbTsgfVxuICAuaHVkX19pdGVtLS1nYW1lYm95IHtcbiAgICB3aWR0aDogMi43Nzc3Nzc3Nzc4ZW07IH1cbiAgLmh1ZF9faXRlbS0ta2ViYWIge1xuICAgIHdpZHRoOiAzLjA1NTU1NTU1NTZlbTsgfVxuICAuaHVkX19pdGVtLS1teXN0ZXJ5IHtcbiAgICB3aWR0aDogMi43MjIyMjIyMjIyZW07IH1cbiAgLmh1ZF9faXRlbS0ta2V5IHtcbiAgICB3aWR0aDogMi42NjY2NjY2NjY3ZW07IH1cbiAgLmh1ZF9fY2FyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwcHg7XG4gICAgbGVmdDogMHB4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvcGFjaXR5OiAwOyB9XG4gICAgLmh1ZF9fY2FyIC5idXR0b24ge1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuNzVlbTtcbiAgICAgIHBhZGRpbmc6IDAgMWVtOyB9XG4gICAgLmh1ZF9fY2FyIC50b3VjaCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmlzLXRvdWNoIC5odWRfX2NhciAubm8tdG91Y2gge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5pcy10b3VjaCAuaHVkX19jYXIgLnRvdWNoIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5odWRfX3Bvd2VyIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMHB4O1xuICAgIGxlZnQ6IDBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAuaHVkX19wb3dlcl9faWNvbiB7XG4gICAgICB3aWR0aDogMzBweDtcbiAgICAgIGhlaWdodDogMzBweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1hcmdpbi1yaWdodDogMS4xMTExMTExMTExZW07IH1cbiAgICAgIC5odWRfX3Bvd2VyX19pY29uIHN2ZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMi4xMTExMTExMTExZW07XG4gICAgICAgIGhlaWd0aDogYXV0bzsgfVxuICAgIC5pcy10b3VjaCAuaHVkX19wb3dlciB7XG4gICAgICBsZWZ0OiAxMTBweDtcbiAgICAgIGJvdHRvbTogMC41ZW07IH1cbiAgICAgIC5pcy10b3VjaCAuaHVkX19wb3dlcl9faWNvbiB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAuaHVkX19zY29yZXMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDBweDtcbiAgICBsZWZ0OiAwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAuaHVkX19zY29yZSB7XG4gICAgZm9udC1zaXplOiAxLjQ0NDQ0NDQ0NDRlbTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogI0ZGRkZGRjsgfVxuICAgIC5odWRfX3Njb3JlLS1vcmJzIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMy4wNzY5MjMwNzY5ZW07IH1cbiAgLmh1ZF9faGVscGVycyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwcHg7XG4gICAgYm90dG9tOiAwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgLmh1ZF9faGVscGVycyAuYnV0dG9uOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMjZweDsgfVxuICAgIC5pcy10b3VjaCAuaHVkX19oZWxwZXJzIHtcbiAgICAgIHRvcDogYXV0bztcbiAgICAgIGJvdHRvbTogYXV0bzsgfVxuICAgIFtkYXRhLXZpZXc9XCJlbmRcIl0uaXMtdG91Y2ggLmh1ZF9faGVscGVycyB7XG4gICAgICB0b3A6IGF1dG87XG4gICAgICBib3R0b206IDA7IH1cbiAgLmh1ZF9fbW9iaWxlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgQGV4dGVuZHMgJWNsZWFyZml4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMHB4O1xuICAgIGJvdHRvbTogMHB4O1xuICAgIGxlZnQ6IDBweDsgfVxuICAgIC5pcy10b3VjaCAuaHVkX19tb2JpbGUge1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGN1YmljLWJlemllcigwLjQ1NSwgMC4wMywgMC41MTUsIDAuOTU1KTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgICAuaXMtY3JlZGl0cy5pcy10b3VjaCAuaHVkX19tb2JpbGUsXG4gICAgW2RhdGEtdmlldz1cImVuZFwiXS5pcy10b3VjaCAuaHVkX19tb2JpbGUge1xuICAgICAgb3BhY2l0eTogMDsgfVxuICAuaHVkX19jb250cm9scy0tbGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmh1ZF9fY29udHJvbHMtLXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cbiAgICAuaHVkX19jb250cm9scy0tcmlnaHQgLmJ1dHRvbi0tc3ZnIHtcbiAgICAgIG1pbi13aWR0aDogNTBweDsgfVxuICAgICAgLmh1ZF9fY29udHJvbHMtLXJpZ2h0IC5idXR0b24tLXN2ZyArIC5idXR0b24tLXN2ZyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxZW07IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgICAgICAgUE9XRVJcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnBvd2VyIHtcbiAgd2lkdGg6IDE3MHB4O1xuICBoZWlnaHQ6IDVweDtcbiAgYmFja2dyb3VuZDogIzQ0NWRhNjtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMCUgNTAlOyB9XG4gIC5wb3dlcl9fcHJvZ3Jlc3Mge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLnBvd2VyX19iYXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDBweDtcbiAgICBsZWZ0OiAwcHg7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB3aGl0ZSAwJSwgI2ZjYjg4MyA1Ni41JSwgI2Y0NjY4ZiA4NCUpO1xuICAgIHdpZHRoOiAxNzBweDtcbiAgICBoZWlnaHQ6IDVweDsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICAgICAgICBWSUVXU1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICAgICAgICBMT0FESU5HXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5sb2FkaW5nIHtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgLmxvYWRpbmcgZGl2ICsgZGl2IHtcbiAgICBtYXJnaW4tdG9wOiAxZW07IH1cbiAgLmxvYWRpbmdfX3NhbnRhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogOTBweDtcbiAgICBoZWlnaHQ6IDEwOXB4OyB9XG4gICAgLmxvYWRpbmdfX3NhbnRhIGkge1xuICAgICAgd2lkdGg6IDE4MHB4O1xuICAgICAgaGVpZ2h0OiAyMThweDtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc2FudGEtbG9hZGVyLnBuZyk7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm9uZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpOyB9XG4gIC5sb2FkaW5nX19oZWFkcGhvbmVzIHN2ZyB7XG4gICAgd2lkdGg6IDE1cHg7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgICAgICAgSE9NRVxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uaG9tZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5ob21lX19jb250YWluZXIge1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgbWFyZ2luLWJvdHRvbTogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMCUpO1xuICAgIHdpZHRoOiA4MCU7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgLmhvbWVfX2NvbnRhaW5lciB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA2OHB4KTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLmhvbWUgLnRpdGxlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMHB4O1xuICAgICAgbGVmdDogMHB4OyB9XG4gICAgLmhvbWUgLmRlc2NyaXB0aW9uIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7IH0gfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICAgICAgICBIT01FIFRVVE9SSUFMXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5ob21lLXR1dG9yaWFsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgcmlnaHQ6IDBweDtcbiAgYm90dG9tOiAwcHg7XG4gIGxlZnQ6IDBweDsgfVxuICAuaG9tZS10dXRvcmlhbF9fY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMjEuMzMzMzMzMzMzMyU7XG4gICAgdG9wOiAxOC42NjY2NjY2NjY3JTtcbiAgICByaWdodDogMTguNjY2NjY2NjY2NyU7IH1cbiAgICAuaG9tZS10dXRvcmlhbF9fY29udGFpbmVyIHAgKyBwIHtcbiAgICAgIG1hcmdpbi10b3A6IDAuNzVlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAuaG9tZS10dXRvcmlhbF9fY29udGFpbmVyIHtcbiAgICAgICAgdG9wOiAxMS4xMTExMTExMTExJTtcbiAgICAgICAgbGVmdDogMzRweDtcbiAgICAgICAgcmlnaHQ6IDM0cHg7IH0gfVxuICAuaG9tZS10dXRvcmlhbF9fYnV0dG9ucyB7XG4gICAgbWFyZ2luLXRvcDogMS42NjY2NjY2NjY3ZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMS42NjY2NjY2NjY3ZW07IH1cbiAgICAuaG9tZS10dXRvcmlhbF9fYnV0dG9ucyAuYnV0dG9uIHtcbiAgICAgIG9wYWNpdHk6IDAuOTsgfVxuICAgICAgLmhvbWUtdHV0b3JpYWxfX2J1dHRvbnMgLmJ1dHRvbiArIC5idXR0b24ge1xuICAgICAgICBtYXJnaW4tbGVmdDogMS41ZW07IH1cbiAgICAuaG9tZS10dXRvcmlhbF9fYnV0dG9ucyAuYnV0dG9uLS1rZXlib2FyZC0tZmx1aWQgKyAuYnV0dG9uLS1rZXlib2FyZC0tZmx1aWQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuNWVtOyB9XG4gICAgICAuaG9tZS10dXRvcmlhbF9fYnV0dG9ucyAuYnV0dG9uLS1rZXlib2FyZC0tZmx1aWQgKyAuYnV0dG9uLS1rZXlib2FyZC0tZmx1aWQgc3ZnIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgICAgICAgQ0FSXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5jYXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMHB4O1xuICByaWdodDogMHB4O1xuICBib3R0b206IDBweDtcbiAgbGVmdDogMHB4OyB9XG4gIC5jYXJfX2NvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDIxLjMzMzMzMzMzMzMlO1xuICAgIHRvcDogMTguNjY2NjY2NjY2NyU7XG4gICAgcmlnaHQ6IDE4LjY2NjY2NjY2NjclOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgIC5jYXJfX2NvbnRhaW5lciB7XG4gICAgICAgIHRvcDogMTEuMTExMTExMTExMSU7XG4gICAgICAgIGxlZnQ6IDM0cHg7XG4gICAgICAgIHJpZ2h0OiAzNHB4OyB9IH1cbiAgLmNhcl9fYnV0dG9ucyB7XG4gICAgbWFyZ2luLXRvcDogMS42NjY2NjY2NjY3ZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMS42NjY2NjY2NjY3ZW07IH1cbiAgICAuY2FyX19idXR0b25zIC5idXR0b24ge1xuICAgICAgb3BhY2l0eTogMC45OyB9XG4gICAgICAuY2FyX19idXR0b25zIC5idXR0b24gKyAuYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEuNWVtOyB9XG4gICAgLmNhcl9fYnV0dG9ucyAuYnV0dG9uLS1rZXlib2FyZC0tZmx1aWQgKyAuYnV0dG9uLS1rZXlib2FyZC0tZmx1aWQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuNWVtOyB9XG4gICAgICAuY2FyX19idXR0b25zIC5idXR0b24tLWtleWJvYXJkLS1mbHVpZCArIC5idXR0b24tLWtleWJvYXJkLS1mbHVpZCBzdmcge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICAgICAgICBFTkRcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmVuZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTsgfVxuICAuZW5kX19jb250YWluZXIge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMzQ0cHgpOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgIC5lbmRfX2NvbnRhaW5lciB7XG4gICAgICAgIHRvcDogMTEuMTExMTExMTExMSU7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA2OHB4KTsgfSB9XG4gIC5lbmRfX3Njb3JlcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cbiAgLmVuZF9fZGV0YWlscyB7XG4gICAgZm9udC1zaXplOiAxLjQ0NDQ0NDQ0NDRlbTtcbiAgICBsaW5lLWhlaWdodDogMS4xNTM4NDYxNTM4ZW07IH1cbiAgICAuZW5kX19kZXRhaWxzID4gZGl2IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5lbmRfX2RldGFpbHMgLm9yYiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDE1cHg7XG4gICAgICBsZWZ0OiAxNXB4O1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IH1cbiAgICAgIC5lbmRfX2RldGFpbHMgLm9yYiArIHNwYW4ge1xuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDsgfVxuICAgIC5lbmRfX2RldGFpbHNfX3RpbWUge1xuICAgICAgbWFyZ2luLXRvcDogMC43NWVtOyB9XG4gICAgLmVuZF9fZGV0YWlsc19fdG90YWwge1xuICAgICAgZm9udC1zaXplOiAyLjkyMzA3NjkyMzFlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgbWFyZ2luLXRvcDogMC4zMjg5NDczNjg0ZW07IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgLmVuZF9fZGV0YWlsc19fdGltZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuNDBlbTsgfVxuICAgICAgLmVuZF9fZGV0YWlsc19fdG90YWwge1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjE5NzM2ODQyMTFlbTsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTY4cHgpIHtcbiAgICAgIC5lbmRfX2RldGFpbHNfX3RpbWUge1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjQwZW07IH1cbiAgICAgIC5lbmRfX2RldGFpbHNfX3RvdGFsIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMC4xOTczNjg0MjExZW07IH0gfVxuICAuZW5kX19wdW5jaGxpbmUge1xuICAgIGZvbnQtc2l6ZTogMS4xMTExMTExMTExZW07XG4gICAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgICBtYXJnaW4tbGVmdDogM2VtO1xuICAgIG1hcmdpbi1ib3R0b206IDAuNGVtOyB9XG4gIC5lbmRfX2J1dHRvbnMge1xuICAgIG1hcmdpbi10b3A6IDRlbTsgfVxuICAgIC5lbmRfX2J1dHRvbnMgYnV0dG9uIHtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gICAgICAuaXMtc2hvd24gLmVuZF9fYnV0dG9ucyBidXR0b24ge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsgfVxuICAgIC5lbmRfX2J1dHRvbnMgLmJ1dHRvbiArIC5idXR0b24ge1xuICAgICAgbWFyZ2luLWxlZnQ6IDFlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAuZW5kX19idXR0b25zIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMS41ZW07IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU2OHB4KSB7XG4gICAgICAuZW5kX19idXR0b25zIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMS41ZW07IH0gfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICAgICAgICBDUkVESVRTXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5jcmVkaXRzX19vdmVybGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgcmlnaHQ6IDBweDtcbiAgYm90dG9tOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICB6LWluZGV4OiAxO1xuICBwb2ludGVyLWV2ZW50czogYXV0bzsgfVxuXG4uY3JlZGl0c19fY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogODAlO1xuICBtYXJnaW4tdG9wOiAxNSU7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIHotaW5kZXg6IDI7IH1cblxuLmNyZWRpdHNfX2Jhc2VsaW5lIHtcbiAgbWFyZ2luLXRvcDogNC40NDQ0NDQ0NDQ0ZW07XG4gIG1hcmdpbi1ib3R0b206IDEuNjY2NjY2NjY2N2VtO1xuICBmb250LXNpemU6IDFlbTsgfVxuXG4uY3JlZGl0c19fYXV0aG9ycyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgLmNyZWRpdHNfX2F1dGhvcnMgPiBkaXY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIG1hcmdpbi1sZWZ0OiA3MHB4OyB9XG4gIC5jcmVkaXRzX19hdXRob3JzIHA6Zmlyc3QtY2hpbGQge1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIGNvbG9yOiByZ2JhKDE0MiwgMTYxLCAxODksIDAuOCk7IH1cbiAgICAuY3JlZGl0c19fYXV0aG9ycyBwOmZpcnN0LWNoaWxkIHNwYW4ge1xuICAgICAgY29sb3I6ICNGRkZGRkY7IH1cbiAgLmNyZWRpdHNfX2F1dGhvcnMgLmxpbmsge1xuICAgIG1hcmdpbi10b3A6IDAuOGVtOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5jcmVkaXRzX19jb250YWluZXIge1xuICAgIG1hcmdpbi10b3A6IDUlOyB9XG4gIC5jcmVkaXRzX19iYXNlbGluZSB7XG4gICAgZm9udC1zaXplOiAwLjgzMzMzMzMzMzNlbTtcbiAgICBtYXJnaW4tdG9wOiAxZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtOyB9XG4gIC5jcmVkaXRzX19hdXRob3JzIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgLmNyZWRpdHNfX2F1dGhvcnMgZGl2IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEuNWVtOyB9XG4gICAgLmNyZWRpdHNfX2F1dGhvcnMgPiBkaXY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICAuY3JlZGl0c19fYXV0aG9ycyBwOmZpcnN0LWNoaWxkIHtcbiAgICAgIGZvbnQtc2l6ZTogMC44MzMzMzMzMzMzZW07IH1cbiAgICAuY3JlZGl0c19fYXV0aG9ycyAubGluayB7XG4gICAgICBtYXJnaW4tdG9wOiAwZW07IH0gfVxuXG4udmlldyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIHJpZ2h0OiAwcHg7XG4gIGJvdHRvbTogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGN1YmljLWJlemllcigwLjQ0NSwgMC4wNSwgMC41NSwgMC45NSk7IH1cbiAgLmlzLWNyZWRpdHMgLnZpZXc6bm90KC52aWV3LS1jcmVkaXRzKSB7XG4gICAgb3BhY2l0eTogMDsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICAgICAgICBERVNDUklQVElPTlxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uZGVzY3JpcHRpb24ge1xuICBtYXJnaW4tdG9wOiAxLjY2NjY2NjY2NjdlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS42NjY2NjY2NjY3ZW07XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7IH1cbiAgLmRlc2NyaXB0aW9uIHAge1xuICAgIHRleHQtc2hhZG93OiAwIDAgMnB4ICMzZTY0YTc7IH1cbiAgLmRlc2NyaXB0aW9uIHAgKyBwIHtcbiAgICBtYXJnaW4tdG9wOiAwLjc1ZW07IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgICAgICAgT1JCXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5vcmIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA2NnB4OyB9XG4gIC5vcmIgc3ZnIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAub3JiIHtcbiAgICAgIHdpZHRoOiAzMHB4OyB9IH1cblxuLnJvdGF0aW9uLXNjcmVlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDEwO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVlcGF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgYm90dG9tO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICB0ZXh0LWluZGVudDogLTk5OTlweDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gIGJvZHkuaXMtdG91Y2ggLnJvdGF0aW9uLXNjcmVlbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9yb3RhdGlvbi1zY3JlZW4uanBnKTsgfSB9XG4iLCJodG1sLCBib2R5LCBkaXYsIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLCBibG9ja3F1b3RlLCBwcmUsXG5hLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsXG5kZWwsIGRmbiwgZW0sIGltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsXG5zbWFsbCwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0dCwgdmFyLFxuYiwgdSwgaSwgY2VudGVyLFxuZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSxcbmZpZWxkc2V0LCBmb3JtLCBsYWJlbCwgbGVnZW5kLFxudGFibGUsIGNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQsXG5hcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLCBlbWJlZCxcbmZpZ3VyZSwgZmlnY2FwdGlvbiwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCxcbm1lbnUsIG5hdiwgb3V0cHV0LCBydWJ5LCBzZWN0aW9uLCBzdW1tYXJ5LFxudGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbm9sLCB1bCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbmNhcHRpb24sIHRoLCB0ZCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbnEsIGJsb2NrcXVvdGUge1xuICBxdW90ZXM6IG5vbmU7XG59XG5xOmJlZm9yZSwgcTphZnRlciwgYmxvY2txdW90ZTpiZWZvcmUsIGJsb2NrcXVvdGU6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBjb250ZW50OiBub25lO1xufVxuXG5hIGltZyB7XG4gIGJvcmRlcjogbm9uZTtcbn1cblxuYXJ0aWNsZSwgYXNpZGUsIGRldGFpbHMsIGZpZ2NhcHRpb24sIGZpZ3VyZSwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWFpbiwgbWVudSwgbmF2LCBzZWN0aW9uLCBzdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4iLCJcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogICAgICAgIENMRUFSRklYXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJWNsZWFyZml4IHtcbiAgICB6b29tOiAxO1xuXG4gICAgJjpiZWZvcmUsXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiLlwiO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogICAgICAgIEJVVFRPTlxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiVidXR0b24tcmVzZXQge1xuICAgIEBleHRlbmQgJVJlZ3VsYXI7XG4gICAgYXBwZWFyYW5jZTpub25lO1xuICAgIGJvcmRlcjowO1xuICAgIG91dGxpbmU6MDtcbiAgICBiYWNrZ3JvdW5kOm5vbmU7XG4gICAgY3Vyc29yOnBvaW50ZXI7XG4gICAgcGFkZGluZzowO1xuICAgIG1hcmdpbjowO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjpyZ2JhKDAsMCwwLDApO1xuICAgIHVzZXItc2VsZWN0Om5vbmU7XG59XG5cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgICAgICAgQk9SREVSLUJPWFxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiVib3JkZXItYm94IHtcbiAgICBib3gtc2l6aW5nOmJvcmRlci1ib3g7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogICAgICAgIFNNT09USFxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiVzbW9vdGgge1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogICAgICAgIEZVTExcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4lZnVsbCB7XG4gICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDBweCAwcHggMHB4IDBweCk7XG59XG5cbiVmdWxsLS1wZXJjZW50IHtcbiAgICB3aWR0aDoxMDAlO1xuICAgIGhlaWdodDoxMDAlO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICAgICAgICBFTExJUFNJU1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiVlbGxpcHNpc3tcbiAgICB3aGl0ZS1zcGFjZTpub3dyYXA7XG4gICAgb3ZlcmZsb3c6aGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7XG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICAgICAgICBGT05UIEZBQ0UgREVDTEFSQVRJT05cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdsb25kcmluYV9zb2xpZHJlZ3VsYXInO1xuICAgIHNyYzogdXJsKCcuLi9mb250cy9sb25kcmluYXNvbGlkLXJlZ3VsYXItd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgICAgICAgIHVybCgnLi4vZm9udHMvbG9uZHJpbmFzb2xpZC1yZWd1bGFyLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogICAgICAgIFZBUklBQkxFUyBERUNMQVJBVElPTlxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiVSZWd1bGFyIHtcbiAgICBAZXh0ZW5kICVzbW9vdGg7IC8vIE9wdGlvbm5hbFxuICAgIGZvbnQtZmFtaWx5OiAnbG9uZHJpbmFfc29saWRyZWd1bGFyJztcbn1cblxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICAgICAgICBHTE9CQUxcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5ib2R5IHtcbiAgICBAZXh0ZW5kICVSZWd1bGFyO1xuICAgIGZvbnQtc2l6ZTokYmFzZS1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6JGJhc2UtbGluZS1oZWlnaHQ7XG4gICAgY29sb3I6JGNvbG9yLXdoaXRlO1xufVxuIiwiLy8gSW1wb3J0ZWQgZnJvbSBCb3VyYm9uXG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3Igc2V0dGluZyBhbiBlbGVtZW504oCZcyBwb3NpdGlvbi4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtQb3NpdGlvbn0gJHBvc2l0aW9uIFtyZWxhdGl2ZV1cbi8vLyAgIEEgQ1NTIHBvc2l0aW9uIHZhbHVlXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICRjb29yZGluYXRlcyBbbnVsbCBudWxsIG51bGwgbnVsbF1cbi8vLyAgIExpc3Qgb2YgdmFsdWVzIHRoYXQgY29ycmVzcG9uZCB0byB0aGUgNC12YWx1ZSBzeW50YXggZm9yIHRoZSBlZGdlcyBvZiBhIGJveFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIG51bGwgbnVsbCAxMGVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbGVmdDogMTBlbTtcbi8vLyAgICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8vICAgICB0b3A6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGlzLWxlbmd0aFxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gdW5wYWNrXG5cbkBtaXhpbiBwb3NpdGlvbigkcG9zaXRpb246IHJlbGF0aXZlLCAkY29vcmRpbmF0ZXM6IG51bGwgbnVsbCBudWxsIG51bGwpIHtcbiAgQGlmIHR5cGUtb2YoJHBvc2l0aW9uKSA9PSBsaXN0IHtcbiAgICAkY29vcmRpbmF0ZXM6ICRwb3NpdGlvbjtcbiAgICAkcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgJGNvb3JkaW5hdGVzOiB1bnBhY2soJGNvb3JkaW5hdGVzKTtcblxuICAkb2Zmc2V0czogKFxuICAgIHRvcDogICAgbnRoKCRjb29yZGluYXRlcywgMSksXG4gICAgcmlnaHQ6ICBudGgoJGNvb3JkaW5hdGVzLCAyKSxcbiAgICBib3R0b206IG50aCgkY29vcmRpbmF0ZXMsIDMpLFxuICAgIGxlZnQ6ICAgbnRoKCRjb29yZGluYXRlcywgNClcbiAgKTtcblxuICBwb3NpdGlvbjogJHBvc2l0aW9uO1xuXG4gIEBlYWNoICRvZmZzZXQsICR2YWx1ZSBpbiAkb2Zmc2V0cyB7XG4gICAgQGlmIGlzLWxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICN7JG9mZnNldH06ICR2YWx1ZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogICAgICAgIExJTktcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4ubGluayB7XG4gICAgb3V0bGluZTpub25lO1xuICAgIHRleHQtZGVjb3JhdGlvbjpub25lO1xuXG4gICAgJi0tZXh0ZXJuYWwge1xuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbigpO1xuICAgICAgICBkaXNwbGF5OmlubGluZS1ibG9jazs7XG4gICAgICAgIGZvbnQtc2l6ZTplbSgxOHB4KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ZW0oMThweCk7XG4gICAgICAgIGNvbG9yOnJnYmEoIzhlYTFiZCwgMC44KTtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgZmlsbDpyZ2JhKCM4ZWExYmQsIDAuOCk7XG4gICAgICAgICAgICB3aWR0aDplbSgxNnB4LCAxOHB4KTtcbiAgICAgICAgICAgIC8vIGhlaWdodDplbSgxNnB4LCAxOHB4KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKCk7XG4gICAgICAgICAgICB0b3A6ZW0oMnB4LCAxOHB4KTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDo4cHg7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOmZpbGwgMC41cyAkZWFzZUluT3V0UXVhcnQ7XG4gICAgICAgIH1cblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKCk7XG4gICAgICAgICAgICBkaXNwbGF5OmlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRyYW5zaXRpb246Y29sb3IgMC41cyAkZWFzZUluT3V0UXVhcnQ7XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6XCJcIjtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgbnVsbCAwcHggLTFweCBudWxsKTtcbiAgICAgICAgICAgICAgICB3aWR0aDoxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDoycHg7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjp3aWR0aCAwLjVzICRlYXNlSW5PdXRRdWFydDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOnJnYmEoIzhlYTFiZCwgMC44KVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYm9keTpub3QoLmlzLXRvdWNoKSAmOmhvdmVyIHtcbiAgICAgICAgICAgIC8vIHN2ZyB7XG4gICAgICAgICAgICAvLyAgICAgZmlsbDokY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAvLyB9XG5cbiAgICAgICAgICAgIC8vIHNwYW4ge1xuICAgICAgICAgICAgLy8gICAgIGNvbG9yOiRjb2xvci13aGl0ZTtcbiAgICAgICAgICAgIC8vIH1cblxuICAgICAgICAgICAgc3BhbjphZnRlciB7XG4gICAgICAgICAgICAgICAgd2lkdGg6MCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtb2JpbGUge1xuICAgICAgICAgICAgZm9udC1zaXplOmVtKDE1cHgpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ZW0oMTVweCk7XG4gICAgICAgIH1cbiAgICB9XG59IiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgICAgICAgQVBQXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmFwcCB7XG4gICAgQGluY2x1ZGUgcG9zaXRpb24oZml4ZWQsIDBweCAwcHggMHB4IDBweCk7XG4gICAgd2lkdGg6MTAwJTtcbiAgICBoZWlnaHQ6MTAwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb2ludGVyLWV2ZW50czpub25lO1xuICAgIHVzZXItc2VsZWN0Om5vbmU7XG5cbiAgICBidXR0b24sIGEge1xuICAgICAgICBwb2ludGVyLWV2ZW50czphdXRvO1xuICAgIH1cblxuICAgICZfX2dhbWUge1xuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMHB4IDBweCAwcHggMHB4KTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOjEwMCU7XG4gICAgICAgIGhlaWdodDoxMDAlO1xuICAgIH1cblxuICAgICZfX3ZpZXdzIHtcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDBweCAwcHggMHB4IDBweCk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDoxMDAlO1xuICAgICAgICBoZWlnaHQ6MTAwJTtcbiAgICB9XG5cbiAgICAmX19odWQge1xuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgZW0oNTRweCkgZW0oODhweCkgZW0oNTRweCkgZW0oODhweCkpO1xuXG4gICAgICAgIEBpbmNsdWRlIG1vYmlsZSB7XG4gICAgICAgICAgICB0b3A6MTRweDtcbiAgICAgICAgICAgIGJvdHRvbToxNHB4O1xuICAgICAgICAgICAgbGVmdDozNHB4O1xuICAgICAgICAgICAgcmlnaHQ6MzRweDtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICAgICAgICBNRURJQSBRVUVSSUVTXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQG1peGluIHZlcnktbGFyZ2UtZGVza3RvcCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTkxOXB4KSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGxhcmdlLWRlc2t0b3Age1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEzNjdweCkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZnRlci0xMTgwIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMTgwcHgpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc21hbGwtZGVza3RvcCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBvcnRyYWl0IHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc21hbGwtcG9ydHJhaXQge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDgwMHB4KSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG1vYmlsZSB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc21hbGwtbW9iaWxlIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjhweCkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59IiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgICAgICAgVklFV1Ncbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AaW1wb3J0ICdsb2FkaW5nJztcbkBpbXBvcnQgJ2hvbWUnO1xuQGltcG9ydCAnaG9tZS10dXRvcmlhbCc7XG5AaW1wb3J0ICdjYXInO1xuQGltcG9ydCAnZW5kJztcbkBpbXBvcnQgJ2NyZWRpdHMnO1xuXG4udmlldyB7XG4gICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDBweCAwcHggMHB4IDBweCk7XG4gICAgdmlzaWJpbGl0eTpoaWRkZW47XG4gICAgdHJhbnNpdGlvbjpvcGFjaXR5IDAuNXMgJGVhc2VJbk91dFNpbmU7XG5cbiAgICAuaXMtY3JlZGl0cyAmOm5vdCgudmlldy0tY3JlZGl0cykge1xuICAgICAgICBvcGFjaXR5OjA7XG4gICAgfVxuICAgIFxuICAgICYtLWhvbWUge1xuXG4gICAgfVxufSIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogICAgICAgIEhPTUVcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uaG9tZSB7XG4gICAgZGlzcGxheTpmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOmNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczpmbGV4LXN0YXJ0O1xuICAgIC8vIGp1c3RpZnktY29udGVudDpjZW50ZXI7XG4gICAgd2lkdGg6MTAwJTtcbiAgICBoZWlnaHQ6MTAwJTtcbiAgICBcbiAgICAmX19jb250YWluZXIge1xuICAgICAgICBtYXJnaW4tdG9wOmF1dG87XG4gICAgICAgIG1hcmdpbi1ib3R0b206YXV0bztcbiAgICAgICAgbWFyZ2luLWxlZnQ6YXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OmF1dG87XG4gICAgICAgIC8vIG1hcmdpbi10b3A6LTIyJTtcbiAgICAgICAgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTIwJSk7XG4gICAgICAgIC8vIG1hcmdpbi1ib3R0b206ZW0oNDM1cHgpO1xuXG4gICAgICAgIC8vIHdpZHRoOmNhbGMoMTAwJSAtIDM0NHB4KTtcbiAgICAgICAgd2lkdGg6ODAlO1xuXG4gICAgICAgIEBpbmNsdWRlIG1vYmlsZSB7XG4gICAgICAgICAgICAvLyB0b3A6IDM0cHg7XG4gICAgICAgICAgICAvLyB0b3A6cGVyY2VudGFnZSgxMDAvOTAwKTtcbiAgICAgICAgICAgIHdpZHRoOmNhbGMoMTAwJSAtIDY4cHgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAgICAgLnRpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwcHggbnVsbCBudWxsIDBweCk7XG4gICAgICAgIH1cblxuICAgICAgICAuZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDowO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gLmJ1dHRvbiB7XG4gICAgLy8gICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAxMDBweCBudWxsIG51bGwgMTAwcHgpO1xuICAgIC8vIH1cbn0iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICAgICAgICBMT0FESU5HXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmxvYWRpbmcge1xuICAgIGRpc3BsYXk6ZmxleDtcbiAgICB3aWR0aDoxMDAlO1xuICAgIGhlaWdodDoxMDAlO1xuICAgIGFsaWduLWl0ZW1zOmNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO1xuICAgIGZsZXgtZGlyZWN0aW9uOmNvbHVtbjtcblxuICAgIGRpdiArIGRpdiB7XG4gICAgICAgIG1hcmdpbi10b3A6MWVtO1xuICAgIH1cblxuICAgICZfX3NhbnRhIHtcbiAgICAgICAgZGlzcGxheTpibG9jaztcbiAgICAgICAgd2lkdGg6OTBweDtcbiAgICAgICAgaGVpZ2h0OjEwOXB4O1xuXG4gICAgICAgIGkge1xuICAgICAgICAgICAgd2lkdGg6MTgwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6MjE4cHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOnVybCguLi9pbWFnZXMvc2FudGEtbG9hZGVyLnBuZyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDpub25lO1xuICAgICAgICAgICAgZGlzcGxheTpibG9jaztcbiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46MCAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOnNjYWxlKDAuNSk7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgICZfX2hlYWRwaG9uZXMge1xuICAgICAgICBzdmcge1xuICAgICAgICAgICAgd2lkdGg6MTVweDtcbiAgICAgICAgICAgIGhlaWdodDphdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6NXB4O1xuICAgICAgICB9XG4gICAgfVxufSIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogICAgICAgIENBUlxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5jYXIgeyAgIFxuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwcHggMHB4IDBweCAwcHgpO1xuXG4gICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6cGVyY2VudGFnZSgzMjAvMTUwMCk7XG4gICAgICAgIHRvcDpwZXJjZW50YWdlKDE2OC85MDApO1xuICAgICAgICByaWdodDpwZXJjZW50YWdlKDE2OC85MDApO1xuXG4gICAgICAgIEBpbmNsdWRlIG1vYmlsZSB7XG4gICAgICAgICAgICAvLyB0b3A6IDM0cHg7XG4gICAgICAgICAgICB0b3A6cGVyY2VudGFnZSgxMDAvOTAwKTtcbiAgICAgICAgICAgIGxlZnQ6IDM0cHg7XG4gICAgICAgICAgICByaWdodDogMzRweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbnMge1xuICAgICAgICBtYXJnaW4tdG9wOmVtKDMwcHgpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOmVtKDMwcHgpO1xuXG4gICAgICAgIC5idXR0b24ge1xuICAgICAgICAgICAgLy8gdHJhbnNmb3JtLW9yaWdpbjowIDUwJTtcbiAgICAgICAgICAgIC8vIHRyYW5zZm9ybTpzY2FsZSgwLjkpO1xuICAgICAgICAgICAgb3BhY2l0eTowLjk7XG5cbiAgICAgICAgICAgICYgKyAuYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDoxLjVlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5idXR0b24tLWtleWJvYXJkLS1mbHVpZCArIC5idXR0b24tLWtleWJvYXJkLS1mbHVpZCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDowLjVlbTtcbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOnNjYWxlKC0xLCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICAgICAgICBIT01FIFRVVE9SSUFMXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmhvbWUtdHV0b3JpYWwgeyAgIFxuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwcHggMHB4IDBweCAwcHgpO1xuXG4gICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6cGVyY2VudGFnZSgzMjAvMTUwMCk7XG4gICAgICAgIHRvcDpwZXJjZW50YWdlKDE2OC85MDApO1xuICAgICAgICByaWdodDpwZXJjZW50YWdlKDE2OC85MDApO1xuXG4gICAgICAgIHAgKyBwIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6MC43NWVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAgICAgICAgIC8vIHRvcDogMzRweDtcbiAgICAgICAgICAgIHRvcDpwZXJjZW50YWdlKDEwMC85MDApO1xuICAgICAgICAgICAgbGVmdDogMzRweDtcbiAgICAgICAgICAgIHJpZ2h0OiAzNHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9ucyB7XG4gICAgICAgIG1hcmdpbi10b3A6ZW0oMzBweCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ZW0oMzBweCk7XG5cbiAgICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICAgICAvLyB0cmFuc2Zvcm0tb3JpZ2luOjAgNTAlO1xuICAgICAgICAgICAgLy8gdHJhbnNmb3JtOnNjYWxlKDAuOSk7XG4gICAgICAgICAgICBvcGFjaXR5OjAuOTtcblxuICAgICAgICAgICAgJiArIC5idXR0b24ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OjEuNWVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmJ1dHRvbi0ta2V5Ym9hcmQtLWZsdWlkICsgLmJ1dHRvbi0ta2V5Ym9hcmQtLWZsdWlkIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OjAuNWVtO1xuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06c2NhbGUoLTEsIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogICAgICAgIFBPV0VSXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLnBvd2VyIHtcbiAgICB3aWR0aDoxNzBweDtcbiAgICBoZWlnaHQ6NXB4O1xuICAgIC8vIGJveC1zaGFkb3c6IDAgMCA0MHB4IDAgI0ZGNzE1QTtcbiAgICAvLyBiYWNrZ3JvdW5kOnJnYmEoJGNvbG9yLXdoaXRlLCAwLjMpO1xuICAgIGJhY2tncm91bmQ6IzQ0NWRhNjtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOjAlIDUwJTtcblxuICAgICZfX3Byb2dyZXNzIHtcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oKTtcbiAgICAgICAgd2lkdGg6MCU7XG4gICAgICAgIGhlaWdodDoxMDAlO1xuICAgICAgICBvdmVyZmxvdzpoaWRkZW47XG4gICAgfVxuXG4gICAgJl9fYmFyIHtcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDBweCBudWxsIG51bGwgMHB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2IoMjU1LCAyNTUsIDI1NSkgMCUsIHJnYigyNTIsIDE4NCwgMTMxKSA1Ni41JSwgcmdiKDI0NCwgMTAyLCAxNDMpIDg0JSk7XG4gICAgICAgIHdpZHRoOjE3MHB4O1xuICAgICAgICBoZWlnaHQ6NXB4O1xuICAgIH1cbn0iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICAgICAgICBFTkRcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uZW5kIHtcbiAgICBkaXNwbGF5OmZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246Y29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7XG4gICAganVzdGlmeS1jb250ZW50OmNlbnRlcjtcbiAgICB3aWR0aDoxMDAlO1xuICAgIGhlaWdodDoxMDAlO1xuICAgIFxuICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgIC8vIG1hcmdpbi10b3A6YXV0bztcbiAgICAgICAgLy8gbWFyZ2luLWJvdHRvbTphdXRvO1xuICAgICAgICAvLyAvLyBtYXJnaW4tdG9wOi0yMiU7XG4gICAgICAgIC8vIHRyYW5zZm9ybTp0cmFuc2xhdGVZKC0yMCUpO1xuICAgICAgICAvLyAvLyBtYXJnaW4tYm90dG9tOmVtKDQzNXB4KTtcbiAgICBcbiAgICAgICAgbWFyZ2luLWxlZnQ6YXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OmF1dG87XG4gICAgICAgIHdpZHRoOmNhbGMoMTAwJSAtIDM0NHB4KTtcblxuICAgICAgICBAaW5jbHVkZSBtb2JpbGUge1xuICAgICAgICAgICAgdG9wOnBlcmNlbnRhZ2UoMTAwLzkwMCk7XG4gICAgICAgICAgICB3aWR0aDpjYWxjKDEwMCUgLSA2OHB4KTtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgJl9fc2NvcmVzIHtcbiAgICAgICAgZGlzcGxheTpmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczpmbGV4LWVuZDtcbiAgICB9XG5cbiAgICAmX19kZXRhaWxzIHtcbiAgICAgICAgZm9udC1zaXplOmVtKDI2cHgpO1xuICAgICAgICBsaW5lLWhlaWdodDplbSgzMHB4LCAyNnB4KTtcblxuICAgICAgICAmID4gZGl2IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKCk7XG4gICAgICAgIH1cblxuICAgICAgICAub3JiIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAxNXB4IG51bGwgbnVsbCAxNXB4KTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG5cbiAgICAgICAgICAgICYgKyBzcGFuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDo0MHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGltZSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOjAuNzVlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RvdGFsIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTplbSg3NnB4LCAyNnB4KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OjE7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOmVtKDI1cHgsIDc2cHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAgICAgICAgICZfX3RpbWUge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6MC40MGVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX190b3RhbCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDplbSgxNXB4LCA3NnB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIHNtYWxsLW1vYmlsZSB7XG4gICAgICAgICAgICAmX190aW1lIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOjAuNDBlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fdG90YWwge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6ZW0oMTVweCwgNzZweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19wdW5jaGxpbmUge1xuICAgICAgICBmb250LXNpemU6ZW0oMjBweCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OmVtKDIwcHgsIDIwcHgpO1xuICAgICAgICBtYXJnaW4tbGVmdDplbSg2MHB4LCAyMHB4KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTplbSg4cHgsIDIwcHgpO1xuICAgIH1cblxuICAgICZfX2J1dHRvbnMge1xuICAgICAgICBtYXJnaW4tdG9wOjRlbTtcblxuICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6bm9uZTtcbiAgICAgICAgICAgIC5pcy1zaG93biAmIHtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czphdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmJ1dHRvbiArIC5idXR0b24ge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6MWVtO1xuICAgICAgICB9XG4gICAgICAgIFxuXG4gICAgICAgIEBpbmNsdWRlIG1vYmlsZSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOjEuNWVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgc21hbGwtbW9iaWxlIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6MS41ZW07XG4gICAgICAgIH1cbiAgICB9XG59IiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgICAgICAgQ1JFRElUU1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5jcmVkaXRzIHtcbiAgICAmX19vdmVybGF5IHtcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDBweCAwcHggMHB4IDBweCk7XG4gICAgICAgIGJhY2tncm91bmQ6cmdiYSgkY29sb3ItYmxhY2ssIDAuNik7XG4gICAgICAgIHotaW5kZXg6MTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6YXV0bztcbiAgICB9XG5cbiAgICAmX19jb250YWluZXIge1xuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbigpO1xuICAgICAgICB3aWR0aDo4MCU7XG4gICAgICAgIG1hcmdpbi10b3A6MTUlO1xuICAgICAgICBtYXJnaW4tbGVmdDphdXRvO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6YXV0bztcbiAgICAgICAgei1pbmRleDoyO1xuICAgIH1cblxuICAgICZfX2Jhc2VsaW5lIHtcbiAgICAgICAgbWFyZ2luLXRvcDplbSg4MHB4LCAxOHB4KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTplbSgzMHB4LCAxOHB4KTtcbiAgICAgICAgZm9udC1zaXplOmVtKDE4cHgpO1xuICAgIH1cblxuICAgICZfX2F1dGhvcnMge1xuICAgICAgICBkaXNwbGF5OmZsZXg7XG4gICAgICAgIHdpZHRoOjEwMCU7XG4gICAgICAgIGp1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O1xuXG4gICAgICAgICYgPiBkaXY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6NzBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIHA6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgZm9udC1zaXplOmVtKDE4cHgpO1xuICAgICAgICAgICAgY29sb3I6cmdiYSgjOGVhMWJkLCAwLjgpO1xuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBjb2xvcjokY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubGluayB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOjAuOGVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6NSU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYXNlbGluZSB7XG4gICAgICAgICAgICBmb250LXNpemU6ZW0oMTVweCk7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOmVtKDE1cHgsIDE1cHgpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTplbSgxNXB4LCAxNXB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2F1dGhvcnMge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246Y29sdW1uO1xuXG4gICAgICAgICAgICBkaXYge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206MS41ZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYgPiBkaXY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OjA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHA6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTplbSgxNXB4KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmxpbmsge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6MGVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogICAgICAgIE9SQlxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5vcmIge1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKCk7XG4gICAgd2lkdGg6NjZweDtcblxuICAgIHN2ZyB7XG4gICAgICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgICAgIHdpZHRoOjEwMCU7XG4gICAgICAgIGhlaWdodDphdXRvO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1vYmlsZSB7XG4gICAgICAgIHdpZHRoOjMwcHg7XG4gICAgfVxufSJdfQ== */
