@snabcentr/client-ui 4.18.0 → 4.19.0

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.
Files changed (25) hide show
  1. package/contacts/sc-contacts.module.d.ts +5 -4
  2. package/contragents/contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component.d.ts +5 -1
  3. package/contragents/new-contragent-form/sc-new-contragent-form.component.d.ts +6 -0
  4. package/contragents/sc-contragents.module.d.ts +4 -3
  5. package/directives/sc-null-on-empty-value-transformer.directive.d.ts +8 -0
  6. package/esm2022/auth/sign-up-form/sc-sign-up-form.component.mjs +2 -1
  7. package/esm2022/contacts/new-contact-form/sc-new-contact-form.component.mjs +7 -6
  8. package/esm2022/contacts/sc-contacts.module.mjs +5 -2
  9. package/esm2022/contragents/contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component.mjs +8 -3
  10. package/esm2022/contragents/new-contragent-form/sc-new-contragent-form.component.mjs +16 -5
  11. package/esm2022/contragents/sc-contragents.module.mjs +4 -1
  12. package/esm2022/directives/sc-null-on-empty-value-transformer.directive.mjs +30 -0
  13. package/esm2022/form-fields/suggestion-field/sc-suggestion-field.component.mjs +2 -1
  14. package/esm2022/masks/index.mjs +2 -1
  15. package/esm2022/masks/sc-ogrn-mask.mjs +13 -0
  16. package/esm2022/providers/null-on-empty-value-transformer/index.mjs +2 -0
  17. package/esm2022/providers/null-on-empty-value-transformer/sc-null-on-empty-value-transformer.mjs +31 -0
  18. package/fesm2022/snabcentr-client-ui.mjs +94 -7
  19. package/fesm2022/snabcentr-client-ui.mjs.map +1 -1
  20. package/masks/index.d.ts +1 -0
  21. package/masks/sc-ogrn-mask.d.ts +9 -0
  22. package/package.json +2 -2
  23. package/providers/null-on-empty-value-transformer/index.d.ts +1 -0
  24. package/providers/null-on-empty-value-transformer/sc-null-on-empty-value-transformer.d.ts +21 -0
  25. package/release_notes.tmp +3 -3
@@ -204,6 +204,7 @@ export class ScSuggestionFieldComponent {
204
204
  name: suggestion.name,
205
205
  inn: suggestion.inn,
206
206
  kpp: suggestion.kpp,
207
+ ogrn: suggestion.ogrn ?? null,
207
208
  okpo: suggestion.okpo,
208
209
  directorName: suggestion.directorName,
209
210
  directorPosition: suggestion.directorPosition,
@@ -231,4 +232,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
231
232
  }], selectedClick: [{
232
233
  type: Output
233
234
  }] } });
