/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
img, legend {
    border: 0
}

#content {
    width: 99.9%;
}

#content.page #main:after, #content.page header:after, .row:after {
    content: " ";
    clear: both
}

html {
    font-family: sans-serif;
    -ms-text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%
}

body {
    margin: 0;
    overflow-x: hidden;
}

h1, h2, h3, h4{
    font-weight: 500;
}

article, aside, details, figcaption, figure, footer, header, main, menu, nav, section, summary {
    display: block
}

audio, canvas, progress, video {
    display: inline-block;
    vertical-align: baseline
}

audio:not([controls]) {
    display: none;
    height: 0
}

[hidden], template {
    display: none
}

#content.main-page .sqr.small, .row:after {
    display: block
}

a {
    color: inherit;
    background-color: transparent;
    text-decoration: none
}

a:active, a:hover {
    outline: 0
}

abbr[title] {
    border-bottom: 1px dotted
}

b, optgroup, strong {
    font-weight: 700
}

dfn {
    font-style: italic
}

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

mark {
    background: #ff0;
    color: #000
}

small {
    font-size: 80%
}

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

sup {
    top: -.5em
}

sub {
    bottom: -.25em
}

svg:not(:root) {
    overflow: hidden
}

figure {
    margin: 1em 40px
}

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

pre, textarea {
    overflow: auto
}

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

button, input, optgroup, select, textarea {
    color: inherit;
    font: inherit;
    margin: 0
}

button {
    overflow: visible
}

button, select {
    text-transform: none
}

input[type=reset], button, html input[type=button], input[type=submit] {
    -webkit-appearance: button;
    cursor: pointer
}

button[disabled], html input[disabled] {
    cursor: default
}

button::-moz-focus-inner, input::-moz-focus-inner {
    border: 0;
    padding: 0
}

input {
    line-height: normal
}

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

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

input[type=search] {
    -webkit-appearance: textfield;
    box-sizing: content-box
}

input[type=search]::-webkit-search-cancel-button, input[type=search]::-webkit-search-decoration {
    -webkit-appearance: none
}

fieldset {
    border: 1px solid silver;
    margin: 0 2px;
    padding: .35em .625em .75em
}

#content.page #main, #content.page header, .row {
    max-width: 100%;
    margin: 0 auto;
}

#content.page #main ol.breadcrumb, legend, td, th {
    padding: 0
}

legend {
}

table {
    border-collapse: collapse;
    border-spacing: 0
}

@font-face {
    font-family: wf_SegoeUILight;
    src: url(http://i.s-microsoft.com/fonts/Segoe-UI/Cyrillic/Light/latest.eot);
    src: url(http://i.s-microsoft.com/fonts/Segoe-UI/Cyrillic/Light/latest.eot?#iefix) format("embedded-opentype"), url(http://i.s-microsoft.com/fonts/Segoe-UI/Cyrillic/Light/latest.woff) format("woff"), url(http://i.s-microsoft.com/fonts/Segoe-UI/Cyrillic/Light/latest.ttf) format("truetype"), url(http://i.s-microsoft.com/fonts/Segoe-UI/Cyrillic/Light/latest.svg#web) format("svg");
    font-weight: 400;
    font-style: normal
}

@font-face {
    font-family: wf_SegoeUINormal;
    src: url(http://i.s-microsoft.com/fonts/Segoe-UI/Cyrillic/Normal/latest.eot);
    src: url(http://i.s-microsoft.com/fonts/Segoe-UI/Cyrillic/Normal/latest.eot?#iefix) format("embedded-opentype"), url(http://i.s-microsoft.com/fonts/Segoe-UI/Cyrillic/Normal/latest.woff) format("woff"), url(http://i.s-microsoft.com/fonts/Segoe-UI/Cyrillic/Normal/latest.ttf) format("truetype"), url(http://i.s-microsoft.com/fonts/Segoe-UI/Cyrillic/Normal/latest.svg#web) format("svg");
    font-weight: 400;
    font-style: normal
}

#content.main-page .sqr {
    box-sizing: border-box;
    width: 25%;
    float: right;
    text-align: center
}

#content.main-page .sqr.big {
    display: none
}

#content.main-page .sqr.news {
    box-sizing: border-box;
    width: 50%;
    float: right
}

@media (min-width: 1400px) {
    #content.main-page .sqr.search{
    /*, #content.main-page .sqr.flip*/
        float: right!important;
    }
    .elm:before{
        -webkit-transform: skewX(-30deg);
        transform: skewX(-30deg)!important;
        right: -5px!important;
    }
    .elm:after{
        -webkit-transform: skewX(30deg);
        transform: skewX(30deg)!important;
        left: -5px!important;
    }
    #content.main-page #main .sqr.main-news .front div.media-img, #content.main-page header .sqr.main-news .front div.media-img{
        margin-top: 20%!important;
        height: 50%!important;
    }
    #content.main-page #main .sqr.infocenter .card .back h2{
        font-size: 1.2em;
    }

    #content.main-page .sqr {
        box-sizing: border-box;
        width: 20%;
        float: right
    }

    #content.main-page .sqr.small {
        display: none
    }

    #content.main-page .sqr.big {
        display: block
    }

    #content.main-page .sqr.news {
        box-sizing: border-box;
        width: 40%;
        float: right
    }

    body {
        font-size: 16px
    }
    .sqr.main-news{
        border-bottom: 1px solid rgba(0, 0, 0, .5)!important;
    }
}

#content.main-page #your-project {
    margin-left: 16.66667%;
    box-sizing: border-box;
    width: 66.66667%
}

#content.main-page #site-map div {
    box-sizing: border-box;
    width: 25%;
    float: left
}

#content.main-page #partners div {
    box-sizing: border-box;
    width: 16.66667%;
    display: inline-block;
    float: none;

}

#content.page header {
    margin-left: auto
}

#content.page header:after {
    display: block
}

#content.page header .nav {
    margin-left: 16.66667%;
    box-sizing: border-box;
    width: 66.66667%;
    float: left
}

#content.page header .nav .logo {
    box-sizing: border-box;
    width: 4.16667%;
    float: left
}

#content.page header .nav ul {
    box-sizing: border-box;
    width: 87.5%;
    float: left
}

#content.page header .nav .lang {
    box-sizing: border-box;
    width: 4.16667%;
    float: left
}

#content.page #main {
    margin-left: auto
}

#content.page #main article, #content.page #main ol.breadcrumb {
    margin: 0 0 0 16.66667%;
    width: 66.66667%;
    box-sizing: border-box;
    float: left
}

#content.page #main:after {
    display: block
}

body {
    font-size: 16px;
    font-family: Tahoma, Geneva, sans-serif;
}

* {
    box-sizing: border-box
}

a:hover {
    text-decoration: underline
}

#content.main-page header {
    background: url(/assets/last_style/public/img/astana-bg.jpg) no-repeat;
    background-size: cover
}

#content.main-page #main .title, #content.main-page header .title {
    float: left;
    text-align: left;
    padding: 2% !important;
    border: 1px solid rgba(0, 0, 0, .5)
}

#content.main-page #main .title h2, #content.main-page header .title h2 {
    font-size: 2.3em;
    color: #fff;
    opacity: .8
}

#content.main-page #main .logo, #content.main-page header .logo {
    float: right;
    background: #fff;
    padding: 4% !important;
    text-align: center;
    border: 1px solid rgba(0, 0, 0, .5)
}

#content.main-page #main .logo img, #content.main-page header .logo img {
    width: 45%;
    margin-bottom: 25px
}

#content.main-page #main .logo a, #content.main-page header .logo a {
    font-family: Tahoma, Geneva, sans-serif;
    color: #0071bc;
    margin: 0 15px;
    padding-bottom: 4px
}

#content.main-page #main .logo a.active, #content.main-page #main .logo a:hover, #content.main-page header .logo a.active, #content.main-page header .logo a:hover {
    text-decoration: none;
    border-bottom: 2px solid #0071bc
}

#content.main-page #main .sqr, #content.main-page header .sqr {
    cursor: auto;
    border: none;
    padding: 0;
    position: relative
}

#content.main-page #main .sqr hr, #content.main-page header .sqr hr {
    display: block;
    margin: 15px auto 0;
    width: 20%;
    height: 3px;
    border: none
}

#content.main-page #main .sqr h2, #content.main-page header .sqr h2 {
    margin: 0;
    text-transform: uppercase
}

