body {
    font-family: spartan;
    color: #444;
}

.jumbotron-img {
    background: rgb(237,116,88);
    background: linear-gradient(302deg, rgba(237,116,88,1) 16%, rgba(51,61,81,1) 97%);
    color: #fff;
}

.q-container {
    border-top-right-radius: .25rem;
    border-top-left-radius: .25rem;
    background-color: #efefee;
}

.q-container-show {
    border-top-right-radius: .25rem;
    border-top-left-radius: .25rem;
    background-color: #ED7458 ;
}

.q-container img, .q-container-show img {
    border: 2px solid #fff;
    border-radius: 50%;
}

.q-display {
    background: #fff;
    border-radius: .25rem;
}
.q-title-show {
    text-transform: uppercase;
    font-size: 1.3rem;
    color: #fff;
}
.q-title {
    text-transform: uppercase;
    color: #444;
}

.q-title:hover {
    color: #2B2B2B;
}

.q-title h2 {
    font-size: 1.3rem;
}

.q-display-response {
    background: #333D51;
    color: #fff;
}

.answer-link:hover .magic-wand {
    transform: rotate(20deg);
}

.vote-arrows, .vote-arrows .btn {
    font-size: 1.5rem;
}

.vote-arrows .btn {
    color: #444;
    padding: 0;
}

.vote-arrows span {
    font-size: 1rem;
}

.vote-up:hover {
    color: #3D9970;
}
.vote-down:hover {
    color: #FF4136;
}

.vote-arrows-alt .vote-up:hover {
    color: #3D9970;
}
.vote-arrows-alt .vote-down:hover {
    color: rgba(179, 20, 12, 0.63);
}

.btn-question {
    color: #FFFFFF;
    background-color: #ED7458;
    border-color: #D45B3F;
}

.btn-question:hover,
.btn-question:focus,
.btn-question:active,
.btn-question.active,
.open .dropdown-toggle.btn-question {
    color: #FFFFFF;
    background-color: #D45B3F;
    border-color: #D45B3F;
}

.btn-question:active,
.btn-question.active,
.open .dropdown-toggle.btn-question {
    background-image: none;
}

.btn-question.disabled,
.btn-question[disabled],
fieldset[disabled] .btn-question,
.btn-question.disabled:hover,
.btn-question[disabled]:hover,
fieldset[disabled] .btn-question:hover,
.btn-question.disabled:focus,
.btn-question[disabled]:focus,
fieldset[disabled] .btn-question:focus,
.btn-question.disabled:active,
.btn-question[disabled]:active,
fieldset[disabled] .btn-question:active,
.btn-question.disabled.active,
.btn-question[disabled].active,
fieldset[disabled] .btn-question.active {
    background-color: #ED7458;
    border-color: #D45B3F;
}

.btn-question .badge {
    color: #ED7458;
    background-color: #FFFFFF;
}

footer {
    background-color: #efefee;
}


