@po-ui/ng-components 5.22.1 → 5.22.2

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.
@@ -197,6 +197,14 @@ export class PoUploadBaseComponent {
197
197
  * @description
198
198
  *
199
199
  * Função para atualizar o ngModel do componente, necessário quando não for utilizado dentro da *tag* `form`.
200
+ *
201
+ * Na versão 12.2.0 do Angular a verificação `strictTemplates` vem true como default. Portanto, para utilizar
202
+ * two-way binding no componente deve se utilizar da seguinte forma:
203
+ *
204
+ * ```
205
+ * <po-upload ... [ngModel]="UploadModel" (ngModelChange)="uploadModel = $event"> </po-upload>
206
+ * ```
207
+ *
200
208
  */
201
209
  this.ngModelChange = new EventEmitter();
202
210
  this.extensionNotAllowed = 0;
@@ -570,4 +578,4 @@ PoUploadBaseComponent.propDecorators = {
570
578
  __decorate([
571
579
  InputBoolean()
572
580
  ], PoUploadBaseComponent.prototype, "autoFocus", void 0);
573
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tdXBsb2FkLWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLWZpZWxkL3BvLXVwbG9hZC9wby11cGxvYWQtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDdEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRXJGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHO0lBQ3JDLEVBQUUsRUFBb0I7UUFDcEIsS0FBSyxFQUFFLE9BQU87UUFDZCxPQUFPLEVBQUUsU0FBUztRQUNsQixVQUFVLEVBQUUsYUFBYTtRQUN6QixXQUFXLEVBQUUsY0FBYztRQUMzQixZQUFZLEVBQUUsZUFBZTtRQUM3QixZQUFZLEVBQUUsZUFBZTtRQUM3QixhQUFhLEVBQUUsaUJBQWlCO1FBQ2hDLGVBQWUsRUFBRSxtQkFBbUI7UUFDcEMscUJBQXFCLEVBQUUsa0NBQWtDO1FBQ3pE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Q25HLENBQUM7UUFFRixJQUFJLFNBQVMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNwQixLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDckM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OztZQXBoQkYsU0FBUzs7O1lBcElELGVBQWU7WUFHZixpQkFBaUI7Ozt3QkE4SXZCLEtBQUssU0FBQyxjQUFjOzZCQWFwQixLQUFLLFNBQUMsb0JBQW9CO29CQUcxQixLQUFLLFNBQUMsU0FBUzttQkFHZixLQUFLLFNBQUMsUUFBUTtrQkFHZCxLQUFLLFNBQUMsT0FBTzttQkFHYixLQUFLLFNBQUMsTUFBTTt5QkFXWixLQUFLLFNBQUMsZUFBZTt1QkFlckIsS0FBSyxTQUFDLFlBQVk7c0JBR2xCLEtBQUssU0FBQyxXQUFXO3VCQWdCakIsTUFBTSxTQUFDLFVBQVU7c0JBVWpCLE1BQU0sU0FBQyxTQUFTO3dCQVVoQixNQUFNLFNBQUMsV0FBVzs0QkFTbEIsTUFBTSxTQUFDLGVBQWU7d0JBd0N0QixLQUFLLFNBQUMsYUFBYTt1QkF1Qm5CLEtBQUssU0FBQyxhQUFhO21DQWlCbkIsS0FBSyxTQUFDLDBCQUEwQjsrQkFvQmhDLEtBQUssU0FBQyxzQkFBc0I7NkJBbUI1QixLQUFLLFNBQUMsb0JBQW9CO3VCQW9DMUIsS0FBSyxTQUFDLFlBQVk7K0JBdUJsQixLQUFLLFNBQUMsZ0JBQWdCO3dCQW1CdEIsS0FBSyxTQUFDLGNBQWM7dUJBaUJwQixLQUFLLFNBQUMsWUFBWTt5QkFtQmxCLEtBQUssU0FBQyxZQUFZO3VCQWlCbEIsS0FBSyxTQUFDLFlBQVk7O0FBN1ZvQjtJQUFmLFlBQVksRUFBRTt3REFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBjb252ZXJ0VG9Cb29sZWFuLCBpc0VxdWFscywgaXNJRSwgaXNNb2JpbGUgfSBmcm9tICcuLi8uLi8uLi91dGlscy91dGlsJztcbmltcG9ydCB7IHJlcXVpcmVkRmFpbGVkIH0gZnJvbSAnLi4vdmFsaWRhdG9ycyc7XG5cbmltcG9ydCB7IFBvVXBsb2FkRmlsZSB9IGZyb20gJy4vcG8tdXBsb2FkLWZpbGUnO1xuaW1wb3J0IHsgUG9VcGxvYWRGaWxlUmVzdHJpY3Rpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLXVwbG9hZC1maWxlLXJlc3RyaWN0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1VwbG9hZExpdGVyYWxzIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLXVwbG9hZC1saXRlcmFscy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9VcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi9wby11cGxvYWQuc2VydmljZSc7XG5pbXBvcnQgeyBQb1VwbG9hZFN0YXR1cyB9IGZyb20gJy4vcG8tdXBsb2FkLXN0YXR1cy5lbnVtJztcbmltcG9ydCB7IElucHV0Qm9vbGVhbiB9IGZyb20gJy4uLy4uLy4uL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgUG9MYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wby1sYW5ndWFnZS9wby1sYW5ndWFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IHBvTG9jYWxlRGVmYXVsdCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3BvLWxhbmd1YWdlL3BvLWxhbmd1YWdlLmNvbnN0YW50JztcblxuZXhwb3J0IGNvbnN0IHBvVXBsb2FkTGl0ZXJhbHNEZWZhdWx0ID0ge1xuICBlbjogPFBvVXBsb2FkTGl0ZXJhbHM+e1xuICAgIGZpbGVzOiAnZmlsZXMnLFxuICAgIGZvbGRlcnM6ICdmb2xkZXJzJyxcbiAgICBzZWxlY3RGaWxlOiAnU2VsZWN0IGZpbGUnLFxuICAgIHNlbGVjdEZpbGVzOiAnU2VsZWN0IGZpbGVzJyxcbiAgICBzZWxlY3RGb2xkZXI6ICdTZWxlY3QgZm9sZGVyJyxcbiAgICBzdGFydFNlbmRpbmc6ICdTdGFydCBzZW5kaW5nJyxcbiAgICBkcmFnRmlsZXNIZXJlOiAnRHJhZyBmaWxlcyBoZXJlJyxcbiAgICBkcmFnRm9sZGVyc0hlcmU6ICdEcmFnIGZvbGRlcnMgaGVyZScsXG4gICAgc2VsZWN0RmlsZXNPbkNvbXB1dGVyOiAnb3Igc2VsZWN0IGZpbGVzIG9uIHlvdXIgY29tcHV0ZXInLFxuICAgIHNlbGVjdEZvbGRlck9uQ29tcHV0ZXI6ICdvciBzZWxlY3QgZm9sZGVyIG9uIHlvdXIgY29tcHV0ZXInLFxuICAgIGRyb3BGaWxlc0hlcmU6ICdEcm9wIGZpbGVzIGhlcmUnLFxuICAgIGRyb3BGb2xkZXJzSGVyZTogJ0Ryb3AgZm9sZGVycyBoZXJlJyxcbiAgICBpbnZhbGlkRHJvcEFyZWE6ICd7MH0gd2VyZSBub3QgZHJvcHBlZCBpbiB0aGUgY29ycmVjdCBhcmVhJyxcbiAgICBpbnZhbGlkRmlsZVR5cGU6ICdGYWlsZWQgdG8gbG9hZCB7MH0gZmlsZShzKSBhcyBpdCBpcyBub3QgdGhlIGFsbG93ZWQgZmlsZSB0eXBlLicsXG4gICAgaW52YWxpZEFtb3VudDogJ0ZhaWxlZCB0byBsb2FkIHswfSBmaWxlKHMpLCBhcyBpdCBleGNlZWRzIHRoZSBsaW1pdCBhbW91bnQgb2YgZmlsZXMuJyxcbiAgICBpbnZhbGlkRm9ybWF0OiAnRmFpbGVkIHRvIGxvYWQgezB9IGZpbGUocyksIGFzIGl0IGRvZXMgbm90IG1hdGNoIHRoZSBmb3JtYXQocyk6IHsxfS4nLFxuICAgIGludmFsaWRTaXplOiAnRmFpbGVkIHRvIGxvYWQgezB9IGZpbGVzKHMpLCBhcyBpdCBpcyBub3QgdGhlIGFsbG93ZWQgc2l6ZTogZnJvbSB7MX0gdG8gezJ9LicsXG4gICAgbnVtYmVyT2ZGaWxlc0FsbG93ZWQ6ICd7MH0gZmlsZShzKSBhbGxvd2VkJyxcbiAgICBhbGxvd2VkRm9ybWF0czogJ0FjY2VwdGVkIGZpbGUgZm9ybWF0czogezB9LicsXG4gICAgYWxsb3dlZEZpbGVTaXplUmFuZ2U6ICdTaXplIGxpbWl0IHBlciBmaWxlOiBmcm9tIHswfSB0byB7MX0nLFxuICAgIG1heEZpbGVTaXplQWxsb3dlZDogJ1NpemUgbGltaXQgcGVyIGZpbGU6IHswfSBtYXhpbXVtJyxcbiAgICBtaW5GaWxlU2l6ZUFsbG93ZWQ6ICdTaXplIGxpbWl0IHBlciBmaWxlOiB7MH0gbWluaW11bScsXG4gICAgZXJyb3JPY2N1cnJlZDogJ0FuIGVycm9yIGhhcyBvY2N1cnJlZCcsXG4gICAgc2VudFdpdGhTdWNjZXNzOiAnU2VudCB3aXRoIHN1Y2Nlc3MnXG4gIH0sXG4gIGVzOiA8UG9VcGxvYWRMaXRlcmFscz57XG4gICAgZmlsZXM6ICdhcmNoaXZvcycsXG4gICAgZm9sZGVyczogJ2NhcnBldGFzJyxcbiAgICBzZWxlY3RGaWxlOiAnU2VsZWNjaW9uYXIgYXJjaGl2bycsXG4gICAgc2VsZWN0RmlsZXM6ICdTZWxlY2Npb25hciBhcmNoaXZvcycsXG4gICAgc2VsZWN0Rm9sZGVyOiAnU2VsZWNjaW9uYXIgY2FycGV0YScsXG4gICAgc3RhcnRTZW5kaW5nOiAnSW5pY2lhciBjYXJnYScsXG4gICAgZHJhZ0ZpbGVzSGVyZTogJ0FycmFzdHJhIGxvcyBhcmNoaXZvcyBhcXXDrScsXG4gICAgZHJhZ0ZvbGRlcnNIZXJlOiAnQXJyYXN0cmEgbGFzIGNhcnBldGFzIGFxdcOtJyxcbiAgICBzZWxlY3RGaWxlc09uQ29tcHV0ZXI6ICdvIHNlbGVjY2lvbmEgbG9zIGFyY2hpdm9zIGVuIHR1IGNvbXB1dGFkb3JhJyxcbiAgICBzZWxlY3RGb2xkZXJPbkNvbXB1dGVyOiAnbyBzZWxlY2Npb25hIGxhIGNhcnBldGEgZW4gdHUgY29tcHV0YWRvcmEnLFxuICAgIGRyb3BGaWxlc0hlcmU6ICdEZWphIGxvcyBhcmNoaXZvcyBhcXXDrScsXG4gICAgZHJvcEZvbGRlcnNIZXJlOiAnRGVqYSBsYXMgY2FycGV0YXMgYXF1w60nLFxuICAgIGludmFsaWREcm9wQXJlYTogJ0xvcyB7MH0gbm8gc2UgaW5zZXJ0YXJvbiBlbiBsYSB1YmljYWNpw7NuIGNvcnJlY3RhJyxcbiAgICBpbnZhbGlkRmlsZVR5cGU6ICdFcnJvciBhbCBjYXJnYXIgezB9IGFyY2hpdm8gKHMpIHlhIHF1ZSBubyBlcyBlbCB0aXBvIGRlIGFyY2hpdm8gcGVybWl0aWRvJyxcbiAgICBpbnZhbGlkQW1vdW50OiAnRXJyb3IgYWwgY2FyZ2FyIHswfSBhcmNoaXZvIChzKSB5YSBxdWUgZXhjZWRlIGxhIGNhbnRpZGFkIGxpbWl0ZSBkZSBhcmNoaXZvcy4nLFxuICAgIGludmFsaWRGb3JtYXQ6ICdFcnJvciBhbCBjYXJnYXIgezB9IGFyY2hpdm8gKHMpIHlhIHF1ZSBubyBjb2luY2lkZSBjb24gZWwgZm9ybWF0byAocyk6IHsxfS4nLFxuICAgIGludmFsaWRTaXplOiAnRXJyb3IgYWwgY2FyZ2FyIHswfSBhcmNoaXZvIChzKSB5YSBxdWUgbm8gY3VtcGxlIGNvbiBlbCB0YW1hw7FvIHBlcm1pdGlkbzogZGVzZGUgezF9IGhhc3RhIHsyfS4nLFxuICAgIG51bWJlck9mRmlsZXNBbGxvd2VkOiAnezB9IGFyY2hpdm8ocykgcGVybWl0aWRvKHMpJyxcbiAgICBhbGxvd2VkRm9ybWF0czogJ0Zvcm1hdG9zIGFjZXB0YWRvczogezB9LicsXG4gICAgYWxsb3dlZEZpbGVTaXplUmFuZ2U6ICdMaW1pdGUgZGUgdGFtYcOxbyBkZSBhcmNoaXZvOiBkZXNkZSB7MH0gaGFzdGEgezF9JyxcbiAgICBtYXhGaWxlU2l6ZUFsbG93ZWQ6ICdMaW1pdGUgZGUgdGFtYcOxbyBkZSBhcmNoaXZvOiBoYXN0YSB7MH0nLFxuICAgIG1pbkZpbGVTaXplQWxsb3dlZDogJ0xpbWl0ZSBkZSB0YW1hw7FvIGRlIGFyY2hpdm86IG1pbmltbyB7MH0nLFxuICAgIGVycm9yT2NjdXJyZWQ6ICdPY3VycmlvIHVuIGVycm9yJyxcbiAgICBzZW50V2l0aFN1Y2Nlc3M6ICdFbnZpYWRvIGNvbiDDqXhpdG8nXG4gIH0sXG4gIHB0OiA8UG9VcGxvYWRMaXRlcmFscz57XG4gICAgZmlsZXM6ICdhcnF1aXZvcycsXG4gICAgZm9sZGVyczogJ2RpcmV0w7NyaW9zJyxcbiAgICBzZWxlY3RGaWxlOiAnU2VsZWNpb25hciBhcnF1aXZvJyxcbiAgICBzZWxlY3RGaWxlczogJ1NlbGVjaW9uYXIgYXJxdWl2b3MnLFxuICAgIHNlbGVjdEZvbGRlcjogJ1NlbGVjaW9uYXIgcGFzdGEnLFxuICAgIHN0YXJ0U2VuZGluZzogJ0luaWNpYXIgZW52aW8nLFxuICAgIGRyYWdGaWxlc0hlcmU6ICdBcnJhc3RlIG9zIGFycXVpdm9zIGFxdWknLFxuICAgIGRyYWdGb2xkZXJzSGVyZTogJ0FycmFzdGUgYXMgcGFzdGFzIGFxdWknLFxuICAgIHNlbGVjdEZpbGVzT25Db21wdXRlcjogJ291IHNlbGVjaW9uZSBvcyBhcnF1aXZvcyBubyBjb21wdXRhZG9yJyxcbiAgICBzZWxlY3RGb2xkZXJPbkNvbXB1dGVyOiAnb3Ugc2VsZWNpb25lIGEgcGFzdGEgbm8gY29tcHV0YWRvcicsXG4gICAgZHJvcEZpbGVzSGVyZTogJ1NvbHRlIG9zIGFycXVpdm9zIGFxdWknLFxuICAgIGRyb3BGb2xkZXJzSGVyZTogJ1NvbHRlIGFzIHBhc3RhcyBhcXVpJyxcbiAgICBpbnZhbGlkRHJvcEFyZWE6ICdPcyB7MH0gbsOjbyBmb3JhbSBpbnNlcmlkb3Mgbm8gbG9jYWwgY29ycmV0bycsXG4gICAgaW52YWxpZEZpbGVUeXBlOiAnRmFsaGEgYW8gY2FycmVnYXIgezB9IGFycXVpdm8gKHMpLCBwb2lzIG7Do28gw6kgbyB0aXBvIGRlIGFycXVpdm8gcGVybWl0aWRvJyxcbiAgICBpbnZhbGlkQW1vdW50OiAnRmFsaGEgYW8gY2FycmVnYXIgezB9IGFycXVpdm8ocyksIHBvaXMgZXhjZWRlKG0pIGEgcXVhbnRpZGFkZSBsaW1pdGUgZGUgYXJxdWl2b3MuJyxcbiAgICBpbnZhbGlkRm9ybWF0OiAnRmFsaGEgYW8gY2FycmVnYXIgezB9IGFycXVpdm8ocyksIHBvaXMgbsOjbyBjb3JyZXNwb25kZShtKSBhbyhzKSBmb3JtYXRvKHMpOiB7MX0uJyxcbiAgICBpbnZhbGlkU2l6ZTogJ0ZhbGhhIGFvIGNhcnJlZ2FyIHswfSBhcnF1aXZvKHMpLCBwb2lzIG7Do28gYXRlbmRlIGFvIHRhbWFuaG8gcGVybWl0aWRvOiB7MX0gYXTDqSB7Mn0uJyxcbiAgICBudW1iZXJPZkZpbGVzQWxsb3dlZDogJ1F1YW50aWRhZGUgbcOheGltYTogezB9IGFycXVpdm8ocyknLFxuICAgIGFsbG93ZWRGb3JtYXRzOiAnRm9ybWF0b3MgYWRvdGFkb3M6IHswfS4nLFxuICAgIGFsbG93ZWRGaWxlU2l6ZVJhbmdlOiAnTGltaXRlIGRlIHRhbWFuaG8gcG9yIGFycXVpdm86IGRlIHswfSBhdMOpIHsxfScsXG4gICAgbWF4RmlsZVNpemVBbGxvd2VkOiAnTGltaXRlIGRlIHRhbWFuaG8gcG9yIGFycXVpdm86IGF0w6kgezB9JyxcbiAgICBtaW5GaWxlU2l6ZUFsbG93ZWQ6ICdMaW1pdGUgZGUgdGFtYW5obyBwb3IgYXJxdWl2bzogbm8gbcOtbmltbyB7MH0nLFxuICAgIGVycm9yT2NjdXJyZWQ6ICdPY29ycmV1IHVtIGVycm8nLFxuICAgIHNlbnRXaXRoU3VjY2VzczogJ0VudmlhZG8gY29tIHN1Y2Vzc28nXG4gIH0sXG4gIHJ1OiA8UG9VcGxvYWRMaXRlcmFscz57XG4gICAgZmlsZXM6ICfRhNCw0LnQu9GLJyxcbiAgICBmb2xkZXJzOiAn0L/QsNC/0LrQuCDRgSDRhNCw0LnQu9Cw0LzQuCcsXG4gICAgc2VsZWN0RmlsZTogJ9CS0YvQsdC10YDQuNGC0LUg0YTQsNC50LsnLFxuICAgIHNlbGVjdEZpbGVzOiAn0JLRi9Cx0LXRgNC40YLQtSDRhNCw0LnQu9GLJyxcbiAgICBzZWxlY3RGb2xkZXI6ICfQktGL0LHQtdGA0LjRgtC1INC/0LDQv9C60YMg0YEg0YTQsNC50LvQsNC80LgnLFxuICAgIHN0YXJ0U2VuZGluZzogJ9Cd0LDRh9Cw0YLRjCDQt9Cw0LPRgNGD0LfQutGDJyxcbiAgICBkcmFnRmlsZXNIZXJlOiAn0J/QtdGA0LXRgtCw0YnQuNGC0LUg0YTQsNC50LvRiyDRgdGO0LTQsCcsXG4gICAgZHJhZ0ZvbGRlcnNIZXJlOiAn0J/QtdGA0LXRgtCw0YnQuNGC0LUg0YHRjtC00LAg0L/QsNC/0LrQuCcsXG4gICAgc2VsZWN0RmlsZXNPbkNvbXB1dGVyOiAn0LjQu9C4INCy0YvQsdC10YDQuNGC0LUg0YTQsNC50LvRiyDQvdCwINC60L7QvNC/0YzRjtGC0LXRgNC1JyxcbiAgICBzZWxlY3RGb2xkZXJPbkNvbXB1dGVyOiAn0LjQu9C4INCy0YvQsdC10YDQuNGC0LUg0L/QsNC/0LrRgyDQvdCwINCy0LDRiNC10Lwg0LrQvtC80L/RjNGO0YLQtdGA0LUnLFxuICAgIGRyb3BGaWxlc0hlcmU6ICfQntGB0YLQsNCy0YzRgtC1INGE0LDQudC70Ysg0LfQtNC10YHRjCcsXG4gICAgZHJvcEZvbGRlcnNIZXJlOiAn0J/QtdGA0LXRgtCw0YnQuNGC0LUg0YHRjtC00LAg0L/QsNC/0LrQuCcsXG4gICAgaW52YWxpZERyb3BBcmVhOiAnezB9INC90LUg0LHRi9C70Lgg0LLRgdGC0LDQstC70LXQvdGLINCyINC/0YDQsNCy0LjQu9GM0L3QvtC8INC80LXRgdGC0LUuJyxcbiAgICBpbnZhbGlkRmlsZVR5cGU6ICfQndC1INGD0LTQsNC70L7RgdGMINC30LDQs9GA0YPQt9C40YLRjCDRhNCw0LnQu9GLIHswfSwg0YLQsNC6INC60LDQuiDRjdGC0L4g0L3QtdCy0LXRgNC90YvQuSDRgtC40L8g0YTQsNC50LvQsCcsXG4gICAgaW52YWxpZEFtb3VudDogJ07Do28gZm9pIHBvc3PDrXZlbCBjYXJyZWdhciBvcyBhcnF1aXZvcyB7MH0gcG9ycXVlIGVsZXMgZXhjZWRlcmFtIG8gbGltaXRlIGRlIGFycXVpdm9zLicsXG4gICAgaW52YWxpZEZvcm1hdDogJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0LfQsNCz0YDRg9C30LjRgtGMINGE0LDQudC70YsgezB9LCDRgtCw0Log0LrQsNC6INC+0L3QuCDQvdC1INGB0L7QvtGC0LLQtdGC0YHRgtCy0YPRjtGCINGE0L7RgNC80LDRgtGDICjQsNC8KTogezF9LicsXG4gICAgaW52YWxpZFNpemU6ICfQndC1INGD0LTQsNC70L7RgdGMINC30LDQs9GA0YPQt9C40YLRjCDRhNCw0LnQu9GLIHswfSwg0L/QvtGB0LrQvtC70YzQutGDINC+0L3QuCDQvdC1INGB0L7QvtGC0LLQtdGC0YHRgtCy0YPRjtGCINGA0LDQt9GA0LXRiNC10L3QvdC+0LzRgyDRgNCw0LfQvNC10YDRgzog0L7RgiB7MX0g0LTQviB7Mn0uJyxcbiAgICBudW1iZXJPZkZpbGVzQWxsb3dlZDogJ9Cc0LDQutGB0LjQvNCw0LvRjNC90L7QtSDQutC+0LvQuNGH0LXRgdGC0LLQvjogezB9INGE0LDQudC70L7QsicsXG4gICAgYWxsb3dlZEZvcm1hdHM6ICfQpNC+0YDQvNCw0YLRiyDQv9GA0LjQvdGP0YLRizogezB9LicsXG4gICAgYWxsb3dlZEZpbGVTaXplUmFuZ2U6ICfQntCz0YDQsNC90LjRh9C10L3QuNC1INGA0LDQt9C80LXRgNCwINGE0LDQudC70LA6INC+0YIgezB9INC00L4gezF9JyxcbiAgICBtYXhGaWxlU2l6ZUFsbG93ZWQ6ICfQntCz0YDQsNC90LjRh9C10L3QuNC1INGA0LDQt9C80LXRgNCwINGE0LDQudC70LA6INC00L4gezB9JyxcbiAgICBtaW5GaWxlU2l6ZUFsbG93ZWQ6ICfQntCz0YDQsNC90LjRh9C10L3QuNC1INGA0LDQt9C80LXRgNCwINGE0LDQudC70LA6INC90LUg0LzQtdC90LXQtSB7MH0nLFxuICAgIGVycm9yT2NjdXJyZWQ6ICfQn9GA0L7QuNC30L7RiNC70LAg0L7RiNC40LHQutCwLicsXG4gICAgc2VudFdpdGhTdWNjZXNzOiAn0KPRgdC/0LXRiNC90L4g0L7RgtC/0YDQsNCy0LvQtdC90L4nXG4gIH1cbn07XG5cbmNvbnN0IHBvVXBsb2FkRm9ybUZpZWxkRGVmYXVsdCA9ICdmaWxlcyc7XG5cbmNvbnN0IHBvVXBsb2FkTWF4RmlsZVNpemUgPSAzMTQ1NzI4MDsgLy8gMzBNQlxuY29uc3QgcG9VcGxvYWRNaW5GaWxlU2l6ZSA9IDA7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogTyBjb21wb25lbnRlIGBwby11cGxvYWRgIHBlcm1pdGUgcXVlIG8gdXN1w6FyaW8gZW52aWUgYXJxdWl2byhzKSBhbyBzZXJ2aWRvciBlIGFjb21wYW5oZSBvIHByb2dyZXNzby5cbiAqIEVzdGUgY29tcG9uZW50ZSB0YW1iw6ltIHBvc3NpYmlsaXRhIGFsZ3VtYXMgY29uZmlndXJhw6fDtWVzIGNvbW86XG4gKiAg4oCTIEVudmlvIGRlIGRpcmV0w7NyaW9zLCBvbmRlIGVsZSBhY2Vzc2EgbyBkaXJldMOzcmlvIHNlbGVjaW9uYWRvIGFzc2ltIGNvbW8gc2V1cyBzdWItZGlyZXTDs3Jpb3M7XG4gKiAgLSBNw7psdGlwbGEgc2VsZcOnw6NvLCBvbmRlIG8gdXN1w6FyaW8gcG9kZSBlbnZpYXIgbWFpcyBkZSB1bSBhcnF1aXZvIGFvIHNlcnZpZG9yLlxuICogIC0gQXV0byBlbnZpbywgb25kZSBvIGFycXVpdm8gw6kgZW52aWFkbyBpbWVkaWF0YW1lbnRlIGFww7NzIGEgc2VsZcOnw6NvIGRvIHVzdcOhcmlvLCBuw6NvIG5lY2Vzc2l0YW5kbyBxdWUgbyB1c3XDoXJpb1xuICogY2xpcXVlIGVtIGVudmlhci5cbiAqICAtIFJlc3RyacOnw7VlcyBkZSBmb3JtYXRvcyBkZSBhcnF1aXZvIGUgdGFtYW5oby5cbiAqICAtIEZ1bsOnw6NvIGRlIHN1Y2Vzc28gcXVlIHNlcsOhIGRpc3BhcmFkYSBxdWFuZG8gb3MgYXJxdWl2b3MgZm9yZW0gZW52aWFkb3MgY29tIHN1Y2Vzc28uXG4gKiAgLSBGdW7Dp8OjbyBkZSBlcnJvIHF1ZSBzZXLDoSBkaXNwYXJhZGEgcXVhbmRvIGhvdXZlciBlcnJvIG5vIGVudmlvIGRvcyBhcnF1aXZvcy5cbiAqICAtIFBlcm1pdGUgaGFiaWxpdGFyIHVtYSDDoXJlYSBvbmRlIG9zIGFycXVpdm9zIHBvZGVtIHNlciBhcnJhc3RhZG9zLlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQb1VwbG9hZEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogQXBsaWNhIGZvY28gbm8gZWxlbWVudG8gYW8gc2VyIGluaWNpYWRvLlxuICAgKlxuICAgKiA+IENhc28gbWFpcyBkZSB1bSBlbGVtZW50byBzZWphIGNvbmZpZ3VyYWRvIGNvbSBlc3NhIHByb3ByaWVkYWRlLCBhcGVuYXMgbyDDumx0aW1vIGVsZW1lbnRvIGRlY2xhcmFkbyBjb20gZWxhIHRlcsOhIG8gZm9jby5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KCdwLWF1dG8tZm9jdXMnKSBASW5wdXRCb29sZWFuKCkgYXV0b0ZvY3VzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIGVtICpwaXhlbHMqIGEgYWx0dXJhIGRhIMOhcmVhIG9uZGUgcG9kZW0gc2VyIGFycmFzdGFkb3Mgb3MgYXJxdWl2b3MuIEEgYWx0dXJhIG3DrW5pbWEgYWNlaXRhIMOpIGAxNjBweGAuXG4gICAqXG4gICAqID4gRXN0YSBwcm9wcmllZGFkZSBmdW5jaW9uYSBzb21lbnRlIHNlIGEgcHJvcHJpZWRhZGUgYHAtZHJhZy1kcm9wYCBlc3RpdmVyIGhhYmlsaXRhZGEuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAzMjBgXG4gICAqL1xuICBASW5wdXQoJ3AtZHJhZy1kcm9wLWhlaWdodCcpIGRyYWdEcm9wSGVpZ2h0OiBudW1iZXI7XG5cbiAgLyoqIFLDs3R1bG8gZG8gY2FtcG8uICovXG4gIEBJbnB1dCgncC1sYWJlbCcpIGxhYmVsPzogc3RyaW5nO1xuXG4gIC8qKiBUZXh0byBkZSBhcG9pbyBwYXJhIG8gY2FtcG8uICovXG4gIEBJbnB1dCgncC1oZWxwJykgaGVscD86IHN0cmluZztcblxuICAvKiogVVJMIHF1ZSBkZXZlIHNlciBmZWl0YSBhIHJlcXVpc2nDp8OjbyBjb20gb3MgYXJxdWl2b3Mgc2VsZWNpb25hZG9zLiAqL1xuICBASW5wdXQoJ3AtdXJsJykgdXJsOiBzdHJpbmc7XG5cbiAgLyoqIERlZmluZSBvIHZhbG9yIGRvIGF0cmlidXRvIGBuYW1lYCBkbyBjb21wb25lbnRlLiAqL1xuICBASW5wdXQoJ25hbWUnKSBuYW1lOiBzdHJpbmcgPSAnZmlsZSc7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIHNlIG8gZW52aW8gZG8gYXJxdWl2byBzZXLDoSBhdXRvbcOhdGljbyBhbyBzZWxlY2lvbmFyIG8gbWVzbW8uXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCgncC1hdXRvLXVwbG9hZCcpIGF1dG9VcGxvYWQ/OiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIHNlIGEgaW5kaWNhw6fDo28gZGUgY2FtcG8gb3BjaW9uYWwgc2Vyw6EgZXhpYmlkYS5cbiAgICpcbiAgICogPiBOw6NvIHNlcsOhIGV4aWJpZGEgYSBpbmRpY2HDp8OjbyBzZTpcbiAgICogIC0gTyBjYW1wbyBjb250ZXIgYHAtcmVxdWlyZWRgO1xuICAgKiAgLSBOw6NvIHBvc3N1aXIgYHAtaGVscGAgZS9vdSBgcC1sYWJlbGAuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCgncC1vcHRpb25hbCcpIG9wdGlvbmFsOiBib29sZWFuO1xuXG4gIC8qKiBPYmpldG8gcXVlIGNvbnTDqW0gb3MgY2FiZcOnYWxob3MgcXVlIHNlcsOhIGVudmlhZG8gbmEgcmVxdWlzacOnw6NvIGRvcyBhcnF1dmlvcy4gKi9cbiAgQElucHV0KCdwLWhlYWRlcnMnKSBoZWFkZXJzOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+IH07XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRnVuw6fDo28gcXVlIHNlcsOhIGV4ZWN1dGFkYSBubyBtb21lbnRvIGRlIHJlYWxpemFyIG8gZW52aW8gZG8gYXJxdWl2byxcbiAgICogb25kZSBzZXLDoSBwb3Nzw612ZWwgYWRpY2lvbmFyIGluZm9ybWHDp8O1ZXMgYW8gcGFyw6JtZXRybyBxdWUgc2Vyw6EgZW52aWFkbyBuYSByZXF1aXNpw6fDo28uXG4gICAqIMOJIHBhc3NhZG8gcG9yIHBhcsOibWV0cm8gdW0gb2JqZXRvIGNvbSBvIGFycXVpdm8gZSBhIHByb3BpZWRhZGUgZGF0YSBuZXN0YSBwcm9wcmllZGFkZSBwb2RlIHNlciBpbmZvcm1hZG8gYWxndW0gZGFkbyxcbiAgICogcXVlIHNlcsOhIGVudmlhZG8gZW0gY29uanVudG8gY29tIG8gYXJxdWl2byBuYSByZXF1aXNpw6fDo28sIHBvciBleGVtcGxvOlxuICAgKlxuICAgKiBgYGBcbiAgICogICBldmVudC5kYXRhID0ge2lkOiAnaWQgZG8gdXN1YXJpbyd9O1xuICAgKiBgYGBcbiAgICovXG4gIEBPdXRwdXQoJ3AtdXBsb2FkJykgb25VcGxvYWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRXZlbnRvIHNlcsOhIGRpc3BhcmFkbyBxdWFuZG8gb2NvcnJlciBhbGd1bSBlcnJvIG5vIGVudmlvIGRvIGFycXVpdm8uXG4gICAqID4gUG9yIHBhcsOibWV0cm8gc2Vyw6EgcGFzc2FkbyBvIG9iamV0byBkbyByZXRvcm5vIHF1ZSDDqSBkbyB0aXBvIGBIdHRwRXJyb3JSZXNwb25zZWAuXG4gICAqL1xuICBAT3V0cHV0KCdwLWVycm9yJykgb25FcnJvcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBFdmVudG8gc2Vyw6EgZGlzcGFyYWRvIHF1YW5kbyBvIGVudmlvIGRvIGFycXVpdm8gZm9yIHJlYWxpemFkbyBjb20gc3VjZXNzby5cbiAgICogPiBQb3IgcGFyw6JtZXRybyBzZXLDoSBwYXNzYWRvIG8gb2JqZXRvIGRvIHJldG9ybm8gcXVlIMOpIGRvIHRpcG8gYEh0dHBSZXNwb25zZWAuXG4gICAqL1xuICBAT3V0cHV0KCdwLXN1Y2Nlc3MnKSBvblN1Y2Nlc3M6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRnVuw6fDo28gcGFyYSBhdHVhbGl6YXIgbyBuZ01vZGVsIGRvIGNvbXBvbmVudGUsIG5lY2Vzc8OhcmlvIHF1YW5kbyBuw6NvIGZvciB1dGlsaXphZG8gZGVudHJvIGRhICp0YWcqIGBmb3JtYC5cbiAgICovXG4gIEBPdXRwdXQoJ25nTW9kZWxDaGFuZ2UnKSBuZ01vZGVsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGFsbG93ZWRFeHRlbnNpb25zOiBzdHJpbmc7XG4gIGN1cnJlbnRGaWxlczogQXJyYXk8UG9VcGxvYWRGaWxlPjtcblxuICBjYW5IYW5kbGVEaXJlY3Rvcnk6IGJvb2xlYW47XG4gIG9uTW9kZWxDaGFuZ2U6IGFueTtcblxuICBwcm90ZWN0ZWQgZXh0ZW5zaW9uTm90QWxsb3dlZCA9IDA7XG4gIHByb3RlY3RlZCBxdWFudGl0eU5vdEFsbG93ZWQgPSAwO1xuICBwcm90ZWN0ZWQgc2l6ZU5vdEFsbG93ZWQgPSAwO1xuICBwcm90ZWN0ZWQgb25Nb2RlbFRvdWNoZWQ6IGFueSA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfZGlyZWN0b3J5PzogYm9vbGVhbjtcbiAgcHJpdmF0ZSBfZGlzYWJsZWQ/OiBib29sZWFuO1xuICBwcml2YXRlIF9kcmFnRHJvcD86IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfZmlsZVJlc3RyaWN0aW9ucz86IFBvVXBsb2FkRmlsZVJlc3RyaWN0aW9ucztcbiAgcHJpdmF0ZSBfZm9ybUZpZWxkPzogc3RyaW5nO1xuICBwcml2YXRlIF9oaWRlUmVzdHJpY3Rpb25zSW5mbz86IGJvb2xlYW47XG4gIHByaXZhdGUgX2hpZGVTZWxlY3RCdXR0b24/OiBib29sZWFuO1xuICBwcml2YXRlIF9oaWRlU2VuZEJ1dHRvbj86IGJvb2xlYW47XG4gIHByaXZhdGUgX2lzTXVsdGlwbGU/OiBib29sZWFuO1xuICBwcml2YXRlIF9saXRlcmFscz86IGFueTtcbiAgcHJpdmF0ZSBfcmVxdWlyZWQ/OiBib29sZWFuO1xuICBwcml2YXRlIGxhbmd1YWdlOiBzdHJpbmc7XG4gIHByaXZhdGUgdmFsaWRhdG9yQ2hhbmdlOiBhbnk7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogUGVybWl0ZSBhIHNlbGXDp8OjbyBkZSBkaXJldMOzcmlvcyBjb250ZW5kbyB1bSBvdSBtYWlzIGFycXVpdm9zIHBhcmEgZW52aW8uXG4gICAqXG4gICAqID4gQSBoYWJpbGl0YcOnw6NvIGRlc3RhIHByb3ByaWVkYWRlIHNlIHJlc3RyaW5nZSBhcGVuYXMgw6Agc2VsZcOnw6NvIGRlIGRpcmV0w7NyaW9zLlxuICAgKlxuICAgKiA+IERlZmluacOnw6NvIG7Do28gc3Vwb3J0YWRhIHBlbG8gYnJvd3NlciAqKkludGVybmV0IEV4cGxvcmVyKiosIHRvZGF2aWEgc2Vyw6EgcG9zc8OtdmVsIGEgc2VsZcOnw6NvIGRlIGFycXVpdm9zIHBhZHLDo28uXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCgncC1kaXJlY3RvcnknKSBzZXQgZGlyZWN0b3J5KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlyZWN0b3J5ID0gY29udmVydFRvQm9vbGVhbih2YWx1ZSk7XG5cbiAgICB0aGlzLmNhbkhhbmRsZURpcmVjdG9yeSA9IHRoaXMuX2RpcmVjdG9yeSAmJiAhaXNJRSgpICYmICFpc01vYmlsZSgpO1xuICAgIHRoaXMuc2V0RGlyZWN0b3J5QXR0cmlidXRlKHRoaXMuY2FuSGFuZGxlRGlyZWN0b3J5KTtcbiAgfVxuXG4gIGdldCBkaXJlY3RvcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RpcmVjdG9yeTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEV4aWJlIGEgw6FyZWEgb25kZSDDqSBwb3Nzw612ZWwgYXJyYXN0YXIgZSBzZWxlY2lvbmFyIG9zIGFycXVpdm9zLiBRdWFuZG8gZXN0aXZlciBkZWZpbmlkYSwgb21pdGUgbyBib3TDo28gcGFyYSBzZWxlw6fDo28gZGUgYXJxdWl2b3NcbiAgICogYXV0b21hdGljYW1lbnRlLlxuICAgKlxuICAgKiA+IFJlY29tZW5kYW1vcyB1dGlsaXphciBhcGVuYXMgdW0gYHBvLXVwbG9hZGAgY29tIGVzdGEgZnVuY2lvbmFsaWRhZGUgcG9yIHRlbGEuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCgncC1kcmFnLWRyb3AnKSBzZXQgZHJhZ0Ryb3AodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kcmFnRHJvcCA9IGNvbnZlcnRUb0Jvb2xlYW4odmFsdWUpO1xuICB9XG5cbiAgZ2V0IGRyYWdEcm9wKCkge1xuICAgIHJldHVybiB0aGlzLl9kcmFnRHJvcDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIE9jdWx0YSB2aXN1YWxtZW50ZSBhcyBpbmZvcm1hw6fDtWVzIGRlIHJlc3RyacOnw7VlcyBwYXJhIG8gdXBsb2FkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3AtaGlkZS1yZXN0cmljdGlvbnMtaW5mbycpIHNldCBoaWRlUmVzdHJpY3Rpb25zSW5mbyh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2hpZGVSZXN0cmljdGlvbnNJbmZvID0gY29udmVydFRvQm9vbGVhbih2YWx1ZSk7XG4gIH1cblxuICBnZXQgaGlkZVJlc3RyaWN0aW9uc0luZm8oKSB7XG4gICAgcmV0dXJuIHRoaXMuX2hpZGVSZXN0cmljdGlvbnNJbmZvO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogT21pdGUgbyBib3TDo28gZGUgc2VsZcOnw6NvIGRlIGFycXVpdm9zLlxuICAgKlxuICAgKiA+IENhc28gbyB2YWxvciBkZWZpbmlkbyBzZWphIGB0cnVlYCwgY2FiZXLDoSBhbyBkZXNlbnZvbHZlZG9yIGEgcmVzcG9uc2FiaWxpZGFkZVxuICAgKiBwZWxhIGNoYW1hZGEgZG8gbcOpdG9kbyBgc2VsZWN0RmlsZXMoKWAgcGFyYSBzZWxlw6fDo28gZGUgYXJxdWl2b3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCgncC1oaWRlLXNlbGVjdC1idXR0b24nKSBzZXQgaGlkZVNlbGVjdEJ1dHRvbih2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2hpZGVTZWxlY3RCdXR0b24gPSBjb252ZXJ0VG9Cb29sZWFuKHZhbHVlKTtcbiAgfVxuICBnZXQgaGlkZVNlbGVjdEJ1dHRvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faGlkZVNlbGVjdEJ1dHRvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIE9taXRlIG8gYm90w6NvIGRlIGVudmlvIGRlIGFycXVpdm9zLlxuICAgKlxuICAgKiA+IENhc28gbyB2YWxvciBkZWZpbmlkbyBzZWphIGB0cnVlYCwgY2FiZXLDoSBhbyBkZXNlbnZvbHZlZG9yIGEgcmVzcG9uc2FiaWxpZGFkZVxuICAgKiBwZWxhIGNoYW1hZGEgZG8gbcOpdG9kbyBgc2VuZEZpbGVzKClgIHBhcmEgZW52aW8gZG8ocykgYXJxdWl2byhzKSBzZWxlY2lvbmFkbyhzKS5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KCdwLWhpZGUtc2VuZC1idXR0b24nKSBzZXQgaGlkZVNlbmRCdXR0b24odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9oaWRlU2VuZEJ1dHRvbiA9IGNvbnZlcnRUb0Jvb2xlYW4odmFsdWUpO1xuICB9XG4gIGdldCBoaWRlU2VuZEJ1dHRvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faGlkZVNlbmRCdXR0b247XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBPYmpldG8gY29tIGFzIGxpdGVyYWlzIHVzYWRhcyBubyBgcG8tdXBsb2FkYC5cbiAgICpcbiAgICogRXhpc3RlbSBkdWFzIG1hbmVpcmFzIGRlIGN1c3RvbWl6YXIgbyBjb21wb25lbnRlOlxuICAgKlxuICAgKiAtIHBhc3NhbmRvIHVtIG9iamV0byBpbXBsZW1lbnRhbmRvIGEgaW50ZXJmYWNlIGBQb1VwbG9hZExpdGVyYWxzYCBjb20gdG9kYXMgYXMgbGl0ZXJhaXMgZGlzcG9uw612ZWlzO1xuICAgKiAtIHBhc3NhbmRvIGFwZW5hcyBhcyBsaXRlcmFpcyBxdWUgZGVzZWphIGN1c3RvbWl6YXI6XG4gICAqIGBgYFxuICAgKiAgY29uc3QgY3VzdG9tTGl0ZXJhbHM6IFBvVXBsb2FkTGl0ZXJhbHMgPSB7XG4gICAqICAgIGZvbGRlcnM6ICdQYXN0YXMnLFxuICAgKiAgICBzZWxlY3RGaWxlOiAnQnVzY2FyIGFycXVpdm8nLFxuICAgKiAgICBzdGFydFNlbmRpbmc6ICdFbnZpYXInXG4gICAqICB9O1xuICAgKiBgYGBcbiAgICpcbiAgICogRSBwYXJhIGNhcnJlZ2FyIGFzIGxpdGVyYWlzIGN1c3RvbWl6YWRhcywgYmFzdGEgYXBlbmFzIHBhc3NhciBvIG9iamV0byBwYXJhIG8gY29tcG9uZW50ZTpcbiAgICpcbiAgICogYGBgXG4gICAqIDxwby11cGxvYWRcbiAgICogICBbcC1saXRlcmFsc109XCJjdXN0b21MaXRlcmFsc1wiPlxuICAgKiA8L3BvLXVwbG9hZD5cbiAgICogYGBgXG4gICAqXG4gICAqID4gTyBvYmpldG8gcGFkcsOjbyBkZSBsaXRlcmFpcyBzZXLDoSB0cmFkdXppZG8gZGUgYWNvcmRvIGNvbSBvIGlkaW9tYSBkbyAqYnJvd3NlciogKHB0LCBlbiwgZXMsIHJ1KS5cbiAgICovXG4gIEBJbnB1dCgncC1saXRlcmFscycpIHNldCBsaXRlcmFscyh2YWx1ZTogUG9VcGxvYWRMaXRlcmFscykge1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE9iamVjdCAmJiAhKHZhbHVlIGluc3RhbmNlb2YgQXJyYXkpKSB7XG4gICAgICB0aGlzLl9saXRlcmFscyA9IHtcbiAgICAgICAgLi4ucG9VcGxvYWRMaXRlcmFsc0RlZmF1bHRbcG9Mb2NhbGVEZWZhdWx0XSxcbiAgICAgICAgLi4ucG9VcGxvYWRMaXRlcmFsc0RlZmF1bHRbdGhpcy5sYW5ndWFnZV0sXG4gICAgICAgIC4uLnZhbHVlXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9saXRlcmFscyA9IHBvVXBsb2FkTGl0ZXJhbHNEZWZhdWx0W3RoaXMubGFuZ3VhZ2VdO1xuICAgIH1cbiAgfVxuICBnZXQgbGl0ZXJhbHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2xpdGVyYWxzIHx8IHBvVXBsb2FkTGl0ZXJhbHNEZWZhdWx0W3RoaXMubGFuZ3VhZ2VdO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogT2JqZXRvIHF1ZSBzZWd1ZSBhIGRlZmluacOnw6NvIGRhIGludGVyZmFjZSBgUG9VcGxvYWRGaWxlUmVzdHJpY3Rpb25zYCxcbiAgICogcXVlIHBvc3NpYmlsaXRhIGRlZmluaXIgdGFtYW5obyBtw6F4aW1vL23DrW5pbW8gZSBleHRlbnPDo28gZG9zIGFycXVpdm9zIHBlcm1pdGlkb3MuXG4gICAqL1xuICBASW5wdXQoJ3AtcmVzdHJpY3Rpb25zJykgc2V0IGZpbGVSZXN0cmljdGlvbnMocmVzdHJpY3Rpb25zOiBQb1VwbG9hZEZpbGVSZXN0cmljdGlvbnMpIHtcbiAgICB0aGlzLl9maWxlUmVzdHJpY3Rpb25zID0gdGhpcy5pbml0UmVzdHJpY3Rpb25zKHJlc3RyaWN0aW9ucyk7XG5cbiAgICB0aGlzLnNldEFsbG93ZWRFeHRlbnNpb25zKHJlc3RyaWN0aW9ucyk7XG4gIH1cblxuICBnZXQgZmlsZVJlc3RyaWN0aW9ucygpOiBQb1VwbG9hZEZpbGVSZXN0cmljdGlvbnMge1xuICAgIHJldHVybiB0aGlzLl9maWxlUmVzdHJpY3Rpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogTm9tZSBkbyBjYW1wbyBkZSBmb3JtdWzDoXJpbyBxdWUgc2Vyw6EgZW52aWFkbyBwYXJhIG8gc2VydmnDp28gaW5mb3JtYWRvIG5hIHByb3ByaWVkYWRlIGBwLXVybGAuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmaWxlc2BcbiAgICovXG4gIEBJbnB1dCgncC1mb3JtLWZpZWxkJykgc2V0IGZvcm1GaWVsZCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fZm9ybUZpZWxkID0gdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlIDogcG9VcGxvYWRGb3JtRmllbGREZWZhdWx0O1xuXG4gICAgdGhpcy5nZXRVcGxvYWRTZXJ2aWNlKCkuZm9ybUZpZWxkID0gdGhpcy5mb3JtRmllbGQ7XG4gIH1cblxuICBnZXQgZm9ybUZpZWxkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1GaWVsZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEluZGljYSBxdWUgbyBjYW1wbyBzZXLDoSBkZXNhYmlsaXRhZG8uXG4gICAqL1xuICBASW5wdXQoJ3AtZGlzYWJsZWQnKSBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvbnZlcnRUb0Jvb2xlYW4odmFsdWUpO1xuXG4gICAgdGhpcy52YWxpZGF0ZU1vZGVsKHRoaXMuY3VycmVudEZpbGVzKTtcbiAgfVxuXG4gIGdldCBkaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgc2UgcG9kZSBzZWxlY2lvbmFyIG1haXMgZGUgdW0gYXJxdWl2by5cbiAgICpcbiAgICogPiBTZSB1dGlsaXphZGEgYSBgcC1kaXJlY3RvcnlgLCBoYWJpbGl0YS1zZSBhdXRvbWF0aWNhbWVudGUgZXN0YSBwcm9wcmllZGFkZS5cbiAgICovXG4gIEBJbnB1dCgncC1tdWx0aXBsZScpIHNldCBpc011bHRpcGxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5faXNNdWx0aXBsZSA9IGNvbnZlcnRUb0Jvb2xlYW4odmFsdWUpO1xuICB9XG5cbiAgZ2V0IGlzTXVsdGlwbGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2FuSGFuZGxlRGlyZWN0b3J5ID8gdHJ1ZSA6IHRoaXMuX2lzTXVsdGlwbGU7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBJbmRpY2EgcXVlIG8gY2FtcG8gc2Vyw6Egb2JyaWdhdMOzcmlvLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3AtcmVxdWlyZWQnKSBzZXQgcmVxdWlyZWQocmVxdWlyZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9yZXF1aXJlZCA9IGNvbnZlcnRUb0Jvb2xlYW4ocmVxdWlyZWQpO1xuXG4gICAgdGhpcy52YWxpZGF0ZU1vZGVsKHRoaXMuY3VycmVudEZpbGVzKTtcbiAgfVxuXG4gIGdldCByZXF1aXJlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgdXBsb2FkU2VydmljZTogUG9VcGxvYWRTZXJ2aWNlLCBsYW5ndWFnZVNlcnZpY2U6IFBvTGFuZ3VhZ2VTZXJ2aWNlKSB7XG4gICAgdGhpcy5sYW5ndWFnZSA9IGxhbmd1YWdlU2VydmljZS5nZXRTaG9ydExhbmd1YWdlKCk7XG4gIH1cblxuICAvLyBGdW7Dp8OjbyBpbXBsZW1lbnRhZGEgZG8gQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgLy8gVXNhZGEgcGFyYSBpbnRlcmNlcHRhciBvcyBlc3RhZG9zIGRlIGhhYmlsaXRhZG8gdmlhIGZvcm1zIGFwaVxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Nb2RlbENoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Nb2RlbFRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZm46ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLnZhbGlkYXRvckNoYW5nZSA9IGZuO1xuICB9XG5cbiAgdmFsaWRhdGUoYWJzdHJhY3RDb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgICBpZiAocmVxdWlyZWRGYWlsZWQodGhpcy5yZXF1aXJlZCwgdGhpcy5kaXNhYmxlZCwgYWJzdHJhY3RDb250cm9sLnZhbHVlKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcmVxdWlyZWQ6IHtcbiAgICAgICAgICB2YWxpZDogZmFsc2VcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICB3cml0ZVZhbHVlKG1vZGVsOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAobW9kZWwpIHtcbiAgICAgIGlmICghaXNFcXVhbHModGhpcy5jdXJyZW50RmlsZXMsIG1vZGVsKSkge1xuICAgICAgICB0aGlzLmN1cnJlbnRGaWxlcyA9IHRoaXMucGFyc2VGaWxlcyhtb2RlbCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY3VycmVudEZpbGVzID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBpc0V4Y2VlZGVkRmlsZUxpbWl0KGN1cnJlbnRGaWxlc0xlbmd0aDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuaXNNdWx0aXBsZSAmJlxuICAgICAgdGhpcy5maWxlUmVzdHJpY3Rpb25zICYmXG4gICAgICB0aGlzLmZpbGVSZXN0cmljdGlvbnMubWF4RmlsZXMgPiAwICYmXG4gICAgICB0aGlzLmZpbGVSZXN0cmljdGlvbnMubWF4RmlsZXMgPD0gY3VycmVudEZpbGVzTGVuZ3RoXG4gICAgKTtcbiAgfVxuXG4gIC8vIEZheiBvIHBhcnNlIGRvcyBhcnF1aXZvcyBzZWxlY2lvbmFkb3MgcGFyYSBhcnF1aXZvcyBkbyBmb3JtYXRvIFBvVXBsb2FkRmlsZSBlIGF0dWFsaXphIG9zIGFycXVpdm9zIGNvcnJlbnRlcy5cbiAgcHJvdGVjdGVkIHBhcnNlRmlsZXMoZmlsZXM6IEFycmF5PEZpbGU+KTogQXJyYXk8UG9VcGxvYWRGaWxlPiB7XG4gICAgbGV0IHBvVXBsb2FkRmlsZXM6IEFycmF5PFBvVXBsb2FkRmlsZT4gPSB0aGlzLmN1cnJlbnRGaWxlcyB8fCBbXTtcbiAgICBjb25zdCBmaWxlc0xlbmd0aCA9IGZpbGVzLmxlbmd0aDtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZXNMZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHRoaXMuaXNFeGNlZWRlZEZpbGVMaW1pdChwb1VwbG9hZEZpbGVzLmxlbmd0aCkpIHtcbiAgICAgICAgdGhpcy5xdWFudGl0eU5vdEFsbG93ZWQgPSBmaWxlc0xlbmd0aCAtIHRoaXMuZmlsZVJlc3RyaWN0aW9ucy5tYXhGaWxlcztcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjb25zdCBmaWxlID0gbmV3IFBvVXBsb2FkRmlsZShmaWxlc1tpXSk7XG5cbiAgICAgIGlmICh0aGlzLmNoZWNrUmVzdHJpY3Rpb25zKGZpbGUpKSB7XG4gICAgICAgIHBvVXBsb2FkRmlsZXMgPSB0aGlzLmluc2VydEZpbGVJbkZpbGVzKGZpbGUsIHBvVXBsb2FkRmlsZXMpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNlbmRGZWVkYmFjaygpO1xuICAgIHJldHVybiBwb1VwbG9hZEZpbGVzO1xuICB9XG5cbiAgcHJvdGVjdGVkIHZhbGlkYXRlTW9kZWwobW9kZWw6IGFueSkge1xuICAgIGlmICh0aGlzLnZhbGlkYXRvckNoYW5nZSkge1xuICAgICAgdGhpcy52YWxpZGF0b3JDaGFuZ2UobW9kZWwpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFZlcmlmaWNhIHNlIG8gYXJxdWl2byBlc3TDoSBkZSBhY29yZG8gY29tIGFzIHJlc3RyacOnw7Vlcy5cbiAgcHJpdmF0ZSBjaGVja1Jlc3RyaWN0aW9ucyhmaWxlOiBQb1VwbG9hZEZpbGUpOiBib29sZWFuIHtcbiAgICBjb25zdCByZXN0cmljdGlvbnMgPSB0aGlzLmZpbGVSZXN0cmljdGlvbnM7XG5cbiAgICBpZiAocmVzdHJpY3Rpb25zKSB7XG4gICAgICBjb25zdCBhbGxvd2VkRXh0ZW5zaW9ucyA9IHJlc3RyaWN0aW9ucy5hbGxvd2VkRXh0ZW5zaW9ucztcbiAgICAgIGNvbnN0IG1pbkZpbGVTaXplID0gcmVzdHJpY3Rpb25zLm1pbkZpbGVTaXplO1xuICAgICAgY29uc3QgbWF4RmlsZVNpemUgPSByZXN0cmljdGlvbnMubWF4RmlsZVNpemU7XG5cbiAgICAgIGNvbnN0IGlzQWNjZXB0ID0gYWxsb3dlZEV4dGVuc2lvbnMgPyB0aGlzLmlzQWxsb3dlZEV4dGVuc2lvbihmaWxlLmV4dGVuc2lvbiwgYWxsb3dlZEV4dGVuc2lvbnMpIDogdHJ1ZTtcbiAgICAgIGNvbnN0IGlzQWNjZXB0U2l6ZSA9IGZpbGUuc2l6ZSA+PSBtaW5GaWxlU2l6ZSAmJiBmaWxlLnNpemUgPD0gbWF4RmlsZVNpemU7XG5cbiAgICAgIGlmICghaXNBY2NlcHRTaXplKSB7XG4gICAgICAgIHRoaXMuc2l6ZU5vdEFsbG93ZWQgPSB0aGlzLnNpemVOb3RBbGxvd2VkICsgMTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGlzQWNjZXB0ICYmIGlzQWNjZXB0U2l6ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZXhpc3RzRmlsZVNhbWVOYW1lKGZpbGU6IFBvVXBsb2FkRmlsZSwgZmlsZXM6IEFycmF5PFBvVXBsb2FkRmlsZT4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmlsZXMuc29tZShjdXJyZW50RmlsZSA9PiBmaWxlLm5hbWUgPT09IGN1cnJlbnRGaWxlLm5hbWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRVcGxvYWRTZXJ2aWNlKCk6IFBvVXBsb2FkU2VydmljZSB7XG4gICAgcmV0dXJuIHRoaXMudXBsb2FkU2VydmljZTtcbiAgfVxuXG4gIHByaXZhdGUgaW5zZXJ0RmlsZUluRmlsZXMobmV3RmlsZTogUG9VcGxvYWRGaWxlLCBmaWxlczogQXJyYXk8UG9VcGxvYWRGaWxlPikge1xuICAgIGlmICh0aGlzLmV4aXN0c0ZpbGVTYW1lTmFtZShuZXdGaWxlLCBmaWxlcykpIHtcbiAgICAgIHJldHVybiB0aGlzLnVwZGF0ZUV4aXN0c0ZpbGVJbkZpbGVzKG5ld0ZpbGUsIGZpbGVzKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc011bHRpcGxlKSB7XG4gICAgICBmaWxlcy5wdXNoKG5ld0ZpbGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmaWxlcy5zcGxpY2UoMCwgZmlsZXMubGVuZ3RoLCBuZXdGaWxlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmlsZXM7XG4gIH1cblxuICBwcml2YXRlIGlzQWxsb3dlZEV4dGVuc2lvbihleHRlbnNpb246IHN0cmluZywgYWxsb3dlZEV4dGVuc2lvbnM6IEFycmF5PHN0cmluZz4gPSBbXSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGlzQWxsb3dlZCA9IGFsbG93ZWRFeHRlbnNpb25zLnNvbWUoZXh0ID0+IGV4dC50b0xvd2VyQ2FzZSgpID09PSBleHRlbnNpb24pO1xuICAgIGlmICghaXNBbGxvd2VkKSB7XG4gICAgICB0aGlzLmV4dGVuc2lvbk5vdEFsbG93ZWQgPSB0aGlzLmV4dGVuc2lvbk5vdEFsbG93ZWQgKyAxO1xuICAgIH1cbiAgICByZXR1cm4gaXNBbGxvd2VkO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRBbGxvd2VkRXh0ZW5zaW9ucyhyZXN0cmljdGlvbnM6IFBvVXBsb2FkRmlsZVJlc3RyaWN0aW9ucyA9IHt9KSB7XG4gICAgY29uc3QgX2FsbG93ZWRFeHRlbnNpb25zID0gcmVzdHJpY3Rpb25zLmFsbG93ZWRFeHRlbnNpb25zIHx8IFtdO1xuXG4gICAgdGhpcy5hbGxvd2VkRXh0ZW5zaW9ucyA9IF9hbGxvd2VkRXh0ZW5zaW9ucy5qb2luKCcsJyk7XG4gIH1cblxuICBwcml2YXRlIGluaXRSZXN0cmljdGlvbnMocmVzdHJpY3Rpb25zOiBQb1VwbG9hZEZpbGVSZXN0cmljdGlvbnMpOiBQb1VwbG9hZEZpbGVSZXN0cmljdGlvbnMge1xuICAgIGlmICghcmVzdHJpY3Rpb25zKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbWluRmlsZVNpemUgPSByZXN0cmljdGlvbnMubWluRmlsZVNpemUgfHwgcG9VcGxvYWRNaW5GaWxlU2l6ZTtcbiAgICBjb25zdCBtYXhGaWxlU2l6ZSA9IHJlc3RyaWN0aW9ucy5tYXhGaWxlU2l6ZSB8fCBwb1VwbG9hZE1heEZpbGVTaXplO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnJlc3RyaWN0aW9ucyxcbiAgICAgIG1heEZpbGVTaXplOiBtYXhGaWxlU2l6ZSxcbiAgICAgIG1pbkZpbGVTaXplOiBtaW5GaWxlU2l6ZVxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUV4aXN0c0ZpbGVJbkZpbGVzKG5ld0ZpbGU6IFBvVXBsb2FkRmlsZSwgZmlsZXM6IEFycmF5PFBvVXBsb2FkRmlsZT4pIHtcbiAgICBjb25zdCBmaWxlSW5kZXggPSBmaWxlcy5maW5kSW5kZXgoXG4gICAgICBjdXJyZW50RmlsZSA9PiBuZXdGaWxlLm5hbWUgPT09IGN1cnJlbnRGaWxlLm5hbWUgJiYgY3VycmVudEZpbGUuc3RhdHVzICE9PSBQb1VwbG9hZFN0YXR1cy5VcGxvYWRlZFxuICAgICk7XG5cbiAgICBpZiAoZmlsZUluZGV4ICE9PSAtMSkge1xuICAgICAgZmlsZXMuc3BsaWNlKGZpbGVJbmRleCwgMSwgbmV3RmlsZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbGVzO1xuICB9XG5cbiAgYWJzdHJhY3Qgc2VuZEZlZWRiYWNrKCk6IHZvaWQ7XG5cbiAgYWJzdHJhY3Qgc2V0RGlyZWN0b3J5QXR0cmlidXRlKHZhbHVlOiBib29sZWFuKTtcbn1cbiJdfQ==
581
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tdXBsb2FkLWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLWZpZWxkL3BvLXVwbG9hZC9wby11cGxvYWQtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDdEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRXJGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHO0lBQ3JDLEVBQUUsRUFBb0I7UUFDcEIsS0FBSyxFQUFFLE9BQU87UUFDZCxPQUFPLEVBQUUsU0FBUztRQUNsQixVQUFVLEVBQUUsYUFBYTtRQUN6QixXQUFXLEVBQUUsY0FBYztRQUMzQixZQUFZLEVBQUUsZUFBZTtRQUM3QixZQUFZLEVBQUUsZUFBZTtRQUM3QixhQUFhLEVBQUUsaUJBQWlCO1FBQ2hDLGVBQWUsRUFBRSxtQkFBbUI7UUFDcEMscUJBQXFCLEVBQUUsa0NBQWtDO1FBQ3pE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LFFBQVEsQ0FDbkcsQ0FBQztRQUVGLElBQUksU0FBUyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3BCLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUNyQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7O1lBNWhCRixTQUFTOzs7WUFwSUQsZUFBZTtZQUdmLGlCQUFpQjs7O3dCQThJdkIsS0FBSyxTQUFDLGNBQWM7NkJBYXBCLEtBQUssU0FBQyxvQkFBb0I7b0JBRzFCLEtBQUssU0FBQyxTQUFTO21CQUdmLEtBQUssU0FBQyxRQUFRO2tCQUdkLEtBQUssU0FBQyxPQUFPO21CQUdiLEtBQUssU0FBQyxNQUFNO3lCQVdaLEtBQUssU0FBQyxlQUFlO3VCQWVyQixLQUFLLFNBQUMsWUFBWTtzQkFHbEIsS0FBSyxTQUFDLFdBQVc7dUJBZ0JqQixNQUFNLFNBQUMsVUFBVTtzQkFVakIsTUFBTSxTQUFDLFNBQVM7d0JBVWhCLE1BQU0sU0FBQyxXQUFXOzRCQWlCbEIsTUFBTSxTQUFDLGVBQWU7d0JBd0N0QixLQUFLLFNBQUMsYUFBYTt1QkF1Qm5CLEtBQUssU0FBQyxhQUFhO21DQWlCbkIsS0FBSyxTQUFDLDBCQUEwQjsrQkFvQmhDLEtBQUssU0FBQyxzQkFBc0I7NkJBbUI1QixLQUFLLFNBQUMsb0JBQW9CO3VCQW9DMUIsS0FBSyxTQUFDLFlBQVk7K0JBdUJsQixLQUFLLFNBQUMsZ0JBQWdCO3dCQW1CdEIsS0FBSyxTQUFDLGNBQWM7dUJBaUJwQixLQUFLLFNBQUMsWUFBWTt5QkFtQmxCLEtBQUssU0FBQyxZQUFZO3VCQWlCbEIsS0FBSyxTQUFDLFlBQVk7O0FBcldvQjtJQUFmLFlBQVksRUFBRTt3REFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBjb252ZXJ0VG9Cb29sZWFuLCBpc0VxdWFscywgaXNJRSwgaXNNb2JpbGUgfSBmcm9tICcuLi8uLi8uLi91dGlscy91dGlsJztcbmltcG9ydCB7IHJlcXVpcmVkRmFpbGVkIH0gZnJvbSAnLi4vdmFsaWRhdG9ycyc7XG5cbmltcG9ydCB7IFBvVXBsb2FkRmlsZSB9IGZyb20gJy4vcG8tdXBsb2FkLWZpbGUnO1xuaW1wb3J0IHsgUG9VcGxvYWRGaWxlUmVzdHJpY3Rpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLXVwbG9hZC1maWxlLXJlc3RyaWN0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1VwbG9hZExpdGVyYWxzIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLXVwbG9hZC1saXRlcmFscy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9VcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi9wby11cGxvYWQuc2VydmljZSc7XG5pbXBvcnQgeyBQb1VwbG9hZFN0YXR1cyB9IGZyb20gJy4vcG8tdXBsb2FkLXN0YXR1cy5lbnVtJztcbmltcG9ydCB7IElucHV0Qm9vbGVhbiB9IGZyb20gJy4uLy4uLy4uL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgUG9MYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wby1sYW5ndWFnZS9wby1sYW5ndWFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IHBvTG9jYWxlRGVmYXVsdCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3BvLWxhbmd1YWdlL3BvLWxhbmd1YWdlLmNvbnN0YW50JztcblxuZXhwb3J0IGNvbnN0IHBvVXBsb2FkTGl0ZXJhbHNEZWZhdWx0ID0ge1xuICBlbjogPFBvVXBsb2FkTGl0ZXJhbHM+e1xuICAgIGZpbGVzOiAnZmlsZXMnLFxuICAgIGZvbGRlcnM6ICdmb2xkZXJzJyxcbiAgICBzZWxlY3RGaWxlOiAnU2VsZWN0IGZpbGUnLFxuICAgIHNlbGVjdEZpbGVzOiAnU2VsZWN0IGZpbGVzJyxcbiAgICBzZWxlY3RGb2xkZXI6ICdTZWxlY3QgZm9sZGVyJyxcbiAgICBzdGFydFNlbmRpbmc6ICdTdGFydCBzZW5kaW5nJyxcbiAgICBkcmFnRmlsZXNIZXJlOiAnRHJhZyBmaWxlcyBoZXJlJyxcbiAgICBkcmFnRm9sZGVyc0hlcmU6ICdEcmFnIGZvbGRlcnMgaGVyZScsXG4gICAgc2VsZWN0RmlsZXNPbkNvbXB1dGVyOiAnb3Igc2VsZWN0IGZpbGVzIG9uIHlvdXIgY29tcHV0ZXInLFxuICAgIHNlbGVjdEZvbGRlck9uQ29tcHV0ZXI6ICdvciBzZWxlY3QgZm9sZGVyIG9uIHlvdXIgY29tcHV0ZXInLFxuICAgIGRyb3BGaWxlc0hlcmU6ICdEcm9wIGZpbGVzIGhlcmUnLFxuICAgIGRyb3BGb2xkZXJzSGVyZTogJ0Ryb3AgZm9sZGVycyBoZXJlJyxcbiAgICBpbnZhbGlkRHJvcEFyZWE6ICd7MH0gd2VyZSBub3QgZHJvcHBlZCBpbiB0aGUgY29ycmVjdCBhcmVhJyxcbiAgICBpbnZhbGlkRmlsZVR5cGU6ICdGYWlsZWQgdG8gbG9hZCB7MH0gZmlsZShzKSBhcyBpdCBpcyBub3QgdGhlIGFsbG93ZWQgZmlsZSB0eXBlLicsXG4gICAgaW52YWxpZEFtb3VudDogJ0ZhaWxlZCB0byBsb2FkIHswfSBmaWxlKHMpLCBhcyBpdCBleGNlZWRzIHRoZSBsaW1pdCBhbW91bnQgb2YgZmlsZXMuJyxcbiAgICBpbnZhbGlkRm9ybWF0OiAnRmFpbGVkIHRvIGxvYWQgezB9IGZpbGUocyksIGFzIGl0IGRvZXMgbm90IG1hdGNoIHRoZSBmb3JtYXQocyk6IHsxfS4nLFxuICAgIGludmFsaWRTaXplOiAnRmFpbGVkIHRvIGxvYWQgezB9IGZpbGVzKHMpLCBhcyBpdCBpcyBub3QgdGhlIGFsbG93ZWQgc2l6ZTogZnJvbSB7MX0gdG8gezJ9LicsXG4gICAgbnVtYmVyT2ZGaWxlc0FsbG93ZWQ6ICd7MH0gZmlsZShzKSBhbGxvd2VkJyxcbiAgICBhbGxvd2VkRm9ybWF0czogJ0FjY2VwdGVkIGZpbGUgZm9ybWF0czogezB9LicsXG4gICAgYWxsb3dlZEZpbGVTaXplUmFuZ2U6ICdTaXplIGxpbWl0IHBlciBmaWxlOiBmcm9tIHswfSB0byB7MX0nLFxuICAgIG1heEZpbGVTaXplQWxsb3dlZDogJ1NpemUgbGltaXQgcGVyIGZpbGU6IHswfSBtYXhpbXVtJyxcbiAgICBtaW5GaWxlU2l6ZUFsbG93ZWQ6ICdTaXplIGxpbWl0IHBlciBmaWxlOiB7MH0gbWluaW11bScsXG4gICAgZXJyb3JPY2N1cnJlZDogJ0FuIGVycm9yIGhhcyBvY2N1cnJlZCcsXG4gICAgc2VudFdpdGhTdWNjZXNzOiAnU2VudCB3aXRoIHN1Y2Nlc3MnXG4gIH0sXG4gIGVzOiA8UG9VcGxvYWRMaXRlcmFscz57XG4gICAgZmlsZXM6ICdhcmNoaXZvcycsXG4gICAgZm9sZGVyczogJ2NhcnBldGFzJyxcbiAgICBzZWxlY3RGaWxlOiAnU2VsZWNjaW9uYXIgYXJjaGl2bycsXG4gICAgc2VsZWN0RmlsZXM6ICdTZWxlY2Npb25hciBhcmNoaXZvcycsXG4gICAgc2VsZWN0Rm9sZGVyOiAnU2VsZWNjaW9uYXIgY2FycGV0YScsXG4gICAgc3RhcnRTZW5kaW5nOiAnSW5pY2lhciBjYXJnYScsXG4gICAgZHJhZ0ZpbGVzSGVyZTogJ0FycmFzdHJhIGxvcyBhcmNoaXZvcyBhcXXDrScsXG4gICAgZHJhZ0ZvbGRlcnNIZXJlOiAnQXJyYXN0cmEgbGFzIGNhcnBldGFzIGFxdcOtJyxcbiAgICBzZWxlY3RGaWxlc09uQ29tcHV0ZXI6ICdvIHNlbGVjY2lvbmEgbG9zIGFyY2hpdm9zIGVuIHR1IGNvbXB1dGFkb3JhJyxcbiAgICBzZWxlY3RGb2xkZXJPbkNvbXB1dGVyOiAnbyBzZWxlY2Npb25hIGxhIGNhcnBldGEgZW4gdHUgY29tcHV0YWRvcmEnLFxuICAgIGRyb3BGaWxlc0hlcmU6ICdEZWphIGxvcyBhcmNoaXZvcyBhcXXDrScsXG4gICAgZHJvcEZvbGRlcnNIZXJlOiAnRGVqYSBsYXMgY2FycGV0YXMgYXF1w60nLFxuICAgIGludmFsaWREcm9wQXJlYTogJ0xvcyB7MH0gbm8gc2UgaW5zZXJ0YXJvbiBlbiBsYSB1YmljYWNpw7NuIGNvcnJlY3RhJyxcbiAgICBpbnZhbGlkRmlsZVR5cGU6ICdFcnJvciBhbCBjYXJnYXIgezB9IGFyY2hpdm8gKHMpIHlhIHF1ZSBubyBlcyBlbCB0aXBvIGRlIGFyY2hpdm8gcGVybWl0aWRvJyxcbiAgICBpbnZhbGlkQW1vdW50OiAnRXJyb3IgYWwgY2FyZ2FyIHswfSBhcmNoaXZvIChzKSB5YSBxdWUgZXhjZWRlIGxhIGNhbnRpZGFkIGxpbWl0ZSBkZSBhcmNoaXZvcy4nLFxuICAgIGludmFsaWRGb3JtYXQ6ICdFcnJvciBhbCBjYXJnYXIgezB9IGFyY2hpdm8gKHMpIHlhIHF1ZSBubyBjb2luY2lkZSBjb24gZWwgZm9ybWF0byAocyk6IHsxfS4nLFxuICAgIGludmFsaWRTaXplOiAnRXJyb3IgYWwgY2FyZ2FyIHswfSBhcmNoaXZvIChzKSB5YSBxdWUgbm8gY3VtcGxlIGNvbiBlbCB0YW1hw7FvIHBlcm1pdGlkbzogZGVzZGUgezF9IGhhc3RhIHsyfS4nLFxuICAgIG51bWJlck9mRmlsZXNBbGxvd2VkOiAnezB9IGFyY2hpdm8ocykgcGVybWl0aWRvKHMpJyxcbiAgICBhbGxvd2VkRm9ybWF0czogJ0Zvcm1hdG9zIGFjZXB0YWRvczogezB9LicsXG4gICAgYWxsb3dlZEZpbGVTaXplUmFuZ2U6ICdMaW1pdGUgZGUgdGFtYcOxbyBkZSBhcmNoaXZvOiBkZXNkZSB7MH0gaGFzdGEgezF9JyxcbiAgICBtYXhGaWxlU2l6ZUFsbG93ZWQ6ICdMaW1pdGUgZGUgdGFtYcOxbyBkZSBhcmNoaXZvOiBoYXN0YSB7MH0nLFxuICAgIG1pbkZpbGVTaXplQWxsb3dlZDogJ0xpbWl0ZSBkZSB0YW1hw7FvIGRlIGFyY2hpdm86IG1pbmltbyB7MH0nLFxuICAgIGVycm9yT2NjdXJyZWQ6ICdPY3VycmlvIHVuIGVycm9yJyxcbiAgICBzZW50V2l0aFN1Y2Nlc3M6ICdFbnZpYWRvIGNvbiDDqXhpdG8nXG4gIH0sXG4gIHB0OiA8UG9VcGxvYWRMaXRlcmFscz57XG4gICAgZmlsZXM6ICdhcnF1aXZvcycsXG4gICAgZm9sZGVyczogJ2RpcmV0w7NyaW9zJyxcbiAgICBzZWxlY3RGaWxlOiAnU2VsZWNpb25hciBhcnF1aXZvJyxcbiAgICBzZWxlY3RGaWxlczogJ1NlbGVjaW9uYXIgYXJxdWl2b3MnLFxuICAgIHNlbGVjdEZvbGRlcjogJ1NlbGVjaW9uYXIgcGFzdGEnLFxuICAgIHN0YXJ0U2VuZGluZzogJ0luaWNpYXIgZW52aW8nLFxuICAgIGRyYWdGaWxlc0hlcmU6ICdBcnJhc3RlIG9zIGFycXVpdm9zIGFxdWknLFxuICAgIGRyYWdGb2xkZXJzSGVyZTogJ0FycmFzdGUgYXMgcGFzdGFzIGFxdWknLFxuICAgIHNlbGVjdEZpbGVzT25Db21wdXRlcjogJ291IHNlbGVjaW9uZSBvcyBhcnF1aXZvcyBubyBjb21wdXRhZG9yJyxcbiAgICBzZWxlY3RGb2xkZXJPbkNvbXB1dGVyOiAnb3Ugc2VsZWNpb25lIGEgcGFzdGEgbm8gY29tcHV0YWRvcicsXG4gICAgZHJvcEZpbGVzSGVyZTogJ1NvbHRlIG9zIGFycXVpdm9zIGFxdWknLFxuICAgIGRyb3BGb2xkZXJzSGVyZTogJ1NvbHRlIGFzIHBhc3RhcyBhcXVpJyxcbiAgICBpbnZhbGlkRHJvcEFyZWE6ICdPcyB7MH0gbsOjbyBmb3JhbSBpbnNlcmlkb3Mgbm8gbG9jYWwgY29ycmV0bycsXG4gICAgaW52YWxpZEZpbGVUeXBlOiAnRmFsaGEgYW8gY2FycmVnYXIgezB9IGFycXVpdm8gKHMpLCBwb2lzIG7Do28gw6kgbyB0aXBvIGRlIGFycXVpdm8gcGVybWl0aWRvJyxcbiAgICBpbnZhbGlkQW1vdW50OiAnRmFsaGEgYW8gY2FycmVnYXIgezB9IGFycXVpdm8ocyksIHBvaXMgZXhjZWRlKG0pIGEgcXVhbnRpZGFkZSBsaW1pdGUgZGUgYXJxdWl2b3MuJyxcbiAgICBpbnZhbGlkRm9ybWF0OiAnRmFsaGEgYW8gY2FycmVnYXIgezB9IGFycXVpdm8ocyksIHBvaXMgbsOjbyBjb3JyZXNwb25kZShtKSBhbyhzKSBmb3JtYXRvKHMpOiB7MX0uJyxcbiAgICBpbnZhbGlkU2l6ZTogJ0ZhbGhhIGFvIGNhcnJlZ2FyIHswfSBhcnF1aXZvKHMpLCBwb2lzIG7Do28gYXRlbmRlIGFvIHRhbWFuaG8gcGVybWl0aWRvOiB7MX0gYXTDqSB7Mn0uJyxcbiAgICBudW1iZXJPZkZpbGVzQWxsb3dlZDogJ1F1YW50aWRhZGUgbcOheGltYTogezB9IGFycXVpdm8ocyknLFxuICAgIGFsbG93ZWRGb3JtYXRzOiAnRm9ybWF0b3MgYWRvdGFkb3M6IHswfS4nLFxuICAgIGFsbG93ZWRGaWxlU2l6ZVJhbmdlOiAnTGltaXRlIGRlIHRhbWFuaG8gcG9yIGFycXVpdm86IGRlIHswfSBhdMOpIHsxfScsXG4gICAgbWF4RmlsZVNpemVBbGxvd2VkOiAnTGltaXRlIGRlIHRhbWFuaG8gcG9yIGFycXVpdm86IGF0w6kgezB9JyxcbiAgICBtaW5GaWxlU2l6ZUFsbG93ZWQ6ICdMaW1pdGUgZGUgdGFtYW5obyBwb3IgYXJxdWl2bzogbm8gbcOtbmltbyB7MH0nLFxuICAgIGVycm9yT2NjdXJyZWQ6ICdPY29ycmV1IHVtIGVycm8nLFxuICAgIHNlbnRXaXRoU3VjY2VzczogJ0VudmlhZG8gY29tIHN1Y2Vzc28nXG4gIH0sXG4gIHJ1OiA8UG9VcGxvYWRMaXRlcmFscz57XG4gICAgZmlsZXM6ICfRhNCw0LnQu9GLJyxcbiAgICBmb2xkZXJzOiAn0L/QsNC/0LrQuCDRgSDRhNCw0LnQu9Cw0LzQuCcsXG4gICAgc2VsZWN0RmlsZTogJ9CS0YvQsdC10YDQuNGC0LUg0YTQsNC50LsnLFxuICAgIHNlbGVjdEZpbGVzOiAn0JLRi9Cx0LXRgNC40YLQtSDRhNCw0LnQu9GLJyxcbiAgICBzZWxlY3RGb2xkZXI6ICfQktGL0LHQtdGA0LjRgtC1INC/0LDQv9C60YMg0YEg0YTQsNC50LvQsNC80LgnLFxuICAgIHN0YXJ0U2VuZGluZzogJ9Cd0LDRh9Cw0YLRjCDQt9Cw0LPRgNGD0LfQutGDJyxcbiAgICBkcmFnRmlsZXNIZXJlOiAn0J/QtdGA0LXRgtCw0YnQuNGC0LUg0YTQsNC50LvRiyDRgdGO0LTQsCcsXG4gICAgZHJhZ0ZvbGRlcnNIZXJlOiAn0J/QtdGA0LXRgtCw0YnQuNGC0LUg0YHRjtC00LAg0L/QsNC/0LrQuCcsXG4gICAgc2VsZWN0RmlsZXNPbkNvbXB1dGVyOiAn0LjQu9C4INCy0YvQsdC10YDQuNGC0LUg0YTQsNC50LvRiyDQvdCwINC60L7QvNC/0YzRjtGC0LXRgNC1JyxcbiAgICBzZWxlY3RGb2xkZXJPbkNvbXB1dGVyOiAn0LjQu9C4INCy0YvQsdC10YDQuNGC0LUg0L/QsNC/0LrRgyDQvdCwINCy0LDRiNC10Lwg0LrQvtC80L/RjNGO0YLQtdGA0LUnLFxuICAgIGRyb3BGaWxlc0hlcmU6ICfQntGB0YLQsNCy0YzRgtC1INGE0LDQudC70Ysg0LfQtNC10YHRjCcsXG4gICAgZHJvcEZvbGRlcnNIZXJlOiAn0J/QtdGA0LXRgtCw0YnQuNGC0LUg0YHRjtC00LAg0L/QsNC/0LrQuCcsXG4gICAgaW52YWxpZERyb3BBcmVhOiAnezB9INC90LUg0LHRi9C70Lgg0LLRgdGC0LDQstC70LXQvdGLINCyINC/0YDQsNCy0LjQu9GM0L3QvtC8INC80LXRgdGC0LUuJyxcbiAgICBpbnZhbGlkRmlsZVR5cGU6ICfQndC1INGD0LTQsNC70L7RgdGMINC30LDQs9GA0YPQt9C40YLRjCDRhNCw0LnQu9GLIHswfSwg0YLQsNC6INC60LDQuiDRjdGC0L4g0L3QtdCy0LXRgNC90YvQuSDRgtC40L8g0YTQsNC50LvQsCcsXG4gICAgaW52YWxpZEFtb3VudDogJ07Do28gZm9pIHBvc3PDrXZlbCBjYXJyZWdhciBvcyBhcnF1aXZvcyB7MH0gcG9ycXVlIGVsZXMgZXhjZWRlcmFtIG8gbGltaXRlIGRlIGFycXVpdm9zLicsXG4gICAgaW52YWxpZEZvcm1hdDogJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0LfQsNCz0YDRg9C30LjRgtGMINGE0LDQudC70YsgezB9LCDRgtCw0Log0LrQsNC6INC+0L3QuCDQvdC1INGB0L7QvtGC0LLQtdGC0YHRgtCy0YPRjtGCINGE0L7RgNC80LDRgtGDICjQsNC8KTogezF9LicsXG4gICAgaW52YWxpZFNpemU6ICfQndC1INGD0LTQsNC70L7RgdGMINC30LDQs9GA0YPQt9C40YLRjCDRhNCw0LnQu9GLIHswfSwg0L/QvtGB0LrQvtC70YzQutGDINC+0L3QuCDQvdC1INGB0L7QvtGC0LLQtdGC0YHRgtCy0YPRjtGCINGA0LDQt9GA0LXRiNC10L3QvdC+0LzRgyDRgNCw0LfQvNC10YDRgzog0L7RgiB7MX0g0LTQviB7Mn0uJyxcbiAgICBudW1iZXJPZkZpbGVzQWxsb3dlZDogJ9Cc0LDQutGB0LjQvNCw0LvRjNC90L7QtSDQutC+0LvQuNGH0LXRgdGC0LLQvjogezB9INGE0LDQudC70L7QsicsXG4gICAgYWxsb3dlZEZvcm1hdHM6ICfQpNC+0YDQvNCw0YLRiyDQv9GA0LjQvdGP0YLRizogezB9LicsXG4gICAgYWxsb3dlZEZpbGVTaXplUmFuZ2U6ICfQntCz0YDQsNC90LjRh9C10L3QuNC1INGA0LDQt9C80LXRgNCwINGE0LDQudC70LA6INC+0YIgezB9INC00L4gezF9JyxcbiAgICBtYXhGaWxlU2l6ZUFsbG93ZWQ6ICfQntCz0YDQsNC90LjRh9C10L3QuNC1INGA0LDQt9C80LXRgNCwINGE0LDQudC70LA6INC00L4gezB9JyxcbiAgICBtaW5GaWxlU2l6ZUFsbG93ZWQ6ICfQntCz0YDQsNC90LjRh9C10L3QuNC1INGA0LDQt9C80LXRgNCwINGE0LDQudC70LA6INC90LUg0LzQtdC90LXQtSB7MH0nLFxuICAgIGVycm9yT2NjdXJyZWQ6ICfQn9GA0L7QuNC30L7RiNC70LAg0L7RiNC40LHQutCwLicsXG4gICAgc2VudFdpdGhTdWNjZXNzOiAn0KPRgdC/0LXRiNC90L4g0L7RgtC/0YDQsNCy0LvQtdC90L4nXG4gIH1cbn07XG5cbmNvbnN0IHBvVXBsb2FkRm9ybUZpZWxkRGVmYXVsdCA9ICdmaWxlcyc7XG5cbmNvbnN0IHBvVXBsb2FkTWF4RmlsZVNpemUgPSAzMTQ1NzI4MDsgLy8gMzBNQlxuY29uc3QgcG9VcGxvYWRNaW5GaWxlU2l6ZSA9IDA7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogTyBjb21wb25lbnRlIGBwby11cGxvYWRgIHBlcm1pdGUgcXVlIG8gdXN1w6FyaW8gZW52aWUgYXJxdWl2byhzKSBhbyBzZXJ2aWRvciBlIGFjb21wYW5oZSBvIHByb2dyZXNzby5cbiAqIEVzdGUgY29tcG9uZW50ZSB0YW1iw6ltIHBvc3NpYmlsaXRhIGFsZ3VtYXMgY29uZmlndXJhw6fDtWVzIGNvbW86XG4gKiAg4oCTIEVudmlvIGRlIGRpcmV0w7NyaW9zLCBvbmRlIGVsZSBhY2Vzc2EgbyBkaXJldMOzcmlvIHNlbGVjaW9uYWRvIGFzc2ltIGNvbW8gc2V1cyBzdWItZGlyZXTDs3Jpb3M7XG4gKiAgLSBNw7psdGlwbGEgc2VsZcOnw6NvLCBvbmRlIG8gdXN1w6FyaW8gcG9kZSBlbnZpYXIgbWFpcyBkZSB1bSBhcnF1aXZvIGFvIHNlcnZpZG9yLlxuICogIC0gQXV0byBlbnZpbywgb25kZSBvIGFycXVpdm8gw6kgZW52aWFkbyBpbWVkaWF0YW1lbnRlIGFww7NzIGEgc2VsZcOnw6NvIGRvIHVzdcOhcmlvLCBuw6NvIG5lY2Vzc2l0YW5kbyBxdWUgbyB1c3XDoXJpb1xuICogY2xpcXVlIGVtIGVudmlhci5cbiAqICAtIFJlc3RyacOnw7VlcyBkZSBmb3JtYXRvcyBkZSBhcnF1aXZvIGUgdGFtYW5oby5cbiAqICAtIEZ1bsOnw6NvIGRlIHN1Y2Vzc28gcXVlIHNlcsOhIGRpc3BhcmFkYSBxdWFuZG8gb3MgYXJxdWl2b3MgZm9yZW0gZW52aWFkb3MgY29tIHN1Y2Vzc28uXG4gKiAgLSBGdW7Dp8OjbyBkZSBlcnJvIHF1ZSBzZXLDoSBkaXNwYXJhZGEgcXVhbmRvIGhvdXZlciBlcnJvIG5vIGVudmlvIGRvcyBhcnF1aXZvcy5cbiAqICAtIFBlcm1pdGUgaGFiaWxpdGFyIHVtYSDDoXJlYSBvbmRlIG9zIGFycXVpdm9zIHBvZGVtIHNlciBhcnJhc3RhZG9zLlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQb1VwbG9hZEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogQXBsaWNhIGZvY28gbm8gZWxlbWVudG8gYW8gc2VyIGluaWNpYWRvLlxuICAgKlxuICAgKiA+IENhc28gbWFpcyBkZSB1bSBlbGVtZW50byBzZWphIGNvbmZpZ3VyYWRvIGNvbSBlc3NhIHByb3ByaWVkYWRlLCBhcGVuYXMgbyDDumx0aW1vIGVsZW1lbnRvIGRlY2xhcmFkbyBjb20gZWxhIHRlcsOhIG8gZm9jby5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KCdwLWF1dG8tZm9jdXMnKSBASW5wdXRCb29sZWFuKCkgYXV0b0ZvY3VzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIGVtICpwaXhlbHMqIGEgYWx0dXJhIGRhIMOhcmVhIG9uZGUgcG9kZW0gc2VyIGFycmFzdGFkb3Mgb3MgYXJxdWl2b3MuIEEgYWx0dXJhIG3DrW5pbWEgYWNlaXRhIMOpIGAxNjBweGAuXG4gICAqXG4gICAqID4gRXN0YSBwcm9wcmllZGFkZSBmdW5jaW9uYSBzb21lbnRlIHNlIGEgcHJvcHJpZWRhZGUgYHAtZHJhZy1kcm9wYCBlc3RpdmVyIGhhYmlsaXRhZGEuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAzMjBgXG4gICAqL1xuICBASW5wdXQoJ3AtZHJhZy1kcm9wLWhlaWdodCcpIGRyYWdEcm9wSGVpZ2h0OiBudW1iZXI7XG5cbiAgLyoqIFLDs3R1bG8gZG8gY2FtcG8uICovXG4gIEBJbnB1dCgncC1sYWJlbCcpIGxhYmVsPzogc3RyaW5nO1xuXG4gIC8qKiBUZXh0byBkZSBhcG9pbyBwYXJhIG8gY2FtcG8uICovXG4gIEBJbnB1dCgncC1oZWxwJykgaGVscD86IHN0cmluZztcblxuICAvKiogVVJMIHF1ZSBkZXZlIHNlciBmZWl0YSBhIHJlcXVpc2nDp8OjbyBjb20gb3MgYXJxdWl2b3Mgc2VsZWNpb25hZG9zLiAqL1xuICBASW5wdXQoJ3AtdXJsJykgdXJsOiBzdHJpbmc7XG5cbiAgLyoqIERlZmluZSBvIHZhbG9yIGRvIGF0cmlidXRvIGBuYW1lYCBkbyBjb21wb25lbnRlLiAqL1xuICBASW5wdXQoJ25hbWUnKSBuYW1lOiBzdHJpbmcgPSAnZmlsZSc7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIHNlIG8gZW52aW8gZG8gYXJxdWl2byBzZXLDoSBhdXRvbcOhdGljbyBhbyBzZWxlY2lvbmFyIG8gbWVzbW8uXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCgncC1hdXRvLXVwbG9hZCcpIGF1dG9VcGxvYWQ/OiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIHNlIGEgaW5kaWNhw6fDo28gZGUgY2FtcG8gb3BjaW9uYWwgc2Vyw6EgZXhpYmlkYS5cbiAgICpcbiAgICogPiBOw6NvIHNlcsOhIGV4aWJpZGEgYSBpbmRpY2HDp8OjbyBzZTpcbiAgICogIC0gTyBjYW1wbyBjb250ZXIgYHAtcmVxdWlyZWRgO1xuICAgKiAgLSBOw6NvIHBvc3N1aXIgYHAtaGVscGAgZS9vdSBgcC1sYWJlbGAuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCgncC1vcHRpb25hbCcpIG9wdGlvbmFsOiBib29sZWFuO1xuXG4gIC8qKiBPYmpldG8gcXVlIGNvbnTDqW0gb3MgY2FiZcOnYWxob3MgcXVlIHNlcsOhIGVudmlhZG8gbmEgcmVxdWlzacOnw6NvIGRvcyBhcnF1dmlvcy4gKi9cbiAgQElucHV0KCdwLWhlYWRlcnMnKSBoZWFkZXJzOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+IH07XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRnVuw6fDo28gcXVlIHNlcsOhIGV4ZWN1dGFkYSBubyBtb21lbnRvIGRlIHJlYWxpemFyIG8gZW52aW8gZG8gYXJxdWl2byxcbiAgICogb25kZSBzZXLDoSBwb3Nzw612ZWwgYWRpY2lvbmFyIGluZm9ybWHDp8O1ZXMgYW8gcGFyw6JtZXRybyBxdWUgc2Vyw6EgZW52aWFkbyBuYSByZXF1aXNpw6fDo28uXG4gICAqIMOJIHBhc3NhZG8gcG9yIHBhcsOibWV0cm8gdW0gb2JqZXRvIGNvbSBvIGFycXVpdm8gZSBhIHByb3BpZWRhZGUgZGF0YSBuZXN0YSBwcm9wcmllZGFkZSBwb2RlIHNlciBpbmZvcm1hZG8gYWxndW0gZGFkbyxcbiAgICogcXVlIHNlcsOhIGVudmlhZG8gZW0gY29uanVudG8gY29tIG8gYXJxdWl2byBuYSByZXF1aXNpw6fDo28sIHBvciBleGVtcGxvOlxuICAgKlxuICAgKiBgYGBcbiAgICogICBldmVudC5kYXRhID0ge2lkOiAnaWQgZG8gdXN1YXJpbyd9O1xuICAgKiBgYGBcbiAgICovXG4gIEBPdXRwdXQoJ3AtdXBsb2FkJykgb25VcGxvYWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRXZlbnRvIHNlcsOhIGRpc3BhcmFkbyBxdWFuZG8gb2NvcnJlciBhbGd1bSBlcnJvIG5vIGVudmlvIGRvIGFycXVpdm8uXG4gICAqID4gUG9yIHBhcsOibWV0cm8gc2Vyw6EgcGFzc2FkbyBvIG9iamV0byBkbyByZXRvcm5vIHF1ZSDDqSBkbyB0aXBvIGBIdHRwRXJyb3JSZXNwb25zZWAuXG4gICAqL1xuICBAT3V0cHV0KCdwLWVycm9yJykgb25FcnJvcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBFdmVudG8gc2Vyw6EgZGlzcGFyYWRvIHF1YW5kbyBvIGVudmlvIGRvIGFycXVpdm8gZm9yIHJlYWxpemFkbyBjb20gc3VjZXNzby5cbiAgICogPiBQb3IgcGFyw6JtZXRybyBzZXLDoSBwYXNzYWRvIG8gb2JqZXRvIGRvIHJldG9ybm8gcXVlIMOpIGRvIHRpcG8gYEh0dHBSZXNwb25zZWAuXG4gICAqL1xuICBAT3V0cHV0KCdwLXN1Y2Nlc3MnKSBvblN1Y2Nlc3M6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRnVuw6fDo28gcGFyYSBhdHVhbGl6YXIgbyBuZ01vZGVsIGRvIGNvbXBvbmVudGUsIG5lY2Vzc8OhcmlvIHF1YW5kbyBuw6NvIGZvciB1dGlsaXphZG8gZGVudHJvIGRhICp0YWcqIGBmb3JtYC5cbiAgICpcbiAgICogTmEgdmVyc8OjbyAxMi4yLjAgZG8gQW5ndWxhciBhIHZlcmlmaWNhw6fDo28gYHN0cmljdFRlbXBsYXRlc2AgdmVtIHRydWUgY29tbyBkZWZhdWx0LiBQb3J0YW50bywgcGFyYSB1dGlsaXphclxuICAgKiB0d28td2F5IGJpbmRpbmcgbm8gY29tcG9uZW50ZSBkZXZlIHNlIHV0aWxpemFyIGRhIHNlZ3VpbnRlIGZvcm1hOlxuICAgKlxuICAgKiBgYGBcbiAgICogPHBvLXVwbG9hZCAuLi4gW25nTW9kZWxdPVwiVXBsb2FkTW9kZWxcIiAobmdNb2RlbENoYW5nZSk9XCJ1cGxvYWRNb2RlbCA9ICRldmVudFwiPiA8L3BvLXVwbG9hZD5cbiAgICogYGBgXG4gICAqXG4gICAqL1xuICBAT3V0cHV0KCduZ01vZGVsQ2hhbmdlJykgbmdNb2RlbENoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBhbGxvd2VkRXh0ZW5zaW9uczogc3RyaW5nO1xuICBjdXJyZW50RmlsZXM6IEFycmF5PFBvVXBsb2FkRmlsZT47XG5cbiAgY2FuSGFuZGxlRGlyZWN0b3J5OiBib29sZWFuO1xuICBvbk1vZGVsQ2hhbmdlOiBhbnk7XG5cbiAgcHJvdGVjdGVkIGV4dGVuc2lvbk5vdEFsbG93ZWQgPSAwO1xuICBwcm90ZWN0ZWQgcXVhbnRpdHlOb3RBbGxvd2VkID0gMDtcbiAgcHJvdGVjdGVkIHNpemVOb3RBbGxvd2VkID0gMDtcbiAgcHJvdGVjdGVkIG9uTW9kZWxUb3VjaGVkOiBhbnkgPSBudWxsO1xuXG4gIHByaXZhdGUgX2RpcmVjdG9yeT86IGJvb2xlYW47XG4gIHByaXZhdGUgX2Rpc2FibGVkPzogYm9vbGVhbjtcbiAgcHJpdmF0ZSBfZHJhZ0Ryb3A/OiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX2ZpbGVSZXN0cmljdGlvbnM/OiBQb1VwbG9hZEZpbGVSZXN0cmljdGlvbnM7XG4gIHByaXZhdGUgX2Zvcm1GaWVsZD86IHN0cmluZztcbiAgcHJpdmF0ZSBfaGlkZVJlc3RyaWN0aW9uc0luZm8/OiBib29sZWFuO1xuICBwcml2YXRlIF9oaWRlU2VsZWN0QnV0dG9uPzogYm9vbGVhbjtcbiAgcHJpdmF0ZSBfaGlkZVNlbmRCdXR0b24/OiBib29sZWFuO1xuICBwcml2YXRlIF9pc011bHRpcGxlPzogYm9vbGVhbjtcbiAgcHJpdmF0ZSBfbGl0ZXJhbHM/OiBhbnk7XG4gIHByaXZhdGUgX3JlcXVpcmVkPzogYm9vbGVhbjtcbiAgcHJpdmF0ZSBsYW5ndWFnZTogc3RyaW5nO1xuICBwcml2YXRlIHZhbGlkYXRvckNoYW5nZTogYW55O1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIFBlcm1pdGUgYSBzZWxlw6fDo28gZGUgZGlyZXTDs3Jpb3MgY29udGVuZG8gdW0gb3UgbWFpcyBhcnF1aXZvcyBwYXJhIGVudmlvLlxuICAgKlxuICAgKiA+IEEgaGFiaWxpdGHDp8OjbyBkZXN0YSBwcm9wcmllZGFkZSBzZSByZXN0cmluZ2UgYXBlbmFzIMOgIHNlbGXDp8OjbyBkZSBkaXJldMOzcmlvcy5cbiAgICpcbiAgICogPiBEZWZpbmnDp8OjbyBuw6NvIHN1cG9ydGFkYSBwZWxvIGJyb3dzZXIgKipJbnRlcm5ldCBFeHBsb3JlcioqLCB0b2RhdmlhIHNlcsOhIHBvc3PDrXZlbCBhIHNlbGXDp8OjbyBkZSBhcnF1aXZvcyBwYWRyw6NvLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3AtZGlyZWN0b3J5Jykgc2V0IGRpcmVjdG9yeSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2RpcmVjdG9yeSA9IGNvbnZlcnRUb0Jvb2xlYW4odmFsdWUpO1xuXG4gICAgdGhpcy5jYW5IYW5kbGVEaXJlY3RvcnkgPSB0aGlzLl9kaXJlY3RvcnkgJiYgIWlzSUUoKSAmJiAhaXNNb2JpbGUoKTtcbiAgICB0aGlzLnNldERpcmVjdG9yeUF0dHJpYnV0ZSh0aGlzLmNhbkhhbmRsZURpcmVjdG9yeSk7XG4gIH1cblxuICBnZXQgZGlyZWN0b3J5KCkge1xuICAgIHJldHVybiB0aGlzLl9kaXJlY3Rvcnk7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBFeGliZSBhIMOhcmVhIG9uZGUgw6kgcG9zc8OtdmVsIGFycmFzdGFyIGUgc2VsZWNpb25hciBvcyBhcnF1aXZvcy4gUXVhbmRvIGVzdGl2ZXIgZGVmaW5pZGEsIG9taXRlIG8gYm90w6NvIHBhcmEgc2VsZcOnw6NvIGRlIGFycXVpdm9zXG4gICAqIGF1dG9tYXRpY2FtZW50ZS5cbiAgICpcbiAgICogPiBSZWNvbWVuZGFtb3MgdXRpbGl6YXIgYXBlbmFzIHVtIGBwby11cGxvYWRgIGNvbSBlc3RhIGZ1bmNpb25hbGlkYWRlIHBvciB0ZWxhLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3AtZHJhZy1kcm9wJykgc2V0IGRyYWdEcm9wKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZHJhZ0Ryb3AgPSBjb252ZXJ0VG9Cb29sZWFuKHZhbHVlKTtcbiAgfVxuXG4gIGdldCBkcmFnRHJvcCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZHJhZ0Ryb3A7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBPY3VsdGEgdmlzdWFsbWVudGUgYXMgaW5mb3JtYcOnw7VlcyBkZSByZXN0cmnDp8O1ZXMgcGFyYSBvIHVwbG9hZC5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KCdwLWhpZGUtcmVzdHJpY3Rpb25zLWluZm8nKSBzZXQgaGlkZVJlc3RyaWN0aW9uc0luZm8odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9oaWRlUmVzdHJpY3Rpb25zSW5mbyA9IGNvbnZlcnRUb0Jvb2xlYW4odmFsdWUpO1xuICB9XG5cbiAgZ2V0IGhpZGVSZXN0cmljdGlvbnNJbmZvKCkge1xuICAgIHJldHVybiB0aGlzLl9oaWRlUmVzdHJpY3Rpb25zSW5mbztcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIE9taXRlIG8gYm90w6NvIGRlIHNlbGXDp8OjbyBkZSBhcnF1aXZvcy5cbiAgICpcbiAgICogPiBDYXNvIG8gdmFsb3IgZGVmaW5pZG8gc2VqYSBgdHJ1ZWAsIGNhYmVyw6EgYW8gZGVzZW52b2x2ZWRvciBhIHJlc3BvbnNhYmlsaWRhZGVcbiAgICogcGVsYSBjaGFtYWRhIGRvIG3DqXRvZG8gYHNlbGVjdEZpbGVzKClgIHBhcmEgc2VsZcOnw6NvIGRlIGFycXVpdm9zLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3AtaGlkZS1zZWxlY3QtYnV0dG9uJykgc2V0IGhpZGVTZWxlY3RCdXR0b24odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9oaWRlU2VsZWN0QnV0dG9uID0gY29udmVydFRvQm9vbGVhbih2YWx1ZSk7XG4gIH1cbiAgZ2V0IGhpZGVTZWxlY3RCdXR0b24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2hpZGVTZWxlY3RCdXR0b247XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBPbWl0ZSBvIGJvdMOjbyBkZSBlbnZpbyBkZSBhcnF1aXZvcy5cbiAgICpcbiAgICogPiBDYXNvIG8gdmFsb3IgZGVmaW5pZG8gc2VqYSBgdHJ1ZWAsIGNhYmVyw6EgYW8gZGVzZW52b2x2ZWRvciBhIHJlc3BvbnNhYmlsaWRhZGVcbiAgICogcGVsYSBjaGFtYWRhIGRvIG3DqXRvZG8gYHNlbmRGaWxlcygpYCBwYXJhIGVudmlvIGRvKHMpIGFycXVpdm8ocykgc2VsZWNpb25hZG8ocykuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCgncC1oaWRlLXNlbmQtYnV0dG9uJykgc2V0IGhpZGVTZW5kQnV0dG9uKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5faGlkZVNlbmRCdXR0b24gPSBjb252ZXJ0VG9Cb29sZWFuKHZhbHVlKTtcbiAgfVxuICBnZXQgaGlkZVNlbmRCdXR0b24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2hpZGVTZW5kQnV0dG9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogT2JqZXRvIGNvbSBhcyBsaXRlcmFpcyB1c2FkYXMgbm8gYHBvLXVwbG9hZGAuXG4gICAqXG4gICAqIEV4aXN0ZW0gZHVhcyBtYW5laXJhcyBkZSBjdXN0b21pemFyIG8gY29tcG9uZW50ZTpcbiAgICpcbiAgICogLSBwYXNzYW5kbyB1bSBvYmpldG8gaW1wbGVtZW50YW5kbyBhIGludGVyZmFjZSBgUG9VcGxvYWRMaXRlcmFsc2AgY29tIHRvZGFzIGFzIGxpdGVyYWlzIGRpc3BvbsOtdmVpcztcbiAgICogLSBwYXNzYW5kbyBhcGVuYXMgYXMgbGl0ZXJhaXMgcXVlIGRlc2VqYSBjdXN0b21pemFyOlxuICAgKiBgYGBcbiAgICogIGNvbnN0IGN1c3RvbUxpdGVyYWxzOiBQb1VwbG9hZExpdGVyYWxzID0ge1xuICAgKiAgICBmb2xkZXJzOiAnUGFzdGFzJyxcbiAgICogICAgc2VsZWN0RmlsZTogJ0J1c2NhciBhcnF1aXZvJyxcbiAgICogICAgc3RhcnRTZW5kaW5nOiAnRW52aWFyJ1xuICAgKiAgfTtcbiAgICogYGBgXG4gICAqXG4gICAqIEUgcGFyYSBjYXJyZWdhciBhcyBsaXRlcmFpcyBjdXN0b21pemFkYXMsIGJhc3RhIGFwZW5hcyBwYXNzYXIgbyBvYmpldG8gcGFyYSBvIGNvbXBvbmVudGU6XG4gICAqXG4gICAqIGBgYFxuICAgKiA8cG8tdXBsb2FkXG4gICAqICAgW3AtbGl0ZXJhbHNdPVwiY3VzdG9tTGl0ZXJhbHNcIj5cbiAgICogPC9wby11cGxvYWQ+XG4gICAqIGBgYFxuICAgKlxuICAgKiA+IE8gb2JqZXRvIHBhZHLDo28gZGUgbGl0ZXJhaXMgc2Vyw6EgdHJhZHV6aWRvIGRlIGFjb3JkbyBjb20gbyBpZGlvbWEgZG8gKmJyb3dzZXIqIChwdCwgZW4sIGVzLCBydSkuXG4gICAqL1xuICBASW5wdXQoJ3AtbGl0ZXJhbHMnKSBzZXQgbGl0ZXJhbHModmFsdWU6IFBvVXBsb2FkTGl0ZXJhbHMpIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBPYmplY3QgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSkge1xuICAgICAgdGhpcy5fbGl0ZXJhbHMgPSB7XG4gICAgICAgIC4uLnBvVXBsb2FkTGl0ZXJhbHNEZWZhdWx0W3BvTG9jYWxlRGVmYXVsdF0sXG4gICAgICAgIC4uLnBvVXBsb2FkTGl0ZXJhbHNEZWZhdWx0W3RoaXMubGFuZ3VhZ2VdLFxuICAgICAgICAuLi52YWx1ZVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fbGl0ZXJhbHMgPSBwb1VwbG9hZExpdGVyYWxzRGVmYXVsdFt0aGlzLmxhbmd1YWdlXTtcbiAgICB9XG4gIH1cbiAgZ2V0IGxpdGVyYWxzKCkge1xuICAgIHJldHVybiB0aGlzLl9saXRlcmFscyB8fCBwb1VwbG9hZExpdGVyYWxzRGVmYXVsdFt0aGlzLmxhbmd1YWdlXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIE9iamV0byBxdWUgc2VndWUgYSBkZWZpbmnDp8OjbyBkYSBpbnRlcmZhY2UgYFBvVXBsb2FkRmlsZVJlc3RyaWN0aW9uc2AsXG4gICAqIHF1ZSBwb3NzaWJpbGl0YSBkZWZpbmlyIHRhbWFuaG8gbcOheGltby9tw61uaW1vIGUgZXh0ZW5zw6NvIGRvcyBhcnF1aXZvcyBwZXJtaXRpZG9zLlxuICAgKi9cbiAgQElucHV0KCdwLXJlc3RyaWN0aW9ucycpIHNldCBmaWxlUmVzdHJpY3Rpb25zKHJlc3RyaWN0aW9uczogUG9VcGxvYWRGaWxlUmVzdHJpY3Rpb25zKSB7XG4gICAgdGhpcy5fZmlsZVJlc3RyaWN0aW9ucyA9IHRoaXMuaW5pdFJlc3RyaWN0aW9ucyhyZXN0cmljdGlvbnMpO1xuXG4gICAgdGhpcy5zZXRBbGxvd2VkRXh0ZW5zaW9ucyhyZXN0cmljdGlvbnMpO1xuICB9XG5cbiAgZ2V0IGZpbGVSZXN0cmljdGlvbnMoKTogUG9VcGxvYWRGaWxlUmVzdHJpY3Rpb25zIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsZVJlc3RyaWN0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIE5vbWUgZG8gY2FtcG8gZGUgZm9ybXVsw6FyaW8gcXVlIHNlcsOhIGVudmlhZG8gcGFyYSBvIHNlcnZpw6dvIGluZm9ybWFkbyBuYSBwcm9wcmllZGFkZSBgcC11cmxgLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmlsZXNgXG4gICAqL1xuICBASW5wdXQoJ3AtZm9ybS1maWVsZCcpIHNldCBmb3JtRmllbGQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2Zvcm1GaWVsZCA9IHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZSA6IHBvVXBsb2FkRm9ybUZpZWxkRGVmYXVsdDtcblxuICAgIHRoaXMuZ2V0VXBsb2FkU2VydmljZSgpLmZvcm1GaWVsZCA9IHRoaXMuZm9ybUZpZWxkO1xuICB9XG5cbiAgZ2V0IGZvcm1GaWVsZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9mb3JtRmllbGQ7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBJbmRpY2EgcXVlIG8gY2FtcG8gc2Vyw6EgZGVzYWJpbGl0YWRvLlxuICAgKi9cbiAgQElucHV0KCdwLWRpc2FibGVkJykgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBjb252ZXJ0VG9Cb29sZWFuKHZhbHVlKTtcblxuICAgIHRoaXMudmFsaWRhdGVNb2RlbCh0aGlzLmN1cnJlbnRGaWxlcyk7XG4gIH1cblxuICBnZXQgZGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIHNlIHBvZGUgc2VsZWNpb25hciBtYWlzIGRlIHVtIGFycXVpdm8uXG4gICAqXG4gICAqID4gU2UgdXRpbGl6YWRhIGEgYHAtZGlyZWN0b3J5YCwgaGFiaWxpdGEtc2UgYXV0b21hdGljYW1lbnRlIGVzdGEgcHJvcHJpZWRhZGUuXG4gICAqL1xuICBASW5wdXQoJ3AtbXVsdGlwbGUnKSBzZXQgaXNNdWx0aXBsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2lzTXVsdGlwbGUgPSBjb252ZXJ0VG9Cb29sZWFuKHZhbHVlKTtcbiAgfVxuXG4gIGdldCBpc011bHRpcGxlKCkge1xuICAgIHJldHVybiB0aGlzLmNhbkhhbmRsZURpcmVjdG9yeSA/IHRydWUgOiB0aGlzLl9pc011bHRpcGxlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogSW5kaWNhIHF1ZSBvIGNhbXBvIHNlcsOhIG9icmlnYXTDs3Jpby5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KCdwLXJlcXVpcmVkJykgc2V0IHJlcXVpcmVkKHJlcXVpcmVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcmVxdWlyZWQgPSBjb252ZXJ0VG9Cb29sZWFuKHJlcXVpcmVkKTtcblxuICAgIHRoaXMudmFsaWRhdGVNb2RlbCh0aGlzLmN1cnJlbnRGaWxlcyk7XG4gIH1cblxuICBnZXQgcmVxdWlyZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHVwbG9hZFNlcnZpY2U6IFBvVXBsb2FkU2VydmljZSwgbGFuZ3VhZ2VTZXJ2aWNlOiBQb0xhbmd1YWdlU2VydmljZSkge1xuICAgIHRoaXMubGFuZ3VhZ2UgPSBsYW5ndWFnZVNlcnZpY2UuZ2V0U2hvcnRMYW5ndWFnZSgpO1xuICB9XG5cbiAgLy8gRnVuw6fDo28gaW1wbGVtZW50YWRhIGRvIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gIC8vIFVzYWRhIHBhcmEgaW50ZXJjZXB0YXIgb3MgZXN0YWRvcyBkZSBoYWJpbGl0YWRvIHZpYSBmb3JtcyBhcGlcbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uTW9kZWxDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uTW9kZWxUb3VjaGVkID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy52YWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHZhbGlkYXRlKGFic3RyYWN0Q29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XG4gICAgaWYgKHJlcXVpcmVkRmFpbGVkKHRoaXMucmVxdWlyZWQsIHRoaXMuZGlzYWJsZWQsIGFic3RyYWN0Q29udHJvbC52YWx1ZSkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJlcXVpcmVkOiB7XG4gICAgICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgd3JpdGVWYWx1ZShtb2RlbDogYW55KTogdm9pZCB7XG4gICAgaWYgKG1vZGVsKSB7XG4gICAgICBpZiAoIWlzRXF1YWxzKHRoaXMuY3VycmVudEZpbGVzLCBtb2RlbCkpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50RmlsZXMgPSB0aGlzLnBhcnNlRmlsZXMobW9kZWwpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmN1cnJlbnRGaWxlcyA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNFeGNlZWRlZEZpbGVMaW1pdChjdXJyZW50RmlsZXNMZW5ndGg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmlzTXVsdGlwbGUgJiZcbiAgICAgIHRoaXMuZmlsZVJlc3RyaWN0aW9ucyAmJlxuICAgICAgdGhpcy5maWxlUmVzdHJpY3Rpb25zLm1heEZpbGVzID4gMCAmJlxuICAgICAgdGhpcy5maWxlUmVzdHJpY3Rpb25zLm1heEZpbGVzIDw9IGN1cnJlbnRGaWxlc0xlbmd0aFxuICAgICk7XG4gIH1cblxuICAvLyBGYXogbyBwYXJzZSBkb3MgYXJxdWl2b3Mgc2VsZWNpb25hZG9zIHBhcmEgYXJxdWl2b3MgZG8gZm9ybWF0byBQb1VwbG9hZEZpbGUgZSBhdHVhbGl6YSBvcyBhcnF1aXZvcyBjb3JyZW50ZXMuXG4gIHByb3RlY3RlZCBwYXJzZUZpbGVzKGZpbGVzOiBBcnJheTxGaWxlPik6IEFycmF5PFBvVXBsb2FkRmlsZT4ge1xuICAgIGxldCBwb1VwbG9hZEZpbGVzOiBBcnJheTxQb1VwbG9hZEZpbGU+ID0gdGhpcy5jdXJyZW50RmlsZXMgfHwgW107XG4gICAgY29uc3QgZmlsZXNMZW5ndGggPSBmaWxlcy5sZW5ndGg7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVzTGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLmlzRXhjZWVkZWRGaWxlTGltaXQocG9VcGxvYWRGaWxlcy5sZW5ndGgpKSB7XG4gICAgICAgIHRoaXMucXVhbnRpdHlOb3RBbGxvd2VkID0gZmlsZXNMZW5ndGggLSB0aGlzLmZpbGVSZXN0cmljdGlvbnMubWF4RmlsZXM7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY29uc3QgZmlsZSA9IG5ldyBQb1VwbG9hZEZpbGUoZmlsZXNbaV0pO1xuXG4gICAgICBpZiAodGhpcy5jaGVja1Jlc3RyaWN0aW9ucyhmaWxlKSkge1xuICAgICAgICBwb1VwbG9hZEZpbGVzID0gdGhpcy5pbnNlcnRGaWxlSW5GaWxlcyhmaWxlLCBwb1VwbG9hZEZpbGVzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zZW5kRmVlZGJhY2soKTtcbiAgICByZXR1cm4gcG9VcGxvYWRGaWxlcztcbiAgfVxuXG4gIHByb3RlY3RlZCB2YWxpZGF0ZU1vZGVsKG1vZGVsOiBhbnkpIHtcbiAgICBpZiAodGhpcy52YWxpZGF0b3JDaGFuZ2UpIHtcbiAgICAgIHRoaXMudmFsaWRhdG9yQ2hhbmdlKG1vZGVsKTtcbiAgICB9XG4gIH1cblxuICAvLyBWZXJpZmljYSBzZSBvIGFycXVpdm8gZXN0w6EgZGUgYWNvcmRvIGNvbSBhcyByZXN0cmnDp8O1ZXMuXG4gIHByaXZhdGUgY2hlY2tSZXN0cmljdGlvbnMoZmlsZTogUG9VcGxvYWRGaWxlKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmVzdHJpY3Rpb25zID0gdGhpcy5maWxlUmVzdHJpY3Rpb25zO1xuXG4gICAgaWYgKHJlc3RyaWN0aW9ucykge1xuICAgICAgY29uc3QgYWxsb3dlZEV4dGVuc2lvbnMgPSByZXN0cmljdGlvbnMuYWxsb3dlZEV4dGVuc2lvbnM7XG4gICAgICBjb25zdCBtaW5GaWxlU2l6ZSA9IHJlc3RyaWN0aW9ucy5taW5GaWxlU2l6ZTtcbiAgICAgIGNvbnN0IG1heEZpbGVTaXplID0gcmVzdHJpY3Rpb25zLm1heEZpbGVTaXplO1xuXG4gICAgICBjb25zdCBpc0FjY2VwdCA9IGFsbG93ZWRFeHRlbnNpb25zID8gdGhpcy5pc0FsbG93ZWRFeHRlbnNpb24oZmlsZS5leHRlbnNpb24sIGFsbG93ZWRFeHRlbnNpb25zKSA6IHRydWU7XG4gICAgICBjb25zdCBpc0FjY2VwdFNpemUgPSBmaWxlLnNpemUgPj0gbWluRmlsZVNpemUgJiYgZmlsZS5zaXplIDw9IG1heEZpbGVTaXplO1xuXG4gICAgICBpZiAoIWlzQWNjZXB0U2l6ZSkge1xuICAgICAgICB0aGlzLnNpemVOb3RBbGxvd2VkID0gdGhpcy5zaXplTm90QWxsb3dlZCArIDE7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBpc0FjY2VwdCAmJiBpc0FjY2VwdFNpemU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIGV4aXN0c0ZpbGVTYW1lTmFtZShmaWxlOiBQb1VwbG9hZEZpbGUsIGZpbGVzOiBBcnJheTxQb1VwbG9hZEZpbGU+KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZpbGVzLnNvbWUoY3VycmVudEZpbGUgPT4gZmlsZS5uYW1lID09PSBjdXJyZW50RmlsZS5uYW1lKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VXBsb2FkU2VydmljZSgpOiBQb1VwbG9hZFNlcnZpY2Uge1xuICAgIHJldHVybiB0aGlzLnVwbG9hZFNlcnZpY2U7XG4gIH1cblxuICBwcml2YXRlIGluc2VydEZpbGVJbkZpbGVzKG5ld0ZpbGU6IFBvVXBsb2FkRmlsZSwgZmlsZXM6IEFycmF5PFBvVXBsb2FkRmlsZT4pIHtcbiAgICBpZiAodGhpcy5leGlzdHNGaWxlU2FtZU5hbWUobmV3RmlsZSwgZmlsZXMpKSB7XG4gICAgICByZXR1cm4gdGhpcy51cGRhdGVFeGlzdHNGaWxlSW5GaWxlcyhuZXdGaWxlLCBmaWxlcyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNNdWx0aXBsZSkge1xuICAgICAgZmlsZXMucHVzaChuZXdGaWxlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmlsZXMuc3BsaWNlKDAsIGZpbGVzLmxlbmd0aCwgbmV3RmlsZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbGVzO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0FsbG93ZWRFeHRlbnNpb24oZXh0ZW5zaW9uOiBzdHJpbmcsIGFsbG93ZWRFeHRlbnNpb25zOiBBcnJheTxzdHJpbmc+ID0gW10pOiBib29sZWFuIHtcbiAgICBjb25zdCBpc0FsbG93ZWQgPSBhbGxvd2VkRXh0ZW5zaW9ucy5zb21lKGV4dCA9PiBleHQudG9Mb3dlckNhc2UoKSA9PT0gZXh0ZW5zaW9uKTtcbiAgICBpZiAoIWlzQWxsb3dlZCkge1xuICAgICAgdGhpcy5leHRlbnNpb25Ob3RBbGxvd2VkID0gdGhpcy5leHRlbnNpb25Ob3RBbGxvd2VkICsgMTtcbiAgICB9XG4gICAgcmV0dXJuIGlzQWxsb3dlZDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0QWxsb3dlZEV4dGVuc2lvbnMocmVzdHJpY3Rpb25zOiBQb1VwbG9hZEZpbGVSZXN0cmljdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IF9hbGxvd2VkRXh0ZW5zaW9ucyA9IHJlc3RyaWN0aW9ucy5hbGxvd2VkRXh0ZW5zaW9ucyB8fCBbXTtcblxuICAgIHRoaXMuYWxsb3dlZEV4dGVuc2lvbnMgPSBfYWxsb3dlZEV4dGVuc2lvbnMuam9pbignLCcpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0UmVzdHJpY3Rpb25zKHJlc3RyaWN0aW9uczogUG9VcGxvYWRGaWxlUmVzdHJpY3Rpb25zKTogUG9VcGxvYWRGaWxlUmVzdHJpY3Rpb25zIHtcbiAgICBpZiAoIXJlc3RyaWN0aW9ucykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG1pbkZpbGVTaXplID0gcmVzdHJpY3Rpb25zLm1pbkZpbGVTaXplIHx8IHBvVXBsb2FkTWluRmlsZVNpemU7XG4gICAgY29uc3QgbWF4RmlsZVNpemUgPSByZXN0cmljdGlvbnMubWF4RmlsZVNpemUgfHwgcG9VcGxvYWRNYXhGaWxlU2l6ZTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5yZXN0cmljdGlvbnMsXG4gICAgICBtYXhGaWxlU2l6ZTogbWF4RmlsZVNpemUsXG4gICAgICBtaW5GaWxlU2l6ZTogbWluRmlsZVNpemVcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVFeGlzdHNGaWxlSW5GaWxlcyhuZXdGaWxlOiBQb1VwbG9hZEZpbGUsIGZpbGVzOiBBcnJheTxQb1VwbG9hZEZpbGU+KSB7XG4gICAgY29uc3QgZmlsZUluZGV4ID0gZmlsZXMuZmluZEluZGV4KFxuICAgICAgY3VycmVudEZpbGUgPT4gbmV3RmlsZS5uYW1lID09PSBjdXJyZW50RmlsZS5uYW1lICYmIGN1cnJlbnRGaWxlLnN0YXR1cyAhPT0gUG9VcGxvYWRTdGF0dXMuVXBsb2FkZWRcbiAgICApO1xuXG4gICAgaWYgKGZpbGVJbmRleCAhPT0gLTEpIHtcbiAgICAgIGZpbGVzLnNwbGljZShmaWxlSW5kZXgsIDEsIG5ld0ZpbGUpO1xuICAgIH1cblxuICAgIHJldHVybiBmaWxlcztcbiAgfVxuXG4gIGFic3RyYWN0IHNlbmRGZWVkYmFjaygpOiB2b2lkO1xuXG4gIGFic3RyYWN0IHNldERpcmVjdG9yeUF0dHJpYnV0ZSh2YWx1ZTogYm9vbGVhbik7XG59XG4iXX0=
@@ -8354,6 +8354,14 @@ class PoCheckboxGroupBaseComponent {
8354
8354
  * @description
8355
8355
  *
8356
8356
  * Função para atualizar o `ngModel` do componente, necessário quando não for utilizado dentro da tag form.
8357
+ *
8358
+ * Na versão 12.2.0 do Angular a verificação `strictTemplates` vem true como default. Portanto, para utilizar
8359
+ * two-way binding no componente deve se utilizar da seguinte forma:
8360
+ *
8361
+ * ```
8362
+ * <po-checkbox-group ... [ngModel]="checkboxgroupModel" (ngModelChange)="checkboxgroupModel = $event"> </po-checkbox-group>
8363
+ * ```
8364
+ *
8357
8365
  */
8358
8366
  this.ngModelChange = new EventEmitter();
8359
8367
  /**
@@ -14162,6 +14170,14 @@ class PoComboBaseComponent {
14162
14170
  * @description
14163
14171
  *
14164
14172
  * Função para atualizar o ngModel do componente, necessário quando não for utilizado dentro da tag form.
14173
+ *
14174
+ * Na versão 12.2.0 do Angular a verificação `strictTemplates` vem true como default. Portanto, para utilizar
14175
+ * two-way binding no componente deve se utilizar da seguinte forma:
14176
+ *
14177
+ * ```
14178
+ * <po-combo ... [ngModel]="comboModel" (ngModelChange)="comboModel = $event"> </po-combo>
14179
+ * ```
14180
+ *
14165
14181
  */
14166
14182
  this.ngModelChange = new EventEmitter();
14167
14183
  this.cacheOptions = [];
@@ -22616,6 +22632,13 @@ class PoSelectComponent extends PoFieldValidateModel {
22616
22632
  * @description
22617
22633
  *
22618
22634
  * Função para atualizar o ngModel do componente, necessário quando não for utilizado dentro da tag form.
22635
+ *
22636
+ * Na versão 12.2.0 do Angular a verificação `strictTemplates` vem true como default. Portanto, para utilizar
22637
+ * two-way binding no componente deve se utilizar da seguinte forma:
22638
+ *
22639
+ * ```
22640
+ * <po-select ... [ngModel]="selectModel" (ngModelChange)="selectModel = $event"> </po-select>
22641
+ * ```
22619
22642
  */
22620
22643
  this.ngModelChange = new EventEmitter();
22621
22644
  /**
@@ -24030,6 +24053,14 @@ class PoUploadBaseComponent {
24030
24053
  * @description
24031
24054
  *
24032
24055
  * Função para atualizar o ngModel do componente, necessário quando não for utilizado dentro da *tag* `form`.
24056
+ *
24057
+ * Na versão 12.2.0 do Angular a verificação `strictTemplates` vem true como default. Portanto, para utilizar
24058
+ * two-way binding no componente deve se utilizar da seguinte forma:
24059
+ *
24060
+ * ```
24061
+ * <po-upload ... [ngModel]="UploadModel" (ngModelChange)="uploadModel = $event"> </po-upload>
24062
+ * ```
24063
+ *
24033
24064
  */
24034
24065
  this.ngModelChange = new EventEmitter();
24035
24066
  this.extensionNotAllowed = 0;