#content.main-page #main .sqr.flip, #content.main-page header .sqr.flip {
    cursor: pointer;
    -webkit-perspective: 1000px;
    perspective: 1000px
}

#content.main-page #main .sqr.flip .card, #content.main-page header .sqr.flip .card {
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
    -webkit-transition: -webkit-transform .6s;
    /*transition: -webkit-transform .6s;*/
    /*transition: transform .6s;*/
    transition: transform .6s, -webkit-transform .6s
}
#content.main-page #main .sqr.flip .card .back, #content.main-page header .sqr.flip .card .back{
    transition: transform .6s, -webkit-transform .6s
}
#content.main-page #main .sqr.flip .card .front, #content.main-page header .sqr.flip .card .front{
    transition: transform .6s, -webkit-transform .6s
}
#content.main-page #main .sqr.flip .card .back{
    -webkit-transform: rotateY(180deg);
    transform: rotateY(180deg)
}
#content.main-page #main .sqr.flip .card:hover{
    -webkit-transform: rotateY(180deg);
    transform: rotateY(180deg)
}
#content.main-page header .sqr.flip .card .back{
    -webkit-transform: rotateY(180deg);
    transform: rotateY(180deg)
}
#content.main-page header .sqr.flip .card:hover {
    -webkit-transform: rotateY(180deg);
    transform: rotateY(180deg)
}
#content.main-page #main .sqr.flip .card:hover .back, #content.main-page header .sqr.flip .card:hover .back{
    opacity: 1;
}
#content.main-page #main .sqr.flip .card:hover .back, #content.main-page header .sqr.flip .card:hover .back{
    backface-visibility: visible;
    -webkit-backface-visibility: visible;
}
#content.main-page #main .sqr.flip .card:hover .front, #content.main-page header .sqr.flip .card:hover .front {
    opacity: 0;
}

#content.main-page #main .sqr.news, #content.main-page header .sqr.news {
    background-size: 100% 100% !important;
    background-position-x: 0 !important;
}

@media (min-width: 1400px) {
    #content.main-page #main .sqr.news, #content.main-page header .sqr.news {
        /*background-position: 0 50% !important;*/
    }
}

#content.main-page #main .sqr.news .front, #content.main-page header .sqr.news .front {
    padding: 0
}

#content.main-page #main .sqr.news .front .wrapper, #content.main-page header .sqr.news .front .wrapper {
    background: rgba(0, 0, 0, .5);
    border: none;
    padding: 7%;
    position: absolute;
    bottom: 0;
}

#content.main-page #main .sqr.news .front .wrapper *, #content.main-page header .sqr.news .front .wrapper * {
    border: 0;
    padding: 0
}

#content.main-page #main .sqr.news .front .wrapper .text, #content.main-page header .sqr.news .front .wrapper .text {
    width: 50%;
    height: 70%;
    text-align: left;
    color: #fff;
    font-family: Tahoma, Geneva, sans-serif;
}

#content.main-page #main .sqr.news .front .wrapper .text #slider, #content.main-page header .sqr.news .front .wrapper .text #slider {
    width: 85%;
    height: 80%;
    overflow: hidden
}

#content.main-page #main .sqr.news .front .wrapper .text #slider .slider-body, #content.main-page header .sqr.news .front .wrapper .text #slider .slider-body {
    position: relative;
    top: 0;
    left: 0
}

#content.main-page #main .sqr.news .front .wrapper .text #slider .item, #content.main-page header .sqr.news .front .wrapper .text #slider .item {
    float: left;
    display: block;
    position: relative;
    padding-right: 50px;
}

#content.main-page #main .sqr.news .front .wrapper .controls, #content.main-page header .sqr.news .front .wrapper .controls {
    width: 13%;
    height: 6%;
    position: inherit;
    right: 7%;
    bottom: 15%
}

#content.main-page #main .sqr.news .front .wrapper .controls a, #content.main-page header .sqr.news .front .wrapper .controls a {
    margin: 0 5px
}

#content.main-page #main .sqr.news .front .wrapper .paging, #content.main-page header .sqr.news .front .wrapper .paging {
    display: none
}

#content.main-page #main .sqr.news .front .wrapper h2, #content.main-page header .sqr.news .front .wrapper h2 {
    margin: 0;
    font-size: 1em;
    font-family: inherit
}

#content.main-page #main .sqr.news .front .wrapper hr, #content.main-page header .sqr.news .front .wrapper hr {
    background-color: #fff;
    margin: 20px 0;
    width: 30%;
    height: 1px;
    border: none
}

#content.main-page #main .sqr .card, #content.main-page header .sqr .card {
    width: 100%;
    height: 100%
}

#content.main-page #main .sqr .card div, #content.main-page header .sqr .card div {
    padding: 15% 5%;
    border: 1px solid rgba(0, 0, 0, .5);
    border-right: none;
    margin: 0;
    display: block;
    position: absolute;
    width: 100%;
    height: 100%;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden
}

@media (min-width: 1400px) {
    #content.main-page .sqr .card .back{
        padding: 21% 5% !important;
    }
    #content.main-page .sqr.infocenter .card div{
        padding: 6% 5% !important;
    }
    #content.main-page .sqr.infocenter .card .front h2{
        margin-top: 10% !important;
    }
    #content.main-page #main .logo, #content.main-page header .logo {
        padding: 3% 2% !important;
    }
    #content.main-page .sqr.infocenter .card .front {
        display: none !important;
    }
    #content.main-page .sqr.contacts {
        float: right !important;
    }
}

#content.main-page #main .sqr .card .front h2, #content.main-page header .sqr .card .front h2 {
    margin-top: 31%;
    font-size: 1.2em;
    font-family: Tahoma, Geneva, sans-serif;
}

#content.main-page #main .sqr .card .front h2.long, #content.main-page header .sqr .card .front h2.long {
    margin-top: 25%
}

#content.main-page #main .sqr .card .back, #content.main-page header .sqr .card .back {
    text-transform: uppercase;
    padding: 25% 5%
}

#content.main-page #main .sqr .card .back h2, #content.main-page header .sqr .card .back h2 {
    font-size: 0.85em
}

#content.main-page #main .sqr .card .back hr, #content.main-page header .sqr .card .back hr {
    display: block;
    margin: 20px auto;
    width: 30%;
    height: 1px;
    border: none
}

#content.main-page #main .sqr .card .back ul, #content.main-page header .sqr .card .back ul {
    padding: 0;
    margin: 0;
    list-style: none;
    font-size: .8em;
    line-height: 1.8em
}

#content.main-page #main .sqr .card .back ul a, #content.main-page header .sqr .card .back ul a {
    color: inherit
}

#content.main-page #main .contacts .card, #content.main-page header .contacts .card {
    color: #8cc63f !important;
    text-transform: uppercase;
    font-size: 1.2em
}

#content.main-page #main .contacts .card img, #content.main-page header .contacts .card img {
    width: 35%;
    height: 35%;
    margin: 15% 0 30px;
}

#content.main-page #main .contacts .card p, #content.main-page header .contacts .card p {
    margin: 0
}

#content.main-page #main .search .card img, #content.main-page header .search .card img {
    width: 35%;
    height: 35%;
    margin: 10% 0 30px
}

#content.main-page #main .search .card input, #content.main-page header .search .card input {
    color: #000;
    width: 75%;
    padding: 8px 10px
}

#content.main-page #main .orange, #content.main-page header .orange {
    background-color: #db7e00;
    color: #fff
}

#content.main-page #main .orange hr, #content.main-page header .orange hr {
    background-color: #fff
}

#content.main-page #main .gray, #content.main-page header .gray {
    background-color: #f2f2f2;
    color: #8a00bc
}

#content.main-page #main .gray hr, #content.main-page header .gray hr {
    background-color: #8a00bc
}

#content.main-page #main .white, #content.main-page header .white {
    background-color: #fff;
    color: #db7e00
}

#content.main-page #main .white hr, #content.main-page header .white hr {
    background-color: #db7e00
}

#content.main-page #main .green, #content.main-page header .green {
    background-color: #8cc63f;
    color: #fff
}

#content.main-page #main .green hr, #content.main-page header .green hr {
    background-color: #fff
}

#content.main-page #main .sqr {
    float: left
}

#content.main-page #main .sqr.news {
    float: right
}

#content.main-page #your-project {
    float: none;
    text-align: center;
    background: #fff;
    padding: 5% 0 6%
}

