@tiba-spark/client-shared-lib 10.3.0-567 → 10.3.0-582

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -99,8 +99,8 @@ export class FieldValidationsComponent extends BaseComponent {
99
99
  <div *ngIf="errors?.alphanumericRegex">
100
100
  {{ L.form_validation_alphanumeric_message | translate: { controlName: label | translate, value: errors?.alphanumericRegex.value || 0 } }}
101
101
  </div>
102
- <div *ngIf="errors?.positiveIntegerNumbersIncludeZeroRegex">
103
- {{ L.form_validation_invalid_positive_integer_number_message | translate: { controlName: label | translate, value: errors?.positiveIntegerNumbersIncludeZeroRegex.value || 0 } }}
102
+ <div *ngIf="errors?.validatePositiveInteger">
103
+ {{ L.form_validation_invalid_positive_integer_number_message | translate: { controlName: label | translate, value: errors?.validatePositiveInteger.value || 0 } }}
104
104
  </div>
105
105
  <div *ngIf="errors?.roleNameAlreadyExists">
106
106
  {{ L.role_name_already_exists | translate }}
@@ -221,8 +221,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
221
221
  <div *ngIf="errors?.alphanumericRegex">
222
222
  {{ L.form_validation_alphanumeric_message | translate: { controlName: label | translate, value: errors?.alphanumericRegex.value || 0 } }}
223
223
  </div>
224
- <div *ngIf="errors?.positiveIntegerNumbersIncludeZeroRegex">
225
- {{ L.form_validation_invalid_positive_integer_number_message | translate: { controlName: label | translate, value: errors?.positiveIntegerNumbersIncludeZeroRegex.value || 0 } }}
224
+ <div *ngIf="errors?.validatePositiveInteger">
225
+ {{ L.form_validation_invalid_positive_integer_number_message | translate: { controlName: label | translate, value: errors?.validatePositiveInteger.value || 0 } }}
226
226
  </div>
227
227
  <div *ngIf="errors?.roleNameAlreadyExists">
228
228
  {{ L.role_name_already_exists | translate }}
@@ -268,4 +268,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
268
268
  }], touched: [{
269
269
  type: Input
270
270
  }] } });
271
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtdmFsaWRhdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9jb21wb25lbnRzL2ZpZWxkLXZhbGlkYXRpb25zL2ZpZWxkLXZhbGlkYXRpb25zLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7QUEwSHZELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxhQUFhO0lBUzFELFlBQW1CLGdCQUFrQztRQUNuRCxLQUFLLEVBQUUsQ0FBQztRQURTLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFGckQsZUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFJekIsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUErQjtRQUN2QyxJQUFJLE1BQU0sRUFBRTtZQUNWLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLDZDQUE2QztTQUNsRTtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7K0dBbkJVLHlCQUF5QjttR0FBekIseUJBQXlCLG1MQXRIMUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0hUOzs0RkFFVSx5QkFBeUI7a0JBeEhyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvSFQ7aUJBQ0Y7dUdBR1UsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS9iYXNlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ1t0Yi1maWVsZC12YWxpZGF0aW9uc10nLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0b3VjaGVkIHx8IGNvbnRyb2xDb250YWluZXIuY29udHJvbC5nZXQoY29udHJvbE5hbWUpPy50b3VjaGVkXCI+XG4gICAgICA8bmctY29udGFpbmVyICp0YlZhcj1cImdldEVycm9ycyB8IHdyYXBGbjogY29udHJvbENvbnRhaW5lci5jb250cm9sLmdldChjb250cm9sTmFtZSk/LmVycm9ycyA/PyBlcnJvcnMgYXMgZXJyb3JzXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJPYmplY3RLZXlzKGVycm9ycyB8fCB7fSkubGVuZ3RoID4gMTsgdGhlbiBoYXNNdWx0aUVycm9ycyBlbHNlIGhhc09uZUVycm9yXCI+PC9kaXY+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjaGFzTXVsdGlFcnJvcnM+XG4gICAgICAgICAge3sgTC5pbnZhbGlkICB8IHRyYW5zbGF0ZTogeyBjb250cm9sTmFtZTogbGFiZWwgfCB0cmFuc2xhdGV9IH19XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjaGFzT25lRXJyb3I+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8ucmVxdWlyZWRcIj5cbiAgICAgICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX3JlcXVpcmVkX21lc3NhZ2UgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5pbnZhbGlkRGF0ZVwiPlxuICAgICAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25faW52YWxpZF9kYXRlX21lc3NhZ2UgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LmludmFsaWREYXRlUmFuZ2VcIj5cbiAgICAgICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfZGF0ZV9yYW5nZSB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LmludmFsaWRUZXJtc1wiPlxuICAgICAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25fdGVybXNfcG9saWN5IHwgdHJhbnNsYXRlIH19PC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8ubWluIG1pblwiPlxuICAgICAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25fbWluX21lc3NhZ2UgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlLCB2YWx1ZTogZXJyb3JzPy5taW4ubWluIHx8IDAgfSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/Lm1heFwiPlxuICAgICAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25fbWF4X21lc3NhZ2UgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlLCB2YWx1ZTogZXJyb3JzPy5tYXgubWF4IHx8IDAgfSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/Lm1pbmxlbmd0aFwiPlxuICAgICAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25fbWluX2xlbmd0aF9tZXNzYWdlIHwgdHJhbnNsYXRlOiB7IGNvbnRyb2xOYW1lOiBsYWJlbCB8IHRyYW5zbGF0ZSwgdmFsdWU6IGVycm9ycz8ubWlubGVuZ3RoLnJlcXVpcmVkTGVuZ3RoIHx8IDAgfSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/Lm1heGxlbmd0aFwiPlxuICAgICAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25fbWF4X2xlbmd0aF9tZXNzYWdlIHwgdHJhbnNsYXRlOiB7IGNvbnRyb2xOYW1lOiBsYWJlbCB8IHRyYW5zbGF0ZSwgdmFsdWU6IGVycm9ycz8ubWF4bGVuZ3RoLnJlcXVpcmVkTGVuZ3RoIHx8IDAgfSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LmludmFsaWROdW1iZXJMZW5ndGhcIj5cbiAgICAgICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfbGVuZ3RoX21lc3NhZ2UgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlLCB2YWx1ZTogZXJyb3JzPy5pbnZhbGlkTnVtYmVyTGVuZ3RoLnJlcXVpcmVkTGVuZ3RoIHx8IDAgfSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LmludGVnZXJOdW1iZXJzXCI+XG4gICAgICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX2ludGVnZXJfbnVtYmVyX21lc3NhZ2UgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlLCB2YWx1ZTogZXJyb3JzPy5pbnRlZ2VyTnVtYmVycy52YWx1ZSB8fCAwIH0gfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5wb3NpdGl2ZU51bWJlcnNcIj5cbiAgICAgICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfcG9zaXRpdmVfbnVtYmVyX21lc3NhZ2UgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlLCB2YWx1ZTogZXJyb3JzPy5wb3NpdGl2ZU51bWJlcnMudmFsdWUgfHwgMCB9IH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8ucG9zaXRpdmVOdW1iZXJzR3JlYXRlclRoYW5aZXJvXCI+XG4gICAgICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX3Bvc2l0aXZlX251bWJlcl9ncmVhdGVyX3RoYW5femVybyB8IHRyYW5zbGF0ZTogeyBjb250cm9sTmFtZTogbGFiZWwgfCB0cmFuc2xhdGUsIHZhbHVlOiBlcnJvcnM/LnBvc2l0aXZlTnVtYmVyc0dyZWF0ZXJUaGFuWmVyby52YWx1ZSB8fCAwIH0gfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5kZWNpbWFsUG9zaXRpdmVOdW1iZXJzXCI+XG4gICAgICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX2RlY2ltYWxfbnVtYmVyX21lc3NhZ2UgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlLCB2YWx1ZTogZXJyb3JzPy5kZWNpbWFsUG9zaXRpdmVOdW1iZXJzLnZhbHVlIHx8IDAgfSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LmRlY2ltYWxOdW1iZXJzXCI+XG4gICAgICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX2RlY2ltYWxfbnVtYmVyX21lc3NhZ2UgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlLCB2YWx1ZTogZXJyb3JzPy5kZWNpbWFsTnVtYmVycy52YWx1ZSB8fCAwIH0gfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5tb2JpbGVOdW1iZXJzXCI+XG4gICAgICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX21vYmlsZV9udW1iZXJfbWVzc2FnZSB8IHRyYW5zbGF0ZTogeyBjb250cm9sTmFtZTogbGFiZWwgfCB0cmFuc2xhdGUsIHZhbHVlOiBlcnJvcnM/Lm1vYmlsZU51bWJlcnMudmFsdWUgfHwgMCB9IH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8uZW1haWxcIj5cbiAgICAgICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX2VtYWlsX3BhdHRlcm4gfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlfSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LnBhdHRlcm5cIj5cbiAgICAgICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX3Bhc3N3b3JkX3BhdHRlcm4gfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlfSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LnBhc3N3b3JkUG9saWN5UmVxdWlyZW1lbnRzXCI+XG4gICAgICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9wYXNzd29yZF9wb2xpY3kgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlfSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LnBhc3N3b3JkTm90TWF0Y2hcIj5cbiAgICAgICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX3Bhc3N3b3JkX25vdF9tYXRjaCB8IHRyYW5zbGF0ZTogeyBjb250cm9sTmFtZTogbGFiZWwgfCB0cmFuc2xhdGV9IH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8ucGFzc3dvcmRNYXRjaFwiPlxuICAgICAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25fcGFzc3dvcmRfbWF0Y2ggfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlfSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/Lm5vV2hpdGVzcGFjZVdpdGhpblNlbnRlbmNlXCI+XG4gICAgICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9ub193aGl0ZV9zcGFjZV93aXRoaW5fc2VudGVuY2UgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlfSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/Lmd1aWRJc1ZhbGlkXCI+XG4gICAgICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX3V1aWQgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlfSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/Lm5vRGVmYXVsdEFjY2Vzc1Byb2ZpbGVcIj5cbiAgICAgICAgICAgIHt7IEwubm9fYWNjZXNzX2RlZmF1bHRfcHJvZmlsZSB8IHRyYW5zbGF0ZTogeyBjb250cm9sTmFtZTogbGFiZWwgfCB0cmFuc2xhdGUsXG4gICAgICAgICAgICBjb21wYW55TmFtZTogZXJyb3JzPy5ub0RlZmF1bHRBY2Nlc3NQcm9maWxlPy5jb21wYW55TmFtZSB9IH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8ubm9FbW9qaVwiPlxuICAgICAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25faW52YWxpZF9ub19lbW9qaV9tZXNzYWdlIHwgdHJhbnNsYXRlOiB7IGNvbnRyb2xOYW1lOiBsYWJlbCB8IHRyYW5zbGF0ZSwgdmFsdWU6IGVycm9ycz8ubm9FbW9qaS52YWx1ZSB8fCAwIH0gfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5hbHBoYW51bWVyaWNSZWdleFwiPlxuICAgICAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25fYWxwaGFudW1lcmljX21lc3NhZ2UgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlLCB2YWx1ZTogZXJyb3JzPy5hbHBoYW51bWVyaWNSZWdleC52YWx1ZSB8fCAwIH0gfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5wb3NpdGl2ZUludGVnZXJOdW1iZXJzSW5jbHVkZVplcm9SZWdleFwiPlxuICAgICAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25faW52YWxpZF9wb3NpdGl2ZV9pbnRlZ2VyX251bWJlcl9tZXNzYWdlIHwgdHJhbnNsYXRlOiB7IGNvbnRyb2xOYW1lOiBsYWJlbCB8IHRyYW5zbGF0ZSwgdmFsdWU6IGVycm9ycz8ucG9zaXRpdmVJbnRlZ2VyTnVtYmVyc0luY2x1ZGVaZXJvUmVnZXgudmFsdWUgfHwgMCB9IH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8ucm9sZU5hbWVBbHJlYWR5RXhpc3RzXCI+XG4gICAgICAgICAgICB7eyBMLnJvbGVfbmFtZV9hbHJlYWR5X2V4aXN0cyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LnJhdGVOdW1iZXJBbHJlYWR5RXhpc3RzXCI+XG4gICAgICAgICAgICB7eyBMLnJhdGVfbnVtYmVyX2FscmVhZHlfZXhpc3RzIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8uYWNjZXNzUHJvZmlsZU51bWJlclRha2VuXCI+XG4gICAgICAgICAgICB7eyBMLmFjY2Vzc19wcm9maWxlX251bWJlcl9hbHJlYWR5X2V4aXN0cyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LnJhdGVOdW1iZXJJc1plcm9cIj5cbiAgICAgICAgICAgIHt7IEwucmF0ZV9udW1iZXJfaXNfemVybyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LmZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX3RpbWVcIj5cbiAgICAgICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfdGltZSB8IHRyYW5zbGF0ZTogeyBjb250cm9sTmFtZTogbGFiZWwgLGZyb206ICcwMDowMCcsdG86JzAwOjAwJyB9IH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8uZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfdGltZV9mb3JtYXRcIj5cbiAgICAgICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfdGltZV9mb3JtYXQgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIH0gfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5wb3NpdGl2ZUludGVnZXJOdW1iZXJzR3JlYXRlclRoYW5aZXJvUmVnZXhcIj5cbiAgICAgICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfcG9zaXRpdmVfaW50ZWdlcl9udW1iZXJfd29femVyb19tZXNzYWdlIHwgdHJhbnNsYXRlOiB7IGNvbnRyb2xOYW1lOiBsYWJlbCB8IHRyYW5zbGF0ZSwgdmFsdWU6IGVycm9ycz8ucG9zaXRpdmVJbnRlZ2VyTnVtYmVyc0dyZWF0ZXJUaGFuWmVyb1JlZ2V4LnZhbHVlIHx8IDAgfSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LmZvcm1fdmFsaWRhdGlvbl91bml0c19iYWxhbmNlX21heGltdW1cIj5cbiAgICAgICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX3VuaXRzX2JhbGFuY2VfbWF4aW11bSB8IHRyYW5zbGF0ZTogeyAgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlIH0gfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5mb3JtX3ZhbGlkYXRpb25fdW5pdHNfYmFsYW5jZV9taW5pbXVtXCI+XG4gICAgICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl91bml0c19iYWxhbmNlX21pbmltdW0gfCB0cmFuc2xhdGU6IHsgIGNvbnRyb2xOYW1lOiBsYWJlbCB8IHRyYW5zbGF0ZSB9IH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8ucGVyY2VudGFnZVJlZ2V4XCI+XG4gICAgICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX3BlcmNlbnRhZ2VfbWVzc2FnZSB8IHRyYW5zbGF0ZTogeyBjb250cm9sTmFtZTogbGFiZWwgfCB0cmFuc2xhdGUsIHZhbHVlOiBlcnJvcnM/LnBlcmNlbnRhZ2VSZWdleC52YWx1ZSB8fCAwIH0gfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIEZpZWxkVmFsaWRhdGlvbnNDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBjb250cm9sTmFtZTogc3RyaW5nO1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsO1xuICBASW5wdXQoKSB0b3VjaGVkOiBib29sZWFuO1xuXG4gIE9iamVjdEtleXMgPSBPYmplY3Qua2V5cztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgY29udHJvbENvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBnZXRFcnJvcnMoZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBpZiAoZXJyb3JzKSB7XG4gICAgICBkZWxldGUgZXJyb3JzLm1hc2s7IC8vIHJlbW92ZSBkZWZhdWx0IE5neE1hc2tEaXJlY3RpdmUgdmFsaWRhdGlvblxuICAgIH1cblxuICAgIHJldHVybiBlcnJvcnM7XG4gIH1cbn1cbiJdfQ==
271
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtdmFsaWRhdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9jb21wb25lbnRzL2ZpZWxkLXZhbGlkYXRpb25zL2ZpZWxkLXZhbGlkYXRpb25zLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7QUEwSHZELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxhQUFhO0lBUzFELFlBQW1CLGdCQUFrQztRQUNuRCxLQUFLLEVBQUUsQ0FBQztRQURTLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFGckQsZUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFJekIsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUErQjtRQUN2QyxJQUFJLE1BQU0sRUFBRTtZQUNWLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLDZDQUE2QztTQUNsRTtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7K0dBbkJVLHlCQUF5QjttR0FBekIseUJBQXlCLG1MQXRIMUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0hUOzs0RkFFVSx5QkFBeUI7a0JBeEhyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvSFQ7aUJBQ0Y7dUdBR1UsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS9iYXNlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ1t0Yi1maWVsZC12YWxpZGF0aW9uc10nLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0b3VjaGVkIHx8IGNvbnRyb2xDb250YWluZXIuY29udHJvbC5nZXQoY29udHJvbE5hbWUpPy50b3VjaGVkXCI+XG4gICAgICA8bmctY29udGFpbmVyICp0YlZhcj1cImdldEVycm9ycyB8IHdyYXBGbjogY29udHJvbENvbnRhaW5lci5jb250cm9sLmdldChjb250cm9sTmFtZSk/LmVycm9ycyA/PyBlcnJvcnMgYXMgZXJyb3JzXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJPYmplY3RLZXlzKGVycm9ycyB8fCB7fSkubGVuZ3RoID4gMTsgdGhlbiBoYXNNdWx0aUVycm9ycyBlbHNlIGhhc09uZUVycm9yXCI+PC9kaXY+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjaGFzTXVsdGlFcnJvcnM+XG4gICAgICAgICAge3sgTC5pbnZhbGlkICB8IHRyYW5zbGF0ZTogeyBjb250cm9sTmFtZTogbGFiZWwgfCB0cmFuc2xhdGV9IH19XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjaGFzT25lRXJyb3I+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8ucmVxdWlyZWRcIj5cbiAgICAgICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX3JlcXVpcmVkX21lc3NhZ2UgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5pbnZhbGlkRGF0ZVwiPlxuICAgICAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25faW52YWxpZF9kYXRlX21lc3NhZ2UgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LmludmFsaWREYXRlUmFuZ2VcIj5cbiAgICAgICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfZGF0ZV9yYW5nZSB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LmludmFsaWRUZXJtc1wiPlxuICAgICAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25fdGVybXNfcG9saWN5IHwgdHJhbnNsYXRlIH19PC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8ubWluIG1pblwiPlxuICAgICAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25fbWluX21lc3NhZ2UgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlLCB2YWx1ZTogZXJyb3JzPy5taW4ubWluIHx8IDAgfSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/Lm1heFwiPlxuICAgICAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25fbWF4X21lc3NhZ2UgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlLCB2YWx1ZTogZXJyb3JzPy5tYXgubWF4IHx8IDAgfSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/Lm1pbmxlbmd0aFwiPlxuICAgICAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25fbWluX2xlbmd0aF9tZXNzYWdlIHwgdHJhbnNsYXRlOiB7IGNvbnRyb2xOYW1lOiBsYWJlbCB8IHRyYW5zbGF0ZSwgdmFsdWU6IGVycm9ycz8ubWlubGVuZ3RoLnJlcXVpcmVkTGVuZ3RoIHx8IDAgfSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/Lm1heGxlbmd0aFwiPlxuICAgICAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25fbWF4X2xlbmd0aF9tZXNzYWdlIHwgdHJhbnNsYXRlOiB7IGNvbnRyb2xOYW1lOiBsYWJlbCB8IHRyYW5zbGF0ZSwgdmFsdWU6IGVycm9ycz8ubWF4bGVuZ3RoLnJlcXVpcmVkTGVuZ3RoIHx8IDAgfSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LmludmFsaWROdW1iZXJMZW5ndGhcIj5cbiAgICAgICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfbGVuZ3RoX21lc3NhZ2UgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlLCB2YWx1ZTogZXJyb3JzPy5pbnZhbGlkTnVtYmVyTGVuZ3RoLnJlcXVpcmVkTGVuZ3RoIHx8IDAgfSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LmludGVnZXJOdW1iZXJzXCI+XG4gICAgICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX2ludGVnZXJfbnVtYmVyX21lc3NhZ2UgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlLCB2YWx1ZTogZXJyb3JzPy5pbnRlZ2VyTnVtYmVycy52YWx1ZSB8fCAwIH0gfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5wb3NpdGl2ZU51bWJlcnNcIj5cbiAgICAgICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfcG9zaXRpdmVfbnVtYmVyX21lc3NhZ2UgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlLCB2YWx1ZTogZXJyb3JzPy5wb3NpdGl2ZU51bWJlcnMudmFsdWUgfHwgMCB9IH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8ucG9zaXRpdmVOdW1iZXJzR3JlYXRlclRoYW5aZXJvXCI+XG4gICAgICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX3Bvc2l0aXZlX251bWJlcl9ncmVhdGVyX3RoYW5femVybyB8IHRyYW5zbGF0ZTogeyBjb250cm9sTmFtZTogbGFiZWwgfCB0cmFuc2xhdGUsIHZhbHVlOiBlcnJvcnM/LnBvc2l0aXZlTnVtYmVyc0dyZWF0ZXJUaGFuWmVyby52YWx1ZSB8fCAwIH0gfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5kZWNpbWFsUG9zaXRpdmVOdW1iZXJzXCI+XG4gICAgICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX2RlY2ltYWxfbnVtYmVyX21lc3NhZ2UgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlLCB2YWx1ZTogZXJyb3JzPy5kZWNpbWFsUG9zaXRpdmVOdW1iZXJzLnZhbHVlIHx8IDAgfSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LmRlY2ltYWxOdW1iZXJzXCI+XG4gICAgICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX2RlY2ltYWxfbnVtYmVyX21lc3NhZ2UgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlLCB2YWx1ZTogZXJyb3JzPy5kZWNpbWFsTnVtYmVycy52YWx1ZSB8fCAwIH0gfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5tb2JpbGVOdW1iZXJzXCI+XG4gICAgICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX21vYmlsZV9udW1iZXJfbWVzc2FnZSB8IHRyYW5zbGF0ZTogeyBjb250cm9sTmFtZTogbGFiZWwgfCB0cmFuc2xhdGUsIHZhbHVlOiBlcnJvcnM/Lm1vYmlsZU51bWJlcnMudmFsdWUgfHwgMCB9IH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8uZW1haWxcIj5cbiAgICAgICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX2VtYWlsX3BhdHRlcm4gfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlfSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LnBhdHRlcm5cIj5cbiAgICAgICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX3Bhc3N3b3JkX3BhdHRlcm4gfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlfSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LnBhc3N3b3JkUG9saWN5UmVxdWlyZW1lbnRzXCI+XG4gICAgICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9wYXNzd29yZF9wb2xpY3kgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlfSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LnBhc3N3b3JkTm90TWF0Y2hcIj5cbiAgICAgICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX3Bhc3N3b3JkX25vdF9tYXRjaCB8IHRyYW5zbGF0ZTogeyBjb250cm9sTmFtZTogbGFiZWwgfCB0cmFuc2xhdGV9IH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8ucGFzc3dvcmRNYXRjaFwiPlxuICAgICAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25fcGFzc3dvcmRfbWF0Y2ggfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlfSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/Lm5vV2hpdGVzcGFjZVdpdGhpblNlbnRlbmNlXCI+XG4gICAgICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9ub193aGl0ZV9zcGFjZV93aXRoaW5fc2VudGVuY2UgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlfSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/Lmd1aWRJc1ZhbGlkXCI+XG4gICAgICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX3V1aWQgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlfSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/Lm5vRGVmYXVsdEFjY2Vzc1Byb2ZpbGVcIj5cbiAgICAgICAgICAgIHt7IEwubm9fYWNjZXNzX2RlZmF1bHRfcHJvZmlsZSB8IHRyYW5zbGF0ZTogeyBjb250cm9sTmFtZTogbGFiZWwgfCB0cmFuc2xhdGUsXG4gICAgICAgICAgICBjb21wYW55TmFtZTogZXJyb3JzPy5ub0RlZmF1bHRBY2Nlc3NQcm9maWxlPy5jb21wYW55TmFtZSB9IH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8ubm9FbW9qaVwiPlxuICAgICAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25faW52YWxpZF9ub19lbW9qaV9tZXNzYWdlIHwgdHJhbnNsYXRlOiB7IGNvbnRyb2xOYW1lOiBsYWJlbCB8IHRyYW5zbGF0ZSwgdmFsdWU6IGVycm9ycz8ubm9FbW9qaS52YWx1ZSB8fCAwIH0gfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5hbHBoYW51bWVyaWNSZWdleFwiPlxuICAgICAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25fYWxwaGFudW1lcmljX21lc3NhZ2UgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlLCB2YWx1ZTogZXJyb3JzPy5hbHBoYW51bWVyaWNSZWdleC52YWx1ZSB8fCAwIH0gfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy52YWxpZGF0ZVBvc2l0aXZlSW50ZWdlclwiPlxuICAgICAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25faW52YWxpZF9wb3NpdGl2ZV9pbnRlZ2VyX251bWJlcl9tZXNzYWdlIHwgdHJhbnNsYXRlOiB7IGNvbnRyb2xOYW1lOiBsYWJlbCB8IHRyYW5zbGF0ZSwgdmFsdWU6IGVycm9ycz8udmFsaWRhdGVQb3NpdGl2ZUludGVnZXIudmFsdWUgfHwgMCB9IH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8ucm9sZU5hbWVBbHJlYWR5RXhpc3RzXCI+XG4gICAgICAgICAgICB7eyBMLnJvbGVfbmFtZV9hbHJlYWR5X2V4aXN0cyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LnJhdGVOdW1iZXJBbHJlYWR5RXhpc3RzXCI+XG4gICAgICAgICAgICB7eyBMLnJhdGVfbnVtYmVyX2FscmVhZHlfZXhpc3RzIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8uYWNjZXNzUHJvZmlsZU51bWJlclRha2VuXCI+XG4gICAgICAgICAgICB7eyBMLmFjY2Vzc19wcm9maWxlX251bWJlcl9hbHJlYWR5X2V4aXN0cyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LnJhdGVOdW1iZXJJc1plcm9cIj5cbiAgICAgICAgICAgIHt7IEwucmF0ZV9udW1iZXJfaXNfemVybyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LmZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX3RpbWVcIj5cbiAgICAgICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfdGltZSB8IHRyYW5zbGF0ZTogeyBjb250cm9sTmFtZTogbGFiZWwgLGZyb206ICcwMDowMCcsdG86JzAwOjAwJyB9IH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8uZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfdGltZV9mb3JtYXRcIj5cbiAgICAgICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfdGltZV9mb3JtYXQgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIH0gfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5wb3NpdGl2ZUludGVnZXJOdW1iZXJzR3JlYXRlclRoYW5aZXJvUmVnZXhcIj5cbiAgICAgICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfcG9zaXRpdmVfaW50ZWdlcl9udW1iZXJfd29femVyb19tZXNzYWdlIHwgdHJhbnNsYXRlOiB7IGNvbnRyb2xOYW1lOiBsYWJlbCB8IHRyYW5zbGF0ZSwgdmFsdWU6IGVycm9ycz8ucG9zaXRpdmVJbnRlZ2VyTnVtYmVyc0dyZWF0ZXJUaGFuWmVyb1JlZ2V4LnZhbHVlIHx8IDAgfSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LmZvcm1fdmFsaWRhdGlvbl91bml0c19iYWxhbmNlX21heGltdW1cIj5cbiAgICAgICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX3VuaXRzX2JhbGFuY2VfbWF4aW11bSB8IHRyYW5zbGF0ZTogeyAgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlIH0gfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5mb3JtX3ZhbGlkYXRpb25fdW5pdHNfYmFsYW5jZV9taW5pbXVtXCI+XG4gICAgICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl91bml0c19iYWxhbmNlX21pbmltdW0gfCB0cmFuc2xhdGU6IHsgIGNvbnRyb2xOYW1lOiBsYWJlbCB8IHRyYW5zbGF0ZSB9IH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8ucGVyY2VudGFnZVJlZ2V4XCI+XG4gICAgICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX3BlcmNlbnRhZ2VfbWVzc2FnZSB8IHRyYW5zbGF0ZTogeyBjb250cm9sTmFtZTogbGFiZWwgfCB0cmFuc2xhdGUsIHZhbHVlOiBlcnJvcnM/LnBlcmNlbnRhZ2VSZWdleC52YWx1ZSB8fCAwIH0gfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIEZpZWxkVmFsaWRhdGlvbnNDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBjb250cm9sTmFtZTogc3RyaW5nO1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsO1xuICBASW5wdXQoKSB0b3VjaGVkOiBib29sZWFuO1xuXG4gIE9iamVjdEtleXMgPSBPYmplY3Qua2V5cztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgY29udHJvbENvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBnZXRFcnJvcnMoZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBpZiAoZXJyb3JzKSB7XG4gICAgICBkZWxldGUgZXJyb3JzLm1hc2s7IC8vIHJlbW92ZSBkZWZhdWx0IE5neE1hc2tEaXJlY3RpdmUgdmFsaWRhdGlvblxuICAgIH1cblxuICAgIHJldHVybiBlcnJvcnM7XG4gIH1cbn1cbiJdfQ==
@@ -86,6 +86,8 @@ export const MAX_REPEAT_COUNT_VALUE = 999;
86
86
  export const EXPIRATION_MONTH_OPTIONS = [2, 3, 4, 5, 6];