234
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc3VnZ2VzdGlvbi1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvZm9ybS1maWVsZHMvc3VnZ2VzdGlvbi1maWVsZC9zYy1zdWdnZXN0aW9uLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9mb3JtLWZpZWxkcy9zdWdnZXN0aW9uLWZpZWxkL3NjLXN1Z2dlc3Rpb24tZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkNBQTJDO0FBRTNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEksT0FBTyxFQUFhLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFDSCx5QkFBeUIsRUFJekIsaUJBQWlCLEVBRWpCLDBCQUEwQixHQUU3QixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RyxPQUFPLEVBQUUsa0JBQWtCLEVBQW1CLE1BQU0sZ0JBQWdCLENBQUM7QUFDckUsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSwwQkFBMEIsRUFB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QUFDLElBQUk7WUFDckIsR0FBRyxFQUFFLFVBQVUsQ0FBQyxHQUFHO1lBQ25CLEdBQUcsRUFBRSxVQUFVLENBQUMsR0FBRztZQUNuQixJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUk7WUFDckIsWUFBWSxFQUFFLFVBQVUsQ0FBQyxZQUFZO1lBQ3JDLGdCQUFnQixFQUFFLFVBQVUsQ0FBQyxnQkFBZ0I7WUFDN0MsWUFBWSxFQUFFLFVBQVUsQ0FBQyxZQUFZO1lBQ3JDLGFBQWEsRUFBRSxVQUFVLENBQUMsYUFBYTtZQUN2QyxhQUFhLEVBQUUsVUFBVSxDQUFDLGFBQWE7U0FDMUMsRUFDRCxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FDdkIsQ0FBQztRQUVGLElBQUksQ0FBQyxxQkFBcUIsQ0FBQywrQkFBK0IsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDeEYsQ0FBQzsrR0EzUFEsMEJBQTBCLGtCQWlFdkIsU0FBUzttR0FqRVosMEJBQTBCLDRLQzlCdkMsOGxGQW9EQTs7NEZEdEJhLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDSSxxQkFBcUIsbUJBRWQsdUJBQXVCLENBQUMsTUFBTTs7MEJBa0UxQyxRQUFROzswQkFDUixNQUFNOzJCQUFDLFNBQVM7MkVBNURkLElBQUk7c0JBRFYsS0FBSztnQkFRQyxrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBT0MsYUFBYTtzQkFEbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXMgKi9cblxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgaW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFNraXBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgU0NfTUlOX0xFTkdUSF9TRUFSQ0hfVEVSTSxcbiAgICBTY0lBcGlFcnJvclJlc3BvbnNlLFxuICAgIFNjSVN1Z2dlc3Rpb25BZGRyZXNzLFxuICAgIFNjSVN1Z2dlc3Rpb25Pcmdhbml6YXRpb24sXG4gICAgU2NJU3VnZ2VzdGlvblR5cGUsXG4gICAgU2NTdWdnZXN0aW9uLFxuICAgIFNjU3VnZ2VzdGlvbkFkZHJlc3NRdWFsaXR5LFxuICAgIFNjU3VnZ2VzdGlvblNlcnZpY2UsXG59IGZyb20gJ0BzbmFiY2VudHIvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgdHVpQ29udHJvbFZhbHVlLCB0dWlJc0ZhbHN5LCB0dWlJc1ByZXNlbnQsIHR1aU1hcmtDb250cm9sQXNUb3VjaGVkQW5kVmFsaWRhdGUgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IFRVSV9EQVRBX0xJU1RfSE9TVCwgVHVpRGF0YUxpc3RIb3N0IH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHNoYXJlLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTY0FkZHJlc3NRdWFsaXR5U2VydmljZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvYWRkcmVzcy1xdWFsaXR5L3NjLWFkZHJlc3MtcXVhbGl0eS5zZXJ2aWNlJztcbmltcG9ydCB7IFNDX0FMTE9XX1NFTEVDVF9URVJNSU5BVEVEIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL3NjLWFsbG93LXNlbGVjdC10ZXJtaW5hdGVkJztcblxuLyoqXG4gKiDQmtC+0LzQv9C+0L3QtdC90YIg0L/QvtC00YHQutCw0LfQvtC6INC00LvRjyDQv9C+0LvRjyDQstCy0L7QtNCwLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NjLXN1Z2dlc3Rpb24tZmllbGQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zYy1zdWdnZXN0aW9uLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2NTdWdnZXN0aW9uRmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIC8qKlxuICAgICAqINCi0LjQvyDQv9C+0LTRgdC60LDQt9C+0LouXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdHlwZTogU2NJU3VnZ2VzdGlvblR5cGUgPSBTY0lTdWdnZXN0aW9uVHlwZS5maW87XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INGN0LvQtdC80LXQvdGC0Ysg0L/QvtC00YHQutCw0LfQvtC6INC/0L7QutCw0LfRi9Cy0LDRjtGCINC/0L7QvNC10YLQutGDINC+INC/0L7Qu9C90L7RgtC1INCw0LTRgNC10YHQsC5cbiAgICAgKiDQntGC0LrQu9GO0YfQsNC10YLRgdGPINGC0LDQvCwg0LPQtNC1INCw0LTRgNC10YHQsCDQuNC3INC/0L7QtNGB0LrQsNC30LrQuCDQv9C+INC+0YDQs9Cw0L3QuNC30LDRhtC40Lgg0L3QtSDQv9GA0LjQvNC10L3Rj9GO0YLRgdGPLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNob3dBZGRyZXNzUXVhbGl0eTogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LHRi9GC0LjQtSDQstGL0LHQvtGA0LAg0YDQtdC30YPQu9GM0YLQsNGC0LAg0L/QvtC00YHQutCw0LfQutC4LlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBzZWxlY3RlZENsaWNrOiBFdmVudEVtaXR0ZXI8U2NTdWdnZXN0aW9uPiA9IG5ldyBFdmVudEVtaXR0ZXI8U2NTdWdnZXN0aW9uPigpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC/0L7QtNGB0LrQsNC30L7Qui5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3VnZ2VzdGlvbnMkPzogT2JzZXJ2YWJsZTxTY1N1Z2dlc3Rpb25bXSB8IG51bGw+O1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INGB0L7RgdGC0L7Rj9C90LjQtSDQt9Cw0L/RgNC+0YHQsCDQv9C+0LTRgdC60LDQt9C+0LouXG4gICAgICovXG4gICAgcHVibGljIGxvYWRpbmckPzogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAgIC8qKlxuICAgICAqINCf0LXRgNC10YfQuNGB0LvQtdC90LjQtSDRgtC40L/QvtCyINC/0L7QtNGB0LrQsNC30L7Qui5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgc3VnZ2VzdGlvblR5cGU6IHR5cGVvZiBTY0lTdWdnZXN0aW9uVHlwZSA9IFNjSVN1Z2dlc3Rpb25UeXBlO1xuXG4gICAgLyoqXG4gICAgICog0JrQvtC80L/QvtC90LXQvdGCINC+0LHRkdGA0YLQutCwINCy0YvQv9Cw0LTQsNGO0YnQtdCz0L4g0YHQv9C40YHQutCwLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaG9zdDogVHVpRGF0YUxpc3RIb3N0PHVua25vd24+IHwgbnVsbCA9IGluamVjdDxUdWlEYXRhTGlzdEhvc3Q8dW5rbm93bj4+KFRVSV9EQVRBX0xJU1RfSE9TVCwge1xuICAgICAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqINCc0LjQvdC40LzQsNC70YzQvdCw0Y8g0LTQu9C40L3QsCDQv9C+0LjRgdC60L7QstC+0LPQviDQt9Cw0L/RgNC+0YHQsCDQtNC70Y8g0L/QvtC70YPRh9C10L3QuNGPINC00LDQvdC90YvRhS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IG1pbkxlbmd0aFNlYXJjaFRlcm06IG51bWJlciA9IGluamVjdChTQ19NSU5fTEVOR1RIX1NFQVJDSF9URVJNKTtcblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6LCDRh9GC0L4g0YDQsNC30YDQtdGI0LXQvdC+INCy0YvQsdC40YDQsNGC0Ywg0LfQsNC/0LjRgdC4INC70LjQutCy0LjQtNC40YDQvtCy0LDQvdC90YvRhSDQvtGA0LPQsNC90LjQt9Cw0YbQuNC5LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYWxsb3dTZWxlY3RUZXJtaW5hdGVkOiBib29sZWFuID0gaW5qZWN0KFNDX0FMTE9XX1NFTEVDVF9URVJNSU5BVEVEKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgS3RgNC10LXRgdGC0YAg0LrQsNGH0LXRgdGC0LLQsCDQsNC00YDQtdGB0L7Qsiwg0LLRi9Cx0YDQsNC90L3Ri9GFINC40Lcg0L/QvtC00YHQutCw0LfQvtC6LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYWRkcmVzc1F1YWxpdHlTZXJ2aWNlID0gaW5qZWN0KFNjQWRkcmVzc1F1YWxpdHlTZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NTdWdnZXN0aW9uRmllbGRDb21wb25lbnR9LlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbnRyb2wg0JrQvtC90YLRgNC+0Lsg0L/QvtC70Y8g0LLQstC+0LTQsC5cbiAgICAgKiBAcGFyYW0gc3VnZ2VzdGlvblNlcnZpY2Ug0KHQtdGA0LLQuNGBINGA0LDQsdC+0YLRiyDRgSBBUEkg0L/QvtC00YHQutCw0LfQvtC6LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgQFNraXBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBjb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgc3VnZ2VzdGlvblNlcnZpY2U6IFNjU3VnZ2VzdGlvblNlcnZpY2VcbiAgICApIHt9XG5cbiAgICAvKiogQGluaGVyaXREb2MgKi9cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QkID0gdHVpQ29udHJvbFZhbHVlPHN0cmluZyB8IG51bGw+KHRoaXMuY29udHJvbCkucGlwZShcbiAgICAgICAgICAgIGRlYm91bmNlVGltZSg1MDApLFxuICAgICAgICAgICAgZmlsdGVyKHR1aUlzUHJlc2VudCksXG4gICAgICAgICAgICBtYXAoKHRlcm0pID0+IHRlcm0udHJpbSgpKSxcbiAgICAgICAgICAgIGZpbHRlcigodGVybSkgPT4gdGVybS5sZW5ndGggPj0gdGhpcy5taW5MZW5ndGhTZWFyY2hUZXJtKSxcbiAgICAgICAgICAgIHN3aXRjaE1hcCgodGVybTogc3RyaW5nKSA9PiB0aGlzLnN1Z2dlc3Rpb25TZXJ2aWNlLmdldERhdGE8U2NTdWdnZXN0aW9uPih0ZXJtLCB0aGlzLnR5cGUpLnBpcGUoc3RhcnRXaXRoKG51bGwpKSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogdW5rbm93bikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yUmVzcG9uc2UgPSBlcnJvci5lcnJvciBhcyBTY0lBcGlFcnJvclJlc3BvbnNlO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbnRyb2wuY29udHJvbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHVpTWFya0NvbnRyb2xBc1RvdWNoZWRBbmRWYWxpZGF0ZSh0aGlzLmNvbnRyb2wuY29udHJvbCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbC5jb250cm9sLnNldEVycm9ycyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyUmVzcG9uc2U6IFtlcnJvclJlc3BvbnNlLm1lc3NhZ2UgfHwgJ9Ce0YjQuNCx0LrQsCDRgdC10YDQstC10YDQsDog0L/QvtC20LDQu9GD0LnRgdGC0LAsINC/0LXRgNC10LfQsNCz0YDRg9C30LjRgtC1INGB0YLRgNCw0L3QuNGG0YMg0Lgv0LjQu9C4INCy0YvQv9C+0LvQvdC40YLQtSDQt9Cw0L/RgNC+0YEg0L/QvtC30LbQtS4nXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gb2YoW10pKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgc2hhcmUoKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuc3VnZ2VzdGlvbnMkID0gcmVxdWVzdCQucGlwZShmaWx0ZXIodHVpSXNQcmVzZW50KSwgc3RhcnRXaXRoKG51bGwpKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nJCA9IHJlcXVlc3QkLnBpcGUobWFwKHR1aUlzRmFsc3kpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQl9Cw0L/QvtC70L3QtdC90LjQtSDQv9C+0LvQtdC5INC+0YHQvdC+0LLQtSDQstGL0LHRgNCw0L3QvdC+0Lkg0L/QvtC00YHQutCw0LfQutC4LlxuICAgICAqXG4gICAgICogQHBhcmFtIHN1Z2dlc3Rpb24g0J7QsdGK0LXQutGCINC/0L7QtNGB0LrQsNC30LrQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgb25TZWxlY3RlZChzdWdnZXN0aW9uOiBTY1N1Z2dlc3Rpb24pOiB2b2lkIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgU2NJU3VnZ2VzdGlvblR5cGUuZmlvOlxuICAgICAgICAgICAgICAgIGlmICgnZmlvJyBpbiBzdWdnZXN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbC5jb250cm9sPy5wYXRjaFZhbHVlKHN1Z2dlc3Rpb24uZmlvLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBTY0lTdWdnZXN0aW9uVHlwZS5hZGRyZXNzOlxuICAgICAgICAgICAgICAgIGlmICgnYWRkcmVzc1N0cmluZycgaW4gc3VnZ2VzdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGx5QWRkcmVzc1N1Z2dlc3Rpb24oc3VnZ2VzdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBTY0lTdWdnZXN0aW9uVHlwZS5iYW5rOlxuICAgICAgICAgICAgICAgIGlmICgnaW5uJyBpbiBzdWdnZXN0aW9uICYmICdiaWMnIGluIHN1Z2dlc3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuY29udHJvbC5jb250cm9sPy5wYXJlbnQgYXMgRm9ybUdyb3VwKS5wYXRjaFZhbHVlKFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhbmtOYW1lOiBzdWdnZXN0aW9uLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmljOiBzdWdnZXN0aW9uLmJpYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3JyZXNwb25kZW50QWNjb3VudDogc3VnZ2VzdGlvbi5jb3JyZXNwb25kZW50QWNjb3VudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGVtaXRFdmVudDogZmFsc2UgfVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgU2NJU3VnZ2VzdGlvblR5cGUub3JnYW5pemF0aW9uOlxuICAgICAgICAgICAgICAgIGlmICgnaW5uJyBpbiBzdWdnZXN0aW9uICYmICEoJ2JpYycgaW4gc3VnZ2VzdGlvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBseU9yZ2FuaXphdGlvblN1Z2dlc3Rpb24oc3VnZ2VzdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBTY0lTdWdnZXN0aW9uVHlwZS5lbWFpbDpcbiAgICAgICAgICAgICAgICBpZiAoJ2VtYWlsJyBpbiBzdWdnZXN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbC5jb250cm9sPy5wYXRjaFZhbHVlKHN1Z2dlc3Rpb24uZW1haWwsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaG9zdD8uaGFuZGxlT3B0aW9uKSB7XG4gICAgICAgICAgICAvLyDQlNGR0YDQs9Cw0LXQvCDQstC90YPRgtGA0LXQvdC90LjQuSDQvtCx0YDQsNCx0L7RgtGH0LjQuiDQstGL0LHQvtGA0LAg0Y3Qu9C10LzQtdC90YLQsCDQstGL0L/QsNC00LDRjtGJ0LXQs9C+INGB0L/QuNGB0LrQsCDQtNC70Y8g0YDQtdGI0LXQvdC40Y8g0L/RgNC+0LHQu9C10LzRiyDQt9Cw0LrRgNGL0YLQuNGPINCy0YvQv9Cw0LTQsNGO0YnQtdCz0L4g0YHQv9C40YHQutCwINC/0L7QtNGB0LrQsNC30LrQuC5cbiAgICAgICAgICAgIHRoaXMuaG9zdC5oYW5kbGVPcHRpb24odGhpcy5jb250cm9sLnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbGVjdGVkQ2xpY2suZW1pdChzdWdnZXN0aW9uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQv9GA0LjQt9C90LDQuiwg0YfRgtC+INGN0LvQtdC80LXQvdGCINCy0YvQv9Cw0LTQsNGO0YnQtdCz0L4g0YHQv9C40YHQutCwINC/0L7QtNGB0LrQsNC30L7QuiDQvtGC0LrQu9GO0YfRkdC9LlxuICAgICAqXG4gICAgICogQHBhcmFtIHN1Z2dlc3Rpb24g0J7QsdGK0LXQutGCINC/0L7QtNGB0LrQsNC30LrQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgaXNEaXNhYmxlZFN1Z2dlc3Rpb24oc3VnZ2VzdGlvbjogU2NTdWdnZXN0aW9uKTogYm9vbGVhbiB7XG4gICAgICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFNjSVN1Z2dlc3Rpb25UeXBlLmZpbzpcbiAgICAgICAgICAgIGNhc2UgU2NJU3VnZ2VzdGlvblR5cGUuYWRkcmVzczpcbiAgICAgICAgICAgIGNhc2UgU2NJU3VnZ2VzdGlvblR5cGUuYmFuazpcbiAgICAgICAgICAgIGNhc2UgU2NJU3VnZ2VzdGlvblR5cGUuZW1haWw6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgY2FzZSBTY0lTdWdnZXN0aW9uVHlwZS5vcmdhbml6YXRpb246XG4gICAgICAgICAgICAgICAgaWYgKCdpbm4nIGluIHN1Z2dlc3Rpb24gJiYgISgnYmljJyBpbiBzdWdnZXN0aW9uKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gIXRoaXMuYWxsb3dTZWxlY3RUZXJtaW5hdGVkICYmIHRoaXMuaXNPcmdUZXJtaW5hdGVkKHN1Z2dlc3Rpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGC0LXQutGB0YIg0L/QvtC80LXRgtC60Lgg0L4g0LrQsNGH0LXRgdGC0LLQtSDQsNC00YDQtdGB0LAg0LTQu9GPINGN0LvQtdC80LXQvdGC0LAg0LLRi9C/0LDQtNCw0Y7RidC10LPQviDRgdC/0LjRgdC60LAg0L/QvtC00YHQutCw0LfQvtC6INC70LjQsdC+IG51bGwsINC60L7Qs9C00LAg0L/QvtC80LXRgtC60LAg0L3QtSDRgtGA0LXQsdGD0LXRgtGB0Y8uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcXVhbGl0eSDQmtCw0YfQtdGB0YLQstC+ICjQv9C+0LvQvdC+0YLQsCkg0LDQtNGA0LXRgdCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRBZGRyZXNzUXVhbGl0eVdhcm5pbmcocXVhbGl0eTogU2NTdWdnZXN0aW9uQWRkcmVzc1F1YWxpdHkgfCBudWxsIHwgdW5kZWZpbmVkKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIGlmICghdGhpcy5zaG93QWRkcmVzc1F1YWxpdHkpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgc3dpdGNoIChxdWFsaXR5KSB7XG4gICAgICAgICAgICBjYXNlIFNjU3VnZ2VzdGlvbkFkZHJlc3NRdWFsaXR5LnVuZGV0ZXJtaW5lZDpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9Cf0L7Qu9C90L7RgtCwINCw0LTRgNC10YHQsCDQvdC1INC+0L/RgNC10LTQtdC70LXQvdCwJztcbiAgICAgICAgICAgIGNhc2UgU2NTdWdnZXN0aW9uQWRkcmVzc1F1YWxpdHkuaW5jb21wbGV0ZTpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9Cd0LXQv9C+0LvQvdGL0Lkg0LDQtNGA0LXRgSc7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YLQtdC60YHRgiDQv9C+0LzQtdGC0LrQuCDQviDQutCw0YfQtdGB0YLQstC1INGO0YDQuNC00LjRh9C10YHQutC+0LPQviDQsNC00YDQtdGB0LAg0LTQu9GPINC/0L7QtNGB0LrQsNC30LrQuCDQv9C+INC+0YDQs9Cw0L3QuNC30LDRhtC40Lgg0LvQuNCx0L4gbnVsbCxcbiAgICAgKiDQutC+0LPQtNCwINC/0L7QvNC10YLQutCwINC90LUg0YLRgNC10LHRg9C10YLRgdGPLCDQsiDRgtC+0Lwg0YfQuNGB0LvQtSDQutC+0LPQtNCwINGDINC+0YDQs9Cw0L3QuNC30LDRhtC40Lgg0L3QtdGCINGO0YDQuNC00LjRh9C10YHQutC+0LPQviDQsNC00YDQtdGB0LAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3VnZ2VzdGlvbiDQntCx0YrQtdC60YIg0L/QvtC00YHQutCw0LfQutC4INC/0L4g0L7RgNCz0LDQvdC40LfQsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0T3JnYW5pemF0aW9uQWRkcmVzc1F1YWxpdHlXYXJuaW5nKHN1Z2dlc3Rpb246IFNjSVN1Z2dlc3Rpb25Pcmdhbml6YXRpb24pOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHN1Z2dlc3Rpb24ubGVnYWxBZGRyZXNzID8gdGhpcy5nZXRBZGRyZXNzUXVhbGl0eVdhcm5pbmcoc3VnZ2VzdGlvbi5sZWdhbEFkZHJlc3NRdWFsaXR5KSA6IG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J/RgNC+0LLQtdGA0Y/QtdGCINC/0YDQtdC60YDQsNGJ0LXQvdCwINC70Lgg0LTQtdGP0YLQtdC70YzQvdC+0YHRgtGMINGD0LrQsNC30LDQvdC90L7QuSDQvtGA0LPQsNC90LjQt9Cw0YbQuNC4LlxuICAgICAqXG4gICAgICogQHBhcmFtIHN1Z2dlc3Rpb24g0J7QsdGK0LXQutGCINC/0L7QtNGB0LrQsNC30LrQuCDQv9C+INC+0YDQs9Cw0L3QuNC30LDRhtC40LguXG4gICAgICovXG4gICAgcHVibGljIGlzT3JnVGVybWluYXRlZChzdWdnZXN0aW9uOiBTY0lTdWdnZXN0aW9uT3JnYW5pemF0aW9uKTogYm9vbGVhbiB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLW1lbWJlci1hY2Nlc3NcbiAgICAgICAgcmV0dXJuIHN1Z2dlc3Rpb24ucmF3RGF0YT8uWydzdGF0ZSddPy5zdGF0dXMgPT09ICdMSVFVSURBVEVEJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQl9Cw0L/QvtC70L3Rj9C10YIg0LrQvtC90YLRgNC+0Lsg0YHRgtGA0L7QutC+0Lkg0LLRi9Cx0YDQsNC90L3QvtCz0L4g0LDQtNGA0LXRgdCwINC4INGA0LXQs9C40YHRgtGA0LjRgNGD0LXRgiDQutCw0YfQtdGB0YLQstC+INCw0LTRgNC10YHQsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzdWdnZXN0aW9uINCe0LHRitC10LrRgiDQv9C+0LTRgdC60LDQt9C60Lgg0L/QviDQsNC00YDQtdGB0YMuXG4gICAgICovXG4gICAgcHJpdmF0ZSBhcHBseUFkZHJlc3NTdWdnZXN0aW9uKHN1Z2dlc3Rpb246IFNjSVN1Z2dlc3Rpb25BZGRyZXNzKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udHJvbC5jb250cm9sPy5wYXRjaFZhbHVlKHN1Z2dlc3Rpb24uYWRkcmVzc1N0cmluZywgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wuY29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5hZGRyZXNzUXVhbGl0eVNlcnZpY2Uuc2V0UXVhbGl0eSh0aGlzLmNvbnRyb2wuY29udHJvbCwgc3VnZ2VzdGlvbi5xdWFsaXR5ID8/IG51bGwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JfQsNC/0L7Qu9C90Y/QtdGCINC/0L7Qu9GPINGA0L7QtNC40YLQtdC70YzRgdC60L7QuSDQs9GA0YPQv9C/0Ysg0LTQsNC90L3Ri9C80Lgg0LLRi9Cx0YDQsNC90L3QvtC5INC+0YDQs9Cw0L3QuNC30LDRhtC40Lgg0Lgg0YDQtdCz0LjRgdGC0YDQuNGA0YPQtdGCINC60LDRh9C10YHRgtCy0L4g0LXRkSDQsNC00YDQtdGB0L7Qsi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzdWdnZXN0aW9uINCe0LHRitC10LrRgiDQv9C+0LTRgdC60LDQt9C60Lgg0L/QviDQvtGA0LPQsNC90LjQt9Cw0YbQuNC4LlxuICAgICAqL1xuICAgIHByaXZhdGUgYXBwbHlPcmdhbml6YXRpb25TdWdnZXN0aW9uKHN1Z2dlc3Rpb246IFNjSVN1Z2dlc3Rpb25Pcmdhbml6YXRpb24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGFyZW50R3JvdXAgPSB0aGlzLmNvbnRyb2wuY29udHJvbD8ucGFyZW50IGFzIEZvcm1Hcm91cDtcblxuICAgICAgICBwYXJlbnRHcm91cC5wYXRjaFZhbHVlKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6IHN1Z2dlc3Rpb24ubmFtZSxcbiAgICAgICAgICAgICAgICBpbm46IHN1Z2dlc3Rpb24uaW5uLFxuICAgICAgICAgICAgICAgIGtwcDogc3VnZ2VzdGlvbi5rcHAsXG4gICAgICAgICAgICAgICAgb2twbzogc3VnZ2VzdGlvbi5va3BvLFxuICAgICAgICAgICAgICAgIGRpcmVjdG9yTmFtZTogc3VnZ2VzdGlvbi5kaXJlY3Rvck5hbWUsXG4gICAgICAgICAgICAgICAgZGlyZWN0b3JQb3NpdGlvbjogc3VnZ2VzdGlvbi5kaXJlY3RvclBvc2l0aW9uLFxuICAgICAgICAgICAgICAgIGxlZ2FsQWRkcmVzczogc3VnZ2VzdGlvbi5sZWdhbEFkZHJlc3MsXG4gICAgICAgICAgICAgICAgcG9zdGFsQWRkcmVzczogc3VnZ2VzdGlvbi5wb3N0YWxBZGRyZXNzLFxuICAgICAgICAgICAgICAgIGFjdHVhbEFkZHJlc3M6IHN1Z2dlc3Rpb24uYWN0dWFsQWRkcmVzcyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7IGVtaXRFdmVudDogZmFsc2UgfVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuYWRkcmVzc1F1YWxpdHlTZXJ2aWNlLnNldE9yZ2FuaXphdGlvbkFkZHJlc3NRdWFsaXRpZXMocGFyZW50R3JvdXAsIHN1Z2dlc3Rpb24pO1xuICAgIH1cbn1cbiIsIjx0dWktbG9hZGVyXG4gICAgc2l6ZT1cIm1cIlxuICAgIFtvdmVybGF5XT1cInRydWVcIlxuICAgIFtzaG93TG9hZGVyXT1cIiEhKGxvYWRpbmckIHwgYXN5bmMpXCJcbj5cbiAgICBAbGV0IG9wdGlvbnMgPSBzdWdnZXN0aW9ucyQgfCBhc3luYztcbiAgICA8dHVpLWRhdGEtbGlzdD5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCJcbiAgICAgICAgICAgIHR1aU9wdGlvblxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0ZWQob3B0aW9uKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFN1Z2dlc3Rpb24ob3B0aW9uKVwiXG4gICAgICAgICAgICBjbGFzcz1cImZsZXgtY29sICFpdGVtcy1zdGFydFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBsZXQgb3B0aW9uVmFsdWUgPSAkYW55KG9wdGlvbik7XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJ0eXBlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwic3VnZ2VzdGlvblR5cGUuZmlvXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC10dWktbGlua1wiPnt7IG9wdGlvblZhbHVlLmZpbyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJzdWdnZXN0aW9uVHlwZS5vcmdhbml6YXRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXR1aS1saW5rXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBvcHRpb25WYWx1ZS5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1sLTEgdGV4dC10dWktdGV4dC0wMlwiPtC40L3QvToge3sgb3B0aW9uVmFsdWUuaW5uIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzT3JnVGVybWluYXRlZChvcHRpb25WYWx1ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC10dWktbmVnYXRpdmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgINCb0LjQutCy0LjQtNC40YDQvtCy0LDQvdC+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXR1aS10ZXh0LTAyXCI+e3sgb3B0aW9uVmFsdWU/LmxlZ2FsQWRkcmVzcyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChnZXRPcmdhbml6YXRpb25BZGRyZXNzUXVhbGl0eVdhcm5pbmcob3B0aW9uVmFsdWUpOyBhcyBhZGRyZXNzUXVhbGl0eVdhcm5pbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC14cyB0ZXh0LXR1aS1zdGF0dXMtd2FybmluZ1wiPnt7IGFkZHJlc3NRdWFsaXR5V2FybmluZyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInN1Z2dlc3Rpb25UeXBlLmJhbmtcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXR1aS1saW5rXCI+e3sgb3B0aW9uVmFsdWUubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXR1aS10ZXh0LTAyXCI+e3sgb3B0aW9uVmFsdWUuYmljIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInN1Z2dlc3Rpb25UeXBlLmVtYWlsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC10dWktbGlua1wiPnt7IG9wdGlvblZhbHVlLmVtYWlsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInN1Z2dlc3Rpb25UeXBlLmFkZHJlc3NcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXR1aS1saW5rXCI+e3sgb3B0aW9uVmFsdWUuYWRkcmVzc1N0cmluZyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChnZXRBZGRyZXNzUXVhbGl0eVdhcm5pbmcob3B0aW9uVmFsdWUucXVhbGl0eSk7IGFzIGFkZHJlc3NRdWFsaXR5V2FybmluZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXhzIHRleHQtdHVpLXN0YXR1cy13YXJuaW5nXCI+e3sgYWRkcmVzc1F1YWxpdHlXYXJuaW5nIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC90dWktZGF0YS1saXN0PlxuPC90dWktbG9hZGVyPlxuIl19
235
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc3VnZ2VzdGlvbi1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvZm9ybS1maWVsZHMvc3VnZ2VzdGlvbi1maWVsZC9zYy1zdWdnZXN0aW9uLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9mb3JtLWZpZWxkcy9zdWdnZXN0aW9uLWZpZWxkL3NjLXN1Z2dlc3Rpb24tZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkNBQTJDO0FBRTNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEksT0FBTyxFQUFhLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFDSCx5QkFBeUIsRUFJekIsaUJBQWlCLEVBRWpCLDBCQUEwQixHQUU3QixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RyxPQUFPLEVBQUUsa0JBQWtCLEVBQW1CLE1BQU0sZ0JBQWdCLENBQUM7QUFDckUsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSwwQkFBMEIsRUFB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QUFDLElBQUk7WUFDckIsR0FBRyxFQUFFLFVBQVUsQ0FBQyxHQUFHO1lBQ25CLEdBQUcsRUFBRSxVQUFVLENBQUMsR0FBRztZQUNuQixJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUksSUFBSSxJQUFJO1lBQzdCLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtZQUNyQixZQUFZLEVBQUUsVUFBVSxDQUFDLFlBQVk7WUFDckMsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLGdCQUFnQjtZQUM3QyxZQUFZLEVBQUUsVUFBVSxDQUFDLFlBQVk7WUFDckMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxhQUFhO1lBQ3ZDLGFBQWEsRUFBRSxVQUFVLENBQUMsYUFBYTtTQUMxQyxFQUNELEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUN2QixDQUFDO1FBRUYsSUFBSSxDQUFDLHFCQUFxQixDQUFDLCtCQUErQixDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN4RixDQUFDOytHQTVQUSwwQkFBMEIsa0JBaUV2QixTQUFTO21HQWpFWiwwQkFBMEIsNEtDOUJ2Qyw4bEZBb0RBOzs0RkR0QmEsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNJLHFCQUFxQixtQkFFZCx1QkFBdUIsQ0FBQyxNQUFNOzswQkFrRTFDLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsU0FBUzsyRUE1RGQsSUFBSTtzQkFEVixLQUFLO2dCQVFDLGtCQUFrQjtzQkFEeEIsS0FBSztnQkFPQyxhQUFhO3NCQURuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgY2xhc3MtbWV0aG9kcy11c2UtdGhpcyAqL1xuXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBpbmplY3QsIElucHV0LCBPbkluaXQsIE91dHB1dCwgU2tpcFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBTQ19NSU5fTEVOR1RIX1NFQVJDSF9URVJNLFxuICAgIFNjSUFwaUVycm9yUmVzcG9uc2UsXG4gICAgU2NJU3VnZ2VzdGlvbkFkZHJlc3MsXG4gICAgU2NJU3VnZ2VzdGlvbk9yZ2FuaXphdGlvbixcbiAgICBTY0lTdWdnZXN0aW9uVHlwZSxcbiAgICBTY1N1Z2dlc3Rpb24sXG4gICAgU2NTdWdnZXN0aW9uQWRkcmVzc1F1YWxpdHksXG4gICAgU2NTdWdnZXN0aW9uU2VydmljZSxcbn0gZnJvbSAnQHNuYWJjZW50ci9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyB0dWlDb250cm9sVmFsdWUsIHR1aUlzRmFsc3ksIHR1aUlzUHJlc2VudCwgdHVpTWFya0NvbnRyb2xBc1RvdWNoZWRBbmRWYWxpZGF0ZSB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHsgVFVJX0RBVEFfTElTVF9IT1NULCBUdWlEYXRhTGlzdEhvc3QgfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc2hhcmUsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNjQWRkcmVzc1F1YWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9hZGRyZXNzLXF1YWxpdHkvc2MtYWRkcmVzcy1xdWFsaXR5LnNlcnZpY2UnO1xuaW1wb3J0IHsgU0NfQUxMT1dfU0VMRUNUX1RFUk1JTkFURUQgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvc2MtYWxsb3ctc2VsZWN0LXRlcm1pbmF0ZWQnO1xuXG4vKipcbiAqINCa0L7QvNC/0L7QvdC10L3RgiDQv9C+0LTRgdC60LDQt9C+0Log0LTQu9GPINC/0L7Qu9GPINCy0LLQvtC00LAuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2Mtc3VnZ2VzdGlvbi1maWVsZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjLXN1Z2dlc3Rpb24tZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTY1N1Z2dlc3Rpb25GaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLyoqXG4gICAgICog0KLQuNC/INC/0L7QtNGB0LrQsNC30L7Qui5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0eXBlOiBTY0lTdWdnZXN0aW9uVHlwZSA9IFNjSVN1Z2dlc3Rpb25UeXBlLmZpbztcblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6LCDRh9GC0L4g0Y3Qu9C10LzQtdC90YLRiyDQv9C+0LTRgdC60LDQt9C+0Log0L/QvtC60LDQt9GL0LLQsNGO0YIg0L/QvtC80LXRgtC60YMg0L4g0L/QvtC70L3QvtGC0LUg0LDQtNGA0LXRgdCwLlxuICAgICAqINCe0YLQutC70Y7Rh9Cw0LXRgtGB0Y8g0YLQsNC8LCDQs9C00LUg0LDQtNGA0LXRgdCwINC40Lcg0L/QvtC00YHQutCw0LfQutC4INC/0L4g0L7RgNCz0LDQvdC40LfQsNGG0LjQuCDQvdC1INC/0YDQuNC80LXQvdGP0Y7RgtGB0Y8uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd0FkZHJlc3NRdWFsaXR5OiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqINCh0L7QsdGL0YLQuNC1INCy0YvQsdC+0YDQsCDRgNC10LfRg9C70YzRgtCw0YLQsCDQv9C+0LTRgdC60LDQt9C60LguXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHNlbGVjdGVkQ2xpY2s6IEV2ZW50RW1pdHRlcjxTY1N1Z2dlc3Rpb24+ID0gbmV3IEV2ZW50RW1pdHRlcjxTY1N1Z2dlc3Rpb24+KCk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0L/QvtC00YHQutCw0LfQvtC6LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdWdnZXN0aW9ucyQ/OiBPYnNlcnZhYmxlPFNjU3VnZ2VzdGlvbltdIHwgbnVsbD47XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0YHQvtGB0YLQvtGP0L3QuNC1INC30LDQv9GA0L7RgdCwINC/0L7QtNGB0LrQsNC30L7Qui5cbiAgICAgKi9cbiAgICBwdWJsaWMgbG9hZGluZyQ/OiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gICAgLyoqXG4gICAgICog0J/QtdGA0LXRh9C40YHQu9C10L3QuNC1INGC0LjQv9C+0LIg0L/QvtC00YHQutCw0LfQvtC6LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBzdWdnZXN0aW9uVHlwZTogdHlwZW9mIFNjSVN1Z2dlc3Rpb25UeXBlID0gU2NJU3VnZ2VzdGlvblR5cGU7XG5cbiAgICAvKipcbiAgICAgKiDQmtC+0LzQv9C+0L3QtdC90YIg0L7QsdGR0YDRgtC60LAg0LLRi9C/0LDQtNCw0Y7RidC10LPQviDRgdC/0LjRgdC60LAuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBob3N0OiBUdWlEYXRhTGlzdEhvc3Q8dW5rbm93bj4gfCBudWxsID0gaW5qZWN0PFR1aURhdGFMaXN0SG9zdDx1bmtub3duPj4oVFVJX0RBVEFfTElTVF9IT1NULCB7XG4gICAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICog0JzQuNC90LjQvNCw0LvRjNC90LDRjyDQtNC70LjQvdCwINC/0L7QuNGB0LrQvtCy0L7Qs9C+INC30LDQv9GA0L7RgdCwINC00LvRjyDQv9C+0LvRg9GH0LXQvdC40Y8g0LTQsNC90L3Ri9GFLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbWluTGVuZ3RoU2VhcmNoVGVybTogbnVtYmVyID0gaW5qZWN0KFNDX01JTl9MRU5HVEhfU0VBUkNIX1RFUk0pO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0LosINGH0YLQviDRgNCw0LfRgNC10YjQtdC90L4g0LLRi9Cx0LjRgNCw0YLRjCDQt9Cw0L/QuNGB0Lgg0LvQuNC60LLQuNC00LjRgNC+0LLQsNC90L3Ri9GFINC+0YDQs9Cw0L3QuNC30LDRhtC40LkuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGxvd1NlbGVjdFRlcm1pbmF0ZWQ6IGJvb2xlYW4gPSBpbmplY3QoU0NfQUxMT1dfU0VMRUNUX1RFUk1JTkFURUQpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBLdGA0LXQtdGB0YLRgCDQutCw0YfQtdGB0YLQstCwINCw0LTRgNC10YHQvtCyLCDQstGL0LHRgNCw0L3QvdGL0YUg0LjQtyDQv9C+0LTRgdC60LDQt9C+0LouXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBhZGRyZXNzUXVhbGl0eVNlcnZpY2UgPSBpbmplY3QoU2NBZGRyZXNzUXVhbGl0eVNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY1N1Z2dlc3Rpb25GaWVsZENvbXBvbmVudH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29udHJvbCDQmtC+0L3RgtGA0L7QuyDQv9C+0LvRjyDQstCy0L7QtNCwLlxuICAgICAqIEBwYXJhbSBzdWdnZXN0aW9uU2VydmljZSDQodC10YDQstC40YEg0YDQsNCx0L7RgtGLINGBIEFQSSDQv9C+0LTRgdC60LDQt9C+0LouXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBAU2tpcFNlbGYoKVxuICAgICAgICBASW5qZWN0KE5nQ29udHJvbClcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGNvbnRyb2w6IE5nQ29udHJvbCxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBzdWdnZXN0aW9uU2VydmljZTogU2NTdWdnZXN0aW9uU2VydmljZVxuICAgICkge31cblxuICAgIC8qKiBAaW5oZXJpdERvYyAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCQgPSB0dWlDb250cm9sVmFsdWU8c3RyaW5nIHwgbnVsbD4odGhpcy5jb250cm9sKS5waXBlKFxuICAgICAgICAgICAgZGVib3VuY2VUaW1lKDUwMCksXG4gICAgICAgICAgICBmaWx0ZXIodHVpSXNQcmVzZW50KSxcbiAgICAgICAgICAgIG1hcCgodGVybSkgPT4gdGVybS50cmltKCkpLFxuICAgICAgICAgICAgZmlsdGVyKCh0ZXJtKSA9PiB0ZXJtLmxlbmd0aCA+PSB0aGlzLm1pbkxlbmd0aFNlYXJjaFRlcm0pLFxuICAgICAgICAgICAgc3dpdGNoTWFwKCh0ZXJtOiBzdHJpbmcpID0+IHRoaXMuc3VnZ2VzdGlvblNlcnZpY2UuZ2V0RGF0YTxTY1N1Z2dlc3Rpb24+KHRlcm0sIHRoaXMudHlwZSkucGlwZShzdGFydFdpdGgobnVsbCkpKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3JSZXNwb25zZSA9IGVycm9yLmVycm9yIGFzIFNjSUFwaUVycm9yUmVzcG9uc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY29udHJvbC5jb250cm9sKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0dWlNYXJrQ29udHJvbEFzVG91Y2hlZEFuZFZhbGlkYXRlKHRoaXMuY29udHJvbC5jb250cm9sKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cm9sLmNvbnRyb2wuc2V0RXJyb3JzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJSZXNwb25zZTogW2Vycm9yUmVzcG9uc2UubWVzc2FnZSB8fCAn0J7RiNC40LHQutCwINGB0LXRgNCy0LXRgNCwOiDQv9C+0LbQsNC70YPQudGB0YLQsCwg0L/QtdGA0LXQt9Cw0LPRgNGD0LfQuNGC0LUg0YHRgtGA0LDQvdC40YbRgyDQuC/QuNC70Lgg0LLRi9C/0L7Qu9C90LjRgtC1INC30LDQv9GA0L7RgSDQv9C+0LfQttC1LiddLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBvZihbXSkpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBzaGFyZSgpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5zdWdnZXN0aW9ucyQgPSByZXF1ZXN0JC5waXBlKGZpbHRlcih0dWlJc1ByZXNlbnQpLCBzdGFydFdpdGgobnVsbCkpO1xuICAgICAgICB0aGlzLmxvYWRpbmckID0gcmVxdWVzdCQucGlwZShtYXAodHVpSXNGYWxzeSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCX0LDQv9C+0LvQvdC10L3QuNC1INC/0L7Qu9C10Lkg0L7RgdC90L7QstC1INCy0YvQsdGA0LDQvdC90L7QuSDQv9C+0LTRgdC60LDQt9C60LguXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3VnZ2VzdGlvbiDQntCx0YrQtdC60YIg0L/QvtC00YHQutCw0LfQutC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBvblNlbGVjdGVkKHN1Z2dlc3Rpb246IFNjU3VnZ2VzdGlvbik6IHZvaWQge1xuICAgICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgICAgICAgY2FzZSBTY0lTdWdnZXN0aW9uVHlwZS5maW86XG4gICAgICAgICAgICAgICAgaWYgKCdmaW8nIGluIHN1Z2dlc3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cm9sLmNvbnRyb2w/LnBhdGNoVmFsdWUoc3VnZ2VzdGlvbi5maW8sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFNjSVN1Z2dlc3Rpb25UeXBlLmFkZHJlc3M6XG4gICAgICAgICAgICAgICAgaWYgKCdhZGRyZXNzU3RyaW5nJyBpbiBzdWdnZXN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwbHlBZGRyZXNzU3VnZ2VzdGlvbihzdWdnZXN0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFNjSVN1Z2dlc3Rpb25UeXBlLmJhbms6XG4gICAgICAgICAgICAgICAgaWYgKCdpbm4nIGluIHN1Z2dlc3Rpb24gJiYgJ2JpYycgaW4gc3VnZ2VzdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAodGhpcy5jb250cm9sLmNvbnRyb2w/LnBhcmVudCBhcyBGb3JtR3JvdXApLnBhdGNoVmFsdWUoXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFua05hbWU6IHN1Z2dlc3Rpb24ubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaWM6IHN1Z2dlc3Rpb24uYmljLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcnJlc3BvbmRlbnRBY2NvdW50OiBzdWdnZXN0aW9uLmNvcnJlc3BvbmRlbnRBY2NvdW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgZW1pdEV2ZW50OiBmYWxzZSB9XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBTY0lTdWdnZXN0aW9uVHlwZS5vcmdhbml6YXRpb246XG4gICAgICAgICAgICAgICAgaWYgKCdpbm4nIGluIHN1Z2dlc3Rpb24gJiYgISgnYmljJyBpbiBzdWdnZXN0aW9uKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGx5T3JnYW5pemF0aW9uU3VnZ2VzdGlvbihzdWdnZXN0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFNjSVN1Z2dlc3Rpb25UeXBlLmVtYWlsOlxuICAgICAgICAgICAgICAgIGlmICgnZW1haWwnIGluIHN1Z2dlc3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cm9sLmNvbnRyb2w/LnBhdGNoVmFsdWUoc3VnZ2VzdGlvbi5lbWFpbCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5ob3N0Py5oYW5kbGVPcHRpb24pIHtcbiAgICAgICAgICAgIC8vINCU0ZHRgNCz0LDQtdC8INCy0L3Rg9GC0YDQtdC90L3QuNC5INC+0LHRgNCw0LHQvtGC0YfQuNC6INCy0YvQsdC+0YDQsCDRjdC70LXQvNC10L3RgtCwINCy0YvQv9Cw0LTQsNGO0YnQtdCz0L4g0YHQv9C40YHQutCwINC00LvRjyDRgNC10YjQtdC90LjRjyDQv9GA0L7QsdC70LXQvNGLINC30LDQutGA0YvRgtC40Y8g0LLRi9C/0LDQtNCw0Y7RidC10LPQviDRgdC/0LjRgdC60LAg0L/QvtC00YHQutCw0LfQutC4LlxuICAgICAgICAgICAgdGhpcy5ob3N0LmhhbmRsZU9wdGlvbih0aGlzLmNvbnRyb2wudmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDbGljay5lbWl0KHN1Z2dlc3Rpb24pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC/0YDQuNC30L3QsNC6LCDRh9GC0L4g0Y3Qu9C10LzQtdC90YIg0LLRi9C/0LDQtNCw0Y7RidC10LPQviDRgdC/0LjRgdC60LAg0L/QvtC00YHQutCw0LfQvtC6INC+0YLQutC70Y7Rh9GR0L0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3VnZ2VzdGlvbiDQntCx0YrQtdC60YIg0L/QvtC00YHQutCw0LfQutC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBpc0Rpc2FibGVkU3VnZ2VzdGlvbihzdWdnZXN0aW9uOiBTY1N1Z2dlc3Rpb24pOiBib29sZWFuIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgU2NJU3VnZ2VzdGlvblR5cGUuZmlvOlxuICAgICAgICAgICAgY2FzZSBTY0lTdWdnZXN0aW9uVHlwZS5hZGRyZXNzOlxuICAgICAgICAgICAgY2FzZSBTY0lTdWdnZXN0aW9uVHlwZS5iYW5rOlxuICAgICAgICAgICAgY2FzZSBTY0lTdWdnZXN0aW9uVHlwZS5lbWFpbDpcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICBjYXNlIFNjSVN1Z2dlc3Rpb25UeXBlLm9yZ2FuaXphdGlvbjpcbiAgICAgICAgICAgICAgICBpZiAoJ2lubicgaW4gc3VnZ2VzdGlvbiAmJiAhKCdiaWMnIGluIHN1Z2dlc3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAhdGhpcy5hbGxvd1NlbGVjdFRlcm1pbmF0ZWQgJiYgdGhpcy5pc09yZ1Rlcm1pbmF0ZWQoc3VnZ2VzdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YLQtdC60YHRgiDQv9C+0LzQtdGC0LrQuCDQviDQutCw0YfQtdGB0YLQstC1INCw0LTRgNC10YHQsCDQtNC70Y8g0Y3Qu9C10LzQtdC90YLQsCDQstGL0L/QsNC00LDRjtGJ0LXQs9C+INGB0L/QuNGB0LrQsCDQv9C+0LTRgdC60LDQt9C+0Log0LvQuNCx0L4gbnVsbCwg0LrQvtCz0LTQsCDQv9C+0LzQtdGC0LrQsCDQvdC1INGC0YDQtdCx0YPQtdGC0YHRjy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBxdWFsaXR5INCa0LDRh9C10YHRgtCy0L4gKNC/0L7Qu9C90L7RgtCwKSDQsNC00YDQtdGB0LAuXG4gICAgICovXG4gICAgcHVibGljIGdldEFkZHJlc3NRdWFsaXR5V2FybmluZyhxdWFsaXR5OiBTY1N1Z2dlc3Rpb25BZGRyZXNzUXVhbGl0eSB8IG51bGwgfCB1bmRlZmluZWQpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgaWYgKCF0aGlzLnNob3dBZGRyZXNzUXVhbGl0eSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBzd2l0Y2ggKHF1YWxpdHkpIHtcbiAgICAgICAgICAgIGNhc2UgU2NTdWdnZXN0aW9uQWRkcmVzc1F1YWxpdHkudW5kZXRlcm1pbmVkOlxuICAgICAgICAgICAgICAgIHJldHVybiAn0J/QvtC70L3QvtGC0LAg0LDQtNGA0LXRgdCwINC90LUg0L7Qv9GA0LXQtNC10LvQtdC90LAnO1xuICAgICAgICAgICAgY2FzZSBTY1N1Z2dlc3Rpb25BZGRyZXNzUXVhbGl0eS5pbmNvbXBsZXRlOlxuICAgICAgICAgICAgICAgIHJldHVybiAn0J3QtdC/0L7Qu9C90YvQuSDQsNC00YDQtdGBJztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDRgtC10LrRgdGCINC/0L7QvNC10YLQutC4INC+INC60LDRh9C10YHRgtCy0LUg0Y7RgNC40LTQuNGH0LXRgdC60L7Qs9C+INCw0LTRgNC10YHQsCDQtNC70Y8g0L/QvtC00YHQutCw0LfQutC4INC/0L4g0L7RgNCz0LDQvdC40LfQsNGG0LjQuCDQu9C40LHQviBudWxsLFxuICAgICAqINC60L7Qs9C00LAg0L/QvtC80LXRgtC60LAg0L3QtSDRgtGA0LXQsdGD0LXRgtGB0Y8sINCyINGC0L7QvCDRh9C40YHQu9C1INC60L7Qs9C00LAg0YMg0L7RgNCz0LDQvdC40LfQsNGG0LjQuCDQvdC10YIg0Y7RgNC40LTQuNGH0LXRgdC60L7Qs9C+INCw0LTRgNC10YHQsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzdWdnZXN0aW9uINCe0LHRitC10LrRgiDQv9C+0LTRgdC60LDQt9C60Lgg0L/QviDQvtGA0LPQsNC90LjQt9Cw0YbQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRPcmdhbml6YXRpb25BZGRyZXNzUXVhbGl0eVdhcm5pbmcoc3VnZ2VzdGlvbjogU2NJU3VnZ2VzdGlvbk9yZ2FuaXphdGlvbik6IHN0cmluZyB8IG51bGwge1xuICAgICAgICByZXR1cm4gc3VnZ2VzdGlvbi5sZWdhbEFkZHJlc3MgPyB0aGlzLmdldEFkZHJlc3NRdWFsaXR5V2FybmluZyhzdWdnZXN0aW9uLmxlZ2FsQWRkcmVzc1F1YWxpdHkpIDogbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0L7QstC10YDRj9C10YIg0L/RgNC10LrRgNCw0YnQtdC90LAg0LvQuCDQtNC10Y/RgtC10LvRjNC90L7RgdGC0Ywg0YPQutCw0LfQsNC90L3QvtC5INC+0YDQs9Cw0L3QuNC30LDRhtC40LguXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3VnZ2VzdGlvbiDQntCx0YrQtdC60YIg0L/QvtC00YHQutCw0LfQutC4INC/0L4g0L7RgNCz0LDQvdC40LfQsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgaXNPcmdUZXJtaW5hdGVkKHN1Z2dlc3Rpb246IFNjSVN1Z2dlc3Rpb25Pcmdhbml6YXRpb24pOiBib29sZWFuIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtbWVtYmVyLWFjY2Vzc1xuICAgICAgICByZXR1cm4gc3VnZ2VzdGlvbi5yYXdEYXRhPy5bJ3N0YXRlJ10/LnN0YXR1cyA9PT0gJ0xJUVVJREFURUQnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCX0LDQv9C+0LvQvdGP0LXRgiDQutC+0L3RgtGA0L7QuyDRgdGC0YDQvtC60L7QuSDQstGL0LHRgNCw0L3QvdC+0LPQviDQsNC00YDQtdGB0LAg0Lgg0YDQtdCz0LjRgdGC0YDQuNGA0YPQtdGCINC60LDRh9C10YHRgtCy0L4g0LDQtNGA0LXRgdCwLlxuICAgICAqXG4gICAgICogQHBhcmFtIHN1Z2dlc3Rpb24g0J7QsdGK0LXQutGCINC/0L7QtNGB0LrQsNC30LrQuCDQv9C+INCw0LTRgNC10YHRgy5cbiAgICAgKi9cbiAgICBwcml2YXRlIGFwcGx5QWRkcmVzc1N1Z2dlc3Rpb24oc3VnZ2VzdGlvbjogU2NJU3VnZ2VzdGlvbkFkZHJlc3MpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250cm9sLmNvbnRyb2w/LnBhdGNoVmFsdWUoc3VnZ2VzdGlvbi5hZGRyZXNzU3RyaW5nLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuY29udHJvbC5jb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLmFkZHJlc3NRdWFsaXR5U2VydmljZS5zZXRRdWFsaXR5KHRoaXMuY29udHJvbC5jb250cm9sLCBzdWdnZXN0aW9uLnF1YWxpdHkgPz8gbnVsbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQl9Cw0L/QvtC70L3Rj9C10YIg0L/QvtC70Y8g0YDQvtC00LjRgtC10LvRjNGB0LrQvtC5INCz0YDRg9C/0L/RiyDQtNCw0L3QvdGL0LzQuCDQstGL0LHRgNCw0L3QvdC+0Lkg0L7RgNCz0LDQvdC40LfQsNGG0LjQuCDQuCDRgNC10LPQuNGB0YLRgNC40YDRg9C10YIg0LrQsNGH0LXRgdGC0LLQviDQtdGRINCw0LTRgNC10YHQvtCyLlxuICAgICAqXG4gICAgICogQHBhcmFtIHN1Z2dlc3Rpb24g0J7QsdGK0LXQutGCINC/0L7QtNGB0LrQsNC30LrQuCDQv9C+INC+0YDQs9Cw0L3QuNC30LDRhtC40LguXG4gICAgICovXG4gICAgcHJpdmF0ZSBhcHBseU9yZ2FuaXphdGlvblN1Z2dlc3Rpb24oc3VnZ2VzdGlvbjogU2NJU3VnZ2VzdGlvbk9yZ2FuaXphdGlvbik6IHZvaWQge1xuICAgICAgICBjb25zdCBwYXJlbnRHcm91cCA9IHRoaXMuY29udHJvbC5jb250cm9sPy5wYXJlbnQgYXMgRm9ybUdyb3VwO1xuXG4gICAgICAgIHBhcmVudEdyb3VwLnBhdGNoVmFsdWUoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogc3VnZ2VzdGlvbi5uYW1lLFxuICAgICAgICAgICAgICAgIGlubjogc3VnZ2VzdGlvbi5pbm4sXG4gICAgICAgICAgICAgICAga3BwOiBzdWdnZXN0aW9uLmtwcCxcbiAgICAgICAgICAgICAgICBvZ3JuOiBzdWdnZXN0aW9uLm9ncm4gPz8gbnVsbCxcbiAgICAgICAgICAgICAgICBva3BvOiBzdWdnZXN0aW9uLm9rcG8sXG4gICAgICAgICAgICAgICAgZGlyZWN0b3JOYW1lOiBzdWdnZXN0aW9uLmRpcmVjdG9yTmFtZSxcbiAgICAgICAgICAgICAgICBkaXJlY3RvclBvc2l0aW9uOiBzdWdnZXN0aW9uLmRpcmVjdG9yUG9zaXRpb24sXG4gICAgICAgICAgICAgICAgbGVnYWxBZGRyZXNzOiBzdWdnZXN0aW9uLmxlZ2FsQWRkcmVzcyxcbiAgICAgICAgICAgICAgICBwb3N0YWxBZGRyZXNzOiBzdWdnZXN0aW9uLnBvc3RhbEFkZHJlc3MsXG4gICAgICAgICAgICAgICAgYWN0dWFsQWRkcmVzczogc3VnZ2VzdGlvbi5hY3R1YWxBZGRyZXNzLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgZW1pdEV2ZW50OiBmYWxzZSB9XG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5hZGRyZXNzUXVhbGl0eVNlcnZpY2Uuc2V0T3JnYW5pemF0aW9uQWRkcmVzc1F1YWxpdGllcyhwYXJlbnRHcm91cCwgc3VnZ2VzdGlvbik7XG4gICAgfVxufVxuIiwiPHR1aS1sb2FkZXJcbiAgICBzaXplPVwibVwiXG4gICAgW292ZXJsYXldPVwidHJ1ZVwiXG4gICAgW3Nob3dMb2FkZXJdPVwiISEobG9hZGluZyQgfCBhc3luYylcIlxuPlxuICAgIEBsZXQgb3B0aW9ucyA9IHN1Z2dlc3Rpb25zJCB8IGFzeW5jO1xuICAgIDx0dWktZGF0YS1saXN0PlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIlxuICAgICAgICAgICAgdHVpT3B0aW9uXG4gICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3RlZChvcHRpb24pXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkU3VnZ2VzdGlvbihvcHRpb24pXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZmxleC1jb2wgIWl0ZW1zLXN0YXJ0XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgQGxldCBvcHRpb25WYWx1ZSA9ICRhbnkob3B0aW9uKTtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInR5cGVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJzdWdnZXN0aW9uVHlwZS5maW9cIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXR1aS1saW5rXCI+e3sgb3B0aW9uVmFsdWUuZmlvIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInN1Z2dlc3Rpb25UeXBlLm9yZ2FuaXphdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdHVpLWxpbmtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IG9wdGlvblZhbHVlLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWwtMSB0ZXh0LXR1aS10ZXh0LTAyXCI+0LjQvdC9OiB7eyBvcHRpb25WYWx1ZS5pbm4gfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNPcmdUZXJtaW5hdGVkKG9wdGlvblZhbHVlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXR1aS1uZWdhdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg0JvQuNC60LLQuNC00LjRgNC+0LLQsNC90L5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdHVpLXRleHQtMDJcIj57eyBvcHRpb25WYWx1ZT8ubGVnYWxBZGRyZXNzIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGdldE9yZ2FuaXphdGlvbkFkZHJlc3NRdWFsaXR5V2FybmluZyhvcHRpb25WYWx1ZSk7IGFzIGFkZHJlc3NRdWFsaXR5V2FybmluZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXhzIHRleHQtdHVpLXN0YXR1cy13YXJuaW5nXCI+e3sgYWRkcmVzc1F1YWxpdHlXYXJuaW5nIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwic3VnZ2VzdGlvblR5cGUuYmFua1wiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdHVpLWxpbmtcIj57eyBvcHRpb25WYWx1ZS5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdHVpLXRleHQtMDJcIj57eyBvcHRpb25WYWx1ZS5iaWMgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwic3VnZ2VzdGlvblR5cGUuZW1haWxcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXR1aS1saW5rXCI+e3sgb3B0aW9uVmFsdWUuZW1haWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwic3VnZ2VzdGlvblR5cGUuYWRkcmVzc1wiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdHVpLWxpbmtcIj57eyBvcHRpb25WYWx1ZS5hZGRyZXNzU3RyaW5nIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGdldEFkZHJlc3NRdWFsaXR5V2FybmluZyhvcHRpb25WYWx1ZS5xdWFsaXR5KTsgYXMgYWRkcmVzc1F1YWxpdHlXYXJuaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQteHMgdGV4dC10dWktc3RhdHVzLXdhcm5pbmdcIj57eyBhZGRyZXNzUXVhbGl0eVdhcm5pbmcgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L3R1aS1kYXRhLWxpc3Q+XG48L3R1aS1sb2FkZXI+XG4iXX0=
@@ -3,6 +3,7 @@ export * from './sc-bic-mask';
3
3
  export * from './sc-correspondent-account-mask';