#content.main-page #your-project h1 {
    margin: 0 0 5%;
    color: #666;
    font-size: 2.3em;
    text-transform: uppercase
}

#content.main-page #your-project h1 span {
    color: #8a00bc
}

#content.main-page #your-project p {
    color: #585858;
    margin: 0 0 2%
}


.zazor{
    display: block;
    height:  50px;
}
@media (min-width: 740px) {
    .zazor{
        display: none;
    }
}
#poput {
    display: none;
    background: #ffffff;
    position: absolute;
    width: 40%;
    height: 70%;
    z-index: 999999;
    top: 15%;
    /*left: 50%;*/
    margin: 0 30%;
    padding: 25px;
}

#poput .content {
    /*width: 320px;*/
    /*height: 350px;*/
    padding: 0;
    margin: 0 auto;
    position: relative;
}

#poput h1 {
    text-align: left;
    font: 300 2em 'Segoe UI';
    color: #f3772f;
    margin: 0 0 10px;
}

#poput p {
    color: #000000;
    font: 300 1em 'Segoe UI';
    margin: 5px 0;
    text-align: left;
}

#poput input[type="submit"] {
    background: #f3772f;
    color: #ffffff;
    text-align: center;
    width: 50%;
    font: 300 16px 'Segoe UI';
    border: none;
    padding: 5px;
    margin: 20px auto;
    position: relative;
    left: 23%;
}

#poput input[type="text"], #poput input[type="email"]{
    background: #ffffff;
    height: 30px;
    width: 100%;
    margin: 10px 0;
}

#poput textarea{
    background: #ffffff;
    height: 100px;
    width: 100%;
    margin: 10px 0;
}

#hover{
    display: none;
    width: 100%;
    height: 100%;
    background: rgba(170, 170, 170, 0.56);
    position: absolute;
    top: 0;
    left: 0;
    z-index: 900;
    cursor: pointer;
}
#content.main-page #your-project a.button {
    margin: 0 20px;
    color: #585858;
    border: 1px solid #585858;
    padding: 15px 20px;
    text-transform: uppercase;
    -webkit-transition: .6s;
    transition: .6s
}

#content.main-page #your-project a.button:hover {
    background: #8a00bc;
    color: #fff;
    text-decoration: none
}

#content.main-page #map .sqr {
    border: none;
    z-index: 10;
    position: relative
}

#content.main-page #map .contacts {
    padding: 2%;
    background: #009ee0;
    color: #fff
}

#content.main-page #map #bg-map {
    z-index: 1;
    width: 100%;
    height: 500px
}

#content.main-page #map .left {
    float: left;
    padding: 5% 2%;
    height: 500px !important;
    background: #fff;
    border-top: 6px solid #db7e00
}

#content.main-page #map .left h2 {
    color: #db7e00;
    font-size: 1em
}

#content.main-page #map .left hr {
    background-color: #009ee0;
    margin: 30px auto;
    height: 1px;
    width: 40%
}

#content.main-page #map .left a {
    cursor: pointer;
    display: block;
    margin: 8px 0;
    font-size: .9em;
    color: #666;
    text-transform: uppercase
}

#content.main-page #site-map {
    background: #efefef;
    padding: 2%;
    color: #666
}

#content.main-page #site-map div {
    padding: 0 1.5%;
    text-transform: uppercase;
    vertical-align: top
}

#content.main-page #site-map div h2 {
    font-size: .8em;
    margin-bottom: 20px
}

#content.main-page #site-map div ul {
    margin: 0 0 15%;
    padding: 0;
    font-size: .8em
}

#content.main-page #site-map div ul li {
    margin: 8px 0;
    padding: 0 0 0 13px;
    list-style-type: none;
    background: url(/assets/last_style/public/img/li.gif) 0 .8em no-repeat
}

#content.main-page #site-map div ul li a {
    color: inherit
}

#content.main-page #partners {
    background: #fff;
    padding: 2% 5%;
    text-align: center;
}

#content.main-page #partners div {
    padding: 0 3%
}

#content.main-page #partners img {
    width: 100%
}

