/*!*****************************************************************************************************************************************************!*\
  !*** css ./node_modules/.pnpm/css-loader@6.11.0_webpack@5.91.0/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./assets/styles/app.css ***!
  \*****************************************************************************************************************************************************/
.app-container {
  height: 100%;
}

.card-body > form > div,
.positions {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding-top: 20px;
}
.positions {
  padding-top: 0;
}

.question-actions {

}

.question-configuration .col-form-label {
  text-align: right;
}

.question-actions > * {
  visibility: hidden;
}
.question-actions.show-actions > * {
  /*visibility: visible;*/
}
.position-container .question-actions > * {
  visibility: visible;
}

.question-actions > *:hover,
.question-actions > *:hover i {
  color: #b22918;
  cursor: pointer;
}

.position-display .position {
  overflow: hidden;
  padding: 4px 0px 0px 0px;
}

.position-display .position-label {
  float: left;
  width: 20%;
  margin-right: 1%;
  color: #777;
  margin-bottom: 4px;
}

.position-display .positon-label-wide {
  width: 100%;
}

.position-display .position-result {
  float: left;
  width: 79%;
  margin-bottom: 4px;
}

.position-display .position-result ul {
  padding-left: 0px;
  margin-bottom: 0;
}

.position-result ul li {
  list-style-position: inside;
}

.position-display .position .positions {
  clear: both;
  border-left: 1px solid #ddd;
}

.position-display .position .positions .position {
  padding-left: 10px;
}

.position-display-small .position-label {
  width: 39%;
}

.position-display-small .position-result {
  width: 60%;
}

/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/.pnpm/css-loader@6.11.0_webpack@5.91.0/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/.pnpm/vue-loader@17.4.2_vue@3.4.26_webpack@5.91.0/node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/.pnpm/vue-loader@17.4.2_vue@3.4.26_webpack@5.91.0/node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/grids/CellComponents/ActionsCellComponent.vue?vue&type=style&index=0&id=079d0cb5&lang=css ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/

.cell-actions {
    display: flex;
    gap: 1.5rem;
    height: 100%;
}

/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/.pnpm/css-loader@6.11.0_webpack@5.91.0/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/.pnpm/vue-loader@17.4.2_vue@3.4.26_webpack@5.91.0/node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/.pnpm/vue-loader@17.4.2_vue@3.4.26_webpack@5.91.0/node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/editor/editor.vue?vue&type=style&index=0&id=f53cd45e&scoped=true&lang=css ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/

[data-v-f53cd45e] .question-actions {
    width: 108px;
}
[data-v-f53cd45e] .gray-container {
    background-color: rgba(0, 0, 0, 0.05);
}
[data-v-f53cd45e] .extended {
    padding: 1rem;
    margin: 0 -1rem;
}

/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/.pnpm/css-loader@6.11.0_webpack@5.91.0/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/.pnpm/vue-loader@17.4.2_vue@3.4.26_webpack@5.91.0/node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/.pnpm/vue-loader@17.4.2_vue@3.4.26_webpack@5.91.0/node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/editor/MaterialListPosition.vue?vue&type=style&index=0&id=005bfc9c&scoped=true&lang=css ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/

[data-v-005bfc9c] .question-actions {
    width: 90px;
}
[data-v-005bfc9c] .gray-container {
    background-color: rgba(0, 0, 0, 0.05);
}
[data-v-005bfc9c] .extended {
    padding: 1rem;
    margin: -9px -1rem;
}

/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/.pnpm/css-loader@6.11.0_webpack@5.91.0/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/.pnpm/vue-loader@17.4.2_vue@3.4.26_webpack@5.91.0/node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/.pnpm/vue-loader@17.4.2_vue@3.4.26_webpack@5.91.0/node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/editor/MaterialList.vue?vue&type=style&index=0&id=b2229c2e&scoped=true&lang=css ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/

