@senior-gestao-empresarial/angular-components 4.22.2 → 4.23.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.
- package/bundles/senior-gestao-empresarial-angular-components.umd.js +244 -99
- package/bundles/senior-gestao-empresarial-angular-components.umd.js.map +1 -1
- package/bundles/senior-gestao-empresarial-angular-components.umd.min.js +2 -2
- package/bundles/senior-gestao-empresarial-angular-components.umd.min.js.map +1 -1
- package/components/lookups/entities/beneficio-fiscal-lookup.d.ts +8 -0
- package/components/lookups/index.d.ts +1 -0
- package/components/websocket/websocket.service.d.ts +23 -14
- package/esm2015/components/lookups/entities/beneficio-fiscal-lookup.js +73 -0
- package/esm2015/components/lookups/erp-lookups.module.js +4 -2
- package/esm2015/components/lookups/index.js +2 -1
- package/esm2015/components/websocket/websocket.service.js +106 -76
- package/esm5/components/lookups/entities/beneficio-fiscal-lookup.js +76 -0
- package/esm5/components/lookups/erp-lookups.module.js +4 -2
- package/esm5/components/lookups/index.js +2 -1
- package/esm5/components/websocket/websocket.service.js +170 -98
- package/fesm2015/senior-gestao-empresarial-angular-components.js +174 -76
- package/fesm2015/senior-gestao-empresarial-angular-components.js.map +1 -1
- package/fesm5/senior-gestao-empresarial-angular-components.js +241 -98
- package/fesm5/senior-gestao-empresarial-angular-components.js.map +1 -1
- package/package.json +1 -1
- package/senior-gestao-empresarial-angular-components.metadata.json +1 -1
|
@@ -93,5 +93,6 @@ export * from "./entities/wizard-entities/currency-lookup";
|
|
|
93
93
|
export * from "./entities/wizard-entities/bank-lookup";
|
|
94
94
|
export * from "./entities/apuracao-foundation/type-taxes-lookup";
|
|
95
95
|
export * from "./entities/apuracao-foundation/parameters-lookup";
|
|
96
|
+
export * from "./entities/beneficio-fiscal-lookup";
|
|
96
97
|
export * from "./erp-lookups.module";
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1lbXByZXNhcmlhbC9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2xvb2t1cHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxxRUFBcUUsQ0FBQztBQUNwRixjQUFjLHFFQUFxRSxDQUFDO0FBQ3BGLGNBQWMscUVBQXFFLENBQUM7QUFDcEYsY0FBYyxxRUFBcUUsQ0FBQztBQUNwRixjQUFjLHFFQUFxRSxDQUFDO0FBQ3BGLGNBQWMscUVBQXFFLENBQUM7QUFDcEYsY0FBYyxxRUFBcUUsQ0FBQztBQUNwRixjQUFjLHFFQUFxRSxDQUFDO0FBQ3BGLGNBQWMscUVBQXFFLENBQUM7QUFDcEYsY0FBYyxxRUFBcUUsQ0FBQztBQUNwRixjQUFjLHFFQUFxRSxDQUFDO0FBQ3BGLGNBQWMscUVBQXFFLENBQUM7QUFDcEYsY0FBYywrREFBK0QsQ0FBQztBQUM5RSxjQUFjLGdGQUFnRixDQUFDO0FBQy9GLGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyxzRUFBc0UsQ0FBQztBQUNyRixjQUFjLHFFQUFxRSxDQUFDO0FBQ3BGLGNBQWMscUVBQXFFLENBQUM7QUFDcEYsY0FBYyxxRUFBcUUsQ0FBQztBQUNwRixjQUFjLHFFQUFxRSxDQUFDO0FBQ3BGLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyxrREFBa0QsQ0FBQztBQUVqRSxjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vZXJwLWxvb2t1cHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2xpZ2FjYW8taXRlbS1mb3JuZWNlZG9yLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvcHJvZHV0b1NlcnZpY28tbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTA0NC1jY3UtZmluLXJhdC1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtMDk5LXVzdS1jb20tZ2VyLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvZS0wMDctdWZzLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvZS0wMDgtY2VwLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvZS0wMDgtcmFpLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvZS0wMjAtc25mLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvZS0wMjEtbW90LWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvZS0wMjMtY3JwLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvZS0wMjgtY3BnLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvZS0wMzEtbW9lLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvZS0wMzUtb2NyLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvZS0wMzYtaW5zLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvZS0wMzktcG9yLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvZS0wNDctbnRnLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvZS0wNDUtcGxhLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvZS0wNzAtZW1wLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvZS0wNzAtZmlsLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvZS0wNzMtcGVzLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvZS0wNzMtdmVpLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvZS0wNzUtZGVyLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvZS0wODAtc2VyLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvZS0wODUtcGVzLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvZS0wOTAtcGVzLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvZS0wMDEtcGVzLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvZS0wMDEtdG5zLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvZS0wMDEtdG5zLXN1cC1lc3QtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTAxMi1mYW0tbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTAxNS1tZWQtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTAyNC1tc2ctbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTAzMi1lZGMtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTA4Mi10cHItbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTIwMC1sb3QtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTIwMC1zZXItbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTIxMC1keHAtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTAwMi10cHQtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTAyNy1lcWktbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTAyNy1zdHItbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTA2Ni1mcGctbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTA5NS1wZXMtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTQwMy1mcHItbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTQyMC1vY3AtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTQyMC1pY3AtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTQyMC1pcGMtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTYwMC1jY28tbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTAzMC1iYW4tbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTAzMC1hZ2UtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTIwNS1kZXAtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTE0MC1uZnMtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTE0MC1pbnMtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTA2Ny1maW4tbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTA5MS1wbGYtZmluLXJhdC1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtMjEwLWR4cC1lLTA3NS1kZXItbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTAwMS1lbmQtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTA3MC1lbnQtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTMwMS10Y3ItbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9uY20tbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9yZXF1aXNpY2FvLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvdW5pZGFkZS1tZWRpZGEtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9xdGQtZGlzcG9uaXZlbC1kZW1hbmRhLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvZS02NDAtbG90LWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvZS0wNDYtaHBkLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvcmVwbGljYXRpb24tZW50aXRpZXMvY3BsLXRyaS1ub3RhLXNhaWRhLWUtMDAxLXBlcy1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL3JlcGxpY2F0aW9uLWVudGl0aWVzL2NwbC10cmktbm90YS1zYWlkYS1lLTAyMC1zbmYtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wNzAtZW1wLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvcmVwbGljYXRpb24tZW50aXRpZXMvY3BsLXRyaS1ub3RhLXNhaWRhLWUtMDcwLWZpbC1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL3JlcGxpY2F0aW9uLWVudGl0aWVzL2NwbC10cmktbm90YS1zYWlkYS1lLTAwMS1lbmQtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wMDctdWZzLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvcmVwbGljYXRpb24tZW50aXRpZXMvY3BsLXRyaS1ub3RhLXNhaWRhLWUtMDA4LXJhaS1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL3JlcGxpY2F0aW9uLWVudGl0aWVzL2NwbC10cmktbm90YS1zYWlkYS1lLTAzMi1lZGMtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wMTUtbWVkLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvcmVwbGljYXRpb24tZW50aXRpZXMvY3BsLXRyaS1ub3RhLXNhaWRhLWUtMDAxLXRucy1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL3JlcGxpY2F0aW9uLWVudGl0aWVzL2NwbC10cmktbm90YS1zYWlkYS1lLTA3NS1kZXItbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wODAtc2VyLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvcmVwbGljYXRpb24tZW50aXRpZXMvY3BsLXRyaS1ub3RhLXNhaWRhLW5jbS1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL3JlcGxpY2F0aW9uLWVudGl0aWVzL2NwbC10cmktbm90YS1zYWlkYS1uYXR1cmV6YS1yZWNlaXRhLXBpcy1jb2ZpbnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL3JlcGxpY2F0aW9uLWVudGl0aWVzL2NwbC10cmktbm90YS1zYWlkYS1uZi1zYWlkYS1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL3JlcGxpY2F0aW9uLWVudGl0aWVzL2NwbC10cmktbm90YS1zYWlkYS1uZi1lbnRyYWRhLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvcmVwbGljYXRpb24tZW50aXRpZXMvY3BsLXRyaS1ub3RhLXNhaWRhLWUtMDY2LWZwZy1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL3JlcGxpY2F0aW9uLWVudGl0aWVzL2NwbC10cmktbm90YS1zYWlkYS1lLTAyOC1jcGctbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wNTEtZGlzLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvcmVwbGljYXRpb24tZW50aXRpZXMvY3BsLXRyaS1ub3RhLXNhaWRhLWUtMDI0LW1zZy1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtMDUxLWRpcy1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtMDQ0LWNjdS1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL25hdHVyZXphLXJlY2VpdGEtcGlzLWNvZmlucy5sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtMDQ4LWZjdC1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2VxdWlwbWVudC1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtMDQ4LXNmYy1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL3dpemFyZC1lbnRpdGllcy9jb3VudHJ5LWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvd2l6YXJkLWVudGl0aWVzL2N1cnJlbmN5LWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvd2l6YXJkLWVudGl0aWVzL2JhbmstbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9hcHVyYWNhby1mb3VuZGF0aW9uL3R5cGUtdGF4ZXMtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9hcHVyYWNhby1mb3VuZGF0aW9uL3BhcmFtZXRlcnMtbG9va3VwXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL2VycC1sb29rdXBzLm1vZHVsZVwiO1xuIl19
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1lbXByZXNhcmlhbC9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2xvb2t1cHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxxRUFBcUUsQ0FBQztBQUNwRixjQUFjLHFFQUFxRSxDQUFDO0FBQ3BGLGNBQWMscUVBQXFFLENBQUM7QUFDcEYsY0FBYyxxRUFBcUUsQ0FBQztBQUNwRixjQUFjLHFFQUFxRSxDQUFDO0FBQ3BGLGNBQWMscUVBQXFFLENBQUM7QUFDcEYsY0FBYyxxRUFBcUUsQ0FBQztBQUNwRixjQUFjLHFFQUFxRSxDQUFDO0FBQ3BGLGNBQWMscUVBQXFFLENBQUM7QUFDcEYsY0FBYyxxRUFBcUUsQ0FBQztBQUNwRixjQUFjLHFFQUFxRSxDQUFDO0FBQ3BGLGNBQWMscUVBQXFFLENBQUM7QUFDcEYsY0FBYywrREFBK0QsQ0FBQztBQUM5RSxjQUFjLGdGQUFnRixDQUFDO0FBQy9GLGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyxzRUFBc0UsQ0FBQztBQUNyRixjQUFjLHFFQUFxRSxDQUFDO0FBQ3BGLGNBQWMscUVBQXFFLENBQUM7QUFDcEYsY0FBYyxxRUFBcUUsQ0FBQztBQUNwRixjQUFjLHFFQUFxRSxDQUFDO0FBQ3BGLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLG9DQUFvQyxDQUFDO0FBRW5ELGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9lcnAtbG9va3Vwc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvbGlnYWNhby1pdGVtLWZvcm5lY2Vkb3ItbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9wcm9kdXRvU2Vydmljby1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtMDQ0LWNjdS1maW4tcmF0LWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvZS0wOTktdXN1LWNvbS1nZXItbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTAwNy11ZnMtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTAwOC1jZXAtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTAwOC1yYWktbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTAyMC1zbmYtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTAyMS1tb3QtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTAyMy1jcnAtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTAyOC1jcGctbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTAzMS1tb2UtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTAzNS1vY3ItbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTAzNi1pbnMtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTAzOS1wb3ItbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTA0Ny1udGctbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTA0NS1wbGEtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTA3MC1lbXAtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTA3MC1maWwtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTA3My1wZXMtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTA3My12ZWktbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTA3NS1kZXItbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTA4MC1zZXItbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTA4NS1wZXMtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTA5MC1wZXMtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTAwMS1wZXMtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTAwMS10bnMtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTAwMS10bnMtc3VwLWVzdC1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtMDEyLWZhbS1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtMDE1LW1lZC1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtMDI0LW1zZy1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtMDMyLWVkYy1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtMDgyLXRwci1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtMjAwLWxvdC1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtMjAwLXNlci1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtMjEwLWR4cC1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtMDAyLXRwdC1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtMDI3LWVxaS1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtMDI3LXN0ci1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtMDY2LWZwZy1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtMDk1LXBlcy1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtNDAzLWZwci1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtNDIwLW9jcC1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtNDIwLWljcC1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtNDIwLWlwYy1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtNjAwLWNjby1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtMDMwLWJhbi1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtMDMwLWFnZS1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtMjA1LWRlcC1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtMTQwLW5mcy1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtMTQwLWlucy1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtMDY3LWZpbi1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtMDkxLXBsZi1maW4tcmF0LWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvZS0yMTAtZHhwLWUtMDc1LWRlci1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtMDAxLWVuZC1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtMDcwLWVudC1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2UtMzAxLXRjci1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL25jbS1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL3JlcXVpc2ljYW8tbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy91bmlkYWRlLW1lZGlkYS1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL3F0ZC1kaXNwb25pdmVsLWRlbWFuZGEtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTY0MC1sb3QtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9lLTA0Ni1ocGQtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wMDEtcGVzLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvcmVwbGljYXRpb24tZW50aXRpZXMvY3BsLXRyaS1ub3RhLXNhaWRhLWUtMDIwLXNuZi1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL3JlcGxpY2F0aW9uLWVudGl0aWVzL2NwbC10cmktbm90YS1zYWlkYS1lLTA3MC1lbXAtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wNzAtZmlsLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvcmVwbGljYXRpb24tZW50aXRpZXMvY3BsLXRyaS1ub3RhLXNhaWRhLWUtMDAxLWVuZC1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL3JlcGxpY2F0aW9uLWVudGl0aWVzL2NwbC10cmktbm90YS1zYWlkYS1lLTAwNy11ZnMtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wMDgtcmFpLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvcmVwbGljYXRpb24tZW50aXRpZXMvY3BsLXRyaS1ub3RhLXNhaWRhLWUtMDMyLWVkYy1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL3JlcGxpY2F0aW9uLWVudGl0aWVzL2NwbC10cmktbm90YS1zYWlkYS1lLTAxNS1tZWQtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wMDEtdG5zLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvcmVwbGljYXRpb24tZW50aXRpZXMvY3BsLXRyaS1ub3RhLXNhaWRhLWUtMDc1LWRlci1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL3JlcGxpY2F0aW9uLWVudGl0aWVzL2NwbC10cmktbm90YS1zYWlkYS1lLTA4MC1zZXItbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtbmNtLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvcmVwbGljYXRpb24tZW50aXRpZXMvY3BsLXRyaS1ub3RhLXNhaWRhLW5hdHVyZXphLXJlY2VpdGEtcGlzLWNvZmluc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvcmVwbGljYXRpb24tZW50aXRpZXMvY3BsLXRyaS1ub3RhLXNhaWRhLW5mLXNhaWRhLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvcmVwbGljYXRpb24tZW50aXRpZXMvY3BsLXRyaS1ub3RhLXNhaWRhLW5mLWVudHJhZGEtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wNjYtZnBnLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvcmVwbGljYXRpb24tZW50aXRpZXMvY3BsLXRyaS1ub3RhLXNhaWRhLWUtMDI4LWNwZy1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL3JlcGxpY2F0aW9uLWVudGl0aWVzL2NwbC10cmktbm90YS1zYWlkYS1lLTA1MS1kaXMtbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wMjQtbXNnLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvZS0wNTEtZGlzLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvZS0wNDQtY2N1LWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvbmF0dXJlemEtcmVjZWl0YS1waXMtY29maW5zLmxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvZS0wNDgtZmN0LWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvZXF1aXBtZW50LWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvZS0wNDgtc2ZjLWxvb2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXRpZXMvd2l6YXJkLWVudGl0aWVzL2NvdW50cnktbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy93aXphcmQtZW50aXRpZXMvY3VycmVuY3ktbG9va3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnRpdGllcy93aXphcmQtZW50aXRpZXMvYmFuay1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2FwdXJhY2FvLWZvdW5kYXRpb24vdHlwZS10YXhlcy1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2FwdXJhY2FvLWZvdW5kYXRpb24vcGFyYW1ldGVycy1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudGl0aWVzL2JlbmVmaWNpby1maXNjYWwtbG9va3VwXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL2VycC1sb29rdXBzLm1vZHVsZVwiO1xuIl19
|
|
@@ -2,24 +2,21 @@ import { __assign, __decorate, __values } from "tslib";
|
|
|
2
2
|
import { Injectable } from "@angular/core";
|
|
3
3
|
import { Stomp } from "@stomp/stompjs";
|
|
4
4
|
import * as Cookies from "js-cookie";
|
|
5
|
-
import { CookieService } from "ngx-cookie-service";
|
|
6
5
|
import { Subject } from "rxjs";
|
|
7
|
-
import { first } from "rxjs/operators";
|
|
6
|
+
import { first, finalize } from "rxjs/operators";
|
|
8
7
|
import * as SockJS from "sockjs-client";
|
|
9
8
|
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "ngx-cookie-service";
|
|
11
9
|
var WebsocketService = /** @class */ (function () {
|
|
12
|
-
function WebsocketService(
|
|
13
|
-
this.cookieService = cookieService;
|
|
14
|
-
this.baseUrl = null;
|
|
15
|
-
this.username = null;
|
|
10
|
+
function WebsocketService() {
|
|
16
11
|
this.focused = true;
|
|
12
|
+
this.wasConnected = false;
|
|
17
13
|
this.connected = false;
|
|
18
14
|
this.isConnecting = false;
|
|
19
|
-
this.stompSubscriptions = new Map();
|
|
20
15
|
this.primitiveManagers = new Map();
|
|
21
|
-
this.disconnectSubject = new Subject();
|
|
22
16
|
this.connect$ = new Subject();
|
|
17
|
+
this.disconnect$ = new Subject();
|
|
18
|
+
this.reconnect$ = new Subject();
|
|
19
|
+
this.error$ = new Subject();
|
|
23
20
|
window.onfocus = this.onFocus;
|
|
24
21
|
window.onblur = this.onBlur;
|
|
25
22
|
this.connect();
|
|
@@ -33,22 +30,36 @@ var WebsocketService = /** @class */ (function () {
|
|
|
33
30
|
var _this = this;
|
|
34
31
|
setTimeout(function () {
|
|
35
32
|
if (_this.isConnected()) {
|
|
36
|
-
_this.
|
|
33
|
+
_this.connect$.next();
|
|
37
34
|
}
|
|
38
35
|
}, 0);
|
|
39
|
-
return this.connect$.
|
|
36
|
+
return this.connect$.pipe(first());
|
|
40
37
|
};
|
|
41
38
|
/**
|
|
42
|
-
* Observable responsável por emitir uma notificação quando a conexão é
|
|
43
|
-
* @return Um `Observable<void>` que emite uma notificação quando a conexão é
|
|
39
|
+
* Observable responsável por emitir uma notificação quando a conexão é desconectada.
|
|
40
|
+
* @return Um `Observable<void>` que emite uma notificação quando a conexão é desconectada.
|
|
44
41
|
*/
|
|
45
42
|
WebsocketService.prototype.onDisconnect = function () {
|
|
46
|
-
return this.
|
|
43
|
+
return this.disconnect$.asObservable();
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Observable responsável por emitir uma notificação quando a conexão é reconectada.
|
|
47
|
+
* @return Um `Observable<void>` que emite uma notificação quando a conexão é reconectada.
|
|
48
|
+
*/
|
|
49
|
+
WebsocketService.prototype.onReconnect = function () {
|
|
50
|
+
return this.reconnect$.asObservable();
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Observable responsável por emitir uma notificação quando ocorre algum erro.
|
|
54
|
+
* @return Um `Observable<FrameImpl>` que emite uma notificação quando ocorre algum erro.
|
|
55
|
+
*/
|
|
56
|
+
WebsocketService.prototype.onError = function () {
|
|
57
|
+
return this.error$.asObservable();
|
|
47
58
|
};
|
|
48
59
|
/**
|
|
49
60
|
* Observable responsável por emitir uma notificação quando um evento é publicado.
|
|
50
61
|
* @typeParam `<T>` Tipo do objeto que o retorno do `observable` vai devolver.
|
|
51
|
-
* @param domain Dominio da
|
|
62
|
+
* @param domain Dominio da primitiva.
|
|
52
63
|
* @param service Service da primitiva.
|
|
53
64
|
* @param primitive Primitiva que será "observada" pelo client.
|
|
54
65
|
* @param identifierPath Caminho até a propriedade considerada o identificador do registro.
|
|
@@ -60,25 +71,27 @@ var WebsocketService = /** @class */ (function () {
|
|
|
60
71
|
return this.primitiveManagers.get(primitive).subject.asObservable();
|
|
61
72
|
}
|
|
62
73
|
var primitiveManager = {
|
|
74
|
+
domain: domain,
|
|
75
|
+
service: service,
|
|
76
|
+
primitive: primitive,
|
|
77
|
+
stompSubscriptions: [],
|
|
63
78
|
subject: new Subject(),
|
|
64
79
|
identifierPath: identifierPath,
|
|
65
80
|
publishedEvents: [],
|
|
66
81
|
};
|
|
67
82
|
this.primitiveManagers.set(primitive, primitiveManager);
|
|
68
83
|
if (this.isConnected()) {
|
|
69
|
-
this.createStompSubscriptions(
|
|
70
|
-
return primitiveManager.subject.
|
|
84
|
+
this.createStompSubscriptions(primitiveManager);
|
|
85
|
+
return primitiveManager.subject.pipe(finalize(function () { return _this.disconnectPrimitiveOnFinalize(primitive); }));
|
|
71
86
|
}
|
|
72
87
|
else {
|
|
73
88
|
if (!this.isConnecting) {
|
|
74
89
|
this.connect();
|
|
75
90
|
}
|
|
76
|
-
this.
|
|
77
|
-
.
|
|
78
|
-
.subscribe(function () {
|
|
79
|
-
_this.createStompSubscriptions(domain, service, primitive, primitiveManager);
|
|
91
|
+
this.connect$.pipe(first()).subscribe(function () {
|
|
92
|
+
_this.createStompSubscriptions(primitiveManager);
|
|
80
93
|
});
|
|
81
|
-
return primitiveManager.subject.
|
|
94
|
+
return primitiveManager.subject.pipe(finalize(function () { return _this.disconnectPrimitiveOnFinalize(primitive); }));
|
|
82
95
|
}
|
|
83
96
|
};
|
|
84
97
|
/**
|
|
@@ -125,12 +138,12 @@ var WebsocketService = /** @class */ (function () {
|
|
|
125
138
|
primitiveManager.publishedEvents.push(event);
|
|
126
139
|
}
|
|
127
140
|
};
|
|
128
|
-
WebsocketService.prototype.createStompSubscriptions = function (
|
|
129
|
-
var withTokenUrl = this.getSubscriptionUrlWithToken(domain, service, primitive);
|
|
141
|
+
WebsocketService.prototype.createStompSubscriptions = function (primitiveManager) {
|
|
142
|
+
var withTokenUrl = this.getSubscriptionUrlWithToken(primitiveManager.domain, primitiveManager.service, primitiveManager.primitive);
|
|
130
143
|
var stompSubscriptionWithToken = this.createStompSubscription(withTokenUrl, primitiveManager);
|
|
131
|
-
var withoutTokenUrl = this.getSubscriptionUrlWithoutToken(domain, service, primitive);
|
|
144
|
+
var withoutTokenUrl = this.getSubscriptionUrlWithoutToken(primitiveManager.domain, primitiveManager.service, primitiveManager.primitive);
|
|
132
145
|
var stompSubscriptionWithoutToken = this.createStompSubscription(withoutTokenUrl, primitiveManager);
|
|
133
|
-
|
|
146
|
+
primitiveManager.stompSubscriptions = [stompSubscriptionWithToken, stompSubscriptionWithoutToken];
|
|
134
147
|
};
|
|
135
148
|
WebsocketService.prototype.getIdentifierFromEvent = function (identifierPath, event) {
|
|
136
149
|
var e_2, _a;
|
|
@@ -155,19 +168,24 @@ var WebsocketService = /** @class */ (function () {
|
|
|
155
168
|
var _this = this;
|
|
156
169
|
this.createStompClient();
|
|
157
170
|
this.isConnecting = true;
|
|
171
|
+
this._stompClient.activate();
|
|
158
172
|
this._stompClient.connect({}, function () {
|
|
159
|
-
_this.setConnected(true);
|
|
160
173
|
_this.isConnecting = false;
|
|
161
|
-
_this.
|
|
162
|
-
|
|
174
|
+
_this.setConnected(true);
|
|
175
|
+
if (_this.wasConnected) {
|
|
176
|
+
_this.reconnectPrimitives();
|
|
177
|
+
_this.reconnect$.next();
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
_this.wasConnected = true;
|
|
181
|
+
_this.connect$.next();
|
|
182
|
+
}
|
|
183
|
+
}, function (error) {
|
|
163
184
|
_this.setConnected(false);
|
|
164
|
-
|
|
185
|
+
_this.error$.next(error);
|
|
186
|
+
_this.reconnect();
|
|
165
187
|
});
|
|
166
188
|
};
|
|
167
|
-
WebsocketService.prototype.publishOnConnect = function () {
|
|
168
|
-
this.connect$.next();
|
|
169
|
-
this.connect$.observers = [];
|
|
170
|
-
};
|
|
171
189
|
WebsocketService.prototype.onFocus = function () {
|
|
172
190
|
this.focused = true;
|
|
173
191
|
};
|
|
@@ -175,59 +193,55 @@ var WebsocketService = /** @class */ (function () {
|
|
|
175
193
|
this.focused = false;
|
|
176
194
|
};
|
|
177
195
|
WebsocketService.prototype.disconnect = function () {
|
|
178
|
-
var e_3, _a, e_4, _b;
|
|
179
|
-
var observersCount =
|
|
196
|
+
var e_3, _a, e_4, _b, e_5, _c;
|
|
197
|
+
var observersCount = this.getObserversCount();
|
|
198
|
+
if (observersCount > 0)
|
|
199
|
+
return;
|
|
180
200
|
try {
|
|
181
|
-
for (var
|
|
182
|
-
var primitiveManager =
|
|
183
|
-
observersCount += primitiveManager.subject.observers.length;
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
187
|
-
finally {
|
|
188
|
-
try {
|
|
189
|
-
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
190
|
-
}
|
|
191
|
-
finally { if (e_3) throw e_3.error; }
|
|
192
|
-
}
|
|
193
|
-
if (observersCount === 0) {
|
|
194
|
-
this.stompSubscriptions.forEach(function (stompSubscriptions) {
|
|
195
|
-
var e_5, _a;
|
|
201
|
+
for (var _d = __values(this.primitiveManagers.values()), _e = _d.next(); !_e.done; _e = _d.next()) {
|
|
202
|
+
var primitiveManager = _e.value;
|
|
196
203
|
try {
|
|
197
|
-
for (var
|
|
198
|
-
var stompSubscription =
|
|
204
|
+
for (var _f = (e_4 = void 0, __values(primitiveManager.stompSubscriptions)), _g = _f.next(); !_g.done; _g = _f.next()) {
|
|
205
|
+
var stompSubscription = _g.value;
|
|
199
206
|
stompSubscription.unsubscribe();
|
|
200
207
|
}
|
|
201
208
|
}
|
|
202
|
-
catch (
|
|
209
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
203
210
|
finally {
|
|
204
211
|
try {
|
|
205
|
-
if (
|
|
212
|
+
if (_g && !_g.done && (_b = _f.return)) _b.call(_f);
|
|
206
213
|
}
|
|
207
|
-
finally { if (
|
|
214
|
+
finally { if (e_4) throw e_4.error; }
|
|
208
215
|
}
|
|
209
|
-
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
219
|
+
finally {
|
|
210
220
|
try {
|
|
211
|
-
|
|
212
|
-
var primitiveManager = _f.value;
|
|
213
|
-
primitiveManager.subject.complete();
|
|
214
|
-
}
|
|
221
|
+
if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
|
|
215
222
|
}
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
223
|
+
finally { if (e_3) throw e_3.error; }
|
|
224
|
+
}
|
|
225
|
+
try {
|
|
226
|
+
for (var _h = __values(this.primitiveManagers.values()), _j = _h.next(); !_j.done; _j = _h.next()) {
|
|
227
|
+
var primitiveManager = _j.value;
|
|
228
|
+
primitiveManager.subject.complete();
|
|
222
229
|
}
|
|
223
|
-
this.stompSubscriptions.clear();
|
|
224
|
-
this.primitiveManagers.clear();
|
|
225
|
-
this._stompClient.disconnect();
|
|
226
|
-
this._stompClient.deactivate();
|
|
227
|
-
this.setConnected(false);
|
|
228
|
-
this.isConnecting = false;
|
|
229
|
-
this.disconnectSubject.next();
|
|
230
230
|
}
|
|
231
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
232
|
+
finally {
|
|
233
|
+
try {
|
|
234
|
+
if (_j && !_j.done && (_c = _h.return)) _c.call(_h);
|
|
235
|
+
}
|
|
236
|
+
finally { if (e_5) throw e_5.error; }
|
|
237
|
+
}
|
|
238
|
+
this.primitiveManagers.clear();
|
|
239
|
+
this._stompClient.disconnect();
|
|
240
|
+
this._stompClient.deactivate();
|
|
241
|
+
this.setConnected(false);
|
|
242
|
+
this.isConnecting = false;
|
|
243
|
+
this.wasConnected = false;
|
|
244
|
+
this.disconnect$.next();
|
|
231
245
|
};
|
|
232
246
|
WebsocketService.prototype.isConnected = function () {
|
|
233
247
|
return this.connected;
|
|
@@ -255,46 +269,104 @@ var WebsocketService = /** @class */ (function () {
|
|
|
255
269
|
WebsocketService.prototype.createStompClient = function () {
|
|
256
270
|
var ws = new SockJS(WebsocketService_1.WEBSOCKET_URL + "subscription", null, { timeout: WebsocketService_1.CONNECTION_TIMEOUT });
|
|
257
271
|
this._stompClient = Stomp.over(ws);
|
|
272
|
+
// this._stompClient.debug = (str) => console.log(new Date().toISOString(), str);
|
|
258
273
|
this._stompClient.debug = function () { }; // Para remover os logs.
|
|
259
274
|
};
|
|
260
|
-
WebsocketService.prototype.
|
|
261
|
-
return this.cookieService.get("com.senior.base.url");
|
|
262
|
-
};
|
|
263
|
-
WebsocketService.prototype.getUserName = function () {
|
|
264
|
-
var token = this.cookieService.get("com.senior.token");
|
|
265
|
-
return token && JSON.parse(token).username;
|
|
266
|
-
};
|
|
267
|
-
WebsocketService.prototype.reconnectWebSocket = function () {
|
|
275
|
+
WebsocketService.prototype.reconnect = function () {
|
|
268
276
|
var _this = this;
|
|
269
|
-
this.
|
|
270
|
-
|
|
271
|
-
if (this.baseUrl !== null && baseUrl != this.baseUrl) {
|
|
272
|
-
return;
|
|
273
|
-
}
|
|
274
|
-
var username = this.getUserName();
|
|
275
|
-
if (this.username !== null && username != this.username) {
|
|
276
|
-
return;
|
|
277
|
-
}
|
|
277
|
+
if (this.connected)
|
|
278
|
+
this._stompClient.disconnect();
|
|
278
279
|
setTimeout(function () {
|
|
280
|
+
if (_this.getObserversCount() === 0)
|
|
281
|
+
return;
|
|
279
282
|
if (_this.focused) {
|
|
280
283
|
_this.connect();
|
|
281
284
|
}
|
|
282
285
|
else {
|
|
283
|
-
_this.
|
|
286
|
+
_this.reconnect();
|
|
284
287
|
}
|
|
285
288
|
}, WebsocketService_1.RECONNECT_TIMER);
|
|
286
289
|
};
|
|
290
|
+
WebsocketService.prototype.reconnectPrimitives = function () {
|
|
291
|
+
var e_6, _a, e_7, _b;
|
|
292
|
+
try {
|
|
293
|
+
for (var _c = __values(this.primitiveManagers.values()), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
294
|
+
var primitiveManager = _d.value;
|
|
295
|
+
try {
|
|
296
|
+
for (var _e = (e_7 = void 0, __values(primitiveManager.stompSubscriptions)), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
297
|
+
var stompSubscription = _f.value;
|
|
298
|
+
stompSubscription.unsubscribe();
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
|
302
|
+
finally {
|
|
303
|
+
try {
|
|
304
|
+
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
|
|
305
|
+
}
|
|
306
|
+
finally { if (e_7) throw e_7.error; }
|
|
307
|
+
}
|
|
308
|
+
this.createStompSubscriptions(primitiveManager);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
312
|
+
finally {
|
|
313
|
+
try {
|
|
314
|
+
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
315
|
+
}
|
|
316
|
+
finally { if (e_6) throw e_6.error; }
|
|
317
|
+
}
|
|
318
|
+
};
|
|
319
|
+
WebsocketService.prototype.getObserversCount = function () {
|
|
320
|
+
var e_8, _a;
|
|
321
|
+
var observersCount = 0;
|
|
322
|
+
try {
|
|
323
|
+
for (var _b = __values(this.primitiveManagers.values()), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
324
|
+
var primitiveManager = _c.value;
|
|
325
|
+
observersCount += primitiveManager.subject.observers.length;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
catch (e_8_1) { e_8 = { error: e_8_1 }; }
|
|
329
|
+
finally {
|
|
330
|
+
try {
|
|
331
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
332
|
+
}
|
|
333
|
+
finally { if (e_8) throw e_8.error; }
|
|
334
|
+
}
|
|
335
|
+
return observersCount;
|
|
336
|
+
};
|
|
337
|
+
WebsocketService.prototype.disconnectPrimitiveOnFinalize = function (primitive) {
|
|
338
|
+
var e_9, _a;
|
|
339
|
+
var primitiveManager = this.primitiveManagers.get(primitive);
|
|
340
|
+
if (!primitiveManager)
|
|
341
|
+
return;
|
|
342
|
+
// @IMPORTANT: Replace .observers.length with .observed in rxjs 7.0+
|
|
343
|
+
var hasObservers = !(primitiveManager.subject.observers.length === 1);
|
|
344
|
+
if (hasObservers)
|
|
345
|
+
return;
|
|
346
|
+
try {
|
|
347
|
+
for (var _b = __values(primitiveManager.stompSubscriptions), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
348
|
+
var stompSubscription = _c.value;
|
|
349
|
+
stompSubscription.unsubscribe();
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
catch (e_9_1) { e_9 = { error: e_9_1 }; }
|
|
353
|
+
finally {
|
|
354
|
+
try {
|
|
355
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
356
|
+
}
|
|
357
|
+
finally { if (e_9) throw e_9.error; }
|
|
358
|
+
}
|
|
359
|
+
this.primitiveManagers.delete(primitive);
|
|
360
|
+
this.disconnect();
|
|
361
|
+
};
|
|
287
362
|
var WebsocketService_1;
|
|
288
363
|
WebsocketService.RECONNECT_TIMER = 3000;
|
|
289
|
-
WebsocketService.CONNECTION_TIMEOUT =
|
|
364
|
+
WebsocketService.CONNECTION_TIMEOUT = 15000;
|
|
290
365
|
WebsocketService.BASE_URL_COOKIE = "com.senior.base.url";
|
|
291
366
|
WebsocketService.TOKEN_COOKIE = "com.senior.token";
|
|
292
367
|
WebsocketService.TOKEN = JSON.parse(Cookies.get(WebsocketService_1.TOKEN_COOKIE) || "{}");
|
|
293
368
|
WebsocketService.WEBSOCKET_URL = Cookies.get(WebsocketService_1.BASE_URL_COOKIE) + "/websocket/";
|
|
294
|
-
WebsocketService
|
|
295
|
-
{ type: CookieService }
|
|
296
|
-
]; };
|
|
297
|
-
WebsocketService.ɵprov = i0.ɵɵdefineInjectable({ factory: function WebsocketService_Factory() { return new WebsocketService(i0.ɵɵinject(i1.CookieService)); }, token: WebsocketService, providedIn: "root" });
|
|
369
|
+
WebsocketService.ɵprov = i0.ɵɵdefineInjectable({ factory: function WebsocketService_Factory() { return new WebsocketService(); }, token: WebsocketService, providedIn: "root" });
|
|
298
370
|
WebsocketService = WebsocketService_1 = __decorate([
|
|
299
371
|
Injectable({
|
|
300
372
|
providedIn: "root",
|
|
@@ -303,4 +375,4 @@ var WebsocketService = /** @class */ (function () {
|
|
|
303
375
|
return WebsocketService;
|
|
304
376
|
}());
|
|
305
377
|
export { WebsocketService };
|
|
306
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic29ja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1lbXByZXNhcmlhbC9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3dlYnNvY2tldC93ZWJzb2NrZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWdCLEtBQUssRUFBcUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEtBQUssT0FBTyxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUM7OztBQVd4QztJQXdCSSwwQkFBb0IsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFoQnhDLFlBQU8sR0FBVyxJQUFJLENBQUM7UUFDdkIsYUFBUSxHQUFXLElBQUksQ0FBQztRQUN4QixZQUFPLEdBQUcsSUFBSSxDQUFDO1FBR2YsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUVyQix1QkFBa0IsR0FBRyxJQUFJLEdBQUcsRUFBK0IsQ0FBQztRQUU1RCxzQkFBaUIsR0FBa0MsSUFBSSxHQUFHLEVBQTRCLENBQUM7UUFFdkYsc0JBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUV4QyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUduQyxNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDOUIsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxD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LEtBQUssSUFBSSxJQUFJLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2xELE9BQU87U0FDVjtRQUVELElBQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVwQyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxJQUFJLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3JELE9BQU87U0FDVjtRQUVELFVBQVUsQ0FBQztZQUNQLElBQUksS0FBSSxDQUFDLE9BQU8sRUFBRTtnQkFDZCxLQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDbEI7aUJBQU07Z0JBQ0gsS0FBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7YUFDN0I7UUFDTCxDQUFDLEVBQUUsa0JBQWdCLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDekMsQ0FBQzs7SUFoU2MsZ0NBQWUsR0FBRyxJQUFJLENBQUM7SUFDdkIsbUNBQWtCLEdBQUcsS0FBSyxDQUFDO0lBQzNCLGdDQUFlLEdBQUcscUJBQXFCLENBQUM7SUFDeEMsNkJBQVksR0FBRyxrQkFBa0IsQ0FBQztJQUNsQyxzQkFBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBZ0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztJQUN2RSw4QkFBYSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWdCLENBQUMsZUFBZSxDQUFDLEdBQUcsYUFBYSxDQUFDOztnQkFrQjFELGFBQWE7OztJQXhCdkMsZ0JBQWdCO1FBSDVCLFVBQVUsQ0FBQztZQUNSLFVBQVUsRUFBRSxNQUFNO1NBQ3JCLENBQUM7T0FDVyxnQkFBZ0IsQ0FrUzVCOzJCQW5URDtDQW1UQyxBQWxTRCxJQWtTQztTQWxTWSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29tcGF0Q2xpZW50LCBTdG9tcCwgU3RvbXBTdWJzY3JpcHRpb24gfSBmcm9tIFwiQHN0b21wL3N0b21wanNcIjtcclxuaW1wb3J0ICogYXMgQ29va2llcyBmcm9tIFwianMtY29va2llXCI7XHJcbmltcG9ydCB7IENvb2tpZVNlcnZpY2UgfSBmcm9tIFwibmd4LWNvb2tpZS1zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgKiBhcyBTb2NrSlMgZnJvbSBcInNvY2tqcy1jbGllbnRcIjtcclxuXHJcbmludGVyZmFjZSBQcmltaXRpdmVNYW5hZ2VyIHtcclxuICAgIHN1YmplY3Q6IFN1YmplY3Q8YW55PjtcclxuICAgIGlkZW50aWZpZXJQYXRoOiBzdHJpbmc7XHJcbiAgICBwdWJsaXNoZWRFdmVudHM6IGFueVtdO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIFdlYnNvY2tldFNlcnZpY2Uge1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgUkVDT05ORUNUX1RJTUVSID0gMzAwMDtcclxuICAgIHByaXZhdGUgc3RhdGljIENPTk5FQ1RJT05fVElNRU9VVCA9IDMwMDAwO1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgQkFTRV9VUkxfQ09PS0lFID0gXCJjb20uc2VuaW9yLmJhc2UudXJsXCI7XHJcbiAgICBwcml2YXRlIHN0YXRpYyBUT0tFTl9DT09LSUUgPSBcImNvbS5zZW5pb3IudG9rZW5cIjtcclxuICAgIHByaXZhdGUgc3RhdGljIFRPS0VOID0gSlNPTi5wYXJzZShDb29raWVzLmdldChXZWJzb2NrZXRTZXJ2aWNlLlRPS0VOX0NPT0tJRSkgfHwgXCJ7fVwiKTtcclxuICAgIHByaXZhdGUgc3RhdGljIFdFQlNPQ0tFVF9VUkwgPSBDb29raWVzLmdldChXZWJzb2NrZXRTZXJ2aWNlLkJBU0VfVVJMX0NPT0tJRSkgKyBcIi93ZWJzb2NrZXQvXCI7XHJcblxyXG4gICAgcHJpdmF0ZSBiYXNlVXJsOiBzdHJpbmcgPSBudWxsO1xyXG4gICAgcHJpdmF0ZSB1c2VybmFtZTogc3RyaW5nID0gbnVsbDtcclxuICAgIHByaXZhdGUgZm9jdXNlZCA9IHRydWU7XHJcbiAgICBwcml2YXRlIF9zdG9tcENsaWVudDogQ29tcGF0Q2xpZW50O1xyXG5cclxuICAgIHByaXZhdGUgY29ubmVjdGVkID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIGlzQ29ubmVjdGluZyA9IGZhbHNlO1xyXG5cclxuICAgIHByaXZhdGUgc3RvbXBTdWJzY3JpcHRpb25zID0gbmV3IE1hcDxzdHJpbmcsIFN0b21wU3Vic2NyaXB0aW9uW10+KCk7XHJcblxyXG4gICAgcHJpdmF0ZSBwcmltaXRpdmVNYW5hZ2VyczogTWFwPHN0cmluZywgUHJpbWl0aXZlTWFuYWdlcj4gPSBuZXcgTWFwPHN0cmluZywgUHJpbWl0aXZlTWFuYWdlcj4oKTtcclxuXHJcbiAgICBwcml2YXRlIGRpc2Nvbm5lY3RTdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgICBwcml2YXRlIGNvbm5lY3QkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvb2tpZVNlcnZpY2U6IENvb2tpZVNlcnZpY2UpIHtcclxuICAgICAgICB3aW5kb3cub25mb2N1cyA9IHRoaXMub25Gb2N1cztcclxuICAgICAgICB3aW5kb3cub25ibHVyID0gdGhpcy5vbkJsdXI7XHJcblxyXG4gICAgICAgIHRoaXMuY29ubmVjdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT2JzZXJ2YWJsZSByZXNwb25zw6F2ZWwgcG9yIGVtaXRpciB1bWEgbm90aWZpY2HDp8OjbyBxdWFuZG8gYSBjb25leMOjbyB3ZWJzb2NrZXQgw6kgZXN0YWJlbGVjaWRhLlxyXG4gICAgICogQHJldHVybiBVbSBgT2JzZXJ2YWJsZTx2b2lkPmAgcXVlIGVtaXRlIHVtYSBub3RpZmljYcOnw6NvIHF1YW5kbyBhIGNvbmV4w6NvIHdlYnNvY2tldCDDqSBlc3RhYmVsZWNpZGEuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvbkNvbm5lY3QoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlzQ29ubmVjdGVkKCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucHVibGlzaE9uQ29ubmVjdCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSwgMCk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3QkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT2JzZXJ2YWJsZSByZXNwb25zw6F2ZWwgcG9yIGVtaXRpciB1bWEgbm90aWZpY2HDp8OjbyBxdWFuZG8gYSBjb25leMOjbyDDqSBmaW5hbGl6YWRhLlxyXG4gICAgICogQHJldHVybiBVbSBgT2JzZXJ2YWJsZTx2b2lkPmAgcXVlIGVtaXRlIHVtYSBub3RpZmljYcOnw6NvIHF1YW5kbyBhIGNvbmV4w6NvIMOpIGZpbmFsaXphZGEuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvbkRpc2Nvbm5lY3QoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzY29ubmVjdFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPYnNlcnZhYmxlIHJlc3BvbnPDoXZlbCBwb3IgZW1pdGlyIHVtYSBub3RpZmljYcOnw6NvIHF1YW5kbyB1bSBldmVudG8gw6kgcHVibGljYWRvLlxyXG4gICAgICogQHR5cGVQYXJhbSBgPFQ+YCBUaXBvIGRvIG9iamV0byBxdWUgbyByZXRvcm5vIGRvIGBvYnNlcnZhYmxlYCB2YWkgZGV2b2x2ZXIuXHJcbiAgICAgKiBAcGFyYW0gZG9tYWluIERvbWluaW8gZGEgcHJpbWl0dmEuXHJcbiAgICAgKiBAcGFyYW0gc2VydmljZSBTZXJ2aWNlIGRhIHByaW1pdGl2YS5cclxuICAgICAqIEBwYXJhbSBwcmltaXRpdmUgUHJpbWl0aXZhIHF1ZSBzZXLDoSBcIm9ic2VydmFkYVwiIHBlbG8gY2xpZW50LlxyXG4gICAgICogQHBhcmFtIGlkZW50aWZpZXJQYXRoIENhbWluaG8gYXTDqSBhIHByb3ByaWVkYWRlIGNvbnNpZGVyYWRhIG8gaWRlbnRpZmljYWRvciBkbyByZWdpc3Ryby5cclxuICAgICAqIEByZXR1cm4gVW0gYG9ic2VydmFibGVgIHF1ZSBlbWl0ZSBub3RpZmljYcOnw7VlcyB0b2RhIHZleiBxdWUgbyByZXNwZWN0aXZvIGV2ZW50byDDqSBwdWJsaWNhZG8gbm8gc2lzdGVtYS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG9uRXZlbnQ8VD4oZG9tYWluOiBzdHJpbmcsIHNlcnZpY2U6IHN0cmluZywgcHJpbWl0aXZlOiBzdHJpbmcsIGlkZW50aWZpZXJQYXRoOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgICAgICBpZiAodGhpcy5wcmltaXRpdmVNYW5hZ2Vycy5oYXMocHJpbWl0aXZlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcmltaXRpdmVNYW5hZ2Vycy5nZXQocHJpbWl0aXZlKS5zdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgcHJpbWl0aXZlTWFuYWdlciA9IHtcclxuICAgICAgICAgICAgc3ViamVjdDogbmV3IFN1YmplY3Q8VD4oKSxcclxuICAgICAgICAgICAgaWRlbnRpZmllclBhdGg6IGlkZW50aWZpZXJQYXRoLFxyXG4gICAgICAgICAgICBwdWJsaXNoZWRFdmVudHM6IFtdIGFzIGFueVtdLFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMucHJpbWl0aXZlTWFuYWdlcnMuc2V0KHByaW1pdGl2ZSwgcHJpbWl0aXZlTWFuYWdlcik7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmlzQ29ubmVjdGVkKCkpIHtcclxuICAgICAgICAgICAgdGhpcy5jcmVhdGVTdG9tcFN1YnNjcmlwdGlvbnMoZG9tYWluLCBzZXJ2aWNlLCBwcmltaXRpdmUsIHByaW1pdGl2ZU1hbmFnZXIpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHByaW1pdGl2ZU1hbmFnZXIuc3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNDb25uZWN0aW5nKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3QoKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5vbkNvbm5lY3QoKVxyXG4gICAgICAgICAgICAgICAgLnBpcGUoZmlyc3QoKSlcclxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlU3RvbXBTdWJzY3JpcHRpb25zKGRvbWFpbiwgc2VydmljZSwgcHJpbWl0aXZlLCBwcmltaXRpdmVNYW5hZ2VyKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHByaW1pdGl2ZU1hbmFnZXIuc3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRvcm5hIHRvZG9zIG9zIGV2ZW50b3Mgb3V2aWRvcyBwZWxhIHByaW1pdGl2YSBjb20gb3MgcmVzcGVjdGl2b3MgaWRlbnRpZmljYWRvcmVzLlxyXG4gICAgICogQHR5cGVQYXJhbSBgPFQ+YCBUaXBvIGRvIGV2ZW50byByZXRvcm5hZG8gcGVsYSBwcmltaXRpdmEuXHJcbiAgICAgKiBAcGFyYW0gcHJpbWl0aXZlIFByaW1pdGl2YSBxdWUgc2Vyw6EgXCJvYnNlcnZhZGFcIiBwZWxvIGNsaWVudC5cclxuICAgICAqIEBwYXJhbSBpZGVudGlmaWVycyBBcnJheSBjb20gb3MgaWRlbnRpZmljYWRvcmVzIGludGVyZXNzYWRvcy5cclxuICAgICAqIEByZXR1cm4gQXJyYXkgY29udGVuZG8gbyDDumx0aW1vIGV2ZW50byByZWNlYmlkbyBkZSBjYWRhIGlkZW50aWZpY2Fkb3IgZm9ybmVjaWRvLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0UHVibGlzaGVkRXZlbnRzPFQ+KHByaW1pdGl2ZTogc3RyaW5nLCBpZGVudGlmaWVyczogc3RyaW5nW10pOiBUW10ge1xyXG4gICAgICAgIGNvbnN0IHB1Ymxpc2hlZEV2ZW50czogVFtdID0gW107XHJcblxyXG4gICAgICAgIGNvbnN0IHByaW1pdGl2ZU1hbmFnZXIgPSB0aGlzLnByaW1pdGl2ZU1hbmFnZXJzLmdldChwcmltaXRpdmUpO1xyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IGlkZW50aWZpZXIgb2YgaWRlbnRpZmllcnMpIHtcclxuICAgICAgICAgICAgY29uc3QgZXZlbnQgPSBwcmltaXRpdmVNYW5hZ2VyLnB1Ymxpc2hlZEV2ZW50cy5maW5kKFxyXG4gICAgICAgICAgICAgICAgeCA9PiB0aGlzLmdldElkZW50aWZpZXJGcm9tRXZlbnQocHJpbWl0aXZlTWFuYWdlci5pZGVudGlmaWVyUGF0aCwgeCkgPT09IGlkZW50aWZpZXJcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChldmVudCkge1xyXG4gICAgICAgICAgICAgICAgcHVibGlzaGVkRXZlbnRzLnB1c2goZXZlbnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcHVibGlzaGVkRXZlbnRzO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYWRkUHVibGlzaGVkRXZlbnQocHJpbWl0aXZlTWFuYWdlcjogUHJpbWl0aXZlTWFuYWdlciwgZXZlbnQ6IGFueSkge1xyXG4gICAgICAgIGNvbnN0IGlkZW50aWZpZXIgPSB0aGlzLmdldElkZW50aWZpZXJGcm9tRXZlbnQocHJpbWl0aXZlTWFuYWdlci5pZGVudGlmaWVyUGF0aCwgZXZlbnQpO1xyXG5cclxuICAgICAgICBjb25zdCBldmVudEluZGV4ID0gcHJpbWl0aXZlTWFuYWdlci5wdWJsaXNoZWRFdmVudHMuZmluZEluZGV4KFxyXG4gICAgICAgICAgICB4ID0+IHRoaXMuZ2V0SWRlbnRpZmllckZyb21FdmVudChwcmltaXRpdmVNYW5hZ2VyLmlkZW50aWZpZXJQYXRoLCB4KSA9PT0gaWRlbnRpZmllclxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGlmIChldmVudEluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgICBwcmltaXRpdmVNYW5hZ2VyLnB1Ymxpc2hlZEV2ZW50c1tldmVudEluZGV4XSA9IHsgLi4ucHJpbWl0aXZlTWFuYWdlci5wdWJsaXNoZWRFdmVudHNbZXZlbnRJbmRleF0sIC4uLmV2ZW50IH07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcHJpbWl0aXZlTWFuYWdlci5wdWJsaXNoZWRFdmVudHMucHVzaChldmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY3JlYXRlU3RvbXBTdWJzY3JpcHRpb25zKGRvbWFpbjogc3RyaW5nLCBzZXJ2aWNlOiBzdHJpbmcsIHByaW1pdGl2ZTogc3RyaW5nLCBwcmltaXRpdmVNYW5hZ2VyOiBQcmltaXRpdmVNYW5hZ2VyKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3Qgd2l0aFRva2VuVXJsID0gdGhpcy5nZXRTdWJzY3JpcHRpb25VcmxXaXRoVG9rZW4oZG9tYWluLCBzZXJ2aWNlLCBwcmltaXRpdmUpO1xyXG5cclxuICAgICAgICBjb25zdCBzdG9tcFN1YnNjcmlwdGlvbldpdGhUb2tlbiA9IHRoaXMuY3JlYXRlU3RvbXBTdWJzY3JpcHRpb24od2l0aFRva2VuVXJsLCBwcmltaXRpdmVNYW5hZ2VyKTtcclxuXHJcbiAgICAgICAgY29uc3Qgd2l0aG91dFRva2VuVXJsID0gdGhpcy5nZXRTdWJzY3JpcHRpb25VcmxXaXRob3V0VG9rZW4oZG9tYWluLCBzZXJ2aWNlLCBwcmltaXRpdmUpO1xyXG5cclxuICAgICAgICBjb25zdCBzdG9tcFN1YnNjcmlwdGlvbldpdGhvdXRUb2tlbiA9IHRoaXMuY3JlYXRlU3RvbXBTdWJzY3JpcHRpb24od2l0aG91dFRva2VuVXJsLCBwcmltaXRpdmVNYW5hZ2VyKTtcclxuXHJcbiAgICAgICAgdGhpcy5zdG9tcFN1YnNjcmlwdGlvbnMuc2V0KHByaW1pdGl2ZSwgW3N0b21wU3Vic2NyaXB0aW9uV2l0aFRva2VuLCBzdG9tcFN1YnNjcmlwdGlvbldpdGhvdXRUb2tlbl0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0SWRlbnRpZmllckZyb21FdmVudChpZGVudGlmaWVyUGF0aDogc3RyaW5nLCBldmVudDogYW55KTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBwcm9wZXJ0aWVzID0gaWRlbnRpZmllclBhdGguc3BsaXQoXCIuXCIpO1xyXG5cclxuICAgICAgICBsZXQgaWRlbnRpZmllciA9IGV2ZW50O1xyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcclxuICAgICAgICAgICAgaWRlbnRpZmllciA9IGlkZW50aWZpZXJbcHJvcGVydHldO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGlkZW50aWZpZXI7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjb25uZWN0KCkge1xyXG4gICAgICAgIHRoaXMuY3JlYXRlU3RvbXBDbGllbnQoKTtcclxuXHJcbiAgICAgICAgdGhpcy5pc0Nvbm5lY3RpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLl9zdG9tcENsaWVudC5jb25uZWN0KFxyXG4gICAgICAgICAgICB7fSxcclxuICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRDb25uZWN0ZWQodHJ1ZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0Nvbm5lY3RpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnB1Ymxpc2hPbkNvbm5lY3QoKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRDb25uZWN0ZWQoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy5yZWNvbm5lY3RXZWJTb2NrZXQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBwdWJsaXNoT25Db25uZWN0KCkge1xyXG4gICAgICAgIHRoaXMuY29ubmVjdCQubmV4dCgpO1xyXG4gICAgICAgIHRoaXMuY29ubmVjdCQub2JzZXJ2ZXJzID0gW107XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBvbkZvY3VzKCkge1xyXG4gICAgICAgIHRoaXMuZm9jdXNlZCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBvbkJsdXIoKSB7XHJcbiAgICAgICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRpc2Nvbm5lY3QoKSB7XHJcbiAgICAgICAgbGV0IG9ic2VydmVyc0NvdW50ID0gMDtcclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBwcmltaXRpdmVNYW5hZ2VyIG9mIHRoaXMucHJpbWl0aXZlTWFuYWdlcnMudmFsdWVzKCkpIHtcclxuICAgICAgICAgICAgb2JzZXJ2ZXJzQ291bnQgKz0gcHJpbWl0aXZlTWFuYWdlci5zdWJqZWN0Lm9ic2VydmVycy5sZW5ndGg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob2JzZXJ2ZXJzQ291bnQgPT09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9tcFN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdG9tcFN1YnNjcmlwdGlvbnMgPT4ge1xyXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBzdG9tcFN1YnNjcmlwdGlvbiBvZiBzdG9tcFN1YnNjcmlwdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgICAgICBzdG9tcFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgcHJpbWl0aXZlTWFuYWdlciBvZiB0aGlzLnByaW1pdGl2ZU1hbmFnZXJzLnZhbHVlcygpKSB7XHJcbiAgICAgICAgICAgICAgICBwcmltaXRpdmVNYW5hZ2VyLnN1YmplY3QuY29tcGxldGUoKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5zdG9tcFN1YnNjcmlwdGlvbnMuY2xlYXIoKTtcclxuICAgICAgICAgICAgdGhpcy5wcmltaXRpdmVNYW5hZ2Vycy5jbGVhcigpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fc3RvbXBDbGllbnQuZGlzY29ubmVjdCgpO1xyXG4gICAgICAgICAgICB0aGlzLl9zdG9tcENsaWVudC5kZWFjdGl2YXRlKCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnNldENvbm5lY3RlZChmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMuaXNDb25uZWN0aW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmRpc2Nvbm5lY3RTdWJqZWN0Lm5leHQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpc0Nvbm5lY3RlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb25uZWN0ZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRDb25uZWN0ZWQoY29ubmVjdGVkOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5jb25uZWN0ZWQgPSBjb25uZWN0ZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRTdWJzY3JpcHRpb25VcmxXaXRoVG9rZW4oZG9tYWluOiBzdHJpbmcsIHNlcnZpY2U6IHN0cmluZywgcHJpbWl0aXZlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IHRlbmFudCA9IFdlYnNvY2tldFNlcnZpY2UuVE9LRU4gPyBXZWJzb2NrZXRTZXJ2aWNlLlRPS0VOLnVzZXJuYW1lLnNwbGl0KFwiQFwiKVsxXSA6IG51bGw7XHJcbiAgICAgICAgY29uc3QgdG9rZW4gPSBXZWJzb2NrZXRTZXJ2aWNlLlRPS0VOID8gV2Vic29ja2V0U2VydmljZS5UT0tFTi5hY2Nlc3NfdG9rZW4gOiBudWxsO1xyXG5cclxuICAgICAgICByZXR1cm4gYC90b3BpYy8ke3RlbmFudH0vJHt0b2tlbn0vJHtkb21haW59LyR7c2VydmljZX0vJHtwcmltaXRpdmV9YDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFN1YnNjcmlwdGlvblVybFdpdGhvdXRUb2tlbihkb21haW46IHN0cmluZywgc2VydmljZTogc3RyaW5nLCBwcmltaXRpdmU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgdGVuYW50ID0gV2Vic29ja2V0U2VydmljZS5UT0tFTiA/IFdlYnNvY2tldFNlcnZpY2UuVE9LRU4udXNlcm5hbWUuc3BsaXQoXCJAXCIpWzFdIDogbnVsbDtcclxuXHJcbiAgICAgICAgcmV0dXJuIGAvdG9waWMvJHt0ZW5hbnR9LyR7ZG9tYWlufS8ke3NlcnZpY2V9LyR7cHJpbWl0aXZlfWA7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjcmVhdGVTdG9tcFN1YnNjcmlwdGlvbihkZXN0aW5hdGlvbjogc3RyaW5nLCBwcmltaXRpdmVNYW5hZ2VyOiBQcmltaXRpdmVNYW5hZ2VyKTogU3RvbXBTdWJzY3JpcHRpb24ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zdG9tcENsaWVudC5zdWJzY3JpYmUoZGVzdGluYXRpb24sIChtZXNzYWdlOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZXZlbnQgPSBKU09OLnBhcnNlKG1lc3NhZ2UuYm9keSB8fCBcInt9XCIpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5hZGRQdWJsaXNoZWRFdmVudChwcmltaXRpdmVNYW5hZ2VyLCBldmVudCk7XHJcblxyXG4gICAgICAgICAgICBwcmltaXRpdmVNYW5hZ2VyLnN1YmplY3QubmV4dChldmVudCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjcmVhdGVTdG9tcENsaWVudCgpIHtcclxuICAgICAgICBjb25zdCB3cyA9IG5ldyBTb2NrSlMoYCR7V2Vic29ja2V0U2VydmljZS5XRUJTT0NLRVRfVVJMfXN1YnNjcmlwdGlvbmAsIG51bGwsIHsgdGltZW91dDogV2Vic29ja2V0U2VydmljZS5DT05ORUNUSU9OX1RJTUVPVVQgfSk7XHJcbiAgICAgICAgdGhpcy5fc3RvbXBDbGllbnQgPSBTdG9tcC5vdmVyKHdzKTtcclxuICAgICAgICB0aGlzLl9zdG9tcENsaWVudC5kZWJ1ZyA9ICgpID0+IHt9OyAvLyBQYXJhIHJlbW92ZXIgb3MgbG9ncy5cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldEJhc2VVcmwoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29va2llU2VydmljZS5nZXQoXCJjb20uc2VuaW9yLmJhc2UudXJsXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0VXNlck5hbWUoKSB7XHJcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KFwiY29tLnNlbmlvci50b2tlblwiKTtcclxuICAgICAgICByZXR1cm4gdG9rZW4gJiYgSlNPTi5wYXJzZSh0b2tlbikudXNlcm5hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZWNvbm5lY3RXZWJTb2NrZXQoKSB7XHJcbiAgICAgICAgdGhpcy5fc3RvbXBDbGllbnQuZGlzY29ubmVjdCgpO1xyXG4gICAgICAgIGNvbnN0IGJhc2VVcmwgPSB0aGlzLmdldEJhc2VVcmwoKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuYmFzZVVybCAhPT0gbnVsbCAmJiBiYXNlVXJsICE9IHRoaXMuYmFzZVVybCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCB1c2VybmFtZSA9IHRoaXMuZ2V0VXNlck5hbWUoKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMudXNlcm5hbWUgIT09IG51bGwgJiYgdXNlcm5hbWUgIT0gdGhpcy51c2VybmFtZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZm9jdXNlZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0KCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlY29ubmVjdFdlYlNvY2tldCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSwgV2Vic29ja2V0U2VydmljZS5SRUNPTk5FQ1RfVElNRVIpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
378
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic29ja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1lbXByZXNhcmlhbC9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3dlYnNvY2tldC93ZWJzb2NrZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQTJCLEtBQUssRUFBcUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRixPQUFPLEtBQUssT0FBTyxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUM7O0FBZXhDO0lBNEJJO1FBcEJRLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFJZixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUVyQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBRXJCLHNCQUFpQixHQUFrQyxJQUFJLEdBQUcsRUFBNEIsQ0FBQztRQUV2RixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUUvQixnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFbEMsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFakMsV0FBTSxHQUFHLElBQUksT0FBTyxFQUFhLENBQUM7UUFHdEMsTUFBTSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzlCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUU1QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQzt5QkFqQ1EsZ0JBQWdCO0lBbUN6Qjs7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O1NBMVZZLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb21wYXRDbGllbnQsIEZyYW1lSW1wbCwgU3RvbXAsIFN0b21wU3Vic2NyaXB0aW9uIH0gZnJvbSBcIkBzdG9tcC9zdG9tcGpzXCI7XHJcbmltcG9ydCAqIGFzIENvb2tpZXMgZnJvbSBcImpzLWNvb2tpZVwiO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgZmlyc3QsIGZpbmFsaXplIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCAqIGFzIFNvY2tKUyBmcm9tIFwic29ja2pzLWNsaWVudFwiO1xyXG5cclxuaW50ZXJmYWNlIFByaW1pdGl2ZU1hbmFnZXIge1xyXG4gICAgZG9tYWluOiBzdHJpbmc7XHJcbiAgICBzZXJ2aWNlOiBzdHJpbmc7XHJcbiAgICBwcmltaXRpdmU6IHN0cmluZztcclxuICAgIHN0b21wU3Vic2NyaXB0aW9uczogU3RvbXBTdWJzY3JpcHRpb25bXTtcclxuICAgIHN1YmplY3Q6IFN1YmplY3Q8YW55PjtcclxuICAgIGlkZW50aWZpZXJQYXRoOiBzdHJpbmc7XHJcbiAgICBwdWJsaXNoZWRFdmVudHM6IGFueVtdO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIFdlYnNvY2tldFNlcnZpY2Uge1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgUkVDT05ORUNUX1RJTUVSID0gMzAwMDtcclxuICAgIHByaXZhdGUgc3RhdGljIENPTk5FQ1RJT05fVElNRU9VVCA9IDE1MDAwO1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgQkFTRV9VUkxfQ09PS0lFID0gXCJjb20uc2VuaW9yLmJhc2UudXJsXCI7XHJcbiAgICBwcml2YXRlIHN0YXRpYyBUT0tFTl9DT09LSUUgPSBcImNvbS5zZW5pb3IudG9rZW5cIjtcclxuICAgIHByaXZhdGUgc3RhdGljIFRPS0VOID0gSlNPTi5wYXJzZShDb29raWVzLmdldChXZWJzb2NrZXRTZXJ2aWNlLlRPS0VOX0NPT0tJRSkgfHwgXCJ7fVwiKTtcclxuICAgIHByaXZhdGUgc3RhdGljIFdFQlNPQ0tFVF9VUkwgPSBDb29raWVzLmdldChXZWJzb2NrZXRTZXJ2aWNlLkJBU0VfVVJMX0NPT0tJRSkgKyBcIi93ZWJzb2NrZXQvXCI7XHJcblxyXG4gICAgcHJpdmF0ZSBmb2N1c2VkID0gdHJ1ZTtcclxuXHJcbiAgICBwcml2YXRlIF9zdG9tcENsaWVudDogQ29tcGF0Q2xpZW50O1xyXG5cclxuICAgIHByaXZhdGUgd2FzQ29ubmVjdGVkID0gZmFsc2U7XHJcblxyXG4gICAgcHJpdmF0ZSBjb25uZWN0ZWQgPSBmYWxzZTtcclxuXHJcbiAgICBwcml2YXRlIGlzQ29ubmVjdGluZyA9IGZhbHNlO1xyXG5cclxuICAgIHByaXZhdGUgcHJpbWl0aXZlTWFuYWdlcnM6IE1hcDxzdHJpbmcsIFByaW1pdGl2ZU1hbmFnZXI+ID0gbmV3IE1hcDxzdHJpbmcsIFByaW1pdGl2ZU1hbmFnZXI+KCk7XHJcblxyXG4gICAgcHJpdmF0ZSBjb25uZWN0JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gICAgcHJpdmF0ZSBkaXNjb25uZWN0JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gICAgcHJpdmF0ZSByZWNvbm5lY3QkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgICBwcml2YXRlIGVycm9yJCA9IG5ldyBTdWJqZWN0PEZyYW1lSW1wbD4oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB3aW5kb3cub25mb2N1cyA9IHRoaXMub25Gb2N1cztcclxuICAgICAgICB3aW5kb3cub25ibHVyID0gdGhpcy5vbkJsdXI7XHJcblxyXG4gICAgICAgIHRoaXMuY29ubmVjdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT2JzZXJ2YWJsZSByZXNwb25zw6F2ZWwgcG9yIGVtaXRpciB1bWEgbm90aWZpY2HDp8OjbyBxdWFuZG8gYSBjb25leMOjbyB3ZWJzb2NrZXQgw6kgZXN0YWJlbGVjaWRhLlxyXG4gICAgICogQHJldHVybiBVbSBgT2JzZXJ2YWJsZTx2b2lkPmAgcXVlIGVtaXRlIHVtYSBub3RpZmljYcOnw6NvIHF1YW5kbyBhIGNvbmV4w6NvIHdlYnNvY2tldCDDqSBlc3RhYmVsZWNpZGEuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvbkNvbm5lY3QoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlzQ29ubmVjdGVkKCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdCQubmV4dCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSwgMCk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3QkLnBpcGUoZmlyc3QoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPYnNlcnZhYmxlIHJlc3BvbnPDoXZlbCBwb3IgZW1pdGlyIHVtYSBub3RpZmljYcOnw6NvIHF1YW5kbyBhIGNvbmV4w6NvIMOpIGRlc2NvbmVjdGFkYS5cclxuICAgICAqIEByZXR1cm4gVW0gYE9ic2VydmFibGU8dm9pZD5gIHF1ZSBlbWl0ZSB1bWEgbm90aWZpY2HDp8OjbyBxdWFuZG8gYSBjb25leMOjbyDDqSBkZXNjb25lY3RhZGEuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvbkRpc2Nvbm5lY3QoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzY29ubmVjdCQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPYnNlcnZhYmxlIHJlc3BvbnPDoXZlbCBwb3IgZW1pdGlyIHVtYSBub3RpZmljYcOnw6NvIHF1YW5kbyBhIGNvbmV4w6NvIMOpIHJlY29uZWN0YWRhLlxyXG4gICAgICogQHJldHVybiBVbSBgT2JzZXJ2YWJsZTx2b2lkPmAgcXVlIGVtaXRlIHVtYSBub3RpZmljYcOnw6NvIHF1YW5kbyBhIGNvbmV4w6NvIMOpIHJlY29uZWN0YWRhLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgb25SZWNvbm5lY3QoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmVjb25uZWN0JC5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE9ic2VydmFibGUgcmVzcG9uc8OhdmVsIHBvciBlbWl0aXIgdW1hIG5vdGlmaWNhw6fDo28gcXVhbmRvIG9jb3JyZSBhbGd1bSBlcnJvLlxyXG4gICAgICogQHJldHVybiBVbSBgT2JzZXJ2YWJsZTxGcmFtZUltcGw+YCBxdWUgZW1pdGUgdW1hIG5vdGlmaWNhw6fDo28gcXVhbmRvIG9jb3JyZSBhbGd1bSBlcnJvLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgb25FcnJvcigpOiBPYnNlcnZhYmxlPEZyYW1lSW1wbD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVycm9yJC5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE9ic2VydmFibGUgcmVzcG9uc8OhdmVsIHBvciBlbWl0aXIgdW1hIG5vdGlmaWNhw6fDo28gcXVhbmRvIHVtIGV2ZW50byDDqSBwdWJsaWNhZG8uXHJcbiAgICAgKiBAdHlwZVBhcmFtIGA8VD5gIFRpcG8gZG8gb2JqZXRvIHF1ZSBvIHJldG9ybm8gZG8gYG9ic2VydmFibGVgIHZhaSBkZXZvbHZlci5cclxuICAgICAqIEBwYXJhbSBkb21haW4gRG9taW5pbyBkYSBwcmltaXRpdmEuXHJcbiAgICAgKiBAcGFyYW0gc2VydmljZSBTZXJ2aWNlIGRhIHByaW1pdGl2YS5cclxuICAgICAqIEBwYXJhbSBwcmltaXRpdmUgUHJpbWl0aXZhIHF1ZSBzZXLDoSBcIm9ic2VydmFkYVwiIHBlbG8gY2xpZW50LlxyXG4gICAgICogQHBhcmFtIGlkZW50aWZpZXJQYXRoIENhbWluaG8gYXTDqSBhIHByb3ByaWVkYWRlIGNvbnNpZGVyYWRhIG8gaWRlbnRpZmljYWRvciBkbyByZWdpc3Ryby5cclxuICAgICAqIEByZXR1cm4gVW0gYG9ic2VydmFibGVgIHF1ZSBlbWl0ZSBub3RpZmljYcOnw7VlcyB0b2RhIHZleiBxdWUgbyByZXNwZWN0aXZvIGV2ZW50byDDqSBwdWJsaWNhZG8gbm8gc2lzdGVtYS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG9uRXZlbnQ8VD4oZG9tYWluOiBzdHJpbmcsIHNlcnZpY2U6IHN0cmluZywgcHJpbWl0aXZlOiBzdHJpbmcsIGlkZW50aWZpZXJQYXRoOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgICAgICBpZiAodGhpcy5wcmltaXRpdmVNYW5hZ2Vycy5oYXMocHJpbWl0aXZlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcmltaXRpdmVNYW5hZ2Vycy5nZXQocHJpbWl0aXZlKS5zdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgcHJpbWl0aXZlTWFuYWdlcjogUHJpbWl0aXZlTWFuYWdlciA9IHtcclxuICAgICAgICAgICAgZG9tYWluOiBkb21haW4sXHJcbiAgICAgICAgICAgIHNlcnZpY2U6IHNlcnZpY2UsXHJcbiAgICAgICAgICAgIHByaW1pdGl2ZTogcHJpbWl0aXZlLFxyXG4gICAgICAgICAgICBzdG9tcFN1YnNjcmlwdGlvbnM6IFtdLFxyXG4gICAgICAgICAgICBzdWJqZWN0OiBuZXcgU3ViamVjdDxUPigpLFxyXG4gICAgICAgICAgICBpZGVudGlmaWVyUGF0aDogaWRlbnRpZmllclBhdGgsXHJcbiAgICAgICAgICAgIHB1Ymxpc2hlZEV2ZW50czogW10sXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5wcmltaXRpdmVNYW5hZ2Vycy5zZXQocHJpbWl0aXZlLCBwcmltaXRpdmVNYW5hZ2VyKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaXNDb25uZWN0ZWQoKSkge1xyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZVN0b21wU3Vic2NyaXB0aW9ucyhwcmltaXRpdmVNYW5hZ2VyKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiBwcmltaXRpdmVNYW5hZ2VyLnN1YmplY3QucGlwZShmaW5hbGl6ZSgoKSA9PiB0aGlzLmRpc2Nvbm5lY3RQcmltaXRpdmVPbkZpbmFsaXplKHByaW1pdGl2ZSkpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNDb25uZWN0aW5nKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3QoKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5jb25uZWN0JC5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVN0b21wU3Vic2NyaXB0aW9ucyhwcmltaXRpdmVNYW5hZ2VyKTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gcHJpbWl0aXZlTWFuYWdlci5zdWJqZWN0LnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5kaXNjb25uZWN0UHJpbWl0aXZlT25GaW5hbGl6ZShwcmltaXRpdmUpKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0b3JuYSB0b2RvcyBvcyBldmVudG9zIG91dmlkb3MgcGVsYSBwcmltaXRpdmEgY29tIG9zIHJlc3BlY3Rpdm9zIGlkZW50aWZpY2Fkb3Jlcy5cclxuICAgICAqIEB0eXBlUGFyYW0gYDxUPmAgVGlwbyBkbyBldmVudG8gcmV0b3JuYWRvIHBlbGEgcHJpbWl0aXZhLlxyXG4gICAgICogQHBhcmFtIHByaW1pdGl2ZSBQcmltaXRpdmEgcXVlIHNlcsOhIFwib2JzZXJ2YWRhXCIgcGVsbyBjbGllbnQuXHJcbiAgICAgKiBAcGFyYW0gaWRlbnRpZmllcnMgQXJyYXkgY29tIG9zIGlkZW50aWZpY2Fkb3JlcyBpbnRlcmVzc2Fkb3MuXHJcbiAgICAgKiBAcmV0dXJuIEFycmF5IGNvbnRlbmRvIG8gw7psdGltbyBldmVudG8gcmVjZWJpZG8gZGUgY2FkYSBpZGVudGlmaWNhZG9yIGZvcm5lY2lkby5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFB1Ymxpc2hlZEV2ZW50czxUPihwcmltaXRpdmU6IHN0cmluZywgaWRlbnRpZmllcnM6IHN0cmluZ1tdKTogVFtdIHtcclxuICAgICAgICBjb25zdCBwdWJsaXNoZWRFdmVudHM6IFRbXSA9IFtdO1xyXG5cclxuICAgICAgICBjb25zdCBwcmltaXRpdmVNYW5hZ2VyID0gdGhpcy5wcmltaXRpdmVNYW5hZ2Vycy5nZXQocHJpbWl0aXZlKTtcclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBpZGVudGlmaWVyIG9mIGlkZW50aWZpZXJzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50ID0gcHJpbWl0aXZlTWFuYWdlci5wdWJsaXNoZWRFdmVudHMuZmluZChcclxuICAgICAgICAgICAgICAgIHggPT4gdGhpcy5nZXRJZGVudGlmaWVyRnJvbUV2ZW50KHByaW1pdGl2ZU1hbmFnZXIuaWRlbnRpZmllclBhdGgsIHgpID09PSBpZGVudGlmaWVyXHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICBpZiAoZXZlbnQpIHtcclxuICAgICAgICAgICAgICAgIHB1Ymxpc2hlZEV2ZW50cy5wdXNoKGV2ZW50KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHB1Ymxpc2hlZEV2ZW50cztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGFkZFB1Ymxpc2hlZEV2ZW50KHByaW1pdGl2ZU1hbmFnZXI6IFByaW1pdGl2ZU1hbmFnZXIsIGV2ZW50OiBhbnkpIHtcclxuICAgICAgICBjb25zdCBpZGVudGlmaWVyID0gdGhpcy5nZXRJZGVudGlmaWVyRnJvbUV2ZW50KHByaW1pdGl2ZU1hbmFnZXIuaWRlbnRpZmllclBhdGgsIGV2ZW50KTtcclxuXHJcbiAgICAgICAgY29uc3QgZXZlbnRJbmRleCA9IHByaW1pdGl2ZU1hbmFnZXIucHVibGlzaGVkRXZlbnRzLmZpbmRJbmRleChcclxuICAgICAgICAgICAgeCA9PiB0aGlzLmdldElkZW50aWZpZXJGcm9tRXZlbnQocHJpbWl0aXZlTWFuYWdlci5pZGVudGlmaWVyUGF0aCwgeCkgPT09IGlkZW50aWZpZXJcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBpZiAoZXZlbnRJbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgICAgcHJpbWl0aXZlTWFuYWdlci5wdWJsaXNoZWRFdmVudHNbZXZlbnRJbmRleF0gPSB7IC4uLnByaW1pdGl2ZU1hbmFnZXIucHVibGlzaGVkRXZlbnRzW2V2ZW50SW5kZXhdLCAuLi5ldmVudCB9O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHByaW1pdGl2ZU1hbmFnZXIucHVibGlzaGVkRXZlbnRzLnB1c2goZXZlbnQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNyZWF0ZVN0b21wU3Vic2NyaXB0aW9ucyhwcmltaXRpdmVNYW5hZ2VyOiBQcmltaXRpdmVNYW5hZ2VyKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3Qgd2l0aFRva2VuVXJsID0gdGhpcy5nZXRTdWJzY3JpcHRpb25VcmxXaXRoVG9rZW4oXHJcbiAgICAgICAgICAgIHByaW1pdGl2ZU1hbmFnZXIuZG9tYWluLFxyXG4gICAgICAgICAgICBwcmltaXRpdmVNYW5hZ2VyLnNlcnZpY2UsXHJcbiAgICAgICAgICAgIHByaW1pdGl2ZU1hbmFnZXIucHJpbWl0aXZlXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgY29uc3Qgc3RvbXBTdWJzY3JpcHRpb25XaXRoVG9rZW4gPSB0aGlzLmNyZWF0ZVN0b21wU3Vic2NyaXB0aW9uKHdpdGhUb2tlblVybCwgcHJpbWl0aXZlTWFuYWdlcik7XHJcblxyXG4gICAgICAgIGNvbnN0IHdpdGhvdXRUb2tlblVybCA9IHRoaXMuZ2V0U3Vic2NyaXB0aW9uVXJsV2l0aG91dFRva2VuKFxyXG4gICAgICAgICAgICBwcmltaXRpdmVNYW5hZ2VyLmRvbWFpbixcclxuICAgICAgICAgICAgcHJpbWl0aXZlTWFuYWdlci5zZXJ2aWNlLFxyXG4gICAgICAgICAgICBwcmltaXRpdmVNYW5hZ2VyLnByaW1pdGl2ZVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGNvbnN0IHN0b21wU3Vic2NyaXB0aW9uV2l0aG91dFRva2VuID0gdGhpcy5jcmVhdGVTdG9tcFN1YnNjcmlwdGlvbih3aXRob3V0VG9rZW5VcmwsIHByaW1pdGl2ZU1hbmFnZXIpO1xyXG5cclxuICAgICAgICBwcmltaXRpdmVNYW5hZ2VyLnN0b21wU3Vic2NyaXB0aW9ucyA9IFtzdG9tcFN1YnNjcmlwdGlvbldpdGhUb2tlbiwgc3RvbXBTdWJzY3JpcHRpb25XaXRob3V0VG9rZW5dO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0SWRlbnRpZmllckZyb21FdmVudChpZGVudGlmaWVyUGF0aDogc3RyaW5nLCBldmVudDogYW55KTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBwcm9wZXJ0aWVzID0gaWRlbnRpZmllclBhdGguc3BsaXQoXCIuXCIpO1xyXG5cclxuICAgICAgICBsZXQgaWRlbnRpZmllciA9IGV2ZW50O1xyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcclxuICAgICAgICAgICAgaWRlbnRpZmllciA9IGlkZW50aWZpZXJbcHJvcGVydHldO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGlkZW50aWZpZXI7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjb25uZWN0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY3JlYXRlU3RvbXBDbGllbnQoKTtcclxuXHJcbiAgICAgICAgdGhpcy5pc0Nvbm5lY3RpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLl9zdG9tcENsaWVudC5hY3RpdmF0ZSgpO1xyXG5cclxuICAgICAgICB0aGlzLl9zdG9tcENsaWVudC5jb25uZWN0KFxyXG4gICAgICAgICAgICB7fSxcclxuICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0Nvbm5lY3RpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldENvbm5lY3RlZCh0cnVlKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy53YXNDb25uZWN0ZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlY29ubmVjdFByaW1pdGl2ZXMoKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWNvbm5lY3QkLm5leHQoKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53YXNDb25uZWN0ZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3QkLm5leHQoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKGVycm9yOiBGcmFtZUltcGwpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0Q29ubmVjdGVkKGZhbHNlKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmVycm9yJC5uZXh0KGVycm9yKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlY29ubmVjdCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIG9uRm9jdXMoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5mb2N1c2VkID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIG9uQmx1cigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZGlzY29ubmVjdCgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBvYnNlcnZlcnNDb3VudCA9IHRoaXMuZ2V0T2JzZXJ2ZXJzQ291bnQoKTtcclxuXHJcbiAgICAgICAgaWYgKG9ic2VydmVyc0NvdW50ID4gMCkgcmV0dXJuO1xyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IHByaW1pdGl2ZU1hbmFnZXIgb2YgdGhpcy5wcmltaXRpdmVNYW5hZ2Vycy52YWx1ZXMoKSkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHN0b21wU3Vic2NyaXB0aW9uIG9mIHByaW1pdGl2ZU1hbmFnZXIuc3RvbXBTdWJzY3JpcHRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICBzdG9tcFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IHByaW1pdGl2ZU1hbmFnZXIgb2YgdGhpcy5wcmltaXRpdmVNYW5hZ2Vycy52YWx1ZXMoKSkge1xyXG4gICAgICAgICAgICBwcmltaXRpdmVNYW5hZ2VyLnN1YmplY3QuY29tcGxldGUoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucHJpbWl0aXZlTWFuYWdlcnMuY2xlYXIoKTtcclxuXHJcbiAgICAgICAgdGhpcy5fc3RvbXBDbGllbnQuZGlzY29ubmVjdCgpO1xyXG4gICAgICAgIHRoaXMuX3N0b21wQ2xpZW50LmRlYWN0aXZhdGUoKTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXRDb25uZWN0ZWQoZmFsc2UpO1xyXG4gICAgICAgIHRoaXMuaXNDb25uZWN0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy53YXNDb25uZWN0ZWQgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgdGhpcy5kaXNjb25uZWN0JC5uZXh0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpc0Nvbm5lY3RlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb25uZWN0ZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRDb25uZWN0ZWQoY29ubmVjdGVkOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5jb25uZWN0ZWQgPSBjb25uZWN0ZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRTdWJzY3JpcHRpb25VcmxXaXRoVG9rZW4oZG9tYWluOiBzdHJpbmcsIHNlcnZpY2U6IHN0cmluZywgcHJpbWl0aXZlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IHRlbmFudCA9IFdlYnNvY2tldFNlcnZpY2UuVE9LRU4gPyBXZWJzb2NrZXRTZXJ2aWNlLlRPS0VOLnVzZXJuYW1lLnNwbGl0KFwiQFwiKVsxXSA6IG51bGw7XHJcbiAgICAgICAgY29uc3QgdG9rZW4gPSBXZWJzb2NrZXRTZXJ2aWNlLlRPS0VOID8gV2Vic29ja2V0U2VydmljZS5UT0tFTi5hY2Nlc3NfdG9rZW4gOiBudWxsO1xyXG5cclxuICAgICAgICByZXR1cm4gYC90b3BpYy8ke3RlbmFudH0vJHt0b2tlbn0vJHtkb21haW59LyR7c2VydmljZX0vJHtwcmltaXRpdmV9YDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFN1YnNjcmlwdGlvblVybFdpdGhvdXRUb2tlbihkb21haW46IHN0cmluZywgc2VydmljZTogc3RyaW5nLCBwcmltaXRpdmU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgdGVuYW50ID0gV2Vic29ja2V0U2VydmljZS5UT0tFTiA/IFdlYnNvY2tldFNlcnZpY2UuVE9LRU4udXNlcm5hbWUuc3BsaXQoXCJAXCIpWzFdIDogbnVsbDtcclxuXHJcbiAgICAgICAgcmV0dXJuIGAvdG9waWMvJHt0ZW5hbnR9LyR7ZG9tYWlufS8ke3NlcnZpY2V9LyR7cHJpbWl0aXZlfWA7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjcmVhdGVTdG9tcFN1YnNjcmlwdGlvbihkZXN0aW5hdGlvbjogc3RyaW5nLCBwcmltaXRpdmVNYW5hZ2VyOiBQcmltaXRpdmVNYW5hZ2VyKTogU3RvbXBTdWJzY3JpcHRpb24ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zdG9tcENsaWVudC5zdWJzY3JpYmUoZGVzdGluYXRpb24sIChtZXNzYWdlOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZXZlbnQgPSBKU09OLnBhcnNlKG1lc3NhZ2UuYm9keSB8fCBcInt9XCIpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5hZGRQdWJsaXNoZWRFdmVudChwcmltaXRpdmVNYW5hZ2VyLCBldmVudCk7XHJcblxyXG4gICAgICAgICAgICBwcmltaXRpdmVNYW5hZ2VyLnN1YmplY3QubmV4dChldmVudCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjcmVhdGVTdG9tcENsaWVudCgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB3cyA9IG5ldyBTb2NrSlMoYCR7V2Vic29ja2V0U2VydmljZS5XRUJTT0NLRVRfVVJMfXN1YnNjcmlwdGlvbmAsIG51bGwsIHsgdGltZW91dDogV2Vic29ja2V0U2VydmljZS5DT05ORUNUSU9OX1RJTUVPVVQgfSk7XHJcbiAgICAgICAgdGhpcy5fc3RvbXBDbGllbnQgPSBTdG9tcC5vdmVyKHdzKTtcclxuICAgICAgICAvLyB0aGlzLl9zdG9tcENsaWVudC5kZWJ1ZyA9IChzdHIpID0+IGNvbnNvbGUubG9nKG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSwgc3RyKTtcclxuICAgICAgICB0aGlzLl9zdG9tcENsaWVudC5kZWJ1ZyA9ICgpID0+IHt9OyAvLyBQYXJhIHJlbW92ZXIgb3MgbG9ncy5cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHJlY29ubmVjdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5jb25uZWN0ZWQpIHRoaXMuX3N0b21wQ2xpZW50LmRpc2Nvbm5lY3QoKTtcclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmdldE9ic2VydmVyc0NvdW50KCkgPT09IDApIHJldHVybjtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmZvY3VzZWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdCgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZWNvbm5lY3QoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sIFdlYnNvY2tldFNlcnZpY2UuUkVDT05ORUNUX1RJTUVSKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHJlY29ubmVjdFByaW1pdGl2ZXMoKTogdm9pZCB7XHJcbiAgICAgICAgZm9yIChjb25zdCBwcmltaXRpdmVNYW5hZ2VyIG9mIHRoaXMucHJpbWl0aXZlTWFuYWdlcnMudmFsdWVzKCkpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBzdG9tcFN1YnNjcmlwdGlvbiBvZiBwcmltaXRpdmVNYW5hZ2VyLnN0b21wU3Vic2NyaXB0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgc3RvbXBTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5jcmVhdGVTdG9tcFN1YnNjcmlwdGlvbnMocHJpbWl0aXZlTWFuYWdlcik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0T2JzZXJ2ZXJzQ291bnQoKTogbnVtYmVyIHtcclxuICAgICAgICBsZXQgb2JzZXJ2ZXJzQ291bnQgPSAwO1xyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IHByaW1pdGl2ZU1hbmFnZXIgb2YgdGhpcy5wcmltaXRpdmVNYW5hZ2Vycy52YWx1ZXMoKSkge1xyXG4gICAgICAgICAgICBvYnNlcnZlcnNDb3VudCArPSBwcmltaXRpdmVNYW5hZ2VyLnN1YmplY3Qub2JzZXJ2ZXJzLmxlbmd0aDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBvYnNlcnZlcnNDb3VudDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGRpc2Nvbm5lY3RQcmltaXRpdmVPbkZpbmFsaXplKHByaW1pdGl2ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgcHJpbWl0aXZlTWFuYWdlciA9IHRoaXMucHJpbWl0aXZlTWFuYWdlcnMuZ2V0KHByaW1pdGl2ZSk7XHJcblxyXG4gICAgICAgIGlmICghcHJpbWl0aXZlTWFuYWdlcikgcmV0dXJuO1xyXG5cclxuICAgICAgICAvLyBASU1QT1JUQU5UOiBSZXBsYWNlIC5vYnNlcnZlcnMubGVuZ3RoIHdpdGggLm9ic2VydmVkIGluIHJ4anMgNy4wK1xyXG4gICAgICAgIGNvbnN0IGhhc09ic2VydmVycyA9ICEocHJpbWl0aXZlTWFuYWdlci5zdWJqZWN0Lm9ic2VydmVycy5sZW5ndGggPT09IDEpO1xyXG5cclxuICAgICAgICBpZiAoaGFzT2JzZXJ2ZXJzKSByZXR1cm47XHJcblxyXG4gICAgICAgIGZvciAoY29uc3Qgc3RvbXBTdWJzY3JpcHRpb24gb2YgcHJpbWl0aXZlTWFuYWdlci5zdG9tcFN1YnNjcmlwdGlvbnMpIHtcclxuICAgICAgICAgICAgc3RvbXBTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucHJpbWl0aXZlTWFuYWdlcnMuZGVsZXRlKHByaW1pdGl2ZSk7XHJcblxyXG4gICAgICAgIHRoaXMuZGlzY29ubmVjdCgpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|