#content.main-page footer {
    background: #fff;
    border-top: 6px solid #efefef;
    text-align: center;
    color: #db7e00;
    text-transform: uppercase;
    padding: 3% 0
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbm9ybWFsaXplLmNzcy9ub3JtYWxpemUuY3NzIiwiZ3JpZHMvc3VzeS9vdXRwdXQvc3VwcG9ydC9fcmVtLnNjc3MiLCJ1dGlsaXRpZXMvX2ZvbnRzLnNjc3MiLCJsYXlvdXQvX2dyaWRzLnNjc3MiLCJncmlkcy9zdXN5L291dHB1dC9zdXBwb3J0L19jbGVhcmZpeC5zY3NzIiwiYmFzZS9fYmFzZS5zY3NzIiwiZ3JpZHMvc3VzeS9sYW5ndWFnZS9zdXN5L19icmVha3BvaW50LXBsdWdpbi5zY3NzIiwiZ3JpZHMvc3VzeS9vdXRwdXQvc2hhcmVkL19kaXJlY3Rpb24uc2NzcyIsIi4uLy4uL3N0ZGluIiwibW9kdWxlcy9fbWFpbi5zY3NzIiwidXRpbGl0aWVzL192YXJzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjRFQTBJQSxJQTRJQSxPQUNFLE9BQVEsRUNwUU4sMEJBQUEsMkJDREEsV0M4Q0osUUY3Q0ksSUFBQSxNQUFBLEtEZkosS0FDRSxZQUFhLFdBQ2IscUJBQTZRLEtBQzdRLHlCQUF5UixLQUszUixLQUNFLE9BQVEsRUFPVixRQUNBLE1BQ0EsUUFDQSxXQUNBLE9BQ0EsT0FDQSxPQUNBLE9BQ0EsS0FDQSxLQUNBLElBQ0EsUUFDQSxRQUNFLFFBQVMsTUFLWCxNQUNBLE9BQ0EsU0FDQSxNQUNFLFFBQVMsYUFDVCxlQUE2eUIsU0FLL3lCLHNCQUNFLFFBQVMsS0FDVCxPQUFRLEVBS1YsU0FDQSxTQUNFLFFBQVMsS0k1Q0wsOEJGS0YsV0NISixRRklJLE1ENkNKLEVBQ0UsaUJBQWtCLFlLL0RoQixnQkNnREEsS05vQkosU0FDQSxRQUNFLFFBQVMsRUFPWCxZQUNFLGNBQWUsSUFBSSxPQUtyQixFQThNQSxTQTdNQSxPQUNFLFlBQWEsSUFLZixJQUNFLFdBQVksT0FLZCxHQUNFLFVBQVcsSUFDWCxPQUFRLE1BQU8sRUFLakIsS0FDRSxXQUFZLEtBQ1osTUFBTyxLQUtULE1BQ0UsVUFBVyxJQUtiLElBQ0Es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QUEsUUE4VVksaUNBRUEsTUFBQSxRQUNBLFVBQUEsSUFDQSxpQ0FsVlosaUJBQUEsUUFBQSxPQW9WZ0IsS0FBQSxLQUNBLE9BQUEsSUFBZSxNQXJWL0IsSUFBQSxnQ0F3VmdCLE9BQUEsUUFBQSxRQUNBLE1BQUEsT0FDQSxJQUFBLEVBQUEsVUFDQSxLQTNWaEIsTUFBQSxLQUFBLGVBQUEsVUE4VmdCLDZCQUVBLFdBQ0EsUUFDQSxRQUFBLEdBQ0EsTUFBQSxLQUFBLGlDQW5XaEIsUUF3V1EsRUFBQSxLQUFBLGVBQ0EsVUFDQSxlQTFXUixJQUFBLG9DQStXWSxVQUNBLEtBQUEsY0FBQSxLQUNBLG9DQWpYWixPQUFBLEVBQUEsRUFBQSxJQW1YZ0IsUUFBQSxFQUFBLFVBQ0EsS0FBQSx1Q0FwWGhCLE9BdVhnQixJQUFBLEVBQUEsUUFBQSxFQUNBLEVBQUEsRUFBQSxLQUFBLGdCQXhYaEIsS0FBQSxXQUFBLHdCQTRYb0IsRUFBQSxLQUFBLFVBQ0EseUNBRUEsTUFBQSxRQUFBLDZCQUFBLFdBL1hwQixLQUFBLFFBQUEsR0FBQSxHQUFBLGlDQUFBLFFBQUEsRUFBQSxHQUFBLGlDQTJZUSxNQUFBLEtBM1lSLDBCQUFBLFdBOFlZLEtBQUEsV0E5WVosSUFBQSxNQUFBLFFBQUEsV0FrWlksT0FBWSxNQWxaeEIsUUFBQSxlQXVaUSxVQUFBLFFBQ0EsR0FBQSIsImZpbGUiOiJzdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiEgbm9ybWFsaXplLmNzcyB2My4wLjMgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbi8qKlxuICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAqIDIuIFByZXZlbnQgaU9TIGFuZCBJRSB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIGRldmljZSBvcmllbnRhdGlvbiBjaGFuZ2UsXG4gKiAgICB3aXRob3V0IGRpc2FibGluZyB1c2VyIHpvb20uXG4gKi9cblxuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvKiAxICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cbiAqL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYGRldGFpbHNgIG9yIGBzdW1tYXJ5YCBpbiBJRSAxMC8xMVxuICogYW5kIEZpcmVmb3guXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxuICovXG5cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4gKiAyLiBOb3JtYWxpemUgdmVydGljYWwgYWxpZ25tZW50IG9mIGBwcm9ncmVzc2AgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4gKiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuICovXG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXG4gKiBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXG4gKi9cblxuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIExpbmtzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IG9mIGZvY3VzZWQgZWxlbWVudHMgd2hlbiB0aGV5IGFyZSBhbHNvIGluIGFuXG4gKiBhY3RpdmUvaG92ZXIgc3RhdGUuXG4gKi9cblxuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qKlxuICogQWRkcmVzcyB2YXJpYWJsZSBgaDFgIGZvbnQtc2l6ZSBhbmQgbWFyZ2luIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYFxuICogY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAqL1xuXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbiAqL1xuXG5pbWcge1xuICBib3JkZXI6IDA7XG59XG5cbi8qKlxuICogQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXG4gKi9cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuICovXG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG5cbi8qKlxuICogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuICovXG5cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBLbm93biBsaW1pdGF0aW9uOiBieSBkZWZhdWx0LCBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYIGFsbG93IHZlcnkgbGltaXRlZFxuICogc3R5bGluZyBvZiBgc2VsZWN0YCwgdW5sZXNzIGEgYGJvcmRlcmAgcHJvcGVydHkgaXMgc2V0LlxuICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4gKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgY29sb3I6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xuICBtYXJnaW46IDA7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXG4gKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuICogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cbiAqIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuICovXG5cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gIGN1cnNvcjogcG9pbnRlcjsgLyogMyAqL1xufVxuXG4vKipcbiAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4gKi9cblxuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4gKiB0aGUgVUEgc3R5bGVzaGVldC5cbiAqL1xuXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi8qKlxuICogSXQncyByZWNvbW1lbmRlZCB0aGF0IHlvdSBkb24ndCBhdHRlbXB0IHRvIHN0eWxlIHRoZXNlIGVsZW1lbnRzLlxuICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbiAqXG4gKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxuICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxuICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAqIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXG4gKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4gKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxuICovXG5cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cbiAqIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cbiAqL1xuXG5sZWdlbmQge1xuICBib3JkZXI6IDA7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuXG4gKiBOT1RFOiB0aGUgZGVmYXVsdCBjYW5ub3Qgc2FmZWx5IGJlIGNoYW5nZWQgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cbiAqL1xuXG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBUYWJsZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuICovXG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbnRkLFxudGgge1xuICBwYWRkaW5nOiAwO1xufVxuIiwiLy8gcmVtIFN1cHBvcnRcbi8vID09PT09PT09PT09XG5cbi8vIHJlbVxuLy8gLS0tXG4vLyBDaGVjayBmb3IgYW4gZXhpc3Rpbmcgc3VwcG9ydCBtaXhpbiwgb3Igb3V0cHV0IGRpcmVjdGx5LlxuLy8gLSAkcHJvcCAgOiA8Y3NzIHByb3BlcnR5PlxuLy8gLSAkdmFsICAgOiA8Y3NzIHZhbHVlPlxuQG1peGluIHN1c3ktcmVtKFxuICAkcHJvcCxcbiAgJHZhbFxuKSB7XG4gICRfcmVxczogKFxuICAgIHZhcmlhYmxlOiByaHl0aG0tdW5pdCByZW0td2l0aC1weC1mYWxsYmFjayxcbiAgICBtaXhpbjogcmVtLFxuICApO1xuICBAaWYgc3VzeS1zdXBwb3J0KHJlbSwgJF9yZXFzLCAkd2FybjogZmFsc2UpIGFuZCAkcmh5dGhtLXVuaXQgPT0gcmVtIHtcbiAgICBAaW5jbHVkZSByZW0oJHByb3AsICR2YWwpO1xuICB9IEBlbHNlIHtcbiAgICAjeyRwcm9wfTogJHZhbDtcbiAgfVxufVxuIiwiQGZvbnQtZmFjZXtcclxuICAgIGZvbnQtZmFtaWx5OiAnd2ZfU2Vnb2VVSUxpZ2h0JztcclxuICAgIHNyYzp1cmwoJ2h0dHA6Ly9pLnMtbWljcm9zb2Z0LmNvbS9mb250cy9TZWdvZS1VSS9DeXJpbGxpYy9MaWdodC9sYXRlc3QuZW90Jyk7XHJcbiAgICBzcmM6dXJsKCdodHRwOi8vaS5zLW1pY3Jvc29mdC5jb20vZm9udHMvU2Vnb2UtVUkvQ3lyaWxsaWMvTGlnaHQvbGF0ZXN0LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXHJcbiAgICB1cmwoJ2h0dHA6Ly9pLnMtbWljcm9zb2Z0LmNvbS9mb250cy9TZWdvZS1VSS9DeXJpbGxpYy9MaWdodC9sYXRlc3Qud29mZicpIGZvcm1hdCgnd29mZicpLFxyXG4gICAgdXJsKCdodHRwOi8vaS5zLW1pY3Jvc29mdC5jb20vZm9udHMvU2Vnb2UtVUkvQ3lyaWxsaWMvTGlnaHQvbGF0ZXN0LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcclxuICAgIHVybCgnaHR0cDovL2kucy1taWNyb3NvZnQuY29tL2ZvbnRzL1NlZ29lLVVJL0N5cmlsbGljL0xpZ2h0L2xhdGVzdC5zdmcjd2ViJykgZm9ybWF0KCdzdmcnKTtcclxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbn1cclxuXHJcbkBmb250LWZhY2V7XHJcbiAgICBmb250LWZhbWlseTogJ3dmX1NlZ29lVUlOb3JtYWwnO1xyXG4gICAgc3JjOnVybCgnaHR0cDovL2kucy1taWNyb3NvZnQuY29tL2ZvbnRzL1NlZ29lLVVJL0N5cmlsbGljL05vcm1hbC9sYXRlc3QuZW90Jyk7XHJcbiAgICBzcmM6dXJsKCdodHRwOi8vaS5zLW1pY3Jvc29mdC5jb20vZm9udHMvU2Vnb2UtVUkvQ3lyaWxsaWMvTm9ybWFsL2xhdGVzdC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxyXG4gICAgdXJsKCdodHRwOi8vaS5zLW1pY3Jvc29mdC5jb20vZm9udHMvU2Vnb2UtVUkvQ3lyaWxsaWMvTm9ybWFsL2xhdGVzdC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXHJcbiAgICB1cmwoJ2h0dHA6Ly9pLnMtbWljcm9zb2Z0LmNvbS9mb250cy9TZWdvZS1VSS9DeXJpbGxpYy9Ob3JtYWwvbGF0ZXN0LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcclxuICAgIHVybCgnaHR0cDovL2kucy1taWNyb3NvZnQuY29tL2ZvbnRzL1NlZ29lLVVJL0N5cmlsbGljL05vcm1hbC9sYXRlc3Quc3ZnI3dlYicpIGZvcm1hdCgnc3ZnJyk7XHJcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG59IiwiQGltcG9ydCBcIi4uL2dyaWRzL3N1c3lcIjtcclxuXHJcbiRzdXN5OiAoXHJcbiAgICBjb2x1bW5zOiAyNCxcclxuICAgIGNvbnRhaW5lcjogMTAwJSxcclxuICAgIGd1dHRlcnM6IDAsXHJcbiAgICBtYXRoOiBmbHVpZCxcclxuICAgIG91dHB1dDogZmxvYXQsXHJcbiAgICBndXR0ZXItcG9zaXRpb246IGluc2lkZVxyXG4pO1xyXG5cclxuLnJvdyB7XHJcbiAgICBAaW5jbHVkZSBjb250YWluZXIoKTtcclxufVxyXG5cclxuI2NvbnRlbnQubWFpbi1wYWdlIHtcclxuXHJcbiAgICAuc3FyIHtcclxuICAgICAgICBAaW5jbHVkZSBzcGFuKDYgbGFzdCk7XHJcblxyXG4gICAgICAgICYuc21hbGwge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICB9XHJcbiAgICAgICAgJi5iaWcge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuICAgICAgICAmLm5ld3Mge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuKDEyIGxhc3QpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KDE0MDBweCwgMTApIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgc3BhbigyIGxhc3QpO1xyXG5cclxuICAgICAgICAgICAgJi5zbWFsbCB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYuYmlnIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYubmV3cyB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBzcGFuKDQgbGFzdClcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAjeW91ci1wcm9qZWN0IHtcclxuICAgICAgICBAaW5jbHVkZSBwdXNoKDQpO1xyXG4gICAgICAgIEBpbmNsdWRlIHNwYW4oMTYpO1xyXG4gICAgfVxyXG5cclxuICAgICNzaXRlLW1hcCB7XHJcbiAgICAgICAgZGl2IHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgc3Bhbig2KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgI3BhcnRuZXJzIHtcclxuICAgICAgICBkaXYge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuKDQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn1cclxuXHJcbiNjb250ZW50LnBhZ2Uge1xyXG5cclxuICAgIGhlYWRlciB7XHJcbiAgICAgICAgQGluY2x1ZGUgY29udGFpbmVyKCk7XHJcblxyXG4gICAgICAgIC5uYXYge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBwdXNoKDQpO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuKDE2KTtcclxuXHJcbiAgICAgICAgICAgIC5sb2dvIHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4oMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdWwge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgc3BhbigyMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLmxhbmcge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgc3BhbigxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICNtYWluIHtcclxuICAgICAgICBAaW5jbHVkZSBjb250YWluZXIoKTtcclxuXHJcbiAgICAgICAgb2wuYnJlYWRjcnVtYiB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgQGluY2x1ZGUgcHVzaCg0KTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgc3BhbigxNik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBhcnRpY2xlIHtcclxuICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBwdXNoKDQpO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuKDE2KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG59XHJcbiIsIi8vIFN1c3kgRmFsbGJhY2sgQ2xlYXJmaXhcbi8vID09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBDbGVhcmZpeFxuLy8gLS0tLS0tLS1cbi8vIENoZWNrIGZvciBhbiBleGlzdGluZyBzdXBwb3J0IG1peGluLCBvciBwcm92aWRlIGEgc2ltcGxlIGZhbGxiYWNrLlxuQG1peGluIHN1c3ktY2xlYXJmaXgge1xuICBAaWYgc3VzeS1zdXBwb3J0KGNsZWFyZml4LCAobWl4aW46IGNsZWFyZml4KSkge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9IEBlbHNlIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICB9XG4gIH1cbn1cbiIsImJvZHkge1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgZm9udC1mYW1pbHk6IFwid2ZfU2Vnb2VVSUxpZ2h0XCIsIHNhbnMtc2VyaWY7XHJcblxyXG4gICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KDE0MDBweCwgMjApIHtcclxuICAgICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbioge1xyXG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxufVxyXG5cclxuYSB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgIH1cclxufSIsIi8vIEJyZWFrcG9pbnQgSW50ZWdyYXRpb25cbi8vID09PT09PT09PT09PT09PT09PT09PT1cblxuJHN1c3ktbWVkaWE6ICgpICFkZWZhdWx0O1xuJHN1c3ktbWVkaWEtZmFsbGJhY2s6IGZhbHNlICFkZWZhdWx0O1xuXG4kX3N1c3ktbWVkaWEtY29udGV4dDogKCk7XG5cblxuLy8gU3VzeSBCcmVha3BvaW50XG4vLyAtLS0tLS0tLS0tLS0tLS1cbi8vIENoYW5nZSBncmlkcyBhdCBkaWZmZXJlbnQgbWVkaWEgcXVlcnkgYnJlYWtwb2ludHMuXG4vLyAtICRxdWVyeSAgICAgOiA8bWluLXdpZHRoPiBbPG1heC13aWR0aD5dIHwgPHByb3BlcnR5PiA8dmFsdWU+IHwgPG1hcD5cbi8vIC0gJGxheW91dCAgICA6IDxzZXR0aW5ncz5cbi8vIC0gJG5vLXF1ZXJ5ICA6IDxib29sZWFuPiB8IDxzZWxlY3Rvcj5cbkBtaXhpbiBzdXN5LWJyZWFrcG9pbnQoXG4gICRxdWVyeSxcbiAgJGxheW91dDogZmFsc2UsXG4gICRuby1xdWVyeTogJHN1c3ktbWVkaWEtZmFsbGJhY2tcbikge1xuICBAaW5jbHVkZSBzdXN5LW1lZGlhLXJvdXRlcigkcXVlcnksICRuby1xdWVyeSkge1xuICAgIEBpZiAkbGF5b3V0IHtcbiAgICAgIEBpbmNsdWRlIHdpdGgtbGF5b3V0KCRsYXlvdXQpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBTdXN5IE1lZGlhXG4vLyAtLS0tLS0tLS0tXG4vLyAtICRxdWVyeTogPG1pbi13aWR0aD4gWzxtYXgtd2lkdGg+XSB8IDxwcm9wZXJ0eT4gPHZhbHVlPlxuLy8gLSAkbm8tcXVlcnk6IDxib29sZWFuPiB8IDxzZWxlY3Rvcj5cbkBtaXhpbiBzdXN5LW1lZGlhKFxuICAkcXVlcnksXG4gICRuby1xdWVyeTogJHN1c3ktbWVkaWEtZmFsbGJhY2tcbikge1xuICAkb2xkLWNvbnRleHQ6ICRfc3VzeS1tZWRpYS1jb250ZXh0O1xuICAkbmFtZTogaWYobWFwLWhhcy1rZXkoJHN1c3ktbWVkaWEsICRxdWVyeSksICRxdWVyeSwgbnVsbCk7XG4gICRxdWVyeTogc3VzeS1nZXQtbWVkaWEoJHF1ZXJ5KTtcbiAgJHF1ZXJ5OiBzdXN5LXBhcnNlLW1lZGlhKCRxdWVyeSk7XG5cbiAgQGluY2x1ZGUgc3VzeS1tZWRpYS1jb250ZXh0KCRxdWVyeSwgJG5hbWUpO1xuXG4gIEBpZiAkbm8tcXVlcnkgYW5kIHR5cGUtb2YoJG5vLXF1ZXJ5KSAhPSBzdHJpbmcge1xuICAgIEBjb250ZW50O1xuICB9IEBlbHNlIHtcbiAgICBAbWVkaWEgI3tzdXN5LXJlbmRlci1tZWRpYSgkcXVlcnkpfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG5cbiAgICBAaWYgdHlwZS1vZigkbm8tcXVlcnkpID09IHN0cmluZyB7XG4gICAgICAjeyRuby1xdWVyeX0gJiB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHN1c3ktbWVkaWEtY29udGV4dCgkb2xkLWNvbnRleHQsICRjbGVhbjogdHJ1ZSk7XG59XG5cblxuLy8gTWVkaWEgUm91dGVyXG4vLyAtLS0tLS0tLS0tLS1cbi8vIFJvdXQgbWVkaWEgYXJndW1lbnRzIHRvIHRoZSBjb3JyZWN0IG1peGluLlxuQG1peGluIHN1c3ktbWVkaWEtcm91dGVyKFxuICAkcXVlcnksXG4gICRuby1xdWVyeTogJHN1c3ktbWVkaWEtZmFsbGJhY2tcbikge1xuICBAaWYgc3VzeS1zdXBwb3J0KGJyZWFrcG9pbnQsIChtaXhpbjogYnJlYWtwb2ludCksICR3YXJuOiBmYWxzZSkge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHF1ZXJ5LCAkbm8tcXVlcnkpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgc3VzeS1tZWRpYSgkcXVlcnksICRuby1xdWVyeSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8gVXBkYXRlIENvbnRleHRcbi8vIC0tLS0tLS0tLS0tLS1cbi8vIFNldCB0aGUgbmV3IG1lZGlhIGNvbnRleHRcbkBtaXhpbiBzdXN5LW1lZGlhLWNvbnRleHQoXG4gICRxdWVyeSxcbiAgJG5hbWU6IG51bGwsXG4gICRjbGVhbjogZmFsc2Vcbikge1xuICAkcXVlcnk6IG1hcC1tZXJnZSgobmFtZTogJG5hbWUpLCAkcXVlcnkpO1xuXG4gIEBpZiAkY2xlYW4ge1xuICAgICRfc3VzeS1tZWRpYS1jb250ZXh0OiAkcXVlcnkgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJF9zdXN5LW1lZGlhLWNvbnRleHQ6IG1hcC1tZXJnZSgkX3N1c3ktbWVkaWEtY29udGV4dCwgJHF1ZXJ5KSAhZ2xvYmFsO1xuICB9XG59XG5cblxuLy8gTWVkaWEgQ29udGV4dFxuLy8gLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHRoZSBmdWxsIG1lZGlhIGNvbnRleHQsIG9yIGEgc2luZ2xlIG1lZGlhIHByb3BlcnR5IChlLmcuIG1pbi13aWR0aClcbkBmdW5jdGlvbiBzdXN5LW1lZGlhLWNvbnRleHQoXG4gICRwcm9wZXJ0eTogZmFsc2Vcbikge1xuICBAaWYgJHByb3BlcnR5IHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJF9zdXN5LW1lZGlhLWNvbnRleHQsICRwcm9wZXJ0eSk7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gJF9zdXN5LW1lZGlhLWNvbnRleHQ7XG4gIH1cbn1cblxuXG4vLyBHZXQgTWVkaWFcbi8vIC0tLS0tLS0tLVxuLy8gUmV0dXJuIGEgbmFtZWQgbWVkaWEtcXVlcnkgZnJvbSAkc3VzeS1tZWRpYS5cbi8vIC0gJG5hbWU6IDxrZXk+XG5AZnVuY3Rpb24gc3VzeS1nZXQtbWVkaWEoXG4gICRuYW1lXG4pIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRzdXN5LW1lZGlhLCAkbmFtZSkge1xuICAgICRtYXAtdmFsdWU6IG1hcC1nZXQoJHN1c3ktbWVkaWEsICRuYW1lKTtcbiAgICBAaWYgKCRuYW1lID09ICRtYXAtdmFsdWUpIHtcbiAgICAgICRuYW1lOiAkbWFwLXZhbHVlO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJG5hbWU6IHN1c3ktZ2V0LW1lZGlhKCRtYXAtdmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJG5hbWU7XG59XG5cblxuLy8gUmVuZGVyIE1lZGlhXG4vLyAtLS0tLS0tLS0tLS1cbi8vIEJ1aWxkIGEgbWVkaWEtcXVlcnkgc3RyaW5nIGZyb20gdmFyaW91cyBtZWRpYSBzZXR0aW5nc1xuQGZ1bmN0aW9uIHN1c3ktcmVuZGVyLW1lZGlhKFxuICAkcXVlcnlcbikge1xuICAkb3V0cHV0OiBudWxsO1xuICBAZWFjaCAkcHJvcGVydHksICR2YWx1ZSBpbiAkcXVlcnkge1xuICAgICRzdHJpbmc6IG51bGw7XG5cbiAgICBAaWYgJHByb3BlcnR5ID09IG1lZGlhIHtcbiAgICAgICRzdHJpbmc6ICR2YWx1ZTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRzdHJpbmc6ICcoI3skcHJvcGVydHl9OiAjeyR2YWx1ZX0pJztcbiAgICB9XG5cbiAgICAkb3V0cHV0OiBpZigkb3V0cHV0LCAnI3skb3V0cHV0fSBhbmQgI3skc3RyaW5nfScsICRzdHJpbmcpO1xuICB9XG5cbiAgQHJldHVybiAkb3V0cHV0O1xufVxuXG5cbi8vIFBhcnNlIE1lZGlhXG4vLyAtLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHBhcnNlZCBtZWRpYS1xdWVyeSBzZXR0aW5ncyBiYXNlZCBvbiBzaG9ydGhhbmRcbkBmdW5jdGlvbiBzdXN5LXBhcnNlLW1lZGlhKFxuICAkcXVlcnlcbikge1xuICAkbXE6IG51bGw7XG4gIEBpZiB0eXBlLW9mKCRxdWVyeSkgPT0gbWFwIHtcbiAgICAkbXE6ICRxdWVyeTtcbiAgfSBAZWxzZSBpZiB0eXBlLW9mKCRxdWVyeSkgPT0gbnVtYmVyIHtcbiAgICAkbXE6IChtaW4td2lkdGg6ICRxdWVyeSk7XG4gIH0gQGVsc2UgaWYgdHlwZS1vZigkcXVlcnkpID09IGxpc3QgYW5kIGxlbmd0aCgkcXVlcnkpID09IDIge1xuICAgIEBpZiB0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSBudW1iZXIge1xuICAgICAgJG1xOiAoXG4gICAgICAgIG1pbi13aWR0aDogbWluKCRxdWVyeS4uLiksXG4gICAgICAgIG1heC13aWR0aDogbWF4KCRxdWVyeS4uLiksXG4gICAgICApO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJG1xOiAobnRoKCRxdWVyeSwgMSk6IG50aCgkcXVlcnksIDIpKTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICRtcTogKG1lZGlhOiAnI3skcXVlcnl9Jyk7XG4gIH1cblxuICBAcmV0dXJuICRtcTtcbn1cbiIsIi8vIERpcmVjdGlvbiBIZWxwZXJzXG4vLyA9PT09PT09PT09PT09PT09PVxuXG4vLyBTdXN5IEZsb3cgRGVmYXVsdHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gLSBQUklWQVRFXG5AaW5jbHVkZSBzdXN5LWRlZmF1bHRzKChcbiAgZmxvdzogbHRyLFxuKSk7XG5cbi8vIEdldCBEaXJlY3Rpb25cbi8vIC0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiB0aGUgJ2Zyb20nIG9yICd0bycgZGlyZWN0aW9uIG9mIGEgbHRyIG9yIHJ0bCBmbG93LlxuLy8gLSBbJGZsb3ddICA6IGx0ciB8IHJ0bFxuLy8gLSBbJGtleV0gICA6IGZyb20gfCB0b1xuQGZ1bmN0aW9uIGdldC1kaXJlY3Rpb24oXG4gICRmbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBmbG93KSxcbiAgJGtleTogZnJvbVxuKSB7XG4gICRyZXR1cm46IGlmKCRmbG93ID09IHJ0bCwgKGZyb206IHJpZ2h0LCB0bzogbGVmdCksIChmcm9tOiBsZWZ0LCB0bzogcmlnaHQpKTtcbiAgQHJldHVybiBtYXAtZ2V0KCRyZXR1cm4sICRrZXkpO1xufVxuXG4vLyBUb1xuLy8gLS1cbi8vIFJldHVybiB0aGUgJ3RvJyBkaXJlY3Rpb24gb2YgYSBmbG93XG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AZnVuY3Rpb24gdG8oXG4gICRmbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBmbG93KVxuKSB7XG4gIEByZXR1cm4gZ2V0LWRpcmVjdGlvbigkZmxvdywgdG8pO1xufVxuXG4vLyBGcm9tXG4vLyAtLS0tXG4vLyBSZXR1cm4gdGhlICdmcm9tJyBkaXJlY3Rpb24gb2YgYSBmbG93XG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AZnVuY3Rpb24gZnJvbShcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpXG4pIHtcbiAgQHJldHVybiBnZXQtZGlyZWN0aW9uKCRmbG93LCBmcm9tKTtcbn1cbiIsIkBpbXBvcnQgXCIvYm93ZXJfY29tcG9uZW50cy9ub3JtYWxpemUuY3NzL25vcm1hbGl6ZS5jc3NcIjtcclxuXHJcbkBpbXBvcnQgXCJ1dGlsaXRpZXMvaW5kZXhcIjtcclxuQGltcG9ydCBcImxheW91dC9pbmRleFwiO1xyXG5AaW1wb3J0IFwiYmFzZS9pbmRleFwiO1xyXG5AaW1wb3J0IFwibW9kdWxlcy9pbmRleFwiO1xyXG5AaW1wb3J0IFwic3RhdGVzL2luZGV4XCI7IiwiI2NvbnRlbnQubWFpbi1wYWdlIHtcclxuXHJcbiAgICAuc3FyIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgaGVhZGVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJy9wdWJsaWMvaW1nL2FzdGFuYS1iZy5qcGcnKSBuby1yZXBlYXQ7XHJcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICAgIH1cclxuXHJcbiAgICBoZWFkZXIsICNtYWluIHtcclxuICAgICAgICAudGl0bGUge1xyXG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICAgICAgcGFkZGluZzogMiUgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNxci1ib3JkZXI7XHJcblxyXG4gICAgICAgICAgICBoMiB7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDIuM2VtO1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAuODtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAubG9nbyB7XHJcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgICAgICAgICAgcGFkZGluZzogNCUgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc3FyLWJvcmRlcjtcclxuXHJcbiAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogNDUlO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogXCJ3Zl9TZWdvZVVJTm9ybWFsXCIsIHNhbnMtc2VyaWY7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogIzAwNzFiYztcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAxNXB4O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDRweDtcclxuXHJcbiAgICAgICAgICAgICAgICAmOmhvdmVyLCAmLmFjdGl2ZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjMDA3MWJjO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc3FyIHtcclxuICAgICAgICAgICAgY3Vyc29yOiBhdXRvO1xyXG5cclxuICAgICAgICAgICAgaHIge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDEwcHggYXV0byAwO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDIwJTtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogNHB4O1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBoMiB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmLmZsaXAge1xyXG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICAgICAgICAgcGVyc3BlY3RpdmU6IDEwMDBweDtcclxuICAgICAgICAgICAgICAgIC5jYXJkIHtcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xyXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuNnM7XHJcbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgxODBkZWcpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAuYmFjayB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgxODBkZWcpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLm5ld3Mge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdXJsKCcvcHVibGljL2ltZy9uZXdzLWJnLmpwZycpIG5vLXJlcGVhdDtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6IDUwJTtcclxuXHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQoMTQwMHB4LCAxMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb24teDogMDtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAuZnJvbnQge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC53cmFwcGVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgjMDAwLCAuNSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogNyU7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC50ZXh0IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA1MCU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDcwJTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBcIndmX1NlZ29lVUlMaWdodFwiLCBzYW5zLXNlcmlmO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICNzbGlkZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogODAlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zbGlkZXItYm9keSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLml0ZW0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMzBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgLmNvbnRyb2xzIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDYlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGluaGVyaXQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodDogNyU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3R0b206IDE1JTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCA1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgLnBhZ2luZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoMiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDFlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDIwcHggMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAzMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDFweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG5cclxuICAgICAgICAgICAgLmNhcmQge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcblxyXG4gICAgICAgICAgICAgICAgZGl2IHtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxNSUgNSU7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNxci1ib3JkZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAuZnJvbnQge1xyXG4gICAgICAgICAgICAgICAgICAgIGgyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMzElO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNGVtO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogXCJ3Zl9TZWdvZVVJTm9ybWFsXCIsIHNhbnMtc2VyaWY7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICYubG9uZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAyNSU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAuYmFjayB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAyNyUgNSU7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGgyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxZW07XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGhyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMjBweCBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMzAlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDFweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAwLjllbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuOGVtO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmNvbnRhY3RzIC5jYXJkIHtcclxuICAgICAgICAgICAgY29sb3I6ICRncmVlbi1iZztcclxuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxLjJlbTtcclxuICAgICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAzNSU7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDE3JSAwIDIwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcCB7IG1hcmdpbjogIDA7fVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnNlYXJjaCAuY2FyZCB7XHJcbiAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMzUlO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiA3JSAwIDMwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaW5wdXQge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICMwMDA7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogNzUlO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5vcmFuZ2Uge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JhbmdlLWJnO1xyXG4gICAgICAgICAgICBjb2xvcjogJG9yYW5nZS10ZXh0O1xyXG4gICAgICAgICAgICBociB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JhbmdlLXRleHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5ncmF5IHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdyYXktYmc7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkZ3JheS10ZXh0O1xyXG4gICAgICAgICAgICBociB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS10ZXh0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAud2hpdGUge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGUtYmc7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGUtdGV4dDtcclxuICAgICAgICAgICAgaHIge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlLXRleHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5ncmVlbiB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRncmVlbi1iZztcclxuICAgICAgICAgICAgY29sb3I6ICRncmVlbi10ZXh0O1xyXG4gICAgICAgICAgICBociB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW4tdGV4dDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAjbWFpbiB7XHJcbiAgICAgICAgLnNxciB7XHJcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xyXG5cclxuICAgICAgICAgICAgJi5uZXdzIHtcclxuICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAjeW91ci1wcm9qZWN0IHtcclxuICAgICAgICBmbG9hdDogbm9uZTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgICAgICBwYWRkaW5nOiA1JSAwIDYlO1xyXG4gICAgICAgIGgxIHtcclxuICAgICAgICAgICAgbWFyZ2luOiAwIDAgNSU7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjNjY2NjY2O1xyXG4gICAgICAgICAgICBzcGFuIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkZ3JheS10ZXh0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMi4zZW07XHJcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHAge1xyXG4gICAgICAgICAgICBjb2xvcjogIzU4NTg1ODtcclxuICAgICAgICAgICAgbWFyZ2luOiAwIDAgMiU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGEuYnV0dG9uIHtcclxuICAgICAgICAgICAgY29sb3I6ICM1ODU4NTg7XHJcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM1ODU4NTg7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHggMjBweDtcclxuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogLjZzO1xyXG5cclxuICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZ3JheS10ZXh0O1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAjbWFwIHtcclxuICAgICAgICAuc3FyIHtcclxuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICAgICB6LWluZGV4OiAxMDtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuY29udGFjdHMge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAyJTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogIzAwOWVlMDtcclxuICAgICAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAjYmctbWFwIHtcclxuICAgICAgICAgICAgei1pbmRleDogMTtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIGhlaWdodDogNTAwcHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAubGVmdCB7XHJcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgICAgICBwYWRkaW5nOiA1JSAyJTtcclxuICAgICAgICAgICAgaGVpZ2h0OiA1MDBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgICAgICAgICBib3JkZXItdG9wOiA2cHggc29saWQgJG9yYW5nZS1iZztcclxuICAgICAgICAgICAgaDIge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRvcmFuZ2UtYmc7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDFlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBociB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5ZWUwO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAzMHB4IGF1dG87XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDFweDtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiA0MCU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogOHB4IDA7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IC45ZW07XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogIzY2NjY2NjtcclxuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAjc2l0ZS1tYXAge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNlZmVmZWY7XHJcbiAgICAgICAgcGFkZGluZzogMiUgMiU7XHJcbiAgICAgICAgY29sb3I6ICM2NjY2NjY7XHJcblxyXG4gICAgICAgIGRpdiB7XHJcbiAgICAgICAgICAgIC8vZmxvYXQ6IG5vbmU7XHJcbiAgICAgICAgICAgIC8vZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwIDEuNSU7XHJcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICAgICAgICAgIGgyIHtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogLjhlbTtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdWwge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMTUlIDA7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAuOGVtO1xyXG5cclxuICAgICAgICAgICAgICAgIGxpIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDhweCAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAwIDEzcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybCgnL3B1YmxpYy9pbWcvbGkuZ2lmJykgbm8tcmVwZWF0IDAgMC44ZW07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgI3BhcnRuZXJzIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgICAgIHBhZGRpbmc6IDIlIDUlO1xyXG5cclxuICAgICAgICBkaXYge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwIDMlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZvb3RlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgICAgICBib3JkZXItdG9wOiA2cHggc29saWQgI2VmZWZlZjtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgY29sb3I6ICRvcmFuZ2UtYmc7XHJcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICBwYWRkaW5nOiAzJSAwO1xyXG4gICAgfVxyXG59IiwiLy9jb2xvcnNcclxuJHNxci1ib3JkZXI6IHJnYmEoIzAwMCwgLjUpO1xyXG4kb3JhbmdlLWJnOiAjZGI3ZTAwO1xyXG4kb3JhbmdlLXRleHQ6ICNmZmY7XHJcbiRncmF5LWJnOiAjZjJmMmYyO1xyXG4kZ3JheS10ZXh0OiAjOGEwMGJjO1xyXG4kd2hpdGUtYmc6ICNmZmY7XHJcbiR3aGl0ZS10ZXh0OiAjZGI3ZTAwO1xyXG4kZ3JlZW4tYmc6ICM4Y2M2M2Y7XHJcbiRncmVlbi10ZXh0OiAjZmZmOyJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== */