.process-step .btn:focus{outline:none}
.process{display:table;width:100%;position:relative}
.process-row{display:table-row}
.process-step button[disabled]{opacity:1 !important;filter: alpha(opacity=100) !important}
.process-row:before{top:40px;bottom:0;position:absolute;content:" ";width:100%;height:1px;background-color:#ccc;z-order:0}
.process-step{display:table-cell;text-align:center;position:relative}
.process-step p{margin-top:4px}
.btn-circle{width:80px;height:80px;text-align:center;font-size:12px;border-radius:50%}

.tab-loading-overlay[data-v-9362ef2c] {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(255, 255, 255, 0.7);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  min-height: 200px;
}


.subcpmk-copy-row {
  background-color: rgba(13, 202, 240, 0.15) !important;
  border-left: 3px solid #0dcaf0 !important;
}
@media (prefers-color-scheme: dark) {
.subcpmk-copy-row {
    background-color: rgba(13, 202, 240, 0.2) !important;
    color: inherit !important;
}
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNzcyIsIm1hcHBpbmdzIjoiQUFFQTtJQUNJLG9CQUFvQjtJQUNwQixXQUFXO0FBQ2Y7O0FBRUE7SUFDSSwyQkFBMkI7SUFDM0IsaUZBQWlGO0lBQ2pGLFdBQVc7QUFDZjs7QUFFQTtJQUNJLCtCQUErQjtJQUMvQiw4QkFBOEI7SUFDOUIseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0ksK0JBQStCO0lBQy9CLDhCQUE4QjtJQUM5QiwwQkFBMEI7QUFDOUI7O0FBRUE7SUFDSSxzQkFBc0I7SUFDdEIsa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLHFCQUFxQjtBQUN6QjtBQUNBO0lBQ0kseUJBQXlCO0lBQ3pCLGlCQUFpQjtJQUNqQixXQUFXO0FBQ2Y7QUFDQTtJQUNJLHlCQUF5QjtJQUN6QixXQUFXO0FBQ2Y7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksbUJBQW1CO0lBQ25CLFdBQVc7QUFDZjs7QUFFQTtJQUNJLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLFdBQVc7SUFDWCxVQUFVO0FBQ2Q7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksY0FBYztBQUNsQjtBQUNBO0lBQ0ksY0FBYztBQUNsQjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7QUFDQTtJQUNJLDhCQUE4QjtBQUNsQzs7QUFFQTtJQUNJLGNBQWM7SUFDZCx5QkFBeUI7SUFDekIscUJBQXFCO0FBQ3pCOztBQUVBOzs7OztJQUtJLGNBQWM7SUFDZCx5QkFBeUI7SUFDekIscUJBQXFCO0FBQ3pCOztBQUVBOzs7SUFHSSxzQkFBc0I7QUFDMUI7O0FBRUE7Ozs7Ozs7Ozs7Ozs7OztJQWVJLHlCQUF5QjtJQUN6QixxQkFBcUI7QUFDekI7O0FBRUE7SUFDSSxjQUFjO0lBQ2QseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0kseUJBQXlCO0FBQzdCOzs7QUFHQSx5QkFBeUIsWUFBWTtBQUNyQyxTQUFTLGFBQWEsQ0FBQyxVQUFVLENBQUMsaUJBQWlCO0FBQ25ELGFBQWEsaUJBQWlCO0FBQzlCLCtCQUErQixvQkFBb0IsQ0FBQyxxQ0FBcUM7QUFDekYsb0JBQW9CLFFBQVEsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUMsU0FBUztBQUN6SCxjQUFjLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLGlCQUFpQjtBQUNwRSxnQkFBZ0IsY0FBYztBQUM5QixZQUFZLFVBQVUsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDOztBQzBzQ3JGO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBOzs7QUFHQTtFQUNBO0VBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvYXBwLmNzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvY29tcG9uZW50cy9UYWIudnVlIl0sInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgXCJ+Ym9vdHN0cmFwXCI7XG5cbmJvZHkge1xuICAgIGZvbnQtZmFtaWx5OiBzcGFydGFuO1xuICAgIGNvbG9yOiAjNDQ0O1xufVxuXG4uanVtYm90cm9uLWltZyB7XG4gICAgYmFja2dyb3VuZDogcmdiKDIzNywxMTYsODgpO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgzMDJkZWcsIHJnYmEoMjM3LDExNiw4OCwxKSAxNiUsIHJnYmEoNTEsNjEsODEsMSkgOTclKTtcbiAgICBjb2xvcjogI2ZmZjtcbn1cblxuLnEtY29udGFpbmVyIHtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogLjI1cmVtO1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IC4yNXJlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWZlZmVlO1xufVxuXG4ucS1jb250YWluZXItc2hvdyB7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IC4yNXJlbTtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAuMjVyZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0VENzQ1OCA7XG59XG5cbi5xLWNvbnRhaW5lciBpbWcsIC5xLWNvbnRhaW5lci1zaG93IGltZyB7XG4gICAgYm9yZGVyOiAycHggc29saWQgI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG5cbi5xLWRpc3BsYXkge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogLjI1cmVtO1xufVxuLnEtdGl0bGUtc2hvdyB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgICBjb2xvcjogI2ZmZjtcbn1cbi5xLXRpdGxlIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjNDQ0O1xufVxuXG4ucS10aXRsZTpob3ZlciB7XG4gICAgY29sb3I6ICMyQjJCMkI7XG59XG5cbi5xLXRpdGxlIGgyIHtcbiAgICBmb250LXNpemU6IDEuM3JlbTtcbn1cblxuLnEtZGlzcGxheS1yZXNwb25zZSB7XG4gICAgYmFja2dyb3VuZDogIzMzM0Q1MTtcbiAgICBjb2xvcjogI2ZmZjtcbn1cblxuLmFuc3dlci1saW5rOmhvdmVyIC5tYWdpYy13YW5kIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyMGRlZyk7XG59XG5cbi52b3RlLWFycm93cywgLnZvdGUtYXJyb3dzIC5idG4ge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xufVxuXG4udm90ZS1hcnJvd3MgLmJ0biB7XG4gICAgY29sb3I6ICM0NDQ7XG4gICAgcGFkZGluZzogMDtcbn1cblxuLnZvdGUtYXJyb3dzIHNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbn1cblxuLnZvdGUtdXA6aG92ZXIge1xuICAgIGNvbG9yOiAjM0Q5OTcwO1xufVxuLnZvdGUtZG93bjpob3ZlciB7XG4gICAgY29sb3I6ICNGRjQxMzY7XG59XG5cbi52b3RlLWFycm93cy1hbHQgLnZvdGUtdXA6aG92ZXIge1xuICAgIGNvbG9yOiAjM0Q5OTcwO1xufVxuLnZvdGUtYXJyb3dzLWFsdCAudm90ZS1kb3duOmhvdmVyIHtcbiAgICBjb2xvcjogcmdiYSgxNzksIDIwLCAxMiwgMC42Myk7XG59XG5cbi5idG4tcXVlc3Rpb24ge1xuICAgIGNvbG9yOiAjRkZGRkZGO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNFRDc0NTg7XG4gICAgYm9yZGVyLWNvbG9yOiAjRDQ1QjNGO1xufVxuXG4uYnRuLXF1ZXN0aW9uOmhvdmVyLFxuLmJ0bi1xdWVzdGlvbjpmb2N1cyxcbi5idG4tcXVlc3Rpb246YWN0aXZlLFxuLmJ0bi1xdWVzdGlvbi5hY3RpdmUsXG4ub3BlbiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1xdWVzdGlvbiB7XG4gICAgY29sb3I6ICNGRkZGRkY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0Q0NUIzRjtcbiAgICBib3JkZXItY29sb3I6ICNENDVCM0Y7XG59XG5cbi5idG4tcXVlc3Rpb246YWN0aXZlLFxuLmJ0bi1xdWVzdGlvbi5hY3RpdmUsXG4ub3BlbiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1xdWVzdGlvbiB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cblxuLmJ0bi1xdWVzdGlvbi5kaXNhYmxlZCxcbi5idG4tcXVlc3Rpb25bZGlzYWJsZWRdLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tcXVlc3Rpb24sXG4uYnRuLXF1ZXN0aW9uLmRpc2FibGVkOmhvdmVyLFxuLmJ0bi1xdWVzdGlvbltkaXNhYmxlZF06aG92ZXIsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1xdWVzdGlvbjpob3Zlcixcbi5idG4tcXVlc3Rpb24uZGlzYWJsZWQ6Zm9jdXMsXG4uYnRuLXF1ZXN0aW9uW2Rpc2FibGVkXTpmb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXF1ZXN0aW9uOmZvY3VzLFxuLmJ0bi1xdWVzdGlvbi5kaXNhYmxlZDphY3RpdmUsXG4uYnRuLXF1ZXN0aW9uW2Rpc2FibGVkXTphY3RpdmUsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1xdWVzdGlvbjphY3RpdmUsXG4uYnRuLXF1ZXN0aW9uLmRpc2FibGVkLmFjdGl2ZSxcbi5idG4tcXVlc3Rpb25bZGlzYWJsZWRdLmFjdGl2ZSxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXF1ZXN0aW9uLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0VENzQ1ODtcbiAgICBib3JkZXItY29sb3I6ICNENDVCM0Y7XG59XG5cbi5idG4tcXVlc3Rpb24gLmJhZGdlIHtcbiAgICBjb2xvcjogI0VENzQ1ODtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xufVxuXG5mb290ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZmVmZWU7XG59XG5cblxuLnByb2Nlc3Mtc3RlcCAuYnRuOmZvY3Vze291dGxpbmU6bm9uZX1cbi5wcm9jZXNze2Rpc3BsYXk6dGFibGU7d2lkdGg6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZX1cbi5wcm9jZXNzLXJvd3tkaXNwbGF5OnRhYmxlLXJvd31cbi5wcm9jZXNzLXN0ZXAgYnV0dG9uW2Rpc2FibGVkXXtvcGFjaXR5OjEgIWltcG9ydGFudDtmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MTAwKSAhaW1wb3J0YW50fVxuLnByb2Nlc3Mtcm93OmJlZm9yZXt0b3A6NDBweDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OlwiIFwiO3dpZHRoOjEwMCU7aGVpZ2h0OjFweDtiYWNrZ3JvdW5kLWNvbG9yOiNjY2M7ei1vcmRlcjowfVxuLnByb2Nlc3Mtc3RlcHtkaXNwbGF5OnRhYmxlLWNlbGw7dGV4dC1hbGlnbjpjZW50ZXI7cG9zaXRpb246cmVsYXRpdmV9XG4ucHJvY2Vzcy1zdGVwIHB7bWFyZ2luLXRvcDo0cHh9XG4uYnRuLWNpcmNsZXt3aWR0aDo4MHB4O2hlaWdodDo4MHB4O3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxMnB4O2JvcmRlci1yYWRpdXM6NTAlfSIsIjwhLS0gYXNzZXRzL2pzL2NvbXBvbmVudHMvVGFicy52dWUgLS0+XG48dGVtcGxhdGU+XG4gIDxkaXY+XG4gICAgPGRpdiB2LWlmPVwiaWRlbnRpdGFzLmtvZGVfbWtcIiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWxpZ2h0IGJvcmRlciBtYi0zIHB5LTJcIj5cbiAgICAgIDxzdHJvbmc+e3sgaWRlbnRpdGFzLmtvZGVfbWsgfX08L3N0cm9uZz4g4oCUIHt7IGlkZW50aXRhcy5tayB9fVxuICAgIDwvZGl2PlxuICAgIDx1bCBjbGFzcz1cIm5hdiBuYXYtdGFic1wiPlxuICAgICAgPGxpIHYtZm9yPVwidGFiIGluIHRhYnNcIiA6a2V5PVwidGFiLmlkXCIgY2xhc3M9XCJuYXYtaXRlbVwiPlxuICAgICAgICA8YSBAY2xpY2s9XCJsb2FkVGFiQ29udGVudCh0YWIuaWQpXCIgOmNsYXNzPVwieyAnbmF2LWxpbmsnOiB0cnVlLCBhY3RpdmU6IGFjdGl2ZVRhYiA9PT0gdGFiLmlkIH1cIiBocmVmPVwiI1wiPlxuICAgICAgICAgIHt7IHRhYi5sYWJlbCB9fVxuICAgICAgICA8L2E+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG5cbiAgICA8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnQgcG9zaXRpb24tcmVsYXRpdmVcIj5cbiAgICAgIDxkaXYgdi1pZj1cImxvYWRpbmdcIiBjbGFzcz1cInRhYi1sb2FkaW5nLW92ZXJsYXlcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNwaW5uZXItYm9yZGVyIHRleHQtcHJpbWFyeVwiIHJvbGU9XCJzdGF0dXNcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPkxvYWRpbmcuLi48L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IHYtZm9yPVwidGFiIGluIHRhYnNcIiA6a2V5PVwidGFiLmlkXCIgY2xhc3M9XCJ0YWItcGFuZVwiIDpjbGFzcz1cInsgYWN0aXZlOiBhY3RpdmVUYWIgPT09IHRhYi5pZCB9XCI+XG4gICAgICAgIDxkaXYgdi1pZj1cInRhYi5pZCA9PT0gMVwiPlxuICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLWhvdmVyIHctNTAgbXQtNFwiPlxuICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgPHRkPk5hbWEgRG9zZW48L3RkPlxuICAgICAgICAgICAgICAgIDx0ZD57eyBpZGVudGl0YXMuZG9zZW4gfX08L3RkPlxuICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgPHRkPk5hbWEgTWF0YSBLdWxpYWg8L3RkPlxuICAgICAgICAgICAgICAgIDx0ZD57eyBpZGVudGl0YXMubWsgfX08L3RkPlxuICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgPHRkPkFtYmFuZyBCYXRhcyBLZWx1bHVzYW4gTWFoYXNpc3dhPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQ+e3sgaWRlbnRpdGFzLmFtYmFuZ19tYWhhc2lzd2EgfX08L3RkPlxuICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgPHRkPkFtYmFuZyBCYXRhcyBLZWx1bHVzYW4gTWF0YSBLdWxpYWggPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQ+e3sgaWRlbnRpdGFzLmFtYmFuZ19tayB9fTwvdGQ+XG4gICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgICAgPGItYnV0dG9uIHYtYi1tb2RhbC5tb2RhbC0xPkVkaXQgQW1iYW5nIEJhdGFzPC9iLWJ1dHRvbj5cbiAgICAgICAgICA8Yi1tb2RhbCBpZD1cIm1vZGFsLTFcIiB0aXRsZT1cIkVkaXQgYW1iYW5nIGJhdGFzXCIgQG9rPVwiaGFuZGxlRWRpdEFtYmFuZygpXCIgc2l6ZT1cImxcIiBuby1jbG9zZS1vbi1iYWNrZHJvcCBuby1jbG9zZS1vbi1lc2M+XG4gICAgICAgICAgICA8Zm9ybT5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZXhhbXBsZUlucHV0RW1haWwxXCI+QW1iYW5nIGJhdGFzIGtlbHVsdXNhbiBtYWhhc2lzd2E8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgdi1tb2RlbD1cImlkZW50aXRhcy5hbWJhbmdfbWFoYXNpc3dhXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBpZD1cImFtYmFuZ19taHNcIiBhcmlhLWRlc2NyaWJlZGJ5PVwiYW1iYW5nX21oc0hlbHBcIiBwbGFjZWhvbGRlcj1cIk1hc3Vra2FuIG5pbGFpIGFtYmFuZyBiYXRhcyBrZWx1bHVzYW4gbWFoYXNpc3dhXCI+XG4gICAgICAgICAgICAgICAgPHNtYWxsIGlkPVwiYW1iYW5nX21oc0hlbHBcIiAgIGNsYXNzPVwiZm9ybS10ZXh0IHRleHQtbXV0ZWRcIj5BbWJhbmcga2VsdWx1c2FuIG1haGFzaXN3YSBhZGFsYWggbmlsYWkgYWtoaXIgbWFoYXNpc3dhIHlhbmcgZGkgbnlhdGFrYW4gbHVsdXMgPC9zbWFsbD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiAgdi1tb2RlbD1cImlkZW50aXRhcy5hbWJhbmdfbWtcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwiYW1iYW5nX21rXCIgYXJpYS1kZXNjcmliZWRieT1cImFtYmFuZ19ta0hlbHBcIiBwbGFjZWhvbGRlcj1cIk1hc3Vra2FuIG5pbGFpIGFtYmFuZyBiYXRhcyBrZWx1bHVzYW4gbWtcIj5cbiAgICAgICAgICAgICAgICA8c21hbGwgaWQ9XCJhbWJhbmdfbWtIZWxwXCIgY2xhc3M9XCJmb3JtLXRleHQgdGV4dC1tdXRlZFwiPkFtYmFuZyBrZWx1bHVzYW4gbWF0YSBrdWxpYWggYWRhbGFoIG5pbGFpIHJhdGEgcmF0YSBtaHMgeWFuZyBtZW55YXRha2FuIGJhd2FoIGtlbGFzIGJlcmhhc2lsIDwvc21hbGw+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgIDwvYi1tb2RhbD5cbiAgICAgICAgICA8Yi1idXR0b24gdi1iLW1vZGFsLm1vZGFsLWNvcHkgdmFyaWFudD1cImRhbmdlclwiPkNvcHkvSW1wb3J0IFJQUyBkYXJpIFJQUyBNYXRhIEt1bGlhaCBMYWluPC9iLWJ1dHRvbj5cbiAgICAgICAgICA8Yi1tb2RhbCBpZD1cIm1vZGFsLWNvcHlcIiB0aXRsZT1cIkltcG9ydCBSUFNcIiBAb2s9XCJjb3B5RnJvbSgpXCIgc2l6ZT1cImxcIiBuby1jbG9zZS1vbi1iYWNrZHJvcCBuby1jbG9zZS1vbi1lc2M+XG4gICAgICAgICAgICA8dGVtcGxhdGU+XG4gICAgICAgICAgICAgIDxiLWNvbnRhaW5lciBmbHVpZD5cbiAgICAgICAgICAgICAgICA8IS0tIFVzZXIgSW50ZXJmYWNlIGNvbnRyb2xzIC0tPlxuICAgICAgICAgICAgICAgIDxiLXJvdz5cbiAgICAgICAgICAgICAgICAgIDxiLWNvbCBsZz1cIjEyXCIgY2xhc3M9XCJteS0xXCI+XG4gICAgICAgICAgICAgICAgICAgIDxiLWZvcm0tZ3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIkZpbHRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWwtZm9yPVwiZmlsdGVyLWlucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgICBsYWJlbC1jb2xzLXNtPVwiM1wiXG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWwtYWxpZ24tc209XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWwtc2l6ZT1cInNtXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1iLTBcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPGItaW5wdXQtZ3JvdXAgc2l6ZT1cInNtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Yi1mb3JtLWlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiZmlsdGVyLWlucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZpbHRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlR5cGUgdG8gU2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2ItZm9ybS1pbnB1dD5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGItaW5wdXQtZ3JvdXAtYXBwZW5kPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Yi1idXR0b24gOmRpc2FibGVkPVwiIWZpbHRlclwiIEBjbGljaz1cImZpbHRlciA9ICcnXCI+Q2xlYXI8L2ItYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9iLWlucHV0LWdyb3VwLWFwcGVuZD5cbiAgICAgICAgICAgICAgICAgICAgICA8L2ItaW5wdXQtZ3JvdXA+XG4gICAgICAgICAgICAgICAgICAgIDwvYi1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgICAgPC9iLWNvbD5cbiAgICAgICAgICAgICAgICAgIDxiLXRhYmxlIDppdGVtcz1cImxpc3RScHNcIiA6ZmllbGRzPVwiZmllbGRzXCIgc2VsZWN0YWJsZSA6c2VsZWN0LW1vZGU9XCInc2luZ2xlJ1wiIEByb3ctc2VsZWN0ZWQ9XCJvblJvd1NlbGVjdGVkUnBzXCIgcmVmPVwic2VsZWN0YWJsZVRhYmxlXCIgOmZpbHRlcj1cImZpbHRlclwiIEBmaWx0ZXJlZD1cIm9uRmlsdGVyZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlICN0YWJsZS1jb2xncm91cD1cInNjb3BlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGNvbFxuICAgICAgICAgICAgICAgICAgICAgICAgdi1mb3I9XCJmaWVsZCBpbiBzY29wZS5maWVsZHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgOmtleT1cImZpZWxkLmtleVwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgPC9iLXRhYmxlPlxuICAgICAgICAgICAgICAgIDwvYi1yb3c+XG4gICAgICAgICAgICAgIDwvYi1jb250YWluZXI+XG4gICAgICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgICAgIDwvYi1tb2RhbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgdi1pZj1cInRhYi5pZCA9PT0gMlwiPlxuICAgICAgICAgIDxiLXRhYmxlIHN0cmlwZWQgaG92ZXIgOml0ZW1zPVwiaXRlbXNcIiA6ZmllbGRzPVwiZmllbGRDcGxcIj5cbiAgICAgICAgICAgIDx0ZW1wbGF0ZSAjdGFibGUtY29sZ3JvdXA9XCJzY29wZVwiPlxuICAgICAgICAgICAgICA8Y29sXG4gICAgICAgICAgICAgICAgdi1mb3I9XCJmaWVsZCBpbiBzY29wZS5maWVsZHNcIlxuICAgICAgICAgICAgICAgIDprZXk9XCJmaWVsZC5rZXlcIlxuICAgICAgICAgICAgICAgIDpzdHlsZT1cInsgd2lkdGg6IGZpZWxkLmtleSA9PT0gJ2tvZGVDcGwnID8gJzEyMHB4JyA6ICcnIH1cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgICAgICAgPHRlbXBsYXRlIHYtc2xvdDpjZWxsKGFjdGlvbnMpPVwieyBpdGVtIH1cIj5cbiAgICAgICAgICAgICAgPHNwYW4+PGItYnRuIEBjbGljaz1cImhhcHVzQ3BsKGl0ZW0pXCI+SGFwdXM8L2ItYnRuPjwvc3Bhbj5cbiAgICAgICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICAgICAgPC9iLXRhYmxlPlxuICAgICAgICAgIDxiLWJ1dHRvbiB2LWItbW9kYWwubW9kYWwtMj5UYW1iYWggQ1BMIFByb2RpPC9iLWJ1dHRvbj5cbiAgICAgICAgICA8Yi1tb2RhbCBpZD1cIm1vZGFsLTJcIiB0aXRsZT1cIlRhbWJhaCBDUExcIiBzY3JvbGxhYmxlIEBvaz1cImhhbmRsZVBpbGloQ3BsXCIgc2l6ZT1cInhsXCIgbm8tY2xvc2Utb24tYmFja2Ryb3Agbm8tY2xvc2Utb24tZXNjPlxuICAgICAgICAgICAgPHRlbXBsYXRlPlxuICAgICAgICAgICAgICA8Yi1jb250YWluZXIgZmx1aWQ+XG4gICAgICAgICAgICAgICAgPCEtLSBVc2VyIEludGVyZmFjZSBjb250cm9scyAtLT5cbiAgICAgICAgICAgICAgICA8Yi1yb3c+XG4gICAgICAgICAgICAgICAgICA8Yi1jb2wgbGc9XCIxMlwiIGNsYXNzPVwibXktMVwiPlxuICAgICAgICAgICAgICAgICAgPGItZm9ybS1ncm91cFxuICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIkZpbHRlclwiXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsLWZvcj1cImZpbHRlci1pbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsLWNvbHMtc209XCIzXCJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWwtYWxpZ24tc209XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsLXNpemU9XCJzbVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWItMFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxiLWlucHV0LWdyb3VwIHNpemU9XCJzbVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxiLWZvcm0taW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiZmlsdGVyLWlucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmaWx0ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlR5cGUgdG8gU2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9iLWZvcm0taW5wdXQ+XG5cbiAgICAgICAgICAgICAgICAgICAgICA8Yi1pbnB1dC1ncm91cC1hcHBlbmQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Yi1idXR0b24gOmRpc2FibGVkPVwiIWZpbHRlclwiIEBjbGljaz1cImZpbHRlciA9ICcnXCI+Q2xlYXI8L2ItYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvYi1pbnB1dC1ncm91cC1hcHBlbmQ+XG4gICAgICAgICAgICAgICAgICAgIDwvYi1pbnB1dC1ncm91cD5cbiAgICAgICAgICAgICAgICAgIDwvYi1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgIDwvYi1jb2w+XG4gICAgICAgICAgICAgICAgICAgICA8Yi10YWJsZSA6aXRlbXM9XCJwaWxpaGFuY3BsXCIgOmZpZWxkcz1cImZpZWxkc1wiIHNlbGVjdGFibGUgOnNlbGVjdC1tb2RlPVwiJ211bHRpJ1wiIEByb3ctc2VsZWN0ZWQ9XCJvblJvd1NlbGVjdGVkXCIgcmVmPVwic2VsZWN0YWJsZVRhYmxlXCIgOmZpbHRlcj1cImZpbHRlclwiIEBmaWx0ZXJlZD1cIm9uRmlsdGVyZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgI3RhYmxlLWNvbGdyb3VwPVwic2NvcGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxjb2xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdi1mb3I9XCJmaWVsZCBpbiBzY29wZS5maWVsZHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICA6a2V5PVwiZmllbGQua2V5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOnN0eWxlPVwieyB3aWR0aDogZmllbGQua2V5ID09PSAna29kZUNwbCcgPyAnMjAlJzogJzQwJScgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPC9iLXRhYmxlPlxuICAgICAgICAgICAgICAgIDwvYi1yb3c+XG4gICAgICAgICAgICAgIDwvYi1jb250YWluZXI+XG4gICAgICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgICAgIDwvYi1tb2RhbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgdi1pZj1cInRhYi5pZCA9PT0gM1wiPlxuICAgICAgICAgIDxiLXRhYmxlIHN0cmlwZWQgaG92ZXIgOml0ZW1zPVwibWVkaWFcIiA6ZmllbGRzPVwiZmllbGRNZWRpYVwiPlxuICAgICAgICAgICAgPHRlbXBsYXRlIHYtc2xvdDpjZWxsKGFjdGlvbnMpPVwieyBpdGVtIH1cIj5cbiAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgPGItYnRuIHNpemU9XCJzbVwiIHZhcmlhbnQ9XCJwcmltYXJ5XCIgQGNsaWNrPVwiZWRpdE1lZGlhKGl0ZW0pXCI+RWRpdDwvYi1idG4+XG4gICAgICAgICAgICAgICAgPGItYnRuIHNpemU9XCJzbVwiIHZhcmlhbnQ9XCJkYW5nZXJcIiBAY2xpY2s9XCJoYXB1c01lZGlhKGl0ZW0pXCI+SGFwdXM8L2ItYnRuPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgICAgIDwvYi10YWJsZT5cbiAgICAgICAgICA8Yi1idXR0b24gdi1iLW1vZGFsLm1vZGFsLTM+VGFtYmFoIE1lZGlhIFBlbWJlbGFqYXJhbjwvYi1idXR0b24+XG4gICAgICAgICAgPGItbW9kYWwgaWQ9XCJtb2RhbC0zXCIgOnRpdGxlPVwiZm1lZGlhLmlkID8gJ0VkaXQgTWVkaWEgUGVtYmVsYWphcmFuJyA6ICdUYW1iYWggTWVkaWEgUGVtYmVsYWphcmFuJ1wiIEBvaz1cImhhbmRsZU1lZGlhXCIgQGhpZGRlbj1cInJlc2V0TWVkaWFcIiBzaXplPVwibFwiIG5vLWNsb3NlLW9uLWJhY2tkcm9wIG5vLWNsb3NlLW9uLWVzYz5cbiAgICAgICAgICAgIDxmb3JtPlxuICAgICAgICAgICAgICBUYW5kYSAqIG1lbmFuZGFrYW4gd2FqaWIgZGkgaXNpXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIm5hbWFNZWRpYVwiPiogTmFtYSBtZWRpYTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cImZtZWRpYS5uYW1hXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBpZD1cIm5hbWFfbWVkaWFcIiBhcmlhLWRlc2NyaWJlZGJ5PVwibmFtYW1lZGlhaGVscFwiIHBsYWNlaG9sZGVyPVwiTWFzdWtrYW4gbmFtYSBtZWRpYVwiPlxuICAgICAgICAgICAgICAgIDxzbWFsbCBpZD1cIm5hbWFtZWRpYWhlbHBcIiAgIGNsYXNzPVwiZm9ybS10ZXh0IHRleHQtbXV0ZWRcIj5NZWRpYSBiYW50dSBwZW1iZWxha2FyYW4gY29udG9oIDogcG93ZXIgcG9pbnQsIHF1aXp6ZXosIHBhcGFuIHR1bGlzLCBrb21wdXRlciwgcHJveWVrdG9yIDwvc21hbGw+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJuYW1hTWVkaWFcIj4qIEthdGVnb3JpPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAgdi1tb2RlbD1cImZtZWRpYS5rYXRlZ29yaVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJrYXRlZ29yaVwiIGFyaWEtZGVzY3JpYmVkYnk9XCJrYXRlZ29yaWhlbHBcIiBwbGFjZWhvbGRlcj1cIk1hc3Vra2FuIGthdGVnb3JpXCI+XG4gICAgICAgICAgICAgICAgPHNtYWxsIGlkPVwia2F0ZWdvcmloZWxwXCIgY2xhc3M9XCJmb3JtLXRleHQgdGV4dC1tdXRlZFwiPkthdGVnb3JpIG1lZGlhLCBjb250b2ggOiBzb2Z0d2FyZSwgaGFyZHdhcmUgPC9zbWFsbD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgPC9iLW1vZGFsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiB2LWlmPVwidGFiLmlkID09PSA0XCI+XG4gICAgICAgICAgPGItdGFibGUgc3RyaXBlZCBob3ZlciA6aXRlbXM9XCJzdW1iZXJcIiA6ZmllbGRzPVwiZmllbGRTdW1iZXJcIj5cbiAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LXNsb3Q6Y2VsbChhY3Rpb25zKT1cInsgaXRlbSB9XCI+XG4gICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgIDxiLWJ0biBzaXplPVwic21cIiB2YXJpYW50PVwicHJpbWFyeVwiIEBjbGljaz1cImVkaXRTdW1iZXIoaXRlbSlcIj5FZGl0PC9iLWJ0bj5cbiAgICAgICAgICAgICAgICA8Yi1idG4gc2l6ZT1cInNtXCIgdmFyaWFudD1cImRhbmdlclwiIEBjbGljaz1cImhhcHVzU3VtYmVyKGl0ZW0pXCI+SGFwdXM8L2ItYnRuPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgICAgIDwvYi10YWJsZT5cbiAgICAgICAgICA8Yi1idXR0b24gdi1iLW1vZGFsLm1vZGFsLTQ+VGFtYmFoIFN1bWJlcjwvYi1idXR0b24+XG4gICAgICAgICAgPGItbW9kYWwgaWQ9XCJtb2RhbC00XCIgOnRpdGxlPVwiZnN1bWJlci5pZCA/ICdFZGl0IFN1bWJlcicgOiAnVGFtYmFoIFN1bWJlcidcIiBAb2s9XCJoYW5kbGVQdXN0YWthXCIgQGhpZGRlbj1cInJlc2V0U3VtYmVyXCIgc2l6ZT1cImxcIiBuby1jbG9zZS1vbi1iYWNrZHJvcCBuby1jbG9zZS1vbi1lc2M+XG4gICAgICAgICAgICA8Zm9ybT5cbiAgICAgICAgICAgICAgVGFuZGEgKiBtZW5hbmRha2FuIHdhamliIGRpIGlzaVxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJuYW1hTWVkaWFcIj4qTmFtYSBzdW1iZXIgcHVzdGFrYTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cImZzdW1iZXIubmFtYVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJuYW1hX21lZGlhXCIgYXJpYS1kZXNjcmliZWRieT1cIm5hbWFtZWRpYWhlbHBcIiBwbGFjZWhvbGRlcj1cIk1hc3Vra2FuIG5hbWEgbWVkaWFcIj5cbiAgICAgICAgICAgICAgICA8c21hbGwgaWQ9XCJuYW1hbWVkaWFoZWxwXCIgICBjbGFzcz1cImZvcm0tdGV4dCB0ZXh0LW11dGVkXCI+U3VtYmVyIGJhaGFuIGFqYXIgPC9zbWFsbD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIm5hbWFNZWRpYVwiPiogS2F0ZWdvcmk8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiICB2LW1vZGVsPVwiZnN1bWJlci5rYXRlZ29yaVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJrYXRlZ29yaVwiIGFyaWEtZGVzY3JpYmVkYnk9XCJrYXRlZ29yaWhlbHBcIiBwbGFjZWhvbGRlcj1cIk1hc3Vra2FuIGthdGVnb3JpXCI+XG4gICAgICAgICAgICAgICAgPHNtYWxsIGlkPVwia2F0ZWdvcmloZWxwXCIgY2xhc3M9XCJmb3JtLXRleHQgdGV4dC1tdXRlZFwiPkthdGVnb3JpIGNvbnRvaCBidWt1LCBqdXJuYWwgLCBkbGwgPC9zbWFsbD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgPC9iLW1vZGFsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiB2LWlmPVwidGFiLmlkID09PSA1XCI+XG4gICAgICAgICAgPGItdGFibGUgc3RyaXBlZCBob3ZlciA6aXRlbXM9XCJjcG1rXCIgOmZpZWxkcz1cImZpZWxkQ3Bta1wiPlxuICAgICAgICAgICAgPHRlbXBsYXRlIHYtc2xvdDpjZWxsKG5hbWFDcG1rKT1cInsgaXRlbSB9XCI+XG4gICAgICAgICAgICAgIDxkaXYgdi1odG1sPVwiaXRlbS5uYW1hQ3Bta1wiPiA8L2Rpdj5cbiAgICAgICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICAgICAgICA8dGVtcGxhdGUgdi1zbG90OmNlbGwoYWN0aW9ucyk9XCJ7IGl0ZW0gfVwiPlxuICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICA8Yi1idG4gc2l6ZT1cInNtXCIgdmFyaWFudD1cInByaW1hcnlcIiBAY2xpY2s9XCJlZGl0Q3BtayhpdGVtKVwiPkVkaXQ8L2ItYnRuPlxuICAgICAgICAgICAgICAgIDxiLWJ0biBzaXplPVwic21cIiB2YXJpYW50PVwiZGFuZ2VyXCIgQGNsaWNrPVwiaGFwdXNDcG1rKGl0ZW0pXCI+SGFwdXM8L2ItYnRuPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgICAgIDwvYi10YWJsZT5cbiAgICAgICAgICA8Yi1idXR0b24gdi1iLW1vZGFsLm1vZGFsLTU+VGFtYmFoIENQTUs8L2ItYnV0dG9uPlxuICAgICAgICAgIDxiLW1vZGFsIGlkPVwibW9kYWwtNVwiIHRpdGxlPVwiVGFtYmFoIENQTUtcIiBAb2s9XCJoYW5kbGVDcG1rXCIgQGhpZGRlbj1cInJlc2V0Q21wa1wiIHNpemU9XCJ4bFwiIG5vLWNsb3NlLW9uLWJhY2tkcm9wIG5vLWNsb3NlLW9uLWVzYz5cbiAgICAgICAgICAgIDxmb3JtPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02XCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiY3BsXCI+Q2FwYWlhbiBQcm9maWxlIEx1bHVzYW48L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8Yi1mb3JtLXNlbGVjdCB2LW1vZGVsPVwiZmNwbWsua29kZUNwbFwiIDpvcHRpb25zPVwib3B0aW9uc0NwbFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlICNmaXJzdD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxiLWZvcm0tc2VsZWN0LW9wdGlvbiA6dmFsdWU9XCJudWxsXCIgZGlzYWJsZWQ+LS0gU2lsYWhrYW4gcGlsaWggLS08L2ItZm9ybS1zZWxlY3Qtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvYi1mb3JtLXNlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgPHNtYWxsIGlkPVwiY3BsXCIgICBjbGFzcz1cImZvcm0tdGV4dCB0ZXh0LW11dGVkXCI+UGlsaWggY2FwYWluIHByb2ZpbGUgbHVsdXNhbiB5YW5nIGRpYmViYW5ua2FuIHBhZGEgbWF0YSBrdWxpYWggaW5pIDwvc21hbGw+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTZcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwibmFtYU1lZGlhXCI+S29kZSBDUE1LPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHNpemU9XCIxMFwiICB2LW1vZGVsPVwiZmNwbWsua29kZUNwbWtcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwia2F0ZWdvcmlcIiBhcmlhLWRlc2NyaWJlZGJ5PVwia2F0ZWdvcmloZWxwXCIgcGxhY2Vob2xkZXI9XCJNYXN1a2thbiBrb2RlIGNwbWtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbCBpZD1cIm5hbWFtZWRpYWhlbHBcIiAgIGNsYXNzPVwiZm9ybS10ZXh0IHRleHQtbXV0ZWRcIj5Lb2RlIENQTUsgYmlhc2FueWEgYmVydXBhIENQTUswMDEsIENQTUswMDIgLCBkc3QgbnlhIC4uIDwvc21hbGw+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTRcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwibmFtYU1lZGlhXCI+S29kZSBCbG9vbSBDb2duaXRpZjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Yi1mb3JtLXNlbGVjdCB2LW1vZGVsPVwiZmNwbWsua29kZUJsb29tQ1wiIDpvcHRpb25zPVwib3BzaUJsb29tc0NcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIHYtb246Y2hhbmdlPVwiZ2V0S2F0YUtlcmphQ2NwbWsoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgI2ZpcnN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiLWZvcm0tc2VsZWN0LW9wdGlvbiA6dmFsdWU9XCJudWxsXCIgZGlzYWJsZWQ+LS0gU2lsYWhrYW4gcGlsaWggLS08L2ItZm9ybS1zZWxlY3Qtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9iLWZvcm0tc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgbXQtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWluZm9cIiB2LWlmPVwiYmxvb21DV29yZENwbWsubGVuZ3RoPjBcIiA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+S2F0YSBrZXJqYSB5YW5nIGRhcGF0IGRpZ3VuYWthbiA6IDwvc3Ryb25nPiA8YnIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdi1mb3I9XCJ3IGluIGJsb29tQ1dvcmRDcG1rXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGItYmFkZ2UgdmFyaWFudD1cImluZm9cIj57eyB3IH19PC9iLWJhZGdlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTRcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwibmFtYU1lZGlhXCI+S29kZSBCbG9vbSBBZmVrdGlmPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxiLWZvcm0tc2VsZWN0IHYtbW9kZWw9XCJmY3Btay5rb2RlQmxvb21BXCIgOm9wdGlvbnM9XCJvcHNpQmxvb21zQVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgdi1vbjpjaGFuZ2U9XCJnZXRLYXRhS2VyamFBY3BtaygpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSAjZmlyc3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGItZm9ybS1zZWxlY3Qtb3B0aW9uIDp2YWx1ZT1cIm51bGxcIj4tLSBTaWxhaGthbiBwaWxpaCAtLTwvYi1mb3JtLXNlbGVjdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ItZm9ybS1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtdC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtaW5mb1wiIHYtaWY9XCJibG9vbUFXb3JkQ3Btay5sZW5ndGg+MFwiID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5LYXRhIGtlcmphIHlhbmcgZGFwYXQgZGlndW5ha2FuIDogPC9zdHJvbmc+IDxiciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiB2LWZvcj1cIncgaW4gYmxvb21BV29yZENwbWtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Yi1iYWRnZSB2YXJpYW50PVwiaW5mb1wiPnt7IHcgfX08L2ItYmFkZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJuYW1hTWVkaWFcIj5Lb2RlIEJsb29tIFBzaWtvbW90b3JpPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxiLWZvcm0tc2VsZWN0IHYtbW9kZWw9XCJmY3Btay5rb2RlQmxvb21QXCIgOm9wdGlvbnM9XCJvcHNpQmxvb21zUFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgdi1vbjpjaGFuZ2U9XCJnZXRLYXRhS2VyamFQY3BtaygpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSAjZmlyc3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGItZm9ybS1zZWxlY3Qtb3B0aW9uIDp2YWx1ZT1cIm51bGxcIj4tLSBTaWxhaGthbiBwaWxpaCAtLTwvYi1mb3JtLXNlbGVjdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ItZm9ybS1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtdC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtaW5mb1wiIHYtaWY9XCJibG9vbVBXb3JkQ3Btay5sZW5ndGg+MFwiID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5LYXRhIGtlcmphIHlhbmcgZGFwYXQgZGlndW5ha2FuIDogPC9zdHJvbmc+IDxiciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiB2LWZvcj1cIncgaW4gYmxvb21QV29yZENwbWtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Yi1iYWRnZSB2YXJpYW50PVwiaW5mb1wiPnt7IHcgfX08L2ItYmFkZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwibmFtYU1lZGlhXCI+RGVza3JpcHNpIENQTUs8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDx2dWUtZWRpdG9yXG4gICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZmNwbWsubmFtYUNwbWtcIlxuICAgICAgICAgICAgICAgID48L3Z1ZS1lZGl0b3I+XG4gICAgICAgICAgICAgICAgPHNtYWxsIGlkPVwibmFtYW1lZGlhaGVscFwiICAgY2xhc3M9XCJmb3JtLXRleHQgdGV4dC1tdXRlZFwiPkRlc2tyaXBzaSBjYXBhaWFuIG1hdGEga3VsaWFoIG1lbmdhbmR1bmcgPHN0cm9uZz4ga2F0YSBrZXJqYSA8L3N0cm9uZz4gc2VzdWFpIGRlbmdhbiA8c3Ryb25nPiBUYXhvbm9teSBibG9vbXMgPC9zdHJvbmc+IHlhbmcgZGkgcGlsaWgsIGNvbnRvaCA6IG1haGFzaXN3YSBtYW1wdSA8c3Ryb25nPiBtZXJhbmNhbmcgPC9zdHJvbmc+ICwgPHN0cm9uZz4gbWVueWVidXRrYW4gPC9zdHJvbmc+LCA8c3Ryb25nPiBtZWJhbmd1biA8L3N0cm9uZz48L3NtYWxsPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICA8L2ItbW9kYWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IHYtaWY9XCJ0YWIuaWQgPT09IDZcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtYi0zIG10LTNcIj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxiLWJ1dHRvbiB2LWItbW9kYWwubW9kYWwtNj5UYW1iYWggU3ViIENQTUs8L2ItYnV0dG9uPlxuICAgICAgICAgICAgICA8Yi1idXR0b24gdmFyaWFudD1cInN1Y2Nlc3NcIiBAY2xpY2s9XCJzeW5jVG9Nb29kbGUoKVwiIDpkaXNhYmxlZD1cInN5bmNMb2FkaW5nXCIgY2xhc3M9XCJtbC0yXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gdi1pZj1cInN5bmNMb2FkaW5nXCI+XG4gICAgICAgICAgICAgICAgICA8Yi1zcGlubmVyIHNtYWxsPjwvYi1zcGlubmVyPiBTeW5jaW5nLi4uXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIHYtZWxzZT5TeW5jIGtlIE1vb2RsZTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9iLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGItYmFkZ2UgOnZhcmlhbnQ9XCJ0b3RhbFByb3NlbnRhc2UgPT09IDEwMCA/ICdzdWNjZXNzJyA6ICdkYW5nZXInXCIgY2xhc3M9XCJweC0zIHB5LTJcIiBzdHlsZT1cImZvbnQtc2l6ZTogMC45NXJlbTtcIj5cbiAgICAgICAgICAgICAgVG90YWwgUHJvc2VudGFzZToge3sgdG90YWxQcm9zZW50YXNlIH19JVxuICAgICAgICAgICAgPC9iLWJhZGdlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxiLWFsZXJ0IHYtaWY9XCJzeW5jUmVzdWx0XCIgOnZhcmlhbnQ9XCJzeW5jUmVzdWx0LnN1Y2Nlc3MgPyAnc3VjY2VzcycgOiAnZGFuZ2VyJ1wiIHNob3cgZGlzbWlzc2libGUgQGRpc21pc3NlZD1cInN5bmNSZXN1bHQgPSBudWxsXCIgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgICA8ZGl2IHYtaWY9XCJzeW5jUmVzdWx0LnN1Y2Nlc3NcIj5cbiAgICAgICAgICAgICAgPHN0cm9uZz5TeW5jIGJlcmhhc2lsITwvc3Ryb25nPiB7eyBzeW5jUmVzdWx0LnRvdGFsX2NvdXJzZXMgfX0gY291cnNlIGRpdGVtdWthbi5cbiAgICAgICAgICAgICAgPGRpdiB2LWZvcj1cIihyLCBpZHgpIGluIHN5bmNSZXN1bHQucmVzdWx0c1wiIDprZXk9XCJpZHhcIiBjbGFzcz1cIm10LTFcIj5cbiAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IHIuc2hvcnRuYW1lIH19PC9zdHJvbmc+ICh7eyByLmlkbnVtYmVyIH19KTpcbiAgICAgICAgICAgICAgICA8c3BhbiB2LWlmPVwici5zdGF0dXMgPT09ICdzeW5jZWQnXCI+XG4gICAgICAgICAgICAgICAgICBUb3Bpazoge3sgci51cGRhdGVkIH19IHVwZGF0ZWQsIHt7IHIuaW5zZXJ0ZWQgfX0gaW5zZXJ0ZWQgfFxuICAgICAgICAgICAgICAgICAgS2F0ZWdvcmkgTmlsYWk6IHt7IHIuY3BsX3N5bmNlZCB9fSBDUEwsIHt7IHIuY3Bta19zeW5jZWQgfX0gQ1BNS1xuICAgICAgICAgICAgICAgICAgPHNwYW4gdi1pZj1cInIuZXJyb3JzICYmIHIuZXJyb3JzLmxlbmd0aCA+IDBcIiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+PGJyPkVycm9yczoge3sgci5lcnJvcnMuam9pbignLCAnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gdi1lbHNlIGNsYXNzPVwidGV4dC13YXJuaW5nXCI+e3sgci5tZXNzYWdlIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiB2LWVsc2U+XG4gICAgICAgICAgICAgIDxzdHJvbmc+R2FnYWw6PC9zdHJvbmc+IHt7IHN5bmNSZXN1bHQuZXJyb3IgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvYi1hbGVydD5cbiAgICAgICAgICA8Yi1pbnB1dC1ncm91cCBzaXplPVwic21cIiBjbGFzcz1cIm1iLTNcIiBzdHlsZT1cIm1heC13aWR0aDogNDAwcHg7XCI+XG4gICAgICAgICAgICA8Yi1mb3JtLWlucHV0IHYtbW9kZWw9XCJzdWJjcG1rRmlsdGVyXCIgdHlwZT1cInNlYXJjaFwiIHBsYWNlaG9sZGVyPVwiQ2FyaSBTdWIgQ1BNSy4uLlwiPjwvYi1mb3JtLWlucHV0PlxuICAgICAgICAgICAgPGItaW5wdXQtZ3JvdXAtYXBwZW5kPlxuICAgICAgICAgICAgICA8Yi1idXR0b24gOmRpc2FibGVkPVwiIXN1YmNwbWtGaWx0ZXJcIiBAY2xpY2s9XCJzdWJjcG1rRmlsdGVyID0gJydcIj5DbGVhcjwvYi1idXR0b24+XG4gICAgICAgICAgICA8L2ItaW5wdXQtZ3JvdXAtYXBwZW5kPlxuICAgICAgICAgIDwvYi1pbnB1dC1ncm91cD5cbiAgICAgICAgICA8Yi10YWJsZSBzdHJpcGVkIGhvdmVyIDppdGVtcz1cInN1YmNwbWtcIiA6ZmllbGRzPVwiZmllbGRTdWJDcG1rXCIgOmZpbHRlcj1cInN1YmNwbWtGaWx0ZXJcIiA6dGJvZHktdHItY2xhc3M9XCJzdWJjcG1rUm93Q2xhc3NcIj5cbiAgICAgICAgICAgIDx0ZW1wbGF0ZSAjY2VsbChubyk9XCJpdGVtXCI+XG4gICAgICAgICAgICAgIHt7IGl0ZW0uaW5kZXggKyAxIH19XG4gICAgICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgICAgICAgPHRlbXBsYXRlIHYtc2xvdDpjZWxsKHVydXRhbik9XCJ7IGl0ZW0sIGluZGV4IH1cIj5cbiAgICAgICAgICAgICAgPGItYnRuIHNpemU9XCJzbVwiIHZhcmlhbnQ9XCJvdXRsaW5lLXNlY29uZGFyeVwiIEBjbGljaz1cIm1vdmVTdWJDcG1rKGl0ZW0sICd1cCcpXCIgOmRpc2FibGVkPVwiaW5kZXggPT09IDBcIiBjbGFzcz1cInB4LTEgcHktMFwiPiYjOTY1MDs8L2ItYnRuPlxuICAgICAgICAgICAgICA8Yi1idG4gc2l6ZT1cInNtXCIgdmFyaWFudD1cIm91dGxpbmUtc2Vjb25kYXJ5XCIgQGNsaWNrPVwibW92ZVN1YkNwbWsoaXRlbSwgJ2Rvd24nKVwiIDpkaXNhYmxlZD1cImluZGV4ID09PSBzdWJjcG1rLmxlbmd0aCAtIDFcIiBjbGFzcz1cInB4LTEgcHktMCBtbC0xXCI+JiM5NjYwOzwvYi1idG4+XG4gICAgICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgICAgICAgPHRlbXBsYXRlIHYtc2xvdDpjZWxsKGFjdGlvbnMpPVwieyBpdGVtIH1cIj5cbiAgICAgICAgICAgICAgPGItYnRuIHNpemU9XCJzbVwiIHZhcmlhbnQ9XCJwcmltYXJ5XCIgQGNsaWNrPVwiZWRpdFN1YkNwbWsoaXRlbSlcIj5FZGl0PC9iLWJ0bj5cbiAgICAgICAgICAgICAgPGItYnRuIHNpemU9XCJzbVwiIHZhcmlhbnQ9XCJpbmZvXCIgQGNsaWNrPVwiY29weVN1YkNwbWsoaXRlbSlcIiBjbGFzcz1cIm1sLTFcIj5Db3B5PC9iLWJ0bj5cbiAgICAgICAgICAgICAgPGItYnRuIHNpemU9XCJzbVwiIHZhcmlhbnQ9XCJkYW5nZXJcIiBAY2xpY2s9XCJoYXB1c1N1YkNwbWsoaXRlbSlcIiBjbGFzcz1cIm1sLTFcIj5IYXB1czwvYi1idG4+XG4gICAgICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgICAgICAgPHRlbXBsYXRlIHYtc2xvdDpjZWxsKGRlc2tyaXBzaSk9XCJ7IGl0ZW0gfVwiPlxuICAgICAgICAgICAgICA8ZGl2IHYtaWY9XCJpdGVtLmRlc2tyaXBzaVwiPiA8c3Ryb25nPiBEZXNrcmlwc2kgOiA8L3N0cm9uZz4gPHNwYW4gdi1odG1sPVwiaXRlbS5kZXNrcmlwc2lcIj4gPC9zcGFuPiA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiB2LWlmPVwiaXRlbS5tYXRlcmlcIj4gPHN0cm9uZz4gTWF0ZXJpIDogPC9zdHJvbmc+IDxzcGFuIHYtaHRtbD1cIml0ZW0ubWF0ZXJpXCI+IDwvc3Bhbj48L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiB2LWlmPVwiaXRlbS5pbmRpa2F0b3JcIj48c3Ryb25nPiBJbmRpa2F0b3IgOiA8L3N0cm9uZz4gPHNwYW4gdi1odG1sPVwiaXRlbS5pbmRpa2F0b3JcIj4gPC9zcGFuPjwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IHYtaWY9XCJpdGVtLm1ldG9kZVwiPjxzdHJvbmc+IE1ldG9kZSA6IDwvc3Ryb25nPiA8c3BhbiB2LWh0bWw9XCJpdGVtLm1ldG9kZVwiPiA8L3NwYW4+PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgdi1pZj1cIml0ZW0ubHVyaW5nXCI+PHN0cm9uZz4gTHVyaW5nIDogPC9zdHJvbmc+IDxzcGFuIHYtaHRtbD1cIml0ZW0ubHVyaW5nXCI+IDwvc3Bhbj48L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiB2LWlmPVwiaXRlbS5kYXJpbmdcIj48c3Ryb25nPiBEYXJpbmcgOiA8L3N0cm9uZz4gPHNwYW4gdi1odG1sPVwiaXRlbS5kYXJpbmdcIj4gPC9zcGFuPjwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IHYtaWY9XCJpdGVtLnB1c3Rha2FcIj4gPHN0cm9uZz4gUHVzdGFrYSA6IDwvc3Ryb25nPiA8c3BhbiB2LWh0bWw9XCJpdGVtLnB1c3Rha2FcIj4gPC9zcGFuPjwvZGl2PlxuICAgICAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LXNsb3Q6Y2VsbChhc3Nlc21lbnQpPVwieyBpdGVtIH1cIj5cbiAgICAgICAgICAgICAgPHN0cm9uZz4gQmVudHVrIEFzc2VzbWVudCA6IDwvc3Ryb25nPiB7eyBpdGVtLmJlbnR1a0Fzc2VzbWVudCB9fSA8YnIgLz5cbiAgICAgICAgICAgICAgPHN0cm9uZz4gTmFtYSBBc3Nlc21lbnQgOiA8L3N0cm9uZz4ge3sgaXRlbS5uYW1hQXNzZXNtZW50IH19IDxiciAvPlxuICAgICAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgICAgICA8L2ItdGFibGU+XG4gICAgICAgICAgPGItbW9kYWwgaWQ9XCJtb2RhbC02XCIgdGl0bGU9XCJUYW1iYWggU3ViIENQTUtcIiBzY3JvbGxhYmxlIEBvaz1cImhhbmRsZVN1YkNwbWtcIiBzaXplPVwieGxcIiBAaGlkZGVuPVwicmVzZXRTdWJDbXBrXCIgbm8tY2xvc2Utb24tYmFja2Ryb3Agbm8tY2xvc2Utb24tZXNjPlxuICAgICAgICAgICAgPGZvcm0+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTZcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJuYW1hTWVkaWFcIj5NaW5nZ3Uga2U8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAgdi1tb2RlbD1cImZzY3Btay5taW5nZ3VrZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJrYXRlZ29yaVwiIGFyaWEtZGVzY3JpYmVkYnk9XCJrYXRlZ29yaWhlbHBcIiBwbGFjZWhvbGRlcj1cIk1pbmdndSBrZSBiZXJhcGFcIiAvPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02XCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwibmFtYU1lZGlhXCI+UGlsaWggQ1BNSzwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxiLWZvcm0tc2VsZWN0IHYtbW9kZWw9XCJmc2NwbWsua29kZUNwbWtcIiA6b3B0aW9ucz1cIm9wdGlvbnNDcG1rXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgI2ZpcnN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGItZm9ybS1zZWxlY3Qtb3B0aW9uIDp2YWx1ZT1cIm51bGxcIiBkaXNhYmxlZD4tLSBTaWxhaGthbiBwaWxpaCAtLTwvYi1mb3JtLXNlbGVjdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPC9iLWZvcm0tc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC00XCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIm5hbWFNZWRpYVwiPktvZGUgQmxvb20gQ29nbml0aWY8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGItZm9ybS1zZWxlY3Qgdi1tb2RlbD1cImZzY3Btay5rb2RlQmxvb21DXCIgOm9wdGlvbnM9XCJvcHNpQmxvb21zQ1wiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgdi1vbjpjaGFuZ2U9XCJnZXRLYXRhS2VyamFDKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlICNmaXJzdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Yi1mb3JtLXNlbGVjdC1vcHRpb24gOnZhbHVlPVwibnVsbFwiIGRpc2FibGVkPi0tIFNpbGFoa2FuIHBpbGloIC0tPC9iLWZvcm0tc2VsZWN0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYi1mb3JtLXNlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG10LTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1pbmZvXCIgdi1pZj1cImJsb29tQ1dvcmQubGVuZ3RoPjBcIiA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+S2F0YSBrZXJqYSB5YW5nIGRhcGF0IGRpZ3VuYWthbiA6IDwvc3Ryb25nPiA8YnIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdi1mb3I9XCJ3IGluIGJsb29tQ1dvcmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Yi1iYWRnZSB2YXJpYW50PVwiaW5mb1wiPnt7IHcgfX08L2ItYmFkZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJuYW1hTWVkaWFcIj5Lb2RlIEJsb29tIEFmZWt0aWY8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGItZm9ybS1zZWxlY3Qgdi1tb2RlbD1cImZzY3Btay5rb2RlQmxvb21BXCIgOm9wdGlvbnM9XCJvcHNpQmxvb21zQVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgdi1vbjpjaGFuZ2U9XCJnZXRLYXRhS2VyamFBKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlICNmaXJzdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Yi1mb3JtLXNlbGVjdC1vcHRpb24gOnZhbHVlPVwibnVsbFwiPi0tIFNpbGFoa2FuIHBpbGloIC0tPC9iLWZvcm0tc2VsZWN0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYi1mb3JtLXNlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG10LTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1pbmZvXCIgdi1pZj1cImJsb29tQVdvcmQubGVuZ3RoPjBcIiA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+S2F0YSBrZXJqYSB5YW5nIGRhcGF0IGRpZ3VuYWthbiA6IDwvc3Ryb25nPiA8YnIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdi1mb3I9XCJ3IGluIGJsb29tQVdvcmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Yi1iYWRnZSB2YXJpYW50PVwiaW5mb1wiPnt7IHcgfX08L2ItYmFkZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJuYW1hTWVkaWFcIj5Lb2RlIEJsb29tIFBzaWtvbW90b3JpPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxiLWZvcm0tc2VsZWN0IHYtbW9kZWw9XCJmc2NwbWsua29kZUJsb29tUFwiIDpvcHRpb25zPVwib3BzaUJsb29tc1BcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIHYtb246Y2hhbmdlPVwiZ2V0S2F0YUtlcmphUCgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSAjZmlyc3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGItZm9ybS1zZWxlY3Qtb3B0aW9uIDp2YWx1ZT1cIm51bGxcIj4tLSBTaWxhaGthbiBwaWxpaCAtLTwvYi1mb3JtLXNlbGVjdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ItZm9ybS1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtdC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtaW5mb1wiIHYtaWY9XCJibG9vbVBXb3JkLmxlbmd0aD4wXCIgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPkthdGEga2VyamEgeWFuZyBkYXBhdCBkaWd1bmFrYW4gOiA8L3N0cm9uZz4gPGJyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHYtZm9yPVwidyBpbiBibG9vbVBXb3JkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGItYmFkZ2UgdmFyaWFudD1cImluZm9cIj57eyB3IH19PC9iLWJhZGdlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIm5hbWFNZWRpYVwiPkRlc2tyaXBzaSBTdWIgQ1BNSzwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPHZ1ZS1lZGl0b3JcbiAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmc2NwbWsuZGVza3JpcHNpXCJcbiAgICAgICAgICAgICAgICA+PC92dWUtZWRpdG9yPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwibmFtYU1lZGlhXCI+SW5kaWthdG9yPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8dnVlLWVkaXRvclxuICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZzY3Btay5pbmRpa2F0b3JcIlxuICAgICAgICAgICAgICAgID48L3Z1ZS1lZGl0b3I+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJuYW1hTWVkaWFcIj5NYXRlcmk8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDx2dWUtZWRpdG9yXG4gICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZnNjcG1rLm1hdGVyaVwiXG4gICAgICAgICAgICAgICAgPjwvdnVlLWVkaXRvcj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIm5hbWFNZWRpYVwiPk1ldG9kZTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPHZ1ZS1lZGl0b3JcbiAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmc2NwbWsubWV0b2RlXCJcbiAgICAgICAgICAgICAgICA+PC92dWUtZWRpdG9yPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwibmFtYU1lZGlhXCI+THVyaW5nPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8dnVlLWVkaXRvclxuICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZzY3Btay5sdXJpbmdcIlxuICAgICAgICAgICAgICAgID48L3Z1ZS1lZGl0b3I+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJuYW1hTWVkaWFcIj5EYXJpbmc8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDx2dWUtZWRpdG9yXG4gICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZnNjcG1rLmRhcmluZ1wiXG4gICAgICAgICAgICAgICAgPjwvdnVlLWVkaXRvcj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIm5hbWFNZWRpYVwiPkJlbnR1ayBBc3Nlc21lbnQ8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxiLWZvcm0tc2VsZWN0IHYtbW9kZWw9XCJmc2NwbWsuYmVudHVrQXNzZXNtZW50XCIgOm9wdGlvbnM9XCJvcHNpQmVudHVrQXNzZXNtZW50XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIj5cbiAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSAjZmlyc3Q+XG4gICAgICAgICAgICAgICAgICAgIDxiLWZvcm0tc2VsZWN0LW9wdGlvbiA6dmFsdWU9XCJudWxsXCI+LS0gU2lsYWhrYW4gcGlsaWggYmVudHVrIGFzc2VzbWVudCAtLTwvYi1mb3JtLXNlbGVjdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvYi1mb3JtLXNlbGVjdD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIm5hbWFNZWRpYVwiPk5hbWEgQXNzZW1lbnQ8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiICB2LW1vZGVsPVwiZnNjcG1rLm5hbWFBc3Nlc21lbnRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwia2F0ZWdvcmlcIiBhcmlhLWRlc2NyaWJlZGJ5PVwia2F0ZWdvcmloZWxwXCIgcGxhY2Vob2xkZXI9XCJNYXN1a2thbiBuYW1hIGFzc2VzbWVudFwiIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJuYW1hTWVkaWFcIj5Qcm9zZW50YXNlPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiICB2LW1vZGVsPVwiZnNjcG1rLnByb3NlbnRhc2VcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwia2F0ZWdvcmlcIiBhcmlhLWRlc2NyaWJlZGJ5PVwia2F0ZWdvcmloZWxwXCIgcGxhY2Vob2xkZXI9XCJNYXN1a2thbiBwcm9zZW50YXNlIHBlbmlsYWlhblwiIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJuYW1hTWVkaWFcIj5QaWxpaCBwdXN0YWthIHlhbmcgZGlndW5ha2FuPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8bXVsdGlzZWxlY3RcbiAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmc2NwbWsucHVzdGFrYVwiXG4gICAgICAgICAgICAgICAgICA6bXVsdGlwbGU9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgIDpjbG9zZS1vbi1zZWxlY3Q9XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICA6Y2xlYXItb24tc2VsZWN0PVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgOnByZXNlcnZlLXNlYXJjaD1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJQaWxpaCBwdXN0YWthXCJcbiAgICAgICAgICAgICAgICAgIGxhYmVsPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICB0cmFjay1ieT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgOm9wdGlvbnM9XCJvcHNpUHVzdGFrYVwiPlxuICAgICAgICAgICAgICAgIDwvbXVsdGlzZWxlY3Q+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgPC9iLW1vZGFsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiB2LWlmPVwidGFiLmlkID09PSA3XCI+XG4gICAgICAgICAgPGItdGFibGUgc3RyaXBlZCBob3ZlciA6aXRlbXM9XCJia1wiIDpmaWVsZHM9XCJmaWVsZEJhaGFuS2FqaWFuXCI+XG4gICAgICAgICAgICA8dGVtcGxhdGUgI3RhYmxlLWNvbGdyb3VwPVwic2NvcGVcIj5cbiAgICAgICAgICAgICAgPGNvbFxuICAgICAgICAgICAgICAgIHYtZm9yPVwiZmllbGQgaW4gc2NvcGUuZmllbGRzXCJcbiAgICAgICAgICAgICAgICA6a2V5PVwiZmllbGQua2V5XCJcbiAgICAgICAgICAgICAgICA6c3R5bGU9XCJ7IHdpZHRoOiBmaWVsZC5rZXkgPT09ICdrb2RlQmsnID8gJzEyMHB4JyA6ICcnIH1cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgICAgICAgPHRlbXBsYXRlIHYtc2xvdDpjZWxsKGFjdGlvbnMpPVwieyBpdGVtIH1cIj5cbiAgICAgICAgICAgICAgPHNwYW4+PGItYnRuIEBjbGljaz1cImhhcHVzQmsoaXRlbSlcIj5IYXB1czwvYi1idG4+PC9zcGFuPlxuICAgICAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgICAgICA8L2ItdGFibGU+XG4gICAgICAgICAgPGItYnV0dG9uIHYtYi1tb2RhbC5tb2RhbC03PlRhbWJhaCBCYWhhbiBLYWppYW48L2ItYnV0dG9uPlxuICAgICAgICAgIDxiLW1vZGFsIGlkPVwibW9kYWwtN1wiIHRpdGxlPVwiVGFtYmFoIEJhaGFuIEthamlhblwiIHNjcm9sbGFibGUgQG9rPVwiaGFuZGxlUGlsaWhCa1wiIHNpemU9XCJ4bFwiIG5vLWNsb3NlLW9uLWJhY2tkcm9wIG5vLWNsb3NlLW9uLWVzYz5cbiAgICAgICAgICAgIDx0ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPGItY29udGFpbmVyIGZsdWlkPlxuICAgICAgICAgICAgICAgIDwhLS0gVXNlciBJbnRlcmZhY2UgY29udHJvbHMgLS0+XG4gICAgICAgICAgICAgICAgPGItcm93PlxuICAgICAgICAgICAgICAgICAgPGItY29sIGxnPVwiMTJcIiBjbGFzcz1cIm15LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgPGItZm9ybS1ncm91cFxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiRmlsdGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICBsYWJlbC1mb3I9XCJmaWx0ZXItaW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsLWNvbHMtc209XCIzXCJcbiAgICAgICAgICAgICAgICAgICAgICBsYWJlbC1hbGlnbi1zbT1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICBsYWJlbC1zaXplPVwic21cIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWItMFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8Yi1pbnB1dC1ncm91cCBzaXplPVwic21cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxiLWZvcm0taW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJmaWx0ZXItaW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZmlsdGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiVHlwZSB0byBTZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvYi1mb3JtLWlucHV0PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8Yi1pbnB1dC1ncm91cC1hcHBlbmQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxiLWJ1dHRvbiA6ZGlzYWJsZWQ9XCIhZmlsdGVyXCIgQGNsaWNrPVwiZmlsdGVyID0gJydcIj5DbGVhcjwvYi1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ItaW5wdXQtZ3JvdXAtYXBwZW5kPlxuICAgICAgICAgICAgICAgICAgICAgIDwvYi1pbnB1dC1ncm91cD5cbiAgICAgICAgICAgICAgICAgICAgPC9iLWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgICA8L2ItY29sPlxuICAgICAgICAgICAgICAgICAgPGItdGFibGUgOml0ZW1zPVwicGlsaWhhbmJrXCIgOmZpZWxkcz1cIlsnbmFtYSddXCIgc2VsZWN0YWJsZSA6c2VsZWN0LW1vZGU9XCInbXVsdGknXCIgQHJvdy1zZWxlY3RlZD1cIm9uUm93U2VsZWN0ZWRCa1wiIHJlZj1cInNlbGVjdGFibGVUYWJsZVwiIDpmaWx0ZXI9XCJmaWx0ZXJcIiBAZmlsdGVyZWQ9XCJvbkZpbHRlcmVkXCI+XG4gICAgICAgICAgICAgICAgICA8L2ItdGFibGU+XG4gICAgICAgICAgICAgICAgPC9iLXJvdz5cbiAgICAgICAgICAgICAgPC9iLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICAgICAgPC9iLW1vZGFsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IE11bHRpc2VsZWN0IGZyb20gJ3Z1ZS1tdWx0aXNlbGVjdCc7XG5cblxuY29uc3QgZm9ybUVkaXRBbWJhbmcgPSB7XG4gICAgJ2FtYmFuZ19tayc6IG51bGwsXG4gICAgJ2FtYmFuZ19taHMnOiBudWxsXG59O1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGNvbXBvbmVudHM6IHsgTXVsdGlzZWxlY3QgfSxcbiAgcHJvcHM6IFtcInJwc0lkXCJdLFxuICBkYXRhKCkge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogdGhpcy5ycHNJZCxcbiAgICAgIGlkZW50aXRhczoge1xuICAgICAgICBrb2RlX21rOiAnJyxcbiAgICAgICAgbWsgOiAnJyxcbiAgICAgICAgZG9zZW46ICcnLFxuICAgICAgICBhbWJhbmdfbWFoYXNpc3dhOiAwLFxuICAgICAgICBhbWJhbmdfbWs6IDAsXG4gICAgICAgIHByb2dyYW1fc3R1ZGk6IG51bGwsXG4gICAgICB9LFxuICAgICAgZm1lZGlhOiB7XG4gICAgICAgIGlkOiBudWxsLFxuICAgICAgICBuYW1hOiAnJyxcbiAgICAgICAga2F0ZWdvcmk6ICcnXG4gICAgICB9LFxuICAgICAgZnN1bWJlcjoge1xuICAgICAgICBpZDogbnVsbCxcbiAgICAgICAgbmFtYTogJycsXG4gICAgICAgIGthdGVnb3JpOiAnJ1xuICAgICAgfSxcbiAgICAgIGZjcG1rOiB7XG4gICAgICAgIGlkOiBudWxsLFxuICAgICAgICBrb2RlQ3BsOiBudWxsLFxuICAgICAgICBrb2RlQ3BtazogJycsXG4gICAgICAgIG5hbWFDcG1rOiAnJyxcbiAgICAgICAga29kZUJsb29tQzogbnVsbCxcbiAgICAgICAga29kZUJsb29tQTogbnVsbCxcbiAgICAgICAga29kZUJsb29tUDogbnVsbFxuICAgICAgfSxcbiAgICAgIGZzY3Btazoge1xuICAgICAgICBtaW5nZ3VrZTogbnVsbCxcbiAgICAgICAgaWQ6IG51bGwsXG4gICAgICAgIGtvZGVDcG1rOiBudWxsLFxuICAgICAgICBkZXNrcmlwc2k6ICcnLFxuICAgICAgICBpbmRpa2F0b3I6ICcnLFxuICAgICAgICBtYXRlcmk6ICcnLFxuICAgICAgICBiZW50dWtBc3Nlc21lbnQ6IG51bGwsXG4gICAgICAgIG5hbWFBc3Nlc21lbnQ6ICcnLFxuICAgICAgICBtZXRvZGU6ICcnLFxuICAgICAgICBsdXJpbmc6ICcnLFxuICAgICAgICBkYXJpbmc6ICcnLFxuICAgICAgICBwcm9zZW50YXNlOiBudWxsLFxuICAgICAgICBrb2RlQmxvb21DOiBudWxsLFxuICAgICAgICBrb2RlQmxvb21BOiBudWxsLFxuICAgICAgICBrb2RlQmxvb21QOiBudWxsLFxuICAgICAgICBwdXN0YWthOiBbXSxcbiAgICAgIH0sXG4gICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgIGFjdGl2ZVRhYjogMSxcbiAgICAgIHRhYnM6IFtcbiAgICAgICAgeyBpZDogMSwgbGFiZWw6ICdJZGVudGl0YXMgZGFuIE90b3Jhc2knIH0sXG4gICAgICAgIHsgaWQ6IDIsIGxhYmVsOiAnQ1BMIFByb2RpJyB9LFxuICAgICAgICB7IGlkOiAzLCBsYWJlbDogJ01lZGlhIFBlbWJlbGFqYXJhbicgfSxcbiAgICAgICAgeyBpZDogNCwgbGFiZWw6ICdQdXN0YWthJyB9LFxuICAgICAgICB7IGlkOiA1LCBsYWJlbDogJ0NQTUsnIH0sXG4gICAgICAgIHsgaWQ6IDYsIGxhYmVsOiAnU3ViIENQTUsnIH0sXG4gICAgICAgIHsgaWQ6IDcsIGxhYmVsOiAnQmFoYW4gS2FqaWFuJyB9XG4gICAgICBdLFxuICAgICAgdGFiRGF0YToge30sXG4gICAgICBsaXN0UnBzOiBbXSxcbiAgICAgIGl0ZW1zOiBbXSxcbiAgICAgIHBpbGloYW5jcGw6IFtdLFxuICAgICAgYms6IFtdLFxuICAgICAgcGlsaWhhbmJrOiBbXSxcbiAgICAgIG1lZGlhOiBbXSxcbiAgICAgIHN1bWJlcjogW10sXG4gICAgICBjcG1rOiBbXSxcbiAgICAgIHN1YmNwbWs6IFtdLFxuICAgICAgZmllbGRzOiBbXSxcbiAgICAgIG9wdGlvbnNDcGw6IFtdLFxuICAgICAgb3B0aW9uc0NwbWs6IFtdLFxuICAgICAgb3BzaUJsb29tc0M6IFtdLFxuICAgICAgb3BzaUJsb29tc0E6IFtdLFxuICAgICAgb3BzaUJsb29tc1A6IFtdLFxuICAgICAgb3BzaVB1c3Rha2E6IFtdLFxuICAgICAgb3BzaUJlbnR1a0Fzc2VzbWVudDogW10sXG4gICAgICBvcHNpQmxvb21zOiBbXSxcbiAgICAgIHNlbGVjdGVkOiBbXSxcbiAgICAgIHNlbGVjdGVkQms6IFtdLFxuICAgICAgc2VsZWN0ZWRScHM6IFtdLFxuICAgICAgZmllbGRDcGw6IFsna29kZUNwbCcsJ2NwbCcsJ2FzcGVrJywgJ2FjdGlvbnMnXSxcbiAgICAgIGZpZWxkQmFoYW5LYWppYW46IFsnbmFtYScsICdhY3Rpb25zJ10sXG4gICAgICBmaWVsZE1lZGlhOiBbJ25hbWEnLCdrYXRlZ29yaScsICdhY3Rpb25zJ10sXG4gICAgICBmaWVsZFN1bWJlcjogWydzdW1iZXInLCdrYXRlZ29yaScsICdhY3Rpb25zJ10sXG4gICAgICBmaWVsZENwbWs6IFsna29kZUNQbCcsICdrb2RlQ3BtaycsJ25hbWFDcG1rJywnYmxvb20nLCdhY3Rpb25zJ10sXG4gICAgICBmaWVsZFN1YkNwbWs6IFsnbm8nLCd1cnV0YW4nLCdtaW5nZ3VrZScsJ2tvZGVDcG1rJywnZGVza3JpcHNpJywnYXNzZXNtZW50JywncHJvc2VudGFzZScsJ2Jsb29tJywnYWN0aW9ucyddLFxuICAgICAgc3luY0xvYWRpbmc6IGZhbHNlLFxuICAgICAgc3luY1Jlc3VsdDogbnVsbCxcbiAgICAgIHN1YmNwbWtGaWx0ZXI6IG51bGwsXG4gICAgICBmaWx0ZXI6IG51bGwsXG4gICAgICBibG9vbUNXb3JkOiBcIlwiLFxuICAgICAgYmxvb21BV29yZDogXCJcIixcbiAgICAgIGJsb29tUFdvcmQ6IFwiXCIsXG4gICAgICBibG9vbUNXb3JkQ3BtazogXCJcIixcbiAgICAgIGJsb29tQVdvcmRDcG1rOiBcIlwiLFxuICAgICAgYmxvb21QV29yZENwbWs6IFwiXCIsXG4gICAgICBjdXN0b21Ub29sYmFyOiBbXG4gICAgICAgIFtcImJvbGRcIiwgXCJpdGFsaWNcIiwgXCJ1bmRlcmxpbmVcIl0sXG4gICAgICAgIFt7IGxpc3Q6IFwib3JkZXJlZFwiIH0sIHsgbGlzdDogXCJidWxsZXRcIiB9XSxcbiAgICAgIF0sXG4gICAgICBvcHRpb25zRWRpdG9yOiB7XG4gICAgICAgIGZvcm1hdHM6IFtcbiAgICAgICAgICAnYm9sZCcsJ3VuZGVybGluZScsJ2l0YWxpYydcbiAgICAgICAgXSxcbiAgICAgICAgbW9kdWxlczoge1xuICAgICAgICAgIGNsaXBib2FyZDoge1xuICAgICAgICAgICAgbWF0Y2hWaXN1YWw6IGZhbHNlIC8vIGh0dHBzOi8vcXVpbGxqcy5jb20vZG9jcy9tb2R1bGVzL2NsaXBib2FyZC8jbWF0Y2h2aXN1YWxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfTtcbiAgfSxcbiAgY29tcHV0ZWQ6IHtcbiAgICB0b3RhbFByb3NlbnRhc2UoKSB7XG4gICAgICByZXR1cm4gdGhpcy5zdWJjcG1rLnJlZHVjZSgoc3VtLCBpdGVtKSA9PiBzdW0gKyAocGFyc2VJbnQoaXRlbS5wcm9zZW50YXNlKSB8fCAwKSwgMCk7XG4gICAgfVxuICB9LFxuICBtZXRob2RzOiB7XG4gICAgbG9hZEZpcnN0KCl7XG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgUHJvbWlzZS5hbGwoW1xuICAgICAgICBheGlvcy5nZXQoYC9hcGkvJHt0aGlzLnJwc0lkfS9pZGVudGl0YXNgKS50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICB0aGlzLmlkZW50aXRhcy5rb2RlX21rID0gcmVzcG9uc2UuZGF0YS5rb2RlX21hdGFfa3VsaWFoO1xuICAgICAgICAgIHRoaXMuaWRlbnRpdGFzLm1rID0gcmVzcG9uc2UuZGF0YS5uYW1hX21hdGFfa3VsaWFoO1xuICAgICAgICAgIHRoaXMuaWRlbnRpdGFzLmRvc2VuID0gcmVzcG9uc2UuZGF0YS5kb3NlbjtcbiAgICAgICAgICB0aGlzLmlkZW50aXRhcy5hbWJhbmdfbWFoYXNpc3dhID0gcmVzcG9uc2UuZGF0YS5hbWJhbmdfYmF0YXNfa2VsdWx1c2FuX21haGFzaXN3YTtcbiAgICAgICAgICB0aGlzLmlkZW50aXRhcy5hbWJhbmdfbWsgPSByZXNwb25zZS5kYXRhLmFtYmFuZ19iYXRhc19rZWx1bHVzYW5fbWF0YV9rdWxpYWg7XG4gICAgICAgICAgdGhpcy5pZGVudGl0YXMucHJvZ3JhbV9zdHVkaSA9IHJlc3BvbnNlLmRhdGEucHJvZ3JhbV9zdHVkaTtcbiAgICAgICAgfSksXG4gICAgICAgIGF4aW9zLmdldChgL2FwaS8ke3RoaXMucnBzSWR9L2xpc3QtcnBzYCkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgdGhpcy5saXN0UnBzID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgfSlcbiAgICAgIF0pLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgaWRlbnRpdGFzOicsIGVycm9yKTtcbiAgICAgIH0pLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgbG9hZFRhYkNvbnRlbnQodGFiSWQpIHtcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLmFjdGl2ZVRhYiA9IHRhYklkO1xuXG4gICAgICB2YXIgcHJvbWlzZXMgPSBbXTtcblxuICAgICAgaWYgKHRhYklkID09PSAxKSB7XG4gICAgICAgIHByb21pc2VzID0gW1xuICAgICAgICAgIGF4aW9zLmdldChgL2FwaS8ke3RoaXMucnBzSWR9L2lkZW50aXRhc2ApLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgdGhpcy5pZGVudGl0YXMubWsgPSByZXNwb25zZS5kYXRhLm5hbWFfbWF0YV9rdWxpYWg7XG4gICAgICAgICAgICB0aGlzLmlkZW50aXRhcy5kb3NlbiA9IHJlc3BvbnNlLmRhdGEuZG9zZW47XG4gICAgICAgICAgICB0aGlzLmlkZW50aXRhcy5hbWJhbmdfbWFoYXNpc3dhID0gcmVzcG9uc2UuZGF0YS5hbWJhbmdfYmF0YXNfa2VsdWx1c2FuX21haGFzaXN3YTtcbiAgICAgICAgICAgIHRoaXMuaWRlbnRpdGFzLmFtYmFuZ19tayA9IHJlc3BvbnNlLmRhdGEuYW1iYW5nX2JhdGFzX2tlbHVsdXNhbl9tYXRhX2t1bGlhaDtcbiAgICAgICAgICAgIHRoaXMuaWRlbnRpdGFzLnByb2dyYW1fc3R1ZGkgPSByZXNwb25zZS5kYXRhLnByb2dyYW1fc3R1ZGk7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgYXhpb3MuZ2V0KGAvYXBpLyR7dGhpcy5ycHNJZH0vbGlzdC1ycHNgKS50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgIHRoaXMubGlzdFJwcyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgICAgfSlcbiAgICAgICAgXTtcbiAgICAgIH0gZWxzZSBpZiAodGFiSWQgPT09IDIpIHtcbiAgICAgICAgcHJvbWlzZXMgPSBbXG4gICAgICAgICAgYXhpb3MuZ2V0KGAvYXBpLyR7dGhpcy5ycHNJZH0vY3BsYCkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICB0aGlzLml0ZW1zID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBheGlvcy5nZXQoYC9hcGkvJHt0aGlzLnJwc0lkfS9waWxpaGFuLWNwbC8ke3RoaXMuaWRlbnRpdGFzLnByb2dyYW1fc3R1ZGl9YCkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICB0aGlzLnBpbGloYW5jcGwgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICAgIH0pXG4gICAgICAgIF07XG4gICAgICB9IGVsc2UgaWYgKHRhYklkID09PSAzKSB7XG4gICAgICAgIHByb21pc2VzID0gW1xuICAgICAgICAgIGF4aW9zLmdldChgL2FwaS8ke3RoaXMucnBzSWR9L21lZGlhYCkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICB0aGlzLm1lZGlhID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgICB9KVxuICAgICAgICBdO1xuICAgICAgfSBlbHNlIGlmICh0YWJJZCA9PT0gNCkge1xuICAgICAgICBwcm9taXNlcyA9IFtcbiAgICAgICAgICBheGlvcy5nZXQoYC9hcGkvJHt0aGlzLnJwc0lkfS9wdXN0YWthYCkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN1bWJlciA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgICAgfSlcbiAgICAgICAgXTtcbiAgICAgIH0gZWxzZSBpZiAodGFiSWQgPT09IDUpIHtcbiAgICAgICAgcHJvbWlzZXMgPSBbXG4gICAgICAgICAgYXhpb3MuZ2V0KGAvYXBpLyR7dGhpcy5ycHNJZH0vY3Bta2ApLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgdGhpcy5jcG1rID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBheGlvcy5nZXQoYC9hcGkvJHt0aGlzLnJwc0lkfS9vcHNpY3BsYCkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnNDcGwgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIGF4aW9zLmdldChgL2FwaS9ibG9vbXMta29nbml0aWZgKS50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgIHRoaXMub3BzaUJsb29tc0MgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIGF4aW9zLmdldChgL2FwaS9ibG9vbXMtYWZla3RpZmApLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgdGhpcy5vcHNpQmxvb21zQSA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgYXhpb3MuZ2V0KGAvYXBpL2Jsb29tcy1wc2lrb2ApLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgdGhpcy5vcHNpQmxvb21zUCA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgICAgfSlcbiAgICAgICAgXTtcbiAgICAgIH0gZWxzZSBpZiAodGFiSWQgPT09IDYpIHtcbiAgICAgICAgcHJvbWlzZXMgPSBbXG4gICAgICAgICAgYXhpb3MuZ2V0KGAvYXBpLyR7dGhpcy5ycHNJZH0vc3ViY3Bta2ApLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdWJjcG1rID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBheGlvcy5nZXQoYC9hcGkvJHt0aGlzLnJwc0lkfS9vcHNpY3Bta2ApLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zQ3BtayA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgYXhpb3MuZ2V0KGAvYXBpL29wc2liYXNzZXNtZW50YCkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9wc2lCZW50dWtBc3Nlc21lbnQgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIGF4aW9zLmdldChgL2FwaS9ibG9vbXMta29nbml0aWZgKS50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgIHRoaXMub3BzaUJsb29tc0MgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIGF4aW9zLmdldChgL2FwaS9ibG9vbXMtYWZla3RpZmApLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgdGhpcy5vcHNpQmxvb21zQSA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgYXhpb3MuZ2V0KGAvYXBpL2Jsb29tcy1wc2lrb2ApLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgdGhpcy5vcHNpQmxvb21zUCA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgYXhpb3MuZ2V0KGAvYXBpLyR7dGhpcy5ycHNJZH0vb3BzaXB1c3Rha2FgKS50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgIHRoaXMub3BzaVB1c3Rha2EgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICAgIH0pXG4gICAgICAgIF07XG4gICAgICB9IGVsc2UgaWYgKHRhYklkID09PSA3KSB7XG4gICAgICAgIHByb21pc2VzID0gW1xuICAgICAgICAgIGF4aW9zLmdldChgL2FwaS8ke3RoaXMucnBzSWR9L2JrYCkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICB0aGlzLmJrID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBheGlvcy5nZXQoYC9hcGkvJHt0aGlzLnJwc0lkfS9waWxpaGFuLWJrLyR7dGhpcy5pZGVudGl0YXMucHJvZ3JhbV9zdHVkaX1gKS50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgIHRoaXMucGlsaWhhbmJrID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgICB9KVxuICAgICAgICBdO1xuICAgICAgfVxuXG4gICAgICBQcm9taXNlLmFsbChwcm9taXNlcykuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBmZXRjaGluZyBjb250ZW50IGZvciBUYWIgJHt0YWJJZH06YCwgZXJyb3IpO1xuICAgICAgfSkuZmluYWxseSgoKSA9PiB7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBoYW5kbGVPayhidk1vZGFsRXZlbnQpIHtcbiAgICAgIHRoaXMuJGJ2TW9kYWwuaGlkZSgnbW9kYWwtcHJldmVudC1jbG9zaW5nJylcbiAgICB9LFxuICAgIGhhbmRsZUVkaXRBbWJhbmcoYnZNb2RhbEV2ZW50KSB7XG5cbiAgICAgIGF4aW9zLnBvc3QoYC9hcGkvJHt0aGlzLnJwc0lkfS9pZGVudGl0YXNgLCB7XG4gICAgICAgIGFtYmFuZ19tazogdGhpcy5pZGVudGl0YXMuYW1iYW5nX21rLFxuICAgICAgICBhbWJhbmdfbWhzOiB0aGlzLmlkZW50aXRhcy5hbWJhbmdfbWFoYXNpc3dhXG4gICAgICB9KVxuICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XG4gICAgICAgIH0pO1xuXG4gICAgICB0aGlzLiRidk1vZGFsLmNsb3NlKCdtb2RhbC1wcmV2ZW50LWNsb3NpbmcnKVxuXG4gICAgfSxcbiAgICBoYW5kbGVNZWRpYShidk1vZGFsRXZlbnQpIHtcbiAgICAgIHZhciBzZWxmID0gdGhpcztcbiAgICAgIGlmICghdGhpcy5mbWVkaWEubmFtYSB8fCAhdGhpcy5mbWVkaWEua2F0ZWdvcmkgfHwgdGhpcy5mbWVkaWEubmFtYSA9PT0gXCJcIiB8fCB0aGlzLmZtZWRpYS5rYXRlZ29yaSA9PT0gXCJcIikge1xuICAgICAgICAgIGFsZXJ0KCduYW1hIGRhbiBrYXRlZ29yaSBtZWRpYSBwZW1iZWxhamFyYW4gaGFydXMgZGkgaXNpICEnKTtcbiAgICAgICAgICBidk1vZGFsRXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1lbHNle1xuICAgICAgICBpZiAodGhpcy5mbWVkaWEuaWQpIHtcbiAgICAgICAgICBheGlvcy5wdXQoYC9hcGkvbWVkaWEvJHt0aGlzLmZtZWRpYS5pZH1gLCB7XG4gICAgICAgICAgICBuYW1hOiB0aGlzLmZtZWRpYS5uYW1hLFxuICAgICAgICAgICAga2F0ZWdvcmk6IHRoaXMuZm1lZGlhLmthdGVnb3JpXG4gICAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgICAgICBzZWxmLmxvYWRUYWJDb250ZW50KDMpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYXhpb3MucG9zdChgL2FwaS8ke3RoaXMucnBzSWR9L21lZGlhYCwge1xuICAgICAgICAgICAgbmFtYTogdGhpcy5mbWVkaWEubmFtYSxcbiAgICAgICAgICAgIGthdGVnb3JpOiB0aGlzLmZtZWRpYS5rYXRlZ29yaVxuICAgICAgICAgIH0pXG4gICAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgc2VsZi5sb2FkVGFiQ29udGVudCgzKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuJGJ2TW9kYWwuaGlkZSgnbW9kYWwtcHJldmVudC1jbG9zaW5nJyk7XG4gICAgICB9XG4gICAgfSxcbiAgICBlZGl0TWVkaWEoaXRlbSkge1xuICAgICAgdGhpcy5mbWVkaWEuaWQgPSBpdGVtLmlkO1xuICAgICAgdGhpcy5mbWVkaWEubmFtYSA9IGl0ZW0ubmFtYTtcbiAgICAgIHRoaXMuZm1lZGlhLmthdGVnb3JpID0gaXRlbS5rYXRlZ29yaTtcbiAgICAgIHRoaXMuJGJ2TW9kYWwuc2hvdygnbW9kYWwtMycpO1xuICAgIH0sXG4gICAgcmVzZXRNZWRpYSgpIHtcbiAgICAgIHRoaXMuZm1lZGlhLmlkID0gbnVsbDtcbiAgICAgIHRoaXMuZm1lZGlhLm5hbWEgPSAnJztcbiAgICAgIHRoaXMuZm1lZGlhLmthdGVnb3JpID0gJyc7XG4gICAgfSxcbiAgICBoYW5kbGVQaWxpaENwbChidk1vZGFsRXZlbnQpIHtcbiAgICAgIHZhciBzZWxmID0gdGhpcztcbiAgICAgIGF4aW9zLnBvc3QoYC9hcGkvJHt0aGlzLnJwc0lkfS9jcGxgLCB0aGlzLnNlbGVjdGVkKVxuICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICBzZWxmLmxvYWRUYWJDb250ZW50KDIpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgICB9KTtcblxuICAgICAgdGhpcy4kYnZNb2RhbC5oaWRlKCdtb2RhbC1wcmV2ZW50LWNsb3NpbmcnKTtcblxuICAgIH0sXG4gICAgY29weUZyb20oYnZNb2RhbEV2ZW50KSB7XG4gICAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgICBheGlvcy5wb3N0KGAvYXBpLyR7dGhpcy5ycHNJZH0vY29weS1mcm9tYCwgdGhpcy5zZWxlY3RlZFJwcylcbiAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgICAgICAgc2VsZi5sb2FkVGFiQ29udGVudCgxKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLiRidk1vZGFsLmhpZGUoJ21vZGFsLXByZXZlbnQtY2xvc2luZycpO1xuXG4gICAgfSxcbiAgICBoYW5kbGVQaWxpaEJrKGJ2TW9kYWxFdmVudCkge1xuICAgICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgICAgYXhpb3MucG9zdChgL2FwaS8ke3RoaXMucnBzSWR9L2JrYCwgdGhpcy5zZWxlY3RlZEJrKVxuICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICBzZWxmLmxvYWRUYWJDb250ZW50KDcpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgICB9KTtcblxuICAgICAgdGhpcy4kYnZNb2RhbC5oaWRlKCdtb2RhbC1wcmV2ZW50LWNsb3NpbmcnKTtcblxuICAgIH0sXG4gICAgaGFuZGxlUHVzdGFrYShidk1vZGFsRXZlbnQpIHtcbiAgICAgIHZhciBzZWxmID0gdGhpcztcbiAgICAgIGlmICghdGhpcy5mc3VtYmVyLm5hbWEgfHwgIXRoaXMuZnN1bWJlci5rYXRlZ29yaSB8fCB0aGlzLmZzdW1iZXIubmFtYSA9PT0gXCJcIiB8fCB0aGlzLmZzdW1iZXIua2F0ZWdvcmkgPT09IFwiXCIpIHtcbiAgICAgICAgYWxlcnQoJ25hbWEgZGFuIGthdGVnb3JpIG1lZGlhIHN1bWJlciBwdXN0YWthIGhhcnVzIGRpIGlzaSAhJyk7XG4gICAgICAgIGJ2TW9kYWxFdmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfWVsc2V7XG4gICAgICAgIGlmICh0aGlzLmZzdW1iZXIuaWQpIHtcbiAgICAgICAgICBheGlvcy5wdXQoYC9hcGkvc3VtYmVyLyR7dGhpcy5mc3VtYmVyLmlkfWAsIHtcbiAgICAgICAgICAgIG5hbWE6IHRoaXMuZnN1bWJlci5uYW1hLFxuICAgICAgICAgICAga2F0ZWdvcmk6IHRoaXMuZnN1bWJlci5rYXRlZ29yaVxuICAgICAgICAgIH0pXG4gICAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgc2VsZi5sb2FkVGFiQ29udGVudCg0KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGF4aW9zLnBvc3QoYC9hcGkvJHt0aGlzLnJwc0lkfS9wdXN0YWthYCwge1xuICAgICAgICAgICAgbmFtYTogdGhpcy5mc3VtYmVyLm5hbWEsXG4gICAgICAgICAgICBrYXRlZ29yaTogdGhpcy5mc3VtYmVyLmthdGVnb3JpXG4gICAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgICAgICBzZWxmLmxvYWRUYWJDb250ZW50KDQpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy4kYnZNb2RhbC5oaWRlKCdtb2RhbC1wcmV2ZW50LWNsb3NpbmcnKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGVkaXRTdW1iZXIoaXRlbSkge1xuICAgICAgdGhpcy5mc3VtYmVyLmlkID0gaXRlbS5pZDtcbiAgICAgIHRoaXMuZnN1bWJlci5uYW1hID0gaXRlbS5zdW1iZXI7XG4gICAgICB0aGlzLmZzdW1iZXIua2F0ZWdvcmkgPSBpdGVtLmthdGVnb3JpO1xuICAgICAgdGhpcy4kYnZNb2RhbC5zaG93KCdtb2RhbC00Jyk7XG4gICAgfSxcbiAgICByZXNldFN1bWJlcigpIHtcbiAgICAgIHRoaXMuZnN1bWJlci5pZCA9IG51bGw7XG4gICAgICB0aGlzLmZzdW1iZXIubmFtYSA9ICcnO1xuICAgICAgdGhpcy5mc3VtYmVyLmthdGVnb3JpID0gJyc7XG4gICAgfSxcbiAgICBoYW5kbGVDcG1rKGJ2TW9kYWxFdmVudCkge1xuICAgICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgICAgaWYgKHRoaXMuZmNwbWsuaWQpIHtcbiAgICAgICAgYXhpb3MucHV0KGAvYXBpL2NwbWsvJHt0aGlzLmZjcG1rLmlkfWAsIHtcbiAgICAgICAgICBrb2RlQ3BsOiB0aGlzLmZjcG1rLmtvZGVDcGwsXG4gICAgICAgICAga29kZUNwbWs6IHRoaXMuZmNwbWsua29kZUNwbWssXG4gICAgICAgICAgbmFtYUNwbWs6IHRoaXMuZmNwbWsubmFtYUNwbWssXG4gICAgICAgICAga29kZUJsb29tQzogdGhpcy5mY3Btay5rb2RlQmxvb21DLFxuICAgICAgICAgIGtvZGVCbG9vbUE6IHRoaXMuZmNwbWsua29kZUJsb29tQSxcbiAgICAgICAgICBrb2RlQmxvb21QOiB0aGlzLmZjcG1rLmtvZGVCbG9vbVBcbiAgICAgICAgfSlcbiAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIHNlbGYubG9hZFRhYkNvbnRlbnQoNSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XG4gICAgICAgICAgfSk7XG4gICAgICB9ZWxzZXtcbiAgICAgICAgYXhpb3MucG9zdChgL2FwaS8ke3RoaXMucnBzSWR9L2NwbWtgLCB7XG4gICAgICAgICAga29kZUNwbDogdGhpcy5mY3Btay5rb2RlQ3BsLFxuICAgICAgICAgIGtvZGVDcG1rOiB0aGlzLmZjcG1rLmtvZGVDcG1rLFxuICAgICAgICAgIG5hbWFDcG1rOiB0aGlzLmZjcG1rLm5hbWFDcG1rLFxuICAgICAgICAgIGtvZGVCbG9vbUM6IHRoaXMuZmNwbWsua29kZUJsb29tQyxcbiAgICAgICAgICBrb2RlQmxvb21BOiB0aGlzLmZjcG1rLmtvZGVCbG9vbUEsXG4gICAgICAgICAga29kZUJsb29tUDogdGhpcy5mY3Btay5rb2RlQmxvb21QXG4gICAgICAgIH0pXG4gICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICBzZWxmLmxvYWRUYWJDb250ZW50KDUpO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmZjcG1rLmlkID0gbnVsbDtcbiAgICAgIHRoaXMuZmNwbWsua29kZUNwbCA9IG51bGw7XG4gICAgICB0aGlzLmZjcG1rLmtvZGVDcG1rPSAnJztcbiAgICAgIHRoaXMuZmNwbWsubmFtYUNwbWs9ICcnO1xuICAgICAgdGhpcy5mY3Btay5rb2RlQmxvb21DID0gbnVsbDtcbiAgICAgIHRoaXMuZmNwbWsua29kZUJsb29tQSA9IG51bGw7XG4gICAgICB0aGlzLmZjcG1rLmtvZGVCbG9vbUEgPSBudWxsO1xuICAgICAgdGhpcy4kYnZNb2RhbC5oaWRlKCdtb2RhbC1wcmV2ZW50LWNsb3NpbmcnKTtcblxuICAgIH0sXG4gICAgaGFuZGxlU3ViQ3Btayhidk1vZGFsRXZlbnQpIHtcbiAgICAgIHZhciBzZWxmID0gdGhpcztcbiAgICAgIGlmICh0aGlzLmZzY3Btay5pZCkge1xuICAgICAgICBheGlvcy5wdXQoYC9hcGkvc2NwbWsvJHt0aGlzLmZzY3Btay5pZH1gLCB7XG4gICAgICAgICAgbWluZ2d1a2U6IHRoaXMuZnNjcG1rLm1pbmdndWtlLFxuICAgICAgICAgIGtvZGVDcG1rOiB0aGlzLmZzY3Btay5rb2RlQ3BtayxcbiAgICAgICAgICBkZXNrcmlwc2k6IHRoaXMuZnNjcG1rLmRlc2tyaXBzaSxcbiAgICAgICAgICBpbmRpa2F0b3I6IHRoaXMuZnNjcG1rLmluZGlrYXRvcixcbiAgICAgICAgICBtYXRlcmk6IHRoaXMuZnNjcG1rLm1hdGVyaSxcbiAgICAgICAgICBiZW50dWtBc3Nlc21lbnQ6IHRoaXMuZnNjcG1rLmJlbnR1a0Fzc2VzbWVudCxcbiAgICAgICAgICBuYW1hQXNzZXNtZW50OiB0aGlzLmZzY3Btay5uYW1hQXNzZXNtZW50LFxuICAgICAgICAgIG1ldG9kZTogdGhpcy5mc2NwbWsubWV0b2RlLFxuICAgICAgICAgIGx1cmluZzogdGhpcy5mc2NwbWsubHVyaW5nLFxuICAgICAgICAgIGRhcmluZzogdGhpcy5mc2NwbWsuZGFyaW5nLFxuICAgICAgICAgIHByb3NlbnRhc2U6IHRoaXMuZnNjcG1rLnByb3NlbnRhc2UsXG4gICAgICAgICAga29kZUJsb29tQzogdGhpcy5mc2NwbWsua29kZUJsb29tQyxcbiAgICAgICAgICBrb2RlQmxvb21BOiB0aGlzLmZzY3Btay5rb2RlQmxvb21BLFxuICAgICAgICAgIGtvZGVCbG9vbVA6IHRoaXMuZnNjcG1rLmtvZGVCbG9vbVAsXG4gICAgICAgICAgcHVzdGFrYTogdGhpcy5mc2NwbWsucHVzdGFrYVxuICAgICAgICB9KVxuICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgICAgc2VsZi5sb2FkVGFiQ29udGVudCg2KTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHVwZGF0ZSBTdWIgQ1BNSzonLCBlcnJvcik7XG4gICAgICAgICAgICB2YXIgbXNnID0gJ0dhZ2FsIG1lbnlpbXBhbiBTdWIgQ1BNSyc7XG4gICAgICAgICAgICBpZiAoZXJyb3IucmVzcG9uc2UgJiYgZXJyb3IucmVzcG9uc2UuZGF0YSAmJiBlcnJvci5yZXNwb25zZS5kYXRhLmVycm9yKSB7XG4gICAgICAgICAgICAgIG1zZyArPSAnOiAnICsgZXJyb3IucmVzcG9uc2UuZGF0YS5lcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGFsZXJ0KG1zZyk7XG4gICAgICAgICAgfSk7XG4gICAgICB9ZWxzZXtcbiAgICAgICAgYXhpb3MucG9zdChgL2FwaS8ke3RoaXMucnBzSWR9L3NjcG1rYCwge1xuICAgICAgICAgIG1pbmdndWtlOiB0aGlzLmZzY3Btay5taW5nZ3VrZSxcbiAgICAgICAgICBrb2RlQ3BtazogdGhpcy5mc2NwbWsua29kZUNwbWssXG4gICAgICAgICAgZGVza3JpcHNpOiB0aGlzLmZzY3Btay5kZXNrcmlwc2ksXG4gICAgICAgICAgaW5kaWthdG9yOiB0aGlzLmZzY3Btay5pbmRpa2F0b3IsXG4gICAgICAgICAgbWF0ZXJpOiB0aGlzLmZzY3Btay5tYXRlcmksXG4gICAgICAgICAgYmVudHVrQXNzZXNtZW50OiB0aGlzLmZzY3Btay5iZW50dWtBc3Nlc21lbnQsXG4gICAgICAgICAgbmFtYUFzc2VzbWVudDogdGhpcy5mc2NwbWsubmFtYUFzc2VzbWVudCxcbiAgICAgICAgICBtZXRvZGU6IHRoaXMuZnNjcG1rLm1ldG9kZSxcbiAgICAgICAgICBsdXJpbmc6IHRoaXMuZnNjcG1rLmx1cmluZyxcbiAgICAgICAgICBkYXJpbmc6IHRoaXMuZnNjcG1rLmRhcmluZyxcbiAgICAgICAgICBwcm9zZW50YXNlOiB0aGlzLmZzY3Btay5wcm9zZW50YXNlLFxuICAgICAgICAgIGtvZGVCbG9vbUM6IHRoaXMuZnNjcG1rLmtvZGVCbG9vbUMsXG4gICAgICAgICAga29kZUJsb29tQTogdGhpcy5mc2NwbWsua29kZUJsb29tQSxcbiAgICAgICAgICBrb2RlQmxvb21QOiB0aGlzLmZzY3Btay5rb2RlQmxvb21QLFxuICAgICAgICAgIHB1c3Rha2E6IHRoaXMuZnNjcG1rLnB1c3Rha2FcbiAgICAgICAgfSlcbiAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIHNlbGYubG9hZFRhYkNvbnRlbnQoNik7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLmZzY3Btay5pZCA9IG51bGw7XG4gICAgICB0aGlzLmZzY3Btay5rb2RlQ3BtayA9IG51bGw7XG4gICAgICB0aGlzLmZzY3Btay5kZXNrcmlwc2kgPSAnJztcbiAgICAgIHRoaXMuZnNjcG1rLmluZGlrYXRvciA9ICcnO1xuICAgICAgdGhpcy5mc2NwbWsubWF0ZXJpID0gJyc7XG4gICAgICB0aGlzLmZzY3Btay5iZW50dWtBc3Nlc21lbnQgPSBudWxsO1xuICAgICAgdGhpcy5mc2NwbWsubmFtYUFzc2VzbWVudCA9ICcnO1xuICAgICAgdGhpcy5mc2NwbWsubWV0b2RlID0gJyc7XG4gICAgICB0aGlzLmZzY3Btay5sdXJpbmcgPSAnJztcbiAgICAgIHRoaXMuZnNjcG1rLmRhcmluZyA9ICcnO1xuICAgICAgdGhpcy5mc2NwbWsucHJvc2VudGFzZSA9IG51bGw7XG4gICAgICB0aGlzLmZzY3Btay5rb2RlQmxvb21DID0gbnVsbDtcbiAgICAgIHRoaXMuZnNjcG1rLmtvZGVCbG9vbUEgPSBudWxsO1xuICAgICAgdGhpcy5mc2NwbWsua29kZUJsb29tUCA9IG51bGw7XG5cbiAgICAgIHRoaXMuJGJ2TW9kYWwuaGlkZSgnbW9kYWwtcHJldmVudC1jbG9zaW5nJylcblxuICAgIH0sXG4gICAgcmVzZXRTdWJDbXBrKCkge1xuICAgICAgdGhpcy5mc2NwbWsuaWQgPSBudWxsO1xuICAgICAgdGhpcy5mc2NwbWsubWluZ2d1a2UgPSBudWxsO1xuICAgICAgdGhpcy5mc2NwbWsua29kZUNwbWsgPSBudWxsO1xuICAgICAgdGhpcy5mc2NwbWsuZGVza3JpcHNpID0gJyc7XG4gICAgICB0aGlzLmZzY3Btay5pbmRpa2F0b3IgPSAnJztcbiAgICAgIHRoaXMuZnNjcG1rLm1hdGVyaSA9ICcnO1xuICAgICAgdGhpcy5mc2NwbWsuYmVudHVrQXNzZXNtZW50ID0gbnVsbDtcbiAgICAgIHRoaXMuZnNjcG1rLm5hbWFBc3Nlc21lbnQgPSAnJztcbiAgICAgIHRoaXMuZnNjcG1rLm1ldG9kZSA9ICcnO1xuICAgICAgdGhpcy5mc2NwbWsubHVyaW5nID0gJyc7XG4gICAgICB0aGlzLmZzY3Btay5kYXJpbmcgPSAnJztcbiAgICAgIHRoaXMuZnNjcG1rLnByb3NlbnRhc2UgPSBudWxsO1xuICAgICAgdGhpcy5mc2NwbWsua29kZUJsb29tQyA9IG51bGw7XG4gICAgICB0aGlzLmZzY3Btay5rb2RlQmxvb21BID0gbnVsbDtcbiAgICAgIHRoaXMuZnNjcG1rLmtvZGVCbG9vbVAgPSBudWxsO1xuICAgICAgdGhpcy5ibG9vbUFXb3JkID0gXCJcIjtcbiAgICAgIHRoaXMuYmxvb21QV29yZCA9IFwiXCI7XG4gICAgICB0aGlzLmJsb29tQ1dvcmQgID0gXCJcIjtcbiAgICB9LFxuICAgIHJlc2V0Q21waygpIHtcbiAgICAgIHRoaXMuZmNwbWsuaWQgPSBudWxsO1xuICAgICAgdGhpcy5mY3Btay5rb2RlQ3BsID0gbnVsbDtcbiAgICAgIHRoaXMuZmNwbWsua29kZUNwbWs9ICcnO1xuICAgICAgdGhpcy5mY3Btay5uYW1hQ3Btaz0gJyc7XG4gICAgICB0aGlzLmZjcG1rLmtvZGVCbG9vbUMgPSBudWxsO1xuICAgICAgdGhpcy5mY3Btay5rb2RlQmxvb21BID0gbnVsbDtcbiAgICAgIHRoaXMuZmNwbWsua29kZUJsb29tQSA9IG51bGw7XG4gICAgICB0aGlzLmJsb29tQ1dvcmRDcG1rID0gJyc7XG4gICAgICB0aGlzLmJsb29tQVdvcmRDcG1rID0gJyc7XG4gICAgICB0aGlzLmJsb29tUFdvcmRDcG1rID0gJyc7XG4gICAgfSxcbiAgICBvblJvd1NlbGVjdGVkKGl0ZW1zKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkID0gaXRlbXNcbiAgICB9LFxuICAgIG9uUm93U2VsZWN0ZWRCayhpdGVtcykge1xuICAgICAgdGhpcy5zZWxlY3RlZEJrID0gaXRlbXNcbiAgICB9LFxuICAgIG9uUm93U2VsZWN0ZWRScHMoaXRlbXMpIHtcbiAgICAgIGNvbnNvbGUubG9nKGl0ZW1zKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRScHMgPSBpdGVtc1xuICAgIH0sXG4gICAgb25GaWx0ZXJlZChmaWx0ZXJlZEl0ZW1zKSB7XG4gICAgICAvLyBUcmlnZ2VyIHBhZ2luYXRpb24gdG8gdXBkYXRlIHRoZSBudW1iZXIgb2YgYnV0dG9ucy9wYWdlcyBkdWUgdG8gZmlsdGVyaW5nXG4gICAgICB0aGlzLnRvdGFsUm93cyA9IGZpbHRlcmVkSXRlbXMubGVuZ3RoXG4gICAgICB0aGlzLmN1cnJlbnRQYWdlID0gMVxuICAgIH0sXG4gICAgaGFwdXNDcGwoaXRlbSkge1xuICAgICAgaWYgKCFjb25maXJtKCdBcGFrYWggQW5kYSB5YWtpbiBpbmdpbiBtZW5naGFwdXMgQ1BMIGluaT8nKSkgcmV0dXJuO1xuICAgICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgICAgYXhpb3MuZGVsZXRlKGAvYXBpLyR7aXRlbS5pZH0vY3BsYClcbiAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgIHNlbGYubG9hZFRhYkNvbnRlbnQoMik7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaGFwdXMgQ1BMOicsIGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfSxcbiAgICBoYXB1c0JrKGl0ZW0pIHtcbiAgICAgIGlmICghY29uZmlybSgnQXBha2FoIEFuZGEgeWFraW4gaW5naW4gbWVuZ2hhcHVzIEJhaGFuIEthamlhbiBpbmk/JykpIHJldHVybjtcbiAgICAgIHZhciBzZWxmID0gdGhpcztcbiAgICAgIGF4aW9zLmRlbGV0ZShgL2FwaS8ke2l0ZW0uaWR9L2JrYClcbiAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgIHNlbGYubG9hZFRhYkNvbnRlbnQoNyk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaGFwdXMgQks6JywgZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICB9LFxuICAgIGhhcHVzTWVkaWEoaXRlbSkge1xuICAgICAgaWYgKCFjb25maXJtKCdBcGFrYWggQW5kYSB5YWtpbiBpbmdpbiBtZW5naGFwdXMgTWVkaWEgUGVtYmVsYWphcmFuIGluaT8nKSkgcmV0dXJuO1xuICAgICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgICAgYXhpb3MuZGVsZXRlKGAvYXBpLyR7aXRlbS5pZH0vbWVkaWFgKVxuICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgc2VsZi5sb2FkVGFiQ29udGVudCgzKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBoYXB1cyBtZWRpYTonLCBlcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH0sXG4gICAgaGFwdXNTdW1iZXIoaXRlbSkge1xuICAgICAgaWYgKCFjb25maXJtKCdBcGFrYWggQW5kYSB5YWtpbiBpbmdpbiBtZW5naGFwdXMgU3VtYmVyIFB1c3Rha2EgaW5pPycpKSByZXR1cm47XG4gICAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgICBheGlvcy5kZWxldGUoYC9hcGkvJHtpdGVtLmlkfS9zdW1iZXJgKVxuICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgc2VsZi5sb2FkVGFiQ29udGVudCg0KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBoYXB1cyBzdW1iZXI6JywgZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICB9LFxuICAgIGhhcHVzQ3BtayhpdGVtKSB7XG4gICAgICBpZiAoIWNvbmZpcm0oJ0FwYWthaCBBbmRhIHlha2luIGluZ2luIG1lbmdoYXB1cyBDUE1LIGluaT8nKSkgcmV0dXJuO1xuICAgICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgICAgYXhpb3MuZGVsZXRlKGAvYXBpLyR7aXRlbS5pZH0vY3Bta2ApXG4gICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICBzZWxmLmxvYWRUYWJDb250ZW50KDUpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGhhcHVzIENQTUs6JywgZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICB9LFxuICAgIGhhcHVzU3ViQ3BtayhpdGVtKSB7XG4gICAgICBpZiAoIWNvbmZpcm0oJ0FwYWthaCBBbmRhIHlha2luIGluZ2luIG1lbmdoYXB1cyBTdWIgQ1BNSyBpbmk/JykpIHJldHVybjtcbiAgICAgIHZhciBzZWxmID0gdGhpcztcbiAgICAgIGF4aW9zLmRlbGV0ZShgL2FwaS8ke2l0ZW0uaWR9L3N1YmNwbWtgKVxuICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgc2VsZi5sb2FkVGFiQ29udGVudCg2KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBoYXB1cyBTdWIgQ1BNSzonLCBlcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH0sXG4gICAgZWRpdFN1YkNwbWsoaXRlbSkge1xuICAgICAgYXhpb3MuZ2V0KGAvYXBpL3N1YmNwbWsvJHtpdGVtLmlkfS9kZXRhaWxgKVxuICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgdGhpcy5mc2NwbWsgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICAgIHRoaXMuJGJ2TW9kYWwuc2hvdygnbW9kYWwtNicpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yIGZldGNoaW5nIHN1YmNwbWsgZGV0YWlsOmAsIGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfSxcbiAgICBjb3B5U3ViQ3BtayhpdGVtKSB7XG4gICAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgICBheGlvcy5nZXQoYC9hcGkvc3ViY3Btay8ke2l0ZW0uaWR9L2RldGFpbGApXG4gICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgIHZhciBkYXRhID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgICAvLyBQb3N0IGFzIG5ldyByZWNvcmQgYWZ0ZXIgdGhlIHNvdXJjZSBpdGVtJ3MgcG9zaXRpb25cbiAgICAgICAgICByZXR1cm4gYXhpb3MucG9zdChgL2FwaS8ke3NlbGYucnBzSWR9L3NjcG1rYCwge1xuICAgICAgICAgICAgbWluZ2d1a2U6IGRhdGEubWluZ2d1a2UsXG4gICAgICAgICAgICBrb2RlQ3BtazogZGF0YS5rb2RlQ3BtayxcbiAgICAgICAgICAgIGRlc2tyaXBzaTogJ1tDb3B5XSAnICsgKGRhdGEuZGVza3JpcHNpIHx8ICcnKSxcbiAgICAgICAgICAgIGluZGlrYXRvcjogZGF0YS5pbmRpa2F0b3IsXG4gICAgICAgICAgICBtYXRlcmk6IGRhdGEubWF0ZXJpLFxuICAgICAgICAgICAgYmVudHVrQXNzZXNtZW50OiBkYXRhLmJlbnR1a0Fzc2VzbWVudCxcbiAgICAgICAgICAgIG5hbWFBc3Nlc21lbnQ6IGRhdGEubmFtYUFzc2VzbWVudCxcbiAgICAgICAgICAgIG1ldG9kZTogZGF0YS5tZXRvZGUsXG4gICAgICAgICAgICBsdXJpbmc6IGRhdGEubHVyaW5nLFxuICAgICAgICAgICAgZGFyaW5nOiBkYXRhLmRhcmluZyxcbiAgICAgICAgICAgIHByb3NlbnRhc2U6IGRhdGEucHJvc2VudGFzZSxcbiAgICAgICAgICAgIGtvZGVCbG9vbUM6IGRhdGEua29kZUJsb29tQyxcbiAgICAgICAgICAgIGtvZGVCbG9vbUE6IGRhdGEua29kZUJsb29tQSxcbiAgICAgICAgICAgIGtvZGVCbG9vbVA6IGRhdGEua29kZUJsb29tUCxcbiAgICAgICAgICAgIHB1c3Rha2E6IGRhdGEucHVzdGFrYSxcbiAgICAgICAgICAgIGFmdGVyUG9zaXRpb246IGl0ZW0ucG9zaXRpb24sXG4gICAgICAgICAgICBpc0NvcHk6IHRydWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHNlbGYubG9hZFRhYkNvbnRlbnQoNik7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBjb3B5aW5nIHN1YmNwbWs6JywgZXJyb3IpO1xuICAgICAgICAgIGFsZXJ0KCdHYWdhbCBtZW55YWxpbiBTdWIgQ1BNSycpO1xuICAgICAgICB9KTtcbiAgICB9LFxuICAgIG1vdmVTdWJDcG1rKGl0ZW0sIGRpcmVjdGlvbikge1xuICAgICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgICAgYXhpb3MucHV0KGAvYXBpL3N1YmNwbWsvJHtpdGVtLmlkfS9yZW9yZGVyYCwgeyBkaXJlY3Rpb246IGRpcmVjdGlvbiB9KVxuICAgICAgICAudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgc2VsZi5sb2FkVGFiQ29udGVudCg2KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHJlb3JkZXJpbmcgc3ViY3BtazonLCBlcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH0sXG4gICAgc3ViY3Bta1Jvd0NsYXNzKGl0ZW0sIHR5cGUpIHtcbiAgICAgIGlmICghaXRlbSB8fCB0eXBlICE9PSAncm93JykgcmV0dXJuICcnO1xuICAgICAgaWYgKGl0ZW0uaXNDb3B5KSByZXR1cm4gJ3N1YmNwbWstY29weS1yb3cnO1xuICAgICAgcmV0dXJuICcnO1xuICAgIH0sXG4gICAgZWRpdENwbWsoaXRlbSkge1xuICAgICAgYXhpb3MuZ2V0KGAvYXBpL2NwbWsvJHtpdGVtLmlkfS9kZXRhaWxgKVxuICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgdGhpcy5mY3BtayA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgICAgdGhpcy4kYnZNb2RhbC5zaG93KCdtb2RhbC01Jyk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihgRXJyb3IgZmV0Y2hpbmcgY29udGVudCBmb3IgVGFiICR7dGFiSWR9OmAsIGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfSxcbiAgICBnZXRLYXRhS2VyamFDOiBmdW5jdGlvbihzZWxlY3RlZCkge1xuICAgICAgYXhpb3MuZ2V0KGAvYXBpL2Jsb29tcy8ke3RoaXMuZnNjcG1rLmtvZGVCbG9vbUN9L2RldGFpbGApXG4gICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICB0aGlzLmJsb29tQ1dvcmQgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yIGZldGNoaW5nIGNvbnRlbnQgZm9yIFRhYiAke3RhYklkfTpgLCBlcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH0sXG4gICAgZ2V0S2F0YUtlcmphQTogZnVuY3Rpb24oc2VsZWN0ZWQpIHtcbiAgICAgIGF4aW9zLmdldChgL2FwaS9ibG9vbXMvJHt0aGlzLmZzY3Btay5rb2RlQmxvb21BfS9kZXRhaWxgKVxuICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgdGhpcy5ibG9vbUFXb3JkID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBmZXRjaGluZyBjb250ZW50IGZvciBUYWIgJHt0YWJJZH06YCwgZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICB9LFxuICAgIGdldEthdGFLZXJqYVA6IGZ1bmN0aW9uKHNlbGVjdGVkKSB7XG4gICAgICBheGlvcy5nZXQoYC9hcGkvYmxvb21zLyR7dGhpcy5mc2NwbWsua29kZUJsb29tUH0vZGV0YWlsYClcbiAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgIHRoaXMuYmxvb21QV29yZCA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihgRXJyb3IgZmV0Y2hpbmcgY29udGVudCBmb3IgVGFiICR7dGFiSWR9OmAsIGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfSxcbiAgICBnZXRLYXRhS2VyamFDY3BtazogZnVuY3Rpb24oc2VsZWN0ZWQpIHtcbiAgICAgIGF4aW9zLmdldChgL2FwaS9ibG9vbXMvJHt0aGlzLmZjcG1rLmtvZGVCbG9vbUN9L2RldGFpbGApXG4gICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICB0aGlzLmJsb29tQ1dvcmRDcG1rID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBmZXRjaGluZyBjb250ZW50IGZvciBUYWIgJHt0YWJJZH06YCwgZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICB9LFxuICAgIGdldEthdGFLZXJqYUFjcG1rOiBmdW5jdGlvbihzZWxlY3RlZCkge1xuICAgICAgYXhpb3MuZ2V0KGAvYXBpL2Jsb29tcy8ke3RoaXMuZmNwbWsua29kZUJsb29tQX0vZGV0YWlsYClcbiAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgIHRoaXMuYmxvb21BV29yZENwbWsgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yIGZldGNoaW5nIGNvbnRlbnQgZm9yIFRhYiAke3RhYklkfTpgLCBlcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH0sXG4gICAgZ2V0S2F0YUtlcmphUGNwbWs6IGZ1bmN0aW9uKHNlbGVjdGVkKSB7XG4gICAgICBheGlvcy5nZXQoYC9hcGkvYmxvb21zLyR7dGhpcy5mY3Btay5rb2RlQmxvb21QfS9kZXRhaWxgKVxuICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgdGhpcy5ibG9vbVBXb3JkQ3BtayA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihgRXJyb3IgZmV0Y2hpbmcgY29udGVudCBmb3IgVGFiICR7dGFiSWR9OmAsIGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfSxcbiAgICBzeW5jVG9Nb29kbGUoKSB7XG4gICAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgICB0aGlzLnN5bmNMb2FkaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuc3luY1Jlc3VsdCA9IG51bGw7XG4gICAgICBheGlvcy5wb3N0KGAvYXBpLyR7dGhpcy5ycHNJZH0vc3luYy1tb29kbGVgKVxuICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICBzZWxmLnN5bmNSZXN1bHQgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgaWYgKGVycm9yLnJlc3BvbnNlICYmIGVycm9yLnJlc3BvbnNlLmRhdGEpIHtcbiAgICAgICAgICAgIHNlbGYuc3luY1Jlc3VsdCA9IGVycm9yLnJlc3BvbnNlLmRhdGE7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNlbGYuc3luY1Jlc3VsdCA9IHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiAnVGVyamFkaSBrZXNhbGFoYW4ga29uZWtzaScgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5maW5hbGx5KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBzZWxmLnN5bmNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgIH0sXG4gIH0sXG4gIG1vdW50ZWQoKSB7XG4gICAgdGhpcy5sb2FkRmlyc3QoKTtcbiAgfVxufTtcbjwvc2NyaXB0PlxuXG48c3R5bGUgc3JjPVwidnVlLW11bHRpc2VsZWN0L2Rpc3QvdnVlLW11bHRpc2VsZWN0Lm1pbi5jc3NcIj48L3N0eWxlPlxuPHN0eWxlIHNjb3BlZD5cbi50YWItbG9hZGluZy1vdmVybGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHotaW5kZXg6IDEwO1xuICBtaW4taGVpZ2h0OiAyMDBweDtcbn1cbjwvc3R5bGU+XG48c3R5bGU+XG4uc3ViY3Btay1jb3B5LXJvdyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTMsIDIwMiwgMjQwLCAwLjE1KSAhaW1wb3J0YW50O1xuICBib3JkZXItbGVmdDogM3B4IHNvbGlkICMwZGNhZjAgIWltcG9ydGFudDtcbn1cbkBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHtcbiAgLnN1YmNwbWstY29weS1yb3cge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTMsIDIwMiwgMjQwLCAwLjIpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgfVxufVxuPC9zdHlsZT5cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/