@senior-agronegocio/angular-components 0.0.89 → 0.0.90

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 (45) hide show
  1. package/bundles/senior-agronegocio-angular-components.umd.js +345 -342
  2. package/bundles/senior-agronegocio-angular-components.umd.js.map +1 -1
  3. package/bundles/senior-agronegocio-angular-components.umd.min.js +2 -2
  4. package/bundles/senior-agronegocio-angular-components.umd.min.js.map +1 -1
  5. package/common/agro-platform-utils.class.d.ts +9 -0
  6. package/common/agro-string-utils.class.d.ts +46 -146
  7. package/common/colors.class.d.ts +2 -0
  8. package/components/cancel-event-dialog/cancel-event-dialog.component.d.ts +2 -2
  9. package/enums/agro-numbers.enum.d.ts +3 -2
  10. package/esm2015/common/agro-cookie-utils.class.js +7 -3
  11. package/esm2015/common/agro-date-utils.class.js +7 -3
  12. package/esm2015/common/agro-logics.class.js +22 -20
  13. package/esm2015/common/agro-name-utils.class.js +5 -4
  14. package/esm2015/common/agro-number-utils.class.js +20 -10
  15. package/esm2015/common/agro-object-utils.class.js +9 -7
  16. package/esm2015/common/agro-platform-utils.class.js +46 -50
  17. package/esm2015/common/agro-string-utils.class.js +217 -215
  18. package/esm2015/common/colors.class.js +3 -1
  19. package/esm2015/components/cancel-event-dialog/cancel-event-dialog.component.js +8 -8
  20. package/esm2015/components/event-control-board/event-control-board.component.js +2 -2
  21. package/esm2015/components/event-steps/index.js +1 -1
  22. package/esm2015/enums/agro-numbers.enum.js +3 -2
  23. package/esm2015/services/websocket/websocket.service.js +2 -2
  24. package/esm5/common/agro-cookie-utils.class.js +7 -3
  25. package/esm5/common/agro-date-utils.class.js +7 -3
  26. package/esm5/common/agro-logics.class.js +34 -42
  27. package/esm5/common/agro-name-utils.class.js +5 -4
  28. package/esm5/common/agro-number-utils.class.js +20 -10
  29. package/esm5/common/agro-object-utils.class.js +9 -7
  30. package/esm5/common/agro-platform-utils.class.js +46 -50
  31. package/esm5/common/agro-string-utils.class.js +217 -215
  32. package/esm5/common/colors.class.js +3 -1
  33. package/esm5/components/cancel-event-dialog/cancel-event-dialog.component.js +8 -8
  34. package/esm5/components/event-control-board/event-control-board.component.js +2 -2
  35. package/esm5/components/event-steps/index.js +1 -1
  36. package/esm5/enums/agro-numbers.enum.js +3 -2
  37. package/esm5/services/websocket/websocket.service.js +2 -2
  38. package/fesm2015/senior-agronegocio-angular-components.js +334 -321
  39. package/fesm2015/senior-agronegocio-angular-components.js.map +1 -1
  40. package/fesm5/senior-agronegocio-angular-components.js +345 -342
  41. package/fesm5/senior-agronegocio-angular-components.js.map +1 -1
  42. package/package.json +1 -1
  43. package/common/numbers.d.ts +0 -6
  44. package/esm2015/common/numbers.js +0 -8
  45. package/esm5/common/numbers.js +0 -8