.social a{
    margin: 0 10px;
}

@media only screen and (max-width: 1200px) {
    #content.main-page .sqr .card .back {
        font-size: .8em;
        padding: 20% 5% !important;
    }
    #content.main-page .sqr .card .back hr {
        margin: 10px auto !important;
    }
    #content.main-page header .logo {
        padding: 4% 3% !important;
    }
    #content.main-page header .logo .lang a {
        margin: 0 5px !important;
    }
    #content.main-page #main .title h2, #content.main-page header .title h2 {
        font-size: 2em;
    }
}
@media only screen and (max-width: 960px) {
    #content.main-page .sqr .card {
        font-size: 0.8em;
    }
    #content.main-page #main .contacts .card, #content.main-page header .contacts .card {
        font-size: 1em;
    }
    #content.main-page #main .sqr.news .front .wrapper .text #slider, #content.main-page header .sqr.news .front .wrapper .text #slider {
        width: 100%;
        height: 65%;
    }
}
@media only screen and (max-width: 850px) {
    #projects .project-block{
        width: 100%!important;
        margin: 20px auto!important;
        padding: 10px!important;
    }
    .project-img {
        width: 120px!important;
        height: 90px!important;
    }
    #projects .project-block p {
        width: calc(100% - 140px)!important;
    }
    #content.main-page #main .title h2, #content.main-page header .title h2 {
        font-size: 1.3em;
    }
    #content.main-page #main .logo img, #content.main-page header .logo img {
        margin-bottom: 12px;
    }
    .sqr.main-news .front .media-img{
        /*width: 50%!important;*/
    }
}
@media only screen and (max-width: 500px) {
    #content.main-page #your-project h1{
        font-size: 1.3em!important;
    }
    body {
        font-size: 18px !important;
    }
    #projects .project-block{
        width: 100%!important;
        margin: 20px auto!important;
        padding: 10px!important;
    }
    .project-img {
        width: 120px!important;
        height: 90px!important;
    }
    #projects .project-block p {
        width: calc(100% - 140px)!important;
    }
    #content.main-page #main .title h2, #content.main-page header .title h2 {
        font-size: 1em;
    }
    #content.main-page .row:first-child .sqr {
        width: 50% !important;
    }
    #content.main-page .sqr {
        width: 100% !important;
    }
    #content.main-page #site-map div {
        width: 50% !important;
    }
    #content.main-page #site-map div ul {
        font-size: 0.6em;
    }
    #content.main-page #main .sqr .card div, #content.main-page header .sqr .card div {
        padding: 0 5%;
    }
    #content.main-page #main .sqr .card .front h2, #content.main-page header .sqr .card .front h2 {
        margin-top: 21%;
    }
    #content.main-page #main .sqr .card .front h2.long, #content.main-page header .sqr .card .front h2.long {
        margin-top: 21%;
    }
    #content.main-page #main .sqr .card .front h2.long br, #content.main-page header .sqr .card .front h2.long br {
        display: none;
    }
    #content.main-page .sqr .card .back {
        font-size: 0.9em;
        padding: 6% 5% !important;
    }
    #content.main-page #main .search .card img, #content.main-page header .search .card img, #content.main-page #main .contacts .card img, #content.main-page header .contacts .card img {
        width: 20%;
        margin-bottom: 20px;
    }
    #content.main-page #your-project {
        padding: 5% 0 12%;
        margin-bottom: 20px;
    }
    #content.main-page #your-project {
        padding: 5% 0 12%;
    }
    #content.main-page #your-project a.button{
        font-size: 14px !important;
        margin: 0;
    }
    #content.main-page #map .contacts{
        height: 190px !important;
    }

    #content.main-page #map #bg-map{
        height: 250px !important;
        float: left;
    }
    #content.main-page #map .left{
        height: auto !important;
    }
    #poput {
        display: none;
        background: #ffffff;
        position: absolute;
        width: 100%;
        height: 100%;
        z-index: 999999;
        top: 0;
        left: 0;
        margin: 0;
        padding: 50px 25px;
    }
    .sqr.main-news .front .media-img{
        width: 50%!important;
    }
    .sqr.main-news.small,.sqr.main-news.sm{
        display: none!important;
    }
    .sqr.main-news:last-child{
        /*display: none!important;*/
    }
}
.close-button{
    position: absolute;
    right: 20px;
    top: 20px;
    cursor: pointer;
    font-family: arial, sans-serif;
}