87
87
  export const MINIMUM_LENGTH_OPTIONS = [8, 9, 10, 11, 12, 13, 14, 15];
88
88
  export const DEFAULT_MINUMIM_LENGTH = 8;
89
+ export const MAX_NUMBER_OF_NIGHTS = 999999;
90
+ export const MAX_INT32_VALUE = 2147483647;
89
91
  export const SUPPORTED_DEVICES_SCHEDULER = [Edge.DeviceType.CashReader,
90
92
  Edge.DeviceType.Dispenser,
91
93
  Edge.DeviceType.Verifier,
@@ -127,4 +129,4 @@ export const MslEventType = {
127
129
  LOGOUT_END: "msal:logoutEnd",
128
130
  RESTORE_FROM_BFCACHE: "msal:restoreFromBFCache",
129
131
  };
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvY29uc3RhbnRzL2dsb2JhbC1jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXhDLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHO0lBQzFDLFFBQVE7SUFDUixNQUFNO0lBQ04sVUFBVTtJQUNWLFVBQVU7Q0FDWCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUc7SUFDNUMscUJBQXFCO0lBQ3JCLGtCQUFrQjtJQUNsQiwrQkFBK0I7SUFDL0IsNEJBQTRCO0lBQzVCLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIscUJBQXFCO0NBQ3RCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUM7QUFFdkMsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQy9ELE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLENBQUMsQ0FBQztBQUMzQyxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxDQUFDLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxDQUFDO0FBRXhDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQztBQUUvQixNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBa0I7SUFDMUQsd0JBQXdCO0lBQ3hCLGlDQUFpQztJQUNqQyxpQ0FBaUM7SUFDakMsY0FBYztJQUNkLGdCQUFnQjtJQUNoQixFQUFFO0NBQ0gsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUM7QUFFbkMsTUFBTSxD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QkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQztBQUNuRCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRywyQkFBMkIsQ0FBQztBQUVyRSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUc7SUFDMUIsZ0JBQWdCLEVBQUUsc0JBQXNCO0lBQ3hDLGNBQWMsRUFBRSxvQkFBb0I7SUFDcEMsYUFBYSxFQUFFLG1CQUFtQjtJQUNsQyxlQUFlLEVBQUUscUJBQXFCO0lBQ3RDLHNCQUFzQixFQUFFLDJCQUEyQjtJQUNuRCxXQUFXLEVBQUUsaUJBQWlCO0lBQzlCLGFBQWEsRUFBRSxtQkFBbUI7SUFDbEMsYUFBYSxFQUFFLG1CQUFtQjtJQUNsQyxtQkFBbUIsRUFBRSx3QkFBd0I7SUFDN0MscUJBQXFCLEVBQUUsMEJBQTBCO0lBQ2pELHFCQUFxQixFQUFFLDBCQUEwQjtJQUNqRCwyQkFBMkIsRUFBRSxtQ0FBbUM7SUFDaEUsZ0JBQWdCLEVBQUUscUJBQXFCO0lBQ3ZDLGtCQUFrQixFQUFFLHVCQUF1QjtJQUMzQyxrQkFBa0IsRUFBRSx1QkFBdUI7SUFDM0MsMkJBQTJCLEVBQUUsOEJBQThCO0lBQzNELDZCQUE2QixFQUFFLGdDQUFnQztJQUMvRCw2QkFBNkIsRUFBRSxnQ0FBZ0M7SUFDL0QscUJBQXFCLEVBQUUsMEJBQTBCO0lBQ2pELG1CQUFtQixFQUFFLHdCQUF3QjtJQUM3QyxZQUFZLEVBQUUsa0JBQWtCO0lBQ2hDLFlBQVksRUFBRSxrQkFBa0I7SUFDaEMsY0FBYyxFQUFFLG9CQUFvQjtJQUNwQyxjQUFjLEVBQUUsb0JBQW9CO0lBQ3BDLFVBQVUsRUFBRSxnQkFBZ0I7SUFDNUIsb0JBQW9CLEVBQUUseUJBQXlCO0NBQ3ZDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGdlIH0gZnJvbSBcIi4uL3NlcnZpY2UtcHJveHlcIjtcblxuZXhwb3J0IGNvbnN0IERJU0FCTEVEX0ZPQ1VTX0VMRU1FTlRfVFlQRVMgPSBbXG4gICdzZWFyY2gnLFxuICAndGV4dCcsXG4gICd0ZXh0ZWFyYScsXG4gICdwYXNzd29yZCdcbl07XG5cbmV4cG9ydCBjb25zdCBESVNBQkxFRF9GT0NVU19FTEVNRU5UX0NMQVNTRVMgPSBbXG4gICdtYXQtc2VsZWN0LW1pbi1saW5lJyxcbiAgJ21hdC1zZWxlY3QtdmFsdWUnLFxuICAndGliYS1kYXRldGltZS1pbnB1dC1jb250YWluZXInLFxuICAndGliYS1kYXRldGltZS1pbnB1dC1zcGFjZXInLFxuICAnbWF0LXNlbGVjdC1hcnJvdycsXG4gICd0Yi1wcmljZS1sYWJlbCcsXG4gICdtYXQtZm9ybS1maWVsZC1mbGV4J1xuXTtcblxuZXhwb3J0IGNvbnN0IFNZU1RFTV9BTEVSVF9WQUxVRSA9IDEwMDE7XG5cbmV4cG9ydCBjb25zdCBBTExPV0VEX0ZJTEVTX0ZPUk1BVFMgPSBbJy5qcGcnLCAnLmpwZWcnLCAnLnBuZyddO1xuZXhwb3J0IGNvbnN0IEFMTE9XRURfRklMRVNfTUFYX1NJWkVfTUIgPSAxO1xuZXhwb3J0IGNvbnN0IEFMTE9XRURfVVBMT0FEX0ZJTEVTX1FVQU5USVRZID0gMTtcblxuZXhwb3J0IGNvbnN0IEFMTE9XRURfTlVNQkVSX09GX0RBWVMgPSA3O1xuXG5leHBvcnQgY29uc3QgTk9ORV9VU0VSX0lEID0gLTE7XG5cbmV4cG9ydCBjb25zdCBQUkVWRU5UX0NMSUNLX0VMRU1FTlRfQ0xBU1NFUzogQXJyYXk8c3RyaW5nPiA9IFtcbiAgJ3RiLWV4cGFuc2lvbi1pbmRpY2F0b3InLFxuICAndGItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZScsXG4gICdtYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sJyxcbiAgJ3RiLWljb24tc29ydCcsXG4gICd0Yi1pY29uLXNlYXJjaCcsXG4gICcnXG5dO1xuXG5leHBvcnQgY29uc3QgTVVMVElQTEUgPSBcIm11bHRpcGxlXCI7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1NNQVJUX1BBUktfREFURV9USU1FID0gXCIyMDAwLTAxLTAxIDAwOjAwOjAwXCI7XG5cbmV4cG9ydCBjb25zdCBJTlBVVF9TRUFSQ0hfREVCT1VOQ0VfVElNRSA9IDUwMDtcblxuZXhwb3J0IGNvbnN0IElOUFVUX1NFQVJDSF9ERUJPVU5DRV9USU1FX01FRElVTSA9IDMwMDtcblxuZXhwb3J0IGNvbnN0IElOUFVUX1NFQVJDSF9ERUJPVU5DRV9USU1FX0xPVyA9IDEwMDtcblxuZXhwb3J0IGNvbnN0IFNUQVRVU19DT0RFX1NFUlZFUl9WQUxJREFUSU9OID0gNTAwO1xuXG5leHBvcnQgY29uc3QgTk9fUkVTVUxUID0gMTtcblxuZXhwb3J0IGNvbnN0IE1BWF9BTExPV0VEX0NVUlJFTlRfQkFMQU5DRSA9IDMyNzY3O1xuXG5leHBvcnQgY29uc3QgTUFYX0FMTE9XRURfQkFER0VfVkFMVUUgPSA5OTk5OTk5OTk7XG5cbmV4cG9ydCBjb25zdCBFTkdMSVNIX0xBTkdVQUdFID0gJ2VuJztcblxuZXhwb3J0IGNvbnN0IExPQ0FMX0VOR0xJU0hfTEFOR1VBR0UgPSAnbG9jYWwtZW4tbGFuZ3VhZ2UnO1xuXG5leHBvcnQgY29uc3QgT05FX1NFQ09ORF9JTl9NSUxMSVNFQ09ORFMgPSAxMDAwO1xuXG5leHBvcnQgY29uc3QgQUxFUlRfTk9USUZJQ0FUSU9OX0NPTlRBSU5FUiA9ICcjdG9hc3QtY29udGFpbmVyJztcblxuZXhwb3J0IGNvbnN0IFNUUklOR19aRVJPID0gJzAnO1xuXG5leHBvcnQgY29uc3QgQ1JFRElUX0NBUkRfUE9TVEZJWF9MRU5HVEggPSA0O1xuXG5leHBvcnQgY29uc3QgZW51bSBTcGFya0tleWJvYXJkRXZlbnQge1xuICBBcnJvd0xlZnQgPSAnQXJyb3dMZWZ0JyxcbiAgQXJyb3dSaWdodCA9ICdBcnJvd1JpZ2h0J1xufVxuXG5leHBvcnQgY29uc3QgTUFYX0VYUE9SVF9SRUNPUkRTID0gMjUwMDtcblxuZXhwb3J0IGNvbnN0IE1BWF9ST0xFX05BTUVfTEVOR1RIID0gNTA7XG5cbmV4cG9ydCBjb25zdCBNQVhfUExBVEVfSURfTEVOR1RIID0gMjA7XG5cbmV4cG9ydCBjb25zdCBNQVhfTU9CSUxFX0xFTkdUSCA9IDI1O1xuXG5leHBvcnQgY29uc3QgTUFYX0hPVEVMX1JPT01fTlVNQkVSX0xFTkdUSCA9IDEwO1xuXG5leHBvcnQgY29uc3QgQ09MT1JTID0ge1xuICBUSVRMRV9DT0xPUjogJyMyQzNFNTAnLFxuICBDSEFSVF9ERUZBVUxUOiAnI0VDRURGMCcsXG4gIENIQVJUX1ZFSElDTEVTOiAnI0ZGRDM2MicsXG4gIENIQVJUX01PTlRITElFU19BTkRfR1VFU1RTOiAnIzA5ODVFQicsXG4gIENIQVJUX1RSQU5TSUVOVDogJyMwOUM0RUInLFxuICBDSEFSVF9BVkFMSUFCTEU6ICcjMEVGRjc3JyxcbiAgQ0hBUlRfQ0FTSDogJyNFNDg4RkYnLFxuICBDSEFSVF9DUkVESVQ6ICcjRkZEMzYyJyxcbiAgQ0hBUlRfREVCSVQ6ICcjOERBMEZFJyxcbn1cblxuZXhwb3J0IGNvbnN0IEhPVVJfRk9STUFUXzEyID0gMTI7XG5leHBvcnQgY29uc3QgSE9VUl9GT1JNQVRfMjQgPSAyNDtcbmV4cG9ydCBjb25zdCBIT1VSX0ZPUk1BVF9GVUxMX0RBWSA9IDI1O1xuZXhwb3J0IGNvbnN0IEFDQ0VTU19QUk9GSUxFX0RBVF9UWVBFU19TUCA9IDEwO1xuZXhwb3J0IGNvbnN0IE1BWF9TUCA9IDU7XG5leHBvcnQgY29uc3QgTUFYX0NBUkRTID0gNTtcbmV4cG9ydCBjb25zdCBNQVhfQ0FSX1BMQVRFUyA9IDU7XG5leHBvcnQgY29uc3QgREFUQV9JTUFHRV9CQVNFNjRfUFJFRklYID0gJ2RhdGE6aW1hZ2UvKjtiYXNlNjQnO1xuZXhwb3J0IGNvbnN0IERBVEFfSU1BR0VfQkFTRTY0X1NWR19QUkVGSVggPSAnZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCc7XG5leHBvcnQgY29uc3QgQk9NX1VOSUNPREUgPSBcIlxcdWZlZmZcIjtcbmV4cG9ydCBjb25zdCBNQVhfTEVOR1RIX1NFUkFDSF9URVJNID0gNTA7XG5leHBvcnQgY29uc3QgTUFYX0xFTkdUSF9OQU1FXzUwID0gNTA7XG5leHBvcnQgY29uc3QgTUFYX0xFTkdUSF9OQU1FXzMwID0gMzA7XG5leHBvcnQgY29uc3QgTUFYX0xFTkdUSF9ERVNDUklQVElPTiA9IDcwO1xuZXhwb3J0IGNvbnN0IFZBTElEX1RJTUVfTUFYX0xFTkdUSCA9IDQ7XG5leHBvcnQgY29uc3QgTUlOVVRFU19QRVJfSE9VUiA9IDYwO1xuZXhwb3J0IGNvbnN0IFRFTlNfTVVMVElQTElFUiA9IDEwO1xuZXhwb3J0IGNvbnN0IE1BWF9JTlRFR0VSX1ZBTFVFID0gOTk5OTk5OTtcbmV4cG9ydCBjb25zdCBNQVhfSU5UMTZfVkFMVUUgPSAzMjc2NztcbmV4cG9ydCBjb25zdCBPTkVfREFZX0lOX01JTlVURVNfVkFMVUUgPSAxNDQwO1xuZXhwb3J0IGNvbnN0IE1BWF9QUklDRV9OT19USU1FX0xJTUlUX1ZBTFVFID0gOTk5OTlcbmV4cG9ydCBjb25zdCBNQVhfUFJJQ0VfUEVSSU9EX1ZBTFVFID0gOTk5OS45OTtcbmV4cG9ydCBjb25zdCBQRVJJT0RfVElNRSA9IDk5OTk7XG5leHBvcnQgY29uc3QgTUFYX1JFUEVBVF9DT1VOVF9WQUxVRSA9IDk5OTtcbmV4cG9ydCBjb25zdCBFWFBJUkFUSU9OX01PTlRIX09QVElPTlMgPSBbMiwgMywgNCwgNSwgNl07XG5leHBvcnQgY29uc3QgTUlOSU1VTV9MRU5HVEhfT1BUSU9OUyA9IFs4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1XTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX01JTlVNSU1fTEVOR1RIID0gODtcblxuZXhwb3J0IGNvbnN0IFNVUFBPUlRFRF9ERVZJQ0VTX1NDSEVEVUxFUiA9IFtFZGdlLkRldmljZVR5cGUuQ2FzaFJlYWRlcixcbkVkZ2UuRGV2aWNlVHlwZS5EaXNwZW5zZXIsXG5FZGdlLkRldmljZVR5cGUuVmVyaWZpZXIsXG5FZGdlLkRldmljZVR5cGUuRW50cnlQaWwsXG5FZGdlLkRldmljZVR5cGUuRXhpdFBpbCxcbkVkZ2UuRGV2aWNlVHlwZS5DcmVkaXQsXG5FZGdlLkRldmljZVR5cGUuUG9mLFxuRWRnZS5EZXZpY2VUeXBlLlZhbGV0U3RhdGlvbixcbkVkZ2UuRGV2aWNlVHlwZS5SZWFkZXJcbl07XG5cbmV4cG9ydCBjb25zdCBNQ19SRUFERVJfSUQgPSAwO1xuXG5leHBvcnQgY29uc3QgUEFTU1dPUkRfRVhQSVJFRCA9ICdwYXNzd29yZF9leHBpcmVkJztcbmV4cG9ydCBjb25zdCBVU0VSX0lTX1RFTVBPUkFSWV9CTE9DS0VEID0gJ3VzZXJfaXNfdGVtcG9yYXJ5X2Jsb2NrZWQnO1xuXG5leHBvcnQgY29uc3QgTXNsRXZlbnRUeXBlID0ge1xuICBJTklUSUFMSVpFX1NUQVJUOiBcIm1zYWw6aW5pdGlhbGl6ZVN0YXJ0XCIsXG4gIElOSVRJQUxJWkVfRU5EOiBcIm1zYWw6aW5pdGlhbGl6ZUVuZFwiLFxuICBBQ0NPVU5UX0FEREVEOiBcIm1zYWw6YWNjb3VudEFkZGVkXCIsXG4gIEFDQ09VTlRfUkVNT1ZFRDogXCJtc2FsOmFjY291bnRSZW1vdmVkXCIsXG4gIEFDVElWRV9BQ0NPVU5UX0NIQU5HRUQ6IFwibXNhbDphY3RpdmVBY2NvdW50Q2hhbmdlZFwiLFxuICBMT0dJTl9TVEFSVDogXCJtc2FsOmxvZ2luU3RhcnRcIixcbiAgTE9HSU5fU1VDQ0VTUzogXCJtc2FsOmxvZ2luU3VjY2Vzc1wiLFxuICBMT0dJTl9GQUlMVVJFOiBcIm1zYWw6bG9naW5GYWlsdXJlXCIsXG4gIEFDUVVJUkVfVE9LRU5fU1RBUlQ6IFwibXNhbDphY3F1aXJlVG9rZW5TdGFydFwiLFxuICBBQ1FVSVJFX1RPS0VOX1NVQ0NFU1M6IFwibXNhbDphY3F1aXJlVG9rZW5TdWNjZXNzXCIsXG4gIEFDUVVJUkVfVE9LRU5fRkFJTFVSRTogXCJtc2FsOmFjcXVpcmVUb2tlbkZhaWx1cmVcIixcbiAgQUNRVUlSRV9UT0tFTl9ORVRXT1JLX1NUQVJUOiBcIm1zYWw6YWNxdWlyZVRva2VuRnJvbU5ldHdvcmtTdGFydFwiLFxuICBTU09fU0lMRU5UX1NUQVJUOiBcIm1zYWw6c3NvU2lsZW50U3RhcnRcIixcbiAgU1NPX1NJTEVOVF9TVUNDRVNTOiBcIm1zYWw6c3NvU2lsZW50U3VjY2Vzc1wiLFxuICBTU09fU0lMRU5UX0ZBSUxVUkU6IFwibXNhbDpzc29TaWxlbnRGYWlsdXJlXCIsXG4gIEFDUVVJUkVfVE9LRU5fQllfQ09ERV9TVEFSVDogXCJtc2FsOmFjcXVpcmVUb2tlbkJ5Q29kZVN0YXJ0XCIsXG4gIEFDUVVJUkVfVE9LRU5fQllfQ09ERV9TVUNDRVNTOiBcIm1zYWw6YWNxdWlyZVRva2VuQnlDb2RlU3VjY2Vzc1wiLFxuICBBQ1FVSVJFX1RPS0VOX0JZX0NPREVfRkFJTFVSRTogXCJtc2FsOmFjcXVpcmVUb2tlbkJ5Q29kZUZhaWx1cmVcIixcbiAgSEFORExFX1JFRElSRUNUX1NUQVJUOiBcIm1zYWw6aGFuZGxlUmVkaXJlY3RTdGFydFwiLFxuICBIQU5ETEVfUkVESVJFQ1RfRU5EOiBcIm1zYWw6aGFuZGxlUmVkaXJlY3RFbmRcIixcbiAgUE9QVVBfT1BFTkVEOiBcIm1zYWw6cG9wdXBPcGVuZWRcIixcbiAgTE9HT1VUX1NUQVJUOiBcIm1zYWw6bG9nb3V0U3RhcnRcIixcbiAgTE9HT1VUX1NVQ0NFU1M6IFwibXNhbDpsb2dvdXRTdWNjZXNzXCIsXG4gIExPR09VVF9GQUlMVVJFOiBcIm1zYWw6bG9nb3V0RmFpbHVyZVwiLFxuICBMT0dPVVRfRU5EOiBcIm1zYWw6bG9nb3V0RW5kXCIsXG4gIFJFU1RPUkVfRlJPTV9CRkNBQ0hFOiBcIm1zYWw6cmVzdG9yZUZyb21CRkNhY2hlXCIsXG59IGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgTXNsRXZlbnRUeXBlID0gKHR5cGVvZiBNc2xFdmVudFR5cGUpW2tleW9mIHR5cGVvZiBNc2xFdmVudFR5cGVdO1xuIl19
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvY29uc3RhbnRzL2dsb2JhbC1jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXhDLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHO0lBQzFDLFFBQVE7SUFDUixNQUFNO0lBQ04sVUFBVTtJQUNWLFVBQVU7Q0FDWCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUc7SUFDNUMscUJBQXFCO0lBQ3JCLGtCQUFrQjtJQUNsQiwrQkFBK0I7SUFDL0IsNEJBQTRCO0lBQzVCLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIscUJBQXFCO0NBQ3RCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUM7QUFFdkMsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQy9ELE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLENBQUMsQ0FBQztBQUMzQyxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxDQUFDLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxDQUFDO0FBRXhDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQztBQUUvQixNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBa0I7SUFDMUQsd0JBQXdCO0lBQ3hCLGlDQUFpQztJQUNqQyxpQ0FBaUM7SUFDakMsY0FBYztJQUNkLGdCQUFnQjtJQUNoQixFQUFFO0NBQ0gsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUM7QUFFbkMsTUFBTSxD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LENBQUMsTUFBTTtDQUNyQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQztBQUU5QixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQztBQUNuRCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRywyQkFBMkIsQ0FBQztBQUVyRSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUc7SUFDMUIsZ0JBQWdCLEVBQUUsc0JBQXNCO0lBQ3hDLGNBQWMsRUFBRSxvQkFBb0I7SUFDcEMsYUFBYSxFQUFFLG1CQUFtQjtJQUNsQyxlQUFlLEVBQUUscUJBQXFCO0lBQ3RDLHNCQUFzQixFQUFFLDJCQUEyQjtJQUNuRCxXQUFXLEVBQUUsaUJBQWlCO0lBQzlCLGFBQWEsRUFBRSxtQkFBbUI7SUFDbEMsYUFBYSxFQUFFLG1CQUFtQjtJQUNsQyxtQkFBbUIsRUFBRSx3QkFBd0I7SUFDN0MscUJBQXFCLEVBQUUsMEJBQTBCO0lBQ2pELHFCQUFxQixFQUFFLDBCQUEwQjtJQUNqRCwyQkFBMkIsRUFBRSxtQ0FBbUM7SUFDaEUsZ0JBQWdCLEVBQUUscUJBQXFCO0lBQ3ZDLGtCQUFrQixFQUFFLHVCQUF1QjtJQUMzQyxrQkFBa0IsRUFBRSx1QkFBdUI7SUFDM0MsMkJBQTJCLEVBQUUsOEJBQThCO0lBQzNELDZCQUE2QixFQUFFLGdDQUFnQztJQUMvRCw2QkFBNkIsRUFBRSxnQ0FBZ0M7SUFDL0QscUJBQXFCLEVBQUUsMEJBQTBCO0lBQ2pELG1CQUFtQixFQUFFLHdCQUF3QjtJQUM3QyxZQUFZLEVBQUUsa0JBQWtCO0lBQ2hDLFlBQVksRUFBRSxrQkFBa0I7SUFDaEMsY0FBYyxFQUFFLG9CQUFvQjtJQUNwQyxjQUFjLEVBQUUsb0JBQW9CO0lBQ3BDLFVBQVUsRUFBRSxnQkFBZ0I7SUFDNUIsb0JBQW9CLEVBQUUseUJBQXlCO0NBQ3ZDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGdlIH0gZnJvbSBcIi4uL3NlcnZpY2UtcHJveHlcIjtcblxuZXhwb3J0IGNvbnN0IERJU0FCTEVEX0ZPQ1VTX0VMRU1FTlRfVFlQRVMgPSBbXG4gICdzZWFyY2gnLFxuICAndGV4dCcsXG4gICd0ZXh0ZWFyYScsXG4gICdwYXNzd29yZCdcbl07XG5cbmV4cG9ydCBjb25zdCBESVNBQkxFRF9GT0NVU19FTEVNRU5UX0NMQVNTRVMgPSBbXG4gICdtYXQtc2VsZWN0LW1pbi1saW5lJyxcbiAgJ21hdC1zZWxlY3QtdmFsdWUnLFxuICAndGliYS1kYXRldGltZS1pbnB1dC1jb250YWluZXInLFxuICAndGliYS1kYXRldGltZS1pbnB1dC1zcGFjZXInLFxuICAnbWF0LXNlbGVjdC1hcnJvdycsXG4gICd0Yi1wcmljZS1sYWJlbCcsXG4gICdtYXQtZm9ybS1maWVsZC1mbGV4J1xuXTtcblxuZXhwb3J0IGNvbnN0IFNZU1RFTV9BTEVSVF9WQUxVRSA9IDEwMDE7XG5cbmV4cG9ydCBjb25zdCBBTExPV0VEX0ZJTEVTX0ZPUk1BVFMgPSBbJy5qcGcnLCAnLmpwZWcnLCAnLnBuZyddO1xuZXhwb3J0IGNvbnN0IEFMTE9XRURfRklMRVNfTUFYX1NJWkVfTUIgPSAxO1xuZXhwb3J0IGNvbnN0IEFMTE9XRURfVVBMT0FEX0ZJTEVTX1FVQU5USVRZID0gMTtcblxuZXhwb3J0IGNvbnN0IEFMTE9XRURfTlVNQkVSX09GX0RBWVMgPSA3O1xuXG5leHBvcnQgY29uc3QgTk9ORV9VU0VSX0lEID0gLTE7XG5cbmV4cG9ydCBjb25zdCBQUkVWRU5UX0NMSUNLX0VMRU1FTlRfQ0xBU1NFUzogQXJyYXk8c3RyaW5nPiA9IFtcbiAgJ3RiLWV4cGFuc2lvbi1pbmRpY2F0b3InLFxuICAndGItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZScsXG4gICdtYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sJyxcbiAgJ3RiLWljb24tc29ydCcsXG4gICd0Yi1pY29uLXNlYXJjaCcsXG4gICcnXG5dO1xuXG5leHBvcnQgY29uc3QgTVVMVElQTEUgPSBcIm11bHRpcGxlXCI7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1NNQVJUX1BBUktfREFURV9USU1FID0gXCIyMDAwLTAxLTAxIDAwOjAwOjAwXCI7XG5cbmV4cG9ydCBjb25zdCBJTlBVVF9TRUFSQ0hfREVCT1VOQ0VfVElNRSA9IDUwMDtcblxuZXhwb3J0IGNvbnN0IElOUFVUX1NFQVJDSF9ERUJPVU5DRV9USU1FX01FRElVTSA9IDMwMDtcblxuZXhwb3J0IGNvbnN0IElOUFVUX1NFQVJDSF9ERUJPVU5DRV9USU1FX0xPVyA9IDEwMDtcblxuZXhwb3J0IGNvbnN0IFNUQVRVU19DT0RFX1NFUlZFUl9WQUxJREFUSU9OID0gNTAwO1xuXG5leHBvcnQgY29uc3QgTk9fUkVTVUxUID0gMTtcblxuZXhwb3J0IGNvbnN0IE1BWF9BTExPV0VEX0NVUlJFTlRfQkFMQU5DRSA9IDMyNzY3O1xuXG5leHBvcnQgY29uc3QgTUFYX0FMTE9XRURfQkFER0VfVkFMVUUgPSA5OTk5OTk5OTk7XG5cbmV4cG9ydCBjb25zdCBFTkdMSVNIX0xBTkdVQUdFID0gJ2VuJztcblxuZXhwb3J0IGNvbnN0IExPQ0FMX0VOR0xJU0hfTEFOR1VBR0UgPSAnbG9jYWwtZW4tbGFuZ3VhZ2UnO1xuXG5leHBvcnQgY29uc3QgT05FX1NFQ09ORF9JTl9NSUxMSVNFQ09ORFMgPSAxMDAwO1xuXG5leHBvcnQgY29uc3QgQUxFUlRfTk9USUZJQ0FUSU9OX0NPTlRBSU5FUiA9ICcjdG9hc3QtY29udGFpbmVyJztcblxuZXhwb3J0IGNvbnN0IFNUUklOR19aRVJPID0gJzAnO1xuXG5leHBvcnQgY29uc3QgQ1JFRElUX0NBUkRfUE9TVEZJWF9MRU5HVEggPSA0O1xuXG5leHBvcnQgY29uc3QgZW51bSBTcGFya0tleWJvYXJkRXZlbnQge1xuICBBcnJvd0xlZnQgPSAnQXJyb3dMZWZ0JyxcbiAgQXJyb3dSaWdodCA9ICdBcnJvd1JpZ2h0J1xufVxuXG5leHBvcnQgY29uc3QgTUFYX0VYUE9SVF9SRUNPUkRTID0gMjUwMDtcblxuZXhwb3J0IGNvbnN0IE1BWF9ST0xFX05BTUVfTEVOR1RIID0gNTA7XG5cbmV4cG9ydCBjb25zdCBNQVhfUExBVEVfSURfTEVOR1RIID0gMjA7XG5cbmV4cG9ydCBjb25zdCBNQVhfTU9CSUxFX0xFTkdUSCA9IDI1O1xuXG5leHBvcnQgY29uc3QgTUFYX0hPVEVMX1JPT01fTlVNQkVSX0xFTkdUSCA9IDEwO1xuXG5leHBvcnQgY29uc3QgQ09MT1JTID0ge1xuICBUSVRMRV9DT0xPUjogJyMyQzNFNTAnLFxuICBDSEFSVF9ERUZBVUxUOiAnI0VDRURGMCcsXG4gIENIQVJUX1ZFSElDTEVTOiAnI0ZGRDM2MicsXG4gIENIQVJUX01PTlRITElFU19BTkRfR1VFU1RTOiAnIzA5ODVFQicsXG4gIENIQVJUX1RSQU5TSUVOVDogJyMwOUM0RUInLFxuICBDSEFSVF9BVkFMSUFCTEU6ICcjMEVGRjc3JyxcbiAgQ0hBUlRfQ0FTSDogJyNFNDg4RkYnLFxuICBDSEFSVF9DUkVESVQ6ICcjRkZEMzYyJyxcbiAgQ0hBUlRfREVCSVQ6ICcjOERBMEZFJyxcbn1cblxuZXhwb3J0IGNvbnN0IEhPVVJfRk9STUFUXzEyID0gMTI7XG5leHBvcnQgY29uc3QgSE9VUl9GT1JNQVRfMjQgPSAyNDtcbmV4cG9ydCBjb25zdCBIT1VSX0ZPUk1BVF9GVUxMX0RBWSA9IDI1O1xuZXhwb3J0IGNvbnN0IEFDQ0VTU19QUk9GSUxFX0RBVF9UWVBFU19TUCA9IDEwO1xuZXhwb3J0IGNvbnN0IE1BWF9TUCA9IDU7XG5leHBvcnQgY29uc3QgTUFYX0NBUkRTID0gNTtcbmV4cG9ydCBjb25zdCBNQVhfQ0FSX1BMQVRFUyA9IDU7XG5leHBvcnQgY29uc3QgREFUQV9JTUFHRV9CQVNFNjRfUFJFRklYID0gJ2RhdGE6aW1hZ2UvKjtiYXNlNjQnO1xuZXhwb3J0IGNvbnN0IERBVEFfSU1BR0VfQkFTRTY0X1NWR19QUkVGSVggPSAnZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCc7XG5leHBvcnQgY29uc3QgQk9NX1VOSUNPREUgPSBcIlxcdWZlZmZcIjtcbmV4cG9ydCBjb25zdCBNQVhfTEVOR1RIX1NFUkFDSF9URVJNID0gNTA7XG5leHBvcnQgY29uc3QgTUFYX0xFTkdUSF9OQU1FXzUwID0gNTA7XG5leHBvcnQgY29uc3QgTUFYX0xFTkdUSF9OQU1FXzMwID0gMzA7XG5leHBvcnQgY29uc3QgTUFYX0xFTkdUSF9ERVNDUklQVElPTiA9IDcwO1xuZXhwb3J0IGNvbnN0IFZBTElEX1RJTUVfTUFYX0xFTkdUSCA9IDQ7XG5leHBvcnQgY29uc3QgTUlOVVRFU19QRVJfSE9VUiA9IDYwO1xuZXhwb3J0IGNvbnN0IFRFTlNfTVVMVElQTElFUiA9IDEwO1xuZXhwb3J0IGNvbnN0IE1BWF9JTlRFR0VSX1ZBTFVFID0gOTk5OTk5OTtcbmV4cG9ydCBjb25zdCBNQVhfSU5UMTZfVkFMVUUgPSAzMjc2NztcbmV4cG9ydCBjb25zdCBPTkVfREFZX0lOX01JTlVURVNfVkFMVUUgPSAxNDQwO1xuZXhwb3J0IGNvbnN0IE1BWF9QUklDRV9OT19USU1FX0xJTUlUX1ZBTFVFID0gOTk5OTlcbmV4cG9ydCBjb25zdCBNQVhfUFJJQ0VfUEVSSU9EX1ZBTFVFID0gOTk5OS45OTtcbmV4cG9ydCBjb25zdCBQRVJJT0RfVElNRSA9IDk5OTk7XG5leHBvcnQgY29uc3QgTUFYX1JFUEVBVF9DT1VOVF9WQUxVRSA9IDk5OTtcbmV4cG9ydCBjb25zdCBFWFBJUkFUSU9OX01PTlRIX09QVElPTlMgPSBbMiwgMywgNCwgNSwgNl07XG5leHBvcnQgY29uc3QgTUlOSU1VTV9MRU5HVEhfT1BUSU9OUyA9IFs4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1XTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX01JTlVNSU1fTEVOR1RIID0gODtcbmV4cG9ydCBjb25zdCBNQVhfTlVNQkVSX09GX05JR0hUUyA9IDk5OTk5OTtcbmV4cG9ydCBjb25zdCBNQVhfSU5UMzJfVkFMVUUgPSAyMTQ3NDgzNjQ3O1xuXG5leHBvcnQgY29uc3QgU1VQUE9SVEVEX0RFVklDRVNfU0NIRURVTEVSID0gW0VkZ2UuRGV2aWNlVHlwZS5DYXNoUmVhZGVyLFxuRWRnZS5EZXZpY2VUeXBlLkRpc3BlbnNlcixcbkVkZ2UuRGV2aWNlVHlwZS5WZXJpZmllcixcbkVkZ2UuRGV2aWNlVHlwZS5FbnRyeVBpbCxcbkVkZ2UuRGV2aWNlVHlwZS5FeGl0UGlsLFxuRWRnZS5EZXZpY2VUeXBlLkNyZWRpdCxcbkVkZ2UuRGV2aWNlVHlwZS5Qb2YsXG5FZGdlLkRldmljZVR5cGUuVmFsZXRTdGF0aW9uLFxuRWRnZS5EZXZpY2VUeXBlLlJlYWRlclxuXTtcblxuZXhwb3J0IGNvbnN0IE1DX1JFQURFUl9JRCA9IDA7XG5cbmV4cG9ydCBjb25zdCBQQVNTV09SRF9FWFBJUkVEID0gJ3Bhc3N3b3JkX2V4cGlyZWQnO1xuZXhwb3J0IGNvbnN0IFVTRVJfSVNfVEVNUE9SQVJZX0JMT0NLRUQgPSAndXNlcl9pc190ZW1wb3JhcnlfYmxvY2tlZCc7XG5cbmV4cG9ydCBjb25zdCBNc2xFdmVudFR5cGUgPSB7XG4gIElOSVRJQUxJWkVfU1RBUlQ6IFwibXNhbDppbml0aWFsaXplU3RhcnRcIixcbiAgSU5JVElBTElaRV9FTkQ6IFwibXNhbDppbml0aWFsaXplRW5kXCIsXG4gIEFDQ09VTlRfQURERUQ6IFwibXNhbDphY2NvdW50QWRkZWRcIixcbiAgQUNDT1VOVF9SRU1PVkVEOiBcIm1zYWw6YWNjb3VudFJlbW92ZWRcIixcbiAgQUNUSVZFX0FDQ09VTlRfQ0hBTkdFRDogXCJtc2FsOmFjdGl2ZUFjY291bnRDaGFuZ2VkXCIsXG4gIExPR0lOX1NUQVJUOiBcIm1zYWw6bG9naW5TdGFydFwiLFxuICBMT0dJTl9TVUNDRVNTOiBcIm1zYWw6bG9naW5TdWNjZXNzXCIsXG4gIExPR0lOX0ZBSUxVUkU6IFwibXNhbDpsb2dpbkZhaWx1cmVcIixcbiAgQUNRVUlSRV9UT0tFTl9TVEFSVDogXCJtc2FsOmFjcXVpcmVUb2tlblN0YXJ0XCIsXG4gIEFDUVVJUkVfVE9LRU5fU1VDQ0VTUzogXCJtc2FsOmFjcXVpcmVUb2tlblN1Y2Nlc3NcIixcbiAgQUNRVUlSRV9UT0tFTl9GQUlMVVJFOiBcIm1zYWw6YWNxdWlyZVRva2VuRmFpbHVyZVwiLFxuICBBQ1FVSVJFX1RPS0VOX05FVFdPUktfU1RBUlQ6IFwibXNhbDphY3F1aXJlVG9rZW5Gcm9tTmV0d29ya1N0YXJ0XCIsXG4gIFNTT19TSUxFTlRfU1RBUlQ6IFwibXNhbDpzc29TaWxlbnRTdGFydFwiLFxuICBTU09fU0lMRU5UX1NVQ0NFU1M6IFwibXNhbDpzc29TaWxlbnRTdWNjZXNzXCIsXG4gIFNTT19TSUxFTlRfRkFJTFVSRTogXCJtc2FsOnNzb1NpbGVudEZhaWx1cmVcIixcbiAgQUNRVUlSRV9UT0tFTl9CWV9DT0RFX1NUQVJUOiBcIm1zYWw6YWNxdWlyZVRva2VuQnlDb2RlU3RhcnRcIixcbiAgQUNRVUlSRV9UT0tFTl9CWV9DT0RFX1NVQ0NFU1M6IFwibXNhbDphY3F1aXJlVG9rZW5CeUNvZGVTdWNjZXNzXCIsXG4gIEFDUVVJUkVfVE9LRU5fQllfQ09ERV9GQUlMVVJFOiBcIm1zYWw6YWNxdWlyZVRva2VuQnlDb2RlRmFpbHVyZVwiLFxuICBIQU5ETEVfUkVESVJFQ1RfU1RBUlQ6IFwibXNhbDpoYW5kbGVSZWRpcmVjdFN0YXJ0XCIsXG4gIEhBTkRMRV9SRURJUkVDVF9FTkQ6IFwibXNhbDpoYW5kbGVSZWRpcmVjdEVuZFwiLFxuICBQT1BVUF9PUEVORUQ6IFwibXNhbDpwb3B1cE9wZW5lZFwiLFxuICBMT0dPVVRfU1RBUlQ6IFwibXNhbDpsb2dvdXRTdGFydFwiLFxuICBMT0dPVVRfU1VDQ0VTUzogXCJtc2FsOmxvZ291dFN1Y2Nlc3NcIixcbiAgTE9HT1VUX0ZBSUxVUkU6IFwibXNhbDpsb2dvdXRGYWlsdXJlXCIsXG4gIExPR09VVF9FTkQ6IFwibXNhbDpsb2dvdXRFbmRcIixcbiAgUkVTVE9SRV9GUk9NX0JGQ0FDSEU6IFwibXNhbDpyZXN0b3JlRnJvbUJGQ2FjaGVcIixcbn0gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBNc2xFdmVudFR5cGUgPSAodHlwZW9mIE1zbEV2ZW50VHlwZSlba2V5b2YgdHlwZW9mIE1zbEV2ZW50VHlwZV07XG4iXX0=
@@ -12,8 +12,6 @@ export const integerNumbersRegex = /^[-]?(\d+)?$/;
12
12
  export const decimalPositiveRegex = /^(\d+)(\.\d{1,2})?$/;
13
13
  export const decimalRegex = /^-?(\d+)(\.\d{1,2})?$/;
14
14
  export const regexExp = /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/;
15
- export const positiveIntegerNumbersIncludeZeroRegex = /^(0|[1-9]\d*)$/;
16
- export const positiveIntegerNumbersGreaterThanZeroRegex = /^[1-9]\d*$/;
17
15
  export const percentageRegex = /^(100(\.0+)?|[1-9]?\d(\.\d+)?)$/;
18
16
  export function isNullOrEmpty(val) {
19
17
  return (val === undefined || val === null || val === '');
@@ -75,25 +73,18 @@ export class TibaValidators {
75
73
  }
76
74
  return null;
77
75
  }
78
- static positiveIntegerNumbersIncludeZero(control) {
79
- const val = control.value;
80
- if (!isNullOrEmpty(val) && !val.toString().match(positiveIntegerNumbersIncludeZeroRegex)) {
81
- return {
82
- positiveIntegerNumbersIncludeZeroRegex: {
83
- value: ` '${val}'`,
84
- pattern: positiveIntegerNumbersIncludeZeroRegex
85
- }
86
- };
87
- }
88
- return null;
76
+ static validatePositiveIntegerIncludeZero(control) {
77
+ return TibaValidators.validatePositiveInteger(control, 0);
89
78
  }
90
- static positiveIntegerNumbersWithoutZeroRegex(control) {
91
- const val = control.value;
92
- if (!isNullOrEmpty(val) && !val.toString().match(positiveIntegerNumbersGreaterThanZeroRegex)) {
79
+ static validatePositiveIntegerWithoutZero(control) {
80
+ return TibaValidators.validatePositiveInteger(control, 1);
81
+ }
82
+ static validatePositiveInteger(control, minValue) {
83
+ if (!isNullOrEmpty(control.value) &&
84
+ !(control.value.toString().match(integerNumbersRegex) && +control.value >= minValue)) {
93
85
  return {
94
- positiveIntegerNumbersGreaterThanZeroRegex: {
95
- value: ` '${val}'`,
96
- pattern: positiveIntegerNumbersGreaterThanZeroRegex
86
+ validatePositiveInteger: {
87
+ value: ` '${control.value}'`
97
88
  }
98
89
  };
99
90
  }
@@ -499,4 +490,4 @@ export class TibaValidators {
499
490
  };
500
491
  }
501
492
  }
502
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXZhbGlkYXRvci51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy91dGlscy9jdXN0b20tdmFsaWRhdG9yLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFeEMsT0FBTyxFQUFFLFlBQVksRUFBb0IsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTNFLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO0FBQzlCLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFDO0FBQ2hDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxpQkFBaUIsQ0FBQztBQUM5QyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcseUhBQXlILENBQUM7QUFDdkosTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsZ0JBQWdCLENBQUM7QUFDbEQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQztBQUN0QyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxjQUFjLENBQUM7QUFDbEQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcscUJBQXFCLENBQUM7QUFDMUQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLHVCQUF1QixDQUFDO0FBQ3BELE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyx1RkFBdUYsQ0FBQztBQUNoSCxNQUFNLENBQUMsTUFBTSxzQ0FBc0MsR0FBRyxnQkFBZ0IsQ0FBQztBQUN2RSxNQUFNLENBQUMsTUFBTSwwQ0FBMEMs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QyxPQUFPLENBQUM7YUFDeEI7U0FDRixDQUFDO0lBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgQXN5bmNWYWxpZGF0b3JGbiwgRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUFycmF5LCBVbnR5cGVkRm9ybUNvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZGVib3VuY2VUaW1lLCBkZWxheSwgbWFwLCBvZiwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJTlBVVF9TRUFSQ0hfREVCT1VOQ0VfVElNRSwgVkFMSURfVElNRV9NQVhfTEVOR1RIIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IExvY2FsaXphdGlvbiB9IGZyb20gJy4uL2VudW1zJztcbmltcG9ydCB7IENsb3VkLCBFZGdlIH0gZnJvbSAnLi4vc2VydmljZS1wcm94eSc7XG5pbXBvcnQgeyBNaWRkYXlQZXJpb2QsIFRpbWUgYXMgVGliYVRpbWUsIHRpbWVUb01vbWVudCB9IGZyb20gJy4vZGF0ZS51dGlsJztcblxuY29uc3QgTUlOX0FMTE9XRURfQkFMQU5DRSA9IDA7XG5jb25zdCBNQVhfQUxMT1dFRF9CQUxBTkNFID0gMjU1O1xuZXhwb3J0IGNvbnN0IG5vRW1vamlSZWdleCA9IC9bXmEtekEtWjAtOSBdL2dtO1xuZXhwb3J0IGNvbnN0IHBhc3N3b3JkUmVnZXggPSAvXig/PS4qW2Etel0pKD89LipbQS1aXSkoPz0uKlxcZCkoPz0uKlshXCIjJCUmJygpKissLS4vOjs8PT4/QFtcXF1eX2B7fH1+XSlbQS1aYS16XFxkIVwiIyQlJicoKSorLC0uLzo7PD0+P0BbXFxdXl9ge3x9fl17NCx9JC9nO1xuZXhwb3J0IGNvbnN0IGFscGhhbnVtZXJpY1JlZ2V4ID0gL15bYS16QS1aMC05XSskLztcbmV4cG9ydCBjb25zdCBtb2JpbGVSZWdleCA9IC9eWzAtOV0rJC87XG5leHBvcnQgY29uc3QgaW50ZWdlck51bWJlcnNSZWdleCA9IC9eWy1dPyhcXGQrKT8kLztcbmV4cG9ydCBjb25zdCBkZWNpbWFsUG9zaXRpdmVSZWdleCA9IC9eKFxcZCspKFxcLlxcZHsxLDJ9KT8kLztcbmV4cG9ydCBjb25zdCBkZWNpbWFsUmVnZXggPSAvXi0/KFxcZCspKFxcLlxcZHsxLDJ9KT8kLztcbmV4cG9ydCBjb25zdCByZWdleEV4cCA9IC9eWzAtOWEtZkEtRl17OH1cXGItWzAtOWEtZkEtRl17NH1cXGItWzAtOWEtZkEtRl17NH1cXGItWzAtOWEtZkEtRl17NH1cXGItWzAtOWEtZkEtRl17MTJ9JC87XG5leHBvcnQgY29uc3QgcG9zaXRpdmVJbnRlZ2VyTnVtYmVyc0luY2x1ZGVaZXJvUmVnZXggPSAvXigwfFsxLTldXFxkKikkLztcbmV4cG9ydCBjb25zdCBwb3NpdGl2ZUludGVnZXJOdW1iZXJzR3JlYXRlclRoYW5aZXJvUmVnZXggPSAvXlsxLTldXFxkKiQvO1xuZXhwb3J0IGNvbnN0IHBlcmNlbnRhZ2VSZWdleCA9IC9eKDEwMChcXC4wKyk/fFsxLTldP1xcZChcXC5cXGQrKT8pJC87XG5cbmV4cG9ydCBmdW5jdGlvbiBpc051bGxPckVtcHR5KHZhbDogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiAodmFsID09PSB1bmRlZmluZWQgfHwgdmFsID09PSBudWxsIHx8IHZhbCA9PT0gJycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRqdXN0VGliYVRpbWVGb3JNaWRkYXkodGltZTogVGliYVRpbWUpOiBUaWJhVGltZSB7XG4gIGlmICh0aW1lPy5taWRkYXlQZXJpb2QgPT09IE1pZGRheVBlcmlvZC5QTSAmJiB0aW1lLmhvdXJzIDw9IDEyKSB7XG4gICAgdGltZS5ob3VycyArPSAxMjtcbiAgfVxuXG4gIHJldHVybiB0aW1lO1xufVxuXG5leHBvcnQgY2xhc3MgVGliYVZhbGlkYXRvcnMge1xuXG4gIC8vIE5vIGVtb2ppIHZhbGlkYXRpb25cbiAgc3RhdGljIG5vRW1vamkoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGNvbnN0IHZhbCA9IGNvbnRyb2wudmFsdWU7XG5cbiAgICBpZiAoIWlzTnVsbE9yRW1wdHkodmFsKSAmJiB2YWwudG9TdHJpbmcoKS5tYXRjaChub0Vtb2ppUmVnZXgpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBub0Vtb2ppOiB7XG4gICAgICAgICAgdmFsdWU6IGAgJyR7dmFsfSdgLFxuICAgICAgICAgIHBhdHRlcm46IG5vRW1vamlSZWdleFxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgc3RhdGljIHBlcmNlbnRhZ2UoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGNvbnN0IHZhbCA9IGNvbnRyb2wudmFsdWU7XG5cbiAgICBpZiAoIWlzTnVsbE9yRW1wdHkodmFsKSAmJiAhdmFsLnRvU3RyaW5nKCkubWF0Y2gocGVyY2VudGFnZVJlZ2V4KSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGVyY2VudGFnZVJlZ2V4OiB7XG4gICAgICAgICAgdmFsdWU6IGAgJyR7dmFsfSdgLFxuICAgICAgICAgIHBhdHRlcm46IHBlcmNlbnRhZ2VSZWdleFxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gTW9iaWxlIG9ubHkgdmFsaWRhdGlvblxuICBzdGF0aWMgbW9iaWxlTnVtYmVycyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgY29uc3QgdmFsID0gY29udHJvbC52YWx1ZTtcblxuICAgIGlmICghaXNOdWxsT3JFbXB0eSh2YWwpICYmICF2YWwudG9TdHJpbmcoKS5tYXRjaChtb2JpbGVSZWdleCkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1vYmlsZU51bWJlcnM6IHtcbiAgICAgICAgICB2YWx1ZTogYCAnJHt2YWx9J2AsXG4gICAgICAgICAgcGF0dGVybjogbW9iaWxlUmVnZXhcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHN0YXRpYyBob3RlbFJvb25OdW1iZXJzKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBjb25zdCB2YWwgPSBjb250cm9sLnZhbHVlO1xuXG4gICAgaWYgKCFpc051bGxPckVtcHR5KHZhbCkgJiYgIXZhbC50b1N0cmluZygpLm1hdGNoKGFscGhhbnVtZXJpY1JlZ2V4KSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYWxwaGFudW1lcmljUmVnZXg6IHtcbiAgICAgICAgICB2YWx1ZTogYCAnJHt2YWx9J2AsXG4gICAgICAgICAgcGF0dGVybjogYWxwaGFudW1lcmljUmVnZXhcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHN0YXRpYyBwb3NpdGl2ZUludGVnZXJOdW1iZXJzSW5jbHVkZVplcm8oY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGNvbnN0IHZhbCA9IGNvbnRyb2wudmFsdWU7XG5cbiAgICBpZiAoIWlzTnVsbE9yRW1wdHkodmFsKSAmJiAhdmFsLnRvU3RyaW5nKCkubWF0Y2gocG9zaXRpdmVJbnRlZ2VyTnVtYmVyc0luY2x1ZGVaZXJvUmVnZXgpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwb3NpdGl2ZUludGVnZXJOdW1iZXJzSW5jbHVkZVplcm9SZWdleDoge1xuICAgICAgICAgIHZhbHVlOiBgICcke3ZhbH0nYCxcbiAgICAgICAgICBwYXR0ZXJuOiBwb3NpdGl2ZUludGVnZXJOdW1iZXJzSW5jbHVkZVplcm9SZWdleFxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgc3RhdGljIHBvc2l0aXZlSW50ZWdlck51bWJlcnNXaXRob3V0WmVyb1JlZ2V4KGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBjb25zdCB2YWwgPSBjb250cm9sLnZhbHVlO1xuXG4gICAgaWYgKCFpc051bGxPckVtcHR5KHZhbCkgJiYgIXZhbC50b1N0cmluZygpLm1hdGNoKHBvc2l0aXZlSW50ZWdlck51bWJlcnNHcmVhdGVyVGhhblplcm9SZWdleCkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBvc2l0aXZlSW50ZWdlck51bWJlcnNHcmVhdGVyVGhhblplcm9SZWdleDoge1xuICAgICAgICAgIHZhbHVlOiBgICcke3ZhbH0nYCxcbiAgICAgICAgICBwYXR0ZXJuOiBwb3NpdGl2ZUludGVnZXJOdW1iZXJzR3JlYXRlclRoYW5aZXJvUmVnZXhcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIERlY2ltYWwgUG9zaXRpdmUgTnVtYmVycyBvbmx5IHZhbGlkYXRpb25cbiAgc3RhdGljIGRlY2ltYWxQb3NpdGl2ZU51bWJlcnMoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGNvbnN0IHZhbCA9IGNvbnRyb2wudmFsdWU7XG4gICAgaWYgKCFpc051bGxPckVtcHR5KHZhbCkgJiYgIXZhbC50b1N0cmluZygpLm1hdGNoKGRlY2ltYWxQb3NpdGl2ZVJlZ2V4KSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGVjaW1hbFBvc2l0aXZlTnVtYmVyczoge1xuICAgICAgICAgIHZhbHVlOiBgICcke3ZhbH0nYCxcbiAgICAgICAgICBwYXR0ZXJuOiBkZWNpbWFsUmVnZXhcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBEZWNpbWFsIE51bWJlcnMgb25seSB2YWxpZGF0aW9uXG4gIHN0YXRpYyBkZWNpbWFsTnVtYmVycyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgY29uc3QgdmFsID0gY29udHJvbC52YWx1ZTtcblxuICAgIGlmICghaXNOdWxsT3JFbXB0eSh2YWwpICYmICF2YWwudG9TdHJpbmcoKS5tYXRjaChkZWNpbWFsUmVnZXgpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBkZWNpbWFsUG9zaXRpdmVOdW1iZXJzOiB7XG4gICAgICAgICAgdmFsdWU6IGAgJyR7dmFsfSdgLFxuICAgICAgICAgIHBhdHRlcm46IGRlY2ltYWxSZWdleFxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gUG9zaXRpdmUgLyBOZWdldGl2ZSBOdW1iZXJzIG9ubHkgdmFsaWRhdGlvblxuICBzdGF0aWMgaW50ZWdlck51bWJlcnMoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGNvbnN0IHZhbCA9IGNvbnRyb2wudmFsdWU7XG5cbiAgICBpZiAoIWlzTnVsbE9yRW1wdHkodmFsKSAmJiAhdmFsLnRvU3RyaW5nKCkubWF0Y2goaW50ZWdlck51bWJlcnNSZWdleCkpIHJldHVybiB7XG4gICAgICBpbnRlZ2VyTnVtYmVyczoge1xuICAgICAgICB2YWx1ZTogYCAnJHt2YWx9J2AsXG4gICAgICAgIHBhdHRlcm46IGludGVnZXJOdW1iZXJzUmVnZXhcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBOdW1iZXIgbGVuZ3RoXG4gIHN0YXRpYyBudW1lcmljTGVuZ3RoKGxlbmd0aDogbnVtYmVyKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgY29uc3QgdmFsID0gY29udHJvbC52YWx1ZTtcblxuICAgICAgaWYgKCFpc051bGxPckVtcHR5KHZhbCkgJiYgdmFsLnRvU3RyaW5nKCkubGVuZ3RoICE9PSBsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpbnZhbGlkTnVtYmVyTGVuZ3RoOiB7XG4gICAgICAgICAgICBhY3R1YWxMZW5ndGg6IHZhbCxcbiAgICAgICAgICAgIHJlcXVpcmVkTGVuZ3RoOiBsZW5ndGhcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gIH1cblxuICBzdGF0aWMgUGFzc3dvcmRWYWxpZGF0b3IoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGlmICghY29udHJvbC52YWx1ZT8ubWF0Y2gocGFzc3dvcmRSZWdleCkpIHtcbiAgICAgIHJldHVybiB7IHBhc3N3b3JkUG9saWN5UmVxdWlyZW1lbnRzOiB0cnVlIH07XG4gICAgfVxuICAgIGlmIChjb250cm9sLnZhbHVlLmxlbmd0aCA8IDgpIHtcbiAgICAgIHJldHVybiB7IG1pbmxlbmd0aDogeyByZXF1aXJlZExlbmd0aDogOCB9IH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgc3RhdGljIEd1aWRWYWxpZGF0b3IoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGlmICghcmVnZXhFeHAudGVzdChjb250cm9sLnZhbHVlKSkge1xuICAgICAgcmV0dXJuIHsgZ3VpZElzVmFsaWQ6IHRydWUgfTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzdGF0aWMgUGFzc3dvcmRGb3JtTWF0Y2hWYWxpZGF0b3IoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSB7XG4gICAgaWYgKCFjb250cm9sKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdQYXNzd29yZCA9IGNvbnRyb2wuZ2V0KCdwYXNzd29yZCcpO1xuICAgIGNvbnN0IGN1cnJlbnRQYXNzd29yZCA9IGNvbnRyb2wuZ2V0KCdjdXJyZW50UGFzc3dvcmQnKTtcbiAgICBpZiAobmV3UGFzc3dvcmQgJiYgY3VycmVudFBhc3N3b3JkICYmIG5ld1Bhc3N3b3JkLnZhbGlkICYmIGN1cnJlbnRQYXNzd29yZC52YWxpZCAmJiBuZXdQYXNzd29yZC52YWx1ZSA9PT0gY3VycmVudFBhc3N3b3JkLnZhbHVlKSB7XG4gICAgICByZXR1cm4geyBwYXNzd29yZE1hdGNoOiB0cnVlIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7IC8vIFBhc3N3b3JkcyBtYXRjaCBvciBmb3JtIGZpZWxkcyBoYXMgaXRzIG93biBlcnJvcnNcbiAgfVxuXG4gIHN0YXRpYyBQYXNzd29yZEZvcm1Ob3RNYXRjaFZhbGlkYXRvcihjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgICBpZiAoIWNvbnRyb2wpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IG5ld1Bhc3N3b3JkID0gY29udHJvbC5nZXQoJ3Bhc3N3b3JkJyk7XG4gICAgY29uc3QgY29uZmlybVBhc3N3b3JkID0gY29udHJvbC5nZXQoJ2NvbmZpcm1QYXNzd29yZCcpO1xuICAgIGlmICgobmV3UGFzc3dvcmQuZXJyb3JzIHx8IGNvbmZpcm1QYXNzd29yZC5lcnJvcnMpIHx8XG4gICAgICBuZXdQYXNzd29yZC52YWx1ZSA9PT0gY29uZmlybVBhc3N3b3JkLnZhbHVlKSB7XG4gICAgICByZXR1cm4gbnVsbDsgLy8gUGFzc3dvcmRzIG1hdGNoIG9yIGZvcm0gZmllbGRzIGhhcyBpdHMgb3duIGVycm9yc1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4geyBwYXNzd29yZE5vdE1hdGNoOiB0cnVlIH07XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGZyb21Ub051bWJlclZhbGlkYXRvcihmcm9tQ29udHJvbE5hbWU6IHN0cmluZywgdG9Db250cm9sTmFtZTogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgbGV0IHJlc3BvbnNlID0gbnVsbDsgLy8gUmV0dXJuIG51bGwgaWYgdmFsaWRhdGlvbiBwYXNzZXNcbiAgICAgIGlmIChjb250cm9sLnBhcmVudCkge1xuICAgICAgICBjb25zdCBmb3JtR3JvdXAgPSBjb250cm9sLnBhcmVudCBhcyBGb3JtR3JvdXA7XG4gICAgICAgIGNvbnN0IGZyb21Db250cm9sID0gZm9ybUdyb3VwLmdldChmcm9tQ29udHJvbE5hbWUpO1xuICAgICAgICBjb25zdCB0b0NvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KHRvQ29udHJvbE5hbWUpO1xuICAgICAgICBpZiAodGhpcy5pc1ZhbHVlR3JlYXRlclRoYW5PckVxdWFsVG8oZnJvbUNvbnRyb2wsIHRvQ29udHJvbCkgJiYgIXRvQ29udHJvbC5oYXNFcnJvcignZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfbnVtYmVyX3JhbmdlJykpIHtcbiAgICAgICAgICAvLyBSZXR1cm4gdmFsaWRhdGlvbiBlcnJvciBpZiAnZnJvbScgdmFsdWUgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICd0bycgdmFsdWVcbiAgICAgICAgICByZXNwb25zZSA9IHsgZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfbnVtYmVyX3JhbmdlOiB0cnVlIH07XG4gICAgICAgIH0gZWxzZSBpZiAodG9Db250cm9sLmhhc0Vycm9yKCdmb3JtX3ZhbGlkYXRpb25faW52YWxpZF9udW1iZXJfcmFuZ2UnKSkge1xuICAgICAgICAgIC8vIHJlc2V0IHRoZSBlcnJvciBvZiDigJh0b+KAmSBjb250cm9sIHdoZW4g4oCYZnJvbeKAmSBjb250cm9sIGlzIHZhbGlkIGFuZCB0byBjb250cm9sIGNvbnRhaW5zIGZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX251bWJlcl9yYW5nZVxuICAgICAgICAgIHRvQ29udHJvbC5zZXRFcnJvcnMoe30pO1xuICAgICAgICAgIHRvQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgY2FsY3VsYXRlQmFsYW5jZSA9ICh1bml0c1ZhbHVlLCBiYWxhbmNlVmFsdWUpID0+IHsgcmV0dXJuIHVuaXRzVmFsdWUgKyBiYWxhbmNlVmFsdWUgfVxuXG4gIHN0YXRpYyB1bml0c0JhbGFuY2VWYWxpZGF0b3IodW5pdHNDb250cm9sTmFtZTogc3RyaW5nLCBiYWxhbmNlQ29udHJvbE5hbWU6IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIGxldCByZXNwb25zZSA9IG51bGw7IC8vIFJldHVybiBudWxsIGlmIHZhbGlkYXRpb24gcGFzc2VzXG4gICAgICBpZiAoY29udHJvbC5wYXJlbnQpIHtcbiAgICAgICAgY29uc3QgZm9ybUdyb3VwID0gY29udHJvbC5wYXJlbnQgYXMgRm9ybUdyb3VwO1xuICAgICAgICBjb25zdCB1bml0c0NvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KHVuaXRzQ29udHJvbE5hbWUpO1xuICAgICAgICBjb25zdCBiYWxhbmNlQ29udHJvbCA9IGZvcm1Hcm91cC5nZXQoYmFsYW5jZUNvbnRyb2xOYW1lKTtcbiAgICAgICAgY29uc3QgdW5pdHNWYWx1ZSA9IHBhcnNlSW50KHVuaXRzQ29udHJvbC52YWx1ZSk7XG4gICAgICAgIGNvbnN0IGJhbGFuY2VWYWx1ZSA9IGJhbGFuY2VDb250cm9sLnZhbHVlO1xuICAgICAgICBjb25zdCBiYWxhbmNlQ2FsY3VsYXRlZCA9IHRoaXMuY2FsY3VsYXRlQmFsYW5jZSh1bml0c1ZhbHVlLCBiYWxhbmNlVmFsdWUpXG4gICAgICAgIGlmIChiYWxhbmNlQ2FsY3VsYXRlZCA+IE1BWF9BTExPV0VEX0JBTEFOQ0UpIHtcbiAgICAgICAgICByZXNwb25zZSA9IHsgZm9ybV92YWxpZGF0aW9uX3VuaXRzX2JhbGFuY2VfbWF4aW11bTogdHJ1ZSB9O1xuICAgICAgICB9IGVsc2UgaWYgKGJhbGFuY2VDYWxjdWxhdGVkIDwgTUlOX0FMTE9XRURfQkFMQU5DRSkge1xuICAgICAgICAgIHJlc3BvbnNlID0geyBmb3JtX3ZhbGlkYXRpb25fdW5pdHNfYmFsYW5jZV9taW5pbXVtOiB0cnVlIH07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIG1pbkRhdGVUaW1lKGNvbnRyb2xOYW1lOiBzdHJpbmcsIG1pbkRhdGVUaW1lVmFsdWU6IERhdGUpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sR3JvdXA6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIGxldCByZXNwb25zZSA9IG51bGw7IC8vIFJldHVybiBudWxsIGlmIHZhbGlkYXRpb24gcGFzc2VzXG5cbiAgICAgIGlmIChjb250cm9sR3JvdXAucGFyZW50KSB7XG4gICAgICAgIGNvbnN0IGZvcm1Hcm91cCA9IGNvbnRyb2xHcm91cC5wYXJlbnQgYXMgRm9ybUdyb3VwO1xuICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldChjb250cm9sTmFtZSk7XG4gICAgICAgIGNvbnN0IGNvbnRyb2xWYWx1ZTogRGF0ZSA9IGNvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgaWYgKGNvbnRyb2xWYWx1ZSkge1xuICAgICAgICAgIGNvbnN0IGNvbnRyb2xEYXRlID0gbmV3IERhdGUoY29udHJvbFZhbHVlKS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgICAgICAgICBjb25zdCBtaW5EYXRlID0gbmV3IERhdGUobWluRGF0ZVRpbWVWYWx1ZSkuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG5cbiAgICAgICAgICBpZiAoY29udHJvbERhdGUgPCBtaW5EYXRlKSB7XG4gICAgICAgICAgICByZXNwb25zZSA9IHsgZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfZnJvbV90aW1lOiB0cnVlIH07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGZyb21Ub0RhdGUoZnJvbURhdGVGaWVsZDogc3RyaW5nLCB0b0RhdGVGaWVsZDogc3RyaW5nLCBmcm9tVGltZUZpZWxkOiBzdHJpbmcgPSBudWxsLFxuICAgIHRvVGltZUZpZWxkOiBzdHJpbmcgPSBudWxsLCBlcnJvck5hbWU6IHN0cmluZyA9ICdmcm9tVG9EYXRlJyk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGZvcm1Hcm91cDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gfCBudWxsID0+IHtcbiAgICAgIGNvbnN0IGZyb21EYXRlOiBEYXRlID0gZm9ybUdyb3VwLmdldChmcm9tRGF0ZUZpZWxkKT8udmFsdWU7XG4gICAgICBjb25zdCB0b0RhdGU6IERhdGUgPSBmb3JtR3JvdXAuZ2V0KHRvRGF0ZUZpZWxkKT8udmFsdWU7XG4gICAgICBjb25zdCBmcm9tVGltZTogVGliYVRpbWUgPSBhZGp1c3RUaWJhVGltZUZvck1pZGRheShmb3JtR3JvdXAuZ2V0KGZyb21UaW1lRmllbGQpPy52YWx1ZSk7XG4gICAgICBjb25zdCB0b1RpbWU6IFRpYmFUaW1lID0gYWRqdXN0VGliYVRpbWVGb3JNaWRkYXkoZm9ybUdyb3VwLmdldCh0b1RpbWVGaWVsZCk/LnZhbHVlKTtcbiAgICAgIGlmIChmcm9tVGltZSkge1xuICAgICAgICBmcm9tRGF0ZS5zZXRIb3Vycyhmcm9tVGltZS5ob3Vycyk7XG4gICAgICAgIGZyb21EYXRlLnNldE1pbnV0ZXMoZnJvbVRpbWUubWludXRlcyk7XG4gICAgICB9XG4gICAgICBpZiAodG9UaW1lKSB7XG4gICAgICAgIHRvRGF0ZS5zZXRIb3Vycyh0b1RpbWUuaG91cnMpO1xuICAgICAgICB0b0RhdGUuc2V0TWludXRlcyh0b1RpbWUubWludXRlcyk7XG4gICAgICB9XG4gICAgICBpZiAoKGZyb21EYXRlICE9PSBudWxsICYmIHRvRGF0ZSAhPT0gbnVsbCkgJiYgZnJvbURhdGUgPiB0b0RhdGUpIHtcbiAgICAgICAgcmV0dXJuIHsgW2Vycm9yTmFtZV06IHRydWUgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZnJvbVRvVGltZVJhbmdlKGZyb21UaW1lRmllbGQ6IHN0cmluZywgdG9UaW1lRmllbGQ6IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIGxldCByZXNwb25zZSA9IG51bGw7IC8vIFJldHVybiBudWxsIGlmIHZhbGlkYXRpb24gcGFzc2VzXG4gICAgICBpZiAoY29udHJvbC5wYXJlbnQpIHtcbiAgICAgICAgY29uc3QgZm9ybUdyb3VwID0gY29udHJvbC5wYXJlbnQgYXMgRm9ybUdyb3VwO1xuICAgICAgICBjb25zdCB0b0NvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KHRvVGltZUZpZWxkKTtcbiAgICAgICAgY29uc3QgZnJvbUNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGZyb21UaW1lRmllbGQpO1xuICAgICAgICBpZiAodGhpcy5pc1ZhbHVlR3JlYXRlclRoYW5PckVxdWFsVG8oZnJvbUNvbnRyb2wsIHRvQ29udHJvbCkgJiYgdGhpcy5pc1ZhbHVlTGVuZ3RoVmFsaWQoZnJvbUNvbnRyb2wsIHRvQ29udHJvbCkgJiZcbiAgICAgICAgICAhdG9Db250cm9sLmhhc0Vycm9yKCdmb3JtX3ZhbGlkYXRpb25faW52YWxpZF90aW1lX3JhbmdlJykpIHtcbiAgICAgICAgICByZXNwb25zZSA9IHsgZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfdGltZV9yYW5nZTogdHJ1ZSB9O1xuICAgICAgICB9IGVsc2UgaWYgKHRvQ29udHJvbC5oYXNFcnJvcignZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfdGltZV9yYW5nZScpKSB7XG4gICAgICAgICAgLy8gcmVzZXQgdGhlIGVycm9yIG9mIOKAmHRv4oCZIGNvbnRyb2wgd2hlbiDigJhmcm9t4oCZIGNvbnRyb2wgaXMgdmFsaWQgYW5kIHRvIGNvbnRyb2wgY29udGFpbnMgZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfdGltZV9yYW5nZVxuICAgICAgICAgIHRvQ29udHJvbC5zZXRFcnJvcnMoe30pO1xuICAgICAgICAgIHRvQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZnJvbVRvVGltZShmcm9tVGltZUZpZWxkOiBzdHJpbmcsIHRvVGltZUZpZWxkOiBzdHJpbmcpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChmb3JtR3JvdXA6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9IHwgbnVsbCA9PiB7XG4gICAgICBjb25zdCBmcm9tVGltZTogVGliYVRpbWUgPSBhZGp1c3RUaWJhVGltZUZvck1pZGRheShmb3JtR3JvdXAuZ2V0KGZyb21UaW1lRmllbGQpLnZhbHVlKTtcbiAgICAgIGNvbnN0IHRvVGltZTogVGliYVRpbWUgPSBhZGp1c3RUaWJhVGltZUZvck1pZGRheShmb3JtR3JvdXAuZ2V0KHRvVGltZUZpZWxkKS52YWx1ZSk7XG4gICAgICBpZiAoIXRoaXMuaXNUaW1lTnVsbChmcm9tVGltZSkgJiYgIXRoaXMuaXNUaW1lTnVsbCh0b1RpbWUpICYmIChcbiAgICAgICAgKGZyb21UaW1lLmhvdXJzID4gdG9UaW1lLmhvdXJzKSB8fFxuICAgICAgICAoZnJvbVRpbWUuaG91cnMgPT0gdG9UaW1lLmhvdXJzICYmIGZyb21UaW1lLm1pbnV0ZXMgPiB0b1RpbWUubWludXRlcylcbiAgICAgICkpIHtcbiAgICAgICAgcmV0dXJuIHsgZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfdGltZV9yYW5nZTogdHJ1ZSB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGlzVGltZU51bGwgPSAodGltZTogVGliYVRpbWUpID0+IHRpbWUgPT09IG51bGwgfHxcbiAgICAodGltZS5ob3VycyA9PT0gbnVsbCAmJiB0aW1lLm1pbnV0ZXMgPT09IG51bGwgJiYgdGltZS5zZWNvbmRzID09PSBudWxsKTtcblxuICBzdGF0aWMgbm9XaGl0ZXNwYWNlVmFsaWRhdG9yID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgPT5cbiAgICAhaXNOdWxsT3JFbXB0eShjb250cm9sLnZhbHVlKSAmJiBpc051bGxPckVtcHR5KGNvbnRyb2w/LnZhbHVlPy50cmltKCkpID8geyByZXF1aXJlZDogdHJ1ZSB9IDogbnVsbDtcblxuICBzdGF0aWMgbm9XaGl0ZXNwYWNlV2l0aGluU2VudGVuY2VWYWxpZGF0b3IgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyA9PlxuICAgICEoY29udHJvbD8udmFsdWU/LnNwbGl0KFwiIFwiKS5sZW5ndGggPT09IDEpID8geyBub1doaXRlc3BhY2VXaXRoaW5TZW50ZW5jZTogdHJ1ZSB9IDogbnVsbDtcblxuICBzdGF0aWMgdGVybXNQb2xpY3lDaGVja2JveCgpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBpZiAoIWNvbnRyb2wgfHwgIWNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHsgaW52YWxpZFRlcm1zOiB0cnVlIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIHZhbGlkYXRlRGVmYXVsdEFjY2Vzc1Byb2ZpbGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSB7XG4gICAgaWYgKCFpc051bGxPckVtcHR5KGNvbnRyb2wudmFsdWUpICYmICFjb250cm9sLnZhbHVlPy5kZWZhdWx0QWNjZXNzUHJvZmlsZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbm9EZWZhdWx0QWNjZXNzUHJvZmlsZToge1xuICAgICAgICAgIGNvbXBhbnlOYW1lOiBjb250cm9sLnZhbHVlLm5hbWUsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHN0YXRpYyB6UmFuZ2UodHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSwgZnJvbVpGaWVsZDogc3RyaW5nLCB0b1pGaWVsZDogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoZm9ybUdyb3VwOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHwgbnVsbCA9PiB7XG4gICAgICBjb25zdCBmcm9tWkNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGZyb21aRmllbGQpIGFzIFVudHlwZWRGb3JtQXJyYXk7XG4gICAgICBjb25zdCB0b1pDb250cm9sID0gZm9ybUdyb3VwLmdldCh0b1pGaWVsZCkgYXMgVW50eXBlZEZvcm1BcnJheTtcblxuICAgICAgaWYgKGZyb21aQ29udHJvbC52YWx1ZT8uaWQgPiB0b1pDb250cm9sLnZhbHVlPy5pZCkge1xuICAgICAgICByZXR1cm4geyB6UmFuZ2U6IHRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChMb2NhbGl6YXRpb24uaW52YWxpZF9maWVsZHMpIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gIH1cblxuICBzdGF0aWMgcmVxdWlyZWRDcmVkZW50aWFscyh0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLCBjYXJQbGF0ZUZpZWxkOiBzdHJpbmcgPSAnY2FyUGxhdGUnLCBtb2JpbGVGaWVsZDogc3RyaW5nID0gJ21vYmlsZScsIGJhZGdlRmllbGQ6IHN0cmluZyA9ICdiYWRnZScsXG4gICAgZW1haWxGaWVsZDogc3RyaW5nID0gJ2VtYWlsJywgc2VuZEVtYWlsRmllbGQ6IHN0cmluZyA9ICdzZW5kRW1haWwnKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoZm9ybUdyb3VwOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHwgbnVsbCA9PiB7XG4gICAgICBsZXQgY2FyUGxhdGVzSW52YWxpZCA9IGZhbHNlO1xuICAgICAgbGV0IGJhZGdlc0ludmFsaWQgPSBmYWxzZTtcbiAgICAgIGxldCBpbnRlcnBvbGF0ZWRDcmVkZW50aWFsczogc3RyaW5nW10gPSBbXTtcblxuICAgICAgLy8gQ2FyZHNcbiAgICAgIGNvbnN0IGJhZGdlc0Zvcm1BcnJheSA9IGZvcm1Hcm91cC5nZXQoYmFkZ2VGaWVsZCkgYXMgVW50eXBlZEZvcm1BcnJheTtcbiAgICAgIGlmIChiYWRnZXNGb3JtQXJyYXkpIHtcbiAgICAgICAgaW50ZXJwb2xhdGVkQ3JlZGVudGlhbHMucHVzaCh0cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoTG9jYWxpemF0aW9uLmNhcmQpKTtcbiAgICAgICAgYmFkZ2VzSW52YWxpZCA9IHRoaXMuaXNGb3JtQ29udHJvbExpc3RJbnZhbGlkKGJhZGdlc0Zvcm1BcnJheS52YWx1ZSk7XG4gICAgICB9XG4gICAgICBjb25zdCBpc0NhcmRzSW52YWxpZCA9IGJhZGdlc0ludmFsaWQgfHwgIWJhZGdlc0Zvcm1BcnJheTtcblxuICAgICAgLy9DYXIgcGxhdGVzXG4gICAgICBjb25zdCBjYXJQbGF0ZXNGb3JtQXJyYXkgPSBmb3JtR3JvdXAuZ2V0KGNhclBsYXRlRmllbGQpIGFzIFVudHlwZWRGb3JtQXJyYXk7XG4gICAgICBpZiAoY2FyUGxhdGVzRm9ybUFycmF5KSB7XG4gICAgICAgIGludGVycG9sYXRlZENyZWRlbnRpYWxzLnB1c2godHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5jYXJfcGxhdGUpKTtcbiAgICAgICAgY2FyUGxhdGVzSW52YWxpZCA9IHRoaXMuaXNGb3JtQ29udHJvbExpc3RJbnZhbGlkKGNhclBsYXRlc0Zvcm1BcnJheS52YWx1ZSk7XG4gICAgICB9XG4gICAgICBjb25zdCBpc0NhclBsYXRlc0ludmFsaWQgPSBjYXJQbGF0ZXNJbnZhbGlkIHx8ICFjYXJQbGF0ZXNGb3JtQXJyYXk7XG5cbiAgICAgIC8vIE1vYmlsZVxuICAgICAgY29uc3QgbW9iaWxlRm9ybUNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KG1vYmlsZUZpZWxkKTtcbiAgICAgIGlmIChtb2JpbGVGb3JtQ29udHJvbCkge1xuICAgICAgICBpbnRlcnBvbGF0ZWRDcmVkZW50aWFscy5wdXNoKHRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChMb2NhbGl6YXRpb24ubW9iaWxlKSk7XG4gICAgICB9XG4gICAgICBjb25zdCBpc01vYmlsZUludmFsaWQgPSAhbW9iaWxlRm9ybUNvbnRyb2w/LnZhbHVlO1xuXG4gICAgICAvLyBFbWFpbFxuICAgICAgY29uc3QgZW1haWxGb3JtQ29udHJvbCA9IGZvcm1Hcm91cC5nZXQoZW1haWxGaWVsZCk7XG4gICAgICBjb25zdCBzZW5kRW1haWxGb3JtQ29udHJvbCA9IGZvcm1Hcm91cC5nZXQoc2VuZEVtYWlsRmllbGQpO1xuICAgICAgaWYgKGVtYWlsRm9ybUNvbnRyb2wgJiYgc2VuZEVtYWlsRm9ybUNvbnRyb2w/LnZhbHVlKSB7XG4gICAgICAgIGludGVycG9sYXRlZENyZWRlbnRpYWxzLnB1c2godHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5lbWFpbCkpO1xuICAgICAgfVxuICAgICAgY29uc3QgaXNFbWFpbEludmFsaWQgPSAhKHNlbmRFbWFpbEZvcm1Db250cm9sPy52YWx1ZSAmJiBlbWFpbEZvcm1Db250cm9sPy52YWx1ZSlcblxuICAgICAgY29uc3QgaXNSZXF1aXJlZENyZWRlbnRpYWxzID0gaXNDYXJQbGF0ZXNJbnZhbGlkICYmIGlzQ2FyZHNJbnZhbGlkICYmIGlzTW9iaWxlSW52YWxpZCAmJiBpc0VtYWlsSW52YWxpZDtcblxuICAgICAgaWYgKGlzUmVxdWlyZWRDcmVkZW50aWFscykge1xuICAgICAgICBjb25zdCBsYXN0Q3JlZGVudGlhbCA9IGludGVycG9sYXRlZENyZWRlbnRpYWxzLnBvcCgpO1xuICAgICAgICBsZXQgaW50ZXJwb2xhdGVQYXJhbXMgPSBgJHtpbnRlcnBvbGF0ZWRDcmVkZW50aWFscy5qb2luKCcsICcpfSAke3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChMb2NhbGl6YXRpb24ub3IpfSAke2xhc3RDcmVkZW50aWFsfWA7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcmVxdWlyZWRDcmVkZW50aWFsczogdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5yZXF1aXJlZF9jcmVkZW50aWFsc19tZXNzYWdlLCB7IGNyZWRlbnRpYWxzOiBpbnRlcnBvbGF0ZVBhcmFtcyB9KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaXNGb3JtQ29udHJvbExpc3RJbnZhbGlkKGxpc3Q6IFVudHlwZWRGb3JtQ29udHJvbFtdKSB7XG4gICAgbGV0IGlzSW52YWxpZCA9IGZhbHNlO1xuICAgIGZvciAoY29uc3QgY29udHJvbCBvZiBsaXN0KSB7XG4gICAgICBpZiAoIWNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgaXNJbnZhbGlkID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGlzSW52YWxpZDtcbiAgfVxuXG4gIHN0YXRpYyByZXF1aXJlZERheXMoc3BlY2lhbERheXNGaWVsZDogc3RyaW5nLCB3ZWVrRGF5c0ZpZWxkOiBzdHJpbmcsIGVycm9yTmFtZTogc3RyaW5nID0gJ3JlcXVpcmVkRGF5cycpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChmb3JtR3JvdXA6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9IHwgbnVsbCA9PiB7XG4gICAgICBjb25zdCBzcGVjaWFsRGF5czogbnVtYmVyID0gZm9ybUdyb3VwLmdldChzcGVjaWFsRGF5c0ZpZWxkKS52YWx1ZTtcbiAgICAgIGNvbnN0IHdlZWtEYXlzOiBudW1iZXIgPSBmb3JtR3JvdXAuZ2V0KHdlZWtEYXlzRmllbGQpLnZhbHVlO1xuICAgICAgaWYgKHNwZWNpYWxEYXlzID4gMCB8fCB3ZWVrRGF5cyA+IDApIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7IFtlcnJvck5hbWVdOiB0cnVlIH07XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBpc1JvbGVOYW1lRXhpc3RzKHJvbGVTZXJ2aWNlUHJveHk6IENsb3VkLlJvbGVTZXJ2aWNlUHJveHksIHJvbGVJZDogbnVtYmVyKTogQXN5bmNWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBPYnNlcnZhYmxlPFZhbGlkYXRpb25FcnJvcnM+ID0+IHtcbiAgICAgIHJldHVybiBvZihjb250cm9sLnZhbHVlKS5waXBlKFxuICAgICAgICBkZWxheSg1MDApLFxuICAgICAgICBkZWJvdW5jZVRpbWUoSU5QVVRfU0VBUkNIX0RFQk9VTkNFX1RJTUUpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gcm9sZVNlcnZpY2VQcm94eS5pc0V4aXN0cyhjb250cm9sLnZhbHVlLCByb2xlSWQgPz8gdW5kZWZpbmVkKS5waXBlKFxuICAgICAgICAgIG1hcChyZXMgPT4gcmVzLmRhdGEgPT09IHRydWUgfHwgIXJlcy5pc1N1Y2Nlc3MgPyB7IHJvbGVOYW1lQWxyZWFkeUV4aXN0czogdHJ1ZSB9IDogbnVsbCkpKSk7XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBpc0FjY2Vzc1Byb2ZpbGVOdW1iZXJBdmFpbGFibGUoYWNjZXNzUHJvZmlsZVNlcnZpY2VQcm94eTogRWRnZS5BY2Nlc3NQcm9maWxlU2VydmljZVByb3h5LCBndWlkOiBzdHJpbmcpOiBBc3luY1ZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IE9ic2VydmFibGU8VmFsaWRhdGlvbkVycm9ycz4gPT4ge1xuICAgICAgcmV0dXJuIG9mKGNvbnRyb2wudmFsdWUpLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiBhY2Nlc3NQcm9maWxlU2VydmljZVByb3h5LmdldEF2YWlsYWJsZU51bWJlcihjb250cm9sLnZhbHVlLCBndWlkKS5waXBlKFxuICAgICAgICAgIG1hcChyZXMgPT4gIXJlcy5kYXRhPy5pc0F2YWlsYWJsZSB8fCAhcmVzLmlzU3VjY2VzcyA/IHsgYWNjZXNzUHJvZmlsZU51bWJlclRha2VuOiB0cnVlIH0gOiBudWxsKSkpKTtcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIHRpYmFUaW1lVmFsaWRhdG9yKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBjb25zdCB2YWw6IFRpYmFUaW1lID0gY29udHJvbC52YWx1ZTtcblxuICAgIGlmICh2YWwgJiYgKHZhbC5ob3VycyA9PT0gbnVsbCB8fCB2YWwubWludXRlcyA9PT0gbnVsbCkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGludmFsaWRUaW1lOiB0cnVlXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgc3RhdGljIHZhbGlkYXRlVGliYVRpbWVJblJhbmdlVmFsaWRhdG9yKG1pblRpbWU6IFRpYmFUaW1lLCBtYXhUaW1lOiBUaWJhVGltZSk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlVGliYVRpbWVJblJhbmdlKGNvbnRyb2wudmFsdWUsIG1pblRpbWUsIG1heFRpbWUpO1xuICAgIH07XG4gIH1cblxuICBzdGF0aWMgdmFsaWRhdGVTdHJpbmdISE1NSW5SYW5nZVZhbGlkYXRvcihtaW5UaW1lOiBUaWJhVGltZSwgbWF4VGltZTogVGliYVRpbWUpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBpZiAoISFjb250cm9sLnZhbHVlKSB7XG4gICAgICAgIGlmIChjb250cm9sLnZhbHVlLmxlbmd0aCAhPT0gNCkgeyAvLyBBc3N1bWluZyB0aW1lIGZvcm1hdCBpcyAnSEhNTSdcbiAgICAgICAgICByZXR1cm4geyBmb3JtX3ZhbGlkYXRpb25faW52YWxpZF90aW1lX2Zvcm1hdDogdHJ1ZSB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGhvdXJzOiBudW1iZXIgPSBwYXJzZUludChjb250cm9sLnZhbHVlLnNsaWNlKDAsIDIpKTtcbiAgICAgICAgICBjb25zdCBtaW51dGVzOiBudW1iZXIgPSBwYXJzZUludChjb250cm9sLnZhbHVlLnNsaWNlKDIpKTtcbiAgICAgICAgICBjb25zdCBjdXJyZW50VGltZTogVGliYVRpbWUgPSB7IGhvdXJzLCBtaW51dGVzIH07XG4gICAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGVUaWJhVGltZUluUmFuZ2UoY3VycmVudFRpbWUsIG1pblRpbWUsIG1heFRpbWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIHRpbWVSYW5nZUFycmF5T3ZlcmxhcFZhbGlkYXRvcigpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBpZiAoY29udHJvbC52YWxpZCAmJiBjb250cm9sLmVuYWJsZWQpIHtcbiAgICAgICAgY29uc3QgZm9ybUFycmF5ID0gY29udHJvbC52YWx1ZTtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZvcm1BcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnRSYW5nZSA9IGZvcm1BcnJheVtpXTtcbiAgICAgICAgICBjb25zdCBjdXJyZW50RnJvbSA9IHRpbWVUb01vbWVudChjdXJyZW50UmFuZ2UuZnJvbSk7XG4gICAgICAgICAgY29uc3QgY3VycmVudFRvID0gdGltZVRvTW9tZW50KGN1cnJlbnRSYW5nZS50byk7XG5cbiAgICAgICAgICBpZiAoY3VycmVudEZyb20gJiYgY3VycmVudFRvKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gaSArIDE7IGogPCBmb3JtQXJyYXkubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgY29uc3QgY29tcGFyZVJhbmdlID0gZm9ybUFycmF5W2pdO1xuICAgICAgICAgICAgICBjb25zdCBjb21wYXJlRnJvbSA9IHRpbWVUb01vbWVudChjb21wYXJlUmFuZ2UuZnJvbSk7XG4gICAgICAgICAgICAgIGNvbnN0IGNvbXBhcmVUbyA9IHRpbWVUb01vbWVudChjb21wYXJlUmFuZ2UudG8pO1xuXG4gICAgICAgICAgICAgIGlmIChjb21wYXJlRnJvbSAmJiBjb21wYXJlVG8pIHtcbiAgICAgICAgICAgICAgICAvLyBDaGVjayBmb3Igb3ZlcmxhcFxuICAgICAgICAgICAgICAgIGNvbnN0IHJhbmdlc092ZXJsYXAgPSBjdXJyZW50RnJvbS5pc0JlZm9yZShjb21wYXJlVG8pICYmIGN1cnJlbnRUby5pc0FmdGVyKGNvbXBhcmVGcm9tKTtcblxuICAgICAgICAgICAgICAgIGlmIChyYW5nZXNPdmVybGFwKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4geyBmb3JtX3ZhbGlkYXRpb25fdGltZV9yYW5nZV9vdmVybGFwOiB0cnVlIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBpc1ZhbHVlR3JlYXRlclRoYW5PckVxdWFsVG8oZnJvbUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgdG9Db250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBib29sZWFuIHtcbiAgICBjb25zdCBmcm9tVGltZUluTnVtYmVyOiBudW1iZXIgPSBmcm9tQ29udHJvbC52YWx1ZTtcbiAgICBjb25zdCB0b1RpbWVJbk51bWJlcjogbnVtYmVyID0gdG9Db250cm9sLnZhbHVlO1xuICAgIHJldHVybiBmcm9tVGltZUluTnVtYmVyICE9PSBudWxsICYmIHRvVGltZUluTnVtYmVyICE9PSBudWxsICYmICtmcm9tVGltZUluTnVtYmVyID4gK3RvVGltZUluTnVtYmVyO1xuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIGlzVmFsdWVMZW5ndGhWYWxpZChmcm9tQ29udHJvbDogQWJzdHJhY3RDb250cm9sLCB0b0NvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGZyb21UaW1lSW5OdW1iZXI6IG51bWJlciA9IGZyb21Db250cm9sLnZhbHVlO1xuICAgIGNvbnN0IHRvVGltZUluTnVtYmVyOiBudW1iZXIgPSB0b0NvbnRyb2wudmFsdWU7XG4gICAgcmV0dXJuIGZyb21UaW1lSW5OdW1iZXIudG9TdHJpbmcoKS5sZW5ndGggPT09IFZBTElEX1RJTUVfTUFYX0xFTkdUSCAmJlxuICAgICAgdG9UaW1lSW5OdW1iZXIudG9TdHJpbmcoKS5sZW5ndGggPT09IFZBTElEX1RJTUVfTUFYX0xFTkdUSDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHZhbGlkYXRlVGliYVRpbWVJblJhbmdlKGN1cnJlbnRUaW1lOiBUaWJhVGltZSwgbWluVGltZTogVGliYVRpbWUsIG1heFRpbWU6IFRpYmFUaW1lKTogeyBmb3JtX3ZhbGlkYXRpb25faW52YWxpZF90aW1lOiB7IGZyb206IHN0cmluZzsgdG86IHN0cmluZyB9IH0gfCBudWxsIHtcbiAgICAvLyBJZiB0aW1lIGlzIHVuZGVmaW5lZCwgcmV0dXJuIG51bGwgKG5vIGVycm9yKVxuICAgIGlmICghY3VycmVudFRpbWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm1hdFRpbWUgPSAodGltZTogVGliYVRpbWUpOiBzdHJpbmcgPT5cbiAgICAgIGAke3RpbWUuaG91cnMudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfToke3RpbWUubWludXRlcy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9YDtcblxuICAgIGNvbnN0IGhvdXJzOiBudW1iZXIgPSArYWRqdXN0VGliYVRpbWVGb3JNaWRkYXkoY3VycmVudFRpbWUpLmhvdXJzO1xuICAgIGNvbnN0IG1pbnV0ZXM6IG51bWJlciA9ICtjdXJyZW50VGltZS5taW51dGVzO1xuXG4gICAgY29uc3QgaXNWYWxpZFRpbWUgPVxuICAgICAgKGhvdXJzID4gbWluVGltZS5ob3VycyB8fCAoaG91cnMgPT09IG1pblRpbWUuaG91cnMgJiYgbWludXRlcyA+PSBtaW5UaW1lLm1pbnV0ZXMpKSAmJlxuICAgICAgKGhvdXJzIDwgbWF4VGltZS5ob3VycyB8fCAoaG91cnMgPT09IG1heFRpbWUuaG91cnMgJiYgbWludXRlcyA8PSBtYXhUaW1lLm1pbnV0ZXMpKTtcblxuICAgIC8vIElmIHRpbWUgaXMgdmFsaWQsIHJldHVybiBudWxsIChubyBlcnJvcilcbiAgICBpZiAoaXNWYWxpZFRpbWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIE90aGVyd2lzZSwgcmV0dXJuIHRoZSB2YWxpZGF0aW9uIGVycm9yIHdpdGggZm9ybWF0dGVkIHRpbWUgcmFuZ2VcbiAgICByZXR1cm4ge1xuICAgICAgZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfdGltZToge1xuICAgICAgICBmcm9tOiBmb3JtYXRUaW1lKG1pblRpbWUpLFxuICAgICAgICB0bzogZm9ybWF0VGltZShtYXhUaW1lKSxcbiAgICAgIH1cbiAgICB9O1xuICB9XG59XG4iXX0=
493
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXZhbGlkYXRvci51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy91dGlscy9jdXN0b20tdmFsaWRhdG9yLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFeEMsT0FBTyxFQUFFLFlBQVksRUFBb0IsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTNFLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO0FBQzlCLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFDO0FBQ2hDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxpQkFBaUIsQ0FBQztBQUM5QyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcseUhBQXlILENBQUM7QUFDdkosTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsZ0JBQWdCLENBQUM7QUFDbEQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQztBQUN0QyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxjQUFjLENBQUM7QUFDbEQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcscUJBQXFCLENBQUM7QUFDMUQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLHVCQUF1QixDQUFDO0FBQ3BELE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyx1RkFBdUYsQ0FBQztBQUNoSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsaUNBQWlDLENBQUM7QUFFakUsTUFBTSxVQUFVLGFBQWEsQ0FBQyxHQUFR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LE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQWMsRUFBVSxFQUFFLENBQzVDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBRTFGLE1BQU0sS0FBSyxHQUFXLENBQUMsdUJBQXVCLENBQUMsV0FBVyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFXLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQztRQUU3QyxNQUFNLFdBQVcsR0FDZixDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxLQUFLLE9BQU8sQ0FBQyxLQUFLLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNsRixDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxLQUFLLE9BQU8sQ0FBQyxLQUFLLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRXJGLDJDQUEyQztRQUMzQyxJQUFJLFdBQVcsRUFBRTtZQUNmLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxtRUFBbUU7UUFDbkUsT0FBTztZQUNMLDRCQUE0QixFQUFFO2dCQUM1QixJQUFJLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQztnQkFDekIsRUFBRSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUM7YUFDeEI7U0FDRixDQUFDO0lBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgQXN5bmNWYWxpZGF0b3JGbiwgRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUFycmF5LCBVbnR5cGVkRm9ybUNvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZGVib3VuY2VUaW1lLCBkZWxheSwgbWFwLCBvZiwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJTlBVVF9TRUFSQ0hfREVCT1VOQ0VfVElNRSwgVkFMSURfVElNRV9NQVhfTEVOR1RIIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IExvY2FsaXphdGlvbiB9IGZyb20gJy4uL2VudW1zJztcbmltcG9ydCB7IENsb3VkLCBFZGdlIH0gZnJvbSAnLi4vc2VydmljZS1wcm94eSc7XG5pbXBvcnQgeyBNaWRkYXlQZXJpb2QsIFRpbWUgYXMgVGliYVRpbWUsIHRpbWVUb01vbWVudCB9IGZyb20gJy4vZGF0ZS51dGlsJztcblxuY29uc3QgTUlOX0FMTE9XRURfQkFMQU5DRSA9IDA7XG5jb25zdCBNQVhfQUxMT1dFRF9CQUxBTkNFID0gMjU1O1xuZXhwb3J0IGNvbnN0IG5vRW1vamlSZWdleCA9IC9bXmEtekEtWjAtOSBdL2dtO1xuZXhwb3J0IGNvbnN0IHBhc3N3b3JkUmVnZXggPSAvXig/PS4qW2Etel0pKD89LipbQS1aXSkoPz0uKlxcZCkoPz0uKlshXCIjJCUmJygpKissLS4vOjs8PT4/QFtcXF1eX2B7fH1+XSlbQS1aYS16XFxkIVwiIyQlJicoKSorLC0uLzo7PD0+P0BbXFxdXl9ge3x9fl17NCx9JC9nO1xuZXhwb3J0IGNvbnN0IGFscGhhbnVtZXJpY1JlZ2V4ID0gL15bYS16QS1aMC05XSskLztcbmV4cG9ydCBjb25zdCBtb2JpbGVSZWdleCA9IC9eWzAtOV0rJC87XG5leHBvcnQgY29uc3QgaW50ZWdlck51bWJlcnNSZWdleCA9IC9eWy1dPyhcXGQrKT8kLztcbmV4cG9ydCBjb25zdCBkZWNpbWFsUG9zaXRpdmVSZWdleCA9IC9eKFxcZCspKFxcLlxcZHsxLDJ9KT8kLztcbmV4cG9ydCBjb25zdCBkZWNpbWFsUmVnZXggPSAvXi0/KFxcZCspKFxcLlxcZHsxLDJ9KT8kLztcbmV4cG9ydCBjb25zdCByZWdleEV4cCA9IC9eWzAtOWEtZkEtRl17OH1cXGItWzAtOWEtZkEtRl17NH1cXGItWzAtOWEtZkEtRl17NH1cXGItWzAtOWEtZkEtRl17NH1cXGItWzAtOWEtZkEtRl17MTJ9JC87XG5leHBvcnQgY29uc3QgcGVyY2VudGFnZVJlZ2V4ID0gL14oMTAwKFxcLjArKT98WzEtOV0/XFxkKFxcLlxcZCspPykkLztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzTnVsbE9yRW1wdHkodmFsOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuICh2YWwgPT09IHVuZGVmaW5lZCB8fCB2YWwgPT09IG51bGwgfHwgdmFsID09PSAnJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGp1c3RUaWJhVGltZUZvck1pZGRheSh0aW1lOiBUaWJhVGltZSk6IFRpYmFUaW1lIHtcbiAgaWYgKHRpbWU/Lm1pZGRheVBlcmlvZCA9PT0gTWlkZGF5UGVyaW9kLlBNICYmIHRpbWUuaG91cnMgPD0gMTIpIHtcbiAgICB0aW1lLmhvdXJzICs9IDEyO1xuICB9XG5cbiAgcmV0dXJuIHRpbWU7XG59XG5cbmV4cG9ydCBjbGFzcyBUaWJhVmFsaWRhdG9ycyB7XG5cbiAgLy8gTm8gZW1vamkgdmFsaWRhdGlvblxuICBzdGF0aWMgbm9FbW9qaShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgY29uc3QgdmFsID0gY29udHJvbC52YWx1ZTtcblxuICAgIGlmICghaXNOdWxsT3JFbXB0eSh2YWwpICYmIHZhbC50b1N0cmluZygpLm1hdGNoKG5vRW1vamlSZWdleCkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5vRW1vamk6IHtcbiAgICAgICAgICB2YWx1ZTogYCAnJHt2YWx9J2AsXG4gICAgICAgICAgcGF0dGVybjogbm9FbW9qaVJlZ2V4XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzdGF0aWMgcGVyY2VudGFnZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgY29uc3QgdmFsID0gY29udHJvbC52YWx1ZTtcblxuICAgIGlmICghaXNOdWxsT3JFbXB0eSh2YWwpICYmICF2YWwudG9TdHJpbmcoKS5tYXRjaChwZXJjZW50YWdlUmVnZXgpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwZXJjZW50YWdlUmVnZXg6IHtcbiAgICAgICAgICB2YWx1ZTogYCAnJHt2YWx9J2AsXG4gICAgICAgICAgcGF0dGVybjogcGVyY2VudGFnZVJlZ2V4XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBNb2JpbGUgb25seSB2YWxpZGF0aW9uXG4gIHN0YXRpYyBtb2JpbGVOdW1iZXJzKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBjb25zdCB2YWwgPSBjb250cm9sLnZhbHVlO1xuXG4gICAgaWYgKCFpc051bGxPckVtcHR5KHZhbCkgJiYgIXZhbC50b1N0cmluZygpLm1hdGNoKG1vYmlsZVJlZ2V4KSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbW9iaWxlTnVtYmVyczoge1xuICAgICAgICAgIHZhbHVlOiBgICcke3ZhbH0nYCxcbiAgICAgICAgICBwYXR0ZXJuOiBtb2JpbGVSZWdleFxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgc3RhdGljIGhvdGVsUm9vbk51bWJlcnMoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGNvbnN0IHZhbCA9IGNvbnRyb2wudmFsdWU7XG5cbiAgICBpZiAoIWlzTnVsbE9yRW1wdHkodmFsKSAmJiAhdmFsLnRvU3RyaW5nKCkubWF0Y2goYWxwaGFudW1lcmljUmVnZXgpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhbHBoYW51bWVyaWNSZWdleDoge1xuICAgICAgICAgIHZhbHVlOiBgICcke3ZhbH0nYCxcbiAgICAgICAgICBwYXR0ZXJuOiBhbHBoYW51bWVyaWNSZWdleFxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgc3RhdGljIHZhbGlkYXRlUG9zaXRpdmVJbnRlZ2VySW5jbHVkZVplcm8oY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIHJldHVybiBUaWJhVmFsaWRhdG9ycy52YWxpZGF0ZVBvc2l0aXZlSW50ZWdlcihjb250cm9sLCAwKTtcbiAgfVxuXG4gIHN0YXRpYyB2YWxpZGF0ZVBvc2l0aXZlSW50ZWdlcldpdGhvdXRaZXJvKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICByZXR1cm4gVGliYVZhbGlkYXRvcnMudmFsaWRhdGVQb3NpdGl2ZUludGVnZXIoY29udHJvbCwgMSk7XG4gIH1cblxuICBzdGF0aWMgdmFsaWRhdGVQb3NpdGl2ZUludGVnZXIoY29udHJvbDogQWJzdHJhY3RDb250cm9sLCBtaW5WYWx1ZTogbnVtYmVyKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGlmIChcbiAgICAgICFpc051bGxPckVtcHR5KGNvbnRyb2wudmFsdWUpICYmXG4gICAgICAhKGNvbnRyb2wudmFsdWUudG9TdHJpbmcoKS5tYXRjaChpbnRlZ2VyTnVtYmVyc1JlZ2V4KSAmJiArY29udHJvbC52YWx1ZSA+PSBtaW5WYWx1ZSlcbiAgICApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHZhbGlkYXRlUG9zaXRpdmVJbnRlZ2VyOiB7XG4gICAgICAgICAgdmFsdWU6IGAgJyR7Y29udHJvbC52YWx1ZX0nYFxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gRGVjaW1hbCBQb3NpdGl2ZSBOdW1iZXJzIG9ubHkgdmFsaWRhdGlvblxuICBzdGF0aWMgZGVjaW1hbFBvc2l0aXZlTnVtYmVycyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgY29uc3QgdmFsID0gY29udHJvbC52YWx1ZTtcbiAgICBpZiAoIWlzTnVsbE9yRW1wdHkodmFsKSAmJiAhdmFsLnRvU3RyaW5nKCkubWF0Y2goZGVjaW1hbFBvc2l0aXZlUmVnZXgpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBkZWNpbWFsUG9zaXRpdmVOdW1iZXJzOiB7XG4gICAgICAgICAgdmFsdWU6IGAgJyR7dmFsfSdgLFxuICAgICAgICAgIHBhdHRlcm46IGRlY2ltYWxSZWdleFxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIERlY2ltYWwgTnVtYmVycyBvbmx5IHZhbGlkYXRpb25cbiAgc3RhdGljIGRlY2ltYWxOdW1iZXJzKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBjb25zdCB2YWwgPSBjb250cm9sLnZhbHVlO1xuXG4gICAgaWYgKCFpc051bGxPckVtcHR5KHZhbCkgJiYgIXZhbC50b1N0cmluZygpLm1hdGNoKGRlY2ltYWxSZWdleCkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRlY2ltYWxQb3NpdGl2ZU51bWJlcnM6IHtcbiAgICAgICAgICB2YWx1ZTogYCAnJHt2YWx9J2AsXG4gICAgICAgICAgcGF0dGVybjogZGVjaW1hbFJlZ2V4XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBQb3NpdGl2ZSAvIE5lZ2V0aXZlIE51bWJlcnMgb25seSB2YWxpZGF0aW9uXG4gIHN0YXRpYyBpbnRlZ2VyTnVtYmVycyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgY29uc3QgdmFsID0gY29udHJvbC52YWx1ZTtcblxuICAgIGlmICghaXNOdWxsT3JFbXB0eSh2YWwpICYmICF2YWwudG9TdHJpbmcoKS5tYXRjaChpbnRlZ2VyTnVtYmVyc1JlZ2V4KSkgcmV0dXJuIHtcbiAgICAgIGludGVnZXJOdW1iZXJzOiB7XG4gICAgICAgIHZhbHVlOiBgICcke3ZhbH0nYCxcbiAgICAgICAgcGF0dGVybjogaW50ZWdlck51bWJlcnNSZWdleFxuICAgICAgfVxuICAgIH07XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIE51bWJlciBsZW5ndGhcbiAgc3RhdGljIG51bWVyaWNMZW5ndGgobGVuZ3RoOiBudW1iZXIpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBjb250cm9sLnZhbHVlO1xuXG4gICAgICBpZiAoIWlzTnVsbE9yRW1wdHkodmFsKSAmJiB2YWwudG9TdHJpbmcoKS5sZW5ndGggIT09IGxlbmd0aCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGludmFsaWROdW1iZXJMZW5ndGg6IHtcbiAgICAgICAgICAgIGFjdHVhbExlbmd0aDogdmFsLFxuICAgICAgICAgICAgcmVxdWlyZWRMZW5ndGg6IGxlbmd0aFxuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBQYXNzd29yZFZhbGlkYXRvcihjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgaWYgKCFjb250cm9sLnZhbHVlPy5tYXRjaChwYXNzd29yZFJlZ2V4KSkge1xuICAgICAgcmV0dXJuIHsgcGFzc3dvcmRQb2xpY3lSZXF1aXJlbWVudHM6IHRydWUgfTtcbiAgICB9XG4gICAgaWYgKGNvbnRyb2wudmFsdWUubGVuZ3RoIDwgOCkge1xuICAgICAgcmV0dXJuIHsgbWlubGVuZ3RoOiB7IHJlcXVpcmVkTGVuZ3RoOiA4IH0gfTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzdGF0aWMgR3VpZFZhbGlkYXRvcihjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgaWYgKCFyZWdleEV4cC50ZXN0KGNvbnRyb2wudmFsdWUpKSB7XG4gICAgICByZXR1cm4geyBndWlkSXNWYWxpZDogdHJ1ZSB9O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHN0YXRpYyBQYXNzd29yZEZvcm1NYXRjaFZhbGlkYXRvcihjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgICBpZiAoIWNvbnRyb2wpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IG5ld1Bhc3N3b3JkID0gY29udHJvbC5nZXQoJ3Bhc3N3b3JkJyk7XG4gICAgY29uc3QgY3VycmVudFBhc3N3b3JkID0gY29udHJvbC5nZXQoJ2N1cnJlbnRQYXNzd29yZCcpO1xuICAgIGlmIChuZXdQYXNzd29yZCAmJiBjdXJyZW50UGFzc3dvcmQgJiYgbmV3UGFzc3dvcmQudmFsaWQgJiYgY3VycmVudFBhc3N3b3JkLnZhbGlkICYmIG5ld1Bhc3N3b3JkLnZhbHVlID09PSBjdXJyZW50UGFzc3dvcmQudmFsdWUpIHtcbiAgICAgIHJldHVybiB7IHBhc3N3b3JkTWF0Y2g6IHRydWUgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDsgLy8gUGFzc3dvcmRzIG1hdGNoIG9yIGZvcm0gZmllbGRzIGhhcyBpdHMgb3duIGVycm9yc1xuICB9XG5cbiAgc3RhdGljIFBhc3N3b3JkRm9ybU5vdE1hdGNoVmFsaWRhdG9yKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkge1xuICAgIGlmICghY29udHJvbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgbmV3UGFzc3dvcmQgPSBjb250cm9sLmdldCgncGFzc3dvcmQnKTtcbiAgICBjb25zdCBjb25maXJtUGFzc3dvcmQgPSBjb250cm9sLmdldCgnY29uZmlybVBhc3N3b3JkJyk7XG4gICAgaWYgKChuZXdQYXNzd29yZC5lcnJvcnMgfHwgY29uZmlybVBhc3N3b3JkLmVycm9ycykgfHxcbiAgICAgIG5ld1Bhc3N3b3JkLnZhbHVlID09PSBjb25maXJtUGFzc3dvcmQudmFsdWUpIHtcbiAgICAgIHJldHVybiBudWxsOyAvLyBQYXNzd29yZHMgbWF0Y2ggb3IgZm9ybSBmaWVsZHMgaGFzIGl0cyBvd24gZXJyb3JzXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7IHBhc3N3b3JkTm90TWF0Y2g6IHRydWUgfTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZnJvbVRvTnVtYmVyVmFsaWRhdG9yKGZyb21Db250cm9sTmFtZTogc3RyaW5nLCB0b0NvbnRyb2xOYW1lOiBzdHJpbmcpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBsZXQgcmVzcG9uc2UgPSBudWxsOyAvLyBSZXR1cm4gbnVsbCBpZiB2YWxpZGF0aW9uIHBhc3Nlc1xuICAgICAgaWYgKGNvbnRyb2wucGFyZW50KSB7XG4gICAgICAgIGNvbnN0IGZvcm1Hcm91cCA9IGNvbnRyb2wucGFyZW50IGFzIEZvcm1Hcm91cDtcbiAgICAgICAgY29uc3QgZnJvbUNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGZyb21Db250cm9sTmFtZSk7XG4gICAgICAgIGNvbnN0IHRvQ29udHJvbCA9IGZvcm1Hcm91cC5nZXQodG9Db250cm9sTmFtZSk7XG4gICAgICAgIGlmICh0aGlzLmlzVmFsdWVHcmVhdGVyVGhhbk9yRXF1YWxUbyhmcm9tQ29udHJvbCwgdG9Db250cm9sKSAmJiAhdG9Db250cm9sLmhhc0Vycm9yKCdmb3JtX3ZhbGlkYXRpb25faW52YWxpZF9udW1iZXJfcmFuZ2UnKSkge1xuICAgICAgICAgIC8vIFJldHVybiB2YWxpZGF0aW9uIGVycm9yIGlmICdmcm9tJyB2YWx1ZSBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJ3RvJyB2YWx1ZVxuICAgICAgICAgIHJlc3BvbnNlID0geyBmb3JtX3ZhbGlkYXRpb25faW52YWxpZF9udW1iZXJfcmFuZ2U6IHRydWUgfTtcbiAgICAgICAgfSBlbHNlIGlmICh0b0NvbnRyb2wuaGFzRXJyb3IoJ2Zvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX251bWJlcl9yYW5nZScpKSB7XG4gICAgICAgICAgLy8gcmVzZXQgdGhlIGVycm9yIG9mIOKAmHRv4oCZIGNvbnRyb2wgd2hlbiDigJhmcm9t4oCZIGNvbnRyb2wgaXMgdmFsaWQgYW5kIHRvIGNvbnRyb2wgY29udGFpbnMgZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfbnVtYmVyX3JhbmdlXG4gICAgICAgICAgdG9Db250cm9sLnNldEVycm9ycyh7fSk7XG4gICAgICAgICAgdG9Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjYWxjdWxhdGVCYWxhbmNlID0gKHVuaXRzVmFsdWUsIGJhbGFuY2VWYWx1ZSkgPT4geyByZXR1cm4gdW5pdHNWYWx1ZSArIGJhbGFuY2VWYWx1ZSB9XG5cbiAgc3RhdGljIHVuaXRzQmFsYW5jZVZhbGlkYXRvcih1bml0c0NvbnRyb2xOYW1lOiBzdHJpbmcsIGJhbGFuY2VDb250cm9sTmFtZTogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgbGV0IHJlc3BvbnNlID0gbnVsbDsgLy8gUmV0dXJuIG51bGwgaWYgdmFsaWRhdGlvbiBwYXNzZXNcbiAgICAgIGlmIChjb250cm9sLnBhcmVudCkge1xuICAgICAgICBjb25zdCBmb3JtR3JvdXAgPSBjb250cm9sLnBhcmVudCBhcyBGb3JtR3JvdXA7XG4gICAgICAgIGNvbnN0IHVuaXRzQ29udHJvbCA9IGZvcm1Hcm91cC5nZXQodW5pdHNDb250cm9sTmFtZSk7XG4gICAgICAgIGNvbnN0IGJhbGFuY2VDb250cm9sID0gZm9ybUdyb3VwLmdldChiYWxhbmNlQ29udHJvbE5hbWUpO1xuICAgICAgICBjb25zdCB1bml0c1ZhbHVlID0gcGFyc2VJbnQodW5pdHNDb250cm9sLnZhbHVlKTtcbiAgICAgICAgY29uc3QgYmFsYW5jZVZhbHVlID0gYmFsYW5jZUNvbnRyb2wudmFsdWU7XG4gICAgICAgIGNvbnN0IGJhbGFuY2VDYWxjdWxhdGVkID0gdGhpcy5jYWxjdWxhdGVCYWxhbmNlKHVuaXRzVmFsdWUsIGJhbGFuY2VWYWx1ZSlcbiAgICAgICAgaWYgKGJhbGFuY2VDYWxjdWxhdGVkID4gTUFYX0FMTE9XRURfQkFMQU5DRSkge1xuICAgICAgICAgIHJlc3BvbnNlID0geyBmb3JtX3ZhbGlkYXRpb25fdW5pdHNfYmFsYW5jZV9tYXhpbXVtOiB0cnVlIH07XG4gICAgICAgIH0gZWxzZSBpZiAoYmFsYW5jZUNhbGN1bGF0ZWQgPCBNSU5fQUxMT1dFRF9CQUxBTkNFKSB7XG4gICAgICAgICAgcmVzcG9uc2UgPSB7IGZvcm1fdmFsaWRhdGlvbl91bml0c19iYWxhbmNlX21pbmltdW06IHRydWUgfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH07XG4gIH1cblxuICBzdGF0aWMgbWluRGF0ZVRpbWUoY29udHJvbE5hbWU6IHN0cmluZywgbWluRGF0ZVRpbWVWYWx1ZTogRGF0ZSk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2xHcm91cDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgbGV0IHJlc3BvbnNlID0gbnVsbDsgLy8gUmV0dXJuIG51bGwgaWYgdmFsaWRhdGlvbiBwYXNzZXNcblxuICAgICAgaWYgKGNvbnRyb2xHcm91cC5wYXJlbnQpIHtcbiAgICAgICAgY29uc3QgZm9ybUdyb3VwID0gY29udHJvbEdyb3VwLnBhcmVudCBhcyBGb3JtR3JvdXA7XG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGNvbnRyb2xOYW1lKTtcbiAgICAgICAgY29uc3QgY29udHJvbFZhbHVlOiBEYXRlID0gY29udHJvbC52YWx1ZTtcblxuICAgICAgICBpZiAoY29udHJvbFZhbHVlKSB7XG4gICAgICAgICAgY29uc3QgY29udHJvbERhdGUgPSBuZXcgRGF0ZShjb250cm9sVmFsdWUpLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICAgICAgICAgIGNvbnN0IG1pbkRhdGUgPSBuZXcgRGF0ZShtaW5EYXRlVGltZVZhbHVlKS5zZXRIb3VycygwLCAwLCAwLCAwKTtcblxuICAgICAgICAgIGlmIChjb250cm9sRGF0ZSA8IG1pbkRhdGUpIHtcbiAgICAgICAgICAgIHJlc3BvbnNlID0geyBmb3JtX3ZhbGlkYXRpb25faW52YWxpZF9mcm9tX3RpbWU6IHRydWUgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZnJvbVRvRGF0ZShmcm9tRGF0ZUZpZWxkOiBzdHJpbmcsIHRvRGF0ZUZpZWxkOiBzdHJpbmcsIGZyb21UaW1lRmllbGQ6IHN0cmluZyA9IG51bGwsXG4gICAgdG9UaW1lRmllbGQ6IHN0cmluZyA9IG51bGwsIGVycm9yTmFtZTogc3RyaW5nID0gJ2Zyb21Ub0RhdGUnKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoZm9ybUdyb3VwOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSB8IG51bGwgPT4ge1xuICAgICAgY29uc3QgZnJvbURhdGU6IERhdGUgPSBmb3JtR3JvdXAuZ2V0KGZyb21EYXRlRmllbGQpPy52YWx1ZTtcbiAgICAgIGNvbnN0IHRvRGF0ZTogRGF0ZSA9IGZvcm1Hcm91cC5nZXQodG9EYXRlRmllbGQpPy52YWx1ZTtcbiAgICAgIGNvbnN0IGZyb21UaW1lOiBUaWJhVGltZSA9IGFkanVzdFRpYmFUaW1lRm9yTWlkZGF5KGZvcm1Hcm91cC5nZXQoZnJvbVRpbWVGaWVsZCk/LnZhbHVlKTtcbiAgICAgIGNvbnN0IHRvVGltZTogVGliYVRpbWUgPSBhZGp1c3RUaWJhVGltZUZvck1pZGRheShmb3JtR3JvdXAuZ2V0KHRvVGltZUZpZWxkKT8udmFsdWUpO1xuICAgICAgaWYgKGZyb21UaW1lKSB7XG4gICAgICAgIGZyb21EYXRlLnNldEhvdXJzKGZyb21UaW1lLmhvdXJzKTtcbiAgICAgICAgZnJvbURhdGUuc2V0TWludXRlcyhmcm9tVGltZS5taW51dGVzKTtcbiAgICAgIH1cbiAgICAgIGlmICh0b1RpbWUpIHtcbiAgICAgICAgdG9EYXRlLnNldEhvdXJzKHRvVGltZS5ob3Vycyk7XG4gICAgICAgIHRvRGF0ZS5zZXRNaW51dGVzKHRvVGltZS5taW51dGVzKTtcbiAgICAgIH1cbiAgICAgIGlmICgoZnJvbURhdGUgIT09IG51bGwgJiYgdG9EYXRlICE9PSBudWxsKSAmJiBmcm9tRGF0ZSA+IHRvRGF0ZSkge1xuICAgICAgICByZXR1cm4geyBbZXJyb3JOYW1lXTogdHJ1ZSB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVG9UaW1lUmFuZ2UoZnJvbVRpbWVGaWVsZDogc3RyaW5nLCB0b1RpbWVGaWVsZDogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgbGV0IHJlc3BvbnNlID0gbnVsbDsgLy8gUmV0dXJuIG51bGwgaWYgdmFsaWRhdGlvbiBwYXNzZXNcbiAgICAgIGlmIChjb250cm9sLnBhcmVudCkge1xuICAgICAgICBjb25zdCBmb3JtR3JvdXAgPSBjb250cm9sLnBhcmVudCBhcyBGb3JtR3JvdXA7XG4gICAgICAgIGNvbnN0IHRvQ29udHJvbCA9IGZvcm1Hcm91cC5nZXQodG9UaW1lRmllbGQpO1xuICAgICAgICBjb25zdCBmcm9tQ29udHJvbCA9IGZvcm1Hcm91cC5nZXQoZnJvbVRpbWVGaWVsZCk7XG4gICAgICAgIGlmICh0aGlzLmlzVmFsdWVHcmVhdGVyVGhhbk9yRXF1YWxUbyhmcm9tQ29udHJvbCwgdG9Db250cm9sKSAmJiB0aGlzLmlzVmFsdWVMZW5ndGhWYWxpZChmcm9tQ29udHJvbCwgdG9Db250cm9sKSAmJlxuICAgICAgICAgICF0b0NvbnRyb2wuaGFzRXJyb3IoJ2Zvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX3RpbWVfcmFuZ2UnKSkge1xuICAgICAgICAgIHJlc3BvbnNlID0geyBmb3JtX3ZhbGlkYXRpb25faW52YWxpZF90aW1lX3JhbmdlOiB0cnVlIH07XG4gICAgICAgIH0gZWxzZSBpZiAodG9Db250cm9sLmhhc0Vycm9yKCdmb3JtX3ZhbGlkYXRpb25faW52YWxpZF90aW1lX3JhbmdlJykpIHtcbiAgICAgICAgICAvLyByZXNldCB0aGUgZXJyb3Igb2Yg4oCYdG/igJkgY29udHJvbCB3aGVuIOKAmGZyb23igJkgY29udHJvbCBpcyB2YWxpZCBhbmQgdG8gY29udHJvbCBjb250YWlucyBmb3JtX3ZhbGlkYXRpb25faW52YWxpZF90aW1lX3JhbmdlXG4gICAgICAgICAgdG9Db250cm9sLnNldEVycm9ycyh7fSk7XG4gICAgICAgICAgdG9Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVG9UaW1lKGZyb21UaW1lRmllbGQ6IHN0cmluZywgdG9UaW1lRmllbGQ6IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGZvcm1Hcm91cDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gfCBudWxsID0+IHtcbiAgICAgIGNvbnN0IGZyb21UaW1lOiBUaWJhVGltZSA9IGFkanVzdFRpYmFUaW1lRm9yTWlkZGF5KGZvcm1Hcm91cC5nZXQoZnJvbVRpbWVGaWVsZCkudmFsdWUpO1xuICAgICAgY29uc3QgdG9UaW1lOiBUaWJhVGltZSA9IGFkanVzdFRpYmFUaW1lRm9yTWlkZGF5KGZvcm1Hcm91cC5nZXQodG9UaW1lRmllbGQpLnZhbHVlKTtcbiAgICAgIGlmICghdGhpcy5pc1RpbWVOdWxsKGZyb21UaW1lKSAmJiAhdGhpcy5pc1RpbWVOdWxsKHRvVGltZSkgJiYgKFxuICAgICAgICAoZnJvbVRpbWUuaG91cnMgPiB0b1RpbWUuaG91cnMpIHx8XG4gICAgICAgIChmcm9tVGltZS5ob3VycyA9PSB0b1RpbWUuaG91cnMgJiYgZnJvbVRpbWUubWludXRlcyA+IHRvVGltZS5taW51dGVzKVxuICAgICAgKSkge1xuICAgICAgICByZXR1cm4geyBmb3JtX3ZhbGlkYXRpb25faW52YWxpZF90aW1lX3JhbmdlOiB0cnVlIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaXNUaW1lTnVsbCA9ICh0aW1lOiBUaWJhVGltZSkgPT4gdGltZSA9PT0gbnVsbCB8fFxuICAgICh0aW1lLmhvdXJzID09PSBudWxsICYmIHRpbWUubWludXRlcyA9PT0gbnVsbCAmJiB0aW1lLnNlY29uZHMgPT09IG51bGwpO1xuXG4gIHN0YXRpYyBub1doaXRlc3BhY2VWYWxpZGF0b3IgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyA9PlxuICAgICFpc051bGxPckVtcHR5KGNvbnRyb2wudmFsdWUpICYmIGlzTnVsbE9yRW1wdHkoY29udHJvbD8udmFsdWU/LnRyaW0oKSkgPyB7IHJlcXVpcmVkOiB0cnVlIH0gOiBudWxsO1xuXG4gIHN0YXRpYyBub1doaXRlc3BhY2VXaXRoaW5TZW50ZW5jZVZhbGlkYXRvciA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzID0+XG4gICAgIShjb250cm9sPy52YWx1ZT8uc3BsaXQoXCIgXCIpLmxlbmd0aCA9PT0gMSkgPyB7IG5vV2hpdGVzcGFjZVdpdGhpblNlbnRlbmNlOiB0cnVlIH0gOiBudWxsO1xuXG4gIHN0YXRpYyB0ZXJtc1BvbGljeUNoZWNrYm94KCk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIGlmICghY29udHJvbCB8fCAhY29udHJvbC52YWx1ZSkge1xuICAgICAgICByZXR1cm4geyBpbnZhbGlkVGVybXM6IHRydWUgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gIH1cblxuICBzdGF0aWMgdmFsaWRhdGVEZWZhdWx0QWNjZXNzUHJvZmlsZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgICBpZiAoIWlzTnVsbE9yRW1wdHkoY29udHJvbC52YWx1ZSkgJiYgIWNvbnRyb2wudmFsdWU/LmRlZmF1bHRBY2Nlc3NQcm9maWxlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBub0RlZmF1bHRBY2Nlc3NQcm9maWxlOiB7XG4gICAgICAgICAgY29tcGFueU5hbWU6IGNvbnRyb2wudmFsdWUubmFtZSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgc3RhdGljIHpSYW5nZSh0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLCBmcm9tWkZpZWxkOiBzdHJpbmcsIHRvWkZpZWxkOiBzdHJpbmcpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChmb3JtR3JvdXA6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gfCBudWxsID0+IHtcbiAgICAgIGNvbnN0IGZyb21aQ29udHJvbCA9IGZvcm1Hcm91cC5nZXQoZnJvbVpGaWVsZCkgYXMgVW50eXBlZEZvcm1BcnJheTtcbiAgICAgIGNvbnN0IHRvWkNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KHRvWkZpZWxkKSBhcyBVbnR5cGVkRm9ybUFycmF5O1xuXG4gICAgICBpZiAoZnJvbVpDb250cm9sLnZhbHVlPy5pZCA+IHRvWkNvbnRyb2wudmFsdWU/LmlkKSB7XG4gICAgICAgIHJldHVybiB7IHpSYW5nZTogdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5pbnZhbGlkX2ZpZWxkcykgfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyByZXF1aXJlZENyZWRlbnRpYWxzKHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsIGNhclBsYXRlRmllbGQ6IHN0cmluZyA9ICdjYXJQbGF0ZScsIG1vYmlsZUZpZWxkOiBzdHJpbmcgPSAnbW9iaWxlJywgYmFkZ2VGaWVsZDogc3RyaW5nID0gJ2JhZGdlJyxcbiAgICBlbWFpbEZpZWxkOiBzdHJpbmcgPSAnZW1haWwnLCBzZW5kRW1haWxGaWVsZDogc3RyaW5nID0gJ3NlbmRFbWFpbCcpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChmb3JtR3JvdXA6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gfCBudWxsID0+IHtcbiAgICAgIGxldCBjYXJQbGF0ZXNJbnZhbGlkID0gZmFsc2U7XG4gICAgICBsZXQgYmFkZ2VzSW52YWxpZCA9IGZhbHNlO1xuICAgICAgbGV0IGludGVycG9sYXRlZENyZWRlbnRpYWxzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgICAvLyBDYXJkc1xuICAgICAgY29uc3QgYmFkZ2VzRm9ybUFycmF5ID0gZm9ybUdyb3VwLmdldChiYWRnZUZpZWxkKSBhcyBVbnR5cGVkRm9ybUFycmF5O1xuICAgICAgaWYgKGJhZGdlc0Zvcm1BcnJheSkge1xuICAgICAgICBpbnRlcnBvbGF0ZWRDcmVkZW50aWFscy5wdXNoKHRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChMb2NhbGl6YXRpb24uY2FyZCkpO1xuICAgICAgICBiYWRnZXNJbnZhbGlkID0gdGhpcy5pc0Zvcm1Db250cm9sTGlzdEludmFsaWQoYmFkZ2VzRm9ybUFycmF5LnZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGlzQ2FyZHNJbnZhbGlkID0gYmFkZ2VzSW52YWxpZCB8fCAhYmFkZ2VzRm9ybUFycmF5O1xuXG4gICAgICAvL0NhciBwbGF0ZXNcbiAgICAgIGNvbnN0IGNhclBsYXRlc0Zvcm1BcnJheSA9IGZvcm1Hcm91cC5nZXQoY2FyUGxhdGVGaWVsZCkgYXMgVW50eXBlZEZvcm1BcnJheTtcbiAgICAgIGlmIChjYXJQbGF0ZXNGb3JtQXJyYXkpIHtcbiAgICAgICAgaW50ZXJwb2xhdGVkQ3JlZGVudGlhbHMucHVzaCh0cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoTG9jYWxpemF0aW9uLmNhcl9wbGF0ZSkpO1xuICAgICAgICBjYXJQbGF0ZXNJbnZhbGlkID0gdGhpcy5pc0Zvcm1Db250cm9sTGlzdEludmFsaWQoY2FyUGxhdGVzRm9ybUFycmF5LnZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGlzQ2FyUGxhdGVzSW52YWxpZCA9IGNhclBsYXRlc0ludmFsaWQgfHwgIWNhclBsYXRlc0Zvcm1BcnJheTtcblxuICAgICAgLy8gTW9iaWxlXG4gICAgICBjb25zdCBtb2JpbGVGb3JtQ29udHJvbCA9IGZvcm1Hcm91cC5nZXQobW9iaWxlRmllbGQpO1xuICAgICAgaWYgKG1vYmlsZUZvcm1Db250cm9sKSB7XG4gICAgICAgIGludGVycG9sYXRlZENyZWRlbnRpYWxzLnB1c2godHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5tb2JpbGUpKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGlzTW9iaWxlSW52YWxpZCA9ICFtb2JpbGVGb3JtQ29udHJvbD8udmFsdWU7XG5cbiAgICAgIC8vIEVtYWlsXG4gICAgICBjb25zdCBlbWFpbEZvcm1Db250cm9sID0gZm9ybUdyb3VwLmdldChlbWFpbEZpZWxkKTtcbiAgICAgIGNvbnN0IHNlbmRFbWFpbEZvcm1Db250cm9sID0gZm9ybUdyb3VwLmdldChzZW5kRW1haWxGaWVsZCk7XG4gICAgICBpZiAoZW1haWxGb3JtQ29udHJvbCAmJiBzZW5kRW1haWxGb3JtQ29udHJvbD8udmFsdWUpIHtcbiAgICAgICAgaW50ZXJwb2xhdGVkQ3JlZGVudGlhbHMucHVzaCh0cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoTG9jYWxpemF0aW9uLmVtYWlsKSk7XG4gICAgICB9XG4gICAgICBjb25zdCBpc0VtYWlsSW52YWxpZCA9ICEoc2VuZEVtYWlsRm9ybUNvbnRyb2w/LnZhbHVlICYmIGVtYWlsRm9ybUNvbnRyb2w/LnZhbHVlKVxuXG4gICAgICBjb25zdCBpc1JlcXVpcmVkQ3JlZGVudGlhbHMgPSBpc0NhclBsYXRlc0ludmFsaWQgJiYgaXNDYXJkc0ludmFsaWQgJiYgaXNNb2JpbGVJbnZhbGlkICYmIGlzRW1haWxJbnZhbGlkO1xuXG4gICAgICBpZiAoaXNSZXF1aXJlZENyZWRlbnRpYWxzKSB7XG4gICAgICAgIGNvbnN0IGxhc3RDcmVkZW50aWFsID0gaW50ZXJwb2xhdGVkQ3JlZGVudGlhbHMucG9wKCk7XG4gICAgICAgIGxldCBpbnRlcnBvbGF0ZVBhcmFtcyA9IGAke2ludGVycG9sYXRlZENyZWRlbnRpYWxzLmpvaW4oJywgJyl9ICR7dHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5vcil9ICR7bGFzdENyZWRlbnRpYWx9YDtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByZXF1aXJlZENyZWRlbnRpYWxzOiB0cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoTG9jYWxpemF0aW9uLnJlcXVpcmVkX2NyZWRlbnRpYWxzX21lc3NhZ2UsIHsgY3JlZGVudGlhbHM6IGludGVycG9sYXRlUGFyYW1zIH0pXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBpc0Zvcm1Db250cm9sTGlzdEludmFsaWQobGlzdDogVW50eXBlZEZvcm1Db250cm9sW10pIHtcbiAgICBsZXQgaXNJbnZhbGlkID0gZmFsc2U7XG4gICAgZm9yIChjb25zdCBjb250cm9sIG9mIGxpc3QpIHtcbiAgICAgIGlmICghY29udHJvbC52YWx1ZSkge1xuICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gaXNJbnZhbGlkO1xuICB9XG5cbiAgc3RhdGljIHJlcXVpcmVkRGF5cyhzcGVjaWFsRGF5c0ZpZWxkOiBzdHJpbmcsIHdlZWtEYXlzRmllbGQ6IHN0cmluZywgZXJyb3JOYW1lOiBzdHJpbmcgPSAncmVxdWlyZWREYXlzJyk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGZvcm1Hcm91cDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gfCBudWxsID0+IHtcbiAgICAgIGNvbnN0IHNwZWNpYWxEYXlzOiBudW1iZXIgPSBmb3JtR3JvdXAuZ2V0KHNwZWNpYWxEYXlzRmllbGQpLnZhbHVlO1xuICAgICAgY29uc3Qgd2Vla0RheXM6IG51bWJlciA9IGZvcm1Hcm91cC5nZXQod2Vla0RheXNGaWVsZCkudmFsdWU7XG4gICAgICBpZiAoc3BlY2lhbERheXMgPiAwIHx8IHdlZWtEYXlzID4gMCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHsgW2Vycm9yTmFtZV06IHRydWUgfTtcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGlzUm9sZU5hbWVFeGlzdHMocm9sZVNlcnZpY2VQcm94eTogQ2xvdWQuUm9sZVNlcnZpY2VQcm94eSwgcm9sZUlkOiBudW1iZXIpOiBBc3luY1ZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IE9ic2VydmFibGU8VmFsaWRhdGlvbkVycm9ycz4gPT4ge1xuICAgICAgcmV0dXJuIG9mKGNvbnRyb2wudmFsdWUpLnBpcGUoXG4gICAgICAgIGRlbGF5KDUwMCksXG4gICAgICAgIGRlYm91bmNlVGltZShJTlBVVF9TRUFSQ0hfREVCT1VOQ0VfVElNRSksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiByb2xlU2VydmljZVByb3h5LmlzRXhpc3RzKGNvbnRyb2wudmFsdWUsIHJvbGVJZCA/PyB1bmRlZmluZWQpLnBpcGUoXG4gICAgICAgICAgbWFwKHJlcyA9PiByZXMuZGF0YSA9PT0gdHJ1ZSB8fCAhcmVzLmlzU3VjY2VzcyA/IHsgcm9sZU5hbWVBbHJlYWR5RXhpc3RzOiB0cnVlIH0gOiBudWxsKSkpKTtcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGlzQWNjZXNzUHJvZmlsZU51bWJlckF2YWlsYWJsZShhY2Nlc3NQcm9maWxlU2VydmljZVByb3h5OiBFZGdlLkFjY2Vzc1Byb2ZpbGVTZXJ2aWNlUHJveHksIGd1aWQ6IHN0cmluZyk6IEFzeW5jVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogT2JzZXJ2YWJsZTxWYWxpZGF0aW9uRXJyb3JzPiA9PiB7XG4gICAgICByZXR1cm4gb2YoY29udHJvbC52YWx1ZSkucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IGFjY2Vzc1Byb2ZpbGVTZXJ2aWNlUHJveHkuZ2V0QXZhaWxhYmxlTnVtYmVyKGNvbnRyb2wudmFsdWUsIGd1aWQpLnBpcGUoXG4gICAgICAgICAgbWFwKHJlcyA9PiAhcmVzLmRhdGE/LmlzQXZhaWxhYmxlIHx8ICFyZXMuaXNTdWNjZXNzID8geyBhY2Nlc3NQcm9maWxlTnVtYmVyVGFrZW46IHRydWUgfSA6IG51bGwpKSkpO1xuICAgIH07XG4gIH1cblxuICBzdGF0aWMgdGliYVRpbWVWYWxpZGF0b3IoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGNvbnN0IHZhbDogVGliYVRpbWUgPSBjb250cm9sLnZhbHVlO1xuXG4gICAgaWYgKHZhbCAmJiAodmFsLmhvdXJzID09PSBudWxsIHx8IHZhbC5taW51dGVzID09PSBudWxsKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaW52YWxpZFRpbWU6IHRydWVcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzdGF0aWMgdmFsaWRhdGVUaWJhVGltZUluUmFuZ2VWYWxpZGF0b3IobWluVGltZTogVGliYVRpbWUsIG1heFRpbWU6IFRpYmFUaW1lKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGVUaWJhVGltZUluUmFuZ2UoY29udHJvbC52YWx1ZSwgbWluVGltZSwgbWF4VGltZSk7XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyB2YWxpZGF0ZVN0cmluZ0hITU1JblJhbmdlVmFsaWRhdG9yKG1pblRpbWU6IFRpYmFUaW1lLCBtYXhUaW1lOiBUaWJhVGltZSk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIGlmICghIWNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUubGVuZ3RoICE9PSA0KSB7IC8vIEFzc3VtaW5nIHRpbWUgZm9ybWF0IGlzICdISE1NJ1xuICAgICAgICAgIHJldHVybiB7IGZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX3RpbWVfZm9ybWF0OiB0cnVlIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgaG91cnM6IG51bWJlciA9IHBhcnNlSW50KGNvbnRyb2wudmFsdWUuc2xpY2UoMCwgMikpO1xuICAgICAgICAgIGNvbnN0IG1pbnV0ZXM6IG51bWJlciA9IHBhcnNlSW50KGNvbnRyb2wudmFsdWUuc2xpY2UoMikpO1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnRUaW1lOiBUaWJhVGltZSA9IHsgaG91cnMsIG1pbnV0ZXMgfTtcbiAgICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZVRpYmFUaW1lSW5SYW5nZShjdXJyZW50VGltZSwgbWluVGltZSwgbWF4VGltZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gIH1cblxuICBzdGF0aWMgdGltZVJhbmdlQXJyYXlPdmVybGFwVmFsaWRhdG9yKCk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIGlmIChjb250cm9sLnZhbGlkICYmIGNvbnRyb2wuZW5hYmxlZCkge1xuICAgICAgICBjb25zdCBmb3JtQXJyYXkgPSBjb250cm9sLnZhbHVlO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZm9ybUFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgY29uc3QgY3VycmVudFJhbmdlID0gZm9ybUFycmF5W2ldO1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnRGcm9tID0gdGltZVRvTW9tZW50KGN1cnJlbnRSYW5nZS5mcm9tKTtcbiAgICAgICAgICBjb25zdCBjdXJyZW50VG8gPSB0aW1lVG9Nb21lbnQoY3VycmVudFJhbmdlLnRvKTtcblxuICAgICAgICAgIGlmIChjdXJyZW50RnJvbSAmJiBjdXJyZW50VG8pIHtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSBpICsgMTsgaiA8IGZvcm1BcnJheS5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICBjb25zdCBjb21wYXJlUmFuZ2UgPSBmb3JtQXJyYXlbal07XG4gICAgICAgICAgICAgIGNvbnN0IGNvbXBhcmVGcm9tID0gdGltZVRvTW9tZW50KGNvbXBhcmVSYW5nZS5mcm9tKTtcbiAgICAgICAgICAgICAgY29uc3QgY29tcGFyZVRvID0gdGltZVRvTW9tZW50KGNvbXBhcmVSYW5nZS50byk7XG5cbiAgICAgICAgICAgICAgaWYgKGNvbXBhcmVGcm9tICYmIGNvbXBhcmVUbykge1xuICAgICAgICAgICAgICAgIC8vIENoZWNrIGZvciBvdmVybGFwXG4gICAgICAgICAgICAgICAgY29uc3QgcmFuZ2VzT3ZlcmxhcCA9IGN1cnJlbnRGcm9tLmlzQmVmb3JlKGNvbXBhcmVUbykgJiYgY3VycmVudFRvLmlzQWZ0ZXIoY29tcGFyZUZyb20pO1xuXG4gICAgICAgICAgICAgICAgaWYgKHJhbmdlc092ZXJsYXApIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiB7IGZvcm1fdmFsaWRhdGlvbl90aW1lX3JhbmdlX292ZXJsYXA6IHRydWUgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGlzVmFsdWVHcmVhdGVyVGhhbk9yRXF1YWxUbyhmcm9tQ29udHJvbDogQWJzdHJhY3RDb250cm9sLCB0b0NvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGZyb21UaW1lSW5OdW1iZXI6IG51bWJlciA9IGZyb21Db250cm9sLnZhbHVlO1xuICAgIGNvbnN0IHRvVGltZUluTnVtYmVyOiBudW1iZXIgPSB0b0NvbnRyb2wudmFsdWU7XG4gICAgcmV0dXJuIGZyb21UaW1lSW5OdW1iZXIgIT09IG51bGwgJiYgdG9UaW1lSW5OdW1iZXIgIT09IG51bGwgJiYgK2Zyb21UaW1lSW5OdW1iZXIgPiArdG9UaW1lSW5OdW1iZXI7XG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaXNWYWx1ZUxlbmd0aFZhbGlkKGZyb21Db250cm9sOiBBYnN0cmFjdENvbnRyb2wsIHRvQ29udHJvbDogQWJzdHJhY3RDb250cm9sKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZnJvbVRpbWVJbk51bWJlcjogbnVtYmVyID0gZnJvbUNvbnRyb2wudmFsdWU7XG4gICAgY29uc3QgdG9UaW1lSW5OdW1iZXI6IG51bWJlciA9IHRvQ29udHJvbC52YWx1ZTtcbiAgICByZXR1cm4gZnJvbVRpbWVJbk51bWJlci50b1N0cmluZygpLmxlbmd0aCA9PT0gVkFMSURfVElNRV9NQVhfTEVOR1RIICYmXG4gICAgICB0b1RpbWVJbk51bWJlci50b1N0cmluZygpLmxlbmd0aCA9PT0gVkFMSURfVElNRV9NQVhfTEVOR1RIO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgdmFsaWRhdGVUaWJhVGltZUluUmFuZ2UoY3VycmVudFRpbWU6IFRpYmFUaW1lLCBtaW5UaW1lOiBUaWJhVGltZSwgbWF4VGltZTogVGliYVRpbWUpOiB7IGZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX3RpbWU6IHsgZnJvbTogc3RyaW5nOyB0bzogc3RyaW5nIH0gfSB8IG51bGwge1xuICAgIC8vIElmIHRpbWUgaXMgdW5kZWZpbmVkLCByZXR1cm4gbnVsbCAobm8gZXJyb3IpXG4gICAgaWYgKCFjdXJyZW50VGltZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybWF0VGltZSA9ICh0aW1lOiBUaWJhVGltZSk6IHN0cmluZyA9PlxuICAgICAgYCR7dGltZS5ob3Vycy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9OiR7dGltZS5taW51dGVzLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX1gO1xuXG4gICAgY29uc3QgaG91cnM6IG51bWJlciA9ICthZGp1c3RUaWJhVGltZUZvck1pZGRheShjdXJyZW50VGltZSkuaG91cnM7XG4gICAgY29uc3QgbWludXRlczogbnVtYmVyID0gK2N1cnJlbnRUaW1lLm1pbnV0ZXM7XG5cbiAgICBjb25zdCBpc1ZhbGlkVGltZSA9XG4gICAgICAoaG91cnMgPiBtaW5UaW1lLmhvdXJzIHx8IChob3VycyA9PT0gbWluVGltZS5ob3VycyAmJiBtaW51dGVzID49IG1pblRpbWUubWludXRlcykpICYmXG4gICAgICAoaG91cnMgPCBtYXhUaW1lLmhvdXJzIHx8IChob3VycyA9PT0gbWF4VGltZS5ob3VycyAmJiBtaW51dGVzIDw9IG1heFRpbWUubWludXRlcykpO1xuXG4gICAgLy8gSWYgdGltZSBpcyB2YWxpZCwgcmV0dXJuIG51bGwgKG5vIGVycm9yKVxuICAgIGlmIChpc1ZhbGlkVGltZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gT3RoZXJ3aXNlLCByZXR1cm4gdGhlIHZhbGlkYXRpb24gZXJyb3Igd2l0aCBmb3JtYXR0ZWQgdGltZSByYW5nZVxuICAgIHJldHVybiB7XG4gICAgICBmb3JtX3ZhbGlkYXRpb25faW52YWxpZF90aW1lOiB7XG4gICAgICAgIGZyb206IGZvcm1hdFRpbWUobWluVGltZSksXG4gICAgICAgIHRvOiBmb3JtYXRUaW1lKG1heFRpbWUpLFxuICAgICAgfVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -66753,6 +66753,8 @@ const MAX_REPEAT_COUNT_VALUE = 999;
66753
66753
  const EXPIRATION_MONTH_OPTIONS = [2, 3, 4, 5, 6];
66754
66754
  const MINIMUM_LENGTH_OPTIONS = [8, 9, 10, 11, 12, 13, 14, 15];
66755
66755
  const DEFAULT_MINUMIM_LENGTH = 8;
66756
+ const MAX_NUMBER_OF_NIGHTS = 999999;
66757
+ const MAX_INT32_VALUE = 2147483647;
66756
66758
  const SUPPORTED_DEVICES_SCHEDULER = [DeviceType.CashReader,
66757
66759
  DeviceType.Dispenser,
66758
66760
  DeviceType.Verifier,
@@ -67135,8 +67137,6 @@ const integerNumbersRegex = /^[-]?(\d+)?$/;
67135
67137
  const decimalPositiveRegex = /^(\d+)(\.\d{1,2})?$/;
67136
67138
  const decimalRegex = /^-?(\d+)(\.\d{1,2})?$/;
67137
67139
  const regexExp = /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/;
67138
- const positiveIntegerNumbersIncludeZeroRegex = /^(0|[1-9]\d*)$/;
67139
- const positiveIntegerNumbersGreaterThanZeroRegex = /^[1-9]\d*$/;
67140
67140
  const percentageRegex = /^(100(\.0+)?|[1-9]?\d(\.\d+)?)$/;
67141
67141
  function isNullOrEmpty(val) {
67142
67142
  return (val === undefined || val === null || val === '');
@@ -67198,25 +67198,18 @@ class TibaValidators {
67198
67198
  }
67199
67199
  return null;
67200
67200
  }
67201
- static positiveIntegerNumbersIncludeZero(control) {
67202
- const val = control.value;
67203
- if (!isNullOrEmpty(val) && !val.toString().match(positiveIntegerNumbersIncludeZeroRegex)) {
67204
- return {
67205
- positiveIntegerNumbersIncludeZeroRegex: {
67206
- value: ` '${val}'`,
67207
- pattern: positiveIntegerNumbersIncludeZeroRegex
67208
- }
67209
- };
67210
- }
67211
- return null;
67201
+ static validatePositiveIntegerIncludeZero(control) {
67202
+ return TibaValidators.validatePositiveInteger(control, 0);
67212
67203
  }
67213
- static positiveIntegerNumbersWithoutZeroRegex(control) {
67214
- const val = control.value;
67215
- if (!isNullOrEmpty(val) && !val.toString().match(positiveIntegerNumbersGreaterThanZeroRegex)) {
67204
+ static validatePositiveIntegerWithoutZero(control) {
67205
+ return TibaValidators.validatePositiveInteger(control, 1);
67206
+ }
67207
+ static validatePositiveInteger(control, minValue) {
67208
+ if (!isNullOrEmpty(control.value) &&
67209
+ !(control.value.toString().match(integerNumbersRegex) && +control.value >= minValue)) {
67216
67210
  return {
67217
- positiveIntegerNumbersGreaterThanZeroRegex: {
67218
- value: ` '${val}'`,
67219
- pattern: positiveIntegerNumbersGreaterThanZeroRegex
67211
+ validatePositiveInteger: {
67212
+ value: ` '${control.value}'`
67220
67213
  }
67221
67214
  };
67222
67215
  }
@@ -68933,8 +68926,8 @@ class FieldValidationsComponent extends BaseComponent {
68933
68926
  <div *ngIf="errors?.alphanumericRegex">
68934
68927
  {{ L.form_validation_alphanumeric_message | translate: { controlName: label | translate, value: errors?.alphanumericRegex.value || 0 } }}
68935
68928
  </div>
68936
- <div *ngIf="errors?.positiveIntegerNumbersIncludeZeroRegex">
68937
- {{ L.form_validation_invalid_positive_integer_number_message | translate: { controlName: label | translate, value: errors?.positiveIntegerNumbersIncludeZeroRegex.value || 0 } }}
68929
+ <div *ngIf="errors?.validatePositiveInteger">
68930
+ {{ L.form_validation_invalid_positive_integer_number_message | translate: { controlName: label | translate, value: errors?.validatePositiveInteger.value || 0 } }}
68938
68931
  </div>
68939
68932
  <div *ngIf="errors?.roleNameAlreadyExists">
68940
68933
  {{ L.role_name_already_exists | translate }}
@@ -69055,8 +69048,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
69055
69048
  <div *ngIf="errors?.alphanumericRegex">
69056
69049
  {{ L.form_validation_alphanumeric_message | translate: { controlName: label | translate, value: errors?.alphanumericRegex.value || 0 } }}
69057
69050
  </div>
69058
- <div *ngIf="errors?.positiveIntegerNumbersIncludeZeroRegex">
69059
- {{ L.form_validation_invalid_positive_integer_number_message | translate: { controlName: label | translate, value: errors?.positiveIntegerNumbersIncludeZeroRegex.value || 0 } }}
69051
+ <div *ngIf="errors?.validatePositiveInteger">
69052
+ {{ L.form_validation_invalid_positive_integer_number_message | translate: { controlName: label | translate, value: errors?.validatePositiveInteger.value || 0 } }}
69060
69053
  </div>
69061
69054
  <div *ngIf="errors?.roleNameAlreadyExists">
69062
69055
  {{ L.role_name_already_exists | translate }}
@@ -69412,5 +69405,5 @@ function slideUpDown() {
69412
69405
  * Generated bundle index. Do not edit.
69413
69406
  */
69414
69407
 
69415
- export { ACCESS_PROFILE_DAT_TYPES_SP, ALERT_NOTIFICATION_CONTAINER, ALLOWED_FILES_FORMATS, ALLOWED_FILES_MAX_SIZE_MB, ALLOWED_NUMBER_OF_DAYS, ALLOWED_UPLOAD_FILES_QUANTITY, ActionStatusService, AppModuleToMainPermissionTypeMap, AppSectionLabel, AppSectionModuleMenu, AppSectionRoute, AuditActionTypeText, AutofocusDirective, BOM_UNICODE, BaseComponent, CLogItPipe, COLORS, CREDIT_CARD_POSTFIX_LENGTH, CentToCoinPipe, cloudServiceProxies as Cloud, ContainerRefDirective, CurlyToBoldPipe, DATA_IMAGE_BASE64_PREFIX, DATA_IMAGE_BASE64_SVG_PREFIX, DEFAULT_MINUMIM_LENGTH, DEFAULT_SMART_PARK_DATE_TIME, DEVICE_EVENT_OPTIONS_KEY, DEVICE_NAVIGATE_KEY, DISABLED_FOCUS_ELEMENT_CLASSES, DISABLED_FOCUS_ELEMENT_TYPES, DataQaAttribute, DecimalToAmountPipe, DecimalToCurrencyPipe, DialogMode, DurationMessageBar, ENGLISH_LANGUAGE, ENVIRONMENT, EXPIRATION_MONTH_OPTIONS, edgeServiceProxies as Edge, EllipsisMultilineDirective, EnumsToArrayPipe, EnvironmentModeText, FieldLabelComponent, FieldValidationsComponent, FilterKeysPipe, FilterNumbersPipe, FilterPipe, FormValidationsComponent, GenerateSearchParamsDto, GetAllLocalizationsAction, HOUR_FORMAT_12, HOUR_FORMAT_24, HOUR_FORMAT_FULL_DAY, HasActionErrored, HttpCancelBlackListUrls, INPUT_SEARCH_DEBOUNCE_TIME, INPUT_SEARCH_DEBOUNCE_TIME_LOW, INPUT_SEARCH_DEBOUNCE_TIME_MEDIUM, IconsHelper, IconsHelperText, InternetConnectionStatus, IsActionExecuting, IsEllipsisDirective, LOCAL_ENGLISH_LANGUAGE, LOGGED_TENANT_KEY, LanguageTypeKeys, LocalStorageMigrator, Localization, LocalizationModule, LocalizationService, LocalizationState, MAX_ALLOWED_BADGE_VALUE, MAX_ALLOWED_CURRENT_BALANCE, MAX_CARDS, MAX_CAR_PLATES, MAX_EXPORT_RECORDS, MAX_HOTEL_ROOM_NUMBER_LENGTH, MAX_INT16_VALUE, MAX_INTEGER_VALUE, MAX_LENGTH_DESCRIPTION, MAX_LENGTH_NAME_30, MAX_LENGTH_NAME_50, MAX_LENGTH_SERACH_TERM, MAX_MOBILE_LENGTH, MAX_PLATE_ID_LENGTH, MAX_PRICE_NO_TIME_LIMIT_VALUE, MAX_PRICE_PERIOD_VALUE, MAX_REPEAT_COUNT_VALUE, MAX_RESULTS, MAX_ROLE_NAME_LENGTH, MAX_SP, MC_READER_ID, MINIMUM_LENGTH_OPTIONS, MINUTES_PER_HOUR, MOBILE_REFRESH_INFO, MULTIPLE, MainModuleToSubModulesPermissionTypeMap, MiddayPeriod, MobileAppSectionLabel, MslEventType, NONE_USER_ID, NO_RESULT, NativeElementInjectorDirective, ONE_DAY_IN_MINUTES_VALUE, ONE_SECOND_IN_MILLISECONDS, OffScreenDirective, Operator, OrderBy, OrderByPipe, OrderDirection, PARKER_SEARCH_AUTO_REDIRECT, PASSWORD_EXPIRED, PERIOD_TIME, PREVENT_CLICK_ELEMENT_CLASSES, REDIRECT_URL, RESET_PASSWORD_EMAIL, RowOperation, SESSION, STATUS_CODE_SERVER_VALIDATION, STRING_ZERO, SUPER_PARK_ROUTE_KEY, SUPPORTED_DEVICES_SCHEDULER, SYSTEM_ALERT_VALUE, ServiceProxyModule, SharedComponentsModule, SharedDirectivesModule, SharedModule, SharedPipesModule, SortPipe, SpinnerDiameterSize, StopPropagationDirective, StringItPipe, TBFormatPipe, TBNumberDirective, TENANT_KEY, TENS_MULTIPLIER, TibaValidators, TimeAgoPipe, TimeElapsedFormats, TimeElapsedPipe, TimeRangeFormats, TimeRangePipe, TooltipPositions, TrackAction, TranslateLocalPipe, TreeFilterKeysPipe, TreeMode, UNSAVED_DATA, USER_IS_TEMPORARY_BLOCKED, VALID_TIME_MAX_LENGTH, VERSION_10_1_0, VERSION_10_2_0, VERSION_10_2_1, VERSION_10_3_0, VERSION_7_4_0, VERSION_7_4_1, VERSION_8_1_0, VERSION_8_2_0, VERSION_8_3_0, VERSION_8_4_0, VERSION_9_1_0, VERSION_9_2_0, VERSION_9_2_2, VERSION_9_3_0, VERSION_9_4_0, VarDirective, WrapFnPipe, ZerofyNegativePipe, accountModuleAnimation, adjustForTimezone, adjustTibaTimeForMidday, allowSpecialKeys, alphanumericRegex, appModuleAnimation, areDatesIdentical, areVersionsCompatible, arrayEquals, arraysAreDifferent, baseReduce, camelize, canceled, capitalizeFirstLetter, convertBinaryToDecimal, convertCentToWholeCoin, convertDecimalToBinary, convertFeaturePermissionsToDictionary, convertFormatWithoutTime, convertPermissionsToDictionary, convertWholeCoinToCent, createDescriptor, dateDiffInSeconds, decimalPositiveRegex, decimalRegex, delayCancellation, diffInMillis, dispatched, distinctObjectByProperties, distinctObjectByProperty, ensureObjectMetadata, errored, extractErrorsChanges, extractNumber, extractResetChanges, extractSetValueChanges, extractToggleStatusChanges, extractTouchedChanges, extractUpdateValueAndValidityChanges, filterKeyValueBaseReduce, findParentElement, findParentElementDimensions, flattenByKey, formatMinutesToTimeNumber, formatTimeToMinutes, formatTimeWithMidnight, formatTimeWithSeparator, formatTimeWithoutMidnight, formatTimeWithoutSeparator, formatTimeWithoutSeperatorAndWithMidnight, formatTimeWithoutSeperatorAndWithoutMidnight, getAddress, getCurrentLang, getDateTimeInSeconds, getDateWithoutTime, getMomenWithTime, getMomentNullable, getMomentWithoutTime, getObjectMetadata, getUserTimeZone, getUtcMomentNullable, hasValue, humanizeTimeElapsed, humanizeUtcTimeElapsed, identity, integerNumbersRegex, isBoolean, isCharacterLengthValid, isFalsy, isIOSDevice, isMaxDaysRangeValid, isNullOrEmpty, isNumber, isObjectEmpty, isSearchFieldChanged, isSingularOrPlural, isTrueInBinary, isTruthy, isVersionGreaterThanEqual, loadHTMLContent, lowerCase, lowerCaseFirstLetter, markEntitiesAsChanged, markEntityAsUnchanged, minutesToTime, mobileRegex, noEmojiRegex, notificationAnimation, numberWithLeadingZero, ofStatus, omitKeys, openCloseFiltersAnimation, parseApiErrorData, parseApiErrorMessage, parseDateTimeToSparkParkTime, parseSmartParkTime, passwordRegex, percentageRegex, positiveIntegerNumbersGreaterThanZeroRegex, positiveIntegerNumbersIncludeZeroRegex, printStackTrace, readjustForTimezone, regexExp, replaceAll, searchBarPopupAnimation, setErrorMessage, sleep, slideFromBottom, slideFromRight, slideFromUp, slideUpDown, successful, timeToMinutes, timeToMoment, toInt, toNumberMap, toStringMap, wrapConstructor };
69408
+ export { ACCESS_PROFILE_DAT_TYPES_SP, ALERT_NOTIFICATION_CONTAINER, ALLOWED_FILES_FORMATS, ALLOWED_FILES_MAX_SIZE_MB, ALLOWED_NUMBER_OF_DAYS, ALLOWED_UPLOAD_FILES_QUANTITY, ActionStatusService, AppModuleToMainPermissionTypeMap, AppSectionLabel, AppSectionModuleMenu, AppSectionRoute, AuditActionTypeText, AutofocusDirective, BOM_UNICODE, BaseComponent, CLogItPipe, COLORS, CREDIT_CARD_POSTFIX_LENGTH, CentToCoinPipe, cloudServiceProxies as Cloud, ContainerRefDirective, CurlyToBoldPipe, DATA_IMAGE_BASE64_PREFIX, DATA_IMAGE_BASE64_SVG_PREFIX, DEFAULT_MINUMIM_LENGTH, DEFAULT_SMART_PARK_DATE_TIME, DEVICE_EVENT_OPTIONS_KEY, DEVICE_NAVIGATE_KEY, DISABLED_FOCUS_ELEMENT_CLASSES, DISABLED_FOCUS_ELEMENT_TYPES, DataQaAttribute, DecimalToAmountPipe, DecimalToCurrencyPipe, DialogMode, DurationMessageBar, ENGLISH_LANGUAGE, ENVIRONMENT, EXPIRATION_MONTH_OPTIONS, edgeServiceProxies as Edge, EllipsisMultilineDirective, EnumsToArrayPipe, EnvironmentModeText, FieldLabelComponent, FieldValidationsComponent, FilterKeysPipe, FilterNumbersPipe, FilterPipe, FormValidationsComponent, GenerateSearchParamsDto, GetAllLocalizationsAction, HOUR_FORMAT_12, HOUR_FORMAT_24, HOUR_FORMAT_FULL_DAY, HasActionErrored, HttpCancelBlackListUrls, INPUT_SEARCH_DEBOUNCE_TIME, INPUT_SEARCH_DEBOUNCE_TIME_LOW, INPUT_SEARCH_DEBOUNCE_TIME_MEDIUM, IconsHelper, IconsHelperText, InternetConnectionStatus, IsActionExecuting, IsEllipsisDirective, LOCAL_ENGLISH_LANGUAGE, LOGGED_TENANT_KEY, LanguageTypeKeys, LocalStorageMigrator, Localization, LocalizationModule, LocalizationService, LocalizationState, MAX_ALLOWED_BADGE_VALUE, MAX_ALLOWED_CURRENT_BALANCE, MAX_CARDS, MAX_CAR_PLATES, MAX_EXPORT_RECORDS, MAX_HOTEL_ROOM_NUMBER_LENGTH, MAX_INT16_VALUE, MAX_INT32_VALUE, MAX_INTEGER_VALUE, MAX_LENGTH_DESCRIPTION, MAX_LENGTH_NAME_30, MAX_LENGTH_NAME_50, MAX_LENGTH_SERACH_TERM, MAX_MOBILE_LENGTH, MAX_NUMBER_OF_NIGHTS, MAX_PLATE_ID_LENGTH, MAX_PRICE_NO_TIME_LIMIT_VALUE, MAX_PRICE_PERIOD_VALUE, MAX_REPEAT_COUNT_VALUE, MAX_RESULTS, MAX_ROLE_NAME_LENGTH, MAX_SP, MC_READER_ID, MINIMUM_LENGTH_OPTIONS, MINUTES_PER_HOUR, MOBILE_REFRESH_INFO, MULTIPLE, MainModuleToSubModulesPermissionTypeMap, MiddayPeriod, MobileAppSectionLabel, MslEventType, NONE_USER_ID, NO_RESULT, NativeElementInjectorDirective, ONE_DAY_IN_MINUTES_VALUE, ONE_SECOND_IN_MILLISECONDS, OffScreenDirective, Operator, OrderBy, OrderByPipe, OrderDirection, PARKER_SEARCH_AUTO_REDIRECT, PASSWORD_EXPIRED, PERIOD_TIME, PREVENT_CLICK_ELEMENT_CLASSES, REDIRECT_URL, RESET_PASSWORD_EMAIL, RowOperation, SESSION, STATUS_CODE_SERVER_VALIDATION, STRING_ZERO, SUPER_PARK_ROUTE_KEY, SUPPORTED_DEVICES_SCHEDULER, SYSTEM_ALERT_VALUE, ServiceProxyModule, SharedComponentsModule, SharedDirectivesModule, SharedModule, SharedPipesModule, SortPipe, SpinnerDiameterSize, StopPropagationDirective, StringItPipe, TBFormatPipe, TBNumberDirective, TENANT_KEY, TENS_MULTIPLIER, TibaValidators, TimeAgoPipe, TimeElapsedFormats, TimeElapsedPipe, TimeRangeFormats, TimeRangePipe, TooltipPositions, TrackAction, TranslateLocalPipe, TreeFilterKeysPipe, TreeMode, UNSAVED_DATA, USER_IS_TEMPORARY_BLOCKED, VALID_TIME_MAX_LENGTH, VERSION_10_1_0, VERSION_10_2_0, VERSION_10_2_1, VERSION_10_3_0, VERSION_7_4_0, VERSION_7_4_1, VERSION_8_1_0, VERSION_8_2_0, VERSION_8_3_0, VERSION_8_4_0, VERSION_9_1_0, VERSION_9_2_0, VERSION_9_2_2, VERSION_9_3_0, VERSION_9_4_0, VarDirective, WrapFnPipe, ZerofyNegativePipe, accountModuleAnimation, adjustForTimezone, adjustTibaTimeForMidday, allowSpecialKeys, alphanumericRegex, appModuleAnimation, areDatesIdentical, areVersionsCompatible, arrayEquals, arraysAreDifferent, baseReduce, camelize, canceled, capitalizeFirstLetter, convertBinaryToDecimal, convertCentToWholeCoin, convertDecimalToBinary, convertFeaturePermissionsToDictionary, convertFormatWithoutTime, convertPermissionsToDictionary, convertWholeCoinToCent, createDescriptor, dateDiffInSeconds, decimalPositiveRegex, decimalRegex, delayCancellation, diffInMillis, dispatched, distinctObjectByProperties, distinctObjectByProperty, ensureObjectMetadata, errored, extractErrorsChanges, extractNumber, extractResetChanges, extractSetValueChanges, extractToggleStatusChanges, extractTouchedChanges, extractUpdateValueAndValidityChanges, filterKeyValueBaseReduce, findParentElement, findParentElementDimensions, flattenByKey, formatMinutesToTimeNumber, formatTimeToMinutes, formatTimeWithMidnight, formatTimeWithSeparator, formatTimeWithoutMidnight, formatTimeWithoutSeparator, formatTimeWithoutSeperatorAndWithMidnight, formatTimeWithoutSeperatorAndWithoutMidnight, getAddress, getCurrentLang, getDateTimeInSeconds, getDateWithoutTime, getMomenWithTime, getMomentNullable, getMomentWithoutTime, getObjectMetadata, getUserTimeZone, getUtcMomentNullable, hasValue, humanizeTimeElapsed, humanizeUtcTimeElapsed, identity, integerNumbersRegex, isBoolean, isCharacterLengthValid, isFalsy, isIOSDevice, isMaxDaysRangeValid, isNullOrEmpty, isNumber, isObjectEmpty, isSearchFieldChanged, isSingularOrPlural, isTrueInBinary, isTruthy, isVersionGreaterThanEqual, loadHTMLContent, lowerCase, lowerCaseFirstLetter, markEntitiesAsChanged, markEntityAsUnchanged, minutesToTime, mobileRegex, noEmojiRegex, notificationAnimation, numberWithLeadingZero, ofStatus, omitKeys, openCloseFiltersAnimation, parseApiErrorData, parseApiErrorMessage, parseDateTimeToSparkParkTime, parseSmartParkTime, passwordRegex, percentageRegex, printStackTrace, readjustForTimezone, regexExp, replaceAll, searchBarPopupAnimation, setErrorMessage, sleep, slideFromBottom, slideFromRight, slideFromUp, slideUpDown, successful, timeToMinutes, timeToMoment, toInt, toNumberMap, toStringMap, wrapConstructor };
69416
69409
  //# sourceMappingURL=tiba-spark-client-shared-lib.mjs.map