[data-v-b2229c2e] .question-actions {
    width: 90px;
}
[data-v-b2229c2e] .gray-container {
    background-color: rgba(0, 0, 0, 0.05);
}
[data-v-b2229c2e] .extended {
    padding: 1rem;
    margin: -9px -1rem;
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5mYzkxZjdkYi5jc3MiLCJtYXBwaW5ncyI6Ijs7O0FBRUE7RUFDRSxZQUFZO0FBQ2Q7O0FBRUE7O0VBRUUsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixTQUFTO0VBQ1QsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRSxjQUFjO0FBQ2hCOztBQUVBOztBQUVBOztBQUVBO0VBQ0UsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0Usa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSx1QkFBdUI7QUFDekI7QUFDQTtFQUNFLG1CQUFtQjtBQUNyQjs7QUFFQTs7RUFFRSxjQUFjO0VBQ2QsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQix3QkFBd0I7QUFDMUI7O0FBRUE7RUFDRSxXQUFXO0VBQ1gsVUFBVTtFQUNWLGdCQUFnQjtFQUNoQixXQUFXO0VBQ1gsa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsV0FBVztBQUNiOztBQUVBO0VBQ0UsV0FBVztFQUNYLFVBQVU7RUFDVixrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxpQkFBaUI7RUFDakIsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0UsV0FBVztFQUNYLDJCQUEyQjtBQUM3Qjs7QUFFQTtFQUNFLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLFVBQVU7QUFDWjs7QUFFQTtFQUNFLFVBQVU7QUFDWjs7Ozs7O0FDbkVFO0lBQ0UsYUFBYTtJQUNiLFdBQVc7SUFDWCxZQUFZO0FBQ2Q7Ozs7OztBQzhKQTtJQUNFLFlBQVk7QUFDZDtBQUNBO0lBQ0UscUNBQXFDO0FBQ3ZDO0FBQ0E7SUFDRSxhQUFhO0lBQ2IsZUFBZTtBQUNqQjs7Ozs7O0FDcExBO0lBQ0UsV0FBVztBQUNiO0FBQ0E7SUFDRSxxQ0FBcUM7QUFDdkM7QUFDQTtJQUNFLGFBQWE7SUFDYixrQkFBa0I7QUFDcEI7Ozs7OztBQ2dDQTtJQUNFLFdBQVc7QUFDYjtBQUNBO0lBQ0UscUNBQXFDO0FBQ3ZDO0FBQ0E7SUFDRSxhQUFhO0lBQ2Isa0JBQWtCO0FBQ3BCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmFsdGVtYS8uL2Fzc2V0cy9zdHlsZXMvYXBwLmNzcyIsIndlYnBhY2s6Ly92YWx0ZW1hLy4vYXNzZXRzL2dyaWRzL0NlbGxDb21wb25lbnRzL0FjdGlvbnNDZWxsQ29tcG9uZW50LnZ1ZSIsIndlYnBhY2s6Ly92YWx0ZW1hLy4vYXNzZXRzL2VkaXRvci9lZGl0b3IudnVlIiwid2VicGFjazovL3ZhbHRlbWEvLi9hc3NldHMvZWRpdG9yL01hdGVyaWFsTGlzdFBvc2l0aW9uLnZ1ZSIsIndlYnBhY2s6Ly92YWx0ZW1hLy4vYXNzZXRzL2VkaXRvci9NYXRlcmlhbExpc3QudnVlIl0sInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgdXJsKCdAZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtcHJvL2Nzcy9hbGwuY3NzJyk7XG5cbi5hcHAtY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uY2FyZC1ib2R5ID4gZm9ybSA+IGRpdixcbi5wb3NpdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDIwcHg7XG4gIHBhZGRpbmctdG9wOiAyMHB4O1xufVxuLnBvc2l0aW9ucyB7XG4gIHBhZGRpbmctdG9wOiAwO1xufVxuXG4ucXVlc3Rpb24tYWN0aW9ucyB7XG5cbn1cblxuLnF1ZXN0aW9uLWNvbmZpZ3VyYXRpb24gLmNvbC1mb3JtLWxhYmVsIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5xdWVzdGlvbi1hY3Rpb25zID4gKiB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi5xdWVzdGlvbi1hY3Rpb25zLnNob3ctYWN0aW9ucyA+ICoge1xuICAvKnZpc2liaWxpdHk6IHZpc2libGU7Ki9cbn1cbi5wb3NpdGlvbi1jb250YWluZXIgLnF1ZXN0aW9uLWFjdGlvbnMgPiAqIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cblxuLnF1ZXN0aW9uLWFjdGlvbnMgPiAqOmhvdmVyLFxuLnF1ZXN0aW9uLWFjdGlvbnMgPiAqOmhvdmVyIGkge1xuICBjb2xvcjogI2IyMjkxODtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ucG9zaXRpb24tZGlzcGxheSAucG9zaXRpb24ge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiA0cHggMHB4IDBweCAwcHg7XG59XG5cbi5wb3NpdGlvbi1kaXNwbGF5IC5wb3NpdGlvbi1sYWJlbCB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMjAlO1xuICBtYXJnaW4tcmlnaHQ6IDElO1xuICBjb2xvcjogIzc3NztcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xufVxuXG4ucG9zaXRpb24tZGlzcGxheSAucG9zaXRvbi1sYWJlbC13aWRlIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5wb3NpdGlvbi1kaXNwbGF5IC5wb3NpdGlvbi1yZXN1bHQge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDc5JTtcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xufVxuXG4ucG9zaXRpb24tZGlzcGxheSAucG9zaXRpb24tcmVzdWx0IHVsIHtcbiAgcGFkZGluZy1sZWZ0OiAwcHg7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5wb3NpdGlvbi1yZXN1bHQgdWwgbGkge1xuICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBpbnNpZGU7XG59XG5cbi5wb3NpdGlvbi1kaXNwbGF5IC5wb3NpdGlvbiAucG9zaXRpb25zIHtcbiAgY2xlYXI6IGJvdGg7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2RkZDtcbn1cblxuLnBvc2l0aW9uLWRpc3BsYXkgLnBvc2l0aW9uIC5wb3NpdGlvbnMgLnBvc2l0aW9uIHtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xufVxuXG4ucG9zaXRpb24tZGlzcGxheS1zbWFsbCAucG9zaXRpb24tbGFiZWwge1xuICB3aWR0aDogMzklO1xufVxuXG4ucG9zaXRpb24tZGlzcGxheS1zbWFsbCAucG9zaXRpb24tcmVzdWx0IHtcbiAgd2lkdGg6IDYwJTtcbn1cbiIsIjx0ZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cImNlbGwtYWN0aW9uc1wiPlxuICAgIDx0ZW1wbGF0ZSB2LWZvcj1cImFjdGlvbiBpbiBhY3Rpb25zXCI+XG4gICAgICA8YVxuICAgICAgICB2LWlmPVwiYWN0aW9uLnVyaVwiXG4gICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICA6aHJlZj1cImFjdGlvbi51cmlcIlxuICAgICAgICA6dGFyZ2V0PVwiYWN0aW9uLm5ld1RhYiA/ICdfYmxhbmsnIDogJ19zZWxmJ1wiPlxuICAgICAgICA8aSA6Y2xhc3M9XCJhY3Rpb24uY2xhc3NcIiB2LWlmPVwiYWN0aW9uLmNsYXNzXCI+PC9pPlxuICAgICAgICA8dGVtcGxhdGUgdi1pZj1cImFjdGlvbi5sYWJlbFwiPnt7YWN0aW9uLmxhYmVsfX08L3RlbXBsYXRlPlxuICAgICAgPC9hPlxuICAgICAgPGEgdi1lbHNlXG4gICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgQGNsaWNrPVwiaGFuZGxlQ2xpY2soYWN0aW9uKVwiPlxuICAgICAgICA8aSA6Y2xhc3M9XCJhY3Rpb24uY2xhc3NcIiB2LWlmPVwiYWN0aW9uLmNsYXNzXCI+PC9pPlxuICAgICAgICA8dGVtcGxhdGUgdi1pZj1cImFjdGlvbi5sYWJlbFwiPnt7YWN0aW9uLmxhYmVsfX08L3RlbXBsYXRlPlxuICAgICAgPC9hPlxuICAgIDwvdGVtcGxhdGU+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cbjxzdHlsZT5cbiAgLmNlbGwtYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDEuNXJlbTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbjwvc3R5bGU+XG5cbjxzY3JpcHQ+XG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIG5hbWU6IFwiY2VsbFwiLFxuICBkYXRhOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFjdGlvbnM6IFtdXG4gICAgfTtcbiAgfSxcbiAgYmVmb3JlTW91bnQoKSB7XG4gICAgaWYgKHRoaXMucGFyYW1zLmRhdGEpIHtcbiAgICAgIHRoaXMuYWN0aW9ucyA9IHRoaXMucGFyYW1zLmNvbERlZi5hY3Rpb25zKHRoaXMucGFyYW1zLmRhdGEsIHRoaXMuJHVzZXJTdG9yZS51c2VyLnZhbHVlKTtcbiAgICB9XG4gIH0sXG4gIG1ldGhvZHM6IHtcbiAgICBoYW5kbGVDbGljazogZnVuY3Rpb24oYWN0aW9uKSB7XG4gICAgICBpZiAoYWN0aW9uWydAY2xpY2snXSkge1xuICAgICAgICBhY3Rpb25bJ0BjbGljayddKHRoaXMucGFyYW1zKTtcbiAgICAgIH1cbiAgICAgIGlmIChhY3Rpb25bJ21ldGhvZCddICYmIGFjdGlvblsnbWV0aG9kJ10gPT0gJ2RlbGV0ZScpIHtcbiAgICAgICAgU3dhbC5maXJlKHtcbiAgICAgICAgICB0aXRsZTogXCJTaW5kIFNpZSBzaWNoZXI/XCIsXG4gICAgICAgICAgdGV4dDogXCJTaW5kIHNpZSBzaWNoZXIsIGRhc3MgU2llIFxcXCJcIiArIHRoaXMucGFyYW1zLmRhdGFbYWN0aW9uWyduYW1lQ29sdW1uJ11dICsgXCJcXFwiIGzDtnNjaGVuIG3DtmNodGVuP1wiLFxuICAgICAgICAgIGljb246IFwid2FybmluZ1wiLFxuICAgICAgICAgIHNob3dDYW5jZWxCdXR0b246IHRydWUsXG4gICAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6IFwiSmEsIGzDtnNjaGVuIVwiLFxuICAgICAgICAgIGNvbmZpcm1CdXR0b25Db2xvcjogJyNlMzNjNTEnLFxuICAgICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6IFwiTmVpbiwgYWJicmVjaGVuLlwiLFxuICAgICAgICAgIHJldmVyc2VCdXR0b25zOiB0cnVlXG4gICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gIHtcbiAgICAgICAgICBpZiAocmVzdWx0LmlzQ29uZmlybWVkKSB7XG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLnBhcmFtcyk7XG4gICAgICAgICAgICBheGlvcy5kZWxldGUodGhpcy5wYXJhbXMuZGF0YVsnQGlkJ10pLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG5cbiAgICAgICAgICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCd0b2FzdDpjcmVhdGUnLCB7XG4gICAgICAgICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICAgICAgICB0aXRsZTogdGhpcy5wYXJhbXMuZGF0YVthY3Rpb25bJ25hbWVDb2x1bW4nXV0sXG4gICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlxcXCJcIiArIHRoaXMucGFyYW1zLmRhdGFbYWN0aW9uWyduYW1lQ29sdW1uJ11dICsgXCJcXFwiIHd1cmRlIGdlbMO2c2NodFwiLFxuICAgICAgICAgICAgICAgICAgdHlwZTogJ3N1Y2Nlc3MnXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgIHRoaXMucGFyYW1zLmFwaS5yZWZyZXNoU2VydmVyU2lkZSh7IHJvdXRlOiB1bmRlZmluZWQsIHB1cmdlOiB0cnVlIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG48L3NjcmlwdD5cbiIsIjxzY3JpcHQgc2V0dXA+XG5pbXBvcnQgeyByZWYsIG9uTW91bnRlZCwgd2F0Y2gsIG5leHRUaWNrLCB0b1JhdywgdHJpZ2dlclJlZiB9IGZyb20gJ3Z1ZSc7XG5pbXBvcnQgRm9ybUZpZWxkIGZyb20gJy4vRm9ybUZpZWxkLnZ1ZSc7XG5pbXBvcnQgUG9zaXRpb24gZnJvbSAnLi9Qb3NpdGlvbi52dWUnO1xuaW1wb3J0IHsgdXNlU29ydGFibGUgfSBmcm9tICdAdnVldXNlL2ludGVncmF0aW9ucy91c2VTb3J0YWJsZSdcbmltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQgQWRkTmV3RmllbGQgZnJvbSBcIi4vQWRkTmV3RmllbGQudnVlXCI7XG5pbXBvcnQge3VzZURlYm91bmNlRm59IGZyb20gXCJAdnVldXNlL2NvcmVcIjtcbmltcG9ydCBTZWxlY3RSZXBvcnRUZW1wbGF0ZUdyaWQgZnJvbSBcIi4uL2dyaWRzL1NlbGVjdFJlcG9ydFRlbXBsYXRlR3JpZC52dWVcIjtcbmltcG9ydCBDbGlwYm9hcmQgZnJvbSBcIi4uL2NsaXBib2FyZFwiO1xuaW1wb3J0IEV2ZW50QnVzIGZyb20gJy4uL2V2ZW50YnVzJ1xuXG5jb25zdCBwcm9wcyA9IGRlZmluZVByb3BzKFsnZGF0YScsICd0eXBlJywgJ3VyaScsICdyZWFkb25seSddKTtcblxuY29uc3QgcmVhZE9ubHkgPSBwcm9wcy5yZWFkb25seSA/IHRydWUgOiBmYWxzZTtcbmxldCBkYXRhID0gSlNPTi5wYXJzZShwcm9wcy5kYXRhKTtcbmNvbnN0IGVudGl0eSA9IHJlZihkYXRhKTtcbmNvbnN0IGNvbnRhaW5lciA9IHJlZigpO1xuY29uc3QgcG9zaXRpb25zID0gcmVmKGRhdGEucG9zaXRpb25zKTtcbmNvbnN0IHBvc2l0aW9uUmVmID0gcmVmKFtdKTtcblxuRXZlbnRCdXMuJGVtaXQoJ3Nob3ctc2lkZWJhcicpO1xuXG5mdW5jdGlvbiB1cGRhdGVQb3NpdGlvbnMoKSB7XG4gIHBvc2l0aW9ucy52YWx1ZS5mb3JFYWNoKChwb3NpdGlvbiwgaW5kZXgpID0+IHtcbiAgICBwb3NpdGlvbi5wb3NpdGlvbiA9IGluZGV4O1xuICB9KTtcbn1cbmNvbnN0IHBlcnNpc3RDaGFuZ2VzID0gdXNlRGVib3VuY2VGbigob2xkVmFsdWUsIG5ld1ZhbHVlKSA9PiB7XG4gIGlmIChwcm9wcy5yZWFkT25seSkge1xuICAgIHJldHVybjtcbiAgfVxuICBsZXQgcGF5bG9hZCA9IHN0cnVjdHVyZWRDbG9uZShuZXdWYWx1ZSk7XG5cbiAgZGVsZXRlIHBheWxvYWQuYXV0aG9yO1xuICBkZWxldGUgcGF5bG9hZC5wb3NpdGlvbnM7XG4gIGlmIChwYXlsb2FkLmNhdGVnb3J5KSB7XG4gICAgcGF5bG9hZC5jYXRlZ29yeSA9ICcvYXBpL2NhdGVnb3JpZXMvJyArIHBheWxvYWQuY2F0ZWdvcnkuaWQ7XG4gIH1cbiAgaWYgKHBheWxvYWQubWFudWZhY3R1cmVyKSB7XG4gICAgcGF5bG9hZC5tYW51ZmFjdHVyZXIgPSAnL2FwaS9tYW51ZmFjdHVyZXJzLycgKyBwYXlsb2FkLm1hbnVmYWN0dXJlci5pZDtcbiAgfVxuICBpZiAocGF5bG9hZC5kdXBsaWNhdGVPZikge1xuICAgIHBheWxvYWQuZHVwbGljYXRlT2YgPSAnL2FwaS9tYXRlcmlhbHMvJyArIHBheWxvYWQuZHVwbGljYXRlT2YuaWQ7XG4gIH1cbiAgYXhpb3MucHV0KHByb3BzLnVyaSwgcGF5bG9hZCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgfSk7XG59LCAxMDAwKTtcbndhdGNoKGVudGl0eS52YWx1ZSwgcGVyc2lzdENoYW5nZXMpO1xuXG53YXRjaChwb3NpdGlvbnMsIHVwZGF0ZVBvc2l0aW9ucyk7XG5cbmZ1bmN0aW9uIGhhbmRsZURyYWdDaGFuZ2VzKGV2dCkge1xuICBsZXQgc291cmNlQ29tcG9uZW50ID0gZXZ0LmZyb20uX192dWVQYXJlbnRDb21wb25lbnQ7XG4gIGxldCBpdGVtID0gc291cmNlQ29tcG9uZW50LmV4cG9zZWQucG9zaXRpb25zLnZhbHVlLnNwbGljZShldnQub2xkSW5kZXgsIDEpO1xuICBpdGVtWzBdLmNvbnRhaW5lciA9IHByb3BzLnVyaTtcbiAgcG9zaXRpb25zLnZhbHVlLnNwbGljZShldnQubmV3SW5kZXgsIDAsIGl0ZW1bMF0pO1xuICB1cGRhdGVQb3NpdGlvbnMoKTtcbiAgZXZ0Lml0ZW0uX192dWVQYXJlbnRDb21wb25lbnQuZXhwb3NlZC5wZXJzaXN0Q2hhbmdlcyhpdGVtWzBdLCBpdGVtWzBdKTtcbn1cblxuY29uc3Qge29wdGlvbn0gPSB1c2VTb3J0YWJsZShjb250YWluZXIsIHBvc2l0aW9ucywge1xuICBncm91cDogJ3Bvc2l0aW9ucycsXG4gIGhhbmRsZTogJy5kcmFnLWhhbmRsZS0nICsgZGF0YS5pZCxcbiAgLy8gaGFuZGxlOiAnLmJpLWFycm93cy1tb3ZlJyxcbiAgYW5pbWF0aW9uOiAxNTAsXG4gIC8vIEVsZW1lbnQgaXMgZHJvcHBlZCBpbnRvIHRoZSBsaXN0IGZyb20gYW5vdGhlciBsaXN0XG4gIG9uQWRkOiBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgaGFuZGxlRHJhZ0NoYW5nZXMoZXZ0KTtcbiAgfSxcbiAgb25VcGRhdGU6IGZ1bmN0aW9uIChldnQpIHtcbiAgICBoYW5kbGVEcmFnQ2hhbmdlcyhldnQpO1xuICB9LFxuICBvblJlbW92ZTogZnVuY3Rpb24gKGV2dCkge1xuICAgIHVwZGF0ZVBvc2l0aW9ucygpO1xuICB9XG59KVxuXG5mdW5jdGlvbiBhZGROZXcodHlwZSwgcG9zaXRpb24pIHtcbiAgaWYgKCFwb3NpdGlvbikge1xuICAgIHBvc2l0aW9uID0gMDtcbiAgfVxuICBsZXQgbmV3UG9zaXRpb24gPSB7XG4gICAgY29udGFpbmVyOiAnL2FwaS8nICsgcHJvcHMudHlwZSArICdzLycgKyBkYXRhLmlkLFxuICAgIHBvc2l0aW9uOiBwb3NpdGlvbixcbiAgICBxdWVzdGlvbjoge1xuICAgICAgbmFtZTogJ05ldWVzIEZlbGQnLFxuICAgICAgdHlwZTogdHlwZSxcbiAgICAgIGNvbmZpZ3VyYXRpb246IHt9LFxuICAgICAgcG9zaXRpb25zOiBbXVxuICAgIH1cbiAgfTtcbiAgcG9zaXRpb25zLnZhbHVlLnNwbGljZShwb3NpdGlvbiArIDEsIDAsIG5ld1Bvc2l0aW9uKTtcbiAgbGV0IGluZGV4ID0gcG9zaXRpb25zLnZhbHVlLmluZGV4T2YobmV3UG9zaXRpb24pO1xuICBheGlvcy5wb3N0KCcvYXBpL3Bvc2l0aW9ucycsIG5ld1Bvc2l0aW9uKS50aGVuKGFzeW5jIGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgIHBvc2l0aW9ucy52YWx1ZVtpbmRleF1bJ2lkJ10gPSByZXNwb25zZS5kYXRhWydpZCddO1xuICAgIHBvc2l0aW9ucy52YWx1ZVtpbmRleF1bJ3F1ZXN0aW9uJ11bJ2lkJ10gPSByZXNwb25zZS5kYXRhWydxdWVzdGlvbiddWydpZCddO1xuXG4gICAgYXdhaXQgbmV4dFRpY2soKVxuXG4gICAgcG9zaXRpb25SZWYudmFsdWUuZm9yRWFjaCgocG9zaXRpb24pID0+IHtcbiAgICAgIGlmIChwb3NpdGlvbi5pZCA9PSByZXNwb25zZS5kYXRhWydpZCddKSB7XG4gICAgICAgIHBvc2l0aW9uLnNob3dDb25maWcgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pXG4gICAgLy8gcG9zaXRpb25SZWYudmFsdWVbcG9zaXRpb24ucG9zaXRpb24rMV0uc2hvd0NvbmZpZyA9IHRydWU7XG5cbiAgICB1cGRhdGVQb3NpdGlvbnMoKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHBhc3RlQWZ0ZXIocG9zaXRpb24pIHtcbiAgYXhpb3MucG9zdCgnL2FwaS9wb3NpdGlvbnMvcGFzdGUnLFxuICAgICAge1xuICAgICAgICBwcmV2aW91c1Bvc2l0aW9uOiBwb3NpdGlvbi5pZCxcbiAgICAgICAgc2VsZWN0ZWQ6IENsaXBib2FyZC5zZWxlY3RlZC5pZCxcbiAgICAgICAgdGFyZ2V0OiAnYWZ0ZXInXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBcImhlYWRlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0XCI6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgfVxuICAgICAgfVxuICAgICkudGhlbihhc3luYyBmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgIHBvc2l0aW9ucy52YWx1ZS5zcGxpY2UocG9zaXRpb24ucG9zaXRpb24gKyAxLCAwLCByZXNwb25zZS5kYXRhKTtcbiAgICAgIGF3YWl0IG5leHRUaWNrKClcbiAgICAgIHVwZGF0ZVBvc2l0aW9ucygpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gcGFzdGUocG9zaXRpb24pIHtcbiAgY29uc29sZS5sb2coZW50aXR5KTtcbiAgYXhpb3MucG9zdCgnL2FwaS9wb3NpdGlvbnMvcGFzdGUnLFxuICAgIHtcbiAgICAgIGNvbnRhaW5lcklkOiBlbnRpdHkudmFsdWUuaWQsXG4gICAgICBzZWxlY3RlZDogQ2xpcGJvYXJkLnNlbGVjdGVkLmlkLFxuICAgICAgdGFyZ2V0OiAnaW5zaWRlLWVuZCdcbiAgICB9LFxuICAgIHtcbiAgICAgIFwiaGVhZGVyc1wiOiB7XG4gICAgICAgIFwiQWNjZXB0XCI6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgXCJDb250ZW50LVR5cGVcIjogJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICB9XG4gICAgfVxuICApLnRoZW4oYXN5bmMgZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgcG9zaXRpb25zLnZhbHVlLnB1c2gocmVzcG9uc2UuZGF0YSk7XG4gICAgYXdhaXQgbmV4dFRpY2soKVxuICAgIHVwZGF0ZVBvc2l0aW9ucygpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZGVsZXRlUG9zaXRpb24ocG9zaXRpb24pIHtcbiAgU3dhbC5maXJlKHtcbiAgICB0aXRsZTogXCJTaW5kIFNpZSBzaWNoZXI/XCIsXG4gICAgdGV4dDogXCJTaW5kIHNpZSBzaWNoZXIsIGRhc3MgU2llIFxcXCJcIiArIHBvc2l0aW9uLnF1ZXN0aW9uLm5hbWUgKyBcIlxcXCIgbMO2c2NoZW4gbcO2Y2h0ZW4/XCIsXG4gICAgaWNvbjogXCJ3YXJuaW5nXCIsXG4gICAgc2hvd0NhbmNlbEJ1dHRvbjogdHJ1ZSxcbiAgICBidXR0b25zU3R5bGluZzogZmFsc2UsXG4gICAgY29uZmlybUJ1dHRvblRleHQ6IFwiSmEsIGzDtnNjaGVuIVwiLFxuICAgIGNhbmNlbEJ1dHRvblRleHQ6IFwiTmVpbiwgYWJicmVjaGVuLlwiLFxuICAgIGN1c3RvbUNsYXNzOiB7XG4gICAgICBjb25maXJtQnV0dG9uOiBcImJ0biBidG4tcHJpbWFyeVwiLFxuICAgICAgY2FuY2VsQnV0dG9uOiAnYnRuIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLXByaW1hcnknXG4gICAgfSxcbiAgICByZXZlcnNlQnV0dG9uczogdHJ1ZVxuICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHtcbiAgICBpZiAocmVzdWx0LnZhbHVlKSB7XG4gICAgICBwb3NpdGlvbnMudmFsdWUuc3BsaWNlKHBvc2l0aW9ucy52YWx1ZS5pbmRleE9mKHBvc2l0aW9uKSwgMSk7XG4gICAgICBheGlvcy5kZWxldGUoJy9hcGkvcG9zaXRpb25zLycgKyBwb3NpdGlvbi5pZCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgdXBkYXRlUG9zaXRpb25zKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0pO1xufVxuXG5kZWZpbmVFeHBvc2Uoe1xuICBjb21wb25lbnROYW1lOiAnRWRpdG9yJyxcbiAgcG9zaXRpb25zOiBwb3NpdGlvbnMsXG4gIGVudGl0eTogZW50aXR5LnZhbHVlLFxufSk7XG48L3NjcmlwdD5cbjxzdHlsZSBzY29wZWQ+XG4gIDpkZWVwKC5xdWVzdGlvbi1hY3Rpb25zKSB7XG4gICAgd2lkdGg6IDEwOHB4O1xuICB9XG4gIDpkZWVwKC5ncmF5LWNvbnRhaW5lcikge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIH1cbiAgOmRlZXAoLmV4dGVuZGVkKSB7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgICBtYXJnaW46IDAgLTFyZW07XG4gIH1cbjwvc3R5bGU+XG48dGVtcGxhdGU+XG4gIDxmb3JtPlxuICAgIDxkaXYgY2xhc3M9XCJlZGl0b3JcIj5cblxuICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uIG0tYi01IGQtZmxleCBmbGV4LXJvdyBnYXAtNSBmbGV4LXdyYXBcIiB2LWlmPVwidHlwZSA9PSAncmVwb3J0JyB8fCB0eXBlID09ICdtYXRlcmlhbCcgfHwgZW50aXR5LnRlbXBsYXRlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1jb250cm9scyBmbGV4LWZpbGxcIj5cbiAgICAgICAgICA8Zm9ybS1maWVsZCBsYWJlbD1cIk5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgIDpyZWFkLW9ubHk9XCJyZWFkT25seVwiXG4gICAgICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImVudGl0eS5uYW1lXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgOmNsYXNzPVwieydxdWVzdGlvbi1hY3Rpb25zIGQtZmxleCBmbGV4LXJvdyBnYXAtMSBhbGlnbi1pdGVtcy1jZW50ZXInOiB0cnVlfVwiIHYtaWY9XCJyZWFkT25seSA9PSBmYWxzZVwiPlxuICAgICAgICAgIDxhZGQtbmV3LWZpZWxkIEBhZGQtbmV3PVwiYWRkTmV3XCIvPlxuICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktYXJyb3dzLW1vdmUgZnMtMlwiPjwvaT5cbiAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLXBlbmNpbCBmcy0yXCI+PC9pPlxuICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktdHJhc2ggZnMtMlwiPjwvaT5cbiAgICAgICAgICA8IS0tICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktY29weSBmcy0yXCI+PC9pPi0tPlxuICAgICAgICAgIDwhLS0gICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS10aHJlZS1kb3RzLXZlcnRpY2FsXCIgdi1pZj1cIiFzaG93QWN0aW9uc1wiPjwvaT4tLT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbiBtLWItNSBkLWZsZXggZmxleC1yb3cgZ2FwLTUgZmxleC13cmFwXCIgdi1pZj1cInR5cGUgPT0gJ3JlcG9ydCdcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLWNvbnRyb2xzIGZsZXgtZmlsbFwiPlxuICAgICAgICAgIDxmb3JtLWZpZWxkIGxhYmVsPVwiU3RhdHVzXCJcbiAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZW50aXR5LnN0YXR1c1wiXG4gICAgICAgICAgICAgICAgICAgICAgOnJlYWQtb25seT1cInJlYWRPbmx5XCJcbiAgICAgICAgICAgICAgICAgICAgICBjb250cm9sPVwiU3RhdHVzQ29udHJvbFwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IDpjbGFzcz1cInsncXVlc3Rpb24tYWN0aW9ucyBkLWZsZXggZmxleC1yb3cgZ2FwLTEgYWxpZ24taXRlbXMtY2VudGVyJzogdHJ1ZX1cIiB2LWlmPVwicmVhZE9ubHkgPT0gZmFsc2VcIj5cbiAgICAgICAgICA8YWRkLW5ldy1maWVsZCBAYWRkLW5ldz1cImFkZE5ld1wiLz5cbiAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWFycm93cy1tb3ZlIGZzLTJcIj48L2k+XG4gICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1wZW5jaWwgZnMtMlwiPjwvaT5cbiAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLXRyYXNoIGZzLTJcIj48L2k+XG4gICAgICAgICAgPCEtLSAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWNvcHkgZnMtMlwiPjwvaT4tLT5cbiAgICAgICAgICA8IS0tICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktdGhyZWUtZG90cy12ZXJ0aWNhbFwiIHYtaWY9XCIhc2hvd0FjdGlvbnNcIj48L2k+LS0+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24gbS1iLTUgZC1mbGV4IGZsZXgtcm93IGdhcC01IGZsZXgtd3JhcFwiIHYtaWY9XCJ0eXBlID09ICdtYXRlcmlhbCdcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLWNvbnRyb2xzIGZsZXgtZmlsbFwiPlxuICAgICAgICA8Zm9ybS1maWVsZCBsYWJlbD1cIkhlcnN0ZWxsZXJcIlxuICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZW50aXR5Lm1hbnVmYWN0dXJlclwiXG4gICAgICAgICAgICAgICAgICAgIDpyZWFkLW9ubHk9XCJyZWFkT25seVwiXG4gICAgICAgICAgICAgICAgICAgIDplbnRpdHk9XCJlbnRpdHlcIlxuICAgICAgICAgICAgICAgICAgICBjb250cm9sPVwiTWFudWZhY3R1cmVyU2VsZWN0Q29udHJvbFwiLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgOmNsYXNzPVwieydxdWVzdGlvbi1hY3Rpb25zIGQtZmxleCBmbGV4LXJvdyBnYXAtMSBhbGlnbi1pdGVtcy1jZW50ZXInOiB0cnVlfVwiIHYtaWY9XCJyZWFkT25seSA9PSBmYWxzZVwiPlxuICAgICAgICAgIDxhZGQtbmV3LWZpZWxkIEBhZGQtbmV3PVwidHlwZW9mKGFkZE5ldykgIT0gJ3VuZGVmaW5lZCcgPyBhZGROZXcgOiBudWxsXCIvPlxuICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktYXJyb3dzLW1vdmUgZnMtMlwiPjwvaT5cbiAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLXBlbmNpbCBmcy0yXCI+PC9pPlxuICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktdHJhc2ggZnMtMlwiPjwvaT5cbiAgICAgICAgICA8IS0tICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktY29weSBmcy0yXCI+PC9pPi0tPlxuICAgICAgICAgIDwhLS0gICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS10aHJlZS1kb3RzLXZlcnRpY2FsXCIgdi1pZj1cIiFzaG93QWN0aW9uc1wiPjwvaT4tLT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbiBtLWItNSBkLWZsZXggZmxleC1yb3cgZ2FwLTUgZmxleC13cmFwXCIgdi1pZj1cInR5cGUgPT0gJ21hdGVyaWFsJ1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tY29udHJvbHMgZmxleC1maWxsXCI+XG4gICAgICAgICAgPGZvcm0tZmllbGQgbGFiZWw9XCJLYXRlZ29yaWVcIlxuICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJlbnRpdHkuY2F0ZWdvcnlcIlxuICAgICAgICAgICAgICAgICAgICAgIDpyZWFkLW9ubHk9XCJyZWFkT25seVwiXG4gICAgICAgICAgICAgICAgICAgICAgOmVudGl0eT1cImVudGl0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgY29udHJvbD1cIkNhdGVnb3J5U2VsZWN0Q29udHJvbFwiLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgOmNsYXNzPVwieydxdWVzdGlvbi1hY3Rpb25zIGQtZmxleCBmbGV4LXJvdyBnYXAtMSBhbGlnbi1pdGVtcy1jZW50ZXInOiB0cnVlfVwiIHYtaWY9XCJyZWFkT25seSA9PSBmYWxzZVwiPlxuICAgICAgICAgIDxhZGQtbmV3LWZpZWxkIEBhZGQtbmV3PVwidHlwZW9mKGFkZE5ldykgIT0gJ3VuZGVmaW5lZCcgPyBhZGROZXcgOiBudWxsXCIvPlxuICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktYXJyb3dzLW1vdmUgZnMtMlwiPjwvaT5cbiAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLXBlbmNpbCBmcy0yXCI+PC9pPlxuICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktdHJhc2ggZnMtMlwiPjwvaT5cbiAgICAgICAgICA8IS0tICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktY29weSBmcy0yXCI+PC9pPi0tPlxuICAgICAgICAgIDwhLS0gICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS10aHJlZS1kb3RzLXZlcnRpY2FsXCIgdi1pZj1cIiFzaG93QWN0aW9uc1wiPjwvaT4tLT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbiBtLWItNSBkLWZsZXggZmxleC1yb3cgZ2FwLTUgZmxleC13cmFwXCIgdi1pZj1cInR5cGUgPT0gJ21hdGVyaWFsJ1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tY29udHJvbHMgZmxleC1maWxsXCI+XG4gICAgICAgICAgPGZvcm0tZmllbGQgbGFiZWw9XCJEdXBsaWthdCB2b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJlbnRpdHkuZHVwbGljYXRlT2ZcIlxuICAgICAgICAgICAgICAgICAgICAgIDpyZWFkLW9ubHk9XCJyZWFkT25seVwiXG4gICAgICAgICAgICAgICAgICAgICAgOmVudGl0eT1cImVudGl0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgY29udHJvbD1cIk1hdGVyaWFsRHVwbGljYXRlU2VsZWN0Q29udHJvbFwiLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgOmNsYXNzPVwieydxdWVzdGlvbi1hY3Rpb25zIGQtZmxleCBmbGV4LXJvdyBnYXAtMSBhbGlnbi1pdGVtcy1jZW50ZXInOiB0cnVlfVwiIHYtaWY9XCJyZWFkT25seSA9PSBmYWxzZVwiPlxuICAgICAgICAgIDxhZGQtbmV3LWZpZWxkIEBhZGQtbmV3PVwidHlwZW9mKGFkZE5ldykgIT0gJ3VuZGVmaW5lZCcgPyBhZGROZXcgOiBudWxsXCIvPlxuICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktYXJyb3dzLW1vdmUgZnMtMlwiPjwvaT5cbiAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLXBlbmNpbCBmcy0yXCI+PC9pPlxuICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktdHJhc2ggZnMtMlwiPjwvaT5cbiAgICAgICAgICA8IS0tICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktY29weSBmcy0yXCI+PC9pPi0tPlxuICAgICAgICAgIDwhLS0gICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS10aHJlZS1kb3RzLXZlcnRpY2FsXCIgdi1pZj1cIiFzaG93QWN0aW9uc1wiPjwvaT4tLT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9ucyBwb3NpdGlvbi1jb250YWluZXJcIiByZWY9XCJjb250YWluZXJcIj5cbiAgICAgICAgPHBvc2l0aW9uIHYtZm9yPVwicG9zaXRpb24gaW4gcG9zaXRpb25zXCJcbiAgICAgICAgICAgICAgICAgIDpwb3NpdGlvbj1cInBvc2l0aW9uXCJcbiAgICAgICAgICAgICAgICAgIDpyb290LWNvbnRhaW5lcj1cInVyaVwiXG4gICAgICAgICAgICAgICAgICA6a2V5PVwicG9zaXRpb24uaWRcIlxuICAgICAgICAgICAgICAgICAgOmRyYWctaGFuZGxlLWNsYXNzPVwiJ2RyYWctaGFuZGxlLScgKyBkYXRhLmlkXCJcbiAgICAgICAgICAgICAgICAgIDpyZWFkLW9ubHk9XCJyZWFkT25seVwiXG4gICAgICAgICAgICAgICAgICA6c2hvdy1wYXN0ZT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgQGFkZC1uZXc9XCJhZGROZXdcIlxuICAgICAgICAgICAgICAgICAgQHBhc3RlLWFmdGVyPVwicGFzdGVBZnRlclwiXG4gICAgICAgICAgICAgICAgICBAZGVsZXRlLXBvc2l0aW9uPVwiZGVsZXRlUG9zaXRpb25cIlxuICAgICAgICAgICAgICAgICAgcmVmPVwicG9zaXRpb25SZWZcIi8+XG5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgZ2FwLTFcIiB2LWlmPVwicG9zaXRpb25zLmxlbmd0aCA9PT0gMCAmJiByZWFkT25seSA9PSBmYWxzZVwiPlxuICAgICAgICA8aSBjbGFzcz1cImZhLXJlZ3VsYXIgZmEtcGFzdGUgZnMtMlwiXG4gICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICB2LWlmPVwiQ2xpcGJvYXJkLnNlbGVjdGVkXCJcbiAgICAgICAgICAgQGNsaWNrPVwicGFzdGUocG9zaXRpb24pXCI+PC9pPlxuICAgICAgICA8YWRkLW5ldy1maWVsZCBAYWRkLW5ldz1cImFkZE5ld1wiIC8+XG4gICAgICA8L2Rpdj5cblxuICAgIDwvZGl2PlxuICA8L2Zvcm0+XG5cbiAgPHNlbGVjdC1yZXBvcnQtdGVtcGxhdGUtZ3JpZCA6ZW50aXR5PVwiZW50aXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6dHlwZT1cInR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJwb3NpdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpxdWVyeVBhcmFtZXRlcj1cInsndGVtcGxhdGUnOiAxfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOnNob3ctZmlsdGVyPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpzaG93LWV4cG9ydD1cImZhbHNlXCI+PC9zZWxlY3QtcmVwb3J0LXRlbXBsYXRlLWdyaWQ+XG48L3RlbXBsYXRlPlxuIiwiPHNjcmlwdCBzZXR1cD5cbmltcG9ydCB7IHJlZiwgb25Nb3VudGVkLCB3YXRjaCwgbmV4dFRpY2sgfSBmcm9tICd2dWUnO1xuaW1wb3J0IEZvcm1GaWVsZCBmcm9tICcuL0Zvcm1GaWVsZC52dWUnO1xuaW1wb3J0IFBvc2l0aW9uIGZyb20gJy4vUG9zaXRpb24udnVlJztcbmltcG9ydCB7IHVzZVNvcnRhYmxlIH0gZnJvbSAnQHZ1ZXVzZS9pbnRlZ3JhdGlvbnMvdXNlU29ydGFibGUnXG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IEFkZE5ld0ZpZWxkIGZyb20gXCIuL0FkZE5ld0ZpZWxkLnZ1ZVwiO1xuaW1wb3J0IHt1c2VEZWJvdW5jZUZufSBmcm9tIFwiQHZ1ZXVzZS9jb3JlXCI7XG5cbmNvbnN0IHByb3BzID0gZGVmaW5lUHJvcHMoWydwb3NpdGlvbiddKTtcbjwvc2NyaXB0PlxuPHN0eWxlIHNjb3BlZD5cbiAgOmRlZXAoLnF1ZXN0aW9uLWFjdGlvbnMpIHtcbiAgICB3aWR0aDogOTBweDtcbiAgfVxuICA6ZGVlcCguZ3JheS1jb250YWluZXIpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICB9XG4gIDpkZWVwKC5leHRlbmRlZCkge1xuICAgIHBhZGRpbmc6IDFyZW07XG4gICAgbWFyZ2luOiAtOXB4IC0xcmVtO1xuICB9XG48L3N0eWxlPlxuPHRlbXBsYXRlPlxuICA8ZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLWxhYmVsXCI+e3twb3NpdGlvbi5xdWVzdGlvbi5uYW1lfX08L2Rpdj5cbiAgICAgIDxkaXYgdi1pZj1cInBvc2l0aW9uLnF1ZXN0aW9uID09ICdDaGVja2JveENvbnRyb2wnXCJcbiAgICAgICAgICAgY2xhc3M9XCJwb3NpdGlvbi1yZXN1bHRcIj5cbiAgICAgICAgPHVsPlxuICAgICAgICAgIDxsaSB2LWZvcj1cInZhbHVlIGluIHF1ZXN0aW9uLnZhbHVlXCI+e3sgdmFsdWUgfX08L2xpPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9kaXY+XG4gICAgICA8dGVtcGxhdGUgdi1pZj1cInBvc2l0aW9uLnF1ZXN0aW9uID09ICdNYXRlcmlhbENvbnRyb2wnXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZXN1bHRcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uc1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvblwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLWxhYmVsXCI+QmV6ZWljaG51bmc8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZXN1bHRcIj57e3Bvc2l0aW9uLnF1ZXN0aW9uLm1hdGVyaWFsLm5hbWV9fTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvblwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLWxhYmVsXCI+SGVyc3RlbGxlcjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlc3VsdFwiPnt7cG9zaXRpb24ucXVlc3Rpb24ubWF0ZXJpYWwubWFudWZhY3R1cmVyLm5hbWV9fTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxtYXRlcmlhbC1saXN0LXBvc2l0aW9uIHYtZm9yPVwiY2hpbGRQb3NpdGlvbiBpbiBwb3NpdGlvbi5xdWVzdGlvbi5tYXRlcmlhbC5wb3NpdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpwb3NpdGlvbnM9XCJjaGlsZFBvc2l0aW9uXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3RlbXBsYXRlPlxuICAgICAgPHRlbXBsYXRlIHYtaWY9XCJwb3NpdGlvbi5xdWVzdGlvbiA9PSAnUXVlc3Rpb25Hcm91cENvbnRyb2wnXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZXN1bHRcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uc1wiPlxuICAgICAgICAgIDxtYXRlcmlhbC1saXN0LXBvc2l0aW9uIHYtZm9yPVwiY2hpbGRQb3NpdGlvbiBpbiBwb3NpdGlvbi5xdWVzdGlvbi5wb3NpdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpwb3NpdGlvbnM9XCJjaGlsZFBvc2l0aW9uXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3RlbXBsYXRlPlxuICAgICAgPGRpdiB2LWVsc2VcbiAgICAgICAgICAgY2xhc3M9XCJwb3NpdGlvbi1yZXN1bHRcIj5cbiAgICAgICAgICB7e3Bvc2l0aW9uLnF1ZXN0aW9uLnZhbHVlfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG4iLCI8c2NyaXB0IHNldHVwPlxuaW1wb3J0IHsgcmVmLCBvbk1vdW50ZWQsIHdhdGNoLCBuZXh0VGljayB9IGZyb20gJ3Z1ZSc7XG5pbXBvcnQgRm9ybUZpZWxkIGZyb20gJy4vRm9ybUZpZWxkLnZ1ZSc7XG5pbXBvcnQgUG9zaXRpb24gZnJvbSAnLi9Qb3NpdGlvbi52dWUnO1xuaW1wb3J0IHsgdXNlU29ydGFibGUgfSBmcm9tICdAdnVldXNlL2ludGVncmF0aW9ucy91c2VTb3J0YWJsZSdcbmltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQgQWRkTmV3RmllbGQgZnJvbSBcIi4vQWRkTmV3RmllbGQudnVlXCI7XG5pbXBvcnQgTWF0ZXJpYWxMaXN0UG9zaXRpb24gZnJvbSBcIi4vTWF0ZXJpYWxMaXN0UG9zaXRpb24udnVlXCI7XG5cbmNvbnN0IHByb3BzID0gZGVmaW5lUHJvcHMoWydkYXRhJ10pO1xuXG5sZXQgZGF0YSA9IEpTT04ucGFyc2UocHJvcHMuZGF0YSk7XG5cbmxldCByb3dzID0gW107XG5PYmplY3Qua2V5cyhkYXRhLm1hdGVyaWFsUG9zaXRpb25zKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgcm93cy5wdXNoKGRhdGEubWF0ZXJpYWxQb3NpdGlvbnNba2V5XSk7XG59KTtcblxuY29uc3QgY29udGFpbmVyID0gcmVmKCk7XG5jb25zdCBwb3NpdGlvbnMgPSByZWYocm93cyk7XG5jb25zdCBwb3NpdGlvblJlZiA9IHJlZihbXSk7XG5cbmZ1bmN0aW9uIHVwZGF0ZVBvc2l0aW9ucygpIHtcbiAgcG9zaXRpb25zLnZhbHVlLmZvckVhY2goKHBvc2l0aW9uLCBpbmRleCkgPT4ge1xuICAgIGluZGV4ID0gaW5kZXggKyAxO1xuICAgIGlmIChwb3NpdGlvbi5wb3NpdGlvbiAhPSBpbmRleCAmJiBwb3NpdGlvbi5pZCkge1xuICAgICAgYXhpb3MucGF0Y2goJy9hcGkvbWF0ZXJpYWxfbGlzdF9wb3NpdGlvbnMvJyArIHBvc2l0aW9uLmlkLCB7XG4gICAgICAgIHBvc2l0aW9uOiBpbmRleFxuICAgICAgfSwge1xuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgcGF0Y2g6IHtcbiAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vbWVyZ2UtcGF0Y2granNvbidcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7fSk7XG4gICAgfVxuICAgIHBvc2l0aW9uLnBvc2l0aW9uID0gaW5kZXg7XG4gIH0pO1xufVxuXG53YXRjaChwb3NpdGlvbnMsIHVwZGF0ZVBvc2l0aW9ucyk7XG5cbmNvbnN0IHsgb3B0aW9uIH0gPSB1c2VTb3J0YWJsZShjb250YWluZXIsIHBvc2l0aW9ucywge1xuICBncm91cDogJ21hdGVyaWFsUG9zaXRpb25zJyxcbiAgaGFuZGxlOiAnLmRyYWctaGFuZGxlJyxcbiAgYW5pbWF0aW9uOiAxNTAsXG59KTtcblxuZGVmaW5lRXhwb3NlKHtcbiAgcG9zaXRpb25zOiBwb3NpdGlvbnMudmFsdWUsXG59KTtcbjwvc2NyaXB0PlxuPHN0eWxlIHNjb3BlZD5cbiAgOmRlZXAoLnF1ZXN0aW9uLWFjdGlvbnMpIHtcbiAgICB3aWR0aDogOTBweDtcbiAgfVxuICA6ZGVlcCguZ3JheS1jb250YWluZXIpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICB9XG4gIDpkZWVwKC5leHRlbmRlZCkge1xuICAgIHBhZGRpbmc6IDFyZW07XG4gICAgbWFyZ2luOiAtOXB4IC0xcmVtO1xuICB9XG48L3N0eWxlPlxuPHRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwibWF0ZXJpYWwtbGlzdFwiPlxuICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLWJvcmRlcmVkIHRhYmxlLXN0cmlwZWQgbWF0ZXJpYWwtbGlzdFwiPlxuICAgICAgPHRib2R5IHJlZj1cImNvbnRhaW5lclwiPlxuICAgICAgICA8dHIgdi1mb3I9XCJwb3NpdGlvbiBpbiBwb3NpdGlvbnNcIlxuICAgICAgICAgICAgOnBvc2l0aW9uPVwicG9zaXRpb25cIlxuICAgICAgICAgICAgOmtleT1cInBvc2l0aW9uLmlkXCJcbiAgICAgICAgICAgIDpkcmFnLWhhbmRsZS1jbGFzcz1cIidkcmFnLWhhbmRsZS0nICsgZGF0YS5pZFwiXG4gICAgICAgICAgICByZWY9XCJwb3NpdGlvblJlZlwiPlxuICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicG9zaXRpb24tbnVtYmVyXCI+e3twb3NpdGlvbi5wb3NpdGlvbn19PC9zcGFuPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPHRkPlxuICAgICAgICAgICAgPHRlbXBsYXRlIHYtaWY9XCJwb3NpdGlvbi5tYXRlcmlhbFwiPnt7cG9zaXRpb24ubWF0ZXJpYWwubmFtZX19PC90ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1kaXNwbGF5IHBvc2l0aW9uLWRpc3BsYXktc21hbGxcIj5cbiAgICAgICAgICAgICAgPG1hdGVyaWFsLWxpc3QtcG9zaXRpb24gdi1mb3I9XCJtYXRlcmlhbExpc3RQb3NpdGlvbiBpbiBwb3NpdGlvbi5tYXRlcmlhbC5wb3NpdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6cG9zaXRpb249XCJtYXRlcmlhbExpc3RQb3NpdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cImNvbHVtbi1tYW51ZmFjdHVyZXJcIj5cbiAgICAgICAgICAgIDxhZGRyZXNzIHYtaWY9XCJwb3NpdGlvbi5tYXRlcmlhbC5tYW51ZmFjdHVyZXJcIj5cbiAgICAgICAgICAgICAge3twb3NpdGlvbi5tYXRlcmlhbC5tYW51ZmFjdHVyZXIubmFtZX19PGJyIC8+XG4gICAgICAgICAgICAgIHt7cG9zaXRpb24ubWF0ZXJpYWwubWFudWZhY3R1cmVyLmFkZHJlc3NMaW5lMX19PGJyIC8+XG4gICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWlmPVwicG9zaXRpb24ubWF0ZXJpYWwubWFudWZhY3R1cmVyLmFkZHJlc3NMaW5lMlwiPlxuICAgICAgICAgICAgICAgIHt7cG9zaXRpb24ubWF0ZXJpYWwubWFudWZhY3R1cmVyLmFkZHJlc3NMaW5lMn19PGJyIC8+XG4gICAgICAgICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICAgICAgICAgIHt7cG9zaXRpb24ubWF0ZXJpYWwubWFudWZhY3R1cmVyLnBvc3RhbENvZGV9fSB7e3Bvc2l0aW9uLm1hdGVyaWFsLm1hbnVmYWN0dXJlci5jaXR5fX08YnIgLz5cbiAgICAgICAgICAgICAge3twb3NpdGlvbi5tYXRlcmlhbC5tYW51ZmFjdHVyZXIuY291bnRyeX19XG4gICAgICAgICAgICA8L2FkZHJlc3M+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICA8aSA6Y2xhc3M9XCInYmkgYmktYXJyb3dzLW1vdmUgZnMtMiBkcmFnLWhhbmRsZSdcIiByb2xlPVwiYnV0dG9uXCI+PC9pPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/