.contacts a.contacts-button{
    display: block;
    width: 80%;
    margin: 0 auto 20px;
    color: #8cc63f;
    border: 1px solid #8cc63f;
    padding: 10px 20px;
    text-transform: uppercase;
    -webkit-transition: .6s;
    transition: .6s;
}

.contacts a.contacts-button:hover{
    background: #8cc63f;
    color: #fff;
    text-decoration: none;
}

/*.main-news .back{*/
    /*background: rgba(0, 0, 0, .5);*/
    /*color: #ffffff;*/
    /*display: table!important;*/
    /*width: 101%!important;*/
/*}*/
/*.main-news .back h2{*/
    /*display: table-cell;*/
    /*vertical-align: middle;*/
/*}*/
.sqr.main-news .front{
    padding: 7%!important;
    border: 0!important;
    border-bottom: 1px solid rgba(0, 0, 0, .5);
}
.sqr.main-news .front img{
    width: 100%;
    height: 100%;
    position: relative;
    float: none;
    overflow: hidden;
}
.sqr.main-news .front p{
    margin: 5px 0;
    color: #585858;
    text-align: left;
}
.sqr.main-news .front p:hover{
    text-decoration: underline;
}
.elm{
    position: relative!important;
    width: 100%!important;
    padding: 0!important;
    border: 0!important;
    margin: 0!important;
    height: auto!important;
}
.elm:before{
     content: '';
     display: block;
     width: 50%;
     height: 16px;
     background-color: #ffffff;
     -webkit-transform: skewX(-45deg);
     transform: skewX(-45deg);
     position: absolute;
     bottom: -1px;
     right: -7px;
 }