4
4
  export * from './sc-inn-mask';
5
5
  export * from './sc-kpp-mask';
6
+ export * from './sc-ogrn-mask';
6
7
  export * from './sc-okpo-mask';
7
8
  export * from './sc-phone-verification-code-mask';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvbWFza3MvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxtQ0FBbUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2MtYWNjb3VudC1udW1iZXItbWFzayc7XG5leHBvcnQgKiBmcm9tICcuL3NjLWJpYy1tYXNrJztcbmV4cG9ydCAqIGZyb20gJy4vc2MtY29ycmVzcG9uZGVudC1hY2NvdW50LW1hc2snO1xuZXhwb3J0ICogZnJvbSAnLi9zYy1pbm4tbWFzayc7XG5leHBvcnQgKiBmcm9tICcuL3NjLWtwcC1tYXNrJztcbmV4cG9ydCAqIGZyb20gJy4vc2Mtb2twby1tYXNrJztcbmV4cG9ydCAqIGZyb20gJy4vc2MtcGhvbmUtdmVyaWZpY2F0aW9uLWNvZGUtbWFzayc7XG4iXX0=
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvbWFza3MvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLG1DQUFtQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zYy1hY2NvdW50LW51bWJlci1tYXNrJztcbmV4cG9ydCAqIGZyb20gJy4vc2MtYmljLW1hc2snO1xuZXhwb3J0ICogZnJvbSAnLi9zYy1jb3JyZXNwb25kZW50LWFjY291bnQtbWFzayc7XG5leHBvcnQgKiBmcm9tICcuL3NjLWlubi1tYXNrJztcbmV4cG9ydCAqIGZyb20gJy4vc2Mta3BwLW1hc2snO1xuZXhwb3J0ICogZnJvbSAnLi9zYy1vZ3JuLW1hc2snO1xuZXhwb3J0ICogZnJvbSAnLi9zYy1va3BvLW1hc2snO1xuZXhwb3J0ICogZnJvbSAnLi9zYy1waG9uZS12ZXJpZmljYXRpb24tY29kZS1tYXNrJztcbiJdfQ==
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Маска поля ввода ОГРНИП индивидуального предпринимателя.
3
+ */
4
+ export const scEntrepreneurOgrnMask = {
5
+ mask: /^\d{0,15}$/,
6
+ };
7
+ /**
8
+ * Маска поля ввода ОГРН юридического лица.
9
+ */
10
+ export const scLegalOgrnMask = {
11
+ mask: /^\d{0,13}$/,
12
+ };
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtb2dybi1tYXNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL21hc2tzL3NjLW9ncm4tbWFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHO0lBQ2xDLElBQUksRUFBRSxZQUFZO0NBQ0gsQ0FBQztBQUVwQjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUMzQixJQUFJLEVBQUUsWUFBWTtDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYXNraXRvT3B0aW9ucyB9IGZyb20gJ0BtYXNraXRvL2NvcmUnO1xuXG4vKipcbiAqINCc0LDRgdC60LAg0L/QvtC70Y8g0LLQstC+0LTQsCDQntCT0KDQndCY0J8g0LjQvdC00LjQstC40LTRg9Cw0LvRjNC90L7Qs9C+INC/0YDQtdC00L/RgNC40L3QuNC80LDRgtC10LvRjy5cbiAqL1xuZXhwb3J0IGNvbnN0IHNjRW50cmVwcmVuZXVyT2dybk1hc2sgPSB7XG4gICAgbWFzazogL15cXGR7MCwxNX0kLyxcbn0gYXMgTWFza2l0b09wdGlvbnM7XG5cbi8qKlxuICog0JzQsNGB0LrQsCDQv9C+0LvRjyDQstCy0L7QtNCwINCe0JPQoNCdINGO0YDQuNC00LjRh9C10YHQutC+0LPQviDQu9C40YbQsC5cbiAqL1xuZXhwb3J0IGNvbnN0IHNjTGVnYWxPZ3JuTWFzayA9IHtcbiAgICBtYXNrOiAvXlxcZHswLDEzfSQvLFxufSBhcyBNYXNraXRvT3B0aW9ucztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './sc-null-on-empty-value-transformer';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvcHJvdmlkZXJzL251bGwtb24tZW1wdHktdmFsdWUtdHJhbnNmb3JtZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQ0FBc0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2MtbnVsbC1vbi1lbXB0eS12YWx1ZS10cmFuc2Zvcm1lcic7XG4iXX0=
@@ -0,0 +1,31 @@
1
+ /* eslint-disable class-methods-use-this */
2
+ import { Injectable } from '@angular/core';
3
+ import { TuiValueTransformer } from '@taiga-ui/cdk';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Преобразователь значения текстового поля, в котором очищенное поле даёт в форме null, как нетронутое.
7
+ */
8
+ export class NullOnEmptyValueTransformer extends TuiValueTransformer {
9
+ /**
10
+ * Преобразует значение из формы в значение поля ввода: null становится пустой строкой.
11
+ *
12
+ * @param controlValue Значение из формы поля ввода.
13
+ */
14
+ fromControlValue(controlValue) {
15
+ return controlValue ?? '';
16
+ }
17
+ /**
18
+ * Преобразует значение поля ввода в значение формы: пустая строка становится null.
19
+ *
20
+ * @param componentValue Значение из компонента поля ввода.
21
+ */
22
+ toControlValue(componentValue) {
23
+ return componentValue === '' ? null : componentValue;
24
+ }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NullOnEmptyValueTransformer, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
26
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NullOnEmptyValueTransformer }); }
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NullOnEmptyValueTransformer, decorators: [{
29
+ type: Injectable
30
+ }] });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtbnVsbC1vbi1lbXB0eS12YWx1ZS10cmFuc2Zvcm1lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9wcm92aWRlcnMvbnVsbC1vbi1lbXB0eS12YWx1ZS10cmFuc2Zvcm1lci9zYy1udWxsLW9uLWVtcHR5LXZhbHVlLXRyYW5zZm9ybWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJDQUEyQztBQUUzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFcEQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsbUJBQTBDO0lBQ3ZGOzs7O09BSUc7SUFDSSxnQkFBZ0IsQ0FBQyxZQUEyQjtRQUMvQyxPQUFPLFlBQVksSUFBSSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxjQUFjLENBQUMsY0FBc0I7UUFDeEMsT0FBTyxjQUFjLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztJQUN6RCxDQUFDOytHQWpCUSwyQkFBMkI7bUhBQTNCLDJCQUEyQjs7NEZBQTNCLDJCQUEyQjtrQkFEdkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXMgKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHVpVmFsdWVUcmFuc2Zvcm1lciB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuXG4vKipcbiAqINCf0YDQtdC+0LHRgNCw0LfQvtCy0LDRgtC10LvRjCDQt9C90LDRh9C10L3QuNGPINGC0LXQutGB0YLQvtCy0L7Qs9C+INC/0L7Qu9GPLCDQsiDQutC+0YLQvtGA0L7QvCDQvtGH0LjRidC10L3QvdC+0LUg0L/QvtC70LUg0LTQsNGR0YIg0LIg0YTQvtGA0LzQtSBudWxsLCDQutCw0Log0L3QtdGC0YDQvtC90YPRgtC+0LUuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOdWxsT25FbXB0eVZhbHVlVHJhbnNmb3JtZXIgZXh0ZW5kcyBUdWlWYWx1ZVRyYW5zZm9ybWVyPHN0cmluZywgc3RyaW5nIHwgbnVsbD4ge1xuICAgIC8qKlxuICAgICAqINCf0YDQtdC+0LHRgNCw0LfRg9C10YIg0LfQvdCw0YfQtdC90LjQtSDQuNC3INGE0L7RgNC80Ysg0LIg0LfQvdCw0YfQtdC90LjQtSDQv9C+0LvRjyDQstCy0L7QtNCwOiBudWxsINGB0YLQsNC90L7QstC40YLRgdGPINC/0YPRgdGC0L7QuSDRgdGC0YDQvtC60L7QuS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb250cm9sVmFsdWUg0JfQvdCw0YfQtdC90LjQtSDQuNC3INGE0L7RgNC80Ysg0L/QvtC70Y8g0LLQstC+0LTQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZnJvbUNvbnRyb2xWYWx1ZShjb250cm9sVmFsdWU6IHN0cmluZyB8IG51bGwpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gY29udHJvbFZhbHVlID8/ICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCf0YDQtdC+0LHRgNCw0LfRg9C10YIg0LfQvdCw0YfQtdC90LjQtSDQv9C+0LvRjyDQstCy0L7QtNCwINCyINC30L3QsNGH0LXQvdC40LUg0YTQvtGA0LzRizog0L/Rg9GB0YLQsNGPINGB0YLRgNC+0LrQsCDRgdGC0LDQvdC+0LLQuNGC0YHRjyBudWxsLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbXBvbmVudFZhbHVlINCX0L3QsNGH0LXQvdC40LUg0LjQtyDQutC+0LzQv9C+0L3QtdC90YLQsCDQv9C+0LvRjyDQstCy0L7QtNCwLlxuICAgICAqL1xuICAgIHB1YmxpYyB0b0NvbnRyb2xWYWx1ZShjb21wb25lbnRWYWx1ZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiBjb21wb25lbnRWYWx1ZSA9PT0gJycgPyBudWxsIDogY29tcG9uZW50VmFsdWU7XG4gICAgfVxufVxuIl19