.hero{font-family:Open Sans,Helvetica Neue,helvetica,arial,sans-serif}.hero .cmp-teaser{padding:0}.hero .cmp-teaser__content-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:0 auto;max-width:1400px;padding:0;width:100%;width:95%!important}.hero .cmp-teaser__content-wrapper .cmp-teaser__image{-webkit-box-ordinal-group:10000;-ms-flex-order:9999;margin-bottom:-2.5rem;order:9999;width:100%}@media(min-width:1024px){.hero .cmp-teaser__content-wrapper .cmp-teaser__image{-webkit-box-ordinal-group:-9998;-ms-flex-order:-9999;order:-9999;width:66.66%}}.hero .cmp-teaser__content-wrapper .cmp-teaser__content{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-box-align:start;-ms-flex-align:start;-webkit-box-ordinal-group:-9998;-ms-flex-order:-9999;align-items:flex-start;color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;justify-content:center;order:-9999;padding:2rem 0;width:100%}@media(min-width:1024px){.hero .cmp-teaser__content-wrapper .cmp-teaser__content{-webkit-box-ordinal-group:10000;-ms-flex-order:9999;order:9999;padding-left:4rem;padding-top:0;width:33.33%}}.hero .cmp-teaser__content-wrapper .cmp-teaser__content .cmp-teaser__pretitle{font-size:.8125rem;font-weight:700;letter-spacing:2px;line-height:1rem;margin-bottom:.625rem;padding:0}@media(min-width:1024px){.hero .cmp-teaser__content-wrapper .cmp-teaser__content .cmp-teaser__pretitle{margin-bottom:1.25rem}}.hero .cmp-teaser__content-wrapper .cmp-teaser__content .cmp-teaser__title,.hero .cmp-teaser__content-wrapper .cmp-teaser__content .cmp-teaser__title .cmp-teaser__title-link{color:#fff;font-size:2.5rem;font-weight:400;line-height:35/strip-unit(16px)rem;margin-bottom:1.0625rem;padding:0}@media(min-width:1024px){.hero .cmp-teaser__content-wrapper .cmp-teaser__content .cmp-teaser__title,.hero .cmp-teaser__content-wrapper .cmp-teaser__content .cmp-teaser__title .cmp-teaser__title-link{font-size:2.4375rem;font-weight:400;letter-spacing:-.125rem;line-height:2.25rem;margin-bottom:1.25rem}}@media(min-width:1024px)and (min-width:767px){.hero .cmp-teaser__content-wrapper .cmp-teaser__content .cmp-teaser__title,.hero .cmp-teaser__content-wrapper .cmp-teaser__content .cmp-teaser__title .cmp-teaser__title-link{font-size:3.1875rem;font-weight:300;letter-spacing:-.15625rem;line-height:3rem}}@media(min-width:1024px)and (min-width:1441px){.hero .cmp-teaser__content-wrapper .cmp-teaser__content .cmp-teaser__title .cmp-teaser__title-link.heading-lg,.hero .cmp-teaser__content-wrapper .cmp-teaser__content .cmp-teaser__title.heading-lg{font-size:4.5rem;font-weight:400;letter-spacing:-.25rem;line-height:4.5rem}}.hero .cmp-teaser__content-wrapper .cmp-teaser__content .cmp-teaser__description{font-size:1rem;font-weight:400;letter-spacing:-.25px;line-height:1.25rem;margin-bottom:.9375rem;padding:0;width:100%}@media(min-width:1200px){.hero .cmp-teaser__content-wrapper .cmp-teaser__content .cmp-teaser__description{font-size:1.125rem;font-weight:400;letter-spacing:-.25px;line-height:1.5rem}}@media(min-width:1024px){.hero .cmp-teaser__content-wrapper .cmp-teaser__content .cmp-teaser__description{margin-bottom:1.25rem}}.hero .cmp-teaser__content-wrapper .cmp-teaser__content .cmp-teaser__main-action-link{margin:0}.hero .cmp-teaser__content-wrapper a.cmp-button.cmp-button-light:hover{background:#fff;border-color:#fff;color:#2f2f30}.hero .cmp-teaser .cmp-teaser__content.darkBackgroundWhiteText,.hero .cmp-teaser .cmp-teaser__content.darkBackgroundWhiteText .cmp-teaser__title.darkBackgroundWhiteText{color:#fff}.hero .cmp-teaser .cmp-teaser__content.lightBackgroundBlackText{color:#000}.hero .cmp-teaser .cmp-teaser__content.lightBackgroundBlackText a.cmp-button{border-color:#000;color:#000}.hero .cmp-teaser .cmp-teaser__content.lightBackgroundBlackText a.cmp-button:hover{background-color:#000;border:2px solid #000;color:#fff}.hero .cmp-teaser .cmp-teaser__content.lightBackgroundBlackText .cmp-teaser__title.lightBackgroundBlackText{color:#000}.cmp-hero__actions-wrapper{padding-bottom:1.25rem;padding-top:5rem}@media(min-width:1024px){.cmp-hero__actions-wrapper{padding-bottom:5rem}}.cmp-hero__actions-wrapper .cmp-hero__actions-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:justify;-ms-flex-pack:justify;align-items:center;color:#2f2f30;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-flow:column wrap;flex-flow:column wrap;justify-content:space-between;margin:0 auto;max-width:1200px;width:95%!important}@media(min-width:1024px){.cmp-hero__actions-wrapper .cmp-hero__actions-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}}.cmp-hero__actions-wrapper .cmp-hero__actions-container .cmp-hero__actions-jump-text{font-size:1.9375rem;font-weight:300;letter-spacing:-.09375rem;line-height:1.875rem;margin-bottom:2rem;width:100%}@media(min-width:1200px){.cmp-hero__actions-wrapper .cmp-hero__actions-container .cmp-hero__actions-jump-text{font-size:3.1875rem;font-weight:300;letter-spacing:-.15625rem;line-height:3rem}}@media(min-width:1024px){.cmp-hero__actions-wrapper .cmp-hero__actions-container .cmp-hero__actions-jump-text{font-size:3.1875rem;font-weight:300;letter-spacing:-.15625rem;line-height:3rem;margin-bottom:.9375rem;padding-right:4.6875rem;width:auto}}.cmp-hero__actions-wrapper .cmp-hero__actions-container .cmp-teaser__action-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-box-pack:justify;-ms-flex-pack:justify;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-flow:column wrap;flex-flow:column wrap;justify-content:space-between;width:100%}@media(min-width:1024px){.cmp-hero__actions-wrapper .cmp-hero__actions-container .cmp-teaser__action-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;-ms-flex-flow:row;flex-flow:row;width:auto}}@media(min-width:1200px){.cmp-hero__actions-wrapper .cmp-hero__actions-container .cmp-teaser__action-container{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;justify-content:flex-start}}.cmp-hero__actions-wrapper .cmp-hero__actions-container .cmp-teaser__action-link{color:inherit;display:inline-block;font-size:1rem;font-weight:600;font-weight:400;letter-spacing:-.25px;line-height:1.25rem;margin-bottom:.75rem;margin-right:.625rem;padding-bottom:0}@media(min-width:1200px){.cmp-hero__actions-wrapper .cmp-hero__actions-container .cmp-teaser__action-link{font-size:1.125rem;font-weight:400;letter-spacing:-.25px;line-height:1.5rem}}.cmp-hero__actions-wrapper .cmp-hero__actions-container .cmp-teaser__action-link:last-child{margin-right:0}@media(min-width:1024px){.cmp-hero__actions-wrapper .cmp-hero__actions-container .cmp-teaser__action-link{font-size:1.125rem;font-weight:400;letter-spacing:-.25px;line-height:1.5rem;margin-bottom:0;margin-right:1.875rem}}.cmp-hero__actions-wrapper .cmp-hero__actions-container .cmp-teaser__action-link:after{background:currentColor;content:"";display:inline-block;-webkit-filter:invert(15%) sepia(0) saturate(20%) hue-rotate(192deg) brightness(92%) contrast(83%);filter:invert(15%) sepia(0) saturate(20%) hue-rotate(192deg) brightness(92%) contrast(83%);height:.875rem;margin-left:.25rem;mask-image:url(../../../etc.clientlibs/tag-aem-swcom/clientlibs/clientlib-site/resources/carat-right.da0137292a914d8065e552f88a5063c6.svg);-webkit-mask-image:url(../../../etc.clientlibs/tag-aem-swcom/clientlibs/clientlib-site/resources/carat-right.da0137292a914d8065e552f88a5063c6.svg);mask-position:center;-webkit-mask-position:center;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-size:cover;-webkit-mask-size:cover;-webkit-transform:translateY(.125rem);transform:translateY(.125rem);-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out;width:.875rem}.cmp-hero__actions-wrapper .cmp-hero__actions-container .cmp-teaser__action-link:hover{text-decoration:underline}.cmp-hero__actions-wrapper .cmp-hero__actions-container .cmp-teaser__action-link:hover:after{-webkit-transform:translate(.25rem,.125rem);transform:translate(.25rem,.125rem)}.swcom-hero__backdrop{background-color:var(--hero-color-background);height:100%;position:absolute;top:0;width:100%;z-index:1}.swcom-hero__content{margin:0 auto;max-width:82rem;position:relative;width:100%;z-index:4}.swcom-hero__headline{margin:0}.swcom-hero__headline[data-polarity=light],[data-polarity=light] .swcom-hero__headline:not([data-polarity=dark]){color:#fff}.swcom-hero__chips{grid-gap:1.5rem;display:-webkit-box;display:-ms-flexbox;display:flex;gap:1.5rem;padding:.75rem 1rem 0}.swcom-hero__track--article{--hero-article-padding:2.1875rem 0 0;--hero-article-height-overlap:1.5rem;--hero-article-height-microchip:0px;--hero-article-image-aspect-ratio:11/8;padding:var(--hero-article-padding);position:relative;text-align:center}@media(min-width:767px){.swcom-hero__track--article{--hero-article-height-overlap:2.5rem;--hero-article-image-aspect-ratio:3/1}}@media(min-width:1200px){.swcom-hero__track--article{--hero-article-height-overlap:7rem;--hero-article-padding:5rem 0 0;--hero-article-image-aspect-ratio:11/4}}.swcom-hero__track--article.swcom-hero__track--has-microchip{--hero-article-height-microchip:2.375rem}.swcom-hero__track--article .swcom-hero__headline{margin-bottom:1.875rem}@media(min-width:1200px){.swcom-hero__track--article .swcom-hero__headline{margin-bottom:2.75rem}}.swcom-hero__track--article .swcom-hero__backdrop{height:calc(100% - var(--hero-article-height-overlap) - var(--hero-article-height-microchip));left:-50%;margin:0 auto;right:-50%;width:100vw}.swcom-hero__track--article .swcom-hero__image{aspect-ratio:var(--hero-article-image-aspect-ratio);position:relative}.swcom-hero__track--article .swcom-hero__image img,.swcom-hero__track--article .swcom-hero__image>div{height:100%;left:0;position:absolute;right:0;top:0;width:100%}.swcom-hero__track--article .swcom-hero__image img{-webkit-box-shadow:0 16px 64px -5px rgba(0,0,0,.02),0 8px 32px -5px rgba(0,0,0,.08);box-shadow:0 16px 64px -5px rgba(0,0,0,.02),0 8px 32px -5px rgba(0,0,0,.08);-o-object-fit:cover;object-fit:cover}@media(max-width:767px){.swcom-hero__track--article .swcom-hero__chips .cmp-microchip:nth-child(2){display:none}}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50bGliLWdhdGV3YXktc3RvcmVkZXRhaWwtaGVyby9nYXRld2F5LXN0b3JlZGV0YWlsLWhlcm8uY3NzIiwibWFwcGluZ3MiOiJBQUFBLE1BQ0UsK0RDRFksQ0RJZCxrQkFDRSxVQUlGLG1DQUNFLHFEQUNBLGtDRVBBLGNBREEsZ0JGYTZCLENBRDdCLFVBSEEsV0VWQSxtQkFFQSxDRmNBLHNEQUVFLG9EQURBLHNCQUNBLFdBQ0EsV0dERix5QkhGQSxzREFLSSxpRUFDQSxjQUlKLHdEQUlFLHlEQUNBLDZDQUNBLDZDQUVBLHFEQUZBLHVCQUxBLFVJV2UsQ0pUZixxREFDQSxnREFDQSx1QkFHQSxZQURBLGVBTEEsVUFNQSxDR2hCRix5QkhRQSx3REFXSSwrREFFQSxrQkFEQSxjQUVBLGNBR0YsOEVBSUUsbUJBRkEsZUN6Q00sQ0Q2Q04sbUJBREEsaUJBSkEsc0JBRUEsU0FHQSxDRy9CSix5Qkh5QkUsOEVBU0ksdUJBSUosOEtBRUUsVUlwQmEsQ0p3QmIsaUJBSEEsZUN6RFEsQ0Q2RFIsbUNBSEEsd0JBQ0EsU0FFQSxDRzdDSix5QkhzQ0UsOEtDK0JGLG9CQUdBLGVBeEZZLENBdUZaLHdCQURBLG9CRHRCTSxxQkNoRU0sRUVVWiw4Q0g0Q0UsOEtDcUNBLG9CQUdBLGVBL0ZTLENBOEZULDBCQURBLGdCQTdGUyxFQWtHWCwrQ0FDRSxvTUFDRSxpQkFHQSxlQXRHUSxDQXFHUix1QkFEQSxrQkFwR1EsRURxRVYsaUZDaENGLGVBR0EsZUF4Q1ksQ0F1Q1osc0JBREEsb0JEZ0NJLHVCQUVBLFVBQ0EsVUN6RVEsQ0VzQloseUJIK0NFLGlGQzFCQSxtQkFHQSxlQTlDVSxDQTZDVixzQkFEQSxrQkE1Q1UsRUVnQloseUJIcURFLGlGQU9JLHVCQUlKLHNGQUNFLFNBSUosdUVBRUUsZUlqRlUsQ0pnRlYsaUJJaEZVLENKa0ZWLGFJbkVjLENKNEVaLHlLQUNFLFVJNUZNLENKaUdaLGdFQUNFLFVJakdVLENKbUdWLDZFQUVFLGlCSXJHUSxDSm9HUixVSXBHUSxDSnVHUixtRkFFRSxxQkl6R00sQ0owR04sc0JBRkEsVUFFQSxDQUtGLDRHQUNFLFVJaEhNLENKc0hkLDJCQUVFLHVCQURBLGdCQUNBLENHL0dBLHlCSDZHRiwyQkFJSSxxQkFHRix3REFHRSx5REFDQSwrQ0FDQSwrQ0FEQSxtQkFIQSxhSWhIYyxDSmlIZCxxREFDQSxnREFFQSw4Qkt6SVcsY0hEYixnQkdDYSxDSEZiLG1CR0VhLENGZ0JiLHlCSG9IQSx3REFTSSxzR0FHRixxRkNlRixvQkFHQSxlQW5LVyxDQWtLWCwwQkFEQSxxQkRkSSxtQkFDQSxXRzdISix5QkgwSEUscUZDcUJBLG9CQUdBLGVBektTLENBd0tULDBCQURBLGdCQXZLUyxFRWlCWCx5QkhnSUUscUZBU0ksb0JBR0EsZUM3SkssQ0Q0SkwsMEJBREEsaUJBRkEsdUJBREEsd0JBREEsVUN2SkssRURpS1Qsc0ZBRUUseURBQ0EsK0NBRkEscURBQ0EsZ0RBQ0EsOEJBQ0EsV0dwSkoseUJIZ0pFLHNGQVFJLDJEQUNBLG1EQURBLGdDQURBLFVBRUEsRUduSk4seUJIMElFLHNGQWFJLDJDQUNBLG1EQURBLDBCQUNBLEVBSUosaUZBRUUsY0FEQSxxQkM5SUosZURnSkksZUNwTFUsQ0F1Q2QsZUF4Q1ksQ0F1Q1osc0JBREEsb0JEa0pJLHFCQUNBLHFCQUZBLGdCQUVBLENHbktKLHlCSDRKRSxpRkN2SUEsbUJBR0EsZUE5Q1UsQ0E2Q1Ysc0JBREEsa0JBNUNVLEVEMkxSLDRGQUNFLGVHNUtOLHlCSGtLRSxpRkFnQkksbUJBR0EsZUNyTU0sQ0RvTU4sc0JBREEsbUJBSEEsZ0JBQ0EscUJDak1NLEVEeU1WLHVGTXZGRix3QkFRQSxXTmlGSSxxQkFHQSw4TEFHQSxlQUxBLG1CTTNGSixtREFLQSwyREFGQSxxQkFJQSw2QkFMQSxzQkFJQSw4QkFGQSxnQkFJQSx3Qk55Rkksb0VBTEEsOE1BR0EsYUFFQSxDQUdGLHVGQUNFLDBCQUNBLDZGQUNFLGdGQU1SLHNCQUtFLDhDQURBLFlBSEEsa0JBQ0EsTUFDQSxXQUdBLFVBR0YscUJBR0UsY0FEQSxnQkFFQSxrQkFIQSxXQUlBLFVBR0Ysc0JBQ0UsU085T0EsaUhQaVBFLFdBSUosbUJBRUUsZ0JBREEscURBQ0EsV0FDQSxzQkFNRiw0QkFDRSxxQ0FDQSxxQ0FDQSxvQ0FDQSx1Q0FlQSxvQ0FGQSxrQkFDQSxpQkFDQSxDUXNSRSx3QlJ6U0osNEJBT0kscUNBQ0EsdUNRaVNBLHlCUnpTSiw0QkFZSSxtQ0FDQSxnQ0FDQSx3Q0FPRiw2REFDRSx5Q0FHRixrREFDRSx1QlErUUEseUJSaFJGLGtEQUlJLHVCQUlKLGtEQUNFLDhGQUdBLFVBREEsY0FFQSxXQUhBLFdBR0EsQ0FHRiwrQ0FFRSxvREFEQSxpQkFDQSxDQUVBLHNHQU9FLFlBSEEsT0FGQSxrQkFHQSxRQUZBLE1BR0EsVUFDQSxDQUdGLG1EQUVFLGdLQURBLG9DQUNBLENRZ1BGLHdCUjVPQSwyRUFFSSw4SyIsInNvdXJjZXMiOlsid2VicGFjazovL2FlbS1tYXZlbi1hcmNoZXR5cGUvLi9zcmMvZ2F0ZXdheS1zdG9yZWRldGFpbC9oZXJvL19oZXJvLnNjc3MiLCJ3ZWJwYWNrOi8vYWVtLW1hdmVuLWFyY2hldHlwZS8uL3NyYy9nYXRld2F5LXN0b3JlZGV0YWlsL3NpdGUvc3R5bGVzL3ZhcmlhYmxlcy9fdHlwb2dyYXBoeS5zY3NzIiwid2VicGFjazovL2FlbS1tYXZlbi1hcmNoZXR5cGUvLi9zcmMvZ2F0ZXdheS1zdG9yZWRldGFpbC9zaXRlL3N0eWxlcy9taXhpbnMvX2NvbnRhaW5lci5zY3NzIiwid2VicGFjazovL2FlbS1tYXZlbi1hcmNoZXR5cGUvLi9zcmMvZ2F0ZXdheS1zdG9yZWRldGFpbC9zaXRlL3N0eWxlcy91dGlsaXRpZXMvX3F1ZXJpZXMuc2NzcyIsIndlYnBhY2s6Ly9hZW0tbWF2ZW4tYXJjaGV0eXBlLy4vc3JjL2dhdGV3YXktc3RvcmVkZXRhaWwvc2l0ZS9zdHlsZXMvdmFyaWFibGVzL19jb2xvcnMuc2NzcyIsIndlYnBhY2s6Ly9hZW0tbWF2ZW4tYXJjaGV0eXBlLy4vc3JjL2dhdGV3YXktc3RvcmVkZXRhaWwvc2l0ZS9zdHlsZXMvdmFyaWFibGVzL19sYXlvdXQuc2NzcyIsIndlYnBhY2s6Ly9hZW0tbWF2ZW4tYXJjaGV0eXBlLy4vc3JjL2dhdGV3YXktc3RvcmVkZXRhaWwvc2l0ZS9zdHlsZXMvbWl4aW5zL19pY29ucy5zY3NzIiwid2VicGFjazovL2FlbS1tYXZlbi1hcmNoZXR5cGUvLi9zcmMvc2hhcmVkL3N0eWxlcy9taXhpbnMvX3NldC1wb2xhcml0eS5zY3NzIiwid2VicGFjazovL2FlbS1tYXZlbi1hcmNoZXR5cGUvLi9ub2RlX21vZHVsZXMvaW5jbHVkZS1tZWRpYS9kaXN0L19pbmNsdWRlLW1lZGlhLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLmhlcm8ge1xuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xufVxuLyogbWFpbiB3cmFwcGVyICovXG4uaGVybyAuY21wLXRlYXNlciB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8vIFRoaXMgaXMgdGhlIGhlcm8ncyBtYWluIGNvbnRhaW5lclxuLmhlcm8gLmNtcC10ZWFzZXJfX2NvbnRlbnQtd3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIHBhZGRpbmc6IDA7XG4gIEBpbmNsdWRlIGdnLWNvbnRhaW5lcihmYWxzZSwgMTQwMHB4KTtcblxuICAuY21wLXRlYXNlcl9faW1hZ2Uge1xuICAgIG1hcmdpbi1ib3R0b206IC0yLjVyZW07XG4gICAgb3JkZXI6IDk5OTk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgQGluY2x1ZGUgZm9yLXRhYmxldC1sYW5kc2NhcGUtdXAge1xuICAgICAgb3JkZXI6IC05OTk5O1xuICAgICAgd2lkdGg6IDY2LjY2JTtcbiAgICB9XG4gIH1cblxuICAuY21wLXRlYXNlcl9fY29udGVudCB7XG4gICAgY29sb3I6ICRjb2xvci1mb250LWxpZ2h0O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBwYWRkaW5nOiByZW0oMzJweCAwKTtcbiAgICBvcmRlcjogLTk5OTk7XG5cbiAgICBAaW5jbHVkZSBmb3ItdGFibGV0LWxhbmRzY2FwZS11cCB7XG4gICAgICBvcmRlcjogOTk5OTtcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgcGFkZGluZy1sZWZ0OiA0cmVtO1xuICAgICAgd2lkdGg6IDMzLjMzJTtcbiAgICB9XG5cbiAgICAuY21wLXRlYXNlcl9fcHJldGl0bGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDEwcHgpO1xuICAgICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgZm9udC1zaXplOiByZW0oMTNweCk7XG4gICAgICBsaW5lLWhlaWdodDogcmVtKDE2cHgpO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcblxuICAgICAgQGluY2x1ZGUgZm9yLXRhYmxldC1sYW5kc2NhcGUtdXAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMjBweCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNtcC10ZWFzZXJfX3RpdGxlLFxuICAgIC5jbXAtdGVhc2VyX190aXRsZSAuY21wLXRlYXNlcl9fdGl0bGUtbGluayB7XG4gICAgICBjb2xvcjogJGNvbG9yLWZvbnQtbGlnaHQ7XG4gICAgICBmb250LXdlaWdodDogJGZvbnQtbm9ybWFsO1xuICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDE3cHgpO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDQwcHgpO1xuICAgICAgbGluZS1oZWlnaHQ6IHJlbSgzNSk7XG5cbiAgICAgIEBpbmNsdWRlIGZvci10YWJsZXQtbGFuZHNjYXBlLXVwIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDIwcHgpO1xuICAgICAgICBAaW5jbHVkZSBoZWFkaW5nMjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY21wLXRlYXNlcl9fZGVzY3JpcHRpb24ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDE1cHgpO1xuICAgICAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm1hbDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB3aWR0aDogMTAwJTsgLy8gISEgSUUxMSBGbGV4Ym94IEZpeCAhIVxuICAgICAgQGluY2x1ZGUgdGV4dC1iYXNlO1xuICAgICAgQGluY2x1ZGUgZm9yLXRhYmxldC1sYW5kc2NhcGUtdXAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMjBweCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNtcC10ZWFzZXJfX21haW4tYWN0aW9uLWxpbmsge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgfVxuXG4gICYgYS5jbXAtYnV0dG9uLmNtcC1idXR0b24tbGlnaHQ6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgIGJhY2tncm91bmQ6ICRjb2xvci13aGl0ZTtcbiAgICBjb2xvcjogJGNvbG9yLWRhcmstZ3JheTtcbiAgfVxufVxuXG4uaGVybyAuY21wLXRlYXNlciAuY21wLXRlYXNlcl9fY29udGVudCB7XG4gICYuZGFya0JhY2tncm91bmRXaGl0ZVRleHQge1xuICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XG5cbiAgICAuY21wLXRlYXNlcl9fdGl0bGUge1xuICAgICAgJi5kYXJrQmFja2dyb3VuZFdoaXRlVGV4dCB7XG4gICAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5saWdodEJhY2tncm91bmRCbGFja1RleHQge1xuICAgIGNvbG9yOiAkY29sb3ItYmxhY2s7XG5cbiAgICBhLmNtcC1idXR0b24ge1xuICAgICAgY29sb3I6ICRjb2xvci1ibGFjaztcbiAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLWJsYWNrO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItYmxhY2s7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRjb2xvci1ibGFjaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY21wLXRlYXNlcl9fdGl0bGUge1xuICAgICAgJi5saWdodEJhY2tncm91bmRCbGFja1RleHQge1xuICAgICAgICBjb2xvcjogJGNvbG9yLWJsYWNrO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uY21wLWhlcm9fX2FjdGlvbnMtd3JhcHBlciB7XG4gIHBhZGRpbmctdG9wOiA1cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMS4yNXJlbTtcbiAgQGluY2x1ZGUgZm9yLXRhYmxldC1sYW5kc2NhcGUtdXAge1xuICAgIHBhZGRpbmctYm90dG9tOiByZW0oODBweCk7XG4gIH1cblxuICAuY21wLWhlcm9fX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICBjb2xvcjogJGNvbG9yLWRhcmstZ3JheTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogY29sdW1uIHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgQGluY2x1ZGUgZ2ctY29udGFpbmVyKCk7XG5cbiAgICBAaW5jbHVkZSBmb3ItdGFibGV0LWxhbmRzY2FwZS11cCB7XG4gICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIH1cblxuICAgIC5jbXAtaGVyb19fYWN0aW9ucy1qdW1wLXRleHQge1xuICAgICAgQGluY2x1ZGUgaGVhZGluZzM7XG4gICAgICBtYXJnaW4tYm90dG9tOiByZW0oMzJweCk7XG4gICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgQGluY2x1ZGUgZm9yLXRhYmxldC1sYW5kc2NhcGUtdXAge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgcGFkZGluZy1yaWdodDogcmVtKDc1cHgpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTVweCk7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDUxcHgpO1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtKDQ4cHgpO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogcmVtKC0yLjVweCk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1saWdodDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY21wLXRlYXNlcl9fYWN0aW9uLWNvbnRhaW5lciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1mbG93OiBjb2x1bW4gd3JhcDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICBAaW5jbHVkZSBmb3ItdGFibGV0LWxhbmRzY2FwZS11cCB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBmbGV4LWZsb3c6IHJvdztcbiAgICAgICAgZmxleDogMSAwIGF1dG87XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGZvci1kZXNrdG9wLXVwIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNtcC10ZWFzZXJfX2FjdGlvbi1saW5rIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgZm9udC13ZWlnaHQ6ICRmb250LXNlbWlib2xkO1xuICAgICAgQGluY2x1ZGUgdGV4dC1iYXNlO1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTJweCk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IHJlbSgxMHB4KTtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBmb3ItdGFibGV0LWxhbmRzY2FwZS11cCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogcmVtKDMwcHgpO1xuICAgICAgICBmb250LXNpemU6IHJlbSgxOHB4KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgyNHB4KTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0uMjVweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm1hbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY21wLXRlYXNlcl9fYWN0aW9uLWxpbms6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tbGVmdDogcmVtKDRweCk7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjNzIGVhc2UtaW4tb3V0O1xuICAgICAgZmlsdGVyOiBpbnZlcnQoMTUlKSBzZXBpYSgwJSkgc2F0dXJhdGUoMjAlKSBodWUtcm90YXRlKDE5MmRlZykgYnJpZ2h0bmVzcyg5MiUpIGNvbnRyYXN0KDgzJSk7XG4gICAgICBAaW5jbHVkZSBtYXNrLWNhcmF0LXJpZ2h0O1xuICAgICAgd2lkdGg6IHJlbSgxNHB4KTtcbiAgICAgIGhlaWdodDogcmVtKDE0cHgpO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKHJlbSgycHgpKTtcbiAgICB9XG5cbiAgICAuY21wLXRlYXNlcl9fYWN0aW9uLWxpbms6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUocmVtKDRweCksIHJlbSgycHgpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnN3Y29tLWhlcm9fX2JhY2tkcm9wIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWhlcm8tY29sb3ItYmFja2dyb3VuZCk7XG4gIHotaW5kZXg6IDE7XG59XG5cbi5zd2NvbS1oZXJvX19jb250ZW50IHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogcmVtKDEzMTJweCk7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDQ7XG59XG5cbi5zd2NvbS1oZXJvX19oZWFkbGluZSB7XG4gIG1hcmdpbjogMDtcblxuICBAaW5jbHVkZSBzd2NvbS1zZXQtcG9sYXJpdHktbGlnaHQoKSB7XG4gICAgY29sb3I6ICNmZmY7XG4gIH1cbn1cblxuLnN3Y29tLWhlcm9fX2NoaXBzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiByZW0oMjRweCk7XG4gIHBhZGRpbmc6IHJlbSgxMnB4KSByZW0oMTZweCkgMDtcbn1cblxuLy8gVmFyaWF0aW9uIC0+IEFydGljbGVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5zd2NvbS1oZXJvX190cmFjay0tYXJ0aWNsZSB7XG4gIC0taGVyby1hcnRpY2xlLXBhZGRpbmc6ICN7cmVtKDM1cHgpfSAwIDA7XG4gIC0taGVyby1hcnRpY2xlLWhlaWdodC1vdmVybGFwOiAje3JlbSgyNHB4KX07XG4gIC0taGVyby1hcnRpY2xlLWhlaWdodC1taWNyb2NoaXA6IDBweDtcbiAgLS1oZXJvLWFydGljbGUtaW1hZ2UtYXNwZWN0LXJhdGlvOiAxMSAvIDg7XG5cbiAgQGluY2x1ZGUgbWVkaWEoXCI+PXNtXCIpIHtcbiAgICAtLWhlcm8tYXJ0aWNsZS1oZWlnaHQtb3ZlcmxhcDogI3tyZW0oNDBweCl9O1xuICAgIC0taGVyby1hcnRpY2xlLWltYWdlLWFzcGVjdC1yYXRpbzogMyAvIDE7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYShcIj49bGdcIikge1xuICAgIC0taGVyby1hcnRpY2xlLWhlaWdodC1vdmVybGFwOiAje3JlbSgxMTJweCl9O1xuICAgIC0taGVyby1hcnRpY2xlLXBhZGRpbmc6ICN7cmVtKDgwcHgpfSAwIDA7XG4gICAgLS1oZXJvLWFydGljbGUtaW1hZ2UtYXNwZWN0LXJhdGlvOiAxMSAvIDQ7XG4gIH1cblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogdmFyKC0taGVyby1hcnRpY2xlLXBhZGRpbmcpO1xuXG4gICYuc3djb20taGVyb19fdHJhY2stLWhhcy1taWNyb2NoaXAge1xuICAgIC0taGVyby1hcnRpY2xlLWhlaWdodC1taWNyb2NoaXA6ICN7cmVtKDM4cHgpfTtcbiAgfVxuXG4gIC5zd2NvbS1oZXJvX19oZWFkbGluZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogcmVtKDMwcHgpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI+PWxnXCIpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg0NHB4KTtcbiAgICB9XG4gIH1cblxuICAuc3djb20taGVyb19fYmFja2Ryb3Age1xuICAgIGhlaWdodDogY2FsYygxMDAlIC0gdmFyKC0taGVyby1hcnRpY2xlLWhlaWdodC1vdmVybGFwKSAtIHZhcigtLWhlcm8tYXJ0aWNsZS1oZWlnaHQtbWljcm9jaGlwKSk7XG4gICAgd2lkdGg6IDEwMHZ3O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGxlZnQ6IC01MCU7XG4gICAgcmlnaHQ6IC01MCU7XG4gIH1cblxuICAuc3djb20taGVyb19faW1hZ2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBhc3BlY3QtcmF0aW86IHZhcigtLWhlcm8tYXJ0aWNsZS1pbWFnZS1hc3BlY3QtcmF0aW8pO1xuXG4gICAgPiBkaXYsXG4gICAgaW1nIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIGJveC1zaGFkb3c6IDBweCAxNnB4IDY0cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMDIpLCAwcHggOHB4IDMycHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICAgIH1cbiAgfVxuICAuc3djb20taGVyb19fY2hpcHMge1xuICAgIC5jbXAtbWljcm9jaGlwOm50aC1jaGlsZCgyKXtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXNtJyl7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIkZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBoZWx2ZXRpY2EsIGFyaWFsLCBzYW5zLXNlcmlmO1xuJGZvbnQtc2l6ZTogMTZweDtcbiRmb250LWhlaWdodDogMS41O1xuJGZvbnQtbGlnaHQ6IDMwMDtcbiRmb250LW5vcm1hbDogNDAwO1xuJGZvbnQtc2VtaWJvbGQ6IDYwMDtcbiRmb250LWJvbGQ6IDcwMDtcbiRmb250LXdlaWdodC1ib2xkOiA3MDA7XG5cbi8vIFRlYXNlclxuJHRlYXNlci1mb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuJHRlYXNlci10aXRsZS1mb250LXNpemU6IHJlbSgyNHB4KTtcbiR0ZWFzZXItZGVzYy1mb250LXNpemU6IHJlbSgxNnB4KTtcbiR0ZWFzZXItZGVzYy1saW5lLWhlaWdodDogcmVtKDI4cHgpO1xuXG4vLyBHbG9iYWwgR2F0ZXdheVxuJGZvbnQtZmFtaWx5LW9wZW5zYW5zOiAnT3BlbiBTYW5zJywgc2Fucy1zZXJpZjtcblxuLy8gUGFyYWdyYXBoIG1peGluc1xuQG1peGluIHRleHQteHMge1xuICBmb250LXNpemU6IHJlbSgxMHB4KTtcbiAgbGluZS1oZWlnaHQ6IHJlbSgxNXB4KTtcbiAgbGV0dGVyLXNwYWNpbmc6IHJlbSgxNXB4KTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG59XG5cbkBtaXhpbiB0ZXh0LXNtIHtcbiAgZm9udC1zaXplOiByZW0oMTJweCk7XG4gIGxpbmUtaGVpZ2h0OiByZW0oMTRweCk7XG4gIGxldHRlci1zcGFjaW5nOiAtLjAwMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtYWw7XG5cbiAgQGluY2x1ZGUgZm9yLWRlc2t0b3AtdXAge1xuICAgIGZvbnQtc2l6ZTogcmVtKDE0cHgpO1xuICAgIGxpbmUtaGVpZ2h0OiByZW0oMTZweCk7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0uMDAyNXJlbTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtbm9ybWFsO1xuICB9XG59XG5cbkBtaXhpbiB0ZXh0LWJhc2Uge1xuICBmb250LXNpemU6IHJlbSgxNnB4KTtcbiAgbGluZS1oZWlnaHQ6IHJlbSgyMHB4KTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0uMjVweDtcbiAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm1hbDtcblxuICBAaW5jbHVkZSBmb3ItZGVza3RvcC11cCB7XG4gICAgZm9udC1zaXplOiByZW0oMThweCk7XG4gICAgbGluZS1oZWlnaHQ6IHJlbSgyNHB4KTtcbiAgICBsZXR0ZXItc3BhY2luZzogLS4yNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtYWw7XG4gIH1cbn1cblxuQG1peGluIHRleHQtbGcge1xuICBmb250LXNpemU6IHJlbSgyNXB4KTtcbiAgbGluZS1oZWlnaHQ6IHJlbSgzMnB4KTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0uNzVweDtcbiAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm1hbDtcbn1cblxuQG1peGluIHRleHQteGwge1xuICBmb250LXNpemU6IHJlbSgyMXB4KTtcbiAgbGluZS1oZWlnaHQ6IHJlbSgyOHB4KTtcbn1cblxuLy8gSGVhZGVycyBhbmQgdGl0bGVzIG1peGluc1xuQG1peGluIHByZS10aXRsZSB7XG4gIGZvbnQtc2l6ZTogcmVtKDEycHgpO1xuICBsaW5lLWhlaWdodDogcmVtKDE2cHgpO1xuICBsZXR0ZXItc3BhY2luZzogcmVtKDJweCk7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xufVxuXG5AbWl4aW4gaGVhZGluZzEge1xuICBmb250LXNpemU6IHJlbSgzOXB4KTtcbiAgbGluZS1oZWlnaHQ6IHJlbSgzNnB4KTtcbiAgbGV0dGVyLXNwYWNpbmc6IHJlbSgtMnB4KTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm1hbDtcblxuICBAaW5jbHVkZSBmb3IteGwtZGVza3RvcC11cCB7XG4gICAgZm9udC1zaXplOiByZW0oNTFweCk7XG4gICAgbGluZS1oZWlnaHQ6IHJlbSg0OHB4KTtcbiAgICBsZXR0ZXItc3BhY2luZzogcmVtKC0yLjVweCk7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LWxpZ2h0O1xuICB9XG59XG5cbkBtaXhpbiBoZWFkaW5nMiB7XG4gIGZvbnQtc2l6ZTogcmVtKDM5cHgpO1xuICBsaW5lLWhlaWdodDogcmVtKDM2cHgpO1xuICBsZXR0ZXItc3BhY2luZzogcmVtKC0ycHgpO1xuICBmb250LXdlaWdodDogJGZvbnQtbm9ybWFsO1xuXG4gIEBpbmNsdWRlIGZvci10YWJsZXQtcG9ydHJhaXQtdXAge1xuICAgIGZvbnQtc2l6ZTogcmVtKDUxcHgpO1xuICAgIGxpbmUtaGVpZ2h0OiByZW0oNDhweCk7XG4gICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgtMi41cHgpO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1saWdodDtcbiAgfVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAxNDQxcHgpIHtcbiAgICAmLmhlYWRpbmctbGcge1xuICAgICAgZm9udC1zaXplOiByZW0oNzJweCk7XG4gICAgICBsaW5lLWhlaWdodDogcmVtKDcycHgpO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgtNHB4KTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtYWw7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB1aS1oZWFkaW5nMSB7XG4gIGZvbnQtc2l6ZTogcmVtKDEycHgpO1xuICBsaW5lLWhlaWdodDogcmVtKDE0cHgpO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm1hbDtcbn1cblxuQG1peGluIHVpLWhlYWRpbmcyIHtcbiAgZm9udC1zaXplOiByZW0oMTRweCk7XG4gIGxpbmUtaGVpZ2h0OiByZW0oMTZweCk7XG4gIGxldHRlci1zcGFjaW5nOiByZW0oLS4yNXB4KTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm1hbDtcbn1cblxuQG1peGluIHVpLWhlYWRpbmczIHtcbiAgZm9udC1zaXplOiByZW0oMTZweCk7XG4gIGxpbmUtaGVpZ2h0OiByZW0oMThweCk7XG4gIGxldHRlci1zcGFjaW5nOiByZW0oLS4yNXB4KTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm1hbDtcbn1cblxuQG1peGluIHVpLWhlYWRpbmc0IHtcbiAgZm9udC1zaXplOiByZW0oMjBweCk7XG4gIGxpbmUtaGVpZ2h0OiByZW0oMjRweCk7XG4gIGxldHRlci1zcGFjaW5nOiByZW0oLS41cHgpO1xuICBmb250LXdlaWdodDogJGZvbnQtbm9ybWFsO1xufVxuXG5AbWl4aW4gdWktZGlzcGxheTEge1xuICBmb250LXNpemU6IHJlbSgxOHB4KTtcbiAgbGluZS1oZWlnaHQ6IHJlbSgyNHB4KTtcbiAgbGV0dGVyLXNwYWNpbmc6IHJlbSgtLjI1cHgpO1xuICBmb250LXdlaWdodDogJGZvbnQtbm9ybWFsO1xufVxuXG5AbWl4aW4gdWktb3ZlcmxpbmUxIHtcbiAgZm9udC1zaXplOiByZW0oMTBweCk7XG4gIGxpbmUtaGVpZ2h0OiByZW0oMTVweCk7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbn1cblxuQG1peGluIHVpLW92ZXJsaW5lMiB7XG4gIGZvbnQtc2l6ZTogcmVtKDEzcHgpO1xuICBsaW5lLWhlaWdodDogcmVtKDE2cHgpO1xuICBsZXR0ZXItc3BhY2luZzogcmVtKDJweCk7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xufVxuLy8gVGhlc2UgaGVhZGluZ3MgYmVsb3cgYXJlIGRlcHJlY2F0ZWQsIGxlZnQgaGVyZSB0byBhdm9pZCBicmVha2luZyBjaGFuZ2VzLlxuLy8gSW5pdGlhbGx5IGNyZWF0ZWQgYXNzdW1pbmcgRmlnbWEgd2FzIHVzaW5nIGgxLCBoMiwgaDMuLi5cbi8vIGJ1dCB0aG9zZSB3ZXJlIGp1c3QgZ2VuZXJpYyBmb250IHNpemVzIGZvciAqYW55dGhpbmcqLlxuQG1peGluIGhlYWRpbmczIHtcbiAgZm9udC1zaXplOiByZW0oMzFweCk7XG4gIGxpbmUtaGVpZ2h0OiByZW0oMzBweCk7XG4gIGxldHRlci1zcGFjaW5nOiByZW0oLTEuNXB4KTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWxpZ2h0O1xuXG4gIEBpbmNsdWRlIGZvci1kZXNrdG9wLXVwIHtcbiAgICBmb250LXNpemU6IHJlbSg1MXB4KTtcbiAgICBsaW5lLWhlaWdodDogcmVtKDQ4cHgpO1xuICAgIGxldHRlci1zcGFjaW5nOiByZW0oLTIuNXB4KTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtbGlnaHQ7XG4gIH1cbn1cblxuQG1peGluIGhlYWRpbmc0IHtcbiAgZm9udC1zaXplOiByZW0oMjVweCk7XG4gIGxpbmUtaGVpZ2h0OiByZW0oMjhweCk7XG4gIGxldHRlci1zcGFjaW5nOiByZW0oLTFweCk7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1zZW1pYm9sZDtcblxuICBAaW5jbHVkZSBmb3ItZGVza3RvcC11cCB7XG4gICAgZm9udC1zaXplOiByZW0oMzZweCk7XG4gICAgbGluZS1oZWlnaHQ6IHJlbSg0MHB4KTtcbiAgICBsZXR0ZXItc3BhY2luZzogcmVtKC0xLjI1cHgpO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1zZW1pYm9sZDtcbiAgfVxufVxuXG5AbWl4aW4gaGVhZGluZzUge1xuICBmb250LXNpemU6IHJlbSgyMHB4KTtcbiAgbGluZS1oZWlnaHQ6IHJlbSgyNHB4KTtcbiAgbGV0dGVyLXNwYWNpbmc6IHJlbSgtLjVweCk7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtYWw7XG5cbiAgQGluY2x1ZGUgZm9yLWRlc2t0b3AtdXAge1xuICAgIGZvbnQtc2l6ZTogcmVtKDI1cHgpO1xuICAgIGxpbmUtaGVpZ2h0OiByZW0oMzJweCk7XG4gICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgtLjc1cHgpO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtYWw7XG4gIH1cbn1cblxuQG1peGluIGhlYWRpbmc2IHtcbiAgZm9udC1zaXplOiByZW0oMTZweCk7XG4gIGxpbmUtaGVpZ2h0OiByZW0oMjBweCk7XG4gIGxldHRlci1zcGFjaW5nOiByZW0oLS4yNXB4KTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm1hbDtcblxuICBAaW5jbHVkZSBmb3ItZGVza3RvcC11cCB7XG4gICAgZm9udC1zaXplOiByZW0oMThweCk7XG4gICAgbGluZS1oZWlnaHQ6IHJlbSgyNHB4KTtcbiAgICBsZXR0ZXItc3BhY2luZzogcmVtKC0uMjVweCk7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm1hbDtcbiAgfVxufVxuIiwiLyogc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50ICovXG5AbWl4aW4gZ2ctY29udGFpbmVyKCRmbHVpZDogZmFsc2UsICRzaXplOiAkc2NyZWVuLWxhcmdlKSB7XG4gIHdpZHRoOiA5NSUgIWltcG9ydGFudDsgLy8gVGhpcyAhaW1wb3J0YW50IGlzIHJlcXVpcmVkIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IEFFTSBzdHlsZXMgdGhhdCBoYXZlIGEgdmVyeSBoaWdoIHNwZWNpZmljaXR5LlxuICBtYXgtd2lkdGg6ICRzaXplO1xuICBtYXJnaW46IDAgYXV0bztcblxuICBAaW5jbHVkZSBmb3ItZGVza3RvcC11cCB7XG4gICAgQGlmICRmbHVpZCA9PSB0cnVlIHtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuLyogc3R5bGVsaW50LWVuYWJsZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnQgKi9cbiIsIkBtaXhpbiBmb3ItcGhvbmUtb25seSB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAkc2NyZWVuLXhzbWFsbCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBmb3ItcGhvbmUtdGFibGV0LXBvcnRyYWl0LW9ubHkge1xuICAvLyAoJHNjcmVlbi1tZWRpdW0gLSAxKSBpcyBzbyB0aGF0IGl0IGhhcHBlbnMganVzdCB1bmRlciB0aGUgdGFibGV0IGxhbmRzY2FwZVxuICBAbWVkaWEgKG1heC13aWR0aDogKCRzY3JlZW4tbWVkaXVtIC0gMSkpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gZm9yLXRhYmxldC1wb3J0cmFpdC11cCB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtYWxsKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGZvci10YWJsZXQtbGFuZHNjYXBlLXVwIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tbWVkaXVtKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGZvci1kZXNrdG9wLXVwIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tbGFyZ2UpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gZm9yLXhsLWRlc2t0b3AtdXAge1xuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi14bC1sYXJnZSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBmb3ItNDAwLXBlcmNlbnQtem9vbSB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAkc2NyZWVuLTQwMC16b29tKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vIFByaW1hcnlcbiRjb2xvci1wcmltYXJ5LXRyaWNvcm4tYmxhY2s6ICMyZjJmMzA7IC8vZGVmYXVsdCBjb2xvclxuJGNvbG9yLXByaW1hcnktd2hpdGU6ICNmZmY7XG5cbiRjb2xvci1zZWNvbmRhcnktYmxhY2s6ICMwMDA7XG4kY29sb3Itc2Vjb25kYXJ5LW1pZHBvaW50LWdyYXk6ICM3Njc2NzY7XG4kY29sb3Itc2Vjb25kYXJ5LXNpdGUtd2hpdGU6ICNkY2RlZGM7XG4kY29sb3Itc2Vjb25kYXJ5LXB1cmUtd2hpdGUtaGFsZi10aW50OiAjZmFmYWY5O1xuXG4vLz09IENvbG9yXG4kY29sb3Itd2hpdGU6IHdoaXRlO1xuJGNvbG9yLWJsYWNrOiAjMDAwO1xuJGxpZ2h0LWJsdWU6ICMwMDY3YjE7XG5cbi8vIFRlYXNlclxuJGNvbG9yLXRlYXNlci10aXRsZTogIzIyMjtcbiRjb2xvci10ZWFzZXItYWN0aW9uLWxpbms6ICMwNzFjNTE7XG5cbi8vIE5vcm1hbCBtb2RlXG4kY29sb3ItZm9yZWdyb3VuZDogIzIwMjAyMDtcbiRjb2xvci1iYWNrZ3JvdW5kOiAjZTVlNWU1O1xuJGNvbG9yLWJhY2tncm91bmQtc2VjdGlvbjogI2VkZWNlNjtcbiRjb2xvci1saW5rOiAjMjAyMGUwO1xuXG4vLyBDb2xvcnNcbiRjb2xvci1kYXJrLWdyYXk6ICMyZjJmMzA7XG4kY29sb3ItY2FyYXJyYTogI2VlZWZlYTtcbiRjb2xvci1tZWRpdW0td2hpdGU6ICNkNmQ2ZDY7XG5cbi8vIFN0b3JlIERldGFpbFxuJGNvbG9yLWxpbmstYmx1ZTogIzA3MWM1MTtcblxuLy8gR2xvYmFsIEdhdGV3YXlcbiRjb2xvci1tZWdhbWVudS1saW5rLWJsdWU6ICMwMDY4YjM7XG4kY29sb3ItbWVnYW1lbnUtZGFyazogIzJmMmYzMDtcblxuJGNvbG9yLWZvY3VzOiAjMDA2OGIzO1xuXG4vLyBGb250IENvbG9yc1xuJGNvbG9yLWZvbnQtZGVmYXVsdC1kYXJrOiAjMzMzMzMyO1xuJGNvbG9yLWZvbnQtbGlnaHQ6ICNmZmY7XG4kY29sb3ItZm9udC1ibHVlOiAkbGlnaHQtYmx1ZTtcbiRjb2xvci1mb250LWJyZWFkY3J1bWI6ICRjb2xvci1saW5rLWJsdWU7XG4iLCIvLz09IExheW91dFxuJHNjcmVlbi14c21hbGw6IDQ3NXB4OyAvLyBwaG9uZSBwb3J0cmFpdFxuJHNjcmVlbi1zbWFsbDogNzY3cHg7IC8vIHBob25lIGxhbmRzY2FwZVxuJHNjcmVlbi1tZWRpdW06IDEwMjRweDsgLy8gdGFibGV0IHBvcnRyYWl0XG4kc2NyZWVuLWxhcmdlOiAxMjAwcHg7IC8vIGRlc2sgbGFuZHNjYXBlXG4kc2NyZWVuLXhsLWxhcmdlOiAxNDQwcHg7IC8vIHhsLWRlc2sgbGFuZHNjYXBlXG4kc2NyZWVuLTQwMC16b29tOiAzMjBweDsgLy8gYnJvd3NlciB6b29tZWQgdG8gNDAwJVxuXG4kYnJlYWtwb2ludHM6IChcbiAgJ3hzJzogJHNjcmVlbi14c21hbGwsXG4gICdzbSc6ICRzY3JlZW4tc21hbGwsXG4gICdtZCc6ICRzY3JlZW4tbWVkaXVtLFxuICAnbGcnOiAkc2NyZWVuLWxhcmdlLFxuICAneGwnOiAkc2NyZWVuLXhsLWxhcmdlLFxuICAnem9vbS00MDAnOiAkc2NyZWVuLTQwMC16b29tLFxuKSAhZGVmYXVsdDtcbiIsIkBtaXhpbiBpY29uKCR2aWV3SWQpIHtcbiAgYmFja2dyb3VuZDogdXJsKCcuLi9yZXNvdXJjZXMvZ2xvYmFsZ2F0ZXdheS1pY29ucy5zdmcjI3skdmlld0lkfScpIGNlbnRlciAvIDEwMCUgMTAwJSBuby1yZXBlYXQ7XG59XG5cbkBtaXhpbiBpY29uLWNsb3NlKCkge1xuICBAaW5jbHVkZSBpY29uKCdjbG9zZS12aWV3Jyk7XG5cbiAgd2lkdGg6IHJlbSgxMnB4KTtcbiAgaGVpZ2h0OiByZW0oMTJweCk7XG59XG5cbkBtaXhpbiBpY29uLWNhcmF0LWRvd24oKSB7XG4gIEBpbmNsdWRlIGljb24oJ2NhcmF0LWRvd24tdmlldycpO1xuXG4gIHdpZHRoOiByZW0oMTBweCk7XG4gIGhlaWdodDogcmVtKDEwcHgpO1xufVxuXG5AbWl4aW4gaWNvbi1jYXJhdC1sZWZ0KCkge1xuICBAaW5jbHVkZSBpY29uKCdjYXJhdC1sZWZ0LXZpZXcnKTtcblxuICB3aWR0aDogcmVtKDEwcHgpO1xuICBoZWlnaHQ6IHJlbSgxMHB4KTtcbn1cblxuQG1peGluIGljb24tY2FyYXQtcmlnaHQoKSB7XG4gIEBpbmNsdWRlIGljb24oJ2NhcmF0LXJpZ2h0LXZpZXcnKTtcblxuICB3aWR0aDogcmVtKDEwcHgpO1xuICBoZWlnaHQ6IHJlbSgxMHB4KTtcbn1cblxuQG1peGluIGljb24tY2FyYXQtdXAoKSB7XG4gIEBpbmNsdWRlIGljb24oJ2NhcmF0LXVwLXZpZXcnKTtcblxuICB3aWR0aDogcmVtKDEwcHgpO1xuICBoZWlnaHQ6IHJlbSgxMHB4KTtcbn1cblxuQG1peGluIGljb24tZXhwYW5kKCkge1xuICBAaW5jbHVkZSBpY29uKCdleHBhbmQtdmlldycpO1xuXG4gIHdpZHRoOiByZW0oMTVweCk7XG4gIGhlaWdodDogcmVtKDE1cHgpO1xufVxuXG5AbWl4aW4gaWNvbi1jb2xsYXBzZSgpIHtcbiAgQGluY2x1ZGUgaWNvbignY29sbGFwc2UtdmlldycpO1xuXG4gIHdpZHRoOiByZW0oMTVweCk7XG4gIGhlaWdodDogMXB4O1xufVxuXG5AbWl4aW4gaWNvbi1waW5kcm9wKCkge1xuICBAaW5jbHVkZSBpY29uKCdwaW5kcm9wLXZpZXcnKTtcblxuICB3aWR0aDogcmVtKDExcHgpO1xuICBoZWlnaHQ6IHJlbSgxNXB4KTtcbn1cblxuQG1peGluIGljb24tZ2xvYmUoKSB7XG4gIEBpbmNsdWRlIGljb24oJ2dsb2JlLXZpZXcnKTtcblxuICB3aWR0aDogcmVtKDE1cHgpO1xuICBoZWlnaHQ6IHJlbSgxNXB4KTtcbn1cblxuQG1peGluIGljb24tcGVyc29uKCkge1xuICBAaW5jbHVkZSBpY29uKCdwZXJzb24tdmlldycpO1xuXG4gIHdpZHRoOiByZW0oMTdweCk7XG4gIGhlaWdodDogcmVtKDE1cHgpO1xufVxuXG5AbWl4aW4gaWNvbi1ob3RzcG90LWNpcmNsZSgpIHtcbiAgQGluY2x1ZGUgaWNvbignaG90c3BvdC1jaXJjbGUtdmlldycpO1xuXG4gIHdpZHRoOiByZW0oNjBweCk7XG4gIGhlaWdodDogcmVtKDYwcHgpO1xufVxuXG5AbWl4aW4gaWNvbi1hcnJvdy1sZWZ0KCkge1xuICBAaW5jbHVkZSBpY29uKCdhcnJvdy1sZWZ0LXZpZXcnKTtcblxuICB3aWR0aDogcmVtKDYwcHgpO1xuICBoZWlnaHQ6IHJlbSg2MHB4KTtcbn1cblxuQG1peGluIGljb24tYXJyb3ctcmlnaHQoKSB7XG4gIEBpbmNsdWRlIGljb24oJ2Fycm93LXJpZ2h0LXZpZXcnKTtcblxuICB3aWR0aDogcmVtKDYwcHgpO1xuICBoZWlnaHQ6IHJlbSg2MHB4KTtcbn1cblxuQG1peGluIGljb24tYXJyb3ctbmV4dCgpIHtcbiAgQGluY2x1ZGUgaWNvbignYXJyb3ctbmV4dC12aWV3Jyk7XG5cbiAgd2lkdGg6IHJlbSgxMnB4KTtcbiAgaGVpZ2h0OiByZW0oMjBweCk7XG59XG5cbkBtaXhpbiBpY29uLWFycm93LXByZXYoKSB7XG4gIEBpbmNsdWRlIGljb24oJ2Fycm93LXByZXYtdmlldycpO1xuXG4gIHdpZHRoOiByZW0oMTJweCk7XG4gIGhlaWdodDogcmVtKDIwcHgpO1xufVxuXG5AbWl4aW4gaWNvbi1oYW1idXJnZXItbWVudSgpIHtcbiAgQGluY2x1ZGUgaWNvbignaGFtYnVyZ2VyLW1lbnUtdmlldycpO1xuXG4gIHdpZHRoOiByZW0oMjBweCk7XG4gIGhlaWdodDogcmVtKDE0cHgpO1xufVxuXG5AbWl4aW4gbWFzay1jYXJhdC1yaWdodCB7XG4gIG1hc2staW1hZ2U6IHVybCgnLi4vcmVzb3VyY2VzL2NhcmF0LXJpZ2h0LnN2ZycpO1xuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XG4gIG1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG4gIG1hc2stcG9zaXRpb246IGNlbnRlcjtcbiAgbWFzay1zaXplOiBjb3ZlcjtcbiAgLXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoJy4uL3Jlc291cmNlcy9jYXJhdC1yaWdodC5zdmcnKTtcbiAgLXdlYmtpdC1tYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuICAtd2Via2l0LW1hc2stcG9zaXRpb246IGNlbnRlcjtcbiAgLXdlYmtpdC1tYXNrLXNpemU6IGNvdmVyO1xuICBjb250ZW50OiAnJztcbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUb29sczogU2V0IHBvbGFyaXR5XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBTZXRzIHRoZSBsaWdodCBwb2xhcml0eVxuQG1peGluIHN3Y29tLXNldC1wb2xhcml0eS1saWdodCgpIHtcbiAgJltkYXRhLXBvbGFyaXR5PSdsaWdodCddLFxuICBbZGF0YS1wb2xhcml0eT0nbGlnaHQnXSAmOm5vdChbZGF0YS1wb2xhcml0eT0nZGFyayddKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn0iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vICAgICBfICAgICAgICAgICAgXyAgICAgICAgICAgXyAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gX1xuLy8gICAgKF8pICAgICAgICAgIHwgfCAgICAgICAgIHwgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IChfKVxuLy8gICAgIF8gXyBfXyAgIF9fX3wgfF8gICBfICBfX3wgfCBfX18gICBfIF9fIF9fXyAgIF9fXyAgX198IHxfICBfXyBfXG4vLyAgICB8IHwgJ18gXFwgLyBfX3wgfCB8IHwgfC8gX2AgfC8gXyBcXCB8ICdfIGAgXyBcXCAvIF8gXFwvIF9gIHwgfC8gX2AgfFxuLy8gICAgfCB8IHwgfCB8IChfX3wgfCB8X3wgfCAoX3wgfCAgX18vIHwgfCB8IHwgfCB8ICBfXy8gKF98IHwgfCAoX3wgfFxuLy8gICAgfF98X3wgfF98XFxfX198X3xcXF9fLF98XFxfXyxffFxcX19ffCB8X3wgfF98IHxffFxcX19ffFxcX18sX3xffFxcX18sX3xcbi8vXG4vLyAgICAgIFNpbXBsZSwgZWxlZ2FudCBhbmQgbWFpbnRhaW5hYmxlIG1lZGlhIHF1ZXJpZXMgaW4gU2Fzc1xuLy8gICAgICAgICAgICAgICAgICAgICAgICB2MS40Ljlcbi8vXG4vLyAgICAgICAgaHR0cHM6Ly9lZHVhcmRvYm91Y2FzLmdpdGh1Yi5pby9pbmNsdWRlLW1lZGlhXG4vL1xuLy8gICAgICAgICBBdXRob3JzOiBFZHVhcmRvIEJvdWNhcyAoQGVkdWFyZG9ib3VjYXMpXG4vLyAgICAgICAgICAgICAgICAgIEtpdHR5IEdpcmF1ZGVsIChAa2l0dHlnaXJhdWRlbClcbi8vXG4vLyAgICAgIFRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBsaWJyYXJ5IHB1YmxpYyBjb25maWd1cmF0aW9uXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8vXG5cblxuLy8vXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2YgZ2xvYmFsIGJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBicmVha3BvaW50IHdpdGggdGhlIGxhYmVsIGBwaG9uZWBcbi8vLyAgJGJyZWFrcG9pbnRzOiAoJ3Bob25lJzogMzIwcHgpO1xuLy8vXG4kYnJlYWtwb2ludHM6IChcbiAgJ3Bob25lJzogMzIwcHgsXG4gICd0YWJsZXQnOiA3NjhweCxcbiAgJ2Rlc2t0b3AnOiAxMDI0cHhcbikgIWRlZmF1bHQ7XG5cblxuLy8vXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2Ygc3RhdGljIGV4cHJlc3Npb25zIG9yIG1lZGlhIHR5cGVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBtZWRpYSB0eXBlIChzY3JlZW4pXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nOiAnc2NyZWVuJyk7XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHN0YXRpYyBleHByZXNzaW9uIHdpdGggbG9naWNhbCBkaXNqdW5jdGlvbiAoT1Igb3BlcmF0b3IpXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKFxuLy8vICAgICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJ1xuLy8vICApO1xuLy8vXG4kbWVkaWEtZXhwcmVzc2lvbnM6IChcbiAgJ3NjcmVlbic6ICdzY3JlZW4nLFxuICAncHJpbnQnOiAncHJpbnQnLFxuICAnaGFuZGhlbGQnOiAnaGFuZGhlbGQnLFxuICAnbGFuZHNjYXBlJzogJyhvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXG4gICdwb3J0cmFpdCc6ICcob3JpZW50YXRpb246IHBvcnRyYWl0KScsXG4gICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpLCAobWluLXJlc29sdXRpb246IDJkcHB4KScsXG4gICdyZXRpbmEzeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAzKSwgKG1pbi1yZXNvbHV0aW9uOiAzNTBkcGkpLCAobWluLXJlc29sdXRpb246IDNkcHB4KSdcbikgIWRlZmF1bHQ7XG5cblxuLy8vXG4vLy8gRGVmaW5lcyBhIG51bWJlciB0byBiZSBhZGRlZCBvciBzdWJ0cmFjdGVkIGZyb20gZWFjaCB1bml0IHdoZW4gZGVjbGFyaW5nIGJyZWFrcG9pbnRzIHdpdGggZXhjbHVzaXZlIGludGVydmFsc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBwaXhlbHMgaXMgZGVmaW5lZCBhcyBgMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjEyOHB4Jykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAxMjlweCkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgZW1zIGlzIGRlZmluZWQgYXMgYDAuMDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yMGVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyMC4wMWVtKSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciByZW1zIGlzIGRlZmluZWQgYXMgYDAuMWAgYnkgZGVmYXVsdCwgdG8gYmUgdXNlZCB3aXRoIGBmb250LXNpemU6IDYyLjUlO2Bcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yLjByZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIuMXJlbSkge31cbi8vL1xuJHVuaXQtaW50ZXJ2YWxzOiAoXG4gICdweCc6IDEsXG4gICdlbSc6IDAuMDEsXG4gICdyZW0nOiAwLjEsXG4gICcnOiAwXG4pICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBEZWZpbmVzIHdoZXRoZXIgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBhdmFpbGFibGUsIHVzZWZ1bCBmb3IgY3JlYXRpbmcgc2VwYXJhdGUgc3R5bGVzaGVldHNcbi8vLyBmb3IgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IG1lZGlhIHF1ZXJpZXMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRGlzYWJsZXMgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllc1xuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAuZm9vIHtcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xuLy8vICB9XG4vLy9cbiRpbS1tZWRpYS1zdXBwb3J0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBTZWxlY3RzIHdoaWNoIGJyZWFrcG9pbnQgdG8gZW11bGF0ZSB3aGVuIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgZGlzYWJsZWQuIE1lZGlhIHF1ZXJpZXMgdGhhdCBzdGFydCBhdCBvclxuLy8vIGludGVyY2VwdCB0aGUgYnJlYWtwb2ludCB3aWxsIGJlIGRpc3BsYXllZCwgYW55IG90aGVycyB3aWxsIGJlIGlnbm9yZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAuZm9vIHtcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgZG9lcyBub3QgaW50ZXJjZXB0IHRoZSBkZXNrdG9wIGJyZWFrcG9pbnRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ3RhYmxldCc7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xuLy8vXG4kaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBTZWxlY3RzIHdoaWNoIG1lZGlhIGV4cHJlc3Npb25zIGFyZSBhbGxvd2VkIGluIGFuIGV4cHJlc3Npb24gZm9yIGl0IHRvIGJlIHVzZWQgd2hlbiBtZWRpYSBxdWVyaWVzXG4vLy8gYXJlIG5vdCBzdXBwb3J0ZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBhbmQgY29udGFpbnMgb25seSBhY2NlcHRlZCBtZWRpYSBleHByZXNzaW9uc1xuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3NjcmVlbicpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgIC5mb28ge1xuLy8vICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGJ1dCBjb250YWlucyBhIG1lZGlhIGV4cHJlc3Npb24gdGhhdCBpcyBub3QgYWNjZXB0ZWRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdyZXRpbmEyeCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nLCAncG9ydHJhaXQnLCAnbGFuZHNjYXBlJykgIWRlZmF1bHQ7XG5cbi8vLy9cbi8vLyBDcm9zcy1lbmdpbmUgbG9nZ2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gTG9nIGEgbWVzc2FnZSBlaXRoZXIgd2l0aCBgQGVycm9yYCBpZiBzdXBwb3J0ZWRcbi8vLyBlbHNlIHdpdGggYEB3YXJuYCwgdXNpbmcgYGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpYFxuLy8vIHRvIGRldGVjdCBzdXBwb3J0LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQGZ1bmN0aW9uIGltLWxvZygkbWVzc2FnZSkge1xuICBAaWYgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJykge1xuICAgIEBlcnJvciAkbWVzc2FnZTtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gJG1lc3NhZ2U7XG4gICAgJF86IG5vb3AoKTtcbiAgfVxuXG4gIEByZXR1cm4gJG1lc3NhZ2U7XG59XG5cblxuLy8vXG4vLy8gV3JhcHBlciBtaXhpbiBmb3IgdGhlIGxvZyBmdW5jdGlvbiBzbyBpdCBjYW4gYmUgdXNlZCB3aXRoIGEgbW9yZSBmcmllbmRseVxuLy8vIEFQSSB0aGFuIGBAaWYgaW0tbG9nKCcuLicpIHt9YCBvciBgJF86IGltLWxvZygnLi4nKWAuIEJhc2ljYWxseSwgdXNlIHRoZSBmdW5jdGlvblxuLy8vIHdpdGhpbiBmdW5jdGlvbnMgYmVjYXVzZSBpdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluIGEgZnVuY3Rpb25cbi8vLyBhbmQgdXNlIHRoZSBtaXhpbiBldmVyeXdoZXJlIGVsc2UgYmVjYXVzZSBpdCdzIG11Y2ggbW9yZSBlbGVnYW50LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQG1peGluIGxvZygkbWVzc2FnZSkge1xuICBAaWYgaW0tbG9nKCRtZXNzYWdlKSB7fVxufVxuXG5cbi8vL1xuLy8vIEZ1bmN0aW9uIHdpdGggbm8gYEByZXR1cm5gIGNhbGxlZCBuZXh0IHRvIGBAd2FybmAgaW4gU2FzcyAzLjNcbi8vLyB0byB0cmlnZ2VyIGEgY29tcGlsaW5nIGVycm9yIGFuZCBzdG9wIHRoZSBwcm9jZXNzLlxuLy8vXG5AZnVuY3Rpb24gbm9vcCgpIHt9XG5cbi8vL1xuLy8vIERldGVybWluZXMgd2hldGhlciBhIGxpc3Qgb2YgY29uZGl0aW9ucyBpcyBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHJldHVybiB7Qm9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbmRpdGlvbnMgYXJlIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludFxuLy8vXG5AZnVuY3Rpb24gaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikge1xuICAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRpbS1uby1tZWRpYS1icmVha3BvaW50KTtcblxuICBAaWYgbm90ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlIHtcbiAgICBAaWYgaW0tbG9nKCdgI3skaW0tbm8tbWVkaWEtYnJlYWtwb2ludH1gIGlzIG5vdCBhIHZhbGlkIGJyZWFrcG9pbnQuJykge31cbiAgfVxuXG4gIEBlYWNoICRjb25kaXRpb24gaW4gJGNvbmRpdGlvbnMge1xuICAgIEBpZiBub3QgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XG4gICAgICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRjb25kaXRpb24pO1xuICAgICAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICAgICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRjb25kaXRpb24sICRvcGVyYXRvcik7XG5cbiAgICAgIEBpZiAoJHByZWZpeCA9PSAnbWF4JyBhbmQgJHZhbHVlIDw9ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSBvclxuICAgICAgICAgICgkcHJlZml4ID09ICdtaW4nIGFuZCAkdmFsdWUgPiAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkge1xuICAgICAgICBAcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgbm90IGluZGV4KCRpbS1uby1tZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIHRydWU7XG59XG5cbi8vLy9cbi8vLyBQYXJzaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBHZXQgb3BlcmF0b3Igb2YgYW4gZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IG9wZXJhdG9yIGZyb21cbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBBbnkgb2YgYD49YCwgYD5gLCBgPD1gLCBgPGAsIGDiiaVgLCBg4omkYFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pIHtcbiAgQGVhY2ggJG9wZXJhdG9yIGluICgnPj0nLCAnPicsICc8PScsICc8JywgJ+KJpScsICfiiaQnKSB7XG4gICAgQGlmIHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICAgICBAcmV0dXJuICRvcGVyYXRvcjtcbiAgICB9XG4gIH1cblxuICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gIC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXG4gIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXG4gICRfOiBpbS1sb2coJ05vIG9wZXJhdG9yIGZvdW5kIGluIGAjeyRleHByZXNzaW9ufWAuJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgZGltZW5zaW9uIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYHdpZHRoYCBvciBgaGVpZ2h0YCAob3IgcG90ZW50aWFsbHkgYW55dGhpbmcgZWxzZSlcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcGFyc2VkLWRpbWVuc2lvbjogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAwLCAkb3BlcmF0b3ItaW5kZXggLSAxKTtcbiAgJGRpbWVuc2lvbjogJ3dpZHRoJztcblxuICBAaWYgc3RyLWxlbmd0aCgkcGFyc2VkLWRpbWVuc2lvbikgPiAwIHtcbiAgICAkZGltZW5zaW9uOiAkcGFyc2VkLWRpbWVuc2lvbjtcbiAgfVxuXG4gIEByZXR1cm4gJGRpbWVuc2lvbjtcbn1cblxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIHByZWZpeCBiYXNlZCBvbiBhbiBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYG1pbmAgb3IgYG1heGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpIHtcbiAgQHJldHVybiBpZihpbmRleCgoJzwnLCAnPD0nLCAn4omkJyksICRvcGVyYXRvciksICdtYXgnLCAnbWluJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IHZhbHVlIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCB2YWx1ZSBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIEEgbnVtZXJpYyB2YWx1ZVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sICRvcGVyYXRvci1pbmRleCArIHN0ci1sZW5ndGgoJG9wZXJhdG9yKSk7XG5cbiAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgJHZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHZhbHVlKTtcbiAgfSBAZWxzZSB7XG4gICAgJHZhbHVlOiB0by1udW1iZXIoJHZhbHVlKTtcbiAgfVxuXG4gICRpbnRlcnZhbDogbWFwLWdldCgkdW5pdC1pbnRlcnZhbHMsIHVuaXQoJHZhbHVlKSk7XG5cbiAgQGlmIG5vdCAkaW50ZXJ2YWwge1xuICAgIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cbiAgICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAgIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAgIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG4gICAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAgICRfOiBpbS1sb2coJ1Vua25vd24gdW5pdCBgI3t1bml0KCR2YWx1ZSl9YC4nKTtcbiAgfVxuXG4gIEBpZiAkb3BlcmF0b3IgPT0gJz4nIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcbiAgfSBAZWxzZSBpZiAkb3BlcmF0b3IgPT0gJzwnIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSAtICRpbnRlcnZhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5cbi8vL1xuLy8vIFBhcnNlIGFuIGV4cHJlc3Npb24gdG8gcmV0dXJuIGEgdmFsaWQgbWVkaWEtcXVlcnkgZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBwYXJzZVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XG4vLy9cbkBmdW5jdGlvbiBwYXJzZS1leHByZXNzaW9uKCRleHByZXNzaW9uKSB7XG4gIC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3JcbiAgLy8gdGhlbiB0aGVyZSBpcyBubyBuZWVkIHRvIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgQGlmIG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbik7XG4gIH1cblxuICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKTtcbiAgJGRpbWVuc2lvbjogZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcblxuICBAcmV0dXJuICcoI3skcHJlZml4fS0jeyRkaW1lbnNpb259OiAjeyR2YWx1ZX0pJztcbn1cblxuLy8vXG4vLy8gU2xpY2UgYCRsaXN0YCBiZXR3ZWVuIGAkc3RhcnRgIGFuZCBgJGVuZGAgaW5kZXhlc1xuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gTGlzdCB0byBzbGljZVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3RhcnQgWzFdIC0gU3RhcnQgaW5kZXhcbi8vLyBAcGFyYW0ge051bWJlcn0gJGVuZCBbbGVuZ3RoKCRsaXN0KV0gLSBFbmQgaW5kZXhcbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9IFNsaWNlZCBsaXN0XG4vLy9cbkBmdW5jdGlvbiBzbGljZSgkbGlzdCwgJHN0YXJ0OiAxLCAkZW5kOiBsZW5ndGgoJGxpc3QpKSB7XG4gIEBpZiBsZW5ndGgoJGxpc3QpIDwgMSBvciAkc3RhcnQgPiAkZW5kIHtcbiAgICBAcmV0dXJuICgpO1xuICB9XG5cbiAgJHJlc3VsdDogKCk7XG5cbiAgQGZvciAkaSBmcm9tICRzdGFydCB0aHJvdWdoICRlbmQge1xuICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vLy9cbi8vLyBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBDYXN0cyBhIHN0cmluZyBpbnRvIGEgbnVtYmVyXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZyB8IE51bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYmUgcGFyc2VkXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9XG4vLy9cbkBmdW5jdGlvbiB0by1udW1iZXIoJHZhbHVlKSB7XG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9IEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnc3RyaW5nJyB7XG4gICAgJF86IGltLWxvZygnVmFsdWUgZm9yIGB0by1udW1iZXJgIHNob3VsZCBiZSBhIG51bWJlciBvciBhIHN0cmluZy4nKTtcbiAgfVxuXG4gICRmaXJzdC1jaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsIDEsIDEpO1xuICAkcmVzdWx0OiAwO1xuICAkZGlnaXRzOiAwO1xuICAkbWludXM6ICgkZmlyc3QtY2hhcmFjdGVyID09ICctJyk7XG4gICRudW1iZXJzOiAoJzAnOiAwLCAnMSc6IDEsICcyJzogMiwgJzMnOiAzLCAnNCc6IDQsICc1JzogNSwgJzYnOiA2LCAnNyc6IDcsICc4JzogOCwgJzknOiA5KTtcblxuICAvLyBSZW1vdmUgKy8tIHNpZ24gaWYgcHJlc2VudCBhdCBmaXJzdCBjaGFyYWN0ZXJcbiAgQGlmICgkZmlyc3QtY2hhcmFjdGVyID09ICcrJyBvciAkZmlyc3QtY2hhcmFjdGVyID09ICctJykge1xuICAgICR2YWx1ZTogc3RyLXNsaWNlKCR2YWx1ZSwgMik7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHZhbHVlKSB7XG4gICAgJGNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgJGksICRpKTtcblxuICAgIEBpZiBub3QgKGluZGV4KG1hcC1rZXlzKCRudW1iZXJzKSwgJGNoYXJhY3Rlcikgb3IgJGNoYXJhY3RlciA9PSAnLicpIHtcbiAgICAgIEByZXR1cm4gdG8tbGVuZ3RoKGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpLCBzdHItc2xpY2UoJHZhbHVlLCAkaSkpXG4gICAgfVxuXG4gICAgQGlmICRjaGFyYWN0ZXIgPT0gJy4nIHtcbiAgICAgICRkaWdpdHM6IDE7XG4gICAgfSBAZWxzZSBpZiAkZGlnaXRzID09IDAge1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3Rlcik7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkZGlnaXRzOiAkZGlnaXRzICogMTA7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3RlcikgLyAkZGlnaXRzO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCk7XG59XG5cblxuLy8vXG4vLy8gQWRkIGAkdW5pdGAgdG8gYCR2YWx1ZWBcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBhZGQgdW5pdCB0b1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdW5pdCAtIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdW5pdFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIGAkdmFsdWVgIGV4cHJlc3NlZCBpbiBgJHVuaXRgXG4vLy9cbkBmdW5jdGlvbiB0by1sZW5ndGgoJHZhbHVlLCAkdW5pdCkge1xuICAkdW5pdHM6ICgncHgnOiAxcHgsICdjbSc6IDFjbSwgJ21tJzogMW1tLCAnJSc6IDElLCAnY2gnOiAxY2gsICdwYyc6IDFwYywgJ2luJzogMWluLCAnZW0nOiAxZW0sICdyZW0nOiAxcmVtLCAncHQnOiAxcHQsICdleCc6IDFleCwgJ3Z3JzogMXZ3LCAndmgnOiAxdmgsICd2bWluJzogMXZtaW4sICd2bWF4JzogMXZtYXgpO1xuXG4gIEBpZiBub3QgaW5kZXgobWFwLWtleXMoJHVuaXRzKSwgJHVuaXQpIHtcbiAgICAkXzogaW0tbG9nKCdJbnZhbGlkIHVuaXQgYCN7JHVuaXR9YC4nKTtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlICogbWFwLWdldCgkdW5pdHMsICR1bml0KTtcbn1cblxuLy8vXG4vLy8gVGhpcyBtaXhpbiBhaW1zIGF0IHJlZGVmaW5pbmcgdGhlIGNvbmZpZ3VyYXRpb24ganVzdCBmb3IgdGhlIHNjb3BlIG9mXG4vLy8gdGhlIGNhbGwuIEl0IGlzIGhlbHBmdWwgd2hlbiBoYXZpbmcgYSBjb21wb25lbnQgbmVlZGluZyBhbiBleHRlbmRlZFxuLy8vIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBjdXN0b20gYnJlYWtwb2ludHMgKHJlZmVycmVkIHRvIGFzIHR3ZWFrcG9pbnRzKVxuLy8vIGZvciBpbnN0YW5jZS5cbi8vL1xuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWtwb2ludHMgWygpXSAtIE1hcCBvZiB0d2Vha3BvaW50cyB0byBiZSBtZXJnZWQgd2l0aCBgJGJyZWFrcG9pbnRzYFxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMgWygpXSAtIE1hcCBvZiB0d2Vha2VkIG1lZGlhIGV4cHJlc3Npb25zIHRvIGJlIG1lcmdlZCB3aXRoIGAkbWVkaWEtZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBicmVha3BvaW50cyB3aXRoIGEgdHdlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9Y3VzdG9tJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIG1lZGlhIGV4cHJlc3Npb25zIHdpdGggYSBjdXN0b20gb25lXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIGJvdGggY29uZmlndXJhdGlvbiBtYXBzXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCksICgnYWxsJzogJ2FsbCcpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuQG1peGluIG1lZGlhLWNvbnRleHQoJHR3ZWFrcG9pbnRzOiAoKSwgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoKSkge1xuICAvLyBTYXZlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRnbG9iYWwtYnJlYWtwb2ludHM6ICRicmVha3BvaW50cztcbiAgJGdsb2JhbC1tZWRpYS1leHByZXNzaW9uczogJG1lZGlhLWV4cHJlc3Npb25zO1xuXG4gIC8vIFVwZGF0ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkYnJlYWtwb2ludHM6IG1hcC1tZXJnZSgkYnJlYWtwb2ludHMsICR0d2Vha3BvaW50cykgIWdsb2JhbDtcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiBtYXAtbWVyZ2UoJG1lZGlhLWV4cHJlc3Npb25zLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMpICFnbG9iYWw7XG5cbiAgQGNvbnRlbnQ7XG5cbiAgLy8gUmVzdG9yZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkYnJlYWtwb2ludHM6ICRnbG9iYWwtYnJlYWtwb2ludHMgIWdsb2JhbDtcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zICFnbG9iYWw7XG59XG5cbi8vLy9cbi8vLyBpbmNsdWRlLW1lZGlhIHB1YmxpYyBleHBvc2VkIEFQSVxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IGJhc2VkIG9uIGEgbGlzdCBvZiBjb25kaXRpb25zXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzaW5nbGUgc2V0IGJyZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggdHdvIHNldCBicmVha3BvaW50c1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9dGFibGV0JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1OHB4JywgJzw4NTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggc2V0IGJyZWFrcG9pbnRzIHdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnLCAnPD0xMzUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc3RhdGljIGV4cHJlc3Npb25cbi8vLyAgQGluY2x1ZGUgbWVkaWEoJ3JldGluYTJ4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gTWl4aW5nIGV2ZXJ5dGhpbmdcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzUwcHgnLCAnPHRhYmxldCcsICdyZXRpbmEzeCcpIHsgfVxuLy8vXG5AbWl4aW4gbWVkaWEoJGNvbmRpdGlvbnMuLi4pIHtcbiAgQGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA9PSAwKSBvclxuICAgICAgKG5vdCAkaW0tbWVkaWEtc3VwcG9ydCBhbmQgaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikpIHtcbiAgICBAY29udGVudDtcbiAgfSBAZWxzZSBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPiAwKSB7XG4gICAgQG1lZGlhICN7dW5xdW90ZShwYXJzZS1leHByZXNzaW9uKG50aCgkY29uZGl0aW9ucywgMSkpKX0ge1xuICAgICAgLy8gUmVjdXJzaXZlIGNhbGxcbiAgICAgIEBpbmNsdWRlIG1lZGlhKHNsaWNlKCRjb25kaXRpb25zLCAyKS4uLikge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/