.elm:after{
    content: '';
    display: block;
    width: 50%;
    height: 16px;
    background-color: #ffffff;
    -webkit-transform: skewX(45deg);
    transform: skewX(45deg);
    position: absolute;
    top: -15px;
    left: -7px;
}
#content.main-page #main .sqr.main-news .front div.media-img, #content.main-page header .sqr.main-news .front div.media-img{
    position: relative;
    float: none;
    /*height: 220px;*/
    overflow: hidden;
    margin: 10% auto 0;
    padding: 0;
    border: 0;
    height: 75%;
}
#content.main-page #main .sqr.main-news .card .front h2, #content.main-page header .sqr.main-news .card .front h2{
    position: absolute;
    margin: 0!important;

}
#content.main-page #main .sqr.infocenter .card div, #content.main-page header .sqr.infocenter .card div,
#content.main-page #main .sqr.contacts .card div, #content.main-page header .sqr.contacts .card div{
    border-right: 1px solid rgba(0, 0, 0, .5);
}
.sqr.sm{
    border-bottom: 1px solid rgba(0, 0, 0, .5)!important;
}
#map{
    display: none;
}
#projects{
    /*display: none;*/
    background: url("/assets/images/proj_bg.jpg") 0 0;
    background-size: cover;
    padding: 0 5% 2%;
}
#projects h2{
    text-align: center;
    width: 100%;
    margin: 0;
    padding: 20px 20px 0;
    color: #666;
    font-size: 2.3em;
}
#projects .project-block{
    background-color: #ffffff;
    width: 30%;
    margin: 20px 1.66%;
    float: left;
    padding: 1%;
}
.project-img {
    width: 160px;
    height: 120px;
    float: left;
    margin-right: 3%;
}
#projects .project-block p {
    width: calc(100% - 180px);
    margin: 0;
    word-wrap: break-word;
    float: left;

}
.project-img img{
    width: 100%;
    height: 100%;
}
.project-info{
    width: 50%;
    margin: 0 2.5%;
    float: right;
}
