.mdl-shadow--2dp,.responsive-block{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.mdl-shadow--3dp{box-shadow:0 3px 4px 0 rgba(0,0,0,.14),0 3px 3px -2px rgba(0,0,0,.2),0 1px 8px 0 rgba(0,0,0,.12)}.mdl-shadow--4dp{box-shadow:0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12),0 2px 4px -1px rgba(0,0,0,.2)}.mdl-shadow--6dp{box-shadow:0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12),0 3px 5px -1px rgba(0,0,0,.2)}.mdl-shadow--8dp{box-shadow:0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12),0 5px 5px -3px rgba(0,0,0,.2)}.mdl-shadow--16dp{box-shadow:0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12),0 8px 10px -5px rgba(0,0,0,.2)}.mdl-shadow--24dp{box-shadow:0 9px 46px 8px rgba(0,0,0,.14),0 11px 15px -7px rgba(0,0,0,.12),0 24px 38px 3px rgba(0,0,0,.2)}code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#a67f59;background:rgba(255,255,255,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.f-color-chip{height:60px;width:60px;border:1px solid rgba(0,0,0,.5);border-radius:50%;margin-bottom:16px}.f-color-chip__text{text-align:center}.f-color-chip__border{text-align:center;border-width:2px;border-style:solid}.f-color-chips>div{margin-right:32px}.f-color-chip-small{height:30px;width:30px;border:1px solid rgba(0,0,0,.5);border-radius:50%;margin-bottom:10px}.f-color-chip-small__text{text-align:center}.f-color{margin-bottom:24px}.f-color-chip-text{font-size:70px;line-height:1.4;font-weight:500}.f-color-chip-shape{height:30px;width:30px;margin-bottom:24px}.f-controls{margin-right:8px}.f-controls .f-control{display:block;float:left;text-align:center;width:33.33333%;margin:0;padding:1rem 0}.f-controls .mdl-switch{margin:0 32px;width:auto}.f-controls .mdl-switch span{align-items:center;flex-direction:row;display:flex}.f-controls .mdl-switch span i{margin-left:4px}.f-control{display:inline-block;cursor:pointer;margin-left:.66rem}.f-control svg{width:.875rem;height:.875rem}.f-control svg use,.f-item-controls .f-control use{fill:color(light)}.f-control-bar{padding:1rem 0}.f-menu-toggle{cursor:pointer;vertical-align:middle}.f-menu-toggle svg{display:block;float:left;margin-bottom:-1px}.f-item-group{margin-bottom:32px;border-bottom:1px solid color(light)}.f-item-code{overflow:hidden;position:relative}.f-item-preview .ric-footer__container,.f-item-preview .ric-header__container,.f-item-preview .ric-metaheader__container{width:100%!important}.f-item-code-container{padding-top:2rem}.f-item-border-bottom{border-bottom:1px solid color(light)}.f-item-heading-group{vertical-align:middle}.f-item-controls,.f-item-heading{display:inline-block;vertical-align:middle}.f-item-heading{line-height:1}.f-item-controls{margin-left:.5rem}.f-item-controls .f-control{width:.875rem;height:.875rem;display:block;float:left}.f-item-controls .f-control:hover use{fill:color(normal)}.f-item-hidden{display:none}.f-item-notes{color:rgba(0,0,0,.54);margin-bottom:32px}.f-menu{z-index:1;flex:0 0 180px;margin-right:16px;order:0;overflow:auto}@media only screen and (max-width:960px){.f-menu{flex-direction:row;padding-top:0;overflow:none;position:static;border-bottom:solid 1px rgba(0,0,0,.15);overflow-x:scroll}}.f-menu a{display:block;padding:4px 32px;color:rgba(0,0,0,.87);font-weight:400}.f-menu a:hover,.overview-principle>div span{color:rgba(0,0,0,.54)}.f-menu a.f-active{box-shadow:inset .25rem 0 0 0 #0096d8}@media only screen and (max-width:960px){.f-menu a:not(.f-menu__heading){display:none}}.f-menu .f-menu__heading{padding-left:16px;font-weight:500}.f-menu .f-menu__heading:hover,.f-menu a{text-decoration:none}.f-menu .f-menu-section{margin:8px 0}.f-typo-item{margin:8px 0;padding:8px 0}.f-typo-item:hover{background-color:rgba(0,0,0,.1)}.typo-block{background-color:rgba(0,0,0,.15)}.typo-image-block{margin-top:20px;height:200px;width:400px;background-color:rgba(0,0,0,.08)}code{margin-left:1px;margin-right:1px;-webkit-font-smoothing:auto;border-radius:2px;padding:4px 0}code,pre[class*=language-]{background-color:#fff}pre[class*=language-]:hover{background-color:#fafafa}pre[class*=language-] code{background-color:transparent}.overview-principle{text-align:center;margin:16px 0}.overview-principle>div{width:120px;margin:0 16px}.overview-principle>div span:first-of-type{color:rgba(0,0,0,.87);font-size:16px;margin-top:8px}.container-typography{margin-right:32px}.header-brand{padding:16px}.page-content{position:relative;max-width:1200px;margin:auto}.page-content-container{margin:32px 0 64px}.media-queries-ui-container{margin-right:8px;margin-top:32px}.mdl-data-table tbody tr.hovered{background-color:#eee}.media-query-ui{height:20px;margin-bottom:16px;position:relative;padding:0 8px}.media-query-ui span{font-size:12px}.media-query-ui-inside{background-color:#c6ecff;border-right:4px solid #48a7f3}.media-query-ui-inside.hovered,.media-query-ui-inside:hover{background-color:#92cbf8}.media-query-ui-outside{background-color:#f2d8af}.media-query-ui-outside-1{border-right:4px solid #f37a22;margin-right:8px}.media-query-ui-outside-2{border-left:4px solid #f37a22;margin-left:8px}.media-query-ui-outside.hovered,.media-query-ui-outside:hover{background-color:#ffc16a}.media-query-ui-between{margin:0 8px;background-color:#cce9ab;border-left:4px solid #6a9e3f;border-right:4px solid #6a9e3f}.media-query-ui-between.hovered,.media-query-ui-between:hover{background-color:#b3dd82}.responsive-container{margin-top:32px}.responsive-container .mdl-radio{margin:0 8px}.responsive-block{height:600px;max-height:550px;margin:32px auto 0;width:100%;background-color:#fff;border:1px solid #d3d3d3}@media only screen and (max-width:600px){.responsive-block{margin-right:0;height:60vw}}.responsive-block>div{height:100%}.responsive-block-mobile_s{width:35%}.responsive-block-mobile_m{width:45%;height:600px;max-height:600px}.responsive-block-mobile_l{width:55%;height:650px;max-height:650px}.responsive-block-tablet{width:80%;height:800px;max-height:800px}.responsive-block-laptop{width:92%}.responsive-block-laptop .responsive-block-content,.responsive-block-laptop_4k,.responsive-block-laptop_l{width:100%}.responsive-block-laptop .responsive-block-menu{width:20%;height:100%}.responsive-block-laptop_l .responsive-block-content{width:80%;margin:auto}.responsive-block-laptop_l .responsive-block-menu{width:20%;height:100%}.responsive-block-laptop_4k .responsive-block-content{width:50%;margin:auto}.responsive-block-laptop_4k .responsive-block-menu{width:20%;height:100%}.responsive-block .center-text{display:flex;align-items:center;justify-content:center}.responsive-block .center-text span{max-width:50%}.responsive-block-metadata{background-color:#b39ddb;height:25px}.responsive-block-header{background-color:#90caf9;height:60px}.responsive-block-main{background-color:#ffcc80}.responsive-block-menu{background-color:#a5d6a7;height:40px}.responsive-block-footer{background-color:#e6ee9c;height:25px}.responsive-block-footer-meta{background-color:#ef9a9a;height:50px}.icons-container>div{margin:8px}.icons-container i.material-icons{width:48px;height:48px;line-height:48px;text-align:center}.footer-bar{background-color:#e4e4e4;padding:8px 16px}.footer-bar>div{max-width:1200px;margin:auto}.footer-bar .metaheader-footer{margin-bottom:12px}.footer-bar .metaheader-footer>div:not(:first-child){margin-top:8px}.codepen-button{z-index:1000;cursor:pointer;background-image:url(../images/codepen-logo.png);background-repeat:no-repeat;background-position:5px center;background-size:26px 26px;position:absolute;top:0;right:-140px;height:46px;display:inline-block;opacity:.6;overflow:hidden;box-sizing:border-box;white-space:nowrap;color:#000;padding:13px 15px 5px 50px;transition:right .5s,background-color .5s,opacity .5s,background-size .3s}.codepen-button::after{content:'Open in CodePen'}.codepen-button:hover{opacity:1;right:0;background-size:36px 36px;background-color:#eee;border-bottom-left-radius:10px}.docs-layout pre[class*=language-markup]{padding-right:0}.docs-layout pre[class*=language-markup].codepen-button-disabled:not code{padding-right:50px}.codepen-button-disabled .codepen-button{display:none}.layout.horizontal,.layout.horizontal-reverse,.layout.vertical,.layout.vertical-reverse{display:flex}.layout.inline{display:inline-flex}.layout.horizontal{flex-direction:row}.layout.horizontal-reverse{flex-direction:row-reverse}.layout.vertical{flex-direction:column}.layout.vertical-reverse{flex-direction:column-reverse}.layout.wrap{flex-wrap:wrap}.layout.no-wrap{flex-wrap:nowrap}.layout.wrap-reverse{flex-wrap:wrap-reverse}.flex-auto{flex:1 1 auto}.flex-none{flex:none}.flex,.flex-1{flex:1}.flex-2{flex:2}.flex-3{flex:3}.flex-4{flex:4}.flex-5{flex:5}.flex-6{flex:6}.flex-7{flex:7}.flex-8{flex:8}.flex-9{flex:9}.flex-10{flex:10}.flex-11{flex:11}.flex-12{flex:12}.layout.start{align-items:flex-start}.layout.center,.layout.center-center{align-items:center}.layout.end{align-items:flex-end}.layout.start-justified{justify-content:flex-start}.center-center,.center-justified{justify-content:center}.end-justified{justify-content:flex-end}.around-justified{justify-content:space-around}.justified{justify-content:space-between}.self-start{-ms-align-self:flex-start;align-self:flex-start}.self-center{-ms-align-self:center;-ms-grid-row-align:center;align-self:center}.self-end{-ms-align-self:flex-end;align-self:flex-end}.self-stretch{-ms-align-self:stretch;-ms-grid-row-align:stretch;align-self:stretch}.block{display:block}[hidden]{display:none!important}.invisible{visibility:hidden!important}.relative{position:relative}.fit{position:absolute;top:0;right:0;bottom:0;left:0}body.fullbleed{margin:0;height:100vh}.scroll{-webkit-overflow-scrolling:touch;overflow:auto}.fixed-bottom,.fixed-left,.fixed-right,.fixed-top{position:fixed}.fixed-top{top:0;left:0;right:0}.fixed-right{top:0;right:0;bottom:0}.fixed-bottom{right:0;bottom:0;left:0}.fixed-left{top:0;bottom:0;left:0}.ric-pagination{margin-bottom:30px}@media screen and (max-width:600px){.ric-pagination{text-align:center}}pre{overflow:auto}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9tZGwvc2hhZG93L19zaGFkb3cuc2NzcyIsIi4uLy4uLy4uL2xpYi9tZGwvX21peGlucy5zY3NzIiwicGFydGlhbHMvX2NvZGUuc2NzcyIsIm1haW4uY3NzIiwicGFydGlhbHMvX2NvbG9yLWNoaXBzLnNjc3MiLCJwYXJ0aWFscy9fY29udHJvbHMuc2NzcyIsInBhcnRpYWxzL19pdGVtLnNjc3MiLCJwYXJ0aWFscy9fbWVudS5zY3NzIiwiLi4vLi4vLi4vbGliL3JpY2FyZG8vbGF5b3V0L19taXhpbnMuc2NzcyIsImZhYnJpY2F0b3Iuc2NzcyIsInBhcnRpYWxzL190eXBvLnNjc3MiLCJjb2RlcGVuLnNjc3MiLCJpcm9uLWZsZXgtbGF5b3V0LnNjc3MiLCJwYWdpbmF0aW9uLnNjc3MiLCJtYWluLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbUJBLGdCLENBQUEsaUIsQ0NvTkUsZ0csQ0RoTkYsZ0IsQ0NxTkUsZ0csQ0RqTkYsZ0IsQ0NzTkUsaUcsQ0RsTkYsZ0IsQ0N1TkUsa0csQ0RuTkYsZ0IsQ0N3TkUsc0csQ0RwTkYsaUIsQ0MwTkUsd0csQ0R0TkYsaUIsQ0M0TkUseUcsQ0NoUUYsc0IsQ0FBQSxxQixDQUVDLFUsQ0FDQSxjLENBQ0Esc0IsQ0FDQSxpRSxDQUNBLGUsQ0FDQSxlLENBQ0EsbUIsQ0FDQSxpQixDQUNBLGdCLENBQ0EsZSxDQUVBLGUsQ0FFQSxVLENBRUEsb0IsQ0FFQSxnQixDQUNBLFksQ0NpWXdDLHVDLENEOVh6QyxzQyxDQUFBLHNDLENBQUEscUMsQ0FFQyxnQixDQUNBLGtCLENDZ1ltQyxrQyxDRDdYcEMsaUMsQ0FBQSxpQyxDQUFBLGdDLENBRUMsZ0IsQ0FDQSxrQixDQUdELGFBQ0Msc0IsQ0FBQSxxQixDQUVDLGdCLENBSEYsQ0FRQSxxQixDQUNDLFcsQ0FDQSxhLENBQ0EsYSxDQUdELGdDLENBQUEscUIsQ0FFQyxrQixDQUlELGdDLENBQ0MsWSxDQUNBLGtCLENBQ0Esa0IsQ0MyWGMsWSxDRHhYZixjLENDdVhjLGMsQ0R2WGQsYSxDQUlDLGEsQ0FHRCxrQixDQUNDLFUsQ0FHRCxVLENBQ0MsVSxDQ3VYVSxjLENBRUcsZSxDQUVBLGMsQ0FIQyxhLENEclhmLGUsQ0N1WGdCLGEsQ0R2WGhCLFUsQ0FPQyxVLENBR0QsZ0IsQ0NxWFksYyxDQURFLFcsQ0FFQyxlLENEdFhmLGUsQ0NtWGlCLGEsQ0Q3V2hCLFUsQ0NzWFUsMkIsQ0FDaUIsb0IsQ0RwWDVCLGEsQ0FBQSxlLENDa1hjLFUsQ0Q3V2IsYSxDQUNBLCtCLENBR0QsYSxDQUFBLGlCLENDaVhrQixjLENEOVdqQixVLENBR0QsZSxDQUNDLGEsQ0FHRCxnQixDQUFBLFksQ0MrV2lCLGUsQ0Q1V2hCLFUsQ0FHRCxXLENBQUEsZ0IsQ0FFQyxlLENBRUQsYSxDQUNDLGlCLENBR0QsYSxDQUNDLFcsQ0V4SUQsYSxDQUNJLFcsQ0FDQSxVLENBQ0EsK0IsQ0FDQSxpQixDQUNBLGtCLENBRUosbUIsQ0FDSSxpQixDQUVKLHFCLENBQ0ksaUIsQ0FDQSxnQixDQUNBLGtCLENBRUosa0IsQ0FFUSxpQixDQUdSLG1CLENBQ0ksVyxDQUNBLFUsQ0FDQSwrQixDQUNBLGlCLENBQ0Esa0IsQ0FFSix5QixDQUNJLGlCLENBRUosUSxDQUNJLGtCLENBRUosa0IsQ0FDSSxjLENBQ0EsZSxDQUNBLGUsQ0FFSixtQixDQUNJLFcsQ0FDQSxVLENBQ0Esa0IsQ0N2Q0osVyxDQUNJLGdCLENBREosc0IsQ0FJRSxhLENBQ0EsVSxDQUNBLGlCLENBQ0EsZSxDQUNBLFEsQ0FDQSxjLENBVEYsdUIsQ0FhRSxhLENBQ0EsVSxDQWRGLDRCLENBbUJHLGtCLENBQ0Esa0IsQ0FDQSxZLENBckJILDhCLENBaUJJLGUsQ0FTSixVLENBQ0Msb0IsQ0FDQSxjLENBQ0Esa0IsQ0FIRCxjLENBTUUsYSxDQUNBLGMsQ0FQRixrQixDQ1dBLCtCLENEREcsaUIsQ0FLSCxjLENBQ0MsYyxDQUdELGMsQ0FDQyxjLENBQ0EscUIsQ0FGRCxrQixDQUtFLGEsQ0FDQSxVLENBQ0Esa0IsQ0N0REYsYSxDQUNDLGtCLENBQ0Esb0MsQ0FHRCxZLENBQ0csZSxDQUNDLGlCLENBT0osc0MsQ0FBQSxzQyxDQUFBLDBDLENBRUUsb0IsQ0FJRixzQixDQUNDLGdCLENBR0QscUIsQ0FDQyxvQyxDQUdELHFCLENBQ0MscUIsQ0FVRCxnQixDQVBBLGUsQ0FRQyxvQixDQUNBLHFCLENBVEQsZSxDQUdDLGEsQ0FJRCxnQixDQUdDLGlCLENBSEQsMkIsQ0FNRSxhLENBQ0EsYyxDQUNBLGEsQ0FDQSxVLENBVEYscUMsQ0FhSSxrQixDQVVKLGMsQ0FDQyxZLENBR0QsYSxDQUNDLHFCLENBQ0Esa0IsQ0MvREQsTyxDQUNDLFMsQ0FDQSxjLENBQ0MsaUIsQ0FDRCxPLENBQ0EsYSxDQ2tCRyx5Q0R2QkosTyxDQVFFLGtCLENBQ0EsYSxDQUNFLGEsQ0FDRixlLENBQ0MsdUMsQ0FDRCxpQixDQ1VFLENEdkJKLFMsQ0FpQkUsYSxDQUNBLGdCLENBQ0EscUIsQ0FFQSxlLENBckJGLGUsQ0VnQ0EsNEIsQ0ZSRyxxQixDQXhCSCxrQixDQTRCRyxxQyxDQ0xDLHlDRHZCSiwrQixDQWdDSSxZLENDVEEsQ0R2Qkosd0IsQ0F1Q0UsaUIsQ0FDQSxlLENBeENGLDhCLENBQUEsUyxDQTJDRyxvQixDQTNDSCx1QixDQWdERSxZLENHckRGLFksQ0FDSSxZLENBQ0EsYSxDQUZKLGtCLENBSVEsK0IsQ0FHUixXLENBQ0ksZ0MsQ0FFSixpQixDQUNJLGUsQ0FDQSxZLENBQ0EsVyxDQUNBLGdDLENEQ0osSSxDQUNDLGUsQ0FDQSxnQixDQUNBLDJCLENBRUEsaUIsQ0FlQSxhLENBcEJELEksQ0FRQSxxQixDQUNDLHFCLENBREQsMkIsQ0FJRSx3QixDQUpGLDBCLENBT0UsNEIsQ0FPRixtQixDQUNDLGlCLENBQ0EsYSxDQUZELHVCLENBSUUsVyxDQUNBLGEsQ0FMRiwwQyxDQVNJLHFCLENBQ0EsYyxDQUNBLGMsQ0FLSixxQixDQUNDLGlCLENBRUQsYSxDQUNJLFksQ0FFSixhLENBQ0MsaUIsQ0FDQSxnQixDQUNBLFcsQ0FFRCx1QixDQUVDLGtCLENBR0QsMkIsQ0FDQyxnQixDQUNBLGUsQ0FFRCxnQyxDQUNJLHFCLENBRUosZSxDQUNDLFcsQ0FDQSxrQixDQUNFLGlCLENBQ0YsYSxDQUpELG9CLENBTUUsYyxDQU5GLHNCLENBU0Usd0IsQ0FDQSw4QixDQVZGLDhCLENBQUEsNEIsQ0FZRyx3QixDQVpILHVCLENBZ0JFLHdCLENBaEJGLHlCLENBa0JHLDhCLENBQ0EsZ0IsQ0FuQkgseUIsQ0FzQkcsNkIsQ0FDQSxlLENBdkJILCtCLENBQUEsNkIsQ0EwQkcsd0IsQ0ExQkgsdUIsQ0E4QkUsWSxDQUNBLHdCLENBQ0EsNkIsQ0FDQSw4QixDQWpDRiwrQixDQUFBLDZCLENBbUNHLHdCLENBS0gscUIsQ0FDQyxlLENBREQsZ0MsQ0FHRSxZLENBSUYsaUIsQ0FFQyxZLENBQ0EsZ0IsQ0FDQSxrQixDQUNBLFUsQ0FDQSxxQixDQUNBLHdCLENEckhHLHlDQzhHSixpQixDQVNFLGMsQ0FDQSxXLENEeEhFLENDOEdKLHFCLENBYUUsVyxDQWJGLDBCLENBZ0JFLFMsQ0FoQkYsMEIsQ0FtQkUsUyxDQUNBLFksQ0FDQSxnQixDQXJCRiwwQixDQXdCRSxTLENBQ0EsWSxDQUNBLGdCLENBMUJGLHdCLENBNkJFLFMsQ0FDQSxZLENBQ0EsZ0IsQ0EvQkYsd0IsQ0FrQ0UsUyxDQWxDRixrRCxDQUFBLDJCLENBQUEsMEIsQ0FvQ0csVSxDQXBDSCwrQyxDQXVDRyxTLENBQ0EsVyxDQXhDSCxvRCxDQThDRyxTLENBQ0EsVyxDQS9DSCxpRCxDQWtERyxTLENBQ0EsVyxDQW5ESCxxRCxDQXlERyxTLENBQ0EsVyxDQTFESCxrRCxDQTZERyxTLENBQ0EsVyxDQTlESCw4QixDQWtFSSxZLENBQ0Ysa0IsQ0FDQSxzQixDQXBFRixtQyxDQXNFSyxhLENBdEVMLDBCLENBMEVFLHdCLENBQ0EsVyxDQTNFRix3QixDQThFRSx3QixDQUNBLFcsQ0EvRUYsc0IsQ0FrRkUsd0IsQ0FsRkYsc0IsQ0FxRkUsd0IsQ0FDQSxXLENBdEZGLHdCLENBeUZFLHdCLENBQ0EsVyxDQTFGRiw2QixDQTRGRyx3QixDQUNBLFcsQ0FJSCxvQixDQUVFLFUsQ0FGRixpQyxDQUtFLFUsQ0FDQSxXLENBQ0EsZ0IsQ0FDQSxpQixDQUlGLFcsQ0FDQyx3QixDQUNBLGdCLENBRkQsZSxDQUtFLGdCLENBQ0EsVyxDQU5GLDhCLENBU0Usa0IsQ0FURixvRCxDQVdHLGMsQ0VsUEgsZSxDQUNFLFksQ0FDQSxjLENBQ0EsZ0QsQ0FDQSwyQixDQUNBLDhCLENBQ0EseUIsQ0FDQSxpQixDQUNBLEssQ0FDQSxZLENBQ0EsVyxDQUNBLG9CLENBQ0EsVSxDQUNBLGUsQ0FDQSxxQixDQUNBLGtCLENBQ0EsVSxDQUNBLDBCLENBQ0EseUUsQ0FFRixzQixDQUNFLHlCLENBRUYscUIsQ0FDRSxTLENBQ0EsTyxDQUNBLHlCLENBQ0EscUIsQ0FDQSw4QixDQUVGLHdDLENBQ0UsZSxDQUVGLHlFLENBQ0Usa0IsQ0FFRix3QyxDQUNFLFksQ0N0Q0Ysa0IsQ0FBQSwwQixDVHM0QjJCLGdCLENBQ1Ysd0IsQ1NqNEJiLFksQ0FHSixjLENBR0ksbUIsQ0FHSixrQixDQUdJLGtCLENBR0osMEIsQ0FHSSwwQixDQUdKLGdCLENBR0kscUIsQ0FHSix3QixDQUdJLDZCLENBR0osWSxDQUdJLGMsQ0FHSixlLENBR0ksZ0IsQ0FHSixvQixDQUdJLHNCLENBR0osVSxDQUdJLGEsQ0FHSixVLENBR0ksUyxDQUdKLEssQ0FBQSxPLENBSUksTSxDQUdKLE8sQ0FHSSxNLENBR0osTyxDQUdJLE0sQ0FHSixPLENBR0ksTSxDQUdKLE8sQ0FHSSxNLENBR0osTyxDQUdJLE0sQ0FHSixPLENBR0ksTSxDQUdKLE8sQ0FHSSxNLENBR0osTyxDQUdJLE0sQ0FHSixRLENBR0ksTyxDQUdKLFEsQ0FHSSxPLENBR0osUSxDQUdJLE8sQ0FLSixhLENBR0ksc0IsQ0FHSixjLENBQUEscUIsQ0FJSSxrQixDQUdKLFcsQ0FHSSxvQixDQUtKLHVCLENBR0ksMEIsQ0FHSixjLENBQUEsaUIsQ0FJSSxzQixDQUdKLGMsQ0FHSSx3QixDQUdKLGlCLENBR0ksNEIsQ0FHSixVLENBR0ksNkIsQ0FLSixXLENBQ0kseUIsQ0FFQSxxQixDQUdKLFksQ0FDSSxxQixDQUVBLHlCLENBQUEsaUIsQ0FHSixTLENBQ0ksdUIsQ0FFQSxtQixDQUdKLGEsQ0FDSSxzQixDQUVBLDBCLENBQUEsa0IsQ0FPSixNLENBQ0ksYSxDVG0yQkosUSxDUzkxQkksc0IsQ0FHSixVLENBQ0ksMkIsQ0FHSixTLENBQ0ksaUIsQ0FHSixJLENBQ0ksaUIsQ0FDQSxLLENBQ0EsTyxDQUNBLFEsQ0FDQSxNLENBR0osYyxDQUNJLFEsQ0FDQSxZLENBR0osTyxDQUNJLGdDLENBQ0EsYSxDQUtKLGEsQ0FBQSxXLENUdXhCWSxZLENBQ0MsVSxDU3B4QlQsYyxDQUdKLFUsQ0FDSSxLLENBQ0EsTSxDQUNBLE8sQ0FHSixZLENBQ0ksSyxDQUNBLE8sQ0FDQSxRLENBR0osYSxDQUNJLE8sQ0FDQSxRLENBQ0EsTSxDQUdKLFcsQ0FDSSxLLENBQ0EsUSxDQUNBLE0sQ0NuU0osZSxDQUNFLGtCLENBQ0Esb0NBRkYsZSxDQUdJLGlCLENBREYsQ0NTRixHLENBQ0UsYSIsImZpbGUiOiJtYWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcblxuLm1kbC1zaGFkb3ctLTJkcCB7XG4gIEBpbmNsdWRlIHNoYWRvdy0yZHAoKTtcbn1cblxuLm1kbC1zaGFkb3ctLTNkcCB7XG4gIEBpbmNsdWRlIHNoYWRvdy0zZHAoKTtcbn1cblxuLm1kbC1zaGFkb3ctLTRkcCB7XG4gIEBpbmNsdWRlIHNoYWRvdy00ZHAoKTtcbn1cblxuLm1kbC1zaGFkb3ctLTZkcCB7XG4gIEBpbmNsdWRlIHNoYWRvdy02ZHAoKTtcbn1cblxuLm1kbC1zaGFkb3ctLThkcCB7XG4gIEBpbmNsdWRlIHNoYWRvdy04ZHAoKTtcbn1cblxuLm1kbC1zaGFkb3ctLTE2ZHAge1xuICBAaW5jbHVkZSBzaGFkb3ctMTZkcCgpO1xufVxuXG4ubWRsLXNoYWRvdy0tMjRkcCB7XG4gIEBpbmNsdWRlIHNoYWRvdy0yNGRwKCk7XG59XG4iLCIvKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKiBUeXBvZ3JhcGh5ICovXG5cbkBtaXhpbiB0eXBvLXByZWZlcnJlZC1mb250KCR1c2VQcmVmZXJyZWQ6IHRydWUpIHtcbiAgQGlmICR1c2VQcmVmZXJyZWQge1xuICAgIGZvbnQtZmFtaWx5OiAkcHJlZmVycmVkX2ZvbnQ7XG4gIH1cbn1cblxuQG1peGluIHR5cG8tZGlzcGxheS00KCRjb2xvckNvbnRyYXN0OiBmYWxzZSwgJHVzZVByZWZlcnJlZDogdHJ1ZSkge1xuICBAaW5jbHVkZSB0eXBvLXByZWZlcnJlZC1mb250KCR1c2VQcmVmZXJyZWQpO1xuICBmb250LXNpemU6IDY0cHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wNGVtO1xuXG4gIEBpZiAkY29sb3JDb250cmFzdCB7XG4gICAgb3BhY2l0eTogMC41NDtcbiAgfVxufVxuXG5AbWl4aW4gdHlwby1kaXNwbGF5LTMoJGNvbG9yQ29udHJhc3Q6IGZhbHNlLCAkdXNlUHJlZmVycmVkOiB0cnVlKSB7XG4gIEBpbmNsdWRlIHR5cG8tcHJlZmVycmVkLWZvbnQoJHVzZVByZWZlcnJlZCk7XG4gIGZvbnQtc2l6ZTogNTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuXG4gIEBpZiAkY29sb3JDb250cmFzdCB7XG4gICAgb3BhY2l0eTogMC41NDtcbiAgfVxufVxuXG5AbWl4aW4gdHlwby1kaXNwbGF5LTIoJGNvbG9yQ29udHJhc3Q6IGZhbHNlLCAkdXNlUHJlZmVycmVkOiB0cnVlKSB7XG4gIEBpbmNsdWRlIHR5cG8tcHJlZmVycmVkLWZvbnQoJHVzZVByZWZlcnJlZCk7XG4gIGZvbnQtc2l6ZTogNDVweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDQ4cHg7XG5cbiAgQGlmICRjb2xvckNvbnRyYXN0IHtcbiAgICBvcGFjaXR5OiAwLjU0O1xuICB9XG59XG5cbkBtaXhpbiB0eXBvLWRpc3BsYXktMSgkY29sb3JDb250cmFzdDogZmFsc2UsICR1c2VQcmVmZXJyZWQ6IHRydWUpIHtcbiAgQGluY2x1ZGUgdHlwby1wcmVmZXJyZWQtZm9udCgkdXNlUHJlZmVycmVkKTtcbiAgZm9udC1zaXplOiAzNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS4xNztcblxuICBAaWYgJGNvbG9yQ29udHJhc3Qge1xuICAgIG9wYWNpdHk6IDAuNTQ7XG4gIH1cbn1cblxuQG1peGluIHR5cG8taGVhZGxpbmUoJGNvbG9yQ29udHJhc3Q6IGZhbHNlLCAkdXNlUHJlZmVycmVkOiB0cnVlKSB7XG4gIEBpbmNsdWRlIHR5cG8tcHJlZmVycmVkLWZvbnQoJHVzZVByZWZlcnJlZCk7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMzM7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG5cbiAgQGlmICRjb2xvckNvbnRyYXN0IHtcbiAgICBvcGFjaXR5OiAwLjg3O1xuICB9XG59XG5cbkBtaXhpbiB0eXBvLXRpdGxlKCRjb2xvckNvbnRyYXN0OiBmYWxzZSwgJHVzZVByZWZlcnJlZDogdHJ1ZSkge1xuICBAaW5jbHVkZSB0eXBvLXByZWZlcnJlZC1mb250KCR1c2VQcmVmZXJyZWQpO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG5cbiAgQGlmICRjb2xvckNvbnRyYXN0IHtcbiAgICBvcGFjaXR5OiAwLjg3O1xuICB9XG59XG5cbkBtaXhpbiB0eXBvLXN1YmhlYWQoJGNvbG9yQ29udHJhc3Q6IGZhbHNlLCAkdXNlUHJlZmVycmVkOiB0cnVlKSB7XG4gIEBpbmNsdWRlIHR5cG8tcHJlZmVycmVkLWZvbnQoJHVzZVByZWZlcnJlZCk7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcblxuICBAaWYgJGNvbG9yQ29udHJhc3Qge1xuICAgIG9wYWNpdHk6IDAuODc7XG4gIH1cbn1cblxuQG1peGluIHR5cG8tc3ViaGVhZC0yKCRjb2xvckNvbnRyYXN0OiBmYWxzZSwgJHVzZVByZWZlcnJlZDogdHJ1ZSkge1xuICBAaW5jbHVkZSB0eXBvLXByZWZlcnJlZC1mb250KCR1c2VQcmVmZXJyZWQpO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuXG4gIEBpZiAkY29sb3JDb250cmFzdCB7XG4gICAgb3BhY2l0eTogMC44NztcbiAgfVxufVxuXG5AbWl4aW4gdHlwby1ib2R5LTIoJGNvbG9yQ29udHJhc3Q6IGZhbHNlLCAkdXNlUHJlZmVycmVkOiBmYWxzZSkge1xuICBAaW5jbHVkZSB0eXBvLXByZWZlcnJlZC1mb250KCR1c2VQcmVmZXJyZWQpO1xuICBmb250LXNpemU6IDE0cHg7XG4gIEBpZiAkdXNlUHJlZmVycmVkIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICB9IEBlbHNlIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuICBsaW5lLWhlaWdodDogMjRweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG5cbiAgQGlmICRjb2xvckNvbnRyYXN0IHtcbiAgICBvcGFjaXR5OiAwLjg3O1xuICB9XG59XG5cbkBtaXhpbiB0eXBvLWJvZHktMSgkY29sb3JDb250cmFzdDogZmFsc2UsICR1c2VQcmVmZXJyZWQ6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIHR5cG8tcHJlZmVycmVkLWZvbnQoJHVzZVByZWZlcnJlZCk7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuXG4gIEBpZiAkY29sb3JDb250cmFzdCB7XG4gICAgb3BhY2l0eTogMC44NztcbiAgfVxufVxuXG5AbWl4aW4gdHlwby1jYXB0aW9uKCRjb2xvckNvbnRyYXN0OiBmYWxzZSwgJHVzZVByZWZlcnJlZDogZmFsc2UpIHtcbiAgQGluY2x1ZGUgdHlwby1wcmVmZXJyZWQtZm9udCgkdXNlUHJlZmVycmVkKTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG5cbiAgQGlmICRjb2xvckNvbnRyYXN0IHtcbiAgICBvcGFjaXR5OiAwLjU0O1xuICB9XG59XG5cbkBtaXhpbiB0eXBvLWJsb2NrcXVvdGUoJGNvbG9yQ29udHJhc3Q6IGZhbHNlLCAkdXNlUHJlZmVycmVkOiB0cnVlKSB7XG4gIEBpbmNsdWRlIHR5cG8tcHJlZmVycmVkLWZvbnQoJHVzZVByZWZlcnJlZCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuXG4gICY6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogLTAuNWVtO1xuICAgIGNvbnRlbnQ6ICfigJwnO1xuICB9XG5cbiAgJjphZnRlciB7XG4gICAgY29udGVudDogJ+KAnSc7XG4gICAgbWFyZ2luLWxlZnQ6IC0wLjA1ZW07XG4gIH1cblxuICBAaWYgJGNvbG9yQ29udHJhc3Qge1xuICAgIG9wYWNpdHk6IDAuNTQ7XG4gIH1cbn1cblxuQG1peGluIHR5cG8tbWVudSgkY29sb3JDb250cmFzdDogZmFsc2UsICR1c2VQcmVmZXJyZWQ6IHRydWUpIHtcbiAgQGluY2x1ZGUgdHlwby1wcmVmZXJyZWQtZm9udCgkdXNlUHJlZmVycmVkKTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG5cbiAgQGlmICRjb2xvckNvbnRyYXN0IHtcbiAgICBvcGFjaXR5OiAwLjg3O1xuICB9XG59XG5cbkBtaXhpbiB0eXBvLWJ1dHRvbigkY29sb3JDb250cmFzdDogZmFsc2UsICR1c2VQcmVmZXJyZWQ6IHRydWUpIHtcbiAgQGluY2x1ZGUgdHlwby1wcmVmZXJyZWQtZm9udCgkdXNlUHJlZmVycmVkKTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG5cbiAgQGlmICRjb2xvckNvbnRyYXN0IHtcbiAgICBvcGFjaXR5OiAwLjg3O1xuICB9XG59XG5cbkBtaXhpbiB0eXBvLWljb24oKSB7XG4gIGZvbnQtZmFtaWx5OiAnTWF0ZXJpYWwgSWNvbnMnO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xuICBmb250LWZlYXR1cmUtc2V0dGluZ3M6ICdsaWdhJztcbiAgLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3M6ICdsaWdhJztcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG59XG5cbi8qIFNoYWRvd3MgKi9cblxuLy8gRm9jdXMgc2hhZG93IG1peGluLlxuQG1peGluIGZvY3VzLXNoYWRvdygpIHtcbiAgYm94LXNoYWRvdzogMCAwIDhweCByZ2JhKDAsMCwwLC4xOCksMCA4cHggMTZweCByZ2JhKDAsMCwwLC4zNik7XG59XG5cbkBtaXhpbiBzaGFkb3ctMmRwKCkge1xuICBib3gtc2hhZG93OiAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsICRzaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHkpLFxuICAgICAgICAgICAgICAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsICRzaGFkb3cta2V5LXVtYnJhLW9wYWNpdHkpLFxuICAgICAgICAgICAgICAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsICRzaGFkb3ctYW1iaWVudC1zaGFkb3ctb3BhY2l0eSk7XG59XG5AbWl4aW4gc2hhZG93LTNkcCgpIHtcbiAgYm94LXNoYWRvdzogMCAzcHggNHB4IDAgcmdiYSgwLCAwLCAwLCAkc2hhZG93LWtleS1wZW51bWJyYS1vcGFjaXR5KSxcbiAgICAgICAgICAgICAgMCAzcHggM3B4IC0ycHggcmdiYSgwLCAwLCAwLCAkc2hhZG93LWtleS11bWJyYS1vcGFjaXR5KSxcbiAgICAgICAgICAgICAgMCAxcHggOHB4IDAgcmdiYSgwLCAwLCAwLCAkc2hhZG93LWFtYmllbnQtc2hhZG93LW9wYWNpdHkpO1xufVxuQG1peGluIHNoYWRvdy00ZHAoKSB7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDVweCAwIHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSksXG4gICAgICAgICAgICAgIDAgMXB4IDEwcHggMCByZ2JhKDAsIDAsIDAsICRzaGFkb3ctYW1iaWVudC1zaGFkb3ctb3BhY2l0eSksXG4gICAgICAgICAgICAgIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1rZXktdW1icmEtb3BhY2l0eSk7XG59XG5AbWl4aW4gc2hhZG93LTZkcCgpIHtcbiAgYm94LXNoYWRvdzogMCA2cHggMTBweCAwIHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSksXG4gICAgICAgICAgICAgIDAgMXB4IDE4cHggMCByZ2JhKDAsIDAsIDAsICRzaGFkb3ctYW1iaWVudC1zaGFkb3ctb3BhY2l0eSksXG4gICAgICAgICAgICAgIDAgM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1rZXktdW1icmEtb3BhY2l0eSk7XG59XG5AbWl4aW4gc2hhZG93LThkcCgpIHtcbiAgYm94LXNoYWRvdzogMCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAkc2hhZG93LWtleS1wZW51bWJyYS1vcGFjaXR5KSxcbiAgICAgICAgICAgICAgMCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAkc2hhZG93LWFtYmllbnQtc2hhZG93LW9wYWNpdHkpLFxuICAgICAgICAgICAgICAwIDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsICRzaGFkb3cta2V5LXVtYnJhLW9wYWNpdHkpO1xufVxuXG5AbWl4aW4gc2hhZG93LTE2ZHAoKSB7XG4gIGJveC1zaGFkb3c6IDAgMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsICRzaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHkpLFxuICAgICAgICAgICAgICAwICA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAkc2hhZG93LWFtYmllbnQtc2hhZG93LW9wYWNpdHkpLFxuICAgICAgICAgICAgICAwICA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1rZXktdW1icmEtb3BhY2l0eSk7XG59XG5cbkBtaXhpbiBzaGFkb3ctMjRkcCgpIHtcbiAgYm94LXNoYWRvdzogMCAgOXB4IDQ2cHggIDhweCByZ2JhKDAsIDAsIDAsICRzaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHkpLFxuICAgICAgICAgICAgICAwIDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1hbWJpZW50LXNoYWRvdy1vcGFjaXR5KSxcbiAgICAgICAgICAgICAgMCAyNHB4IDM4cHggIDNweCByZ2JhKDAsIDAsIDAsICRzaGFkb3cta2V5LXVtYnJhLW9wYWNpdHkpO1xufVxuXG4vKiBBbmltYXRpb25zICovXG5cbkBtaXhpbiBtYXRlcmlhbC1hbmltYXRpb24tZmFzdC1vdXQtc2xvdy1pbigkZHVyYXRpb246MC4ycykge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkZHVyYXRpb247XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkYW5pbWF0aW9uLWN1cnZlLWZhc3Qtb3V0LXNsb3ctaW47XG59XG5cbkBtaXhpbiBtYXRlcmlhbC1hbmltYXRpb24tbGluZWFyLW91dC1zbG93LWluKCRkdXJhdGlvbjowLjJzKSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246ICRkdXJhdGlvbjtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICRhbmltYXRpb24tY3VydmUtbGluZWFyLW91dC1zbG93LWluO1xufVxuXG5AbWl4aW4gbWF0ZXJpYWwtYW5pbWF0aW9uLWZhc3Qtb3V0LWxpbmVhci1pbigkZHVyYXRpb246MC4ycykge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkZHVyYXRpb247XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkYW5pbWF0aW9uLWN1cnZlLWZhc3Qtb3V0LWxpbmVhci1pbjtcbn1cblxuQG1peGluIG1hdGVyaWFsLWFuaW1hdGlvbi1kZWZhdWx0KCRkdXJhdGlvbjowLjJzKSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246ICRkdXJhdGlvbjtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICRhbmltYXRpb24tY3VydmUtZGVmYXVsdDtcbn1cblxuLyogRGlhbG9nICovXG5cbkBtaXhpbiBkaWFsb2ctd2lkdGgoJHVuaXRzOjUpIHtcbiAgQGlmKHR5cGVfb2YoJHVuaXRzKSAhPSAnbnVtYmVyJykge1xuICAgIEBlcnJvciBcIlRoZSB1bml0IGdpdmVuIHRvIGRpYWxvZy13aWR0aCBzaG91bGQgYmUgYSBudW1iZXIuXCI7XG4gIH1cbiAgLy8gNTZkcCBpcyB0aGUgYmFzZSB1bml0IHdpZHRoIGZvciBEaWFsb2dzLlxuICAvLyBXaXRoIDUgdW5pdHMgYmVpbmcgdGhlIG51bWJlciBvZiB1bml0cyBmb3IgYSBtb2JpbGUgZGV2aWNlLlxuICAvLyBodHRwczovL2dvby5nbC9zSzJPNW9cbiAgd2lkdGg6ICR1bml0cyAqIDU2cHg7XG59XG4iLCIvKiBodHRwOi8vcHJpc21qcy5jb20vZG93bmxvYWQuaHRtbD90aGVtZXM9cHJpc20mbGFuZ3VhZ2VzPW1hcmt1cCtjc3MrY2xpa2UramF2YXNjcmlwdCAqL1xuLyoqXG4gKiBwcmlzbS5qcyBkZWZhdWx0IHRoZW1lIGZvciBKYXZhU2NyaXB0LCBDU1MgYW5kIEhUTUxcbiAqIEJhc2VkIG9uIGRhYmJsZXQgKGh0dHA6Ly9kYWJibGV0LmNvbSlcbiAqIEBhdXRob3IgTGVhIFZlcm91XG4gKi9cblxuY29kZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0sXG5wcmVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdIHtcblx0Y29sb3I6IGJsYWNrO1xuXHRiYWNrZ3JvdW5kOiBub25lO1xuXHR0ZXh0LXNoYWRvdzogMCAxcHggd2hpdGU7XG5cdGZvbnQtZmFtaWx5OiBDb25zb2xhcywgTW9uYWNvLCAnQW5kYWxlIE1vbm8nLCAnVWJ1bnR1IE1vbm8nLCBtb25vc3BhY2U7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdHdoaXRlLXNwYWNlOiBwcmU7XG5cdHdvcmQtc3BhY2luZzogbm9ybWFsO1xuXHR3b3JkLWJyZWFrOiBub3JtYWw7XG5cdHdvcmQtd3JhcDogbm9ybWFsO1xuXHRsaW5lLWhlaWdodDogMS41O1xuXG5cdC1tb3otdGFiLXNpemU6IDQ7XG5cdC1vLXRhYi1zaXplOiA0O1xuXHR0YWItc2l6ZTogNDtcblxuXHQtd2Via2l0LWh5cGhlbnM6IG5vbmU7XG5cdC1tb3otaHlwaGVuczogbm9uZTtcblx0LW1zLWh5cGhlbnM6IG5vbmU7XG5cdGh5cGhlbnM6IG5vbmU7XG59XG5cbnByZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl06Oi1tb3otc2VsZWN0aW9uLCBwcmVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdIDo6LW1vei1zZWxlY3Rpb24sXG5jb2RlW2NsYXNzKj1cImxhbmd1YWdlLVwiXTo6LW1vei1zZWxlY3Rpb24sIGNvZGVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdIDo6LW1vei1zZWxlY3Rpb24ge1xuXHR0ZXh0LXNoYWRvdzogbm9uZTtcblx0YmFja2dyb3VuZDogI2IzZDRmYztcbn1cblxucHJlW2NsYXNzKj1cImxhbmd1YWdlLVwiXTo6c2VsZWN0aW9uLCBwcmVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdIDo6c2VsZWN0aW9uLFxuY29kZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl06OnNlbGVjdGlvbiwgY29kZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0gOjpzZWxlY3Rpb24ge1xuXHR0ZXh0LXNoYWRvdzogbm9uZTtcblx0YmFja2dyb3VuZDogI2IzZDRmYztcbn1cblxuQG1lZGlhIHByaW50IHtcblx0Y29kZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0sXG5cdHByZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0ge1xuXHRcdHRleHQtc2hhZG93OiBub25lO1xuXHR9XG59XG5cbi8qIENvZGUgYmxvY2tzICovXG5wcmVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdIHtcblx0cGFkZGluZzogMWVtO1xuXHRtYXJnaW46IC41ZW0gMDtcblx0b3ZlcmZsb3c6IGF1dG87XG59XG5cbjpub3QocHJlKSA+IGNvZGVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdLFxucHJlW2NsYXNzKj1cImxhbmd1YWdlLVwiXSB7XG5cdGJhY2tncm91bmQ6ICNmNWYyZjA7XG59XG5cbi8qIElubGluZSBjb2RlICovXG46bm90KHByZSkgPiBjb2RlW2NsYXNzKj1cImxhbmd1YWdlLVwiXSB7XG5cdHBhZGRpbmc6IC4xZW07XG5cdGJvcmRlci1yYWRpdXM6IC4zZW07XG5cdHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG5cbi50b2tlbi5jb21tZW50LFxuLnRva2VuLnByb2xvZyxcbi50b2tlbi5kb2N0eXBlLFxuLnRva2VuLmNkYXRhIHtcblx0Y29sb3I6IHNsYXRlZ3JheTtcbn1cblxuLnRva2VuLnB1bmN0dWF0aW9uIHtcblx0Y29sb3I6ICM5OTk7XG59XG5cbi5uYW1lc3BhY2Uge1xuXHRvcGFjaXR5OiAuNztcbn1cblxuLnRva2VuLnByb3BlcnR5LFxuLnRva2VuLnRhZyxcbi50b2tlbi5ib29sZWFuLFxuLnRva2VuLm51bWJlcixcbi50b2tlbi5jb25zdGFudCxcbi50b2tlbi5zeW1ib2wsXG4udG9rZW4uZGVsZXRlZCB7XG5cdGNvbG9yOiAjOTA1O1xufVxuXG4udG9rZW4uc2VsZWN0b3IsXG4udG9rZW4uYXR0ci1uYW1lLFxuLnRva2VuLnN0cmluZyxcbi50b2tlbi5jaGFyLFxuLnRva2VuLmJ1aWx0aW4sXG4udG9rZW4uaW5zZXJ0ZWQge1xuXHRjb2xvcjogIzY5MDtcbn1cblxuLnRva2VuLm9wZXJhdG9yLFxuLnRva2VuLmVudGl0eSxcbi50b2tlbi51cmwsXG4ubGFuZ3VhZ2UtY3NzIC50b2tlbi5zdHJpbmcsXG4uc3R5bGUgLnRva2VuLnN0cmluZyB7XG5cdGNvbG9yOiAjYTY3ZjU5O1xuXHRiYWNrZ3JvdW5kOiBoc2xhKDAsIDAlLCAxMDAlLCAuNSk7XG59XG5cbi50b2tlbi5hdHJ1bGUsXG4udG9rZW4uYXR0ci12YWx1ZSxcbi50b2tlbi5rZXl3b3JkIHtcblx0Y29sb3I6ICMwN2E7XG59XG5cbi50b2tlbi5mdW5jdGlvbiB7XG5cdGNvbG9yOiAjREQ0QTY4O1xufVxuXG4udG9rZW4ucmVnZXgsXG4udG9rZW4uaW1wb3J0YW50LFxuLnRva2VuLnZhcmlhYmxlIHtcblx0Y29sb3I6ICNlOTA7XG59XG5cbi50b2tlbi5pbXBvcnRhbnQsXG4udG9rZW4uYm9sZCB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLnRva2VuLml0YWxpYyB7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLnRva2VuLmVudGl0eSB7XG5cdGN1cnNvcjogaGVscDtcbn1cbiIsIi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKiAtLS0tLURpYWxvZ1xuICogLS0tLS1TbmFja2JhclxuICogLS0tLS1Ub29sdGlwXG4gKiAtLS0tLUNoaXBcbiAqXG4gKiBFdmVuIHRob3VnaCBhbGwgdmFyaWFibGVzIGhhdmUgdGhlIGAhZGVmYXVsdGAgZGlyZWN0aXZlLCBtb3N0IG9mIHRoZW1cbiAqIHNob3VsZCBub3QgYmUgY2hhbmdlZCBhcyB0aGV5IGFyZSBkZXBlbmRlbnQgb25lIGFub3RoZXIuIFRoaXMgY2FuIGNhdXNlXG4gKiB2aXN1YWwgZGlzdG9ydGlvbnMgKGxpa2UgYWxpZ25tZW50IGlzc3VlcykgdGhhdCBhcmUgaGFyZCB0byB0cmFjayBkb3duXG4gKiBhbmQgZml4LlxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIERJQUxPRyAqL1xuLyogU05BQ0tCQVIgKi9cbi8qIFRPT0xUSVAgKi9cbi8qIENISVAgKi9cbi8qIFJpY2FyZG8gQWRkZWQgdmFyaWFibGVzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogVHlwb2dyYXBoeSAqL1xuLyogU2hhZG93cyAqL1xuLyogQW5pbWF0aW9ucyAqL1xuLyogRGlhbG9nICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqIC0tLS0tRGlhbG9nXG4gKiAtLS0tLVNuYWNrYmFyXG4gKiAtLS0tLVRvb2x0aXBcbiAqIC0tLS0tQ2hpcFxuICpcbiAqIEV2ZW4gdGhvdWdoIGFsbCB2YXJpYWJsZXMgaGF2ZSB0aGUgYCFkZWZhdWx0YCBkaXJlY3RpdmUsIG1vc3Qgb2YgdGhlbVxuICogc2hvdWxkIG5vdCBiZSBjaGFuZ2VkIGFzIHRoZXkgYXJlIGRlcGVuZGVudCBvbmUgYW5vdGhlci4gVGhpcyBjYW4gY2F1c2VcbiAqIHZpc3VhbCBkaXN0b3J0aW9ucyAobGlrZSBhbGlnbm1lbnQgaXNzdWVzKSB0aGF0IGFyZSBoYXJkIHRvIHRyYWNrIGRvd25cbiAqIGFuZCBmaXguXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogRElBTE9HICovXG4vKiBTTkFDS0JBUiAqL1xuLyogVE9PTFRJUCAqL1xuLyogQ0hJUCAqL1xuLyogUmljYXJkbyBBZGRlZCB2YXJpYWJsZXMgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBUeXBvZ3JhcGh5ICovXG4vKiBTaGFkb3dzICovXG4vKiBBbmltYXRpb25zICovXG4vKiBEaWFsb2cgKi9cbi5tZGwtc2hhZG93LS0yZHAsIC5yZXNwb25zaXZlLWJsb2NrIHtcbiAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGwtc2hhZG93LS0zZHAge1xuICBib3gtc2hhZG93OiAwIDNweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDNweCAzcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMXB4IDhweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kbC1zaGFkb3ctLTRkcCB7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMik7IH1cblxuLm1kbC1zaGFkb3ctLTZkcCB7XG4gIGJveC1zaGFkb3c6IDAgNnB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCAxOHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpOyB9XG5cbi5tZGwtc2hhZG93LS04ZHAge1xuICBib3gtc2hhZG93OiAwIDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMik7IH1cblxuLm1kbC1zaGFkb3ctLTE2ZHAge1xuICBib3gtc2hhZG93OiAwIDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKTsgfVxuXG4ubWRsLXNoYWRvdy0tMjRkcCB7XG4gIGJveC1zaGFkb3c6IDAgOXB4IDQ2cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMTFweCAxNXB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4yKTsgfVxuXG4vKipcbiAqIEZhYnJpY2F0b3Igc3R5bGVzXG4gKiBAYXV0aG9yIEx1a2UgQXNrZXdcbiAqIENsYXNzIHNlbGVjdG9ycyBhcmUgbmFtZXNwYWNlZCB3aXRoIFwiZi1cIlxuICovXG4vKiBodHRwOi8vcHJpc21qcy5jb20vZG93bmxvYWQuaHRtbD90aGVtZXM9cHJpc20mbGFuZ3VhZ2VzPW1hcmt1cCtjc3MrY2xpa2UramF2YXNjcmlwdCAqL1xuLyoqXG4gKiBwcmlzbS5qcyBkZWZhdWx0IHRoZW1lIGZvciBKYXZhU2NyaXB0LCBDU1MgYW5kIEhUTUxcbiAqIEJhc2VkIG9uIGRhYmJsZXQgKGh0dHA6Ly9kYWJibGV0LmNvbSlcbiAqIEBhdXRob3IgTGVhIFZlcm91XG4gKi9cbmNvZGVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdLFxucHJlW2NsYXNzKj1cImxhbmd1YWdlLVwiXSB7XG4gIGNvbG9yOiBibGFjaztcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IHdoaXRlO1xuICBmb250LWZhbWlseTogQ29uc29sYXMsIE1vbmFjbywgJ0FuZGFsZSBNb25vJywgJ1VidW50dSBNb25vJywgbW9ub3NwYWNlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB3aGl0ZS1zcGFjZTogcHJlO1xuICB3b3JkLXNwYWNpbmc6IG5vcm1hbDtcbiAgd29yZC1icmVhazogbm9ybWFsO1xuICB3b3JkLXdyYXA6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgLW1vei10YWItc2l6ZTogNDtcbiAgLW8tdGFiLXNpemU6IDQ7XG4gIHRhYi1zaXplOiA0O1xuICAtd2Via2l0LWh5cGhlbnM6IG5vbmU7XG4gIC1tb3otaHlwaGVuczogbm9uZTtcbiAgLW1zLWh5cGhlbnM6IG5vbmU7XG4gIGh5cGhlbnM6IG5vbmU7IH1cblxucHJlW2NsYXNzKj1cImxhbmd1YWdlLVwiXTo6LW1vei1zZWxlY3Rpb24sIHByZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0gOjotbW96LXNlbGVjdGlvbixcbmNvZGVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdOjotbW96LXNlbGVjdGlvbiwgY29kZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0gOjotbW96LXNlbGVjdGlvbiB7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kOiAjYjNkNGZjOyB9XG5cbnByZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl06OnNlbGVjdGlvbiwgcHJlW2NsYXNzKj1cImxhbmd1YWdlLVwiXSA6OnNlbGVjdGlvbixcbmNvZGVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdOjpzZWxlY3Rpb24sIGNvZGVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdIDo6c2VsZWN0aW9uIHtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICNiM2Q0ZmM7IH1cblxuQG1lZGlhIHByaW50IHtcbiAgY29kZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0sXG4gIHByZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0ge1xuICAgIHRleHQtc2hhZG93OiBub25lOyB9IH1cblxuLyogQ29kZSBibG9ja3MgKi9cbnByZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0ge1xuICBwYWRkaW5nOiAxZW07XG4gIG1hcmdpbjogLjVlbSAwO1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG46bm90KHByZSkgPiBjb2RlW2NsYXNzKj1cImxhbmd1YWdlLVwiXSxcbnByZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0ge1xuICBiYWNrZ3JvdW5kOiAjZjVmMmYwOyB9XG5cbi8qIElubGluZSBjb2RlICovXG46bm90KHByZSkgPiBjb2RlW2NsYXNzKj1cImxhbmd1YWdlLVwiXSB7XG4gIHBhZGRpbmc6IC4xZW07XG4gIGJvcmRlci1yYWRpdXM6IC4zZW07XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IH1cblxuLnRva2VuLmNvbW1lbnQsXG4udG9rZW4ucHJvbG9nLFxuLnRva2VuLmRvY3R5cGUsXG4udG9rZW4uY2RhdGEge1xuICBjb2xvcjogc2xhdGVncmF5OyB9XG5cbi50b2tlbi5wdW5jdHVhdGlvbiB7XG4gIGNvbG9yOiAjOTk5OyB9XG5cbi5uYW1lc3BhY2Uge1xuICBvcGFjaXR5OiAuNzsgfVxuXG4udG9rZW4ucHJvcGVydHksXG4udG9rZW4udGFnLFxuLnRva2VuLmJvb2xlYW4sXG4udG9rZW4ubnVtYmVyLFxuLnRva2VuLmNvbnN0YW50LFxuLnRva2VuLnN5bWJvbCxcbi50b2tlbi5kZWxldGVkIHtcbiAgY29sb3I6ICM5MDU7IH1cblxuLnRva2VuLnNlbGVjdG9yLFxuLnRva2VuLmF0dHItbmFtZSxcbi50b2tlbi5zdHJpbmcsXG4udG9rZW4uY2hhcixcbi50b2tlbi5idWlsdGluLFxuLnRva2VuLmluc2VydGVkIHtcbiAgY29sb3I6ICM2OTA7IH1cblxuLnRva2VuLm9wZXJhdG9yLFxuLnRva2VuLmVudGl0eSxcbi50b2tlbi51cmwsXG4ubGFuZ3VhZ2UtY3NzIC50b2tlbi5zdHJpbmcsXG4uc3R5bGUgLnRva2VuLnN0cmluZyB7XG4gIGNvbG9yOiAjYTY3ZjU5O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7IH1cblxuLnRva2VuLmF0cnVsZSxcbi50b2tlbi5hdHRyLXZhbHVlLFxuLnRva2VuLmtleXdvcmQge1xuICBjb2xvcjogIzA3YTsgfVxuXG4udG9rZW4uZnVuY3Rpb24ge1xuICBjb2xvcjogI0RENEE2ODsgfVxuXG4udG9rZW4ucmVnZXgsXG4udG9rZW4uaW1wb3J0YW50LFxuLnRva2VuLnZhcmlhYmxlIHtcbiAgY29sb3I6ICNlOTA7IH1cblxuLnRva2VuLmltcG9ydGFudCxcbi50b2tlbi5ib2xkIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLnRva2VuLml0YWxpYyB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4udG9rZW4uZW50aXR5IHtcbiAgY3Vyc29yOiBoZWxwOyB9XG5cbi5mLWNvbG9yLWNoaXAge1xuICBoZWlnaHQ6IDYwcHg7XG4gIHdpZHRoOiA2MHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDsgfVxuXG4uZi1jb2xvci1jaGlwX190ZXh0IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5mLWNvbG9yLWNoaXBfX2JvcmRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLXdpZHRoOiAycHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7IH1cblxuLmYtY29sb3ItY2hpcHMgPiBkaXYge1xuICBtYXJnaW4tcmlnaHQ6IDMycHg7IH1cblxuLmYtY29sb3ItY2hpcC1zbWFsbCB7XG4gIGhlaWdodDogMzBweDtcbiAgd2lkdGg6IDMwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG5cbi5mLWNvbG9yLWNoaXAtc21hbGxfX3RleHQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLmYtY29sb3Ige1xuICBtYXJnaW4tYm90dG9tOiAyNHB4OyB9XG5cbi5mLWNvbG9yLWNoaXAtdGV4dCB7XG4gIGZvbnQtc2l6ZTogNzBweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgZm9udC13ZWlnaHQ6IDUwMDsgfVxuXG4uZi1jb2xvci1jaGlwLXNoYXBlIHtcbiAgaGVpZ2h0OiAzMHB4O1xuICB3aWR0aDogMzBweDtcbiAgbWFyZ2luLWJvdHRvbTogMjRweDsgfVxuXG4uZi1jb250cm9scyB7XG4gIG1hcmdpbi1yaWdodDogOHB4OyB9XG4gIC5mLWNvbnRyb2xzIC5mLWNvbnRyb2wge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogMzMuMzMzMzMlO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxcmVtIDA7IH1cbiAgLmYtY29udHJvbHMgLm1kbC1zd2l0Y2gge1xuICAgIG1hcmdpbjogMCAzMnB4O1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gICAgLmYtY29udHJvbHMgLm1kbC1zd2l0Y2ggc3BhbiB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAgIC5mLWNvbnRyb2xzIC5tZGwtc3dpdGNoIHNwYW4gaSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7IH1cblxuLmYtY29udHJvbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBtYXJnaW4tbGVmdDogMC42NnJlbTsgfVxuICAuZi1jb250cm9sIHN2ZyB7XG4gICAgd2lkdGg6IDAuODc1cmVtO1xuICAgIGhlaWdodDogMC44NzVyZW07IH1cbiAgICAuZi1jb250cm9sIHN2ZyB1c2Uge1xuICAgICAgZmlsbDogY29sb3IobGlnaHQpOyB9XG5cbi5mLWNvbnRyb2wtYmFyIHtcbiAgcGFkZGluZzogMXJlbSAwOyB9XG5cbi5mLW1lbnUtdG9nZ2xlIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gIC5mLW1lbnUtdG9nZ2xlIHN2ZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogLTFweDsgfVxuXG4uZi1pdGVtLWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogMzJweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGNvbG9yKGxpZ2h0KTsgfVxuXG4uZi1pdGVtLWNvZGUge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLmYtaXRlbS1wcmV2aWV3IC5yaWMtaGVhZGVyX19jb250YWluZXIsIC5mLWl0ZW0tcHJldmlldyAucmljLWZvb3Rlcl9fY29udGFpbmVyLCAuZi1pdGVtLXByZXZpZXcgLnJpYy1mb290ZXJfX2NvbnRhaW5lciwgLmYtaXRlbS1wcmV2aWV3IC5yaWMtbWV0YWhlYWRlcl9fY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4uZi1pdGVtLWNvZGUtY29udGFpbmVyIHtcbiAgcGFkZGluZy10b3A6IDJyZW07IH1cblxuLmYtaXRlbS1ib3JkZXItYm90dG9tIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGNvbG9yKGxpZ2h0KTsgfVxuXG4uZi1pdGVtLWhlYWRpbmctZ3JvdXAge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi5mLWl0ZW0taGVhZGluZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbGluZS1oZWlnaHQ6IDE7IH1cblxuLmYtaXRlbS1jb250cm9scyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgfVxuICAuZi1pdGVtLWNvbnRyb2xzIC5mLWNvbnRyb2wge1xuICAgIHdpZHRoOiAwLjg3NXJlbTtcbiAgICBoZWlnaHQ6IDAuODc1cmVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgLmYtaXRlbS1jb250cm9scyAuZi1jb250cm9sOmhvdmVyIHVzZSB7XG4gICAgICBmaWxsOiBjb2xvcihub3JtYWwpOyB9XG4gICAgLmYtaXRlbS1jb250cm9scyAuZi1jb250cm9sIHVzZSB7XG4gICAgICBmaWxsOiBjb2xvcihsaWdodCk7IH1cblxuLmYtaXRlbS1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5mLWl0ZW0tbm90ZXMge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbiAgbWFyZ2luLWJvdHRvbTogMzJweDsgfVxuXG4uZi1tZW51IHtcbiAgei1pbmRleDogMTtcbiAgZmxleDogMCAwIDE4MHB4O1xuICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG4gIG9yZGVyOiAwO1xuICBvdmVyZmxvdzogYXV0bzsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gICAgLmYtbWVudSB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgcGFkZGluZy10b3A6IDBweDtcbiAgICAgIG92ZXJmbG93OiBub25lO1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsOyB9IH1cbiAgLmYtbWVudSBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiA0cHggMzJweDtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuICAgIC5mLW1lbnUgYTpob3ZlciB7XG4gICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTsgfVxuICAgIC5mLW1lbnUgYS5mLWFjdGl2ZSB7XG4gICAgICBib3gtc2hhZG93OiBpbnNldCAwLjI1cmVtIDAgMCAwICMwMDk2RDg7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gICAgICAuZi1tZW51IGE6bm90KC5mLW1lbnVfX2hlYWRpbmcpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIC5mLW1lbnUgLmYtbWVudV9faGVhZGluZyB7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7IH1cbiAgICAuZi1tZW51IC5mLW1lbnVfX2hlYWRpbmc6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5mLW1lbnUgLmYtbWVudS1zZWN0aW9uIHtcbiAgICBtYXJnaW46IDhweCAwOyB9XG5cbi5mLXR5cG8taXRlbSB7XG4gIG1hcmdpbjogOHB4IDA7XG4gIHBhZGRpbmc6IDhweCAwOyB9XG4gIC5mLXR5cG8taXRlbTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpOyB9XG5cbi50eXBvLWJsb2NrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE1KTsgfVxuXG4udHlwby1pbWFnZS1ibG9jayB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIGhlaWdodDogMjAwcHg7XG4gIHdpZHRoOiA0MDBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA4KTsgfVxuXG5jb2RlIHtcbiAgbWFyZ2luLWxlZnQ6IDFweDtcbiAgbWFyZ2luLXJpZ2h0OiAxcHg7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGF1dG87XG4gIHBhZGRpbmc6IDAuMTI1ZW0gMC4zNWVtO1xuICBib3JkZXItcmFkaXVzOiAycHg7IH1cblxucHJlW2NsYXNzKj1sYW5ndWFnZS1dIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IH1cbiAgcHJlW2NsYXNzKj1sYW5ndWFnZS1dOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhOyB9XG4gIHByZVtjbGFzcyo9bGFuZ3VhZ2UtXSBjb2RlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG5jb2RlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDRweCAwcHg7IH1cblxuLm92ZXJ2aWV3LXByaW5jaXBsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAxNnB4IDA7IH1cbiAgLm92ZXJ2aWV3LXByaW5jaXBsZSA+IGRpdiB7XG4gICAgd2lkdGg6IDEyMHB4O1xuICAgIG1hcmdpbjogMCAxNnB4OyB9XG4gICAgLm92ZXJ2aWV3LXByaW5jaXBsZSA+IGRpdiBzcGFuIHtcbiAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpOyB9XG4gICAgICAub3ZlcnZpZXctcHJpbmNpcGxlID4gZGl2IHNwYW46Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDhweDsgfVxuXG4uY29udGFpbmVyLXR5cG9ncmFwaHkge1xuICBtYXJnaW4tcmlnaHQ6IDMycHg7IH1cblxuLmhlYWRlci1icmFuZCB7XG4gIHBhZGRpbmc6IDE2cHg7IH1cblxuLnBhZ2UtY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gIG1hcmdpbjogYXV0bzsgfVxuXG4ucGFnZS1jb250ZW50LWNvbnRhaW5lciB7XG4gIG1hcmdpbjogMzJweCAwIDMycHggMDtcbiAgbWFyZ2luLWJvdHRvbTogNjRweDsgfVxuXG4ubWVkaWEtcXVlcmllcy11aS1jb250YWluZXIge1xuICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgbWFyZ2luLXRvcDogMzJweDsgfVxuXG4ubWRsLWRhdGEtdGFibGUgdGJvZHkgdHIuaG92ZXJlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7IH1cblxuLm1lZGlhLXF1ZXJ5LXVpIHtcbiAgaGVpZ2h0OiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDAgOHB4OyB9XG4gIC5tZWRpYS1xdWVyeS11aSBzcGFuIHtcbiAgICBmb250LXNpemU6IDEycHg7IH1cbiAgLm1lZGlhLXF1ZXJ5LXVpLWluc2lkZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2M2ZWNmZjtcbiAgICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCAjNDhhN2YzOyB9XG4gICAgLm1lZGlhLXF1ZXJ5LXVpLWluc2lkZTpob3ZlciwgLm1lZGlhLXF1ZXJ5LXVpLWluc2lkZS5ob3ZlcmVkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5MmNiZjg7IH1cbiAgLm1lZGlhLXF1ZXJ5LXVpLW91dHNpZGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMmQ4YWY7IH1cbiAgICAubWVkaWEtcXVlcnktdWktb3V0c2lkZS0xIHtcbiAgICAgIGJvcmRlci1yaWdodDogNHB4IHNvbGlkICNmMzdhMjI7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDhweDsgfVxuICAgIC5tZWRpYS1xdWVyeS11aS1vdXRzaWRlLTIge1xuICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjZjM3YTIyO1xuICAgICAgbWFyZ2luLWxlZnQ6IDhweDsgfVxuICAgIC5tZWRpYS1xdWVyeS11aS1vdXRzaWRlOmhvdmVyLCAubWVkaWEtcXVlcnktdWktb3V0c2lkZS5ob3ZlcmVkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmMxNmE7IH1cbiAgLm1lZGlhLXF1ZXJ5LXVpLWJldHdlZW4ge1xuICAgIG1hcmdpbjogMCA4cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2NjZTlhYjtcbiAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkICM2YTllM2Y7XG4gICAgYm9yZGVyLXJpZ2h0OiA0cHggc29saWQgIzZhOWUzZjsgfVxuICAgIC5tZWRpYS1xdWVyeS11aS1iZXR3ZWVuOmhvdmVyLCAubWVkaWEtcXVlcnktdWktYmV0d2Vlbi5ob3ZlcmVkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNiM2RkODI7IH1cblxuLnJlc3BvbnNpdmUtY29udGFpbmVyIHtcbiAgbWFyZ2luLXRvcDogMzJweDsgfVxuICAucmVzcG9uc2l2ZS1jb250YWluZXIgLm1kbC1yYWRpbyB7XG4gICAgbWFyZ2luOiAwIDhweDsgfVxuXG4ucmVzcG9uc2l2ZS1ibG9jayB7XG4gIGhlaWdodDogNjAwcHg7XG4gIG1heC1oZWlnaHQ6IDU1MHB4O1xuICBtYXJnaW46IDMycHggYXV0byAwcHggYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgIC5yZXNwb25zaXZlLWJsb2NrIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMHB4O1xuICAgICAgaGVpZ2h0OiA2MHZ3OyB9IH1cbiAgLnJlc3BvbnNpdmUtYmxvY2sgPiBkaXYge1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAucmVzcG9uc2l2ZS1ibG9jay1tb2JpbGVfcyB7XG4gICAgd2lkdGg6IDM1JTsgfVxuICAucmVzcG9uc2l2ZS1ibG9jay1tb2JpbGVfbSB7XG4gICAgd2lkdGg6IDQ1JTtcbiAgICBoZWlnaHQ6IDYwMHB4O1xuICAgIG1heC1oZWlnaHQ6IDYwMHB4OyB9XG4gIC5yZXNwb25zaXZlLWJsb2NrLW1vYmlsZV9sIHtcbiAgICB3aWR0aDogNTUlO1xuICAgIGhlaWdodDogNjUwcHg7XG4gICAgbWF4LWhlaWdodDogNjUwcHg7IH1cbiAgLnJlc3BvbnNpdmUtYmxvY2stdGFibGV0IHtcbiAgICB3aWR0aDogODAlO1xuICAgIGhlaWdodDogODAwcHg7XG4gICAgbWF4LWhlaWdodDogODAwcHg7IH1cbiAgLnJlc3BvbnNpdmUtYmxvY2stbGFwdG9wIHtcbiAgICB3aWR0aDogOTIlOyB9XG4gICAgLnJlc3BvbnNpdmUtYmxvY2stbGFwdG9wIC5yZXNwb25zaXZlLWJsb2NrLWNvbnRlbnQge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAucmVzcG9uc2l2ZS1ibG9jay1sYXB0b3AgLnJlc3BvbnNpdmUtYmxvY2stbWVudSB7XG4gICAgICB3aWR0aDogMjAlO1xuICAgICAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5yZXNwb25zaXZlLWJsb2NrLWxhcHRvcF9sIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5yZXNwb25zaXZlLWJsb2NrLWxhcHRvcF9sIC5yZXNwb25zaXZlLWJsb2NrLWNvbnRlbnQge1xuICAgICAgd2lkdGg6IDgwJTtcbiAgICAgIG1hcmdpbjogYXV0bzsgfVxuICAgIC5yZXNwb25zaXZlLWJsb2NrLWxhcHRvcF9sIC5yZXNwb25zaXZlLWJsb2NrLW1lbnUge1xuICAgICAgd2lkdGg6IDIwJTtcbiAgICAgIGhlaWdodDogMTAwJTsgfVxuICAucmVzcG9uc2l2ZS1ibG9jay1sYXB0b3BfNGsge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLnJlc3BvbnNpdmUtYmxvY2stbGFwdG9wXzRrIC5yZXNwb25zaXZlLWJsb2NrLWNvbnRlbnQge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIG1hcmdpbjogYXV0bzsgfVxuICAgIC5yZXNwb25zaXZlLWJsb2NrLWxhcHRvcF80ayAucmVzcG9uc2l2ZS1ibG9jay1tZW51IHtcbiAgICAgIHdpZHRoOiAyMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLnJlc3BvbnNpdmUtYmxvY2sgLmNlbnRlci10ZXh0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAucmVzcG9uc2l2ZS1ibG9jayAuY2VudGVyLXRleHQgc3BhbiB7XG4gICAgICBtYXgtd2lkdGg6IDUwJTsgfVxuICAucmVzcG9uc2l2ZS1ibG9jay1tZXRhZGF0YSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0IzOUREQjtcbiAgICBoZWlnaHQ6IDI1cHg7IH1cbiAgLnJlc3BvbnNpdmUtYmxvY2staGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTBDQUY5O1xuICAgIGhlaWdodDogNjBweDsgfVxuICAucmVzcG9uc2l2ZS1ibG9jay1tYWluIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZDQzgwOyB9XG4gIC5yZXNwb25zaXZlLWJsb2NrLW1lbnUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNBNUQ2QTc7XG4gICAgaGVpZ2h0OiA0MHB4OyB9XG4gIC5yZXNwb25zaXZlLWJsb2NrLWZvb3RlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0U2RUU5QztcbiAgICBoZWlnaHQ6IDI1cHg7IH1cbiAgICAucmVzcG9uc2l2ZS1ibG9jay1mb290ZXItbWV0YSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUY5QTlBO1xuICAgICAgaGVpZ2h0OiA1MHB4OyB9XG5cbi5pY29ucy1jb250YWluZXIgPiBkaXYge1xuICBtYXJnaW46IDhweDsgfVxuXG4uaWNvbnMtY29udGFpbmVyIGkubWF0ZXJpYWwtaWNvbnMge1xuICB3aWR0aDogNDhweDtcbiAgaGVpZ2h0OiA0OHB4O1xuICBsaW5lLWhlaWdodDogNDhweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5mb290ZXItYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U0ZTRlNDtcbiAgcGFkZGluZzogOHB4IDE2cHg7IH1cbiAgLmZvb3Rlci1iYXIgPiBkaXYge1xuICAgIG1heC13aWR0aDogMTIwMHB4O1xuICAgIG1hcmdpbjogYXV0bzsgfVxuICAuZm9vdGVyLWJhciAubWV0YWhlYWRlci1mb290ZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7IH1cbiAgICAuZm9vdGVyLWJhciAubWV0YWhlYWRlci1mb290ZXIgPiBkaXY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgbWFyZ2luLXRvcDogOHB4OyB9XG5cbi8qIE9wZW4gd2l0aCBDb2RlUGVuIEJ1dHRvbiAqL1xuLmNvZGVwZW4tYnV0dG9uIHtcbiAgei1pbmRleDogMTAwMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvY29kZXBlbi1sb2dvLnBuZ1wiKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNXB4IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiAyNnB4IDI2cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogLTE0MHB4O1xuICBoZWlnaHQ6IDQ2cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgb3BhY2l0eTogMC42O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjb2xvcjogYmxhY2s7XG4gIHBhZGRpbmc6IDEzcHggMTVweCA1cHggNTBweDtcbiAgdHJhbnNpdGlvbjogcmlnaHQgMC41cywgYmFja2dyb3VuZC1jb2xvciAwLjVzLCBvcGFjaXR5IDAuNXMsIGJhY2tncm91bmQtc2l6ZSAwLjNzOyB9XG5cbi5jb2RlcGVuLWJ1dHRvbjo6YWZ0ZXIge1xuICBjb250ZW50OiAnT3BlbiBpbiBDb2RlUGVuJzsgfVxuXG4uY29kZXBlbi1idXR0b246aG92ZXIge1xuICBvcGFjaXR5OiAxO1xuICByaWdodDogMDtcbiAgYmFja2dyb3VuZC1zaXplOiAzNnB4IDM2cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDEwcHg7IH1cblxuLmRvY3MtbGF5b3V0IHByZVtjbGFzcyo9bGFuZ3VhZ2UtbWFya3VwXSB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7IH1cblxuLmRvY3MtbGF5b3V0IHByZVtjbGFzcyo9bGFuZ3VhZ2UtbWFya3VwXS5jb2RlcGVuLWJ1dHRvbi1kaXNhYmxlZDpub3QgY29kZSB7XG4gIHBhZGRpbmctcmlnaHQ6IDUwcHg7IH1cblxuLmNvZGVwZW4tYnV0dG9uLWRpc2FibGVkIC5jb2RlcGVuLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmxheW91dC5ob3Jpem9udGFsLFxuLmxheW91dC5ob3Jpem9udGFsLXJldmVyc2UsXG4ubGF5b3V0LnZlcnRpY2FsLFxuLmxheW91dC52ZXJ0aWNhbC1yZXZlcnNlIHtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogZmxleDsgfVxuXG4ubGF5b3V0LmlubGluZSB7XG4gIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcbiAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtZmxleDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7IH1cblxuLmxheW91dC5ob3Jpem9udGFsIHtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuXG4ubGF5b3V0Lmhvcml6b250YWwtcmV2ZXJzZSB7XG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH1cblxuLmxheW91dC52ZXJ0aWNhbCB7XG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cblxuLmxheW91dC52ZXJ0aWNhbC1yZXZlcnNlIHtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsgfVxuXG4ubGF5b3V0LndyYXAge1xuICAtbXMtZmxleC13cmFwOiB3cmFwO1xuICAtd2Via2l0LWZsZXgtd3JhcDogd3JhcDtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG5cbi5sYXlvdXQubm8td3JhcCB7XG4gIC1tcy1mbGV4LXdyYXA6IG5vd3JhcDtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6IG5vd3JhcDtcbiAgZmxleC13cmFwOiBub3dyYXA7IH1cblxuLmxheW91dC53cmFwLXJldmVyc2Uge1xuICAtbXMtZmxleC13cmFwOiB3cmFwLXJldmVyc2U7XG4gIC13ZWJraXQtZmxleC13cmFwOiB3cmFwLXJldmVyc2U7XG4gIGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlOyB9XG5cbi5mbGV4LWF1dG8ge1xuICAtbXMtZmxleDogMSAxIGF1dG87XG4gIC13ZWJraXQtZmxleDogMSAxIGF1dG87XG4gIGZsZXg6IDEgMSBhdXRvOyB9XG5cbi5mbGV4LW5vbmUge1xuICAtbXMtZmxleDogbm9uZTtcbiAgLXdlYmtpdC1mbGV4OiBub25lO1xuICBmbGV4OiBub25lOyB9XG5cbi5mbGV4LFxuLmZsZXgtMSB7XG4gIC1tcy1mbGV4OiAxO1xuICAtd2Via2l0LWZsZXg6IDE7XG4gIGZsZXg6IDE7IH1cblxuLmZsZXgtMiB7XG4gIC1tcy1mbGV4OiAyO1xuICAtd2Via2l0LWZsZXg6IDI7XG4gIGZsZXg6IDI7IH1cblxuLmZsZXgtMyB7XG4gIC1tcy1mbGV4OiAzO1xuICAtd2Via2l0LWZsZXg6IDM7XG4gIGZsZXg6IDM7IH1cblxuLmZsZXgtNCB7XG4gIC1tcy1mbGV4OiA0O1xuICAtd2Via2l0LWZsZXg6IDQ7XG4gIGZsZXg6IDQ7IH1cblxuLmZsZXgtNSB7XG4gIC1tcy1mbGV4OiA1O1xuICAtd2Via2l0LWZsZXg6IDU7XG4gIGZsZXg6IDU7IH1cblxuLmZsZXgtNiB7XG4gIC1tcy1mbGV4OiA2O1xuICAtd2Via2l0LWZsZXg6IDY7XG4gIGZsZXg6IDY7IH1cblxuLmZsZXgtNyB7XG4gIC1tcy1mbGV4OiA3O1xuICAtd2Via2l0LWZsZXg6IDc7XG4gIGZsZXg6IDc7IH1cblxuLmZsZXgtOCB7XG4gIC1tcy1mbGV4OiA4O1xuICAtd2Via2l0LWZsZXg6IDg7XG4gIGZsZXg6IDg7IH1cblxuLmZsZXgtOSB7XG4gIC1tcy1mbGV4OiA5O1xuICAtd2Via2l0LWZsZXg6IDk7XG4gIGZsZXg6IDk7IH1cblxuLmZsZXgtMTAge1xuICAtbXMtZmxleDogMTA7XG4gIC13ZWJraXQtZmxleDogMTA7XG4gIGZsZXg6IDEwOyB9XG5cbi5mbGV4LTExIHtcbiAgLW1zLWZsZXg6IDExO1xuICAtd2Via2l0LWZsZXg6IDExO1xuICBmbGV4OiAxMTsgfVxuXG4uZmxleC0xMiB7XG4gIC1tcy1mbGV4OiAxMjtcbiAgLXdlYmtpdC1mbGV4OiAxMjtcbiAgZmxleDogMTI7IH1cblxuLyogYWxpZ25tZW50IGluIGNyb3NzIGF4aXMgKi9cbi5sYXlvdXQuc3RhcnQge1xuICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG5cbi5sYXlvdXQuY2VudGVyLFxuLmxheW91dC5jZW50ZXItY2VudGVyIHtcbiAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG5cbi5sYXlvdXQuZW5kIHtcbiAgLW1zLWZsZXgtYWxpZ246IGVuZDtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuXG4vKiBhbGlnbm1lbnQgaW4gbWFpbiBheGlzICovXG4ubGF5b3V0LnN0YXJ0LWp1c3RpZmllZCB7XG4gIC1tcy1mbGV4LXBhY2s6IHN0YXJ0O1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG5cbi5jZW50ZXItanVzdGlmaWVkLFxuLmNlbnRlci1jZW50ZXIge1xuICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG5cbi5lbmQtanVzdGlmaWVkIHtcbiAgLW1zLWZsZXgtcGFjazogZW5kO1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cblxuLmFyb3VuZC1qdXN0aWZpZWQge1xuICAtbXMtZmxleC1wYWNrOiBhcm91bmQ7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9XG5cbi5qdXN0aWZpZWQge1xuICAtbXMtZmxleC1wYWNrOiBqdXN0aWZ5O1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG5cbi8qIHNlbGYgYWxpZ25tZW50ICovXG4uc2VsZi1zdGFydCB7XG4gIC1tcy1hbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAtd2Via2l0LWFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7IH1cblxuLnNlbGYtY2VudGVyIHtcbiAgLW1zLWFsaWduLXNlbGY6IGNlbnRlcjtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiBjZW50ZXI7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjsgfVxuXG4uc2VsZi1lbmQge1xuICAtbXMtYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kOyB9XG5cbi5zZWxmLXN0cmV0Y2gge1xuICAtbXMtYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiBzdHJldGNoO1xuICBhbGlnbi1zZWxmOiBzdHJldGNoOyB9XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBPdGhlciBMYXlvdXRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4uYmxvY2sge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKiBJRSAxMCBzdXBwb3J0IGZvciBIVE1MNSBoaWRkZW4gYXR0ciAqL1xuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmludmlzaWJsZSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50OyB9XG5cbi5yZWxhdGl2ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uZml0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7IH1cblxuYm9keS5mdWxsYmxlZWQge1xuICBtYXJnaW46IDA7XG4gIGhlaWdodDogMTAwdmg7IH1cblxuLnNjcm9sbCB7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuLyogZml4ZWQgcG9zaXRpb24gKi9cbi5maXhlZC1ib3R0b20sXG4uZml4ZWQtbGVmdCxcbi5maXhlZC1yaWdodCxcbi5maXhlZC10b3Age1xuICBwb3NpdGlvbjogZml4ZWQ7IH1cblxuLmZpeGVkLXRvcCB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7IH1cblxuLmZpeGVkLXJpZ2h0IHtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwOyB9XG5cbi5maXhlZC1ib3R0b20ge1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwOyB9XG5cbi5maXhlZC1sZWZ0IHtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7IH1cblxuLnJpYy1wYWdpbmF0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgIC5yaWMtcGFnaW5hdGlvbiB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH0gfVxuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuIiwiLmYtY29sb3ItY2hpcCB7XG4gICAgaGVpZ2h0OiA2MHB4O1xuICAgIHdpZHRoOiA2MHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwwLDAsLjUwKTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbn1cbi5mLWNvbG9yLWNoaXBfX3RleHQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5mLWNvbG9yLWNoaXBfX2JvcmRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlci13aWR0aDogMnB4O1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4uZi1jb2xvci1jaGlwcyB7XG4gICAgJiA+IGRpdiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMzJweDtcbiAgICB9XG59XG4uZi1jb2xvci1jaGlwLXNtYWxsIHtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLDAsMCwuNTApO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuLmYtY29sb3ItY2hpcC1zbWFsbF9fdGV4dCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmYtY29sb3Ige1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG59XG4uZi1jb2xvci1jaGlwLXRleHQge1xuICAgIGZvbnQtc2l6ZTogNzBweDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4uZi1jb2xvci1jaGlwLXNoYXBlIHtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbn1cbiIsIkBpbXBvcnQgJ3BhcnRpYWxzL3ZhcmlhYmxlcyc7XG5cbi5mLWNvbnRyb2xzIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcblxuXHQuZi1jb250cm9sIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRmbG9hdDogbGVmdDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0d2lkdGg6IHBlcmNlbnRhZ2UoMS8zKTtcblx0XHRtYXJnaW46IDA7XG5cdFx0cGFkZGluZzogMXJlbSAwO1xuXG5cdH1cblx0Lm1kbC1zd2l0Y2gge1xuXHRcdG1hcmdpbjogMCAzMnB4O1xuXHRcdHdpZHRoOmF1dG87XG5cdFx0c3BhbiB7XG5cdFx0XHRpIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDRweDtcblx0XHRcdH1cblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHR9XG5cdH1cbn1cblxuLmYtY29udHJvbCB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRtYXJnaW4tbGVmdDogMC42NnJlbTtcblxuXHRzdmcge1xuXHRcdHdpZHRoOiAwLjg3NXJlbTtcblx0XHRoZWlnaHQ6IDAuODc1cmVtO1xuXG5cdFx0dXNlIHtcblx0XHRcdGZpbGw6IGNvbG9yKGxpZ2h0KTtcblx0XHR9XG5cdH1cbn1cblxuLmYtY29udHJvbC1iYXIge1xuXHRwYWRkaW5nOiAxcmVtIDA7XG59XG5cbi5mLW1lbnUtdG9nZ2xlIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG5cdHN2ZyB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0bWFyZ2luLWJvdHRvbTogLTFweDtcblx0fVxufVxuIiwiLmYtaXRlbS1ncm91cCB7XG5cdG1hcmdpbi1ib3R0b206IDMycHg7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjb2xvcihsaWdodCk7XG59XG5cbi5mLWl0ZW0tY29kZSB7XG4gIFx0b3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5mLWl0ZW0tcHJldmlldyB7XG5cbn1cblxuLmYtaXRlbS1wcmV2aWV3IHtcblx0LnJpYy1oZWFkZXJfX2NvbnRhaW5lciwgLnJpYy1mb290ZXJfX2NvbnRhaW5lciwgLnJpYy1mb290ZXJfX2NvbnRhaW5lciwgLnJpYy1tZXRhaGVhZGVyX19jb250YWluZXIge1xuXHRcdHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuLmYtaXRlbS1jb2RlLWNvbnRhaW5lciB7XG5cdHBhZGRpbmctdG9wOiAycmVtO1xufVxuXG4uZi1pdGVtLWJvcmRlci1ib3R0b20ge1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgY29sb3IobGlnaHQpO1xufVxuXG4uZi1pdGVtLWhlYWRpbmctZ3JvdXAge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uZi1pdGVtLWhlYWRpbmcge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdGxpbmUtaGVpZ2h0OiAxO1xufVxuXG5cbi5mLWl0ZW0tY29udHJvbHMge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdG1hcmdpbi1sZWZ0OiAwLjVyZW07XG5cblx0LmYtY29udHJvbCB7XG5cdFx0d2lkdGg6IDAuODc1cmVtO1xuXHRcdGhlaWdodDogMC44NzVyZW07XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdHVzZSB7XG5cdFx0XHRcdGZpbGw6IGNvbG9yKG5vcm1hbCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0dXNlIHtcblx0XHRcdGZpbGw6IGNvbG9yKGxpZ2h0KTtcblx0XHR9XG5cdH1cbn1cblxuLmYtaXRlbS1oaWRkZW4ge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uZi1pdGVtLW5vdGVzIHtcblx0Y29sb3I6IHJnYmEoMCwgMCwgMCwgLjU0KTtcblx0bWFyZ2luLWJvdHRvbTogMzJweDtcbn1cbiIsIlxuQGltcG9ydCAnLi9zcmMvbGliL3JpY2FyZG8vbGF5b3V0L21peGlucyc7XG5AaW1wb3J0ICdwYXJ0aWFscy92YXJpYWJsZXMnO1xuXG4vLyBtZW51XG4uZi1tZW51IHtcblx0ei1pbmRleDogMTtcblx0ZmxleDogMCAwIDE4MHB4O1xuICBtYXJnaW4tcmlnaHQ6MTZweDtcblx0b3JkZXI6IDA7XG5cdG92ZXJmbG93OiBhdXRvO1xuXG5cdEBpbmNsdWRlIHJlc3BvbmQtdG8gKGFsbF9zbWFsbF9zY3JlZW5zKSB7XG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRwYWRkaW5nLXRvcDogMHB4O1xuICAgIG92ZXJmbG93OiBub25lO1xuXHRcdHBvc2l0aW9uOiBzdGF0aWM7XG4gIFx0Ym9yZGVyLWJvdHRvbTogc29saWQgMXB4IHJnYmEoMCwwLDAsMC4xNSk7XG5cdFx0b3ZlcmZsb3cteDogc2Nyb2xsO1xuXHR9XG5cblx0YSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cGFkZGluZzogNHB4IDMycHg7XG5cdFx0Y29sb3I6IHJnYmEoMCwwLDAsMC44Nyk7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdGZvbnQtd2VpZ2h0OiA0MDA7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGNvbG9yOiByZ2JhKDAsMCwwLDAuNTQpO1xuXHRcdH1cblxuXHRcdCYuZi1hY3RpdmUge1xuXHRcdFx0Ym94LXNoYWRvdzogaW5zZXQgMC4yNXJlbSAwIDAgMCAjMDA5NkQ4O1xuXHRcdH1cblx0XHRAaW5jbHVkZSByZXNwb25kLXRvIChhbGxfc21hbGxfc2NyZWVucykge1xuXHRcdFx0Jjpub3QoLmYtbWVudV9faGVhZGluZykge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblxuXHR9XG5cblx0LmYtbWVudV9faGVhZGluZyB7XG5cdFx0cGFkZGluZy1sZWZ0OiAxNnB4O1xuXHRcdGZvbnQtd2VpZ2h0OiA1MDA7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHR9XG5cblx0fVxuXHQuZi1tZW51LXNlY3Rpb24ge1xuXHRcdG1hcmdpbjogOHB4IDA7XG5cdH1cbn1cbiIsIiRicmVha19leHRyYV9zbWFsbDogMzIwcHg7XG4kYnJlYWtfdmVyeV9zbWFsbDogNDgwcHg7XG4kYnJlYWtfc21hbGw6IDYwMHB4O1xuJGJyZWFrX21lZGl1bTogOTYwcHg7XG4kYnJlYWtfbGFyZ2U6IDEyMDBweDtcbiRicmVha19leHRyYV9sYXJnZTogMTkyMHB4O1xuQG1peGluIHJlc3BvbmQtdG8oJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWE9PXNtYWxsX3Bob25lX3NjcmVlbnMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrX2V4dHJhX3NtYWxsIC0gMSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYT09cGhvbmVfc2NyZWVucyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtfc21hbGwpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWE9PXNtYWxsX3NjcmVlbnMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGJyZWFrX3NtYWxsICsgMSkgYW5kIChtYXgtd2lkdGg6ICRicmVha19tZWRpdW0pIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWE9PWFsbF92ZXJ5X3NtYWxsX3NjcmVlbnMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrX3Zlcnlfc21hbGwpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWE9PWFsbF9zbWFsbF9zY3JlZW5zIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha19tZWRpdW0pIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWE9PW1lZGl1bV9zY3JlZW5zIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRicmVha19tZWRpdW0gKyAxKSBhbmQgKG1heC13aWR0aDogJGJyZWFrX2xhcmdlKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhPT1hbGxfbWVkaXVtX3NjcmVlbnMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGJyZWFrX21lZGl1bSArIDEpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWE9PWFsbF9sYXJnZV9zY3JlZW5zIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRicmVha19sYXJnZSArIDEpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWE9PWxhcmdlX3NjcmVlbnMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGJyZWFrX2xhcmdlICsgMSkgYW5kIChtYXgtd2lkdGg6ICRicmVha19leHRyYV9sYXJnZSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYT09ZXh0cmFfbGFyZ2Vfc2NyZWVucyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkYnJlYWtfZXh0cmFfbGFyZ2UgKyAxKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogRmFicmljYXRvciBzdHlsZXNcbiAqIEBhdXRob3IgTHVrZSBBc2tld1xuICogQ2xhc3Mgc2VsZWN0b3JzIGFyZSBuYW1lc3BhY2VkIHdpdGggXCJmLVwiXG4gKi9cblxuXG5AaW1wb3J0ICdwYXJ0aWFscy92YXJpYWJsZXMnO1xuQGltcG9ydCAncGFydGlhbHMvY29kZSc7XG5AaW1wb3J0ICdwYXJ0aWFscy9jb2xvci1jaGlwcyc7XG5AaW1wb3J0ICdwYXJ0aWFscy9jb250cm9scyc7XG5AaW1wb3J0ICdwYXJ0aWFscy9pdGVtJztcbkBpbXBvcnQgJ3BhcnRpYWxzL21lbnUnO1xuQGltcG9ydCAncGFydGlhbHMvdHlwbyc7XG5cbmNvZGUge1xuXHRtYXJnaW4tbGVmdDogMXB4O1xuXHRtYXJnaW4tcmlnaHQ6IDFweDtcblx0LXdlYmtpdC1mb250LXNtb290aGluZzogYXV0bztcblx0cGFkZGluZzogMC4xMjVlbSAwLjM1ZW07XG5cdGJvcmRlci1yYWRpdXM6IDJweDtcbn1cblxucHJlW2NsYXNzKj1sYW5ndWFnZS1dIHtcblx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cblx0Jjpob3ZlciB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcblx0fVxuXHRjb2RlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0fVxufVxuY29kZSB7XG5cdGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuXHRwYWRkaW5nOiA0cHggMHB4O1xufVxuLm92ZXJ2aWV3LXByaW5jaXBsZSB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0bWFyZ2luOiAxNnB4IDA7XG5cdCYgPiBkaXYge1xuXHRcdHdpZHRoOiAxMjBweDtcblx0XHRtYXJnaW46IDAgMTZweDtcblx0XHRzcGFuIHtcblx0XHRcdGNvbG9yOiByZ2JhKDAsIDAsIDAsIC41NCk7XG5cdFx0XHQmOmZpcnN0LW9mLXR5cGUge1xuXHRcdFx0XHRjb2xvcjogcmdiYSgwLCAwLCAwLCAuODcpO1xuXHRcdFx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDhweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbi5jb250YWluZXItdHlwb2dyYXBoeSB7XG5cdG1hcmdpbi1yaWdodDogMzJweDtcbn1cbi5oZWFkZXItYnJhbmQge1xuICAgIHBhZGRpbmc6IDE2cHg7XG59XG4ucGFnZS1jb250ZW50IHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRtYXgtd2lkdGg6IDEyMDBweDtcblx0bWFyZ2luOiBhdXRvO1xufVxuLnBhZ2UtY29udGVudC1jb250YWluZXIge1xuXHRtYXJnaW46IDMycHggMCAzMnB4IDA7XG5cdG1hcmdpbi1ib3R0b206IDY0cHg7XG59XG5cbi5tZWRpYS1xdWVyaWVzLXVpLWNvbnRhaW5lciB7XG5cdG1hcmdpbi1yaWdodDogOHB4O1xuXHRtYXJnaW4tdG9wOiAzMnB4O1xufVxuLm1kbC1kYXRhLXRhYmxlIHRib2R5IHRyLmhvdmVyZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XG59XG4ubWVkaWEtcXVlcnktdWkge1xuXHRoZWlnaHQ6IDIwcHg7XG5cdG1hcmdpbi1ib3R0b206IDE2cHg7XG4gIFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRwYWRkaW5nOiAwIDhweDtcblx0c3BhbiB7XG5cdFx0Zm9udC1zaXplOiAxMnB4O1xuXHR9XG5cdCYtaW5zaWRlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjYzZlY2ZmO1xuXHRcdGJvcmRlci1yaWdodDogNHB4IHNvbGlkICM0OGE3ZjM7XG5cdFx0Jjpob3ZlciwgJi5ob3ZlcmVkIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICM5MmNiZjg7XG5cdFx0fVxuXHR9XG5cdCYtb3V0c2lkZSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2YyZDhhZjtcblx0XHQmLTEge1xuXHRcdFx0Ym9yZGVyLXJpZ2h0OiA0cHggc29saWQgI2YzN2EyMjtcblx0XHRcdG1hcmdpbi1yaWdodDogOHB4O1xuXHRcdH1cblx0XHQmLTIge1xuXHRcdFx0Ym9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjZjM3YTIyO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDhweDtcblx0XHR9XG5cdFx0Jjpob3ZlciwgJi5ob3ZlcmVkIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmMxNmE7XG5cdFx0fVxuXHR9XG5cdCYtYmV0d2VlbiB7XG5cdFx0bWFyZ2luOiAwIDhweDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjY2NlOWFiO1xuXHRcdGJvcmRlci1sZWZ0OiA0cHggc29saWQgIzZhOWUzZjtcblx0XHRib3JkZXItcmlnaHQ6IDRweCBzb2xpZCAjNmE5ZTNmO1xuXHRcdCY6aG92ZXIsICYuaG92ZXJlZCB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjYjNkZDgyO1xuXHRcdH1cblx0fVxufVxuXG4ucmVzcG9uc2l2ZS1jb250YWluZXIge1xuXHRtYXJnaW4tdG9wOiAzMnB4O1xuXHQubWRsLXJhZGlvIHtcblx0XHRtYXJnaW46IDAgOHB4O1xuXHR9XG59XG5cbi5yZXNwb25zaXZlLWJsb2NrIHtcblx0QGV4dGVuZCAubWRsLXNoYWRvdy0tMmRwO1xuXHRoZWlnaHQ6IDYwMHB4O1xuXHRtYXgtaGVpZ2h0OiA1NTBweDtcblx0bWFyZ2luOiAzMnB4IGF1dG8gMHB4IGF1dG87XG5cdHdpZHRoOiAxMDAlO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblx0Ym9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuXHRAaW5jbHVkZSByZXNwb25kLXRvKHBob25lX3NjcmVlbnMpIHtcblx0XHRtYXJnaW4tcmlnaHQ6IDBweDtcblx0XHRoZWlnaHQ6IDYwdnc7XG5cdH1cblx0PiBkaXYge1xuXHRcdGhlaWdodDogMTAwJTtcblx0fVxuXHQmLW1vYmlsZV9zIHtcblx0XHR3aWR0aDogMzUlO1xuXHR9XG5cdCYtbW9iaWxlX20ge1xuXHRcdHdpZHRoOiA0NSU7XG5cdFx0aGVpZ2h0OiA2MDBweDtcblx0XHRtYXgtaGVpZ2h0OiA2MDBweDtcblx0fVxuXHQmLW1vYmlsZV9sIHtcblx0XHR3aWR0aDogNTUlO1xuXHRcdGhlaWdodDogNjUwcHg7XG5cdFx0bWF4LWhlaWdodDogNjUwcHg7XG5cdH1cblx0Ji10YWJsZXQge1xuXHRcdHdpZHRoOiA4MCU7XG5cdFx0aGVpZ2h0OiA4MDBweDtcblx0XHRtYXgtaGVpZ2h0OiA4MDBweDtcblx0fVxuXHQmLWxhcHRvcCB7XG5cdFx0d2lkdGg6IDkyJTtcblx0XHQucmVzcG9uc2l2ZS1ibG9jay1jb250ZW50IHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdH1cblx0XHQucmVzcG9uc2l2ZS1ibG9jay1tZW51IHtcblx0XHRcdHdpZHRoOiAyMCU7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0fVxuXHR9XG5cdCYtbGFwdG9wX2wge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdC5yZXNwb25zaXZlLWJsb2NrLWNvbnRlbnQge1xuXHRcdFx0d2lkdGg6IDgwJTtcblx0XHRcdG1hcmdpbjogYXV0bztcblx0XHR9XG5cdFx0LnJlc3BvbnNpdmUtYmxvY2stbWVudSB7XG5cdFx0XHR3aWR0aDogMjAlO1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdH1cblx0fVxuXHQmLWxhcHRvcF80ayB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0LnJlc3BvbnNpdmUtYmxvY2stY29udGVudCB7XG5cdFx0XHR3aWR0aDogNTAlO1xuXHRcdFx0bWFyZ2luOiBhdXRvO1xuXHRcdH1cblx0XHQucmVzcG9uc2l2ZS1ibG9jay1tZW51IHtcblx0XHRcdHdpZHRoOiAyMCU7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0fVxuXHR9XG5cdC5jZW50ZXItdGV4dCB7XG4gIFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0c3BhbiB7XG4gIFx0XHRcdG1heC13aWR0aDogNTAlO1xuXHRcdH1cblx0fVxuXHQmLW1ldGFkYXRhIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjQjM5RERCO1xuXHRcdGhlaWdodDogMjVweDtcblx0fVxuXHQmLWhlYWRlciB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzkwQ0FGOTtcblx0XHRoZWlnaHQ6IDYwcHg7XG5cdH1cblx0Ji1tYWluIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjRkZDQzgwO1xuXHR9XG5cdCYtbWVudSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI0E1RDZBNztcblx0XHRoZWlnaHQ6IDQwcHg7XG5cdH1cblx0Ji1mb290ZXIge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNFNkVFOUM7XG5cdFx0aGVpZ2h0OiAyNXB4O1xuXHRcdCYtbWV0YSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjRUY5QTlBO1xuXHRcdFx0aGVpZ2h0OiA1MHB4O1xuXHRcdH1cblx0fVxufVxuLmljb25zLWNvbnRhaW5lciB7XG5cdCYgPiBkaXYge1xuXHRcdG1hcmdpbjogOHB4O1xuXHR9XG5cdGkubWF0ZXJpYWwtaWNvbnMge1xuXHRcdHdpZHRoOiA0OHB4O1xuXHRcdGhlaWdodDogNDhweDtcblx0XHRsaW5lLWhlaWdodDogNDhweDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdH1cbn1cblxuLmZvb3Rlci1iYXIge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZTRlNGU0O1xuXHRwYWRkaW5nOiA4cHggMTZweDtcblxuXHQ+IGRpdiB7XG5cdFx0bWF4LXdpZHRoOiAxMjAwcHg7XG5cdFx0bWFyZ2luOiBhdXRvO1xuXHR9XG5cdC5tZXRhaGVhZGVyLWZvb3RlciB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMTJweDtcblx0XHQ+IGRpdjpub3QoOmZpcnN0LWNoaWxkKSB7XG5cdFx0XHRtYXJnaW4tdG9wOiA4cHg7XG5cdFx0fVxuXHR9XG59XG4iLCIuZi10eXBvLWl0ZW0ge1xuICAgIG1hcmdpbjogOHB4IDA7XG4gICAgcGFkZGluZzogOHB4IDA7XG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgLjEpO1xuICAgIH1cbn1cbi50eXBvLWJsb2NrIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuMTUpO1xufVxuLnR5cG8taW1hZ2UtYmxvY2sge1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgaGVpZ2h0OjIwMHB4O1xuICAgIHdpZHRoOjQwMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMC4wOCk7XG59IiwiLyogT3BlbiB3aXRoIENvZGVQZW4gQnV0dG9uICovXG4uY29kZXBlbi1idXR0b24ge1xuICB6LWluZGV4OiAxMDAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2NvZGVwZW4tbG9nby5wbmcnKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNXB4IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiAyNnB4IDI2cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogLTE0MHB4O1xuICBoZWlnaHQ6IDQ2cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgb3BhY2l0eTogMC42O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjb2xvcjogYmxhY2s7XG4gIHBhZGRpbmc6IDEzcHggMTVweCA1cHggNTBweDtcbiAgdHJhbnNpdGlvbjogcmlnaHQgMC41cywgYmFja2dyb3VuZC1jb2xvciAwLjVzLCBvcGFjaXR5IDAuNXMsIGJhY2tncm91bmQtc2l6ZSAwLjNzO1xufVxuLmNvZGVwZW4tYnV0dG9uOjphZnRlciB7XG4gIGNvbnRlbnQ6ICdPcGVuIGluIENvZGVQZW4nO1xufVxuLmNvZGVwZW4tYnV0dG9uOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbiAgcmlnaHQ6IDA7XG4gIGJhY2tncm91bmQtc2l6ZTogMzZweCAzNnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAxMHB4O1xufVxuLmRvY3MtbGF5b3V0IHByZVtjbGFzcyo9bGFuZ3VhZ2UtbWFya3VwXSB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG59XG4uZG9jcy1sYXlvdXQgcHJlW2NsYXNzKj1sYW5ndWFnZS1tYXJrdXBdLmNvZGVwZW4tYnV0dG9uLWRpc2FibGVkOm5vdCBjb2RlIHtcbiAgcGFkZGluZy1yaWdodDogNTBweDtcbn1cbi5jb2RlcGVuLWJ1dHRvbi1kaXNhYmxlZCAuY29kZXBlbi1idXR0b24ge1xuICBkaXNwbGF5OiBub25lO1xufSIsIi5sYXlvdXQuaG9yaXpvbnRhbCxcbi5sYXlvdXQuaG9yaXpvbnRhbC1yZXZlcnNlLFxuLmxheW91dC52ZXJ0aWNhbCxcbi5sYXlvdXQudmVydGljYWwtcmV2ZXJzZSB7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5sYXlvdXQuaW5saW5lIHtcbiAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtZmxleDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbn1cblxuLmxheW91dC5ob3Jpem9udGFsIHtcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbn1cblxuLmxheW91dC5ob3Jpem9udGFsLXJldmVyc2Uge1xuICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xufVxuXG4ubGF5b3V0LnZlcnRpY2FsIHtcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLmxheW91dC52ZXJ0aWNhbC1yZXZlcnNlIHtcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbn1cblxuLmxheW91dC53cmFwIHtcbiAgICAtbXMtZmxleC13cmFwOiB3cmFwO1xuICAgIC13ZWJraXQtZmxleC13cmFwOiB3cmFwO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLmxheW91dC5uby13cmFwIHtcbiAgICAtbXMtZmxleC13cmFwOiBub3dyYXA7XG4gICAgLXdlYmtpdC1mbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbn1cblxuLmxheW91dC53cmFwLXJldmVyc2Uge1xuICAgIC1tcy1mbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZTtcbiAgICAtd2Via2l0LWZsZXgtd3JhcDogd3JhcC1yZXZlcnNlO1xuICAgIGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlO1xufVxuXG4uZmxleC1hdXRvIHtcbiAgICAtbXMtZmxleDogMSAxIGF1dG87XG4gICAgLXdlYmtpdC1mbGV4OiAxIDEgYXV0bztcbiAgICBmbGV4OiAxIDEgYXV0bztcbn1cblxuLmZsZXgtbm9uZSB7XG4gICAgLW1zLWZsZXg6IG5vbmU7XG4gICAgLXdlYmtpdC1mbGV4OiBub25lO1xuICAgIGZsZXg6IG5vbmU7XG59XG5cbi5mbGV4LFxuLmZsZXgtMSB7XG4gICAgLW1zLWZsZXg6IDE7XG4gICAgLXdlYmtpdC1mbGV4OiAxO1xuICAgIGZsZXg6IDE7XG59XG5cbi5mbGV4LTIge1xuICAgIC1tcy1mbGV4OiAyO1xuICAgIC13ZWJraXQtZmxleDogMjtcbiAgICBmbGV4OiAyO1xufVxuXG4uZmxleC0zIHtcbiAgICAtbXMtZmxleDogMztcbiAgICAtd2Via2l0LWZsZXg6IDM7XG4gICAgZmxleDogMztcbn1cblxuLmZsZXgtNCB7XG4gICAgLW1zLWZsZXg6IDQ7XG4gICAgLXdlYmtpdC1mbGV4OiA0O1xuICAgIGZsZXg6IDQ7XG59XG5cbi5mbGV4LTUge1xuICAgIC1tcy1mbGV4OiA1O1xuICAgIC13ZWJraXQtZmxleDogNTtcbiAgICBmbGV4OiA1O1xufVxuXG4uZmxleC02IHtcbiAgICAtbXMtZmxleDogNjtcbiAgICAtd2Via2l0LWZsZXg6IDY7XG4gICAgZmxleDogNjtcbn1cblxuLmZsZXgtNyB7XG4gICAgLW1zLWZsZXg6IDc7XG4gICAgLXdlYmtpdC1mbGV4OiA3O1xuICAgIGZsZXg6IDc7XG59XG5cbi5mbGV4LTgge1xuICAgIC1tcy1mbGV4OiA4O1xuICAgIC13ZWJraXQtZmxleDogODtcbiAgICBmbGV4OiA4O1xufVxuXG4uZmxleC05IHtcbiAgICAtbXMtZmxleDogOTtcbiAgICAtd2Via2l0LWZsZXg6IDk7XG4gICAgZmxleDogOTtcbn1cblxuLmZsZXgtMTAge1xuICAgIC1tcy1mbGV4OiAxMDtcbiAgICAtd2Via2l0LWZsZXg6IDEwO1xuICAgIGZsZXg6IDEwO1xufVxuXG4uZmxleC0xMSB7XG4gICAgLW1zLWZsZXg6IDExO1xuICAgIC13ZWJraXQtZmxleDogMTE7XG4gICAgZmxleDogMTE7XG59XG5cbi5mbGV4LTEyIHtcbiAgICAtbXMtZmxleDogMTI7XG4gICAgLXdlYmtpdC1mbGV4OiAxMjtcbiAgICBmbGV4OiAxMjtcbn1cblxuLyogYWxpZ25tZW50IGluIGNyb3NzIGF4aXMgKi9cblxuLmxheW91dC5zdGFydCB7XG4gICAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0O1xuICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG5cbi5sYXlvdXQuY2VudGVyLFxuLmxheW91dC5jZW50ZXItY2VudGVyIHtcbiAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xuICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ubGF5b3V0LmVuZCB7XG4gICAgLW1zLWZsZXgtYWxpZ246IGVuZDtcbiAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG59XG5cbi8qIGFsaWdubWVudCBpbiBtYWluIGF4aXMgKi9cblxuLmxheW91dC5zdGFydC1qdXN0aWZpZWQge1xuICAgIC1tcy1mbGV4LXBhY2s6IHN0YXJ0O1xuICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cblxuLmNlbnRlci1qdXN0aWZpZWQsXG4uY2VudGVyLWNlbnRlciB7XG4gICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xuICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5lbmQtanVzdGlmaWVkIHtcbiAgICAtbXMtZmxleC1wYWNrOiBlbmQ7XG4gICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbi5hcm91bmQtanVzdGlmaWVkIHtcbiAgICAtbXMtZmxleC1wYWNrOiBhcm91bmQ7XG4gICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbn1cblxuLmp1c3RpZmllZCB7XG4gICAgLW1zLWZsZXgtcGFjazoganVzdGlmeTtcbiAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbi8qIHNlbGYgYWxpZ25tZW50ICovXG5cbi5zZWxmLXN0YXJ0IHtcbiAgICAtbXMtYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICAtd2Via2l0LWFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbn1cblxuLnNlbGYtY2VudGVyIHtcbiAgICAtbXMtYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIC13ZWJraXQtYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbn1cblxuLnNlbGYtZW5kIHtcbiAgICAtbXMtYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgLXdlYmtpdC1hbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbn1cblxuLnNlbGYtc3RyZXRjaCB7XG4gICAgLW1zLWFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgLXdlYmtpdC1hbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBPdGhlciBMYXlvdXRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi5ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qIElFIDEwIHN1cHBvcnQgZm9yIEhUTUw1IGhpZGRlbiBhdHRyICovXG5baGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uaW52aXNpYmxlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLnJlbGF0aXZlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5maXQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG59XG5cbmJvZHkuZnVsbGJsZWVkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbn1cblxuLnNjcm9sbCB7XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKiBmaXhlZCBwb3NpdGlvbiAqL1xuXG4uZml4ZWQtYm90dG9tLFxuLmZpeGVkLWxlZnQsXG4uZml4ZWQtcmlnaHQsXG4uZml4ZWQtdG9wIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG59XG5cbi5maXhlZC10b3Age1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xufVxuXG4uZml4ZWQtcmlnaHQge1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG59XG5cbi5maXhlZC1ib3R0b20ge1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xufVxuXG4uZml4ZWQtbGVmdCB7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xufVxuIiwiLnJpYy1wYWdpbmF0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn0iLCJAaW1wb3J0ICcuL3NyYy9saWIvbWRsL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuL3NyYy9saWIvbWRsL21peGlucyc7XG5AaW1wb3J0ICcuL3NyYy9saWIvbWRsL3NoYWRvdy9zaGFkb3cnO1xuQGltcG9ydCAnLi9zcmMvbGliL3JpY2FyZG8vbGF5b3V0L21peGlucyc7XG5cbkBpbXBvcnQgXCJmYWJyaWNhdG9yXCI7XG5AaW1wb3J0IFwiY29kZXBlblwiO1xuQGltcG9ydCBcImlyb24tZmxleC1sYXlvdXRcIjtcblxuQGltcG9ydCBcInBhZ2luYXRpb25cIjtcblxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG4iXX0= */