@@ -28,6 +28,8 @@ var Colors = /** @class */ (function () {
28
28
  SECONDARY_RGB: "153, 153, 153",
29
29
  PRIMAEY_DISABLED: "#CCCCCC",
30
30
  PRIMAEY_DISABLED_RGB: "204, 204, 204",
31
+ PRIMARY_DISABLED: "#CCCCCC",
32
+ PRIMARY_DISABLED_RGB: "204, 204, 204",
31
33
  SECONDARY_DISABLED: "#D8D8D8",
32
34
  SECONDARY_DISABLED_RGB: "216, 216, 216",
33
35
  BLACK_HAZE: "#E5EAEA",
@@ -78,4 +80,4 @@ var Colors = /** @class */ (function () {
78
80
  return Colors;
79
81
  }());
80
82
  export { Colors };
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3JzLmNsYXNzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1hZ3JvbmVnb2Npby9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21tb24vY29sb3JzLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQUE7SUErRUEsQ0FBQztJQTlFbUIsV0FBSSxHQUFHO1FBQ25CLElBQUksRUFBRSxTQUFTO1FBQ2YsUUFBUSxFQUFFLGFBQWE7UUFDdkIsV0FBVyxFQUFFLFNBQVM7UUFDdEIsZUFBZSxFQUFFLGVBQWU7UUFDaEMsSUFBSSxFQUFFLFNBQVM7UUFDZixRQUFRLEVBQUUsYUFBYTtRQUN2QixRQUFRLEVBQUUsU0FBUztRQUNuQixZQUFZLEVBQUUsV0FBVztRQUN6QixXQUFXLEVBQUUsU0FBUztRQUN0QixlQUFlLEVBQUUsV0FBVztRQUM1QixVQUFVLEVBQUUsU0FBUztRQUNyQixjQUFjLEVBQUUsWUFBWTtRQUM1QixhQUFhLEVBQUUsU0FBUztRQUN4QixpQkFBaUIsRUFBRSxhQUFhO1FBQ2hDLFNBQVMsRUFBRSxTQUFTO1FBQ3BCLGFBQWEsRUFBRSxjQUFjO0tBQ2hDLENBQUM7SUFFYyxpQkFBVSxHQUFHO1FBQ3pCLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFNBQVMsRUFBRSxZQUFZO1FBQ3ZCLGdCQUFnQixFQUFFLFNBQVM7UUFDM0Isb0JBQW9CLEVBQUUsZUFBZTtRQUNyQyxTQUFTLEVBQUUsU0FBUztRQUNwQixhQUFhLEVBQUUsZUFBZTtRQUM5QixnQkFBZ0IsRUFBRSxTQUFTO1FBQzNCLG9CQUFvQixFQUFFLGVBQWU7UUFDckMsa0JBQWtCLEVBQUUsU0FBUztRQUM3QixzQkFBc0IsRUFBRSxlQUFlO1FBQ3ZDLFVBQVUsRUFBRSxTQUFTO1FBQ3JCLGNBQWMsRUFBRSxlQUFlO1FBQy9CLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFNBQVMsRUFBRSxlQUFlO0tBQzdCLENBQUM7SUFFYyxlQUFRLEdBQUc7UUFDdkIsR0FBRyxFQUFFLFNBQVM7UUFDZCxPQUFPLEVBQUUsYUFBYTtRQUN0QixNQUFNLEVBQUUsU0FBUztRQUNqQixVQUFVLEVBQUUsY0FBYztRQUMxQixNQUFNLEVBQUUsU0FBUztRQUNqQixVQUFVLEVBQUUsY0FBYztRQUMxQixLQUFLLEVBQUUsU0FBUztRQUNoQixTQUFTLEVBQUUsYUFBYTtRQUN4QixJQUFJLEVBQUUsU0FBUztRQUNmLFFBQVEsRUFBRSxjQUFjO0tBQzNCLENBQUM7SUFFYyxrQkFBVyxHQUFHO1FBQzFCLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsT0FBTyxFQUFFLFNBQVM7UUFDbEIsT0FBTyxFQUFFLG1CQUFtQjtRQUM1QixPQUFPLEVBQUUsU0FBUztRQUNsQixPQUFPLEVBQUUsb0JBQW9CO1FBQzdCLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLE9BQU8sRUFBRSxvQkFBb0I7UUFDN0IsT0FBTyxFQUFFLFNBQVM7UUFDbEIsT0FBTyxFQUFFLG9CQUFvQjtRQUM3QixNQUFNLEVBQUUsU0FBUztRQUNqQixNQUFNLEVBQUUsb0JBQW9CO0tBQy9CLENBQUM7SUFFYyxXQUFJLEdBQUc7UUFDbkIsT0FBTyxFQUFFLFNBQVM7UUFDbEIsT0FBTyxFQUFFLGlCQUFpQjtRQUMxQixPQUFPLEVBQUUsU0FBUztRQUNsQixPQUFPLEVBQUUsZ0JBQWdCO1FBQ3pCLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLE9BQU8sRUFBRSxrQkFBa0I7UUFDM0IsT0FBTyxFQUFFLFNBQVM7UUFDbEIsT0FBTyxFQUFFLG1CQUFtQjtRQUM1QixPQUFPLEVBQUUsU0FBUztRQUNsQixPQUFPLEVBQUUsb0JBQW9CO1FBQzdCLE1BQU0sRUFBRSxTQUFTO1FBQ2pCLE1BQU0sRUFBRSxvQkFBb0I7S0FDL0IsQ0FBQztJQUNOLGFBQUM7Q0FBQSxBQS9FRCxJQStFQztTQS9FWSxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIENvbG9ycyB7XHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgQkFTRSA9IHtcclxuICAgICAgICBMSU1FOiBcIiNBREU1MDBcIixcclxuICAgICAgICBMSU1FX1JHQjogXCIxNzMsIDIyOSwgMFwiLFxyXG4gICAgICAgIEhJUFBJRV9CTFVFOiBcIiM2N0FDQkNcIixcclxuICAgICAgICBISVBQSUVfQkxVRV9SR0I6IFwiMTAzLCAxNzIsIDE4OFwiLFxyXG4gICAgICAgIFRFQUw6IFwiIzAwODA4MFwiLFxyXG4gICAgICAgIFRFQUxfUkdCOiBcIjAsIDEyOCwgMTI4XCIsXHJcbiAgICAgICAgVEFSQVdFUkE6IFwiIzA2Mzk1MVwiLFxyXG4gICAgICAgIFRBUkFXRVJBX1JHQjogXCI2LCA1NywgODFcIixcclxuICAgICAgICBDTEFJUlZPWUFOVDogXCIjNDAwNzUzXCIsXHJcbiAgICAgICAgQ0xBSVJWT1lBTlRfUkdCOiBcIjY0LCA3LCA4M1wiLFxyXG4gICAgICAgIENPQ09BX0JFQU46IFwiIzUwMjAxRlwiLFxyXG4gICAgICAgIENPQ09BX0JFQU5fUkdCOiBcIjgwLCAzMiwgMzFcIixcclxuICAgICAgICBTVU5TRVRfT1JBTkdFOiBcIiNGNDVCNUJcIixcclxuICAgICAgICBTVU5TRVRfT1JBTkdFX1JHQjogXCIyNDQsIDkxLCA5MVwiLFxyXG4gICAgICAgIEJVVFRFUkNVUDogXCIjRjVBMzE5XCIsXHJcbiAgICAgICAgQlVUVEVSQ1VQX1JHQjogXCIyNDUsIDE2MywgMjVcIlxyXG4gICAgfTtcclxuXHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgR1JBWV9TQ0FMRSA9IHtcclxuICAgICAgICBCTEFDSzogXCIjMzMzMzMzXCIsXHJcbiAgICAgICAgQkxBQ0tfUkdCOiBcIjUxLCA1MSwgNTFcIixcclxuICAgICAgICBESVNBQkxFRF9FRElUSU9OOiBcIiM2OTc4ODJcIixcclxuICAgICAgICBESVNBQkxFRF9FRElUSU9OX1JHQjogXCIxMDUsIDEyMCwgMTMwXCIsXHJcbiAgICAgICAgU0VDT05EQVJZOiBcIiM5OTk5OTlcIixcclxuICAgICAgICBTRUNPTkRBUllfUkdCOiBcIjE1MywgMTUzLCAxNTNcIixcclxuICAgICAgICBQUklNQUVZX0RJU0FCTEVEOiBcIiNDQ0NDQ0NcIixcclxuICAgICAgICBQUklNQUVZX0RJU0FCTEVEX1JHQjogXCIyMDQsIDIwNCwgMjA0XCIsXHJcbiAgICAgICAgU0VDT05EQVJZX0RJU0FCTEVEOiBcIiNEOEQ4RDhcIixcclxuICAgICAgICBTRUNPTkRBUllfRElTQUJMRURfUkdCOiBcIjIxNiwgMjE2LCAyMTZcIixcclxuICAgICAgICBCTEFDS19IQVpFOiBcIiNFNUVBRUFcIixcclxuICAgICAgICBCTEFDS19IQVpFX1JHQjogXCIyMjksIDIzNCwgMjM0XCIsXHJcbiAgICAgICAgV0hJVEU6IFwiI0ZGRkZGRlwiLFxyXG4gICAgICAgIFdISVRFX1JHQjogXCIyNTUsIDI1NSwgMjU1XCJcclxuICAgIH07XHJcblxyXG4gICAgc3RhdGljIHJlYWRvbmx5IENSSVRJQ0FMID0ge1xyXG4gICAgICAgIFJFRDogXCIjQzEzMDE4XCIsXHJcbiAgICAgICAgUkVEX1JHQjogXCIxOTMsIDQ4LCAyNFwiLFxyXG4gICAgICAgIE9SQU5HRTogXCIjRjg5MzFGXCIsXHJcbiAgICAgICAgT1JBTkdFX1JHQjogXCIyNDgsIDE0NywgMzFcIixcclxuICAgICAgICBZRUxMT1c6IFwiI0ZDQkYxMFwiLFxyXG4gICAgICAgIFlFTExPV19SR0I6IFwiMjUyLCAxOTEsIDE2XCIsXHJcbiAgICAgICAgR1JFRU46IFwiIzBDOTM0OFwiLFxyXG4gICAgICAgIEdSRUVOX1JHQjogXCIxMiwgMTQ3LCA3MlwiLFxyXG4gICAgICAgIEJMVUU6IFwiIzQyOEJDQVwiLFxyXG4gICAgICAgIEJMVUVfUkdCOiBcIjY2LCAxMzksIDIwMlwiXHJcbiAgICB9O1xyXG5cclxuICAgIHN0YXRpYyByZWFkb25seSBISVBQSUVfQkxVRSA9IHtcclxuICAgICAgICBIRVhfOTAwOiBcIiMxRDJGMzRcIixcclxuICAgICAgICBSR0JfOTAwOiBcInJnYigyOSwgNDcsIDUyKVwiLFxyXG4gICAgICAgIEhFWF83MDA6IFwiIzQyNkU3OFwiLFxyXG4gICAgICAgIFJHQl83MDA6IFwicmdiKDY2LCAxMTAsIDEyMClcIixcclxuICAgICAgICBIRVhfNTAwOiBcIiM2N0FDQkNcIixcclxuICAgICAgICBSR0JfNTAwOiBcInJnYigxMDMsIDE3MiwgMTg4KVwiLFxyXG4gICAgICAgIEhFWF8zMDA6IFwiIzlFQ0FENFwiLFxyXG4gICAgICAgIFJHQl8zMDA6IFwicmdiKDE1OCwgMjAyLCAyMTIpXCIsXHJcbiAgICAgICAgSEVYXzEwMDogXCIjRDVFOEVDXCIsXHJcbiAgICAgICAgUkdCXzEwMDogXCJyZ2IoMjEzLCAyMzIsIDIzNilcIixcclxuICAgICAgICBIRVhfNTA6IFwiI0YxRjdGOFwiLFxyXG4gICAgICAgIFJHQl81MDogXCJyZ2IoMjQxLCAyNDcsIDI0OClcIlxyXG4gICAgfTtcclxuXHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgVEVBTCA9IHtcclxuICAgICAgICBIRVhfOTAwOiBcIiMwQzI4MjdcIixcclxuICAgICAgICBSR0JfOTAwOiBcInJnYigxMiwgNDAsIDM5KVwiLFxyXG4gICAgICAgIEhFWF83MDA6IFwiIzAwNTA1MFwiLFxyXG4gICAgICAgIFJHQl83MDA6IFwicmdiKDAsIDgwLCA4MClcIixcclxuICAgICAgICBIRVhfNTAwOiBcIiMwMDgwODBcIixcclxuICAgICAgICBSR0JfNTAwOiBcInJnYigwLCAxMjgsIDEyOClcIixcclxuICAgICAgICBIRVhfMzAwOiBcIiM0REE2QTZcIixcclxuICAgICAgICBSR0JfMzAwOiBcInJnYig3NywgMTY2LCAxNjYpXCIsXHJcbiAgICAgICAgSEVYXzEwMDogXCIjQjNEOUQ5XCIsXHJcbiAgICAgICAgUkdCXzEwMDogXCJyZ2IoMTc5LCAyMTcsIDIxNylcIixcclxuICAgICAgICBIRVhfNTA6IFwiI0UwRjBGMFwiLFxyXG4gICAgICAgIFJHQl81MDogXCJyZ2IoMjI0LCAyNDAsIDI0MClcIlxyXG4gICAgfTtcclxufVxyXG4iXX0=
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3JzLmNsYXNzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1hZ3JvbmVnb2Npby9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21tb24vY29sb3JzLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQUE7SUFpRkEsQ0FBQztJQWhGbUIsV0FBSSxHQUFHO1FBQ25CLElBQUksRUFBRSxTQUFTO1FBQ2YsUUFBUSxFQUFFLGFBQWE7UUFDdkIsV0FBVyxFQUFFLFNBQVM7UUFDdEIsZUFBZSxFQUFFLGVBQWU7UUFDaEMsSUFBSSxFQUFFLFNBQVM7UUFDZixRQUFRLEVBQUUsYUFBYTtRQUN2QixRQUFRLEVBQUUsU0FBUztRQUNuQixZQUFZLEVBQUUsV0FBVztRQUN6QixXQUFXLEVBQUUsU0FBUztRQUN0QixlQUFlLEVBQUUsV0FBVztRQUM1QixVQUFVLEVBQUUsU0FBUztRQUNyQixjQUFjLEVBQUUsWUFBWTtRQUM1QixhQUFhLEVBQUUsU0FBUztRQUN4QixpQkFBaUIsRUFBRSxhQUFhO1FBQ2hDLFNBQVMsRUFBRSxTQUFTO1FBQ3BCLGFBQWEsRUFBRSxjQUFjO0tBQ2hDLENBQUM7SUFFYyxpQkFBVSxHQUFHO1FBQ3pCLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFNBQVMsRUFBRSxZQUFZO1FBQ3ZCLGdCQUFnQixFQUFFLFNBQVM7UUFDM0Isb0JBQW9CLEVBQUUsZUFBZTtRQUNyQyxTQUFTLEVBQUUsU0FBUztRQUNwQixhQUFhLEVBQUUsZUFBZTtRQUNsQyxnQkFBZ0IsRUFBRSxTQUFTO1FBQzNCLG9CQUFvQixFQUFFLGVBQWU7UUFDckMsZ0JBQWdCLEVBQUUsU0FBUztRQUMzQixvQkFBb0IsRUFBRSxlQUFlO1FBQ2pDLGtCQUFrQixFQUFFLFNBQVM7UUFDN0Isc0JBQXNCLEVBQUUsZUFBZTtRQUN2QyxVQUFVLEVBQUUsU0FBUztRQUNyQixjQUFjLEVBQUUsZUFBZTtRQUMvQixLQUFLLEVBQUUsU0FBUztRQUNoQixTQUFTLEVBQUUsZUFBZTtLQUM3QixDQUFDO0lBRWMsZUFBUSxHQUFHO1FBQ3ZCLEdBQUcsRUFBRSxTQUFTO1FBQ2QsT0FBTyxFQUFFLGFBQWE7UUFDdEIsTUFBTSxFQUFFLFNBQVM7UUFDakIsVUFBVSxFQUFFLGNBQWM7UUFDMUIsTUFBTSxFQUFFLFNBQVM7UUFDakIsVUFBVSxFQUFFLGNBQWM7UUFDMUIsS0FBSyxFQUFFLFNBQVM7UUFDaEIsU0FBUyxFQUFFLGFBQWE7UUFDeEIsSUFBSSxFQUFFLFNBQVM7UUFDZixRQUFRLEVBQUUsY0FBYztLQUMzQixDQUFDO0lBRWMsa0JBQVcsR0FBRztRQUMxQixPQUFPLEVBQUUsU0FBUztRQUNsQixPQUFPLEVBQUUsaUJBQWlCO1FBQzFCLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLE9BQU8sRUFBRSxtQkFBbUI7UUFDNUIsT0FBTyxFQUFFLFNBQVM7UUFDbEIsT0FBTyxFQUFFLG9CQUFvQjtRQUM3QixPQUFPLEVBQUUsU0FBUztRQUNsQixPQUFPLEVBQUUsb0JBQW9CO1FBQzdCLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLE9BQU8sRUFBRSxvQkFBb0I7UUFDN0IsTUFBTSxFQUFFLFNBQVM7UUFDakIsTUFBTSxFQUFFLG9CQUFvQjtLQUMvQixDQUFDO0lBRWMsV0FBSSxHQUFHO1FBQ25CLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsT0FBTyxFQUFFLFNBQVM7UUFDbEIsT0FBTyxFQUFFLGdCQUFnQjtRQUN6QixPQUFPLEVBQUUsU0FBUztRQUNsQixPQUFPLEVBQUUsa0JBQWtCO1FBQzNCLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLE9BQU8sRUFBRSxtQkFBbUI7UUFDNUIsT0FBTyxFQUFFLFNBQVM7UUFDbEIsT0FBTyxFQUFFLG9CQUFvQjtRQUM3QixNQUFNLEVBQUUsU0FBUztRQUNqQixNQUFNLEVBQUUsb0JBQW9CO0tBQy9CLENBQUM7SUFDTixhQUFDO0NBQUEsQUFqRkQsSUFpRkM7U0FqRlksTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBDb2xvcnMge1xyXG4gICAgc3RhdGljIHJlYWRvbmx5IEJBU0UgPSB7XHJcbiAgICAgICAgTElNRTogXCIjQURFNTAwXCIsXHJcbiAgICAgICAgTElNRV9SR0I6IFwiMTczLCAyMjksIDBcIixcclxuICAgICAgICBISVBQSUVfQkxVRTogXCIjNjdBQ0JDXCIsXHJcbiAgICAgICAgSElQUElFX0JMVUVfUkdCOiBcIjEwMywgMTcyLCAxODhcIixcclxuICAgICAgICBURUFMOiBcIiMwMDgwODBcIixcclxuICAgICAgICBURUFMX1JHQjogXCIwLCAxMjgsIDEyOFwiLFxyXG4gICAgICAgIFRBUkFXRVJBOiBcIiMwNjM5NTFcIixcclxuICAgICAgICBUQVJBV0VSQV9SR0I6IFwiNiwgNTcsIDgxXCIsXHJcbiAgICAgICAgQ0xBSVJWT1lBTlQ6IFwiIzQwMDc1M1wiLFxyXG4gICAgICAgIENMQUlSVk9ZQU5UX1JHQjogXCI2NCwgNywgODNcIixcclxuICAgICAgICBDT0NPQV9CRUFOOiBcIiM1MDIwMUZcIixcclxuICAgICAgICBDT0NPQV9CRUFOX1JHQjogXCI4MCwgMzIsIDMxXCIsXHJcbiAgICAgICAgU1VOU0VUX09SQU5HRTogXCIjRjQ1QjVCXCIsXHJcbiAgICAgICAgU1VOU0VUX09SQU5HRV9SR0I6IFwiMjQ0LCA5MSwgOTFcIixcclxuICAgICAgICBCVVRURVJDVVA6IFwiI0Y1QTMxOVwiLFxyXG4gICAgICAgIEJVVFRFUkNVUF9SR0I6IFwiMjQ1LCAxNjMsIDI1XCJcclxuICAgIH07XHJcblxyXG4gICAgc3RhdGljIHJlYWRvbmx5IEdSQVlfU0NBTEUgPSB7XHJcbiAgICAgICAgQkxBQ0s6IFwiIzMzMzMzM1wiLFxyXG4gICAgICAgIEJMQUNLX1JHQjogXCI1MSwgNTEsIDUxXCIsXHJcbiAgICAgICAgRElTQUJMRURfRURJVElPTjogXCIjNjk3ODgyXCIsXHJcbiAgICAgICAgRElTQUJMRURfRURJVElPTl9SR0I6IFwiMTA1LCAxMjAsIDEzMFwiLFxyXG4gICAgICAgIFNFQ09OREFSWTogXCIjOTk5OTk5XCIsXHJcbiAgICAgICAgU0VDT05EQVJZX1JHQjogXCIxNTMsIDE1MywgMTUzXCIsXHJcbiAgICBQUklNQUVZX0RJU0FCTEVEOiBcIiNDQ0NDQ0NcIiwgLy8gbGVnYWN5IHR5cG9cclxuICAgIFBSSU1BRVlfRElTQUJMRURfUkdCOiBcIjIwNCwgMjA0LCAyMDRcIiwgLy8gbGVnYWN5IHR5cG9cclxuICAgIFBSSU1BUllfRElTQUJMRUQ6IFwiI0NDQ0NDQ1wiLFxyXG4gICAgUFJJTUFSWV9ESVNBQkxFRF9SR0I6IFwiMjA0LCAyMDQsIDIwNFwiLFxyXG4gICAgICAgIFNFQ09OREFSWV9ESVNBQkxFRDogXCIjRDhEOEQ4XCIsXHJcbiAgICAgICAgU0VDT05EQVJZX0RJU0FCTEVEX1JHQjogXCIyMTYsIDIxNiwgMjE2XCIsXHJcbiAgICAgICAgQkxBQ0tfSEFaRTogXCIjRTVFQUVBXCIsXHJcbiAgICAgICAgQkxBQ0tfSEFaRV9SR0I6IFwiMjI5LCAyMzQsIDIzNFwiLFxyXG4gICAgICAgIFdISVRFOiBcIiNGRkZGRkZcIixcclxuICAgICAgICBXSElURV9SR0I6IFwiMjU1LCAyNTUsIDI1NVwiXHJcbiAgICB9O1xyXG5cclxuICAgIHN0YXRpYyByZWFkb25seSBDUklUSUNBTCA9IHtcclxuICAgICAgICBSRUQ6IFwiI0MxMzAxOFwiLFxyXG4gICAgICAgIFJFRF9SR0I6IFwiMTkzLCA0OCwgMjRcIixcclxuICAgICAgICBPUkFOR0U6IFwiI0Y4OTMxRlwiLFxyXG4gICAgICAgIE9SQU5HRV9SR0I6IFwiMjQ4LCAxNDcsIDMxXCIsXHJcbiAgICAgICAgWUVMTE9XOiBcIiNGQ0JGMTBcIixcclxuICAgICAgICBZRUxMT1dfUkdCOiBcIjI1MiwgMTkxLCAxNlwiLFxyXG4gICAgICAgIEdSRUVOOiBcIiMwQzkzNDhcIixcclxuICAgICAgICBHUkVFTl9SR0I6IFwiMTIsIDE0NywgNzJcIixcclxuICAgICAgICBCTFVFOiBcIiM0MjhCQ0FcIixcclxuICAgICAgICBCTFVFX1JHQjogXCI2NiwgMTM5LCAyMDJcIlxyXG4gICAgfTtcclxuXHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgSElQUElFX0JMVUUgPSB7XHJcbiAgICAgICAgSEVYXzkwMDogXCIjMUQyRjM0XCIsXHJcbiAgICAgICAgUkdCXzkwMDogXCJyZ2IoMjksIDQ3LCA1MilcIixcclxuICAgICAgICBIRVhfNzAwOiBcIiM0MjZFNzhcIixcclxuICAgICAgICBSR0JfNzAwOiBcInJnYig2NiwgMTEwLCAxMjApXCIsXHJcbiAgICAgICAgSEVYXzUwMDogXCIjNjdBQ0JDXCIsXHJcbiAgICAgICAgUkdCXzUwMDogXCJyZ2IoMTAzLCAxNzIsIDE4OClcIixcclxuICAgICAgICBIRVhfMzAwOiBcIiM5RUNBRDRcIixcclxuICAgICAgICBSR0JfMzAwOiBcInJnYigxNTgsIDIwMiwgMjEyKVwiLFxyXG4gICAgICAgIEhFWF8xMDA6IFwiI0Q1RThFQ1wiLFxyXG4gICAgICAgIFJHQl8xMDA6IFwicmdiKDIxMywgMjMyLCAyMzYpXCIsXHJcbiAgICAgICAgSEVYXzUwOiBcIiNGMUY3RjhcIixcclxuICAgICAgICBSR0JfNTA6IFwicmdiKDI0MSwgMjQ3LCAyNDgpXCJcclxuICAgIH07XHJcblxyXG4gICAgc3RhdGljIHJlYWRvbmx5IFRFQUwgPSB7XHJcbiAgICAgICAgSEVYXzkwMDogXCIjMEMyODI3XCIsXHJcbiAgICAgICAgUkdCXzkwMDogXCJyZ2IoMTIsIDQwLCAzOSlcIixcclxuICAgICAgICBIRVhfNzAwOiBcIiMwMDUwNTBcIixcclxuICAgICAgICBSR0JfNzAwOiBcInJnYigwLCA4MCwgODApXCIsXHJcbiAgICAgICAgSEVYXzUwMDogXCIjMDA4MDgwXCIsXHJcbiAgICAgICAgUkdCXzUwMDogXCJyZ2IoMCwgMTI4LCAxMjgpXCIsXHJcbiAgICAgICAgSEVYXzMwMDogXCIjNERBNkE2XCIsXHJcbiAgICAgICAgUkdCXzMwMDogXCJyZ2IoNzcsIDE2NiwgMTY2KVwiLFxyXG4gICAgICAgIEhFWF8xMDA6IFwiI0IzRDlEOVwiLFxyXG4gICAgICAgIFJHQl8xMDA6IFwicmdiKDE3OSwgMjE3LCAyMTcpXCIsXHJcbiAgICAgICAgSEVYXzUwOiBcIiNFMEYwRjBcIixcclxuICAgICAgICBSR0JfNTA6IFwicmdiKDIyNCwgMjQwLCAyNDApXCJcclxuICAgIH07XHJcbn1cclxuIl19
@@ -4,8 +4,8 @@ import { FormBuilder, FormControl, FormGroup, Validators } from "@angular/forms"
4
4
  import { ButtonPriority, FieldType, FormField } from "@seniorsistemas/angular-components";
5
5
  import { DynamicDialogConfig, DynamicDialogRef } from "primeng";
6
6
  import { Subject } from "rxjs";
7
- import { NUMBERS } from "../../common/numbers";
8
7
  import { LibTranslationService } from "../../services/lib-translation.service";
8
+ import { AGRO_NUMBERS } from "../../enums/agro-numbers.enum";
9
9
  var CancelEventDialogComponent = /** @class */ (function () {
10
10
  function CancelEventDialogComponent(formBuilder, config, ref, translate) {
11
11
  this.formBuilder = formBuilder;
@@ -13,13 +13,13 @@ var CancelEventDialogComponent = /** @class */ (function () {
13
13
  this.ref = ref;
14
14
  this.translate = translate;
15
15
  this.loading = false;
16
- this.reasonMinLength = NUMBERS.FIFTEEN;
16
+ this.reasonMinLength = AGRO_NUMBERS.FIFTEEN;
17
17
  this.ngUnsubscribe = new Subject();
18
18
  this.cpSize = {
19
19
  sm: 12,
20
- md: NUMBERS.TWELVE,
21
- lg: NUMBERS.TWELVE,
22
- xl: NUMBERS.TWELVE,
20
+ md: AGRO_NUMBERS.TWELVE,
21
+ lg: AGRO_NUMBERS.TWELVE,
22
+ xl: AGRO_NUMBERS.TWELVE,
23
23
  };
24
24
  this.priority = ButtonPriority;
25
25
  }
@@ -47,14 +47,14 @@ var CancelEventDialogComponent = /** @class */ (function () {
47
47
  multiple: false,
48
48
  required: function () { return true; },
49
49
  size: this.cpSize,
50
- maxLength: NUMBERS.HUNDRED,
50
+ maxLength: AGRO_NUMBERS.ONE_HUNDRED,
51
51
  }),
52
52
  ];
53
53
  };
54
54
  CancelEventDialogComponent.prototype.setDataConfigDialog = function () {
55
55
  var _a, _b, _c, _d;
56
56
  this.cancelEventDialogConfig = (_b = (_a = this.config.data) === null || _a === void 0 ? void 0 : _a.cancelEventDialogConfig) !== null && _b !== void 0 ? _b : {};
57
- this.reasonMinLength = (_d = (_c = this.cancelEventDialogConfig) === null || _c === void 0 ? void 0 : _c.reasonMinLength) !== null && _d !== void 0 ? _d : NUMBERS.FIFTEEN;
57
+ this.reasonMinLength = (_d = (_c = this.cancelEventDialogConfig) === null || _c === void 0 ? void 0 : _c.reasonMinLength) !== null && _d !== void 0 ? _d : AGRO_NUMBERS.FIFTEEN;
58
58
  };
59
59
  CancelEventDialogComponent.prototype.setTranslations = function () {
60
60
  this.translations = {
@@ -125,4 +125,4 @@ var CancelEventDialogComponent = /** @class */ (function () {
125
125
  return CancelEventDialogComponent;
126
126
  }());
127
127
  export { CancelEventDialogComponent };
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FuY2VsLWV2ZW50LWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvY2FuY2VsLWV2ZW50LWRpYWxvZy9jYW5jZWwtZXZlbnQtZGlhbG9nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMxRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFRL0U7SUFzQkksb0NBQ3FCLFdBQXdCLEVBQ2xDLE1BQTJCLEVBQzNCLEdBQXFCLEVBQ1gsU0FBZ0M7UUFIaEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDM0IsUUFBRyxHQUFILEdBQUcsQ0FBa0I7UUFDWCxjQUFTLEdBQVQsU0FBUyxDQUF1QjtRQW5COUMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixvQkFBZSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFHakMsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3JCLFdBQU0sR0FBRztZQUN0QixFQUFFLEVBQUUsRUFBRTtZQUNOLEVB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QkFBZ0I7Z0JBQ0EscUJBQXFCOztJQXZCckQ7UUFEQyxLQUFLLEVBQUU7K0VBQ2dEO0lBSC9DLDBCQUEwQjtRQUx0QyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsdUJBQXVCO1lBQ2pDLG81QkFBbUQ7O1NBRXRELENBQUM7T0FDVywwQkFBMEIsQ0E0R3RDO0lBQUQsaUNBQUM7Q0FBQSxBQTVHRCxJQTRHQztTQTVHWSwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IEJ1dHRvblByaW9yaXR5LCBGaWVsZFR5cGUsIEZvcm1GaWVsZCB9IGZyb20gXCJAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzXCI7XHJcbmltcG9ydCB7IER5bmFtaWNEaWFsb2dDb25maWcsIER5bmFtaWNEaWFsb2dSZWYgfSBmcm9tIFwicHJpbWVuZ1wiO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgTlVNQkVSUyB9IGZyb20gXCIuLi8uLi9jb21tb24vbnVtYmVyc1wiO1xyXG5pbXBvcnQgeyBMaWJUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvbGliLXRyYW5zbGF0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ2FuY2VsRXZlbnREaWFsb2dDb25maWcgfSBmcm9tIFwiLi9jYW5jZWwtZXZlbnQtZGlhbG9nLWNvbmZpZ1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJzLWNhbmNlbC1ldmVudC1kaWFsb2dcIixcclxuICAgIHRlbXBsYXRlVXJsOiBcIi4vY2FuY2VsLWV2ZW50LWRpYWxvZy5jb21wb25lbnQuaHRtbFwiLFxyXG4gICAgc3R5bGVVcmxzOiBbXCIuL2NhbmNlbC1ldmVudC1kaWFsb2cuY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYW5jZWxFdmVudERpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGNhbmNlbEV2ZW50RGlhbG9nQ29uZmlnOiBDYW5jZWxFdmVudERpYWxvZ0NvbmZpZztcclxuICAgIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcclxuICAgIHB1YmxpYyBmb3JtRmllbGRzOiBGb3JtRmllbGRbXTtcclxuICAgIHB1YmxpYyB0cmFuc2ZlcklkOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgcHVibGljIHJlYXNvbk1pbkxlbmd0aCA9IE5VTUJFUlMuRklGVEVFTjtcclxuICAgIHB1YmxpYyB0cmFuc2xhdGlvbnM6IGFueTtcclxuXHJcbiAgICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjcFNpemUgPSB7XHJcbiAgICAgICAgc206IDEyLFxyXG4gICAgICAgIG1kOiBOVU1CRVJTLlRXRUxWRSxcclxuICAgICAgICBsZzogTlVNQkVSUy5UV0VMVkUsXHJcbiAgICAgICAgeGw6IE5VTUJFUlMuVFdFTFZFLFxyXG4gICAgfTtcclxuXHJcbiAgICBwdWJsaWMgcHJpb3JpdHkgPSBCdXR0b25Qcmlvcml0eTtcclxuXHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXHJcbiAgICAgICAgcHVibGljIGNvbmZpZzogRHluYW1pY0RpYWxvZ0NvbmZpZyxcclxuICAgICAgICBwdWJsaWMgcmVmOiBEeW5hbWljRGlhbG9nUmVmLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBMaWJUcmFuc2xhdGlvblNlcnZpY2UsXHJcbiAgICApIHsgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2V0Rm9ybUdyb3VwKCk7XHJcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGRzKCk7XHJcbiAgICAgICAgdGhpcy5zZXREYXRhQ29uZmlnRGlhbG9nKCk7XHJcbiAgICAgICAgdGhpcy5zZXRUcmFuc2xhdGlvbnMoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xyXG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0Rm9ybUdyb3VwKCkge1xyXG4gICAgICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgICAgICAgIHJlYXNvbjogW3sgdmFsdWU6IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9LCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKHRoaXMucmVhc29uTWluTGVuZ3RoKV0pXSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldEZvcm1GaWVsZHMoKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtRmllbGRzID0gW1xyXG4gICAgICAgICAgICBuZXcgRm9ybUZpZWxkKHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwicmVhc29uXCIsXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmNhbmNlbF9yZWFzb25cIiksXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuU3RyaW5nLFxyXG4gICAgICAgICAgICAgICAgbXVsdGlwbGU6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICgpID0+IHRydWUsXHJcbiAgICAgICAgICAgICAgICBzaXplOiB0aGlzLmNwU2l6ZSxcclxuICAgICAgICAgICAgICAgIG1heExlbmd0aDogTlVNQkVSUy5IVU5EUkVELFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICBdO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0RGF0YUNvbmZpZ0RpYWxvZygpIHtcclxuICAgICAgICB0aGlzLmNhbmNlbEV2ZW50RGlhbG9nQ29uZmlnID0gdGhpcy5jb25maWcuZGF0YT8uY2FuY2VsRXZlbnREaWFsb2dDb25maWcgPz8ge30gYXMgQ2FuY2VsRXZlbnREaWFsb2dDb25maWc7XHJcbiAgICAgICAgdGhpcy5yZWFzb25NaW5MZW5ndGggPSB0aGlzLmNhbmNlbEV2ZW50RGlhbG9nQ29uZmlnPy5yZWFzb25NaW5MZW5ndGggPz8gTlVNQkVSUy5GSUZURUVOO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0VHJhbnNsYXRpb25zKCkge1xyXG4gICAgICAgIHRoaXMudHJhbnNsYXRpb25zID0ge1xyXG4gICAgICAgICAgICByZXF1aXJlZDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmVycm9yX3JlcXVpcmVkXCIpLFxyXG4gICAgICAgICAgICBtaW46IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5lcnJvcl9taW5fdmFsdWVcIiksXHJcbiAgICAgICAgICAgIG1heDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmVycm9yX21heF92YWx1ZVwiKSxcclxuICAgICAgICAgICAgbWlubGVuZ3RoOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuZXJyb3JfbWluX2xlbmd0aFwiLCB7IHZhbG9yOiB0aGlzLnJlYXNvbk1pbkxlbmd0aCB9KSxcclxuICAgICAgICAgICAgbWF4bGVuZ3RoOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuZXJyb3JfbWF4X2xlbmd0aF90cmFuc2Zlcl9jb2RlXCIpLFxyXG4gICAgICAgICAgICBwYXR0ZXJuOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuZXJyb3JfaW52YWxpZFwiKSxcclxuICAgICAgICAgICAgRm9ybURhdGVFcnJvcl9kYXRhMTogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmluaXRpYWxfaW52YWxpZF9kYXRlXCIpLFxyXG4gICAgICAgICAgICBGb3JtRGF0ZUVycm9yX2RhdGEyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuZW5kX2ludmFsaWRfZGF0ZVwiKSxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgcHVibGljIGFzeW5jIGhhbmRsZUNvbmZpcm1DbGljaygpIHtcclxuICAgICAgICBpZiAodGhpcy5mb3JtR3JvdXAuaW52YWxpZCAmJiB0aGlzLmNhbmNlbEV2ZW50RGlhbG9nQ29uZmlnPy53aXRoUmVhc29uKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGVBbGxGb3JtRmllbGRzKHRoaXMuZm9ybUdyb3VwKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCByZWFzb24gPSB0aGlzLmZvcm1Hcm91cC5nZXQoXCJyZWFzb25cIik/LnZhbHVlO1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5jYW5jZWxFdmVudERpYWxvZ0NvbmZpZy5jYW5jZWxGdW5jdGlvbihyZWFzb24pO1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucmVmLmNsb3NlKHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdmFsaWRhdGVBbGxGb3JtRmllbGRzKGZvcm1Hcm91cDogRm9ybUdyb3VwKSB7XHJcbiAgICAgICAgT2JqZWN0LmtleXMoZm9ybUdyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKChmaWVsZCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldChmaWVsZCk7XHJcbiAgICAgICAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHMoY29udHJvbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlQ2FuY2VsQ2xpY2soKSB7XHJcbiAgICAgICAgdGhpcy5yZWYuY2xvc2UoKTtcclxuICAgIH1cclxufSJdfQ==
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FuY2VsLWV2ZW50LWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvY2FuY2VsLWV2ZW50LWRpYWxvZy9jYW5jZWwtZXZlbnQtZGlhbG9nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMxRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUUvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFPN0Q7SUF1Qkksb0NBQ3FCLFdBQXdCLEVBQ2xDLE1BQTJCLEVBQzNCLEdBQXFCLEVBQ1gsU0FBZ0M7UUFIaEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDM0IsUUFBRyxHQUFILEdBQUcsQ0FBa0I7UUFDWCxjQUFTLEdBQVQsU0FBUyxDQUF1QjtRQW5COUMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixvQkFBZSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUM7UUFHdEMsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3JCLFdBQU0sR0FBRztZQUN0QixFQUFFLEVBQUUsRUFBRTtZQUNOLEVB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QkFBZ0I7Z0JBQ0EscUJBQXFCOztJQXZCckQ7UUFEQyxLQUFLLEVBQUU7K0VBQ2dEO0lBSi9DLDBCQUEwQjtRQUx0QyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsdUJBQXVCO1lBQ2pDLG81QkFBbUQ7O1NBRXRELENBQUM7T0FDVywwQkFBMEIsQ0E2R3RDO0lBQUQsaUNBQUM7Q0FBQSxBQTdHRCxJQTZHQztTQTdHWSwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IEJ1dHRvblByaW9yaXR5LCBGaWVsZFR5cGUsIEZvcm1GaWVsZCB9IGZyb20gXCJAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzXCI7XHJcbmltcG9ydCB7IER5bmFtaWNEaWFsb2dDb25maWcsIER5bmFtaWNEaWFsb2dSZWYgfSBmcm9tIFwicHJpbWVuZ1wiO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgTGliVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2xpYi10cmFuc2xhdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IENhbmNlbEV2ZW50RGlhbG9nQ29uZmlnIH0gZnJvbSBcIi4vY2FuY2VsLWV2ZW50LWRpYWxvZy1jb25maWdcIjtcclxuaW1wb3J0IHsgQUdST19OVU1CRVJTIH0gZnJvbSBcIi4uLy4uL2VudW1zL2Fncm8tbnVtYmVycy5lbnVtXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcInMtY2FuY2VsLWV2ZW50LWRpYWxvZ1wiLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9jYW5jZWwtZXZlbnQtZGlhbG9nLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgICBzdHlsZVVybHM6IFtcIi4vY2FuY2VsLWV2ZW50LWRpYWxvZy5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENhbmNlbEV2ZW50RGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGNhbmNlbEV2ZW50RGlhbG9nQ29uZmlnOiBDYW5jZWxFdmVudERpYWxvZ0NvbmZpZztcclxuICAgIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcclxuICAgIHB1YmxpYyBmb3JtRmllbGRzOiBGb3JtRmllbGRbXTtcclxuICAgIHB1YmxpYyB0cmFuc2ZlcklkOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgcHVibGljIHJlYXNvbk1pbkxlbmd0aCA9IEFHUk9fTlVNQkVSUy5GSUZURUVOO1xyXG4gICAgcHVibGljIHRyYW5zbGF0aW9uczogYW55O1xyXG5cclxuICAgIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNwU2l6ZSA9IHtcclxuICAgICAgICBzbTogMTIsXHJcbiAgICAgICAgbWQ6IEFHUk9fTlVNQkVSUy5UV0VMVkUsXHJcbiAgICAgICAgbGc6IEFHUk9fTlVNQkVSUy5UV0VMVkUsXHJcbiAgICAgICAgeGw6IEFHUk9fTlVNQkVSUy5UV0VMVkUsXHJcbiAgICB9O1xyXG5cclxuICAgIHB1YmxpYyBwcmlvcml0eSA9IEJ1dHRvblByaW9yaXR5O1xyXG5cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcclxuICAgICAgICBwdWJsaWMgY29uZmlnOiBEeW5hbWljRGlhbG9nQ29uZmlnLFxyXG4gICAgICAgIHB1YmxpYyByZWY6IER5bmFtaWNEaWFsb2dSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IExpYlRyYW5zbGF0aW9uU2VydmljZSxcclxuICAgICkgeyB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZXRGb3JtR3JvdXAoKTtcclxuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZHMoKTtcclxuICAgICAgICB0aGlzLnNldERhdGFDb25maWdEaWFsb2coKTtcclxuICAgICAgICB0aGlzLnNldFRyYW5zbGF0aW9ucygpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XHJcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRGb3JtR3JvdXAoKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgICAgICAgcmVhc29uOiBbeyB2YWx1ZTogbnVsbCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgodGhpcy5yZWFzb25NaW5MZW5ndGgpXSldLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0Rm9ybUZpZWxkcygpIHtcclxuICAgICAgICB0aGlzLmZvcm1GaWVsZHMgPSBbXHJcbiAgICAgICAgICAgIG5ldyBGb3JtRmllbGQoe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJyZWFzb25cIixcclxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuY2FuY2VsX3JlYXNvblwiKSxcclxuICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5TdHJpbmcsXHJcbiAgICAgICAgICAgICAgICBtdWx0aXBsZTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogKCkgPT4gdHJ1ZSxcclxuICAgICAgICAgICAgICAgIHNpemU6IHRoaXMuY3BTaXplLFxyXG4gICAgICAgICAgICAgICAgbWF4TGVuZ3RoOiBBR1JPX05VTUJFUlMuT05FX0hVTkRSRUQsXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgIF07XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXREYXRhQ29uZmlnRGlhbG9nKCkge1xyXG4gICAgICAgIHRoaXMuY2FuY2VsRXZlbnREaWFsb2dDb25maWcgPSB0aGlzLmNvbmZpZy5kYXRhPy5jYW5jZWxFdmVudERpYWxvZ0NvbmZpZyA/PyB7fSBhcyBDYW5jZWxFdmVudERpYWxvZ0NvbmZpZztcclxuICAgICAgICB0aGlzLnJlYXNvbk1pbkxlbmd0aCA9IHRoaXMuY2FuY2VsRXZlbnREaWFsb2dDb25maWc/LnJlYXNvbk1pbkxlbmd0aCA/PyBBR1JPX05VTUJFUlMuRklGVEVFTjtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldFRyYW5zbGF0aW9ucygpIHtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0aW9ucyA9IHtcclxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5lcnJvcl9yZXF1aXJlZFwiKSxcclxuICAgICAgICAgICAgbWluOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuZXJyb3JfbWluX3ZhbHVlXCIpLFxyXG4gICAgICAgICAgICBtYXg6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5lcnJvcl9tYXhfdmFsdWVcIiksXHJcbiAgICAgICAgICAgIG1pbmxlbmd0aDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmVycm9yX21pbl9sZW5ndGhcIiwgeyB2YWxvcjogdGhpcy5yZWFzb25NaW5MZW5ndGggfSksXHJcbiAgICAgICAgICAgIG1heGxlbmd0aDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmVycm9yX21heF9sZW5ndGhfdHJhbnNmZXJfY29kZVwiKSxcclxuICAgICAgICAgICAgcGF0dGVybjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmVycm9yX2ludmFsaWRcIiksXHJcbiAgICAgICAgICAgIEZvcm1EYXRlRXJyb3JfZGF0YTE6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5pbml0aWFsX2ludmFsaWRfZGF0ZVwiKSxcclxuICAgICAgICAgICAgRm9ybURhdGVFcnJvcl9kYXRhMjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmVuZF9pbnZhbGlkX2RhdGVcIiksXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBoYW5kbGVDb25maXJtQ2xpY2soKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybUdyb3VwLmludmFsaWQgJiYgdGhpcy5jYW5jZWxFdmVudERpYWxvZ0NvbmZpZz8ud2l0aFJlYXNvbikge1xyXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyh0aGlzLmZvcm1Hcm91cCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgcmVhc29uID0gdGhpcy5mb3JtR3JvdXAuZ2V0KFwicmVhc29uXCIpPy52YWx1ZTtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuY2FuY2VsRXZlbnREaWFsb2dDb25maWcuY2FuY2VsRnVuY3Rpb24ocmVhc29uKTtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnJlZi5jbG9zZSh0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHZhbGlkYXRlQWxsRm9ybUZpZWxkcyhmb3JtR3JvdXA6IEZvcm1Hcm91cCkge1xyXG4gICAgICAgIE9iamVjdC5rZXlzKGZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaCgoZmllbGQpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5nZXQoZmllbGQpO1xyXG4gICAgICAgICAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sKSB7XHJcbiAgICAgICAgICAgICAgICBjb250cm9sLm1hcmtBc0RpcnR5KHsgb25seVNlbGY6IHRydWUgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGVBbGxGb3JtRmllbGRzKGNvbnRyb2wpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZUNhbmNlbENsaWNrKCkge1xyXG4gICAgICAgIHRoaXMucmVmLmNsb3NlKCk7XHJcbiAgICB9XHJcbn0iXX0=
@@ -295,7 +295,7 @@ var EventControlBoardComponent = /** @class */ (function () {
295
295
  return keys.reduce(function (acc, key) { return acc && acc[key]; }, parsedJson);
296
296
  }
297
297
  catch (error) {
298
- console.error("Erro ao acessar o objeto pelo path: " + path, error);
298
+ console.info("Erro ao acessar o objeto pelo path: " + path, error);
299
299
  return null;
300
300
  }
301
301
  };
@@ -600,4 +600,4 @@ var EventControlBoardComponent = /** @class */ (function () {
600
600
  return EventControlBoardComponent;
601
601
  }());
602
602
  export { EventControlBoardComponent };
603
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtY29udHJvbC1ib2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZXZlbnQtY29udHJvbC1ib2FyZC9ldmVudC1jb250cm9sLWJvYXJkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxRQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBZ0MsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFRLFNBQVMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hILE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFNUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDbEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztB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QztRQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBRU0sZ0RBQVcsR0FBbEI7UUFDSSxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBRU0saURBQVksR0FBbkI7UUFDSSxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDOztnQkFwaUIrQixxQkFBcUI7Z0JBQ25CLFdBQVc7Z0JBQ04sZ0JBQWdCO2dCQUNSLHdCQUF3QjtnQkFDekIsdUJBQXVCO2dCQUNoQyxjQUFjO2dCQUNmLGFBQWE7O0lBcER4QztRQUFSLEtBQUssRUFBRTsrREFBbUI7SUFDbEI7UUFBUixLQUFLLEVBQUU7OERBQWtCO0lBQ2pCO1FBQVIsS0FBSyxFQUFFO21FQUF3QjtJQUN2QjtRQUFSLEtBQUssRUFBRTttRUFBMkI7SUFDMUI7UUFBUixLQUFLLEVBQUU7bUVBQTJCO0lBQzFCO1FBQVIsS0FBSyxFQUFFO2tFQUFxQjtJQUNwQjtRQUFSLEtBQUssRUFBRTttRUFBb0I7SUFDbkI7UUFBUixLQUFLLEVBQUU7a0VBQXNCO0lBQ3JCO1FBQVIsS0FBSyxFQUFFO3dFQUE0QjtJQUMzQjtRQUFSLEtBQUssRUFBRTsrRUFBbUQ7SUFDakQ7UUFBVCxNQUFNLEVBQUU7c0VBQTZEO0lBWDdELDBCQUEwQjtRQU50QyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUscUJBQXFCO1lBQy9CLGtraUJBQW1EO1lBRW5ELFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUM7O1NBQ3pELENBQUM7T0FDVywwQkFBMEIsQ0FvbEJ0QztJQUFELGlDQUFDO0NBQUEsQUFwbEJELElBb2xCQztTQXBsQlksMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVnaXN0ZXJMb2NhbGVEYXRhIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgbG9jYWxlUHQgZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL3B0XCI7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgTE9DQUxFX0lELCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IEJhZGdlQ29sb3JzLCBCdXR0b25Qcmlvcml0eSwgRmllbGRUeXBlLCBGb3JtRmllbGQsIFN0ZXAsIFN0ZXBTdGF0ZSB9IGZyb20gXCJAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzXCI7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UsIE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSBcInByaW1lbmdcIjtcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBBR1JPX05VTUJFUlMgfSBmcm9tIFwiLi4vLi4vZW51bXMvYWdyby1udW1iZXJzLmVudW1cIjtcclxuaW1wb3J0IHsgTGliVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2xpYi10cmFuc2xhdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFdlYnNvY2tldFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvd2Vic29ja2V0XCI7XHJcbmltcG9ydCB7IENhbmNlbEV2ZW50RGlhbG9nQ29uZmlnIH0gZnJvbSBcIi4uL2NhbmNlbC1ldmVudC1kaWFsb2cvY2FuY2VsLWV2ZW50LWRpYWxvZy1jb25maWdcIjtcclxuaW1wb3J0IHsgQ2FuY2VsRXZlbnREaWFsb2dDb21wb25lbnQgfSBmcm9tIFwiLi4vY2FuY2VsLWV2ZW50LWRpYWxvZy9jYW5jZWwtZXZlbnQtZGlhbG9nLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBldmVudEl0ZW0sIGlucHV0RmllbGRzUGF0aCB9IGZyb20gXCIuL2NvbW1vbi9ldmVudC1jb250cm9sLWNvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBFdmVudE9yaWdpbiB9IGZyb20gXCIuL2NvbW1vbi9ldmVudC1vcmlnaW5cIjtcclxuaW1wb3J0IHsgRXZlbnRTdGF0dXMgfSBmcm9tIFwiLi9jb21tb24vZXZlbnQtc3RhdHVzXCI7XHJcbmltcG9ydCB7IElucHV0RmllbGRzIH0gZnJvbSBcIi4vY29tbW9uL2lucHV0LWZpZWxkc1wiO1xyXG5pbXBvcnQgeyBpbnZvaWNlVHlwZVRyYW5zbGF0ZSB9IGZyb20gXCIuL2NvbW1vbi9pbnB1dC1maWVsZHMtdHJhbnNsYXRlXCI7XHJcbmltcG9ydCB7IExvb2t1cEVycm9yTWVzc2FnZXMgfSBmcm9tIFwiLi9jb21tb24vbG9va3VwLWVycm9yLW1lc3NhZ2UuY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IEUwNzBFbXAgfSBmcm9tIFwiLi9zZXJ2aWNlL2UwNzBlbXAvZTA3MGVtcFwiO1xyXG5pbXBvcnQgeyBFMDcwRmlsIH0gZnJvbSBcIi4vc2VydmljZS9lMDcwZmlsL2UwNzBmaWxcIjtcclxuaW1wb3J0IHsgRXZlbnRDb250cm9sQm9hcmRTZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZS9ldmVudC1jb250cm9sLWJvYXJkLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRXZlbnRDb250cm9sSXRlbSB9IGZyb20gXCIuL3NlcnZpY2UvZXZlbnQtY29udHJvbC1pdGVtL2V2ZW50LWNvbnRyb2wtaXRlbVwiO1xyXG5pbXBvcnQgeyBSZXByb2Nlc3NGYWlsZWRFdmVudCB9IGZyb20gXCIuL3NlcnZpY2UvZXZlbnQtY29udHJvbC1pdGVtL2V2ZW50LWNvbnRyb2wtaXRlbS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEV2ZW50Q29udHJvbCB9IGZyb20gXCIuL3NlcnZpY2UvZXZlbnQtY29udHJvbC9ldmVudC1jb250cm9sXCI7XHJcbmltcG9ydCB7IExpc3RFdmVudENvbnRyb2xXaXRoRmlsdGVyc0lucHV0RHRvIH0gZnJvbSBcIi4vc2VydmljZS9ldmVudC1jb250cm9sL2V2ZW50LWNvbnRyb2wuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBQYWdpbmF0b3JTdG9yYWdlU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2UvcGFnaW5hdG9yLXN0b3JhZ2Uuc2VydmljZVwiO1xyXG5jb25zdCBtb21lbnQgPSByZXF1aXJlKFwibW9tZW50XCIpO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJldmVudC1jb250cm9sLWJvYXJkXCIsXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2V2ZW50LWNvbnRyb2wtYm9hcmQuY29tcG9uZW50Lmh0bWxcIixcclxuICAgIHN0eWxlVXJsczogW1wiLi9ldmVudC1jb250cm9sLWJvYXJkLmNvbXBvbmVudC5zY3NzXCJdLFxyXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBMT0NBTEVfSUQsIHVzZVZhbHVlOiBcInB0LUJSXCIgfV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFdmVudENvbnRyb2xCb2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xyXG4gICAgQElucHV0KCkgY29tcGFueSE6IEUwNzBFbXA7XHJcbiAgICBASW5wdXQoKSBicmFuY2ghOiBFMDcwRmlsO1xyXG4gICAgQElucHV0KCkgY29udHJvbENvZGUhOiBzdHJpbmdbXTtcclxuICAgIEBJbnB1dCgpIGV2ZW50T3JpZ2luITogRXZlbnRPcmlnaW47XHJcbiAgICBASW5wdXQoKSBldmVudFN0YXR1cyE6IEV2ZW50U3RhdHVzO1xyXG4gICAgQElucHV0KCkgZXh0ZXJuYWxJZCE6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGNyZWF0ZWREYXRlITogRGF0ZTtcclxuICAgIEBJbnB1dCgpIHN0YW5kYWxvbmUhOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgc2hvd0NhbmNlbEJ1dHRvbiE6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBjYW5jZWxFdmVudERpYWxvZ0NvbmZpZyE6IENhbmNlbEV2ZW50RGlhbG9nQ29uZmlnO1xyXG4gICAgQE91dHB1dCgpIHByb2Nlc3NlZEV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIHB1YmxpYyBwcm9kdWNlckludm9pY2UhOiBhbnk7XHJcblxyXG4gICAgcHVibGljIHN0ZXBzOiBTdGVwW10gPSBbXTtcclxuICAgIHB1YmxpYyBzZWxlY3RlZFN0ZXA6IGFueTtcclxuICAgIHB1YmxpYyBldmVudElkITogXCJcIjtcclxuICAgIHB1YmxpYyBzaG93U2lkZWJhciA9IGZhbHNlO1xyXG4gICAgcHVibGljIHNob3dSZXByb2Nlc3NCdXR0b24gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBzaWRlYmFyVGl0bGUhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgc2lkZWJhckxvYWRpbmchOiBib29sZWFuO1xyXG5cclxuICAgIHB1YmxpYyBmaWx0ZXJGb3JtR3JvdXAhOiBGb3JtR3JvdXA7XHJcbiAgICBwdWJsaWMgZmlsdGVyRmllbGRzITogRm9ybUZpZWxkW107XHJcblxyXG4gICAgcHVibGljIGdyaWREYXRhITogYW55W107XHJcbiAgICBwdWJsaWMgZ3JpZERhdGFSZXNvbHZlZCE6IGFueVtdO1xyXG4gICAgcHVibGljIGdyaWRDb2x1bW5zITogYW55W107XHJcbiAgICBwdWJsaWMgZ3JpZFRvdGFsUmVjb3JkcyA9IEFHUk9fTlVNQkVSUy5aRVJPO1xyXG4gICAgcHVibGljIGdyaWRMb2FkaW5nID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgZGlzcGxheU1vZGFsID0gZmFsc2U7XHJcblxyXG4gICAgcHVibGljIEJ1dHRvblByaW9yaXR5ID0gQnV0dG9uUHJpb3JpdHk7XHJcbiAgICBwdWJsaWMgQmFkZ2VDb2xvcnMgPSBCYWRnZUNvbG9ycztcclxuXHJcbiAgICBwdWJsaWMgcGVybWlzc2lvbnM6IGFueSA9IHt9O1xyXG4gICAgcHVibGljIGxvY2FsZUNvbmZpZzogYW55ID0ge307XHJcblxyXG4gICAgcHVibGljIGN1cnJlbnRMaXN0UGFyYW1zOiBhbnkgPSB7IHBhZ2U6IEFHUk9fTlVNQkVSUy5aRVJPLCBzaXplOiBBR1JPX05VTUJFUlMuVEVOLCBzb3J0OiBbXSwgZmlsdGVyRGF0YToge30gfTtcclxuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBldmVudEl0ZW0gPSBldmVudEl0ZW07XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlucHV0RmllbGRzUGF0aCA9IGlucHV0RmllbGRzUGF0aDtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW52b2ljZVR5cGVUcmFuc2xhdGUgPSBpbnZvaWNlVHlwZVRyYW5zbGF0ZTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogTGliVHJhbnNsYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgd2Vic29ja2V0U2VydmljZTogV2Vic29ja2V0U2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGV2ZW50Q29udHJvbEJvYXJkU2VydmljZTogRXZlbnRDb250cm9sQm9hcmRTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcGFnaW5hdG9yU3RvcmFnZVNlcnZpY2U6IFBhZ2luYXRvclN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgcmVnaXN0ZXJMb2NhbGVEYXRhKGxvY2FsZVB0KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5ncmlkQ29sdW1ucyA9IHRoaXMuc2V0R3JpZENvbHVtbnMoKTtcclxuICAgICAgICB0aGlzLmNhbGxXZWJzb2NrZXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGlmICghdGhpcy5maWx0ZXJGb3JtR3JvdXApIHtcclxuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplRm9ybUdyb3VwKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkcygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVDb21wYW55QW5kQnJhbmNoRm9ybUZpZWxkcyhjaGFuZ2VzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUV2ZW50T3JpZ2luQW5kQ29udHJvbENvZGVGb3JtRmllbGRzKGNoYW5nZXMpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRXZlbnRTdGF0dXNBbmRDcmVhdGVkRGF0ZUZvcm1GaWVsZHMoY2hhbmdlcyk7XHJcbiAgICAgICAgdGhpcy5vblNlYXJjaCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBkYXRlQ29tcGFueUFuZEJyYW5jaEZvcm1GaWVsZHMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGlmIChjaGFuZ2VzLmNvbXBhbnkgJiYgY2hhbmdlcy5jb21wYW55LmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5jb21wYW55LnByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KFwiY29tcGFueVwiKT8uc2V0VmFsdWUoY2hhbmdlcy5jb21wYW55LmN1cnJlbnRWYWx1ZSA/PyBudWxsKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjaGFuZ2VzLmJyYW5jaCAmJiBjaGFuZ2VzLmJyYW5jaC5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMuYnJhbmNoLnByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KFwiYnJhbmNoXCIpPy5zZXRWYWx1ZShjaGFuZ2VzLmJyYW5jaC5jdXJyZW50VmFsdWUgPz8gbnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBkYXRlRXZlbnRPcmlnaW5BbmRDb250cm9sQ29kZUZvcm1GaWVsZHMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGlmIChjaGFuZ2VzLmV2ZW50T3JpZ2luICYmIGNoYW5nZXMuZXZlbnRPcmlnaW4uY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLmV2ZW50T3JpZ2luLnByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KFwiZXZlbnRPcmlnaW5cIik/LnNldFZhbHVlKGNoYW5nZXMuZXZlbnRPcmlnaW4uY3VycmVudFZhbHVlID8/IG51bGwpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGNoYW5nZXMuY29udHJvbENvZGUgJiYgY2hhbmdlcy5jb250cm9sQ29kZS5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMuY29udHJvbENvZGUucHJldmlvdXNWYWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXQoXCJjb250cm9sQ29kZVwiKT8uc2V0VmFsdWUoY2hhbmdlcy5jb250cm9sQ29kZS5jdXJyZW50VmFsdWUgPz8gbnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBkYXRlRXZlbnRTdGF0dXNBbmRDcmVhdGVkRGF0ZUZvcm1GaWVsZHMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGlmIChjaGFuZ2VzLmV2ZW50U3RhdHVzICYmIGNoYW5nZXMuZXZlbnRTdGF0dXMuY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLmV2ZW50U3RhdHVzLnByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KFwic3RhdHVzXCIpPy5zZXRWYWx1ZShjaGFuZ2VzLmV2ZW50U3RhdHVzLmN1cnJlbnRWYWx1ZSA/PyBudWxsKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjaGFuZ2VzLmNyZWF0ZWREYXRlICYmIGNoYW5nZXMuY3JlYXRlZERhdGUuY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLmNyZWF0ZWREYXRlLnByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KFwiY3JlYXRlZERhdGVcIik/LnNldFZhbHVlKGNoYW5nZXMuY3JlYXRlZERhdGUuY3VycmVudFZhbHVlID8/IG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRpYWxpemVGb3JtR3JvdXAoKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgICAgICAgY29tcGFueTogW3sgdmFsdWU6IHRoaXMuY29tcGFueSA/PyBudWxsLCBkaXNhYmxlZDogZmFsc2UgfSwgVmFsaWRhdG9ycy5jb21wb3NlKFtdKV0sXHJcbiAgICAgICAgICAgIGJyYW5jaDogW3sgdmFsdWU6IHRoaXMuYnJhbmNoID8/IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9LCBWYWxpZGF0b3JzLmNvbXBvc2UoW10pXSxcclxuICAgICAgICAgICAgY29udHJvbENvZGU6IFt7IHZhbHVlOiB0aGlzLmNvbnRyb2xDb2RlID8/IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9LCBWYWxpZGF0b3JzLmNvbXBvc2UoW10pXSxcclxuICAgICAgICAgICAgZXh0ZXJuYWxJZDogW3sgdmFsdWU6IHRoaXMuZXh0ZXJuYWxJZCA/PyBudWxsLCBkaXNhYmxlZDogZmFsc2UgfSwgVmFsaWRhdG9ycy5jb21wb3NlKFtdKV0sXHJcbiAgICAgICAgICAgIGV2ZW50T3JpZ2luOiBbeyB2YWx1ZTogdGhpcy5ldmVudE9yaWdpbiA/PyBudWxsLCBkaXNhYmxlZDogZmFsc2UgfSwgVmFsaWRhdG9ycy5jb21wb3NlKFtdKV0sXHJcbiAgICAgICAgICAgIHN0YXR1czogW3sgdmFsdWU6IHRoaXMuZXZlbnRTdGF0dXMgPz8gbnVsbCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFZhbGlkYXRvcnMuY29tcG9zZShbXSldLFxyXG4gICAgICAgICAgICBjcmVhdGVkRGF0ZTogW3sgdmFsdWU6IHRoaXMuY3JlYXRlZERhdGUgPz8gbnVsbCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFZhbGlkYXRvcnMuY29tcG9zZShbXSldLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0Rm9ybUZpZWxkcygpIHtcclxuICAgICAgICB0aGlzLmZpbHRlckZpZWxkcyA9IFtcclxuICAgICAgICAgICAgbmV3IEZvcm1GaWVsZCh7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcImNvbXBhbnlcIixcclxuICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5DaGlwcyxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBGb3JtRmllbGQoe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJicmFuY2hcIixcclxuICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5DaGlwcyxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBGb3JtRmllbGQoe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJjb250cm9sQ29kZVwiLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLkNoaXBzLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IEZvcm1GaWVsZCh7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcImV4dGVybmFsSWRcIixcclxuICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5TdHJpbmcsXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgRm9ybUZpZWxkKHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiZXZlbnRPcmlnaW5cIixcclxuICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5FbnVtLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IEZvcm1GaWVsZCh7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcInN0YXR1c1wiLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLkVudW0sXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgRm9ybUZpZWxkKHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiY3JlYXRlZERhdGVcIixcclxuICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5EYXRlLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICBdO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0R3JpZENvbHVtbnMoKSB7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAgeyBmaWVsZDogXCJjb21wYW55XCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmNvbXBhbnlcIikgfSxcclxuICAgICAgICAgICAgeyBmaWVsZDogXCJicmFuY2hcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMubGFiZWxfYnJhbmNoXCIpIH0sXHJcbiAgICAgICAgICAgIHsgZmllbGQ6IFwiZXZlbnRPcmlnaW5cIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuZXZlbnRfb3JpZ2luX2xhYmVsXCIpIH0sXHJcbiAgICAgICAgICAgIHsgZmllbGQ6IFwiY29udHJvbENvZGVcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuY29udHJvbF9jb2RlXCIpIH0sXHJcbiAgICAgICAgXTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcclxuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcclxuICAgICAgICB0aGlzLndlYnNvY2tldFNlcnZpY2UuZGlzY29ubmVjdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjYWxsV2Vic29ja2V0KCkge1xyXG4gICAgICAgIHRoaXMud2Vic29ja2V0U2VydmljZVxyXG4gICAgICAgICAgICAub25FdmVudDxhbnk+KHtcclxuICAgICAgICAgICAgICAgIGRvbWFpbjogXCJhZ3JvXCIsXHJcbiAgICAgICAgICAgICAgICBzZXJ2aWNlOiBcImFncm9fZXZlbnRzXCIsXHJcbiAgICAgICAgICAgICAgICBwcmltaXRpdmU6IFwicHJvY2Vzc2VkRXZlbnRcIixcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKG1lc3NhZ2UpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGV4dGVybmFsSWQgPSBtZXNzYWdlPy5kYXRhPy5leHRlcm5hbElkO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyRGF0YSA9IHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldFJhd1ZhbHVlKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWV4dGVybmFsSWQgfHwgdGhpcy5leHRlcm5hbElkID09PSBleHRlcm5hbElkIHx8IHRoaXMuZ3JpZERhdGE/LnNvbWUoKGl0ZW06IGFueSkgPT4gaXRlbS5leHRlcm5hbElkID09PSBleHRlcm5hbElkKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlR3JpZCh7IGZpbHRlckRhdGEgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzZWRFdmVudC5lbWl0KG1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy53ZWJzb2NrZXRTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5vbkV2ZW50PGFueT4oe1xyXG4gICAgICAgICAgICAgICAgZG9tYWluOiBcInBsYXRmb3JtXCIsXHJcbiAgICAgICAgICAgICAgICBzZXJ2aWNlOiBcIm5vdGlmaWNhdGlvbnNcIixcclxuICAgICAgICAgICAgICAgIHByaW1pdGl2ZTogXCJ1c2VyTm90aWZpZWRcIixcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyRGF0YSA9IHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldFJhd1ZhbHVlKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUdyaWQoeyBmaWx0ZXJEYXRhIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25TZWFyY2goKSB7XHJcbiAgICAgICAgY29uc3QgZmlsdGVyRGF0YSA9IHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldFJhd1ZhbHVlKCk7XHJcbiAgICAgICAgdGhpcy5ncmlkTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5yZXNldEdyaWQoeyBmaWx0ZXJEYXRhIH0pO1xyXG4gICAgICAgIHRoaXMudXBkYXRlR3JpZCh7IGZpbHRlckRhdGEgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlc2V0R3JpZChsaXN0UGFyYW1zPzogYW55KSB7XHJcbiAgICAgICAgaWYgKGxpc3RQYXJhbXMpIHtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlzdFBhcmFtcyA9IHsgLi4udGhpcy5jdXJyZW50TGlzdFBhcmFtcywgLi4ubGlzdFBhcmFtcyB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnBhZ2UgPSBBR1JPX05VTUJFUlMuWkVSTztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZUdyaWQobGlzdFBhcmFtczogYW55ID0ge30pIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zID0geyAuLi50aGlzLmN1cnJlbnRMaXN0UGFyYW1zLCAuLi5saXN0UGFyYW1zIH07XHJcbiAgICAgICAgY29uc3QgeyBwYWdlLCBzaXplIH0gPSB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zO1xyXG4gICAgICAgIGNvbnN0IG9yZGVyID0gdGhpcy5nZXRTb3J0ZWRGaWVsZHMoKTtcclxuICAgICAgICBjb25zdCBpbnB1dCA9IHsgLi4udGhpcy5nZXRJbnB1dCgpLCBwYWdlLCBzaXplLCBvcmRlciB9O1xyXG5cclxuICAgICAgICB0aGlzLmV2ZW50Q29udHJvbEJvYXJkU2VydmljZS5ldmVudENvbnRyb2xTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5nZXRMaXN0RXZlbnRDb250cm9sV2l0aEZpbHRlcnMoaW5wdXQpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JpZExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGxpc3Q6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkRGF0YSA9IGxpc3QuY29udGVudHM7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdyaWRUb3RhbFJlY29yZHMgPSBsaXN0LnRvdGFsRWxlbWVudHM7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZ3JpZERhdGEgfHwgdGhpcy5ncmlkRGF0YS5sZW5ndGggPD0gQUdST19OVU1CRVJTLlpFUk8pIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyaWRMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzRXZlbnRDb250cm9sSXRlbXMoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBwcm9jZXNzRXZlbnRDb250cm9sSXRlbXMoKSB7XHJcbiAgICAgICAgdGhpcy5ncmlkRGF0YS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNvcnRlZEl0ZW1zID0gaXRlbS5ldmVudENvbnRyb2xJdGVtLnNvcnQoKGE6IEV2ZW50Q29udHJvbEl0ZW0sIGI6IEV2ZW50Q29udHJvbEl0ZW0pID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBhLnNlcXVlbmNlIC0gYi5zZXF1ZW5jZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHN0ZXBzID0gc29ydGVkSXRlbXMubWFwKChkZXRhaWw6IEV2ZW50Q29udHJvbEl0ZW0sIGluZGV4OiBudW1iZXIpID0+IHRoaXMuY3JlYXRlU3RlcChkZXRhaWwsIGl0ZW0sIGluZGV4KSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUluZGV4ID0gdGhpcy5jYWxjdWxhdGVBY3RpdmVJbmRleChzb3J0ZWRJdGVtcyk7XHJcbiAgICAgICAgICAgIGl0ZW0uZ3JvdXBzID0gW3sgc3RlcHMsIGFjdGl2ZUluZGV4IH1dO1xyXG4gICAgICAgICAgICBpdGVtLmFjdGl2ZUluZGV4ID0gYWN0aXZlSW5kZXg7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5ncmlkRGF0YVJlc29sdmVkID0gdGhpcy5ncmlkRGF0YTtcclxuICAgICAgICB0aGlzLmdyaWRMb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVBY3RpdmVJbmRleChkZXRhaWxzOiBFdmVudENvbnRyb2xJdGVtW10pOiBudW1iZXIge1xyXG4gICAgICAgIGNvbnN0IGxhc3RBY3RpdmUgPSBkZXRhaWxzLnJlZHVjZShcclxuICAgICAgICAgICAgKGxhc3RJbmRleCwgZGV0YWlsLCBjdXJyZW50SW5kZXgpID0+IChkZXRhaWwuc3RhdHVzICE9PSBFdmVudFN0YXR1cy5QRU5ESU5HID8gY3VycmVudEluZGV4IDogbGFzdEluZGV4KSxcclxuICAgICAgICAgICAgLTFcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChsYXN0QWN0aXZlICE9PSAtMSAmJiBkZXRhaWxzW2xhc3RBY3RpdmVdLnN0YXR1cyA9PT0gRXZlbnRTdGF0dXMuU1VDQ0VTUykge1xyXG4gICAgICAgICAgICByZXR1cm4gbGFzdEFjdGl2ZSArIDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBsYXN0QWN0aXZlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY3JlYXRlU3RlcChkZXRhaWw6IEV2ZW50Q29udHJvbEl0ZW0sIGl0ZW06IEV2ZW50Q29udHJvbCwgZGV0YWlsSW5kZXg6IG51bWJlcikge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGl0ZW06IGRldGFpbCxcclxuICAgICAgICAgICAgY29udHJvbENvZGU6IGl0ZW0uY29udHJvbENvZGUsXHJcbiAgICAgICAgICAgIGV2ZW50VHlwZTogaXRlbS5ldmVudE9yaWdpbixcclxuICAgICAgICAgICAgbGFiZWw6IHRoaXMuZ2V0RXZlbnRMYWJlbChkZXRhaWwpLFxyXG4gICAgICAgICAgICBzdWJMYWJlbDogdGhpcy5nZXRFdmVudFN1YkxhYmVsKGRldGFpbCksXHJcbiAgICAgICAgICAgIGRpc2FibGVkOiBkZXRhaWwuc3RhdHVzID09PSBFdmVudFN0YXR1cy5QRU5ESU5HICYmIGRldGFpbEluZGV4ICE9PSB0aGlzLmNhbGN1bGF0ZUFjdGl2ZUluZGV4KGl0ZW0uZXZlbnRDb250cm9sSXRlbSksXHJcbiAgICAgICAgICAgIHRvb2x0aXA6IHRoaXMuZ2V0RXZlbnRMYWJlbChkZXRhaWwpLFxyXG4gICAgICAgICAgICBzdGF0ZTogdGhpcy5kZXRlcm1pbmVTdGVwU3RhdGUoZGV0YWlsKSxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZGV0ZXJtaW5lU3RlcFN0YXRlKGRldGFpbDogeyBzdGF0dXM6IEV2ZW50U3RhdHVzIH0pOiBTdGVwU3RhdGUge1xyXG4gICAgICAgIGlmIChkZXRhaWwuc3RhdHVzID09PSBFdmVudFN0YXR1cy5TVUNDRVNTKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBTdGVwU3RhdGUuU3VjY2VzcztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGRldGFpbC5zdGF0dXMgPT09IEV2ZW50U3RhdHVzLkZBSUxFRCkge1xyXG4gICAgICAgICAgICByZXR1cm4gU3RlcFN0YXRlLldhcm5pbmc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBTdGVwU3RhdGUuRGVmYXVsdDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldEV2ZW50TGFiZWwoZGV0YWlsOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGV2ZW50TGFiZWwgPSB0aGlzLmV2ZW50SXRlbS5maW5kKChlKSA9PiBlLnZhbHVlID09PSBkZXRhaWwuZXZlbnRPcGVyYXRpb24pPy5sYWJlbDtcclxuICAgICAgICBpZiAoZXZlbnRMYWJlbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudChldmVudExhYmVsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgbG9jYWxMYWJlbCA9IHRoaXMuZ2V0RXZlbnRPcGVyYXRpb25TdWJMb2NhbExhYmVsKGRldGFpbCk7XHJcbiAgICAgICAgaWYgKGxvY2FsTGFiZWwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGxvY2FsTGFiZWw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBkZXRhaWwuZXZlbnRPcGVyYXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRFdmVudE9wZXJhdGlvblN1YkxvY2FsTGFiZWwoZGV0YWlsOiBFdmVudENvbnRyb2xJdGVtKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICAgICAgY29uc3QgdHJhbmxzYXRpb25LZXkgPSBcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLlwiICsgZGV0YWlsLmV2ZW50T3BlcmF0aW9uO1xyXG4gICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCh0cmFubHNhdGlvbktleSk7XHJcbiAgICAgICAgaWYgKHRyYW5zbGF0aW9uICE9PSB0cmFubHNhdGlvbktleSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJhbnNsYXRpb247XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0RXZlbnRTdWJMYWJlbChkZXRhaWw6IEV2ZW50Q29udHJvbEl0ZW0pOiBzdHJpbmcgfCBudWxsIHtcclxuICAgICAgICBjb25zdCBmaWVsZCA9IHRoaXMuZXZlbnRJdGVtLmZpbmQoKGUpID0+IGUudmFsdWUgPT09IGRldGFpbC5ldmVudE9wZXJhdGlvbik/LnN1YkxhYmVsRmllbGQ7XHJcbiAgICAgICAgaWYgKCFmaWVsZCB8fCAhZGV0YWlsLmlucHV0KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgcGF0aCA9IHRoaXMuaW5wdXRGaWVsZHNQYXRoLmZpbmQoKGYpID0+IGYuZmllbGQgPT09IGZpZWxkICYmICghZi5vcGVyYXRpb24gfHwgZi5vcGVyYXRpb24gPT09IGRldGFpbC5ldmVudE9wZXJhdGlvbikpPy5wYXRoO1xyXG4gICAgICAgIHZhciBmdWxsUGF0aCA9IHBhdGggPyBgJHtwYXRofS4ke2ZpZWxkfWAgOiBmaWVsZDtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWVGaWVsZEpzb25Gcm9tUGF0aChkZXRhaWwuaW5wdXQsIGZ1bGxQYXRoKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRGaWVsZFZhbHVlKGZpZWxkLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRWYWx1ZUZpZWxkSnNvbkZyb21QYXRoKGpzb246IHN0cmluZywgcGF0aDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCBwYXJzZWRKc29uID0gSlNPTi5wYXJzZShqc29uKTtcclxuICAgICAgICAgICAgY29uc3Qga2V5cyA9IHBhdGguc3BsaXQoXCIuXCIpO1xyXG4gICAgICAgICAgICByZXR1cm4ga2V5cy5yZWR1Y2UoKGFjYywga2V5KSA9PiBhY2MgJiYgYWNjW2tleV0sIHBhcnNlZEpzb24pO1xyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJFcnJvIGFvIGFjZXNzYXIgbyBvYmpldG8gcGVsbyBwYXRoOiBcIiArIHBhdGgsIGVycm9yKTtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZm9ybWF0RmllbGRWYWx1ZShmaWVsZDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgc3dpdGNoIChmaWVsZCkge1xyXG4gICAgICAgICAgICBjYXNlIElucHV0RmllbGRzLkFHUk9fSU5WT0lDRV9UWVBFOlxyXG4gICAgICAgICAgICBjYXNlIElucHV0RmllbGRzLklOVk9JQ0VfVFlQRTpcclxuICAgICAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5pbnZvaWNlVHlwZVRyYW5zbGF0ZS5maW5kKChlKSA9PiBlLnZhbHVlID09PSB2YWx1ZSk/LmxhYmVsO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGxhYmVsID8gdGhpcy50cmFuc2xhdGUuaW5zdGFudChsYWJlbCkgOiB2YWx1ZTtcclxuICAgICAgICAgICAgY2FzZSBJbnB1dEZpZWxkcy5JTlZPSUNFX05VTUJFUjpcclxuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSA/IFwibsKwIFwiICsgdmFsdWUgOiB2YWx1ZTtcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRTb3J0ZWRGaWVsZHMoKTogc3RyaW5nIHtcclxuICAgICAgICBsZXQgb3JkZXIgPSBcIlwiO1xyXG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNvcnQ/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgb3JkZXIgPSB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNvcnRcclxuICAgICAgICAgICAgICAgIC5tYXAoKHNvcnRJdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7dGhpcy5nZXRGaWVsZE5hbWVGb3JTb3J0UmVxdWVzdChzb3J0SXRlbS5maWVsZCl9ICR7c29ydEl0ZW0ub3JkZXIgPT09IEFHUk9fTlVNQkVSUy5PTkUgPyBcImFzY1wiIDogXCJkZXNjXCJ9YDtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAuam9pbihcIiwgXCIpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zdGFuZGFsb25lKSB7XHJcbiAgICAgICAgICAgIG9yZGVyID0gXCJjcmVhdGVkRGF0ZSBhc2NcIjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBvcmRlciA9IFwibGFzdE1vZGlmaWVkRGF0ZSBkZXNjXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBvcmRlcjtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldElucHV0KCk6IExpc3RFdmVudENvbnRyb2xXaXRoRmlsdGVyc0lucHV0RHRvIHtcclxuICAgICAgICBjb25zdCB7IGZpbHRlckRhdGEgfSA9IHRoaXMuY3VycmVudExpc3RQYXJhbXM7XHJcbiAgICAgICAgY29uc3QgY29udHJvbENvZGUgPSBmaWx0ZXJEYXRhW1wiY29udHJvbENvZGVcIl0gJiYgQXJyYXkuaXNBcnJheShmaWx0ZXJEYXRhW1wiY29udHJvbENvZGVcIl0pID8gZmlsdGVyRGF0YVtcImNvbnRyb2xDb2RlXCJdIDogbnVsbDtcclxuICAgICAgICBjb25zdCBmaWx0ZXIgPSB7XHJcbiAgICAgICAgICAgIGNvbXBhbnlJZDogZmlsdGVyRGF0YVtcImNvbXBhbnlcIl0/LmlkID8/IG51bGwsXHJcbiAgICAgICAgICAgIGJyYW5jaElkOiBmaWx0ZXJEYXRhW1wiYnJhbmNoXCJdPy5pZCA/PyBudWxsLFxyXG4gICAgICAgICAgICBjb250cm9sQ29kZTogY29udHJvbENvZGUgPyBjb250cm9sQ29kZS5tYXAoKGNvZGU6IHN0cmluZykgPT4gcGFyc2VJbnQoY29kZSkpIDogbnVsbCxcclxuICAgICAgICAgICAgZXh0ZXJuYWxJZDogZmlsdGVyRGF0YVtcImV4dGVybmFsSWRcIl0gPz8gbnVsbCxcclxuICAgICAgICAgICAgZXZlbnRPcmlnaW46IGZpbHRlckRhdGFbXCJldmVudE9yaWdpblwiXSA/PyBudWxsLFxyXG4gICAgICAgICAgICBldmVudFN0YXR1czogZmlsdGVyRGF0YVtcInN0YXR1c1wiXSA/PyBudWxsLFxyXG4gICAgICAgICAgICBjcmVhdGVkRGF0ZVN0YXJ0OiBmaWx0ZXJEYXRhW1wiY3JlYXRlZERhdGVcIl0gPyB0aGlzLmdldFN0YXJ0RGF0ZShmaWx0ZXJEYXRhW1wiY3JlYXRlZERhdGVcIl0pIDogbnVsbCxcclxuICAgICAgICAgICAgY3JlYXRlZERhdGVFbmQ6IGZpbHRlckRhdGFbXCJjcmVhdGVkRGF0ZVwiXSA/IHRoaXMuZ2V0RW5kRGF0ZShmaWx0ZXJEYXRhW1wiY3JlYXRlZERhdGVcIl0pIDogbnVsbCxcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBmaWx0ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRGaWVsZE5hbWVGb3JTb3J0UmVxdWVzdChuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHN3aXRjaCAobmFtZSkge1xyXG4gICAgICAgICAgICBjYXNlIFwiY29tcGFueVwiOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiY29tcGFueS5ub21FbXBcIjtcclxuICAgICAgICAgICAgY2FzZSBcImJyYW5jaFwiOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiYnJhbmNoLm5vbUZpbFwiO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0RW5kRGF0ZSh2YWx1ZTogYW55KTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBlbmREYXRlID0gbW9tZW50KHZhbHVlKS5lbmRPZihcImRheVwiKS5mb3JtYXQoXCJZWVlZLU1NLUREVEhIOm1tOnNzXCIpICsgXCJaXCI7XHJcbiAgICAgICAgcmV0dXJuIGVuZERhdGU7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIGdldFN0YXJ0RGF0ZSh2YWx1ZTogYW55KTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBzdGFydERhdGUgPSBtb21lbnQodmFsdWUpLnN0YXJ0T2YoXCJkYXlcIikuZm9ybWF0KFwiWVlZWS1NTS1ERFRISDptbTpzc1wiKSArIFwiWlwiO1xyXG4gICAgICAgIHJldHVybiBzdGFydERhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uR3JpZENoYW5nZShldmVudDogYW55KSB7XHJcbiAgICAgICAgY29uc3Qgc2l6ZSA9IGV2ZW50Py5yb3dzO1xyXG4gICAgICAgIGNvbnN0IHBhZ2UgPSBldmVudD8uZmlyc3QgLyBzaXplO1xyXG4gICAgICAgIGNvbnN0IHNvcnQgPSBldmVudC5tdWx0aVNvcnRNZXRhO1xyXG4gICAgICAgIHRoaXMuZ3JpZExvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgIGlmIChzaXplICE9PSBBR1JPX05VTUJFUlMuVEVOIHx8IHBhZ2UgIT09IEFHUk9fTlVNQkVSUy5aRVJPIHx8IChzb3J0ICYmIHNvcnQubGVuZ3RoID4gQUdST19OVU1CRVJTLlpFUk8pKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdG9yU3RvcmFnZVNlcnZpY2Uuc3RvcmVQYWdpbmF0b3IoXCJFdmVudENvbnRyb2xCb2FyZFBhZ2luYXRvclwiLCB7IHBhZ2UsIHNpemUsIHNvcnQgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVHcmlkKHsgcGFnZSwgc2l6ZSwgc29ydCB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0UGFnZVNpemUoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudExpc3RQYXJhbXMuc2l6ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0Um93SW5kZXgoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudExpc3RQYXJhbXMucGFnZSAqIHRoaXMuY3VycmVudExpc3RQYXJhbXMuc2l6ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0U29ydEZpZWxkKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5zb3J0IHx8IHRoaXMuY3VycmVudExpc3RQYXJhbXMuc29ydC5sZW5ndGggPD0gQUdST19OVU1CRVJTLlpFUk8pIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ3JpZENvbHVtbnNbQUdST19OVU1CRVJTLlpFUk9dLmZpZWxkO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5zb3J0W0FHUk9fTlVNQkVSUy5aRVJPXS5maWVsZDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0U29ydE9yZGVyKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5zb3J0IHx8IHRoaXMuY3VycmVudExpc3RQYXJhbXMuc29ydC5sZW5ndGggPD0gQUdST19OVU1CRVJTLlpFUk8pIHtcclxuICAgICAgICAgICAgcmV0dXJuIEFHUk9fTlVNQkVSUy5PTkU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5zb3J0W0FHUk9fTlVNQkVSUy5aRVJPXS5vcmRlcjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0RXJyb3JNZXNzYWdlcygpIHtcclxuICAgICAgICBjb25zdCB0cmFuc2xhdGVkRXJyb3JNZXNzYWdlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIExvb2t1cEVycm9yTWVzc2FnZXMpIHtcclxuICAgICAgICAgICAgaWYgKExvb2t1cEVycm9yTWVzc2FnZXMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUuZ2V0KExvb2t1cEVycm9yTWVzc2FnZXNba2V5XSkuc3Vic2NyaWJlKChyZXM6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZWRFcnJvck1lc3NhZ2VzW2tleV0gPSByZXM7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJhbnNsYXRlZEVycm9yTWVzc2FnZXM7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UHJvZHVjZXJJbnZvaWNlSWRGcm9tUGFyYW1zKHBhcmFtOiBhbnkpIHtcclxuICAgICAgICBpZiAocGFyYW0/LnByb2R1Y2VySW52b2ljZUlkcyAmJiBwYXJhbT8ucHJvZHVjZXJJbnZvaWNlSWRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHBhcmFtPy5wcm9kdWNlckludm9pY2VJZHNbMF07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocGFyYW0/Lmludm9pY2U/LmdlbmVyYWxEYXRhPy50cmFuc2FjdGlvbmFsSWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHBhcmFtPy5pbnZvaWNlPy5nZW5lcmFsRGF0YT8udHJhbnNhY3Rpb25hbElkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHBhcmFtPy5wcm9kdWNlckludm9pY2VJZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gcGFyYW0/LnByb2R1Y2VySW52b2ljZUlkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHBhcmFtPy5leHRlcm5hbElkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBwYXJhbT8uZXh0ZXJuYWxJZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UHJvZHVjZXJCYWxhbmNlRW50cnlDb250cm9sSWRGcm9tUGFyYW1zKHBhcmFtOiBhbnkpIHtcclxuICAgICAgICBjb25zdCB7IHByb2R1Y2VyQmFsYW5jZUVudHJ5Q29udHJvbElkIH0gPSBwYXJhbTtcclxuICAgICAgICByZXR1cm4gcHJvZHVjZXJCYWxhbmNlRW50cnlDb250cm9sSWQgPyBwcm9kdWNlckJhbGFuY2VFbnRyeUNvbnRyb2xJZCA6IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0ZXBTZWxlY3RlZChldmVudDogYW55KSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFN0ZXAgPSBldmVudC5zdGVwO1xyXG4gICAgICAgIHRoaXMuYXBwbHlTaWRlYmFyVGl0bGUoXCJcIik7XHJcblxyXG4gICAgICAgIHN3aXRjaCAodGhpcy5zZWxlY3RlZFN0ZXAuZXZlbnRUeXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgRXZlbnRPcmlnaW4uQkFMQU5DRV9FTlRSWV9DT05UUk9MOlxyXG4gICAgICAgICAgICBjYXNlIEV2ZW50T3JpZ2luLlRJQ0tFVDpcclxuICAgICAgICAgICAgY2FzZSBFdmVudE9yaWdpbi5JTlZPSUNFOlxyXG4gICAgICAgICAgICBjYXNlIEV2ZW50T3JpZ2luLkNSRUFURV9JTlZPSUNFOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zaWRlYmFyTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyYW0gPSBKU09OLnBhcnNlKHRoaXMuc2VsZWN0ZWRTdGVwLml0ZW0uaW5wdXQpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByb2R1Y2VySW52b2ljZUlkID0gdGhpcy5nZXRQcm9kdWNlckludm9pY2VJZEZyb21QYXJhbXMocGFyYW0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBmaWx0ZXJRdWVyeSA9IFwiXCI7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghcHJvZHVjZXJJbnZvaWNlSWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJvZHVjZXJCYWxhbmNlRW50cnlDb250cm9sSWQgPSB0aGlzLmdldFByb2R1Y2VyQmFsYW5jZUVudHJ5Q29udHJvbElkRnJvbVBhcmFtcyhwYXJhbSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2R1Y2VyQmFsYW5jZUVudHJ5Q29udHJvbElkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNpZGViYXJMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclF1ZXJ5ID0gYHByb2R1Y2VyQmFsYW5jZUVudHJ5Q29udHJvbC5pZCBlcSAnJHtwcm9kdWNlckJhbGFuY2VFbnRyeUNvbnRyb2xJZH0nYDtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJRdWVyeSA9IGBpZCBlcSAnJHtwcm9kdWNlckludm9pY2VJZH0nYDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXZlbnRDb250cm9sQm9hcmRTZXJ2aWNlLnByb2R1Y2VySW52b2ljZVNlcnZpY2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmxpc3Qoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheUZpZWxkczogW1wiKlwiLCBcInByb2R1Y2VyQmFsYW5jZUVudHJ5Q29udHJvbC4qXCIsIFwicHJvZHVjZXJCYWxhbmNlRW50cnlDb250cm9sLnByb2R1Y2VyLipcIl0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJRdWVyeSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2U6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAxLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjZXJJbnZvaWNlID0gcmVzdWx0Py5jb250ZW50c1swXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y2VySW52b2ljZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNpZGViYXJMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBseVNpZGViYXJUaXRsZSh0aGlzLmdldFByb2R1Y2VySW52b2ljZU51bWJlckFuZFNlcmllKCkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNpZGViYXJMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBFdmVudE9yaWdpbi5GSVhBVElPTjpcclxuICAgICAgICAgICAgY2FzZSBFdmVudE9yaWdpbi5DQU5DRUxfRklYQVRJT046XHJcbiAgICAgICAgICAgIGNhc2UgRXZlbnRPcmlnaW4uQ0hBTkdFX1JFUVVFU1Q6XHJcbiAgICAgICAgICAgIGNhc2UgRXZlbnRPcmlnaW4uVFJBTlNGRVI6XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2hvd1JlcHJvY2Vzc0J1dHRvbiA9IGV2ZW50LnN0ZXAuc3RhdGUgPT09IFN0ZXBTdGF0ZS5XYXJuaW5nO1xyXG5cclxuICAgICAgICB0aGlzLnNob3dTaWRlYmFyID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGFwcGx5U2lkZWJhclRpdGxlKHRpdGxlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnNpZGViYXJUaXRsZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5ldmVudF9zaWRlYmFyX3RpdGxlXCIsIHsgZXZlbnROdW1iZXI6IHRpdGxlIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0UHJvZHVjZXJJbnZvaWNlTnVtYmVyQW5kU2VyaWUoKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodGhpcy5wcm9kdWNlckludm9pY2U/Lm51bWJlciAmJiB0aGlzLnByb2R1Y2VySW52b2ljZT8uc2VyaWVzKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHt0aGlzLnByb2R1Y2VySW52b2ljZS5udW1iZXJ9IC0gJHt0aGlzLnByb2R1Y2VySW52b2ljZS5zZXJpZXN9YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlcHJvY2Vzc0V2ZW50KCkge1xyXG4gICAgICAgIGNvbnN0IHJlcHJvY2Vzc0V2ZW50T2JqOiBSZXByb2Nlc3NGYWlsZWRFdmVudCA9IHtcclxuICAgICAgICAgICAgZXZlbnRDb250cm9sSXRlbUlkOiB0aGlzLnNlbGVjdGVkU3RlcC5pdGVtLmlkLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5ldmVudENvbnRyb2xCb2FyZFNlcnZpY2UuZXZlbnRDb250cm9sSXRlbVNlcnZpY2VcclxuICAgICAgICAgICAgLnJlcHJvY2Vzc0ZhaWxlZEV2ZW50KHJlcHJvY2Vzc0V2ZW50T2JqKVxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZE1lc3NhZ2UoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5mb1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLnJlcHJvY2Vzc2luZ19ldmVudF9tZXNzYWdlX3RpdGxlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMucmVwcm9jZXNzaW5nX2V2ZW50X21lc3NhZ2VfZGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkTWVzc2FnZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJlcnJvclwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmVycm9yX3JlcHJvY2Vzc2luZ19ldmVudF9tZXNzYWdlX3RpdGxlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuZXJyb3JfcmVwcm9jZXNzaW5nX2V2ZW50X21lc3NhZ2VfZGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhZGRNZXNzYWdlKHNldmVyaXR5OiBzdHJpbmcsIHN1bW1hcnk6IHN0cmluZywgZGV0YWlsOiBzdHJpbmcsIGxpZmUgPSBBR1JPX05VTUJFUlMuRklWRV9TRUNPTkRTKSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xyXG4gICAgICAgICAgICBzZXZlcml0eSxcclxuICAgICAgICAgICAgc3VtbWFyeTogdGhpcy50cmFuc2xhdGUuaW5zdGFudChzdW1tYXJ5KSxcclxuICAgICAgICAgICAgZGV0YWlsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGRldGFpbCksXHJcbiAgICAgICAgICAgIGxpZmUsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9wZW5Nb2RhbCgpIHtcclxuICAgICAgICB0aGlzLmRpc3BsYXlNb2RhbCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zaG93U2lkZWJhciA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBvcGVuQ2FuY2VsTW9kYWwoKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5jYW5jZWxFdmVudERpYWxvZ0NvbmZpZy5iZWZvcmVPcGVuPy4oKTtcclxuICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbihDYW5jZWxFdmVudERpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICAgICAgICBoZWFkZXI6IHRoaXMuY2FuY2VsRXZlbnREaWFsb2dDb25maWc/LmhlYWRlcixcclxuICAgICAgICAgICAgY29udGVudFN0eWxlOiB7IGhlaWdodDogXCIxMDAlXCIgfSxcclxuICAgICAgICAgICAgY2xvc2FibGU6IHRydWUsXHJcbiAgICAgICAgICAgIGNsb3NlT25Fc2NhcGU6IGZhbHNlLFxyXG4gICAgICAgICAgICBkYXRhOiB7IGNhbmNlbEV2ZW50RGlhbG9nQ29uZmlnOiB0aGlzLmNhbmNlbEV2ZW50RGlhbG9nQ29uZmlnIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNvbmZpcm1Nb2RhbCgpIHtcclxuICAgICAgICB0aGlzLnJlcHJvY2Vzc0V2ZW50KCk7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5TW9kYWwgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2FuY2VsTW9kYWwoKSB7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5TW9kYWwgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2xvc2VTaWRlYmFyKCkge1xyXG4gICAgICAgIHRoaXMuc2hvd1NpZGViYXIgPSBmYWxzZTtcclxuICAgIH1cclxufVxyXG4iXX0=
603
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtY29udHJvbC1ib2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZXZlbnQtY29udHJvbC1ib2FyZC9ldmVudC1jb250cm9sLWJvYXJkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxRQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBZ0MsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFRLFNBQVMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hILE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFNUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDbEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztB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QztRQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBRU0sZ0RBQVcsR0FBbEI7UUFDSSxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBRU0saURBQVksR0FBbkI7UUFDSSxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDOztnQkFwaUIrQixxQkFBcUI7Z0JBQ25CLFdBQVc7Z0JBQ04sZ0JBQWdCO2dCQUNSLHdCQUF3QjtnQkFDekIsdUJBQXVCO2dCQUNoQyxjQUFjO2dCQUNmLGFBQWE7O0lBcER4QztRQUFSLEtBQUssRUFBRTsrREFBbUI7SUFDbEI7UUFBUixLQUFLLEVBQUU7OERBQWtCO0lBQ2pCO1FBQVIsS0FBSyxFQUFFO21FQUF3QjtJQUN2QjtRQUFSLEtBQUssRUFBRTttRUFBMkI7SUFDMUI7UUFBUixLQUFLLEVBQUU7bUVBQTJCO0lBQzFCO1FBQVIsS0FBSyxFQUFFO2tFQUFxQjtJQUNwQjtRQUFSLEtBQUssRUFBRTttRUFBb0I7SUFDbkI7UUFBUixLQUFLLEVBQUU7a0VBQXNCO0lBQ3JCO1FBQVIsS0FBSyxFQUFFO3dFQUE0QjtJQUMzQjtRQUFSLEtBQUssRUFBRTsrRUFBbUQ7SUFDakQ7UUFBVCxNQUFNLEVBQUU7c0VBQTZEO0lBWDdELDBCQUEwQjtRQU50QyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUscUJBQXFCO1lBQy9CLGtraUJBQW1EO1lBRW5ELFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUM7O1NBQ3pELENBQUM7T0FDVywwQkFBMEIsQ0FvbEJ0QztJQUFELGlDQUFDO0NBQUEsQUFwbEJELElBb2xCQztTQXBsQlksMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVnaXN0ZXJMb2NhbGVEYXRhIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgbG9jYWxlUHQgZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL3B0XCI7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgTE9DQUxFX0lELCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IEJhZGdlQ29sb3JzLCBCdXR0b25Qcmlvcml0eSwgRmllbGRUeXBlLCBGb3JtRmllbGQsIFN0ZXAsIFN0ZXBTdGF0ZSB9IGZyb20gXCJAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzXCI7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UsIE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSBcInByaW1lbmdcIjtcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBBR1JPX05VTUJFUlMgfSBmcm9tIFwiLi4vLi4vZW51bXMvYWdyby1udW1iZXJzLmVudW1cIjtcclxuaW1wb3J0IHsgTGliVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2xpYi10cmFuc2xhdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFdlYnNvY2tldFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvd2Vic29ja2V0XCI7XHJcbmltcG9ydCB7IENhbmNlbEV2ZW50RGlhbG9nQ29uZmlnIH0gZnJvbSBcIi4uL2NhbmNlbC1ldmVudC1kaWFsb2cvY2FuY2VsLWV2ZW50LWRpYWxvZy1jb25maWdcIjtcclxuaW1wb3J0IHsgQ2FuY2VsRXZlbnREaWFsb2dDb21wb25lbnQgfSBmcm9tIFwiLi4vY2FuY2VsLWV2ZW50LWRpYWxvZy9jYW5jZWwtZXZlbnQtZGlhbG9nLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBldmVudEl0ZW0sIGlucHV0RmllbGRzUGF0aCB9IGZyb20gXCIuL2NvbW1vbi9ldmVudC1jb250cm9sLWNvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBFdmVudE9yaWdpbiB9IGZyb20gXCIuL2NvbW1vbi9ldmVudC1vcmlnaW5cIjtcclxuaW1wb3J0IHsgRXZlbnRTdGF0dXMgfSBmcm9tIFwiLi9jb21tb24vZXZlbnQtc3RhdHVzXCI7XHJcbmltcG9ydCB7IElucHV0RmllbGRzIH0gZnJvbSBcIi4vY29tbW9uL2lucHV0LWZpZWxkc1wiO1xyXG5pbXBvcnQgeyBpbnZvaWNlVHlwZVRyYW5zbGF0ZSB9IGZyb20gXCIuL2NvbW1vbi9pbnB1dC1maWVsZHMtdHJhbnNsYXRlXCI7XHJcbmltcG9ydCB7IExvb2t1cEVycm9yTWVzc2FnZXMgfSBmcm9tIFwiLi9jb21tb24vbG9va3VwLWVycm9yLW1lc3NhZ2UuY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IEUwNzBFbXAgfSBmcm9tIFwiLi9zZXJ2aWNlL2UwNzBlbXAvZTA3MGVtcFwiO1xyXG5pbXBvcnQgeyBFMDcwRmlsIH0gZnJvbSBcIi4vc2VydmljZS9lMDcwZmlsL2UwNzBmaWxcIjtcclxuaW1wb3J0IHsgRXZlbnRDb250cm9sQm9hcmRTZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZS9ldmVudC1jb250cm9sLWJvYXJkLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRXZlbnRDb250cm9sSXRlbSB9IGZyb20gXCIuL3NlcnZpY2UvZXZlbnQtY29udHJvbC1pdGVtL2V2ZW50LWNvbnRyb2wtaXRlbVwiO1xyXG5pbXBvcnQgeyBSZXByb2Nlc3NGYWlsZWRFdmVudCB9IGZyb20gXCIuL3NlcnZpY2UvZXZlbnQtY29udHJvbC1pdGVtL2V2ZW50LWNvbnRyb2wtaXRlbS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEV2ZW50Q29udHJvbCB9IGZyb20gXCIuL3NlcnZpY2UvZXZlbnQtY29udHJvbC9ldmVudC1jb250cm9sXCI7XHJcbmltcG9ydCB7IExpc3RFdmVudENvbnRyb2xXaXRoRmlsdGVyc0lucHV0RHRvIH0gZnJvbSBcIi4vc2VydmljZS9ldmVudC1jb250cm9sL2V2ZW50LWNvbnRyb2wuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBQYWdpbmF0b3JTdG9yYWdlU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2UvcGFnaW5hdG9yLXN0b3JhZ2Uuc2VydmljZVwiO1xyXG5jb25zdCBtb21lbnQgPSByZXF1aXJlKFwibW9tZW50XCIpO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJldmVudC1jb250cm9sLWJvYXJkXCIsXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2V2ZW50LWNvbnRyb2wtYm9hcmQuY29tcG9uZW50Lmh0bWxcIixcclxuICAgIHN0eWxlVXJsczogW1wiLi9ldmVudC1jb250cm9sLWJvYXJkLmNvbXBvbmVudC5zY3NzXCJdLFxyXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBMT0NBTEVfSUQsIHVzZVZhbHVlOiBcInB0LUJSXCIgfV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFdmVudENvbnRyb2xCb2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xyXG4gICAgQElucHV0KCkgY29tcGFueSE6IEUwNzBFbXA7XHJcbiAgICBASW5wdXQoKSBicmFuY2ghOiBFMDcwRmlsO1xyXG4gICAgQElucHV0KCkgY29udHJvbENvZGUhOiBzdHJpbmdbXTtcclxuICAgIEBJbnB1dCgpIGV2ZW50T3JpZ2luITogRXZlbnRPcmlnaW47XHJcbiAgICBASW5wdXQoKSBldmVudFN0YXR1cyE6IEV2ZW50U3RhdHVzO1xyXG4gICAgQElucHV0KCkgZXh0ZXJuYWxJZCE6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGNyZWF0ZWREYXRlITogRGF0ZTtcclxuICAgIEBJbnB1dCgpIHN0YW5kYWxvbmUhOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgc2hvd0NhbmNlbEJ1dHRvbiE6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBjYW5jZWxFdmVudERpYWxvZ0NvbmZpZyE6IENhbmNlbEV2ZW50RGlhbG9nQ29uZmlnO1xyXG4gICAgQE91dHB1dCgpIHByb2Nlc3NlZEV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIHB1YmxpYyBwcm9kdWNlckludm9pY2UhOiBhbnk7XHJcblxyXG4gICAgcHVibGljIHN0ZXBzOiBTdGVwW10gPSBbXTtcclxuICAgIHB1YmxpYyBzZWxlY3RlZFN0ZXA6IGFueTtcclxuICAgIHB1YmxpYyBldmVudElkITogXCJcIjtcclxuICAgIHB1YmxpYyBzaG93U2lkZWJhciA9IGZhbHNlO1xyXG4gICAgcHVibGljIHNob3dSZXByb2Nlc3NCdXR0b24gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBzaWRlYmFyVGl0bGUhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgc2lkZWJhckxvYWRpbmchOiBib29sZWFuO1xyXG5cclxuICAgIHB1YmxpYyBmaWx0ZXJGb3JtR3JvdXAhOiBGb3JtR3JvdXA7XHJcbiAgICBwdWJsaWMgZmlsdGVyRmllbGRzITogRm9ybUZpZWxkW107XHJcblxyXG4gICAgcHVibGljIGdyaWREYXRhITogYW55W107XHJcbiAgICBwdWJsaWMgZ3JpZERhdGFSZXNvbHZlZCE6IGFueVtdO1xyXG4gICAgcHVibGljIGdyaWRDb2x1bW5zITogYW55W107XHJcbiAgICBwdWJsaWMgZ3JpZFRvdGFsUmVjb3JkcyA9IEFHUk9fTlVNQkVSUy5aRVJPO1xyXG4gICAgcHVibGljIGdyaWRMb2FkaW5nID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgZGlzcGxheU1vZGFsID0gZmFsc2U7XHJcblxyXG4gICAgcHVibGljIEJ1dHRvblByaW9yaXR5ID0gQnV0dG9uUHJpb3JpdHk7XHJcbiAgICBwdWJsaWMgQmFkZ2VDb2xvcnMgPSBCYWRnZUNvbG9ycztcclxuXHJcbiAgICBwdWJsaWMgcGVybWlzc2lvbnM6IGFueSA9IHt9O1xyXG4gICAgcHVibGljIGxvY2FsZUNvbmZpZzogYW55ID0ge307XHJcblxyXG4gICAgcHVibGljIGN1cnJlbnRMaXN0UGFyYW1zOiBhbnkgPSB7IHBhZ2U6IEFHUk9fTlVNQkVSUy5aRVJPLCBzaXplOiBBR1JPX05VTUJFUlMuVEVOLCBzb3J0OiBbXSwgZmlsdGVyRGF0YToge30gfTtcclxuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBldmVudEl0ZW0gPSBldmVudEl0ZW07XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlucHV0RmllbGRzUGF0aCA9IGlucHV0RmllbGRzUGF0aDtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW52b2ljZVR5cGVUcmFuc2xhdGUgPSBpbnZvaWNlVHlwZVRyYW5zbGF0ZTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogTGliVHJhbnNsYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgd2Vic29ja2V0U2VydmljZTogV2Vic29ja2V0U2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGV2ZW50Q29udHJvbEJvYXJkU2VydmljZTogRXZlbnRDb250cm9sQm9hcmRTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcGFnaW5hdG9yU3RvcmFnZVNlcnZpY2U6IFBhZ2luYXRvclN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgcmVnaXN0ZXJMb2NhbGVEYXRhKGxvY2FsZVB0KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5ncmlkQ29sdW1ucyA9IHRoaXMuc2V0R3JpZENvbHVtbnMoKTtcclxuICAgICAgICB0aGlzLmNhbGxXZWJzb2NrZXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGlmICghdGhpcy5maWx0ZXJGb3JtR3JvdXApIHtcclxuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplRm9ybUdyb3VwKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkcygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVDb21wYW55QW5kQnJhbmNoRm9ybUZpZWxkcyhjaGFuZ2VzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUV2ZW50T3JpZ2luQW5kQ29udHJvbENvZGVGb3JtRmllbGRzKGNoYW5nZXMpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRXZlbnRTdGF0dXNBbmRDcmVhdGVkRGF0ZUZvcm1GaWVsZHMoY2hhbmdlcyk7XHJcbiAgICAgICAgdGhpcy5vblNlYXJjaCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBkYXRlQ29tcGFueUFuZEJyYW5jaEZvcm1GaWVsZHMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGlmIChjaGFuZ2VzLmNvbXBhbnkgJiYgY2hhbmdlcy5jb21wYW55LmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5jb21wYW55LnByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KFwiY29tcGFueVwiKT8uc2V0VmFsdWUoY2hhbmdlcy5jb21wYW55LmN1cnJlbnRWYWx1ZSA/PyBudWxsKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjaGFuZ2VzLmJyYW5jaCAmJiBjaGFuZ2VzLmJyYW5jaC5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMuYnJhbmNoLnByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KFwiYnJhbmNoXCIpPy5zZXRWYWx1ZShjaGFuZ2VzLmJyYW5jaC5jdXJyZW50VmFsdWUgPz8gbnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBkYXRlRXZlbnRPcmlnaW5BbmRDb250cm9sQ29kZUZvcm1GaWVsZHMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGlmIChjaGFuZ2VzLmV2ZW50T3JpZ2luICYmIGNoYW5nZXMuZXZlbnRPcmlnaW4uY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLmV2ZW50T3JpZ2luLnByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KFwiZXZlbnRPcmlnaW5cIik/LnNldFZhbHVlKGNoYW5nZXMuZXZlbnRPcmlnaW4uY3VycmVudFZhbHVlID8/IG51bGwpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGNoYW5nZXMuY29udHJvbENvZGUgJiYgY2hhbmdlcy5jb250cm9sQ29kZS5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMuY29udHJvbENvZGUucHJldmlvdXNWYWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXQoXCJjb250cm9sQ29kZVwiKT8uc2V0VmFsdWUoY2hhbmdlcy5jb250cm9sQ29kZS5jdXJyZW50VmFsdWUgPz8gbnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBkYXRlRXZlbnRTdGF0dXNBbmRDcmVhdGVkRGF0ZUZvcm1GaWVsZHMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGlmIChjaGFuZ2VzLmV2ZW50U3RhdHVzICYmIGNoYW5nZXMuZXZlbnRTdGF0dXMuY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLmV2ZW50U3RhdHVzLnByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KFwic3RhdHVzXCIpPy5zZXRWYWx1ZShjaGFuZ2VzLmV2ZW50U3RhdHVzLmN1cnJlbnRWYWx1ZSA/PyBudWxsKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjaGFuZ2VzLmNyZWF0ZWREYXRlICYmIGNoYW5nZXMuY3JlYXRlZERhdGUuY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLmNyZWF0ZWREYXRlLnByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KFwiY3JlYXRlZERhdGVcIik/LnNldFZhbHVlKGNoYW5nZXMuY3JlYXRlZERhdGUuY3VycmVudFZhbHVlID8/IG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRpYWxpemVGb3JtR3JvdXAoKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgICAgICAgY29tcGFueTogW3sgdmFsdWU6IHRoaXMuY29tcGFueSA/PyBudWxsLCBkaXNhYmxlZDogZmFsc2UgfSwgVmFsaWRhdG9ycy5jb21wb3NlKFtdKV0sXHJcbiAgICAgICAgICAgIGJyYW5jaDogW3sgdmFsdWU6IHRoaXMuYnJhbmNoID8/IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9LCBWYWxpZGF0b3JzLmNvbXBvc2UoW10pXSxcclxuICAgICAgICAgICAgY29udHJvbENvZGU6IFt7IHZhbHVlOiB0aGlzLmNvbnRyb2xDb2RlID8/IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9LCBWYWxpZGF0b3JzLmNvbXBvc2UoW10pXSxcclxuICAgICAgICAgICAgZXh0ZXJuYWxJZDogW3sgdmFsdWU6IHRoaXMuZXh0ZXJuYWxJZCA/PyBudWxsLCBkaXNhYmxlZDogZmFsc2UgfSwgVmFsaWRhdG9ycy5jb21wb3NlKFtdKV0sXHJcbiAgICAgICAgICAgIGV2ZW50T3JpZ2luOiBbeyB2YWx1ZTogdGhpcy5ldmVudE9yaWdpbiA/PyBudWxsLCBkaXNhYmxlZDogZmFsc2UgfSwgVmFsaWRhdG9ycy5jb21wb3NlKFtdKV0sXHJcbiAgICAgICAgICAgIHN0YXR1czogW3sgdmFsdWU6IHRoaXMuZXZlbnRTdGF0dXMgPz8gbnVsbCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFZhbGlkYXRvcnMuY29tcG9zZShbXSldLFxyXG4gICAgICAgICAgICBjcmVhdGVkRGF0ZTogW3sgdmFsdWU6IHRoaXMuY3JlYXRlZERhdGUgPz8gbnVsbCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFZhbGlkYXRvcnMuY29tcG9zZShbXSldLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0Rm9ybUZpZWxkcygpIHtcclxuICAgICAgICB0aGlzLmZpbHRlckZpZWxkcyA9IFtcclxuICAgICAgICAgICAgbmV3IEZvcm1GaWVsZCh7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcImNvbXBhbnlcIixcclxuICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5DaGlwcyxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBGb3JtRmllbGQoe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJicmFuY2hcIixcclxuICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5DaGlwcyxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBGb3JtRmllbGQoe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJjb250cm9sQ29kZVwiLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLkNoaXBzLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IEZvcm1GaWVsZCh7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcImV4dGVybmFsSWRcIixcclxuICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5TdHJpbmcsXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgRm9ybUZpZWxkKHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiZXZlbnRPcmlnaW5cIixcclxuICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5FbnVtLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IEZvcm1GaWVsZCh7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcInN0YXR1c1wiLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLkVudW0sXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgRm9ybUZpZWxkKHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiY3JlYXRlZERhdGVcIixcclxuICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5EYXRlLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICBdO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0R3JpZENvbHVtbnMoKSB7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAgeyBmaWVsZDogXCJjb21wYW55XCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmNvbXBhbnlcIikgfSxcclxuICAgICAgICAgICAgeyBmaWVsZDogXCJicmFuY2hcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMubGFiZWxfYnJhbmNoXCIpIH0sXHJcbiAgICAgICAgICAgIHsgZmllbGQ6IFwiZXZlbnRPcmlnaW5cIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuZXZlbnRfb3JpZ2luX2xhYmVsXCIpIH0sXHJcbiAgICAgICAgICAgIHsgZmllbGQ6IFwiY29udHJvbENvZGVcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuY29udHJvbF9jb2RlXCIpIH0sXHJcbiAgICAgICAgXTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcclxuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcclxuICAgICAgICB0aGlzLndlYnNvY2tldFNlcnZpY2UuZGlzY29ubmVjdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjYWxsV2Vic29ja2V0KCkge1xyXG4gICAgICAgIHRoaXMud2Vic29ja2V0U2VydmljZVxyXG4gICAgICAgICAgICAub25FdmVudDxhbnk+KHtcclxuICAgICAgICAgICAgICAgIGRvbWFpbjogXCJhZ3JvXCIsXHJcbiAgICAgICAgICAgICAgICBzZXJ2aWNlOiBcImFncm9fZXZlbnRzXCIsXHJcbiAgICAgICAgICAgICAgICBwcmltaXRpdmU6IFwicHJvY2Vzc2VkRXZlbnRcIixcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKG1lc3NhZ2UpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGV4dGVybmFsSWQgPSBtZXNzYWdlPy5kYXRhPy5leHRlcm5hbElkO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyRGF0YSA9IHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldFJhd1ZhbHVlKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWV4dGVybmFsSWQgfHwgdGhpcy5leHRlcm5hbElkID09PSBleHRlcm5hbElkIHx8IHRoaXMuZ3JpZERhdGE/LnNvbWUoKGl0ZW06IGFueSkgPT4gaXRlbS5leHRlcm5hbElkID09PSBleHRlcm5hbElkKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlR3JpZCh7IGZpbHRlckRhdGEgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzZWRFdmVudC5lbWl0KG1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy53ZWJzb2NrZXRTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5vbkV2ZW50PGFueT4oe1xyXG4gICAgICAgICAgICAgICAgZG9tYWluOiBcInBsYXRmb3JtXCIsXHJcbiAgICAgICAgICAgICAgICBzZXJ2aWNlOiBcIm5vdGlmaWNhdGlvbnNcIixcclxuICAgICAgICAgICAgICAgIHByaW1pdGl2ZTogXCJ1c2VyTm90aWZpZWRcIixcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyRGF0YSA9IHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldFJhd1ZhbHVlKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUdyaWQoeyBmaWx0ZXJEYXRhIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25TZWFyY2goKSB7XHJcbiAgICAgICAgY29uc3QgZmlsdGVyRGF0YSA9IHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldFJhd1ZhbHVlKCk7XHJcbiAgICAgICAgdGhpcy5ncmlkTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5yZXNldEdyaWQoeyBmaWx0ZXJEYXRhIH0pO1xyXG4gICAgICAgIHRoaXMudXBkYXRlR3JpZCh7IGZpbHRlckRhdGEgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlc2V0R3JpZChsaXN0UGFyYW1zPzogYW55KSB7XHJcbiAgICAgICAgaWYgKGxpc3RQYXJhbXMpIHtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlzdFBhcmFtcyA9IHsgLi4udGhpcy5jdXJyZW50TGlzdFBhcmFtcywgLi4ubGlzdFBhcmFtcyB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnBhZ2UgPSBBR1JPX05VTUJFUlMuWkVSTztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZUdyaWQobGlzdFBhcmFtczogYW55ID0ge30pIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zID0geyAuLi50aGlzLmN1cnJlbnRMaXN0UGFyYW1zLCAuLi5saXN0UGFyYW1zIH07XHJcbiAgICAgICAgY29uc3QgeyBwYWdlLCBzaXplIH0gPSB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zO1xyXG4gICAgICAgIGNvbnN0IG9yZGVyID0gdGhpcy5nZXRTb3J0ZWRGaWVsZHMoKTtcclxuICAgICAgICBjb25zdCBpbnB1dCA9IHsgLi4udGhpcy5nZXRJbnB1dCgpLCBwYWdlLCBzaXplLCBvcmRlciB9O1xyXG5cclxuICAgICAgICB0aGlzLmV2ZW50Q29udHJvbEJvYXJkU2VydmljZS5ldmVudENvbnRyb2xTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5nZXRMaXN0RXZlbnRDb250cm9sV2l0aEZpbHRlcnMoaW5wdXQpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JpZExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGxpc3Q6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkRGF0YSA9IGxpc3QuY29udGVudHM7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdyaWRUb3RhbFJlY29yZHMgPSBsaXN0LnRvdGFsRWxlbWVudHM7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZ3JpZERhdGEgfHwgdGhpcy5ncmlkRGF0YS5sZW5ndGggPD0gQUdST19OVU1CRVJTLlpFUk8pIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyaWRMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzRXZlbnRDb250cm9sSXRlbXMoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBwcm9jZXNzRXZlbnRDb250cm9sSXRlbXMoKSB7XHJcbiAgICAgICAgdGhpcy5ncmlkRGF0YS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNvcnRlZEl0ZW1zID0gaXRlbS5ldmVudENvbnRyb2xJdGVtLnNvcnQoKGE6IEV2ZW50Q29udHJvbEl0ZW0sIGI6IEV2ZW50Q29udHJvbEl0ZW0pID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBhLnNlcXVlbmNlIC0gYi5zZXF1ZW5jZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHN0ZXBzID0gc29ydGVkSXRlbXMubWFwKChkZXRhaWw6IEV2ZW50Q29udHJvbEl0ZW0sIGluZGV4OiBudW1iZXIpID0+IHRoaXMuY3JlYXRlU3RlcChkZXRhaWwsIGl0ZW0sIGluZGV4KSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUluZGV4ID0gdGhpcy5jYWxjdWxhdGVBY3RpdmVJbmRleChzb3J0ZWRJdGVtcyk7XHJcbiAgICAgICAgICAgIGl0ZW0uZ3JvdXBzID0gW3sgc3RlcHMsIGFjdGl2ZUluZGV4IH1dO1xyXG4gICAgICAgICAgICBpdGVtLmFjdGl2ZUluZGV4ID0gYWN0aXZlSW5kZXg7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5ncmlkRGF0YVJlc29sdmVkID0gdGhpcy5ncmlkRGF0YTtcclxuICAgICAgICB0aGlzLmdyaWRMb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVBY3RpdmVJbmRleChkZXRhaWxzOiBFdmVudENvbnRyb2xJdGVtW10pOiBudW1iZXIge1xyXG4gICAgICAgIGNvbnN0IGxhc3RBY3RpdmUgPSBkZXRhaWxzLnJlZHVjZShcclxuICAgICAgICAgICAgKGxhc3RJbmRleCwgZGV0YWlsLCBjdXJyZW50SW5kZXgpID0+IChkZXRhaWwuc3RhdHVzICE9PSBFdmVudFN0YXR1cy5QRU5ESU5HID8gY3VycmVudEluZGV4IDogbGFzdEluZGV4KSxcclxuICAgICAgICAgICAgLTFcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChsYXN0QWN0aXZlICE9PSAtMSAmJiBkZXRhaWxzW2xhc3RBY3RpdmVdLnN0YXR1cyA9PT0gRXZlbnRTdGF0dXMuU1VDQ0VTUykge1xyXG4gICAgICAgICAgICByZXR1cm4gbGFzdEFjdGl2ZSArIDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBsYXN0QWN0aXZlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY3JlYXRlU3RlcChkZXRhaWw6IEV2ZW50Q29udHJvbEl0ZW0sIGl0ZW06IEV2ZW50Q29udHJvbCwgZGV0YWlsSW5kZXg6IG51bWJlcikge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGl0ZW06IGRldGFpbCxcclxuICAgICAgICAgICAgY29udHJvbENvZGU6IGl0ZW0uY29udHJvbENvZGUsXHJcbiAgICAgICAgICAgIGV2ZW50VHlwZTogaXRlbS5ldmVudE9yaWdpbixcclxuICAgICAgICAgICAgbGFiZWw6IHRoaXMuZ2V0RXZlbnRMYWJlbChkZXRhaWwpLFxyXG4gICAgICAgICAgICBzdWJMYWJlbDogdGhpcy5nZXRFdmVudFN1YkxhYmVsKGRldGFpbCksXHJcbiAgICAgICAgICAgIGRpc2FibGVkOiBkZXRhaWwuc3RhdHVzID09PSBFdmVudFN0YXR1cy5QRU5ESU5HICYmIGRldGFpbEluZGV4ICE9PSB0aGlzLmNhbGN1bGF0ZUFjdGl2ZUluZGV4KGl0ZW0uZXZlbnRDb250cm9sSXRlbSksXHJcbiAgICAgICAgICAgIHRvb2x0aXA6IHRoaXMuZ2V0RXZlbnRMYWJlbChkZXRhaWwpLFxyXG4gICAgICAgICAgICBzdGF0ZTogdGhpcy5kZXRlcm1pbmVTdGVwU3RhdGUoZGV0YWlsKSxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZGV0ZXJtaW5lU3RlcFN0YXRlKGRldGFpbDogeyBzdGF0dXM6IEV2ZW50U3RhdHVzIH0pOiBTdGVwU3RhdGUge1xyXG4gICAgICAgIGlmIChkZXRhaWwuc3RhdHVzID09PSBFdmVudFN0YXR1cy5TVUNDRVNTKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBTdGVwU3RhdGUuU3VjY2VzcztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGRldGFpbC5zdGF0dXMgPT09IEV2ZW50U3RhdHVzLkZBSUxFRCkge1xyXG4gICAgICAgICAgICByZXR1cm4gU3RlcFN0YXRlLldhcm5pbmc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBTdGVwU3RhdGUuRGVmYXVsdDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldEV2ZW50TGFiZWwoZGV0YWlsOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGV2ZW50TGFiZWwgPSB0aGlzLmV2ZW50SXRlbS5maW5kKChlKSA9PiBlLnZhbHVlID09PSBkZXRhaWwuZXZlbnRPcGVyYXRpb24pPy5sYWJlbDtcclxuICAgICAgICBpZiAoZXZlbnRMYWJlbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudChldmVudExhYmVsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgbG9jYWxMYWJlbCA9IHRoaXMuZ2V0RXZlbnRPcGVyYXRpb25TdWJMb2NhbExhYmVsKGRldGFpbCk7XHJcbiAgICAgICAgaWYgKGxvY2FsTGFiZWwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGxvY2FsTGFiZWw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBkZXRhaWwuZXZlbnRPcGVyYXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRFdmVudE9wZXJhdGlvblN1YkxvY2FsTGFiZWwoZGV0YWlsOiBFdmVudENvbnRyb2xJdGVtKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICAgICAgY29uc3QgdHJhbmxzYXRpb25LZXkgPSBcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLlwiICsgZGV0YWlsLmV2ZW50T3BlcmF0aW9uO1xyXG4gICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCh0cmFubHNhdGlvbktleSk7XHJcbiAgICAgICAgaWYgKHRyYW5zbGF0aW9uICE9PSB0cmFubHNhdGlvbktleSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJhbnNsYXRpb247XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0RXZlbnRTdWJMYWJlbChkZXRhaWw6IEV2ZW50Q29udHJvbEl0ZW0pOiBzdHJpbmcgfCBudWxsIHtcclxuICAgICAgICBjb25zdCBmaWVsZCA9IHRoaXMuZXZlbnRJdGVtLmZpbmQoKGUpID0+IGUudmFsdWUgPT09IGRldGFpbC5ldmVudE9wZXJhdGlvbik/LnN1YkxhYmVsRmllbGQ7XHJcbiAgICAgICAgaWYgKCFmaWVsZCB8fCAhZGV0YWlsLmlucHV0KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgcGF0aCA9IHRoaXMuaW5wdXRGaWVsZHNQYXRoLmZpbmQoKGYpID0+IGYuZmllbGQgPT09IGZpZWxkICYmICghZi5vcGVyYXRpb24gfHwgZi5vcGVyYXRpb24gPT09IGRldGFpbC5ldmVudE9wZXJhdGlvbikpPy5wYXRoO1xyXG4gICAgICAgIHZhciBmdWxsUGF0aCA9IHBhdGggPyBgJHtwYXRofS4ke2ZpZWxkfWAgOiBmaWVsZDtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWVGaWVsZEpzb25Gcm9tUGF0aChkZXRhaWwuaW5wdXQsIGZ1bGxQYXRoKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRGaWVsZFZhbHVlKGZpZWxkLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRWYWx1ZUZpZWxkSnNvbkZyb21QYXRoKGpzb246IHN0cmluZywgcGF0aDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCBwYXJzZWRKc29uID0gSlNPTi5wYXJzZShqc29uKTtcclxuICAgICAgICAgICAgY29uc3Qga2V5cyA9IHBhdGguc3BsaXQoXCIuXCIpO1xyXG4gICAgICAgICAgICByZXR1cm4ga2V5cy5yZWR1Y2UoKGFjYywga2V5KSA9PiBhY2MgJiYgYWNjW2tleV0sIHBhcnNlZEpzb24pO1xyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuaW5mbyhcIkVycm8gYW8gYWNlc3NhciBvIG9iamV0byBwZWxvIHBhdGg6IFwiICsgcGF0aCwgZXJyb3IpO1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBmb3JtYXRGaWVsZFZhbHVlKGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICBzd2l0Y2ggKGZpZWxkKSB7XHJcbiAgICAgICAgICAgIGNhc2UgSW5wdXRGaWVsZHMuQUdST19JTlZPSUNFX1RZUEU6XHJcbiAgICAgICAgICAgIGNhc2UgSW5wdXRGaWVsZHMuSU5WT0lDRV9UWVBFOlxyXG4gICAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSB0aGlzLmludm9pY2VUeXBlVHJhbnNsYXRlLmZpbmQoKGUpID0+IGUudmFsdWUgPT09IHZhbHVlKT8ubGFiZWw7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbGFiZWwgPyB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGxhYmVsKSA6IHZhbHVlO1xyXG4gICAgICAgICAgICBjYXNlIElucHV0RmllbGRzLklOVk9JQ0VfTlVNQkVSOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlID8gXCJuwrAgXCIgKyB2YWx1ZSA6IHZhbHVlO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFNvcnRlZEZpZWxkcygpOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCBvcmRlciA9IFwiXCI7XHJcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudExpc3RQYXJhbXMuc29ydD8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBvcmRlciA9IHRoaXMuY3VycmVudExpc3RQYXJhbXMuc29ydFxyXG4gICAgICAgICAgICAgICAgLm1hcCgoc29ydEl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHt0aGlzLmdldEZpZWxkTmFtZUZvclNvcnRSZXF1ZXN0KHNvcnRJdGVtLmZpZWxkKX0gJHtzb3J0SXRlbS5vcmRlciA9PT0gQUdST19OVU1CRVJTLk9ORSA/IFwiYXNjXCIgOiBcImRlc2NcIn1gO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIC5qb2luKFwiLCBcIik7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnN0YW5kYWxvbmUpIHtcclxuICAgICAgICAgICAgb3JkZXIgPSBcImNyZWF0ZWREYXRlIGFzY1wiO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIG9yZGVyID0gXCJsYXN0TW9kaWZpZWREYXRlIGRlc2NcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG9yZGVyO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0SW5wdXQoKTogTGlzdEV2ZW50Q29udHJvbFdpdGhGaWx0ZXJzSW5wdXREdG8ge1xyXG4gICAgICAgIGNvbnN0IHsgZmlsdGVyRGF0YSB9ID0gdGhpcy5jdXJyZW50TGlzdFBhcmFtcztcclxuICAgICAgICBjb25zdCBjb250cm9sQ29kZSA9IGZpbHRlckRhdGFbXCJjb250cm9sQ29kZVwiXSAmJiBBcnJheS5pc0FycmF5KGZpbHRlckRhdGFbXCJjb250cm9sQ29kZVwiXSkgPyBmaWx0ZXJEYXRhW1wiY29udHJvbENvZGVcIl0gOiBudWxsO1xyXG4gICAgICAgIGNvbnN0IGZpbHRlciA9IHtcclxuICAgICAgICAgICAgY29tcGFueUlkOiBmaWx0ZXJEYXRhW1wiY29tcGFueVwiXT8uaWQgPz8gbnVsbCxcclxuICAgICAgICAgICAgYnJhbmNoSWQ6IGZpbHRlckRhdGFbXCJicmFuY2hcIl0/LmlkID8/IG51bGwsXHJcbiAgICAgICAgICAgIGNvbnRyb2xDb2RlOiBjb250cm9sQ29kZSA/IGNvbnRyb2xDb2RlLm1hcCgoY29kZTogc3RyaW5nKSA9PiBwYXJzZUludChjb2RlKSkgOiBudWxsLFxyXG4gICAgICAgICAgICBleHRlcm5hbElkOiBmaWx0ZXJEYXRhW1wiZXh0ZXJuYWxJZFwiXSA/PyBudWxsLFxyXG4gICAgICAgICAgICBldmVudE9yaWdpbjogZmlsdGVyRGF0YVtcImV2ZW50T3JpZ2luXCJdID8/IG51bGwsXHJcbiAgICAgICAgICAgIGV2ZW50U3RhdHVzOiBmaWx0ZXJEYXRhW1wic3RhdHVzXCJdID8/IG51bGwsXHJcbiAgICAgICAgICAgIGNyZWF0ZWREYXRlU3RhcnQ6IGZpbHRlckRhdGFbXCJjcmVhdGVkRGF0ZVwiXSA/IHRoaXMuZ2V0U3RhcnREYXRlKGZpbHRlckRhdGFbXCJjcmVhdGVkRGF0ZVwiXSkgOiBudWxsLFxyXG4gICAgICAgICAgICBjcmVhdGVkRGF0ZUVuZDogZmlsdGVyRGF0YVtcImNyZWF0ZWREYXRlXCJdID8gdGhpcy5nZXRFbmREYXRlKGZpbHRlckRhdGFbXCJjcmVhdGVkRGF0ZVwiXSkgOiBudWxsLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuIGZpbHRlcjtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldEZpZWxkTmFtZUZvclNvcnRSZXF1ZXN0KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgc3dpdGNoIChuYW1lKSB7XHJcbiAgICAgICAgICAgIGNhc2UgXCJjb21wYW55XCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJjb21wYW55Lm5vbUVtcFwiO1xyXG4gICAgICAgICAgICBjYXNlIFwiYnJhbmNoXCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJicmFuY2gubm9tRmlsXCI7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbmFtZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRFbmREYXRlKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGVuZERhdGUgPSBtb21lbnQodmFsdWUpLmVuZE9mKFwiZGF5XCIpLmZvcm1hdChcIllZWVktTU0tRERUSEg6bW06c3NcIikgKyBcIlpcIjtcclxuICAgICAgICByZXR1cm4gZW5kRGF0ZTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgZ2V0U3RhcnREYXRlKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IG1vbWVudCh2YWx1ZSkuc3RhcnRPZihcImRheVwiKS5mb3JtYXQoXCJZWVlZLU1NLUREVEhIOm1tOnNzXCIpICsgXCJaXCI7XHJcbiAgICAgICAgcmV0dXJuIHN0YXJ0RGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25HcmlkQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgICAgICBjb25zdCBzaXplID0gZXZlbnQ/LnJvd3M7XHJcbiAgICAgICAgY29uc3QgcGFnZSA9IGV2ZW50Py5maXJzdCAvIHNpemU7XHJcbiAgICAgICAgY29uc3Qgc29ydCA9IGV2ZW50Lm11bHRpU29ydE1ldGE7XHJcbiAgICAgICAgdGhpcy5ncmlkTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgaWYgKHNpemUgIT09IEFHUk9fTlVNQkVSUy5URU4gfHwgcGFnZSAhPT0gQUdST19OVU1CRVJTLlpFUk8gfHwgKHNvcnQgJiYgc29ydC5sZW5ndGggPiBBR1JPX05VTUJFUlMuWkVSTykpIHtcclxuICAgICAgICAgICAgdGhpcy5wYWdpbmF0b3JTdG9yYWdlU2VydmljZS5zdG9yZVBhZ2luYXRvcihcIkV2ZW50Q29udHJvbEJvYXJkUGFnaW5hdG9yXCIsIHsgcGFnZSwgc2l6ZSwgc29ydCB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZUdyaWQoeyBwYWdlLCBzaXplLCBzb3J0IH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRQYWdlU2l6ZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5zaXplO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRSb3dJbmRleCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5wYWdlICogdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5zaXplO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRTb3J0RmllbGQoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNvcnQgfHwgdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5zb3J0Lmxlbmd0aCA8PSBBR1JPX05VTUJFUlMuWkVSTykge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5ncmlkQ29sdW1uc1tBR1JPX05VTUJFUlMuWkVST10uZmllbGQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNvcnRbQUdST19OVU1CRVJTLlpFUk9dLmZpZWxkO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRTb3J0T3JkZXIoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNvcnQgfHwgdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5zb3J0Lmxlbmd0aCA8PSBBR1JPX05VTUJFUlMuWkVSTykge1xyXG4gICAgICAgICAgICByZXR1cm4gQUdST19OVU1CRVJTLk9ORTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNvcnRbQUdST19OVU1CRVJTLlpFUk9dLm9yZGVyO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRFcnJvck1lc3NhZ2VzKCkge1xyXG4gICAgICAgIGNvbnN0IHRyYW5zbGF0ZWRFcnJvck1lc3NhZ2VzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gTG9va3VwRXJyb3JNZXNzYWdlcykge1xyXG4gICAgICAgICAgICBpZiAoTG9va3VwRXJyb3JNZXNzYWdlcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZS5nZXQoTG9va3VwRXJyb3JNZXNzYWdlc1trZXldKS5zdWJzY3JpYmUoKHJlczogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlZEVycm9yTWVzc2FnZXNba2V5XSA9IHJlcztcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cmFuc2xhdGVkRXJyb3JNZXNzYWdlcztcclxuICAgIH1cclxuXHJcbiAgICBnZXRQcm9kdWNlckludm9pY2VJZEZyb21QYXJhbXMocGFyYW06IGFueSkge1xyXG4gICAgICAgIGlmIChwYXJhbT8ucHJvZHVjZXJJbnZvaWNlSWRzICYmIHBhcmFtPy5wcm9kdWNlckludm9pY2VJZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gcGFyYW0/LnByb2R1Y2VySW52b2ljZUlkc1swXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChwYXJhbT8uaW52b2ljZT8uZ2VuZXJhbERhdGE/LnRyYW5zYWN0aW9uYWxJZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gcGFyYW0/Lmludm9pY2U/LmdlbmVyYWxEYXRhPy50cmFuc2FjdGlvbmFsSWQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocGFyYW0/LnByb2R1Y2VySW52b2ljZUlkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBwYXJhbT8ucHJvZHVjZXJJbnZvaWNlSWQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocGFyYW0/LmV4dGVybmFsSWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHBhcmFtPy5leHRlcm5hbElkO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBnZXRQcm9kdWNlckJhbGFuY2VFbnRyeUNvbnRyb2xJZEZyb21QYXJhbXMocGFyYW06IGFueSkge1xyXG4gICAgICAgIGNvbnN0IHsgcHJvZHVjZXJCYWxhbmNlRW50cnlDb250cm9sSWQgfSA9IHBhcmFtO1xyXG4gICAgICAgIHJldHVybiBwcm9kdWNlckJhbGFuY2VFbnRyeUNvbnRyb2xJZCA/IHByb2R1Y2VyQmFsYW5jZUVudHJ5Q29udHJvbElkIDogbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RlcFNlbGVjdGVkKGV2ZW50OiBhbnkpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkU3RlcCA9IGV2ZW50LnN0ZXA7XHJcbiAgICAgICAgdGhpcy5hcHBseVNpZGViYXJUaXRsZShcIlwiKTtcclxuXHJcbiAgICAgICAgc3dpdGNoICh0aGlzLnNlbGVjdGVkU3RlcC5ldmVudFR5cGUpIHtcclxuICAgICAgICAgICAgY2FzZSBFdmVudE9yaWdpbi5CQUxBTkNFX0VOVFJZX0NPTlRST0w6XHJcbiAgICAgICAgICAgIGNhc2UgRXZlbnRPcmlnaW4uVElDS0VUOlxyXG4gICAgICAgICAgICBjYXNlIEV2ZW50T3JpZ2luLklOVk9JQ0U6XHJcbiAgICAgICAgICAgIGNhc2UgRXZlbnRPcmlnaW4uQ1JFQVRFX0lOVk9JQ0U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNpZGViYXJMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJhbSA9IEpTT04ucGFyc2UodGhpcy5zZWxlY3RlZFN0ZXAuaXRlbS5pbnB1dCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJvZHVjZXJJbnZvaWNlSWQgPSB0aGlzLmdldFByb2R1Y2VySW52b2ljZUlkRnJvbVBhcmFtcyhwYXJhbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGZpbHRlclF1ZXJ5ID0gXCJcIjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFwcm9kdWNlckludm9pY2VJZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwcm9kdWNlckJhbGFuY2VFbnRyeUNvbnRyb2xJZCA9IHRoaXMuZ2V0UHJvZHVjZXJCYWxhbmNlRW50cnlDb250cm9sSWRGcm9tUGFyYW1zKHBhcmFtKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcHJvZHVjZXJCYWxhbmNlRW50cnlDb250cm9sSWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2lkZWJhckxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyUXVlcnkgPSBgcHJvZHVjZXJCYWxhbmNlRW50cnlDb250cm9sLmlkIGVxICcke3Byb2R1Y2VyQmFsYW5jZUVudHJ5Q29udHJvbElkfSdgO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclF1ZXJ5ID0gYGlkIGVxICcke3Byb2R1Y2VySW52b2ljZUlkfSdgO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ldmVudENvbnRyb2xCb2FyZFNlcnZpY2UucHJvZHVjZXJJbnZvaWNlU2VydmljZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAubGlzdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5RmllbGRzOiBbXCIqXCIsIFwicHJvZHVjZXJCYWxhbmNlRW50cnlDb250cm9sLipcIiwgXCJwcm9kdWNlckJhbGFuY2VFbnRyeUNvbnRyb2wucHJvZHVjZXIuKlwiXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclF1ZXJ5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZTogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9kdWNlckludm9pY2UgPSByZXN1bHQ/LmNvbnRlbnRzWzBdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjZXJJbnZvaWNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2lkZWJhckxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGx5U2lkZWJhclRpdGxlKHRoaXMuZ2V0UHJvZHVjZXJJbnZvaWNlTnVtYmVyQW5kU2VyaWUoKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2lkZWJhckxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIEV2ZW50T3JpZ2luLkZJWEFUSU9OOlxyXG4gICAgICAgICAgICBjYXNlIEV2ZW50T3JpZ2luLkNBTkNFTF9GSVhBVElPTjpcclxuICAgICAgICAgICAgY2FzZSBFdmVudE9yaWdpbi5DSEFOR0VfUkVRVUVTVDpcclxuICAgICAgICAgICAgY2FzZSBFdmVudE9yaWdpbi5UUkFOU0ZFUjpcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zaG93UmVwcm9jZXNzQnV0dG9uID0gZXZlbnQuc3RlcC5zdGF0ZSA9PT0gU3RlcFN0YXRlLldhcm5pbmc7XHJcblxyXG4gICAgICAgIHRoaXMuc2hvd1NpZGViYXIgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYXBwbHlTaWRlYmFyVGl0bGUodGl0bGU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuc2lkZWJhclRpdGxlID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmV2ZW50X3NpZGViYXJfdGl0bGVcIiwgeyBldmVudE51bWJlcjogdGl0bGUgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRQcm9kdWNlckludm9pY2VOdW1iZXJBbmRTZXJpZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0aGlzLnByb2R1Y2VySW52b2ljZT8ubnVtYmVyICYmIHRoaXMucHJvZHVjZXJJbnZvaWNlPy5zZXJpZXMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGAke3RoaXMucHJvZHVjZXJJbnZvaWNlLm51bWJlcn0gLSAke3RoaXMucHJvZHVjZXJJbnZvaWNlLnNlcmllc31gO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVwcm9jZXNzRXZlbnQoKSB7XHJcbiAgICAgICAgY29uc3QgcmVwcm9jZXNzRXZlbnRPYmo6IFJlcHJvY2Vzc0ZhaWxlZEV2ZW50ID0ge1xyXG4gICAgICAgICAgICBldmVudENvbnRyb2xJdGVtSWQ6IHRoaXMuc2VsZWN0ZWRTdGVwLml0ZW0uaWQsXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmV2ZW50Q29udHJvbEJvYXJkU2VydmljZS5ldmVudENvbnRyb2xJdGVtU2VydmljZVxyXG4gICAgICAgICAgICAucmVwcm9jZXNzRmFpbGVkRXZlbnQocmVwcm9jZXNzRXZlbnRPYmopXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkTWVzc2FnZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJpbmZvXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMucmVwcm9jZXNzaW5nX2V2ZW50X21lc3NhZ2VfdGl0bGVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5yZXByb2Nlc3NpbmdfZXZlbnRfbWVzc2FnZV9kZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRNZXNzYWdlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcImVycm9yXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuZXJyb3JfcmVwcm9jZXNzaW5nX2V2ZW50X21lc3NhZ2VfdGl0bGVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5lcnJvcl9yZXByb2Nlc3NpbmdfZXZlbnRfbWVzc2FnZV9kZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGFkZE1lc3NhZ2Uoc2V2ZXJpdHk6IHN0cmluZywgc3VtbWFyeTogc3RyaW5nLCBkZXRhaWw6IHN0cmluZywgbGlmZSA9IEFHUk9fTlVNQkVSUy5GSVZFX1NFQ09ORFMpIHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XHJcbiAgICAgICAgICAgIHNldmVyaXR5LFxyXG4gICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHN1bW1hcnkpLFxyXG4gICAgICAgICAgICBkZXRhaWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoZGV0YWlsKSxcclxuICAgICAgICAgICAgbGlmZSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb3Blbk1vZGFsKCkge1xyXG4gICAgICAgIHRoaXMuZGlzcGxheU1vZGFsID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNob3dTaWRlYmFyID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIG9wZW5DYW5jZWxNb2RhbCgpIHtcclxuICAgICAgICBhd2FpdCB0aGlzLmNhbmNlbEV2ZW50RGlhbG9nQ29uZmlnLmJlZm9yZU9wZW4/LigpO1xyXG4gICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKENhbmNlbEV2ZW50RGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgIGhlYWRlcjogdGhpcy5jYW5jZWxFdmVudERpYWxvZ0NvbmZpZz8uaGVhZGVyLFxyXG4gICAgICAgICAgICBjb250ZW50U3R5bGU6IHsgaGVpZ2h0OiBcIjEwMCVcIiB9LFxyXG4gICAgICAgICAgICBjbG9zYWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgY2xvc2VPbkVzY2FwZTogZmFsc2UsXHJcbiAgICAgICAgICAgIGRhdGE6IHsgY2FuY2VsRXZlbnREaWFsb2dDb25maWc6IHRoaXMuY2FuY2VsRXZlbnREaWFsb2dDb25maWcgfSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY29uZmlybU1vZGFsKCkge1xyXG4gICAgICAgIHRoaXMucmVwcm9jZXNzRXZlbnQoKTtcclxuICAgICAgICB0aGlzLmRpc3BsYXlNb2RhbCA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjYW5jZWxNb2RhbCgpIHtcclxuICAgICAgICB0aGlzLmRpc3BsYXlNb2RhbCA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjbG9zZVNpZGViYXIoKSB7XHJcbiAgICAgICAgdGhpcy5zaG93U2lkZWJhciA9IGZhbHNlO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,3 +1,3 @@
1
1
  export { EventStepsComponent } from "./event-steps.component";
2
2
  export { EventStepsModule } from "./event-steps.module";
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZXZlbnQtc3RlcHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBFdmVudFN0ZXBzQ29tcG9uZW50IH0gZnJvbSBcIi4vZXZlbnQtc3RlcHMuY29tcG9uZW50XCI7XHJcbmV4cG9ydCB7IEV2ZW50U3RlcHNNb2R1bGUgfSBmcm9tIFwiLi9ldmVudC1zdGVwcy5tb2R1bGVcIjtcclxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZXZlbnQtc3RlcHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBFdmVudFN0ZXBzQ29tcG9uZW50IH0gZnJvbSBcIi4vZXZlbnQtc3RlcHMuY29tcG9uZW50XCI7XHJcblxyXG5leHBvcnQgeyBFdmVudFN0ZXBzTW9kdWxlIH0gZnJvbSBcIi4vZXZlbnQtc3RlcHMubW9kdWxlXCI7XHJcbiJdfQ==