:root{--font-size-int:1.125;--scale0:1em;--scale-1:calc(var(--scale0)/var(--font-size-int));--scale-2:calc(var(--scale-1)/var(--font-size-int));--scale-3:calc(var(--scale-2)/var(--font-size-int));--scale1:calc(var(--scale0)*var(--font-size-int));--scale2:calc(var(--scale1)*var(--font-size-int));--scale3:calc(var(--scale2)*var(--font-size-int));--scale4:calc(var(--scale3)*var(--font-size-int))}:root{--line-height-int:0.95;--lh0:1.3;--lh-1:calc(var(--lh0)/var(--line-height-int));--lh-2:calc(var(--lh-1)/var(--line-height-int));--lh-3:calc(var(--lh-2)/var(--line-height-int));--lh1:calc(var(--lh0)*var(--line-height-int));--lh2:calc(var(--lh1)*var(--line-height-int));--lh3:calc(var(--lh2)*var(--line-height-int));--lh4:calc(var(--lh3)*var(--line-height-int))}.clearfix:after{clear:both;content:"";display:table}p{orphans:2;widows:2}div.image,figure,table{-moz-column-break-inside:avoid;break-inside:avoid}.acm-ad,.acm-ad-container,.o-site-sidebar .acm-ad,article .acm-ad{display:none!important}.a-site-branding{height:auto;margin:0 auto .5em;position:relative;width:100%}.a-site-branding .a-logo-svg{display:block}header .a-site-branding{margin:0;max-width:30.37975%}header.o-header-support .a-site-branding{margin-right:auto}.m-ad-region,.m-support-cta-bottom,.m-support-cta .a-support-button{display:none!important}.m-support-cta.m-support-cta-top{flex-direction:row;font-size:100%;max-width:none;text-align:left;width:auto}.m-support-cta.m-support-cta-top h2{font-family:ff-meta-web-pro,helvetica,arial,sans-serif;font-size:var(--scale0);font-size-adjust:.495;font-style:normal;font-weight:700;line-height:1.3;padding-bottom:0}.m-support-cta.m-support-cta-bottom{display:none!important}.o-header-support .m-support-cta.m-support-cta-top{flex-direction:row;text-align:left;width:auto}.o-header-support .m-support-cta.m-support-cta-top h2{font-family:ff-meta-web-pro,helvetica,arial,sans-serif;font-size:var(--scale0);font-size-adjust:.495;font-style:normal;font-weight:700;line-height:1.3;margin:0}nav{display:none!important}.m-widget-site-branding{max-width:36.70886%}.m-widget-site-branding .a-site-branding{max-width:82.75862%}.m-entry-content{margin-bottom:1.5em;overflow-wrap:break-word}.m-entry-content.m-membership-support-wrapper{font-family:ff-meta-web-pro,helvetica,arial,sans-serif}.o-entry .m-entry-meta{width:15.25424%}.m-entry-header .m-entry-meta,.o-entry .m-entry-meta.m-entry-meta-horizontal{width:100%}.m-archive .m-entry-content{flex:1 0;margin-bottom:0}.m-archive.m-archive-excerpt .m-entry-content{flex:1 0;margin-right:.75em}.m-archive.m-archive-homepage .m-entry-content{margin-left:0;order:2}.m-archive.m-zone-homepage-top .m-entry-content{flex:1 0;margin-right:.75em}.m-archive.m-zone-homepage-top .m-post-image-first .m-entry-content{flex:1 0;margin-right:0;order:2}.m-archive-excerpt .m-post-image,.m-archive-homepage .m-post-image,.m-archive-top .m-post-image{width:100%}.m-archive-excerpt .m-post-image,.m-archive-top .m-post-image{margin-bottom:.75em;margin-left:0;width:auto}.m-archive-excerpt .m-post-image.m-post-thumbnail-full,.m-archive-top .m-post-image.m-post-thumbnail-full{width:100%}.m-post-image-first .m-post-image{margin-right:.75em}.m-homepage-zones .m-zone{display:flex;flex-wrap:wrap;max-width:calc(100% - 300px);width:100%}.m-homepage-zones .m-zone.m-zone-homepage-top{max-width:calc(93.22034% - 300px)}.m-homepage-zones .m-zone.m-zone-homepage-top article{border-bottom:0;padding-bottom:0;width:100%}.m-homepage-zones .m-zone.m-zone-homepage-more-top article,.m-homepage-zones .m-zone.m-zone-homepage-opinion article{width:47.45763%}.m-widget-group.m-widget-group-homepage{display:flex}.o-wrapper-site-navigation,.o-wrapper-site-navigation *,.o-wrapper-sub-navigation{display:none!important}.o-wrapper.o-wrapper-site-header{align-items:center;flex-direction:row;justify-content:space-between;margin-bottom:.5em}#content{display:block}#content #comments #respond,#content #comments .a-comment-links,#content .m-entry-share,#content .m-form-instory,#content .m-related,#content article .m-form-newsletter-shortcode{display:none}.o-entry{flex-direction:row;justify-content:flex-start}.o-entry .m-entry-content{max-width:83.05085%}.o-site-message-container,body.page .o-site-sidebar .m-minnpost-spills-widget,body.page .o-site-sidebar .m-widget-most-commented,body.page .o-site-sidebar .m-widget-zone-posts,body.single .o-site-sidebar .m-minnpost-spills-widget,body.single .o-site-sidebar .m-widget-most-commented,body.single .o-site-sidebar .m-widget-zone-posts,footer nav{display:none}footer .o-footer .o-footer-hat{display:block}.pum,.wp-message-inserter-message-region-popup{display:none!important}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl92YXJpYWJsZXMuc2NzcyIsIl9taXhpbnMuc2NzcyIsInByaW50LnNjc3MiLCJfY29sdW1uLXNldHRlci5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdGQSxNQU1DLHFCQUFnQixDQUNoQixZQUFTLENBU0wsa0RBQW9CLENBQXBCLG1EQUFvQixDQUFwQixtREFBb0IsQ0FlcEIsaURBQW9CLENBQXBCLGlEQUFvQixDQUFwQixpREFBb0IsQ0FBcEIsaURBQW9CLENBVXpCLE1BTUMsc0JBQWtCLENBQ2xCLFNBQU0sQ0FTRiw4Q0FBYyxDQUFkLCtDQUFjLENBQWQsK0NBQWMsQ0FlZCw2Q0FBYyxDQUFkLDZDQUFjLENBQWQsNkNBQWMsQ0FBZCw2Q0FBYyxDQzdKbEIsZ0JBR0MsVUFBVyxDQUZYLFVBQVcsQ0FDWCxhQUNXLENDRWIsRUFDQyxTQUFVLENBQ1YsUUFBUyxDQUdWLHVCQUdDLDhCQUFtQixDQUFuQixrQkFBbUIsQ0FNcEIsa0VBSUMsc0JBQXdCLENBR3pCLGlCQUVDLFdBQVksQ0FFWixrQkFBMkMsQ0FEM0MsaUJBQWtCLENBRmxCLFVBRzJDLENBSjVDLDZCQU9FLGFBQWMsQ0FJaEIsd0JBQ0MsUUFBUyxDQUNULG1CQzhMdUQsQ0QzTHhELHlDQUNDLGlCQUFrQixDQVduQixvRUFDQyxzQkFBd0IsQ0FHekIsaUNBS0Usa0JBQW1CLENBRW5CLGNBQWUsQ0FDZixjQUFlLENBSmYsZUFBZ0IsQ0FFaEIsVUFFZSxDQVJqQixvQ0RpQkMsc0RESjhELENDMEI3RCx1QkFBd0MsQ0FyQnpDLHFCQUF1QixDQVd0QixpQkFBa0IsQ0FSbEIsZUFBZ0IsQ0FvQmhCLGVBQWdCLENDM0JmLGdCQUFpQixDQWRwQixvQ0FvQkUsc0JBQXdCLENBSTFCLG1EQUVDLGtCQUFtQixDQURuQixlQUFnQixDQUVoQixVQUFXLENBSFosc0REUEMsc0RESjhELENDMEI3RCx1QkFBd0MsQ0FyQnpDLHFCQUF1QixDQVd0QixpQkFBa0IsQ0FSbEIsZUFBZ0IsQ0FvQmhCLGVBQWdCLENDVmhCLFFERmtCLENDU3BCLElBQ0Msc0JBQXdCLENBSXpCLHdCQUNDLG1CQytIdUQsQ0RoSXhELHlDQUlFLG1CQzRIc0QsQ0R4SHhELGlCQUNDLG1CRmtJNEIsQ0VqSTVCLHdCQUF5QixDQUYxQiw4Q0FLRSxzREYzQzZELENFK0MvRCx1QkFHRSxlQzRHc0QsQ0RwR3hELDZFQUdFLFVDaUdzRCxDRDdGeEQsNEJBSUUsUUFBUyxDQURULGVBQ1MsQ0FKWCw4Q0FVRyxRQUFTLENBQ1Qsa0JGOEY2QixDRXpHaEMsK0NBb0JHLGFBQWMsQ0FEZCxPQUNjLENBcEJqQixnREEyQkcsUUFBUyxDQUNULGtCRjZFNkIsQ0V6R2hDLG9FQW1DSSxRQUFTLENBQ1QsY0FBZSxDQUZmLE9BRWUsQ0FNbkIsZ0dBR0MsVUFBVyxDQUdaLDhEQUlDLG1CRnFEK0IsQ0V2RC9CLGFBQWMsQ0FHZCxVQUFXLENBTFosMEdBUUUsVUFBVyxDQUliLGtDQUNDLGtCRjRDK0IsQ0V6Q2hDLDBCQUtFLFlBQWEsQ0FEYixjQUFlLENBR2YsNEJBQWdELENBRGhELFVBQ2dELENBUGxELDhDQVVHLGlDQUFvRSxDQVZ2RSxzREFjSSxlQUFnQixDQUNoQixnQkFBaUIsQ0FGakIsVUFFaUIsQ0FmckIscUhBdUJJLGVDTW9ELENEQXhELHdDQUdFLFlBQWEsQ0FNZixrRkFHQyxzQkFBd0IsQ0FHekIsaUNBR0Usa0JBQW1CLENBRW5CLGtCQUFtQixDQURuQiw2QkFBOEIsQ0FFOUIsa0JGUjRCLENFWTlCLFNBQ0MsYUFBYyxDQURmLG1MQTJCRSxZQUFhLENBSWYsU0FDQyxrQkFBbUIsQ0FDbkIsMEJBQTJCLENBRjVCLDBCQUtFLG1CQzdEc0QsQ0RtRnhELHVWQUdFLFlBQWEsQ0FIZiwrQkFPRSxhQUFjLENBS2hCLCtDQUVDLHNCQUF3QiIsImZpbGUiOiJwcmludC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuXHQjQ29sb3JzXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vLyBicmFuZCBjb2xvcnNcbiRicmFuZC1jb2xvcnM6IChcblx0cmVkOiAoXG5cdFx0ZGFyazogIzRjMTAxNixcblx0XHRtZWRpdW06ICM3ZjEyMWMsIC8vIGxvZ29cblx0XHRoaWdobGlnaHQ6ICNkNzc1N2Vcblx0KSxcbik7XG5cbi8vIHV0aWxpdHkgY29sb3JzXG4kdXRpbGl0eS1jb2xvcnM6IChcblx0Z3JlZW46IChcblx0XHRkYXJrOiAjMjQ2MTNiLFxuXHRcdG1lZGl1bTogIzFjODc0NSwgLy8gZG9uYXRlXG5cdFx0aGlnaGxpZ2h0OiAjNjA5Zjc4LFxuXHRcdGJhY2tncm91bmQ6ICNkZGY4ZTcsXG5cdCksXG5cdGJsdWU6IChcblx0XHRkYXJrOiAjMTM1YjdlLCAvLyBsaW5rXG5cdFx0bWVkaXVtOiAjMGM3YmIwLFxuXHRcdGhpZ2hsaWdodDogIzVlOTliNSxcblx0XHRiYWNrZ3JvdW5kOiAjZGNmMGZhXG5cdCksXG5cdHB1cnBsZTogKFxuXHRcdGRhcms6ICM2MzUwNzcsIC8vIG9waW5pb25cblx0XHRtZWRpdW06ICM4YzY0YjQsXG5cdFx0aGlnaGxpZ2h0OiAjYTg4MGQwLFxuXHRcdGJhY2tncm91bmQ6ICNlYmU3ZWZcblx0KSxcblx0eWVsbG93OiAoXG5cdFx0YmFja2dyb3VuZDogI2ZiZDM0MVxuXHQpLFxuXHRvcmFuZ2U6IChcblx0XHRkYXJrOiAjODczYTAyLFxuXHRcdG1lZGl1bTogI2I5NGYwMywgLy8gYWR2ZXJ0aXNpbmdcblx0XHRoaWdobGlnaHQ6ICNmYzllNWIsXG5cdFx0YmFja2dyb3VuZDogI2ZlZTNjZlxuXHQpLFxuKTtcblxuLy8gbmV1dHJhbCBjb2xvcnNcbiRuZXV0cmFsLWNvbG9yczogKFxuXHRibGFjazogIzFhMTgxOCwgLy8gbG9nb1xuXHRkYXJrOiAjNWU2ZTc2LFxuXHRtZWRpdW06ICM4NjkyOTgsXG5cdGJvcmRlcjogI2Q2ZDZkYSxcblx0aGlnaGxpZ2h0OiAjZWJlYmZiLFxuXHRsaWdodDogI2VmZWZmMCxcblx0d2hpdGU6ICNmZmZcbik7XG5cbi8vIE1lbWJlcnNoaXAgbGV2ZWxzXG4kY29sb3JfX21pbm5wb3N0LWJyb256ZTogI2NkN2YzMjtcbiRjb2xvcl9fbWlubnBvc3Qtc2lsdmVyOiAjYzBjMGMwO1xuJGNvbG9yX19taW5ucG9zdC1nb2xkOiAjZmZkNzAwO1xuJGNvbG9yX19taW5ucG9zdC1wbGF0aW51bTogI2U1ZTRlMjtcblxuJGJhY2tncm91bmQtdW5wdWJsaXNoZWQ6IG5ldXRyYWwtY29sb3Iod2hpdGUpIHVybCgvd3AtY29udGVudC90aGVtZXMvbWlubnBvc3QtbGFyZ28vYXNzZXRzL2ltZy91bnB1Ymxpc2hlZC5wbmcpO1xuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG5cdCNUWVBPR1JBUEhZXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vLyBmb250IGZhbWlsaWVzXG4kZm9udF9fY29kZTogbW9uYWNvLCBjb25zb2xhcywgXCJBbmRhbGUgTW9ub1wiLCBcIkRlamFWdSBTYW5zIE1vbm9cIiwgbW9ub3NwYWNlO1xuJGZvbnRfX3ByZTogXCJDb3VyaWVyIDEwIFBpdGNoXCIsIGNvdXJpZXIsIG1vbm9zcGFjZTtcbiRmb250X19zYW5zOiBoZWx2ZXRpY2EsIGFyaWFsLCBzYW5zLXNlcmlmO1xuJGZvbnRfX3NlcmlmOiBnZW9yZ2lhLCBjYW1icmlhLCBcIlRpbWVzIE5ldyBSb21hblwiLCB0aW1lcywgc2VyaWY7XG4kd2ViZm9udF9fc2VyaWY6IFwiZmYtbWV0YS1zZXJpZi13ZWItcHJvXCIsIGdlb3JnaWEsIGNhbWJyaWEsIFwiVGltZXMgTmV3IFJvbWFuXCIsIHRpbWVzLCBzZXJpZjtcbiR3ZWJmb250X19zYW5zOiBcImZmLW1ldGEtd2ViLXByb1wiLCBoZWx2ZXRpY2EsIGFyaWFsLCBzYW5zLXNlcmlmO1xuXG4kaHRtbC1yb290LXNpemU6IDEyNSU7IC8vIDEwMCUgaXMgMTZweFxuJGh0bWwtcm9vdC1zaXplLWxhcmdlLXNjcmVlbjogMTUwJTtcblxuJGludGVyZmFjZS1jb3B5LXNpemU6IDgwJTtcbiRpbnRlcmZhY2UtY29weS1zaXplLWxhcmdlcjogODUlO1xuJGludGVyZmFjZS1jb3B5LXNpemUtc21hbGxlcjogNzUlO1xuXG4vLyB0eXBlIHNjYWxlLlxuLy8gdXNlcyBSb2IgV2V5Y2hlcnQncyBjb2RlIGF0IGh0dHBzOi8vMjR3YXlzLm9yZy8yMDE5L2EtbW9kZXJuLXR5cG9ncmFwaGljLXNjYWxlL1xuJGh0bWwtZm9udC1zaXplOiAxMDAlO1xuLy8gc3RhcnRzIHdpdGggdGhlIDxodG1sPiBlbGVtZW50J3MgZm9udCBzaXplIHZhbHVlLCBzbyB3ZVxuLy8gc2hvdWxkIGNoYW5nZSB0aGF0IGJhc2VkIG9uIG91ciBtZWRpYSBxdWVyaWVzXG46cm9vdCB7XG5cdCRmb250LXNpemUtaW50ZXJ2YWw6IDEuMTI1OyAgICAvLyBVbml0bGVzcyBmb3IgcHJvcG9ydGlvbmFsLCB1bml0IGZvciBmaXhlZFxuXHQkYm9keS10ZXh0OiAxZW07ICAvLyBNdXN0IGhhdmUgYSB1bml0XG5cdCRzY2FsZS1taW46IC0zOyAgICAvLyBVbml0bGVzcyBuZWdhdGl2ZSBpbnRlZ2VyXG5cdCRzY2FsZS1tYXg6IDQ7ICAgICAvLyBVbml0bGVzcyBwb3NpdGl2ZSBpbnRlZ2VyXG5cblx0LS1mb250LXNpemUtaW50OiAjeyRmb250LXNpemUtaW50ZXJ2YWx9O1xuXHQtLXNjYWxlMDogI3skYm9keS10ZXh0fTtcblxuXHRAaWYgJHNjYWxlLW1pbiA8IDAge1xuXHRcdC8vIEdlbmVyYXRlIHNjYWxlIHZhcmlhYmxlcyBzbWFsbGVyIHRoYW4gdGhlIGJhc2UgdGV4dCBzaXplXG5cdFx0QGZvciAkaSBmcm9tIC0xIHRocm91Z2ggJHNjYWxlLW1pbiB7XG5cblx0XHRcdEBpZiB0eXBlLW9mKCRmb250LXNpemUtaW50ZXJ2YWwpID09IG51bWJlciB7XG5cblx0XHRcdFx0QGlmIHVuaXRsZXNzKCRmb250LXNpemUtaW50ZXJ2YWwpIHtcblx0XHRcdFx0XHQtLXNjYWxlI3skaX06IGNhbGModmFyKC0tc2NhbGUjeyRpICsgMX0pIC8gdmFyKC0tZm9udC1zaXplLWludCkpO1xuXHRcdFx0XHR9IEBlbHNlIHtcblx0XHRcdFx0XHQtLXNjYWxlI3skaX06IGNhbGModmFyKC0tc2NhbGUjeyRpICsgMX0pIC0gdmFyKC0tZm9udC1zaXplLWludCkpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0QGlmICRzY2FsZS1tYXggPiAwIHtcblx0XHQvLyBHZW5lcmF0ZSBzY2FsZSB2YXJpYWJsZXMgbGFyZ2VyIHRoYW4gdGhlIGJhc2UgdGV4dCBzaXplXG5cdFx0QGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkc2NhbGUtbWF4IHtcblxuXHRcdFx0QGlmIHR5cGUtb2YoJGZvbnQtc2l6ZS1pbnRlcnZhbCkgPT0gbnVtYmVyIHtcblxuXHRcdFx0XHRAaWYgdW5pdGxlc3MoJGZvbnQtc2l6ZS1pbnRlcnZhbCkge1xuXHRcdFx0XHRcdC0tc2NhbGUjeyRpfTogY2FsYyh2YXIoLS1zY2FsZSN7JGkgLSAxfSkgKiB2YXIoLS1mb250LXNpemUtaW50KSk7XG5cdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdC0tc2NhbGUjeyRpfTogY2FsYyh2YXIoLS1zY2FsZSN7JGkgLSAxfSkgKyB2YXIoLS1mb250LXNpemUtaW50KSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLy8gbGluZSBoZWlnaHQgc2NhbGVcbjpyb290IHtcblx0JGxpbmUtaGVpZ2h0LWludGVydmFsOiAwLjk1O1xuXHQkYm9keS1saW5lLWhlaWdodDogMS4zO1xuXHQkbGluZS1oZWlnaHQtc2NhbGUtbWluOiAtMzsgICAgLy8gVW5pdGxlc3MgbmVnYXRpdmUgaW50ZWdlclxuXHQkbGluZS1oZWlnaHQtc2NhbGUtbWF4OiA0OyAgICAgLy8gVW5pdGxlc3MgcG9zaXRpdmUgaW50ZWdlclxuXG5cdC0tbGluZS1oZWlnaHQtaW50OiAjeyRsaW5lLWhlaWdodC1pbnRlcnZhbH07XG5cdC0tbGgwOiAjeyRib2R5LWxpbmUtaGVpZ2h0fTtcblxuXHRAaWYgJGxpbmUtaGVpZ2h0LXNjYWxlLW1pbiA8IDAge1xuXHRcdC8vIEdlbmVyYXRlIHNjYWxlIHZhcmlhYmxlcyBzbWFsbGVyIHRoYW4gdGhlIGJhc2UgdGV4dCBzaXplXG5cdFx0QGZvciAkaSBmcm9tIC0xIHRocm91Z2ggJGxpbmUtaGVpZ2h0LXNjYWxlLW1pbiB7XG5cblx0XHRcdEBpZiB0eXBlLW9mKCRsaW5lLWhlaWdodC1pbnRlcnZhbCkgPT0gbnVtYmVyIHtcblxuXHRcdFx0XHRAaWYgdW5pdGxlc3MoJGxpbmUtaGVpZ2h0LWludGVydmFsKSB7XG5cdFx0XHRcdFx0LS1saCN7JGl9OiBjYWxjKHZhcigtLWxoI3skaSArIDF9KSAvIHZhcigtLWxpbmUtaGVpZ2h0LWludCkpO1xuXHRcdFx0XHR9IEBlbHNlIHtcblx0XHRcdFx0XHQtLWxoI3skaX06IGNhbGModmFyKC0tbGgjeyRpICsgMX0pIC0gdmFyKC0tbGluZS1oZWlnaHQtaW50KSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRAaWYgJGxpbmUtaGVpZ2h0LXNjYWxlLW1heCA+IDAge1xuXHRcdC8vIEdlbmVyYXRlIHNjYWxlIHZhcmlhYmxlcyBsYXJnZXIgdGhhbiB0aGUgYmFzZSB0ZXh0IHNpemVcblx0XHRAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsaW5lLWhlaWdodC1zY2FsZS1tYXgge1xuXG5cdFx0XHRAaWYgdHlwZS1vZigkbGluZS1oZWlnaHQtaW50ZXJ2YWwpID09IG51bWJlciB7XG5cblx0XHRcdFx0QGlmIHVuaXRsZXNzKCRsaW5lLWhlaWdodC1pbnRlcnZhbCkge1xuXHRcdFx0XHRcdC0tbGgjeyRpfTogY2FsYyh2YXIoLS1saCN7JGkgLSAxfSkgKiB2YXIoLS1saW5lLWhlaWdodC1pbnQpKTtcblx0XHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdFx0LS1saCN7JGl9OiBjYWxjKHZhcigtLWxoI3skaSAtIDF9KSArIHZhcigtLWxpbmUtaGVpZ2h0LWludCkpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG5cdCNMYXlvdXRcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gR1JJRCBQUk9QT1JUSU9OU1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDdXN0b21pemUgeW91ciBncmlk4oCZcyBwcm9wb3J0aW9ucyBieSBlZGl0aW5nIHRoZSB2YWx1ZXMgb2Zcbi8vIHRoZSBmb3VyIHZhcmlhYmxlcyBiZWxvdy4gVXNlIG9ubHkgbnVtYmVycyBmb3IgdmFsdWVzLCBub1xuLy8gdW5pdHMgKGUuZy4gXCIxMFwiLCBub3QgXCIxMHB4XCIpLiBJTVBPUlRBTlQ6IERvbid0IGRlbGV0ZSBhbnlcbi8vIG9mIHRoZXNlIHZhcmlhYmxlcyEgRm9yIGFueSB5b3UgZG9uJ3QgbmVlZCB0byB1c2UsIGp1c3Rcbi8vIGFzc2lnbiBhIHZhbHVlIG9mIDAuXG5cbiRtYXI6IDQ7IC8vIE1hcmdpbiB3aWR0aFxuJGNvbDogNDsgLy8gQ29sdW1uIHdpZHRoXG4kZ3V0OiAxOyAvLyBHdXR0ZXIgd2lkdGhcbiRwYWQ6IDE7IC8vIFBhZGRpbmcgd2lkdGhcblxuJGdyaWQtY29sb3I6IHJlZDsgLy8gR3JpZCBvdmVybGF5IGNvbG9yXG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQlJFQUtQT0lOVFNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gWW91IGNhbiBkZWZpbmUgYXMgbWFueSAob3IgYXMgZmV3KSBicmVha3BvaW50cyBhcyB5b3UgbGlrZSxcbi8vIGFuZCBuYW1lIHRoZW0gd2hhdGV2ZXIgeW91IHdhbnQuIEp1c3QgYmUgc3VyZSB0bzpcbi8vXG4vLyAxLiB1c2UgdGhlIHN5bnRheCBzaG93biBiZWxvdyxcbi8vIDIuIGtlZXAgdGhlIGJyZWFrcG9pbnRzIGluIG9yZGVyIChzbWFsbGVzdCB0byBsYXJnZXN0KSwgYW5kXG4vLyAzLiBpbmNsdWRlIGEgbmFtZSAoZS5nLiBcInhsXCIpLCBjb2x1bW4gY291bnQgKFwiY29sc1wiLFxuLy8gICAgdW5pdGxlc3MpLCBhbmQgbWluaW11bSB3aWR0aCAoXCJtaW4td2lkdGhcIiwgd2l0aCB1bml0cylcbi8vICAgIGZvciBlYWNoIGJyZWFrcG9pbnRcbi8vXG4vLyBBbGwgYnJlYWtwb2ludHMgdXNlIHRoZSBzYW1lIHByb3BvcnRpb25zIHNwZWNpZmllZCBpbiB0aGVcbi8vIHZhcmlhYmxlcyBhYm92ZSwgYnV0IG1hcmdpbiB3aWR0aHMgY2FuIGJlIG9wdGlvbmFsbHlcbi8vIGN1c3RvbWl6ZWQgZm9yIGVhY2ggYnJlYWtwb2ludC5cblxuLy8gZXg6IEBpbmNsdWRlIGJyZWFrcG9pbnQtbWluKCBzbSApIHsgfVxuXG4kYnJlYWtwb2ludHM6IChcblx0eHh4czogKGNvbHM6ICA0LCBtaW4td2lkdGg6ICAwLCAgbWFyZ2luOiAkcGFkKSwgLy8gSW5jbHVkZXMgb3B0aW9uYWwgY3VzdG9tIG1hcmdpblxuXHR4eHM6IChjb2xzOiAgNiwgbWluLXdpZHRoOiAyNGVtLCBtYXJnaW46ICRndXQpLCAvLyAzODRweFxuXHR4czogKGNvbHM6ICA2LCBtaW4td2lkdGg6IDMwZW0sIG1hcmdpbjogJGd1dCksIC8vIDQ4MHB4XG5cdHNtOiAoY29sczogIDYsIG1pbi13aWR0aDogNDBlbSwgbWFyZ2luOiAkZ3V0KSwgLy8gNjQwcHhcblx0bWQ6IChjb2xzOiAgOCwgbWluLXdpZHRoOiA1MGVtLCBtYXJnaW46ICRndXQpLCAvLyA4MDBweFxuXHRsZzogKGNvbHM6IDEyLCBtaW4td2lkdGg6IDYwZW0sIG1hcmdpbjogJG1hciksIC8vIDk2MHB4XG5cdHhsOiAoY29sczogMTYsIG1pbi13aWR0aDogNzBlbSwgbWFyZ2luOiAkbWFyKSwgLy8gMTEyMHB4XG5cdHh4bDogKGNvbHM6IDE2LCBtaW4td2lkdGg6IDgwZW0sIG1hcmdpbjogJG1hciksIC8vIDEyODBweFxuICAgIHh4eGw6IChjb2xzOiAxNiwgbWluLXdpZHRoOiA5MGVtLCBtYXJnaW46ICRtYXIpIC8vIDE0NDBweFxuKTtcblxuJG1heC13aWR0aDogbnVsbDsgLy8gRm9yIG5vIG1heC13aWR0aCwgdXNlICRtYXgtd2lkdGg6IG51bGw7XG5cbiRzaXplX19zaXRlLXNpZGViYXI6IDMwMHB4OyAvLyB0aGlzIG5lZWRzIHRvIGJlIHBpeGVsIGJhc2VkIGJlY2F1c2Ugb2YgYWQgZGltZW5zaW9uc1xuJG1heC13aWR0aC1wYWdlOiA4MGVtOyAvLyB0aGlzIGlzIDEyODBweFxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFotSU5ERVhFU1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiR6LWluZGV4X194eHhsOiAxMDAwMDAwMDAwO1xuJHotaW5kZXhfX3h4bDogMTAwMDAwMDAwO1xuJHotaW5kZXhfX3hsOiAxMDAwMDAwMDtcbiR6LWluZGV4X19sZzogMTAwMDAwMDtcbiR6LWluZGV4X19tZDogMTAwMDAwO1xuJHotaW5kZXhfX3NtOiAxMDAwMDtcbiR6LWluZGV4X194czogMTAwMDtcbiR6LWluZGV4X194eHM6IDEwMDtcbiR6LWluZGV4X194eHhzOiAxMDtcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcblx0I1NQQUNJTkdcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8vIG1hcmdpbi9wYWRkaW5nXG4kc3RhbmRhcmQtYmxvY2stbWFyZ2luOiAxLjVlbTsgLy8gMzZweCBhdCBkZXNrdG9wXG4kc3RhbmRhcmQtaGVhZGluZy1tYXJnaW46IDAuNzVlbTsgLy8gMThweCBhdCBkZXNrdG9wXG4kc3RhbmRhcmQtYmxvY2stcGFkZGluZzogMC41ZW07IC8vIDEycHggYXQgYm9keVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuXHQjQk9SREVSU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuJGJvcmRlci1yYWRpdXM6IDRweDtcbiRib3JkZXItZGVmYXVsdC1zdHlsZTogMXB4IHNvbGlkIG5ldXRyYWwtY29sb3IoYm9yZGVyKTtcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcblx0I0FuaW1hdGlvblxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuJGhvdmVyLXRyYW5zaXRpb246IDAuMjVzIGFsbDtcbiRkb3VibGUtdHJhbnNpdGlvbjogMC41cyBhbGw7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG5cdCNGaXhlZCBTaXplc1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLy8gaW1hZ2VzXG4kYXV0aG9yLXRodW1iLXNpemU6IDc1cHg7XG4kYXV0aG9yLXBob3RvLXNpemU6IDE5MHB4O1xuJGF1dGhvci1mdWxsLXNpemU6IDIyNXB4O1xuXG4vLyBpY29uc1xuJHNoYXJlLWljb24tc2l6ZTogMmVtO1xuJGlubGluZS1pY29uLXNpemU6IDFlbTtcblxuLy8gYWRzXG4kYWQtdG9wLXdpZHRoOiA3MjhweDtcbiRhZC10b3AtaGVpZ2h0OiA5MHB4O1xuJGFkLXRvcC1yaWdodC13aWR0aDogMjI4cHg7XG4kYWQtdG9wLXJpZ2h0LWlmcmFtZS1oZWlnaHQ6IDkwcHg7XG4kYWQtZW1iZWQtd2lkdGg6IDMwMHB4O1xuJGFkLWVtYmVkLWhlaWdodDogMjUwcHg7XG4kYWQtaGFsZnBhZ2Utd2lkdGg6IDMwMHB4O1xuJGFkLWhhbGZwYWdlLWhlaWdodDogNjAwcHg7XG5cbi8vIHRvdWNoIHRhcmdldHNcbiR0b3VjaC10YXJnZXQtbWluaW11bS1zaXplOiA0NHB4O1xuJHRvdWNoLXRhcmdldC1taW5pbXVtLXNpemUtZGVza3RvcDogMzJweDtcbiIsIi8vIGNsZWFyZml4XG5AbWl4aW4gY2xlYXJmaXgge1xuXG5cdCY6OmFmdGVyIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdGRpc3BsYXk6IHRhYmxlO1xuXHRcdGNsZWFyOiBib3RoO1xuXHR9XG59XG4vLyB1c2VkIGxpa2UgdGhpc1xuLmNsZWFyZml4IHtcblxuXHRAaW5jbHVkZSBjbGVhcmZpeDtcbn1cblxuLy8gcmVzcG9uc2l2ZSBpZnJhbWVzIGJ5IHJhdGlvXG5AbWl4aW4gZ2VuZXJhdGVSYXRpb3MoICR3aWR0aCwgJGhlaWdodCwgJHByZWZpeDogXCJyYXRpby1cIiApIHtcblx0JGNsYXNzLW5hbWU6ICRwcmVmaXggKyAkd2lkdGggKyBcInhcIiArICRoZWlnaHQ7XG5cblx0LiN7JGNsYXNzLW5hbWV9IHtcblx0XHRwYWRkaW5nLWJvdHRvbTogcmF0aW8oJHdpZHRoLCAkaGVpZ2h0KTtcblx0fVxuXHQvLyBPdXRwdXQgZXhhbXBsZTogLnJhdGlvLTE2eDkge31cbn1cbi8vIHVzZWQgbGlrZSB0aGlzXG4vL0BpbmNsdWRlIGdlbmVyYXRlUmF0aW9zKDE2LDkpOyAvLyAxNng5XG4vL0BpbmNsdWRlIGdlbmVyYXRlUmF0aW9zKDQsMyk7ICAvLyA0eDNcblxuLy8gZm9udCBmYW1pbGllc1xuXG4vLyBib2R5IHRleHRcbkBtaXhpbiBib2R5LXByZXNldCggJHNpemU6IGluaGVyaXQsICRib2xkOiBpbmhlcml0LCAkaXRhbGljOiBpbmhlcml0LCAkbGluZS1oZWlnaHQ6IGluaGVyaXQgKSB7XG5cblx0QGluY2x1ZGUgdGV4dC1wcmVzZXQoICRzaXplLCAkbGluZS1oZWlnaHQgKTtcblx0Zm9udC1mYW1pbHk6ICR3ZWJmb250X19zZXJpZjtcblx0Zm9udC1zaXplLWFkanVzdDogMC40NjtcblxuXHRAaWYgJGJvbGQgPT0gdHJ1ZSB7XG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0fSBAZWxzZSBpZiAkYm9sZCA9PSBmYWxzZSB7XG5cdFx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0fVxuXG5cdEBpZiAkaXRhbGljID09IHRydWUge1xuXHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0fSBAZWxzZSBpZiAkaXRhbGljID09IGZhbHNlIHtcblx0XHRmb250LXN0eWxlOiBub3JtYWw7XG5cdH1cblx0bGluZS1oZWlnaHQ6IDEuMztcbn1cbi8vIHVzZWQgbGlrZSB0aGlzOiBib2R5LXByZXNldCggJHNpemU6IDMgKTtcblxuLy8gaGVhZGluZyB0ZXh0XG5AbWl4aW4gaGVhZGluZy1wcmVzZXQoICRzaXplOiBpbmhlcml0LCAkYm9sZDogaW5oZXJpdCwgJGl0YWxpYzogaW5oZXJpdCwgJGxpbmUtaGVpZ2h0OiBpbmhlcml0ICkge1xuXG5cdEBpbmNsdWRlIHRleHQtcHJlc2V0KCAkc2l6ZSwgJGxpbmUtaGVpZ2h0ICk7XG5cdGZvbnQtZmFtaWx5OiAkd2ViZm9udF9fc2VyaWY7XG5cdGZvbnQtc2l6ZS1hZGp1c3Q6IDAuNDY7XG5cblx0QGlmICRib2xkID09IHRydWUge1xuXHRcdGZvbnQtd2VpZ2h0OiA5MDA7XG5cdH0gQGVsc2UgaWYgJGJvbGQgPT0gZmFsc2Uge1xuXHRcdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdH1cblxuXHRAaWYgJGl0YWxpYyA9PSB0cnVlIHtcblx0XHRmb250LXN0eWxlOiBpdGFsaWM7XG5cdH0gQGVsc2UgaWYgJGl0YWxpYyA9PSBmYWxzZSB7XG5cdFx0Zm9udC1zdHlsZTogbm9ybWFsO1xuXHR9XG5cdGxpbmUtaGVpZ2h0OiAxLjE1O1xufVxuLy8gdXNlZCBsaWtlIHRoaXM6IEBpbmNsdWRlIGhlYWRpbmctcHJlc2V0KCAkc2l6ZTogMywgJGJvbGQ6IGZhbHNlICk7XG5cbi8vIG1ldGEgdGV4dFxuQG1peGluIG1ldGEtcHJlc2V0KCAkc2l6ZTogaW5oZXJpdCwgJGJvbGQ6IGZhbHNlLCAkaXRhbGljOiBmYWxzZSwgJGxpbmUtaGVpZ2h0OiBpbmhlcml0ICkge1xuXG5cdEBpbmNsdWRlIHRleHQtcHJlc2V0KCAkc2l6ZSwgJGxpbmUtaGVpZ2h0ICk7XG5cdGZvbnQtZmFtaWx5OiAkd2ViZm9udF9fc2Fucztcblx0Zm9udC1zaXplLWFkanVzdDogMC40OTU7XG5cblx0QGlmICRib2xkID09IHRydWUge1xuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdH0gQGVsc2UgaWYgJGJvbGQgPT0gZmFsc2Uge1xuXHRcdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdH1cblxuXHRAaWYgJGl0YWxpYyA9PSB0cnVlIHtcblx0XHRmb250LXN0eWxlOiBpdGFsaWM7XG5cdH0gQGVsc2UgaWYgJGl0YWxpYyA9PSBmYWxzZSB7XG5cdFx0Zm9udC1zdHlsZTogbm9ybWFsO1xuXHR9XG59XG5cbi8vIHRleHQgc2l6ZXNcbkBtaXhpbiB0ZXh0LXByZXNldCggJHNpemU6IGluaGVyaXQsICRsaW5lLWhlaWdodDogaW5oZXJpdCApIHtcblx0Ly9mb250LXNpemU6IG1hcC1nZXQoICR0ZXh0LXNpemVzLCAkc2l6ZSApICsgcHg7XG5cdC8vZm9udC1zaXplOiBtYXAtZ2V0KCAkdGV4dC1zaXplcywgJHNpemUgKS8xMCArIHJlbTtcblxuXHRAaWYgJHNpemUgIT0gXCJpbmhlcml0XCIge1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tc2NhbGUjeyAkc2l6ZSB9KTtcblx0XHQvL2xpbmUtaGVpZ2h0OiB2YXIoLS1saCN7ICRzaXplIH0pO1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjM7XG5cdH1cblxuXHQvL2xpbmUtaGVpZ2h0OiBtYXAtZ2V0KCAkbGluZS1oZWlnaHRzLCAkc2l6ZSApO1xuXG5cdC8qQGluY2x1ZGUgYnJlYWtwb2ludC1taW4oIHhzICkge1xuICAgICAgICBsaW5lLWhlaWdodDogbWFwLWdldCggJGxpbmUtaGVpZ2h0cywgJHNpemUgKSAqIDEuMjU7XG4gICAgfSAvLyAxMjUlXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1taW4oIHNtICkge1xuICAgICAgICBsaW5lLWhlaWdodDogbWFwLWdldCggJGxpbmUtaGVpZ2h0cywgJHNpemUgKSAqIDEuNTtcbiAgICB9IC8vIDE1MCUqL1xufVxuLy8gbGluayB1bmRlcmxpbmUgdHJlYXRtZW50XG5AbWl4aW4gbGluay11bmRlcmxpbmUoICRjb2xvcjogdXRpbGl0eS1jb2xvcihibHVlLCBkYXJrKSwgJGhvdmVyOiB1dGlsaXR5LWNvbG9yKGJsdWUsIGhpZ2hsaWdodCkgKSB7XG5cdGNvbG9yOiAkY29sb3I7XG5cdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHR0ZXh0LWRlY29yYXRpb24tY29sb3I6ICRob3Zlcjtcblx0dGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAwLjI1ZW07XG5cdHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IDAuMDhlbTtcbn1cblxuLy8gYnV0dG9uIHRyZWF0bWVudFxuQG1peGluIGJ1dHRvbiggJGJhY2tncm91bmQ6IGJyYW5kLWNvbG9yKHJlZCwgbWVkaXVtKSwgJGhvdmVyOiBicmFuZC1jb2xvcihyZWQsIGRhcmspLCAkY29sb3I6IG5ldXRyYWwtY29sb3Iod2hpdGUpKSB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0cGFkZGluZzogJHN0YW5kYXJkLWJsb2NrLXBhZGRpbmcgLyAyO1xuXHRib3JkZXI6IDA7XG5cdG1hcmdpbi1yaWdodDogJHN0YW5kYXJkLWJsb2NrLXBhZGRpbmc7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHR0cmFuc2l0aW9uOiAkaG92ZXItdHJhbnNpdGlvbjtcblxuXHRAaW5jbHVkZSBtZXRhLXByZXNldCggJHNpemU6IDEsICRib2xkOiB0cnVlLCAkaXRhbGljOiBmYWxzZSwgJGxpbmUtaGVpZ2h0OiAxICk7XG5cdGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuXHRjb2xvcjogJGNvbG9yO1xuXHRib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcblxuXHQmOmxpbmssXG5cdCY6dmlzaXRlZCB7XG5cdFx0YmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG5cdFx0Y29sb3I6ICRjb2xvcjtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdH1cblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSxcblx0Ji5hY3RpdmUge1xuXHRcdGJhY2tncm91bmQ6ICRob3Zlcjtcblx0XHRjb2xvcjogJGNvbG9yO1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0fVxufVxuIiwiQGltcG9ydCBcImZ1bmN0aW9uc1wiOyAvLyBwdXQgZnVuY3Rpb25zIGZpcnN0IGJlY2F1c2UgdGhleSBnZXQgdXNlZCBpbiBjb2xvciB2YXJpYWJsZSBjYWxjdWxhdGlvbnNcbkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJjb2x1bW4tc2V0dGVyXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQkFTRVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5wIHtcblx0b3JwaGFuczogMjtcblx0d2lkb3dzOiAyO1xufVxuXG5maWd1cmUsXG50YWJsZSxcbmRpdi5pbWFnZSB7XG5cdGJyZWFrLWluc2lkZTogYXZvaWQ7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQVRPTVNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLmFjbS1hZC1jb250YWluZXIsXG4uYWNtLWFkLFxuYXJ0aWNsZSAuYWNtLWFkLFxuLm8tc2l0ZS1zaWRlYmFyIC5hY20tYWQge1xuXHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5hLXNpdGUtYnJhbmRpbmcge1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiBhdXRvO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG1hcmdpbjogMCBhdXRvICRzdGFuZGFyZC1ibG9jay1wYWRkaW5nIGF1dG87XG5cblx0LmEtbG9nby1zdmcge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG59XG5cbmhlYWRlciAuYS1zaXRlLWJyYW5kaW5nIHtcblx0bWFyZ2luOiAwO1xuXHRtYXgtd2lkdGg6IGNvbHNwYW4oNSwgMTYpO1xufVxuXG5oZWFkZXIuby1oZWFkZXItc3VwcG9ydCAuYS1zaXRlLWJyYW5kaW5nIHtcblx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4ubS1zdXBwb3J0LWN0YSAuYS1zdXBwb3J0LWJ1dHRvbixcbi5tLXN1cHBvcnQtY3RhLWJvdHRvbSB7XG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBNT0xFQ1VMRVNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLm0tYWQtcmVnaW9uIHtcblx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4ubS1zdXBwb3J0LWN0YSB7XG5cblx0Ly8gY3RhIGluIHRoZSBzaXRlIGhlYWRlclxuXHQmLm0tc3VwcG9ydC1jdGEtdG9wIHtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0d2lkdGg6IGF1dG87XG5cdFx0Zm9udC1zaXplOiAxMDAlO1xuXHRcdG1heC13aWR0aDogbm9uZTtcblxuXHRcdC8vIHRhZ2xpbmVcblx0XHRoMiB7XG5cblx0XHRcdEBpbmNsdWRlIG1ldGEtcHJlc2V0KCAkc2l6ZTogMCwgJGJvbGQ6IHRydWUsICRpdGFsaWM6IGZhbHNlLCAkbGluZS1oZWlnaHQ6IDEgKTtcblx0XHRcdHBhZGRpbmctYm90dG9tOiAwO1xuXHRcdH1cblx0fVxuXG5cdC8vIGN0YSBpbiB0aGUgc2l0ZSBmb290ZXJcblx0Ji5tLXN1cHBvcnQtY3RhLWJvdHRvbSB7XG5cdFx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXHR9XG59XG5cbi5vLWhlYWRlci1zdXBwb3J0IC5tLXN1cHBvcnQtY3RhLm0tc3VwcG9ydC1jdGEtdG9wIHtcblx0dGV4dC1hbGlnbjogbGVmdDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0d2lkdGg6IGF1dG87XG5cblx0Ly8gdGFnbGluZVxuXHRoMiB7XG5cdFx0bWFyZ2luOiAwO1xuXG5cdFx0QGluY2x1ZGUgbWV0YS1wcmVzZXQoICRzaXplOiAwLCAkYm9sZDogdHJ1ZSwgJGl0YWxpYzogZmFsc2UsICRsaW5lLWhlaWdodDogMSApO1xuXHR9XG59XG5cblxubmF2IHtcblx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5cbi5tLXdpZGdldC1zaXRlLWJyYW5kaW5nIHtcblx0bWF4LXdpZHRoOiBjb2xzcGFuKDYsIDE2KTtcblxuXHQuYS1zaXRlLWJyYW5kaW5nIHtcblx0XHRtYXgtd2lkdGg6IGNvbHNwYW4oNSwgNik7XG5cdH1cbn1cblxuLm0tZW50cnktY29udGVudCB7XG5cdG1hcmdpbi1ib3R0b206ICRzdGFuZGFyZC1ibG9jay1tYXJnaW47XG5cdG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG5cblx0Ji5tLW1lbWJlcnNoaXAtc3VwcG9ydC13cmFwcGVyIHtcblx0XHRmb250LWZhbWlseTogJHdlYmZvbnRfX3NhbnM7XG5cdH1cbn1cblxuLm8tZW50cnkge1xuXG5cdC5tLWVudHJ5LW1ldGEge1xuXHRcdHdpZHRoOiBjb2xzcGFuKDIsIDEyKTtcblxuXHRcdCYubS1lbnRyeS1tZXRhLWhvcml6b250YWwge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0fVxuXHR9XG59XG5cbi5tLWVudHJ5LWhlYWRlciB7XG5cblx0Lm0tZW50cnktbWV0YSB7XG5cdFx0d2lkdGg6IGNvbHNwYW4oMTIsIDEyKTtcblx0fVxufVxuXG4ubS1hcmNoaXZlIHtcblxuXHQubS1lbnRyeS1jb250ZW50IHtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdGZsZXg6IDEgMDtcblx0fVxuXG5cdCYubS1hcmNoaXZlLWV4Y2VycHQge1xuXG5cdFx0Lm0tZW50cnktY29udGVudCB7XG5cdFx0XHRmbGV4OiAxIDA7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6ICRzdGFuZGFyZC1oZWFkaW5nLW1hcmdpbjtcblx0XHR9XG5cblx0fVxuXG5cdCYubS1hcmNoaXZlLWhvbWVwYWdlIHtcblxuXHRcdC5tLWVudHJ5LWNvbnRlbnQge1xuXHRcdFx0b3JkZXI6IDI7XG5cdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHR9XG5cdH1cblxuXHQmLm0tem9uZS1ob21lcGFnZS10b3Age1xuXG5cdFx0Lm0tZW50cnktY29udGVudCB7XG5cdFx0XHRmbGV4OiAxIDA7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6ICRzdGFuZGFyZC1oZWFkaW5nLW1hcmdpbjtcblx0XHR9XG5cblx0XHQubS1wb3N0LWltYWdlLWZpcnN0IHtcblxuXHRcdFx0Lm0tZW50cnktY29udGVudCB7XG5cdFx0XHRcdG9yZGVyOiAyO1xuXHRcdFx0XHRmbGV4OiAxIDA7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLm0tYXJjaGl2ZS10b3AgLm0tcG9zdC1pbWFnZSxcbi5tLWFyY2hpdmUtZXhjZXJwdCAubS1wb3N0LWltYWdlLFxuLm0tYXJjaGl2ZS1ob21lcGFnZSAubS1wb3N0LWltYWdlIHtcblx0d2lkdGg6IDEwMCU7XG59XG5cbi5tLWFyY2hpdmUtdG9wIC5tLXBvc3QtaW1hZ2UsXG4ubS1hcmNoaXZlLWV4Y2VycHQgLm0tcG9zdC1pbWFnZSB7XG5cdG1hcmdpbi1sZWZ0OiAwO1xuXHRtYXJnaW4tYm90dG9tOiAwO1xuXHRtYXJnaW4tYm90dG9tOiAkc3RhbmRhcmQtaGVhZGluZy1tYXJnaW47XG5cdHdpZHRoOiBhdXRvO1xuXG5cdCYubS1wb3N0LXRodW1ibmFpbC1mdWxsIHtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxufVxuXG4ubS1wb3N0LWltYWdlLWZpcnN0IC5tLXBvc3QtaW1hZ2Uge1xuXHRtYXJnaW4tcmlnaHQ6ICRzdGFuZGFyZC1oZWFkaW5nLW1hcmdpbjtcbn1cblxuLm0taG9tZXBhZ2Utem9uZXMge1xuXG5cdC8vIHdoZXJlIHRoZSB6b25lcyBkaWZmZXIgZnJvbSB0aGUgYXJjaGl2ZXNcblx0Lm0tem9uZSB7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0bWF4LXdpZHRoOiBjYWxjKCgxMDAlKSAtICN7JHNpemVfX3NpdGUtc2lkZWJhcn0pO1xuXG5cdFx0Ji5tLXpvbmUtaG9tZXBhZ2UtdG9wIHsgLy8gYmVjYXVzZSB0aGlzIHNlY3Rpb24gaXMgbm90IHZpc3VhbGx5IHNlcGFyYXRlXG5cdFx0XHRtYXgtd2lkdGg6IGNhbGMoKDEwMCUgLSAje2NvbHNwYW4oMSwgMTIpfSkgLSAjeyRzaXplX19zaXRlLXNpZGViYXJ9KTtcblxuXHRcdFx0YXJ0aWNsZSB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAwO1xuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogMDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLm0tem9uZS1ob21lcGFnZS1tb3JlLXRvcCxcblx0XHQmLm0tem9uZS1ob21lcGFnZS1vcGluaW9uIHtcblxuXHRcdFx0YXJ0aWNsZSB7XG5cdFx0XHRcdHdpZHRoOiBjb2xzcGFuKDUuOCwgMTIpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4ubS13aWRnZXQtZ3JvdXAge1xuXG5cdCYubS13aWRnZXQtZ3JvdXAtaG9tZXBhZ2Uge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdH1cbn1cblxuXG4vLyBPUkdBTklTTVNcbi5vLXdyYXBwZXItc2l0ZS1uYXZpZ2F0aW9uLFxuLm8td3JhcHBlci1zdWItbmF2aWdhdGlvbixcbi5vLXdyYXBwZXItc2l0ZS1uYXZpZ2F0aW9uICoge1xuXHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5vLXdyYXBwZXIge1xuXHQvLyBzaXRlIGhlYWRlciB3cmFwcGVyXG5cdCYuby13cmFwcGVyLXNpdGUtaGVhZGVyIHtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdG1hcmdpbi1ib3R0b206ICRzdGFuZGFyZC1ibG9jay1wYWRkaW5nO1xuXHR9XG59XG5cbiNjb250ZW50IHtcblx0ZGlzcGxheTogYmxvY2s7XG5cblx0YXJ0aWNsZSB7XG5cblx0XHQubS1mb3JtLW5ld3NsZXR0ZXItc2hvcnRjb2RlIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG5cblx0I2NvbW1lbnRzIHtcblxuXHRcdC5hLWNvbW1lbnQtbGlua3MsXG5cdFx0I3Jlc3BvbmQge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cblxuXHQubS1lbnRyeS1zaGFyZSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdC5tLWZvcm0taW5zdG9yeSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdC5tLXJlbGF0ZWQge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cblxuLm8tZW50cnkge1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cblx0Lm0tZW50cnktY29udGVudCB7XG5cdFx0bWF4LXdpZHRoOiBjb2xzcGFuKDEwLCAxMik7XG5cdH1cbn1cblxuLm8tc2l0ZS1tZXNzYWdlLWNvbnRhaW5lciB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cblxuYm9keS5zaW5nbGUsXG5ib2R5LnBhZ2Uge1xuXG5cdC5vLXNpdGUtc2lkZWJhciB7XG5cblx0XHQubS1taW5ucG9zdC1zcGlsbHMtd2lkZ2V0LFxuXHRcdC5tLXdpZGdldC16b25lLXBvc3RzLFxuXHRcdC5tLXdpZGdldC1tb3N0LWNvbW1lbnRlZCB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxufVxuXG5mb290ZXIge1xuXG5cdG5hdiB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdC5vLWZvb3RlciAuby1mb290ZXItaGF0IHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxufVxuXG4vLyBkb24ndCBwcmludCBwb3B1cHNcbi5wdW0sXG4ud3AtbWVzc2FnZS1pbnNlcnRlci1tZXNzYWdlLXJlZ2lvbi1wb3B1cCB7XG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbiIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRlVOQ1RJT05TXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGludmFsaWRcbi8vIHdyb25nLXR5cGVcbi8vIG1pc3Npbmdcbi8vIG9wdGlvbmFsXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDb2x1bW4gU2V0dGVyIHVzZXMgdGhlIFwiaW52YWxpZFwiLCBcIndyb25nLXR5cGVcIiwgXCJtaXNzaW5nXCIsIGFuZFxuLy8gXCJvcHRpb25hbFwiIGZ1bmN0aW9ucyB0byBidWlsZCBlcnJvciBtZXNzYWdlcy5cblxuQGZ1bmN0aW9uIGludmFsaWQoJGNhbGwsICRhcmcyOm51bGwsICRhcmczOm51bGwsICRhcmc0Om51bGwpIHtcblxuXHRAaWYgJGFyZzIgYW5kICRhcmczIGFuZCAkYXJnNCB7XG5cblx0XHRAcmV0dXJuIFwiJyN7JGNhbGx9KCN7JGFyZzJ9LCN7JGFyZzN9LCN7JGFyZzR9KScgaXMgaW52YWxpZCBiZWNhdXNlIFwiO1xuXHR9XG5cblx0QGlmICRhcmcyIGFuZCAkYXJnMyBhbmQgbm90ICRhcmc0IHtcblxuXHRcdEByZXR1cm4gXCInI3skY2FsbH0oI3skYXJnMn0sI3skYXJnM30pJyBpcyBpbnZhbGlkIGJlY2F1c2UgXCI7XG5cdH1cblxuXHRAaWYgJGFyZzIgYW5kIG5vdCAkYXJnMyBhbmQgbm90ICRhcmc0IHtcblxuXHRcdEByZXR1cm4gXCInI3skY2FsbH0oI3skYXJnMn0pJyBpcyBpbnZhbGlkIGJlY2F1c2UgXCI7XG5cdH1cblxuXHRAaWYgbm90ICRhcmcyIHtcblxuXHRcdEByZXR1cm4gXCInI3skY2FsbH0oKScgaXMgaW52YWxpZCBiZWNhdXNlIFwiO1xuXHR9XG59XG5cbkBmdW5jdGlvbiB3cm9uZy10eXBlKCR0eXBlLCAkYXJnMjpudWxsLCAkYXJnMzpudWxsKSB7XG5cblx0QGlmICRhcmcyIGFuZCAkYXJnMyB7XG5cblx0XHRAcmV0dXJuIFwiJyN7JGFyZzJ9JyBhbmQgJyN7JGFyZzN9JyBhcmUgbm90ICN7JHR5cGV9c1wiO1xuXHR9XG5cblx0QGlmIG5vdCAkYXJnMyB7XG5cblx0XHRAcmV0dXJuIFwiJyN7JGFyZzJ9JyBpcyBub3QgYSAjeyR0eXBlfVwiO1xuXHR9XG59XG5cbkBmdW5jdGlvbiBtaXNzaW5nKCRudW1iZXIpIHtcblxuXHRAaWYgJG51bWJlciA8IDIge1xuXG5cdFx0QHJldHVybiBcImFuIGFyZ3VtZW50IGlzIG1pc3NpbmcuIFwiO1xuXHR9XG5cblx0QGlmICRudW1iZXIgPj0gMiB7XG5cblx0XHRAcmV0dXJuIFwiYXJndW1lbnRzIGFyZSBtaXNzaW5nLiBcIjtcblx0fVxufVxuXG5AZnVuY3Rpb24gb3B0aW9uYWwoJG51bWJlciwkY3VycmVudCwkY29ycmVjdCkge1xuXG5cdEByZXR1cm4gXCJ0aGUgb3B0aW9uYWwgI3skbnVtYmVyfSBhcmd1bWVudCAoY3VycmVudGx5ICcjeyRjdXJyZW50fScpIHdpbGwgb25seSBhY2NlcHQgYSB2YWx1ZSBvZiAnI3skY29ycmVjdH0nLiBcIjtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gYnAtYXR0cmlidXRlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDb2x1bW4gU2V0dGVyIHVzZXMgdGhlIFwiYnAtYXR0cmlidXRlXCIgZnVuY3Rpb24gdG8gcmV0cmlldmUgdGhlXG4vLyB2YWx1ZXMgb2YgYnJlYWtwb2ludCBhdHRyaWJ1dGVzIChzdWNoIGFzIFwiY29sc1wiIGFuZCBcIm1pblwiLFxuLy8gZm91bmQgaW4gdGhlICRicmVha3BvaW50cyBtYXAgaW4gXCJtYWluLnNjc3NcIikuXG4vL1xuLy8gRVhBTVBMRTogVG8gYWNjZXNzIHRoZSBtaW5pbXVtIG1lYXN1cmVtZW50IG9mIHRoZSBcInNtXCJcbi8vIGJyZWFrcG9pbnQuLi5cbi8vXG4vLyBicC1hdHRyaWJ1dGUoc20sIG1pbi13aWR0aClcbi8vXG4vLyAuLi5yZXR1cm5zIHNvbWV0aGluZyBsaWtlIHRoaXM6XG4vL1xuLy8gNDBlbVxuXG5AZnVuY3Rpb24gYnAtYXR0cmlidXRlKCRicC1uYW1lLCAkYnAtYXR0cmlidXRlKSB7XG5cblx0QHJldHVybiBtYXAtZ2V0KG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnAtbmFtZSksICRicC1hdHRyaWJ1dGUpO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBicC12YWxpZGF0b3IgKFVORklOSVNIRUQpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDb2x1bW4gU2V0dGVyIHVzZXMgdGhlIFwiYnAtdmFsaWRhdG9yXCIgZnVuY3Rpb24gdG8gZW5zdXJlIHRoYXQgdGhlcmVcbi8vIGFyZSBubyBlcnJvcnMgaW4gdGhlICRicmVha3BvaW50cyBtYXAgaW4gXCJtYWluLnNjc3NcIi5cblxuQGZ1bmN0aW9uIGJwLXZhbGlkYXRvcigpIHtcblxuXHRAaWYgdHlwZS1vZigkbWFyKSAhPSBudW1iZXIgb3IgdW5pdGxlc3MoJG1hcikgPT0gZmFsc2Uge1xuXG5cdFx0QHdhcm4gXCJIZXJlIGlzIHRoZSBicC12YWxpZGF0b3IgJG1hciB3YXJuaW5nLlwiO1xuXHR9XG5cblx0QGlmIHR5cGUtb2YoJGNvbCkgIT0gbnVtYmVyIG9yIHVuaXRsZXNzKCRjb2wpID09IGZhbHNlIHtcblxuXHRcdEB3YXJuIFwiSGVyZSBpcyB0aGUgYnAtdmFsaWRhdG9yICRjb2wgd2FybmluZy5cIjtcblx0fVxuXG5cdEBpZiB0eXBlLW9mKCRndXQpICE9IG51bWJlciBvciB1bml0bGVzcygkZ3V0KSA9PSBmYWxzZSB7XG5cblx0XHRAd2FybiBcIkhlcmUgaXMgdGhlIGJwLXZhbGlkYXRvciAkZ3V0IHdhcm5pbmcuXCI7XG5cdH1cblxuXHRAaWYgdHlwZS1vZigkcGFkKSAhPSBudW1iZXIgb3IgdW5pdGxlc3MoJHBhZCkgPT0gZmFsc2Uge1xuXG5cdFx0QHdhcm4gXCJIZXJlIGlzIHRoZSBicC12YWxpZGF0b3IgJHBhZCB3YXJuaW5nLlwiO1xuXHR9XG5cblx0QGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJGJyZWFrcG9pbnRzKSB7XG5cblx0XHRAaWYgdHlwZS1vZihtYXAtZ2V0KG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAobnRoKG1hcC1rZXlzKCRicmVha3BvaW50cyksICRpKSkpLCBjb2xzKSkgIT0gbnVtYmVyIG9yIHVuaXRsZXNzKG1hcC1nZXQobWFwLWdldCgkYnJlYWtwb2ludHMsIChudGgobWFwLWtleXMoJGJyZWFrcG9pbnRzKSwgJGkpKSksIGNvbHMpKSA9PSBmYWxzZSB7XG5cblx0XHRcdEB3YXJuIFwiSGVyZSBpcyB0aGUgYnAtdmFsaWRhdG9yIGNvbHMgd2FybmluZy5cIjtcblx0XHR9XG5cdH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gd2lkdGhcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENvbHVtbiBTZXR0ZXIgdXNlcyB0aGUgXCJ3aWR0aFwiIGZ1bmN0aW9uIHRvIGNhbGN1bGF0ZSB0aGUgd2lkdGggb2YgYVxuLy8gc3BhbiBvZiBjb2x1bW5zLCBkZXJpdmVkIGZyb20gdGhlIHByb3BvcnRpb25hbCB3aWR0aFxuLy8gdmFyaWFibGVzIHdob3NlIGN1c3RvbWl6YWJsZSB2YWx1ZXMgYXJlIGRlZmluZWQgYXQgdGhlIHRvcFxuLy8gb2YgXCJtYWluLnNjc3NcIi5cbi8vXG4vLyBFWEFNUExFOiBGb3IgYSB3aWR0aCBzcGFubmluZyA2IGNvbHVtbnMuLi5cbi8vXG4vLyB3aWR0aCg2KVxuLy9cbi8vIC4uLnJldHVybnMgc29tZXRoaW5nIGxpa2UgdGhpczpcbi8vXG4vLyA1MzhcblxuQGZ1bmN0aW9uIHdpZHRoKCR3aWR0aCkge1xuXG5cdEByZXR1cm4gKCgkY29sICogJHdpZHRoKSArICgkZ3V0ICogKCR3aWR0aCAtIDEpKSk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGNvbHNwYW5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRoZSBcImNvbHNwYW5cIiBmdW5jdGlvbiBhbGxvd3MgdGhlIHVzZXIgdG8gZ2VuZXJhdGVcbi8vIGdyaWQtYmFzZWQsIHBlcmNlbnRhZ2Ugd2lkdGggdmFsdWVzLCBkZXJpdmVkIGZyb20gdGhlXG4vLyBwcm9wb3J0aW9uYWwgd2lkdGggdmFyaWFibGVzIHdob3NlIGN1c3RvbWl6YWJsZSB2YWx1ZXMgYXJlXG4vLyBkZWZpbmVkIGF0IHRoZSB0b3Agb2YgXCJtYWluLnNjc3NcIi5cbi8vXG4vLyBFWEFNUExFOiBGb3IgYSB3aWR0aCBzcGFubmluZyA2IG9mIDEyIGNvbHVtbnMuLi5cbi8vXG4vLyB3aWR0aDogY29sc3Bhbig2LDEyKTtcbi8vXG4vLyAuLi5jb21waWxlcyB0byBzb21ldGhpbmcgbGlrZSB0aGlzOlxuLy9cbi8vIHdpZHRoOiA0OC44MjAzMyU7XG5cbiRjb2xzcGFuLWxlc3NvbjogXCJBICdjb2xzcGFuJyBmdW5jdGlvbiBjYWxsIG11c3QgaW5jbHVkZSB0aGUgdW5pdGxlc3MgbnVtZXJpYyBjb2x1bW4gd2lkdGhzIG9mIGJvdGggdGhlIHRhcmdldCBhbmQgaXRzIGNvbnRhaW5lciwgZS5nLiAnY29sc3Bhbig0LDgpJy4gVGhlIHRhcmdldCB3aWR0aCBjYW4gYWxzbyBiZSBzcGVjaWZpZWQgYXMgJ3AnIChmb3IgJHBhZCB3aWR0aCkgb3IgJ2cnIChmb3IgJGd1dCB3aWR0aCkuXCI7XG5cbkBmdW5jdGlvbiBjb2xzcGFuKCR0YXJnZXQ6bnVsbCwkY29udGFpbmVyOm51bGwpIHtcblxuXHRAaWYgJHRhcmdldFxuXHRcdGFuZCAkY29udGFpbmVyIHtcblxuXHRcdEBpZiAkdGFyZ2V0ID09IFwibVwiXG5cdFx0XHRhbmQgKHR5cGUtb2YoJGNvbnRhaW5lcikgPT0gXCJudW1iZXJcIiBhbmQgdW5pdGxlc3MoJGNvbnRhaW5lcikgPT0gdHJ1ZSkge1xuXG5cdFx0XHRAcmV0dXJuIHBlcmNlbnRhZ2UoJG1hciAvICh3aWR0aCgkY29udGFpbmVyKSArICgkbWFyICogMikpKTtcblx0XHR9XG5cblx0XHRAaWYgJHRhcmdldCA9PSBcInBcIlxuXHRcdFx0YW5kICh0eXBlLW9mKCRjb250YWluZXIpID09IFwibnVtYmVyXCIgYW5kIHVuaXRsZXNzKCRjb250YWluZXIpID09IHRydWUpIHtcblxuXHRcdFx0QHJldHVybiBwZXJjZW50YWdlKCRwYWQgLyB3aWR0aCgkY29udGFpbmVyKSk7XG5cdFx0fVxuXG5cdFx0QGlmICR0YXJnZXQgPT0gXCJnXCJcblx0XHRcdGFuZCAodHlwZS1vZigkY29udGFpbmVyKSA9PSBcIm51bWJlclwiIGFuZCB1bml0bGVzcygkY29udGFpbmVyKSA9PSB0cnVlKSB7XG5cblx0XHRcdEByZXR1cm4gcGVyY2VudGFnZSgkZ3V0IC8gd2lkdGgoJGNvbnRhaW5lcikpO1xuXHRcdH1cblxuXHRcdEBpZiAodHlwZS1vZigkdGFyZ2V0KSAhPSBcIm51bWJlclwiIG9yIHVuaXRsZXNzKCR0YXJnZXQpID09IGZhbHNlKVxuXHRcdFx0YW5kICh0eXBlLW9mKCRjb250YWluZXIpICE9IFwibnVtYmVyXCIgb3IgdW5pdGxlc3MoJGNvbnRhaW5lcikgPT0gZmFsc2UpXG5cdFx0XHRhbmQgJHRhcmdldCAhPSBcIm1cIlxuXHRcdFx0YW5kICR0YXJnZXQgIT0gXCJwXCJcblx0XHRcdGFuZCAkdGFyZ2V0ICE9IFwiZ1wiIHtcblxuXHRcdFx0QHdhcm4gaW52YWxpZChcImNvbHNwYW5cIiwkdGFyZ2V0LCRjb250YWluZXIpICsgd3JvbmctdHlwZShcInVuaXRsZXNzIG51bWJlclwiLCR0YXJnZXQsJGNvbnRhaW5lcikgKyBcIi4gXCIgKyAkY29sc3Bhbi1sZXNzb247XG5cdFx0XHRAcmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdEBpZiAodHlwZS1vZigkdGFyZ2V0KSAhPSBcIm51bWJlclwiIG9yIHVuaXRsZXNzKCR0YXJnZXQpID09IGZhbHNlKVxuXHRcdFx0YW5kICh0eXBlLW9mKCRjb250YWluZXIpID09IFwibnVtYmVyXCIgYW5kIHVuaXRsZXNzKCRjb250YWluZXIpID09IHRydWUpIHtcblxuXHRcdFx0QHdhcm4gaW52YWxpZChcImNvbHNwYW5cIiwkdGFyZ2V0LCRjb250YWluZXIpICsgd3JvbmctdHlwZShcInVuaXRsZXNzIG51bWJlclwiLCR0YXJnZXQpICsgXCIuIFwiICsgJGNvbHNwYW4tbGVzc29uO1xuXHRcdFx0QHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRAaWYgKCh0eXBlLW9mKCR0YXJnZXQpID09IFwibnVtYmVyXCIgYW5kIHVuaXRsZXNzKCR0YXJnZXQpID09IHRydWUpIGFuZCAodHlwZS1vZigkY29udGFpbmVyKSAhPSBcIm51bWJlclwiIG9yIHVuaXRsZXNzKCRjb250YWluZXIpID09IGZhbHNlKSlcblx0XHRcdG9yICgkdGFyZ2V0ID09IFwibVwiIGFuZCAodHlwZS1vZigkY29udGFpbmVyKSAhPSBcIm51bWJlclwiIG9yIHVuaXRsZXNzKCRjb250YWluZXIpID09IGZhbHNlKSlcblx0XHRcdG9yICgkdGFyZ2V0ID09IFwicFwiIGFuZCAodHlwZS1vZigkY29udGFpbmVyKSAhPSBcIm51bWJlclwiIG9yIHVuaXRsZXNzKCRjb250YWluZXIpID09IGZhbHNlKSlcblx0XHRcdG9yICgkdGFyZ2V0ID09IFwiZ1wiIGFuZCAodHlwZS1vZigkY29udGFpbmVyKSAhPSBcIm51bWJlclwiIG9yIHVuaXRsZXNzKCRjb250YWluZXIpID09IGZhbHNlKSkge1xuXG5cdFx0XHRAd2FybiBpbnZhbGlkKFwiY29sc3BhblwiLCR0YXJnZXQsJGNvbnRhaW5lcikgKyB3cm9uZy10eXBlKFwidW5pdGxlc3MgbnVtYmVyXCIsJGNvbnRhaW5lcikgKyBcIi4gXCIgKyAkY29sc3Bhbi1sZXNzb247XG5cdFx0XHRAcmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0fVxuXG5cdEBpZiAkdGFyZ2V0XG5cdFx0YW5kIG5vdCAkY29udGFpbmVyIHtcblxuXHRcdEBpZiAodHlwZS1vZigkdGFyZ2V0KSA9PSBcIm51bWJlclwiIGFuZCB1bml0bGVzcygkdGFyZ2V0KSA9PSB0cnVlKSB7XG5cblx0XHRcdEB3YXJuIGludmFsaWQoY29sc3BhbiwkdGFyZ2V0KSArIG1pc3NpbmcoMSkgKyAkY29sc3Bhbi1sZXNzb247XG5cdFx0XHRAcmV0dXJuIGZhbHNlO1xuXHRcdH0gQGVsc2Uge1xuXG5cdFx0XHRAd2FybiBpbnZhbGlkKGNvbHNwYW4sJHRhcmdldCkgKyB3cm9uZy10eXBlKFwidW5pdGxlc3MgbnVtYmVyXCIsJHRhcmdldCkgKyBcIiwgYW5kIFwiICsgbWlzc2luZygxKSArICRjb2xzcGFuLWxlc3Nvbjtcblx0XHRcdEByZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHR9XG5cblx0QGlmIG5vdCAkdGFyZ2V0IHtcblxuXHRcdEB3YXJuIGludmFsaWQoY29sc3BhbikgKyBtaXNzaW5nKDIpICsgJGNvbHNwYW4tbGVzc29uO1xuXHRcdEByZXR1cm4gZmFsc2U7XG5cdH0gQGVsc2Uge1xuXG5cdFx0QHJldHVybiBwZXJjZW50YWdlKHdpZHRoKCR0YXJnZXQpIC8gd2lkdGgoJGNvbnRhaW5lcikpO1xuXHR9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gTUlYSU5TXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGZ1bGwtd2lkdGhcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRoZSBcImZ1bGwtd2lkdGhcIiBtaXhpbiBhbGxvd3MgdGhlIHVzZXIgdG8gYnJlYWsgYW4gZWxlbWVudFxuLy8gb3V0IG9mIHRoZSBncmlkIGFuZCBpbnRvIHRoZSBtYXJnaW5zLCB0YWtpbmcgdXAgdGhlIGZ1bGxcbi8vIHdpZHRoIG9mIHRoZSB2aWV3cG9ydC5cblxuQG1peGluIGZ1bGwtd2lkdGgge1xuXHR3aWR0aDogYXV0bztcblx0bWFyZ2luLWxlZnQ6IGNhbGMoLTUwdncgKyA1MCUpO1xuXHRtYXJnaW4tcmlnaHQ6IGNhbGMoLTUwdncgKyA1MCUpO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBicmVha3BvaW50XG4vLyBicmVha3BvaW50LW1heFxuLy8gYnJlYWtwb2ludC1yYW5nZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVGhlIHRocmVlIGZsYXZvcnMgb2YgdGhlIFwiYnJlYWtwb2ludFwiIG1peGluIGFsbG93IHRoZSB1c2VyXG4vLyB0byBnZW5lcmF0ZSB3aWR0aC1iYXNlZCBtZWRpYSBxdWVyaWVzIHVzaW5nIHRoZSBicmVha3BvaW50XG4vLyBuYW1lcyBhbmQgdmFsdWVzIGRlZmluZWQgaW4gdGhlICRicmVha3BvaW50cyBtYXAgaW5cbi8vIG1haW4uc2Nzcy5cblxuJHZhbGlkLWJwLW5hbWVzOiBcIkN1cnJlbnQgdmFsaWQgYnJlYWtwb2ludCBuYW1lczogXCIgKyBtYXAta2V5cygkYnJlYWtwb2ludHMpICsgXCIuXCI7XG4kYnAtbWluLWxlc3NvbjogXCJBICdicmVha3BvaW50LW1pbicgbWl4aW4gY2FsbCBtdXN0IGNvbnRhaW4gYSB2YWxpZCBicmVha3BvaW50IG5hbWUsIGUuZy4gJ2JyZWFrcG9pbnQtbWluKHNtYWxsKScuIFwiICsgJHZhbGlkLWJwLW5hbWVzO1xuJGJwLW1heC1sZXNzb246IFwiQSAnYnJlYWtwb2ludC1tYXgnIG1peGluIGNhbGwgbXVzdCBjb250YWluIGEgdmFsaWQgYnJlYWtwb2ludCBuYW1lLCBlLmcuICdicmVha3BvaW50LW1heChsYXJnZSknLiBcIiArICR2YWxpZC1icC1uYW1lcztcbiRicC1yYW5nZS1sZXNzb246IFwiQSAnYnJlYWtwb2ludC1yYW5nZScgbWl4aW4gY2FsbCBtdXN0IGNvbnRhaW4gdmFsaWQgbWluaW11bSBhbmQgbWF4aW11bSBicmVha3BvaW50IG5hbWVzLCBlLmcuICdicmVha3BvaW50LXJhbmdlKHNtYWxsLGxhcmdlKScuIFwiICsgJHZhbGlkLWJwLW5hbWVzO1xuXG4vLyBAaW5jbHVkZSBicmVha3BvaW50LW1pbihsZykgeyAuLi4gfVxuLy9cbi8vIC4uLmNvbXBpbGVzIHRvIHNvbWV0aGluZyBsaWtlIHRoaXM6XG4vL1xuLy8gQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTBlbSkgeyAuLi4gfVxuXG5AbWl4aW4gYnJlYWtwb2ludC1taW4oJGJwOm51bGwpIHtcblx0JGFsbC1pcy13ZWxsOiB0cnVlO1xuXG5cdEBpZiAkYnAge1xuXG5cdFx0QGlmIG5vdCBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRicCkge1xuXHRcdFx0JGFsbC1pcy13ZWxsOiBmYWxzZTtcblxuXHRcdFx0QHdhcm4gaW52YWxpZChcImJyZWFrcG9pbnQtbWluXCIsJGJwKSArIHdyb25nLXR5cGUoXCJ2YWxpZCBicmVha3BvaW50IG5hbWVcIiwkYnApICsgXCIuIFwiICsgJGJwLW1pbi1sZXNzb247XG5cdFx0fVxuXHR9IEBlbHNlIHtcblx0XHQkYWxsLWlzLXdlbGw6IGZhbHNlO1xuXG5cdFx0QHdhcm4gaW52YWxpZChcImJyZWFrcG9pbnQtbWluXCIpICsgbWlzc2luZygxKSArICRicC1taW4tbGVzc29uO1xuXHR9XG5cblx0QGlmICRhbGwtaXMtd2VsbCA9PSB0cnVlIHtcblxuXHRcdEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IGJwLWF0dHJpYnV0ZSgkYnAsIG1pbi13aWR0aCkpIHtcblx0XHRcdEBjb250ZW50O1xuXHRcdH1cblx0fVxufVxuXG4vLyBAaW5jbHVkZSBicmVha3BvaW50LW1heChsZykgeyAuLi4gfVxuLy9cbi8vIC4uLmNvbXBpbGVzIHRvIHNvbWV0aGluZyBsaWtlIHRoaXM6XG4vL1xuLy8gQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTBlbSkgeyAuLi4gfVxuXG5AbWl4aW4gYnJlYWtwb2ludC1tYXgoJGJwOm51bGwpIHtcblx0JGFsbC1pcy13ZWxsOiB0cnVlO1xuXG5cdEBpZiAkYnAge1xuXG5cdFx0QGlmIG5vdCBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRicCkge1xuXHRcdFx0JGFsbC1pcy13ZWxsOiBmYWxzZTtcblxuXHRcdFx0QHdhcm4gaW52YWxpZChcImJyZWFrcG9pbnQtbWF4XCIsJGJwKSArIHdyb25nLXR5cGUoXCJ2YWxpZCBicmVha3BvaW50IG5hbWVcIiwkYnApICsgXCIuIFwiICsgJGJwLW1pbi1sZXNzb247XG5cdFx0fVxuXHR9IEBlbHNlIHtcblx0XHQkYWxsLWlzLXdlbGw6IGZhbHNlO1xuXG5cdFx0QHdhcm4gaW52YWxpZChcImJyZWFrcG9pbnQtbWF4XCIpICsgbWlzc2luZygxKSArICRicC1taW4tbGVzc29uO1xuXHR9XG5cblx0QGlmICRhbGwtaXMtd2VsbCA9PSB0cnVlIHtcblxuXHRcdEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IGJwLWF0dHJpYnV0ZSgkYnAsIG1pbi13aWR0aCkpIHtcblx0XHRcdEBjb250ZW50O1xuXHRcdH1cblx0fVxufVxuXG4vLyBAaW5jbHVkZSBicmVha3BvaW50LXJhbmdlKG1kLCBsZykgeyAuLi4gfVxuLy9cbi8vIC4uLmNvbXBpbGVzIHRvIHNvbWV0aGluZyBsaWtlIHRoaXM6XG4vL1xuLy8gQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtYXgtd2lkdGg6IDUwZW0pIHsgLi4uIH1cblxuQG1peGluIGJyZWFrcG9pbnQtcmFuZ2UoJGJwLW1pbjpudWxsLCAkYnAtbWF4Om51bGwpIHtcblx0JGFsbC1pcy13ZWxsOiB0cnVlO1xuXG5cdEBpZiAkYnAtbWluXG5cdFx0YW5kICRicC1tYXgge1xuXG5cdFx0QGlmIG5vdCBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRicC1taW4pXG5cdFx0XHRhbmQgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJwLW1heCkge1xuXHRcdFx0JGFsbC1pcy13ZWxsOiBmYWxzZTtcblxuXHRcdFx0QHdhcm4gaW52YWxpZChcImJyZWFrcG9pbnQtcmFuZ2VcIiwkYnAtbWluLCRicC1tYXgpICsgd3JvbmctdHlwZShcInZhbGlkIGJyZWFrcG9pbnQgbmFtZVwiLCRicC1taW4sJGJwLW1heCkgKyBcIi4gXCIgKyAkYnAtcmFuZ2UtbGVzc29uO1xuXHRcdH1cblxuXHRcdEBpZiBub3QgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkYnAtbWluKVxuXHRcdFx0YW5kIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJwLW1heCkge1xuXHRcdFx0JGFsbC1pcy13ZWxsOiBmYWxzZTtcblxuXHRcdFx0QHdhcm4gaW52YWxpZChcImJyZWFrcG9pbnQtcmFuZ2VcIiwkYnAtbWluLCRicC1tYXgpICsgd3JvbmctdHlwZShcInZhbGlkIGJyZWFrcG9pbnQgbmFtZVwiLCRicC1taW4pICsgXCIuIFwiICsgJGJwLXJhbmdlLWxlc3Nvbjtcblx0XHR9XG5cblx0XHRAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkYnAtbWluKVxuXHRcdFx0YW5kIG5vdCBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRicC1tYXgpIHtcblx0XHRcdCRhbGwtaXMtd2VsbDogZmFsc2U7XG5cblx0XHRcdEB3YXJuIGludmFsaWQoXCJicmVha3BvaW50LXJhbmdlXCIsJGJwLW1pbiwkYnAtbWF4KSArIHdyb25nLXR5cGUoXCJ2YWxpZCBicmVha3BvaW50IG5hbWVcIiwkYnAtbWF4KSArIFwiLiBcIiArICRicC1yYW5nZS1sZXNzb247XG5cdFx0fVxuXHR9XG5cblx0QGlmICRicC1taW5cblx0XHRhbmQgbm90ICRicC1tYXgge1xuXHRcdCRhbGwtaXMtd2VsbDogZmFsc2U7XG5cblx0XHRAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkYnAtbWluKSB7XG5cblx0XHRcdEB3YXJuIGludmFsaWQoXCJicmVha3BvaW50LXJhbmdlXCIsJGJwLW1pbikgKyBtaXNzaW5nKDEpICsgJGJwLXJhbmdlLWxlc3Nvbjtcblx0XHR9IEBlbHNlIHtcblxuXHRcdFx0QHdhcm4gaW52YWxpZChcImJyZWFrcG9pbnQtcmFuZ2VcIiwkYnAtbWluKSArIHdyb25nLXR5cGUoXCJ2YWxpZCBicmVha3BvaW50IG5hbWVcIiwkYnAtbWluKSArIFwiLCBhbmQgXCIgKyBtaXNzaW5nKDEpICsgJGJwLXJhbmdlLWxlc3Nvbjtcblx0XHR9XG5cdH1cblxuXHRAaWYgbm90ICRicC1taW4ge1xuXHRcdCRhbGwtaXMtd2VsbDogZmFsc2U7XG5cblx0XHRAd2FybiBpbnZhbGlkKFwiYnJlYWtwb2ludC1yYW5nZVwiKSArIG1pc3NpbmcoMikgKyAkYnAtcmFuZ2UtbGVzc29uO1xuXHR9XG5cblx0QGlmICRhbGwtaXMtd2VsbCA9PSB0cnVlIHtcblxuXHRcdEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IGJwLWF0dHJpYnV0ZSgkYnAtbWluLCBtaW4td2lkdGgpKSBhbmQgKG1heC13aWR0aDogYnAtYXR0cmlidXRlKCRicC1tYXgsIG1pbi13aWR0aCkpIHtcblx0XHRcdEBjb250ZW50O1xuXHRcdH1cblx0fVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBncmlkXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaGUgXCJncmlkXCIgbWl4aW4gYWxsb3dzIHRoZSB1c2VyIHRvIGlkZW50aWZ5IHRoZSBjbGFzcyBvZlxuLy8gdGhlIHByaW1hcnkgY29udGFpbmluZyBlbGVtZW50IGluIHdoaWNoIHRoZWlyIGdyaWQtYWxpZ25lZFxuLy8gY29udGVudCBsaXZlcy4gVGhlIG1peGluIHVzZXMgYWxsIG9mIHRoZSBpbmZvIGZyb20gdGhlXG4vLyBwcm9wb3J0aW9uYWwgd2lkdGggYW5kIGJyZWFrcG9pbnQgdmFyaWFibGVzIGRlZmluZWQgYXQgdGhlXG4vLyB0b3Agb2YgXCJtYWluLnNjc3NcIiB0byBzcGVjaWZ5IGFwcHJvcHJpYXRlIG1hcmdpbiB3aWR0aHMgZm9yXG4vLyB0aGUgZ3JpZCBjb250YWluZXIgYXQgZWFjaCBicmVha3BvaW50LiBPcHRpb25hbGx5IGluY2x1ZGluZ1xuLy8gXCJvdmVybGF5XCIgYXMgYSBzZWNvbmQgYXJndW1lbnQgd2lsbCBhZGQgYSB0cmFuc2x1Y2VudCBncmlkXG4vLyBvdmVybGF5IG9uIHRvcCBvZiB0aGUgZ3JpZCBjb250YWluZXIgd2hpY2ggY2FuIGJlIHVzZWQgaW5cbi8vIHByb2R1Y3Rpb24gdG8gZW5zdXJlIHRoYXQgeW91ciBkZXNpZ24gaXMgYWxpZ25pbmcgdG8gdGhlXG4vLyBncmlkIGFzIGludGVuZGVkLlxuLy9cbi8vIEVYQU1QTEU6IElmIFwibWFpbi5zY3NzXCIgZGVmaW5lcyB0d28gYnJlYWtwb2ludHMgYW5kIHRoZVxuLy8gcHJpbWFyeSBncmlkIGNvbnRhaW5lciBoYXMgYSBjbGFzcyBvZiBcImNvbnRlbnRcIi4uLlxuLy9cbi8vIEBpbmNsdWRlIGdyaWQoY29udGVudCk7XG4vL1xuLy8gLi4uY29tcGlsZXMgdG8gc29tZXRoaW5nIGxpa2UgdGhpczpcbi8vXG4vLyBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwKSB7XG4vLyAgIC5jb250ZW50IHtcbi8vICAgICBtYXJnaW46IDAgMy4zODYzOCU7XG4vLyAgIH1cbi8vIH1cbi8vIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMwZW0pIHtcbi8vICAgLmNvbnRlbnQge1xuLy8gICAgIG1hcmdpbjogMCA0LjM2MTk0JTtcbi8vICAgfVxuLy8gfVxuXG4kZ3JpZC1sZXNzb246IFwiQSAnZ3JpZCcgbWl4aW4gY2FsbCBtdXN0IGluY2x1ZGUgYSB2YWxpZCBjbGFzcyBuYW1lLCBlLmcuICdncmlkKGNvbnRlbnQpOycuIEl0IG1heSBvcHRpb25hbGx5IGluY2x1ZGUgYSBzZWNvbmQgYXJndW1lbnQgb2YgJ292ZXJsYXknIChlLmcuICdncmlkKGNvbnRlbnQsb3ZlcmxheSk7JykgdG8gY3JlYXRlIGEgdHJhbnNsdWNlbnQgZ3JpZCBvdmVybGF5IG9uIHRvcCBvZiB0aGUgZ3JpZCBjb250YWluZXIuXCI7XG5cbkBtaXhpbiBncmlkKCRjbGFzczpudWxsLCAkb3ZlcmxheTpudWxsKSB7XG5cdCRhbGwtaXMtd2VsbDogdHJ1ZTtcblxuXHRAaWYgbm90ICRjbGFzcyB7XG5cdFx0JGFsbC1pcy13ZWxsOiBmYWxzZTtcblxuXHRcdEB3YXJuIGludmFsaWQoXCJncmlkXCIpICsgbWlzc2luZygxKSArICRncmlkLWxlc3Nvbjtcblx0fVxuXG5cdEBpZiAkb3ZlcmxheSAhPSBcIm92ZXJsYXlcIlxuXHRcdGFuZCAkb3ZlcmxheSAhPSBudWxsIHtcblx0XHQkYWxsLWlzLXdlbGw6IGZhbHNlO1xuXG5cdFx0QHdhcm4gaW52YWxpZChcImdyaWRcIiwkY2xhc3MsJG92ZXJsYXkpICsgb3B0aW9uYWwoXCJzZWNvbmRcIiwkb3ZlcmxheSxcIm92ZXJsYXlcIikgKyAkZ3JpZC1sZXNzb247XG5cdH1cblxuXHRAaWYgJGFsbC1pcy13ZWxsID09IHRydWUge1xuXG5cdFx0LiN7JGNsYXNzfSB7XG5cblx0XHRcdEBlYWNoICRicCwgJHZhbHVlIGluICRicmVha3BvaW50cyB7XG5cblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludC1taW4oJGJwKSB7XG5cblx0XHRcdFx0XHRAaWYgbWFwLWhhcy1rZXkobWFwLWdldCgkYnJlYWtwb2ludHMsICRicCksIG1hcmdpbikge1xuXHRcdFx0XHRcdFx0bWFyZ2luOiAwIGNvbHNwYW4oYnAtYXR0cmlidXRlKCRicCwgbWFyZ2luKSwgd2lkdGgoYnAtYXR0cmlidXRlKCRicCwgY29scykpICsgKGJwLWF0dHJpYnV0ZSgkYnAsIG1hcmdpbikgKiAyKSk7XG5cdFx0XHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdFx0XHRtYXJnaW46IDAgY29sc3BhbihtLCBicC1hdHRyaWJ1dGUoJGJwLCBjb2xzKSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIElmIHRoZXJlIGlzIGEgbWF4LXdpZHRoLFxuXHRcdFx0Ly8gY3JlYXRlIGEgYnJlYWtwb2ludCB3aXRoIGEgbWluLXdpZHRoIGVxdWFsIHRvOlxuXHRcdFx0Ly8gKCgobWFyIC8gd2lkdGgpICogbWF4LXdpZHRoKSAqIDIpICsgbWF4LXdpZHRoXG5cblx0XHRcdEBpZiAkbWF4LXdpZHRoIHtcblx0XHRcdFx0bWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuXHRcdFx0XHQkYnAtZmluYWw6IG50aChtYXAta2V5cygkYnJlYWtwb2ludHMpLCAtMSk7IC8vIE5hbWUgb2YgdGhlIHdpZGVzdCBicmVha3BvaW50XG5cblx0XHRcdFx0QGlmIG1hcC1oYXMta2V5KG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnAtZmluYWwpLCBtYXJnaW4pIHtcblxuXHRcdFx0XHRcdEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICgoKChicC1hdHRyaWJ1dGUoJGJwLWZpbmFsLCBtYXJnaW4pIC8gd2lkdGgoYnAtYXR0cmlidXRlKCRicC1maW5hbCwgY29scykpKSAqICRtYXgtd2lkdGgpICogMikgKyAkbWF4LXdpZHRoKSkge1xuXHRcdFx0XHRcdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IEBlbHNlIHtcblxuXHRcdFx0XHRcdEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICgoKCgkbWFyIC8gd2lkdGgoYnAtYXR0cmlidXRlKCRicC1maW5hbCwgY29scykpKSAqICRtYXgtd2lkdGgpICogMikgKyAkbWF4LXdpZHRoKSkge1xuXHRcdFx0XHRcdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdEBpZiAkb3ZlcmxheSA9PSBvdmVybGF5IHtcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHQkZ2M6IHJnYmEoJGdyaWQtY29sb3IsIDAuMSk7XG5cdFx0XHRcdCRncDogcmdiYSgkZ3JpZC1jb2xvciwgMC4yKTtcblx0XHRcdFx0JGdnOiByZ2JhKCRncmlkLWNvbG9yLCAwKTtcblxuXHRcdFx0XHQmOjpiZWZvcmUge1xuXHRcdFx0XHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRcdHRvcDogMDtcblx0XHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdFx0XHR6LWluZGV4OiAxMDA7XG5cdFx0XHRcdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cblx0XHRcdFx0XHRAZWFjaCAkYnAsICR2YWx1ZSBpbiAkYnJlYWtwb2ludHMge1xuXG5cdFx0XHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50LW1pbigkYnApIHtcblx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJGdwLCAkZ3AgY29sc3BhbihwLCBicC1hdHRyaWJ1dGUoJGJwLCBjb2xzKSksICRnYyBjb2xzcGFuKHAsIGJwLWF0dHJpYnV0ZSgkYnAsIGNvbHMpKSwgJGdjIGNvbHNwYW4oMSwgYnAtYXR0cmlidXRlKCRicCwgY29scykpIC0gY29sc3BhbihwLCBicC1hdHRyaWJ1dGUoJGJwLCBjb2xzKSksICRncCBjb2xzcGFuKDEsIGJwLWF0dHJpYnV0ZSgkYnAsIGNvbHMpKSAtIGNvbHNwYW4ocCwgYnAtYXR0cmlidXRlKCRicCwgY29scykpLCAkZ3AgY29sc3BhbigxLCBicC1hdHRyaWJ1dGUoJGJwLCBjb2xzKSksICRnZyBjb2xzcGFuKDEsIGJwLWF0dHJpYnV0ZSgkYnAsIGNvbHMpKSwgJGdnIGNvbHNwYW4oMSwgYnAtYXR0cmlidXRlKCRicCwgY29scykpICsgY29sc3BhbihnLCBicC1hdHRyaWJ1dGUoJGJwLCBjb2xzKSkpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIl19 */
