@decaf-ts/integrations 0.3.4 → 0.3.5

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 (99) hide show
  1. package/dist/integrations.cjs +3 -3
  2. package/dist/integrations.js +3 -3
  3. package/lib/cjs/graph/execution/CodeSandboxEvaluator.cjs +4 -0
  4. package/lib/cjs/graph/execution/GraphExecutionEngine.cjs +3 -2
  5. package/lib/cjs/graph/execution/SwitchGraphNodeExecutor.cjs +95 -0
  6. package/lib/cjs/graph/execution/index.cjs +4 -2
  7. package/lib/cjs/graph/index.cjs +7 -2
  8. package/lib/cjs/graph/loops/ConditionExpressionEvaluator.cjs +87 -0
  9. package/lib/cjs/graph/loops/GraphConditionEvaluator.cjs +25 -3
  10. package/lib/cjs/graph/loops/index.cjs +3 -2
  11. package/lib/cjs/graph/nodes/agent.cjs +110 -0
  12. package/lib/cjs/graph/nodes/category-styles.cjs +38 -0
  13. package/lib/cjs/graph/nodes/flow-control.cjs +436 -0
  14. package/lib/cjs/graph/nodes/index.cjs +34 -0
  15. package/lib/cjs/graph/nodes/triggers.cjs +250 -0
  16. package/lib/cjs/graph/types.cjs +2 -2
  17. package/lib/cjs/index.cjs +3 -3
  18. package/lib/cjs/keycloak/services/KeycloakAuthService.cjs +5 -4
  19. package/lib/cjs/keycloak/services/KeycloakClientService.cjs +5 -4
  20. package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +5 -4
  21. package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +8 -7
  22. package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +5 -4
  23. package/lib/cjs/keycloak/services/KeycloakService.cjs +5 -3
  24. package/lib/cjs/keycloak/services/KeycloakUserService.cjs +5 -4
  25. package/lib/cjs/keycloak/services/runtime.cjs +20 -0
  26. package/lib/cjs/kibana/services/KibanaAuthService.cjs +6 -5
  27. package/lib/cjs/kibana/services/KibanaDashboardService.cjs +9 -8
  28. package/lib/cjs/kibana/services/KibanaDataViewService.cjs +7 -6
  29. package/lib/cjs/kibana/services/KibanaRoleService.cjs +5 -4
  30. package/lib/cjs/kibana/services/KibanaService.cjs +4 -2
  31. package/lib/cjs/kibana/services/KibanaSpaceService.cjs +5 -4
  32. package/lib/cjs/kibana/services/KibanaUserService.cjs +5 -4
  33. package/lib/cjs/kibana/services/runtime.cjs +20 -0
  34. package/lib/esm/graph/execution/CodeSandboxEvaluator.js +18 -0
  35. package/lib/esm/graph/execution/GraphExecutionEngine.js +2 -1
  36. package/lib/esm/graph/execution/SwitchGraphNodeExecutor.js +90 -0
  37. package/lib/esm/graph/execution/index.js +3 -1
  38. package/lib/esm/graph/index.js +6 -1
  39. package/lib/esm/graph/loops/ConditionExpressionEvaluator.js +82 -0
  40. package/lib/esm/graph/loops/GraphConditionEvaluator.js +24 -2
  41. package/lib/esm/graph/loops/index.js +2 -1
  42. package/lib/esm/graph/nodes/agent.js +101 -0
  43. package/lib/esm/graph/nodes/category-styles.js +34 -0
  44. package/lib/esm/graph/nodes/flow-control.js +427 -0
  45. package/lib/esm/graph/nodes/index.js +17 -0
  46. package/lib/esm/graph/nodes/triggers.js +241 -0
  47. package/lib/esm/graph/types.js +1 -1
  48. package/lib/esm/index.js +3 -3
  49. package/lib/esm/keycloak/services/KeycloakAuthService.js +4 -3
  50. package/lib/esm/keycloak/services/KeycloakClientService.js +4 -3
  51. package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +4 -3
  52. package/lib/esm/keycloak/services/KeycloakRealmService.js +4 -3
  53. package/lib/esm/keycloak/services/KeycloakRoleService.js +4 -3
  54. package/lib/esm/keycloak/services/KeycloakService.js +4 -2
  55. package/lib/esm/keycloak/services/KeycloakUserService.js +4 -3
  56. package/lib/esm/keycloak/services/runtime.js +15 -0
  57. package/lib/esm/kibana/services/KibanaAuthService.js +5 -4
  58. package/lib/esm/kibana/services/KibanaDashboardService.js +5 -4
  59. package/lib/esm/kibana/services/KibanaDataViewService.js +4 -3
  60. package/lib/esm/kibana/services/KibanaRoleService.js +4 -3
  61. package/lib/esm/kibana/services/KibanaService.js +3 -1
  62. package/lib/esm/kibana/services/KibanaSpaceService.js +4 -3
  63. package/lib/esm/kibana/services/KibanaUserService.js +4 -3
  64. package/lib/esm/kibana/services/runtime.js +15 -0
  65. package/lib/types/graph/execution/CodeSandboxEvaluator.d.cts +53 -0
  66. package/lib/types/graph/execution/CodeSandboxEvaluator.d.mts +53 -0
  67. package/lib/types/graph/execution/GraphExecutionEngine.d.cts +10 -0
  68. package/lib/types/graph/execution/GraphExecutionEngine.d.mts +10 -0
  69. package/lib/types/graph/execution/SwitchGraphNodeExecutor.d.cts +42 -0
  70. package/lib/types/graph/execution/SwitchGraphNodeExecutor.d.mts +42 -0
  71. package/lib/types/graph/execution/index.d.cts +2 -0
  72. package/lib/types/graph/execution/index.d.mts +2 -0
  73. package/lib/types/graph/index.d.cts +4 -0
  74. package/lib/types/graph/index.d.mts +4 -0
  75. package/lib/types/graph/loops/ConditionExpressionEvaluator.d.cts +36 -0
  76. package/lib/types/graph/loops/ConditionExpressionEvaluator.d.mts +36 -0
  77. package/lib/types/graph/loops/GraphConditionEvaluator.d.cts +20 -4
  78. package/lib/types/graph/loops/GraphConditionEvaluator.d.mts +20 -4
  79. package/lib/types/graph/loops/index.d.cts +1 -0
  80. package/lib/types/graph/loops/index.d.mts +1 -0
  81. package/lib/types/graph/nodes/agent.d.cts +44 -0
  82. package/lib/types/graph/nodes/agent.d.mts +44 -0
  83. package/lib/types/graph/nodes/category-styles.d.cts +8 -0
  84. package/lib/types/graph/nodes/category-styles.d.mts +8 -0
  85. package/lib/types/graph/nodes/flow-control.d.cts +104 -0
  86. package/lib/types/graph/nodes/flow-control.d.mts +104 -0
  87. package/lib/types/graph/nodes/index.d.cts +16 -0
  88. package/lib/types/graph/nodes/index.d.mts +16 -0
  89. package/lib/types/graph/nodes/triggers.d.cts +53 -0
  90. package/lib/types/graph/nodes/triggers.d.mts +53 -0
  91. package/lib/types/graph/types.d.cts +102 -0
  92. package/lib/types/graph/types.d.mts +102 -0
  93. package/lib/types/index.d.cts +2 -2
  94. package/lib/types/index.d.mts +2 -2
  95. package/lib/types/keycloak/services/runtime.d.cts +6 -0
  96. package/lib/types/keycloak/services/runtime.d.mts +6 -0
  97. package/lib/types/kibana/services/runtime.d.cts +6 -0
  98. package/lib/types/kibana/services/runtime.d.mts +6 -0
  99. package/package.json +1 -1
@@ -20,9 +20,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
20
20
  * @description Re-exports the condition evaluator, loop execution context, and foreach/while/until executors.
21
21
  */
22
22
  __exportStar(require("./GraphConditionEvaluator.cjs"), exports);
23
+ __exportStar(require("./ConditionExpressionEvaluator.cjs"), exports);
23
24
  __exportStar(require("./GraphLoopExecutionContext.cjs"), exports);
24
25
  __exportStar(require("./ForeachGraphNodeExecutor.cjs"), exports);
25
26
  __exportStar(require("./WhileGraphNodeExecutor.cjs"), exports);
26
27
  __exportStar(require("./UntilGraphNodeExecutor.cjs"), exports);
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ3JhcGgvbG9vcHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILDZDQUEwQztBQUMxQywrQ0FBNEM7QUFDNUMsOENBQTJDO0FBQzNDLDRDQUF5QztBQUN6Qyw0Q0FBeUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL2dyYXBoL2xvb3BzXG4gKiBAc3VtbWFyeSBTdHJ1Y3R1cmVkIGxvb3AgZXhlY3V0b3JzLlxuICogQGRlc2NyaXB0aW9uIFJlLWV4cG9ydHMgdGhlIGNvbmRpdGlvbiBldmFsdWF0b3IsIGxvb3AgZXhlY3V0aW9uIGNvbnRleHQsIGFuZCBmb3JlYWNoL3doaWxlL3VudGlsIGV4ZWN1dG9ycy5cbiAqL1xuZXhwb3J0ICogZnJvbSBcIi4vR3JhcGhDb25kaXRpb25FdmFsdWF0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0dyYXBoTG9vcEV4ZWN1dGlvbkNvbnRleHRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0ZvcmVhY2hHcmFwaE5vZGVFeGVjdXRvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vV2hpbGVHcmFwaE5vZGVFeGVjdXRvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vVW50aWxHcmFwaE5vZGVFeGVjdXRvclwiO1xuIl19
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7R0FJRztBQUNILCtEQUE2QztBQUM3QyxpRUFBK0M7QUFDL0MsZ0VBQThDO0FBQzlDLDhEQUE0QztBQUM1Qyw4REFBNEM7QUFDNUMsczVCQUFzNUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL2dyYXBoL2xvb3BzXG4gKiBAc3VtbWFyeSBTdHJ1Y3R1cmVkIGxvb3AgZXhlY3V0b3JzLlxuICogQGRlc2NyaXB0aW9uIFJlLWV4cG9ydHMgdGhlIGNvbmRpdGlvbiBldmFsdWF0b3IsIGxvb3AgZXhlY3V0aW9uIGNvbnRleHQsIGFuZCBmb3JlYWNoL3doaWxlL3VudGlsIGV4ZWN1dG9ycy5cbiAqL1xuZXhwb3J0ICogZnJvbSBcIi4vR3JhcGhDb25kaXRpb25FdmFsdWF0b3IuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0dyYXBoTG9vcEV4ZWN1dGlvbkNvbnRleHQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0ZvcmVhY2hHcmFwaE5vZGVFeGVjdXRvci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vV2hpbGVHcmFwaE5vZGVFeGVjdXRvci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vVW50aWxHcmFwaE5vZGVFeGVjdXRvci5qc1wiO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYVc1a1pYZ3Vhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTh1TGk4dUxpOXpjbU12WjNKaGNHZ3ZiRzl2Y0hNdmFXNWtaWGd1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRTdPenM3UjBGSlJ6dEJRVU5JTERaRFFVRXdRenRCUVVNeFF5d3JRMEZCTkVNN1FVRkROVU1zT0VOQlFUSkRPMEZCUXpORExEUkRRVUY1UXp0QlFVTjZReXcwUTBGQmVVTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUl2S2lwY2JpQXFJRUJ0YjJSMWJHVWdhVzUwWldkeVlYUnBiMjV6TDJkeVlYQm9MMnh2YjNCelhHNGdLaUJBYzNWdGJXRnllU0JUZEhKMVkzUjFjbVZrSUd4dmIzQWdaWGhsWTNWMGIzSnpMbHh1SUNvZ1FHUmxjMk55YVhCMGFXOXVJRkpsTFdWNGNHOXlkSE1nZEdobElHTnZibVJwZEdsdmJpQmxkbUZzZFdGMGIzSXNJR3h2YjNBZ1pYaGxZM1YwYVc5dUlHTnZiblJsZUhRc0lHRnVaQ0JtYjNKbFlXTm9MM2RvYVd4bEwzVnVkR2xzSUdWNFpXTjFkRzl5Y3k1Y2JpQXFMMXh1Wlhod2IzSjBJQ29nWm5KdmJTQmNJaTR2UjNKaGNHaERiMjVrYVhScGIyNUZkbUZzZFdGMGIzSmNJanRjYm1WNGNHOXlkQ0FxSUdaeWIyMGdYQ0l1TDBkeVlYQm9URzl2Y0VWNFpXTjFkR2x2YmtOdmJuUmxlSFJjSWp0Y2JtVjRjRzl5ZENBcUlHWnliMjBnWENJdUwwWnZjbVZoWTJoSGNtRndhRTV2WkdWRmVHVmpkWFJ2Y2x3aU8xeHVaWGh3YjNKMElDb2dabkp2YlNCY0lpNHZWMmhwYkdWSGNtRndhRTV2WkdWRmVHVmpkWFJ2Y2x3aU8xeHVaWGh3YjNKMElDb2dabkp2YlNCY0lpNHZWVzUwYVd4SGNtRndhRTV2WkdWRmVHVmpkWFJ2Y2x3aU8xeHVJbDE5Il19
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ3JhcGgvbG9vcHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILDZDQUEwQztBQUMxQyxrREFBK0M7QUFDL0MsK0NBQTRDO0FBQzVDLDhDQUEyQztBQUMzQyw0Q0FBeUM7QUFDekMsNENBQXlDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9ncmFwaC9sb29wc1xuICogQHN1bW1hcnkgU3RydWN0dXJlZCBsb29wIGV4ZWN1dG9ycy5cbiAqIEBkZXNjcmlwdGlvbiBSZS1leHBvcnRzIHRoZSBjb25kaXRpb24gZXZhbHVhdG9yLCBsb29wIGV4ZWN1dGlvbiBjb250ZXh0LCBhbmQgZm9yZWFjaC93aGlsZS91bnRpbCBleGVjdXRvcnMuXG4gKi9cbmV4cG9ydCAqIGZyb20gXCIuL0dyYXBoQ29uZGl0aW9uRXZhbHVhdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9Db25kaXRpb25FeHByZXNzaW9uRXZhbHVhdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9HcmFwaExvb3BFeGVjdXRpb25Db250ZXh0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9Gb3JlYWNoR3JhcGhOb2RlRXhlY3V0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1doaWxlR3JhcGhOb2RlRXhlY3V0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1VudGlsR3JhcGhOb2RlRXhlY3V0b3JcIjtcbiJdfQ==
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7R0FJRztBQUNILCtEQUE2QztBQUM3QyxvRUFBa0Q7QUFDbEQsaUVBQStDO0FBQy9DLGdFQUE4QztBQUM5Qyw4REFBNEM7QUFDNUMsOERBQTRDO0FBQzVDLDgrQkFBOCtCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9ncmFwaC9sb29wc1xuICogQHN1bW1hcnkgU3RydWN0dXJlZCBsb29wIGV4ZWN1dG9ycy5cbiAqIEBkZXNjcmlwdGlvbiBSZS1leHBvcnRzIHRoZSBjb25kaXRpb24gZXZhbHVhdG9yLCBsb29wIGV4ZWN1dGlvbiBjb250ZXh0LCBhbmQgZm9yZWFjaC93aGlsZS91bnRpbCBleGVjdXRvcnMuXG4gKi9cbmV4cG9ydCAqIGZyb20gXCIuL0dyYXBoQ29uZGl0aW9uRXZhbHVhdG9yLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9Db25kaXRpb25FeHByZXNzaW9uRXZhbHVhdG9yLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9HcmFwaExvb3BFeGVjdXRpb25Db250ZXh0LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9Gb3JlYWNoR3JhcGhOb2RlRXhlY3V0b3IuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1doaWxlR3JhcGhOb2RlRXhlY3V0b3IuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1VudGlsR3JhcGhOb2RlRXhlY3V0b3IuanNcIjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWFXNWtaWGd1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk4dUxpOHVMaTl6Y21NdlozSmhjR2d2Ykc5dmNITXZhVzVrWlhndWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJRVUU3T3pzN1IwRkpSenRCUVVOSUxEWkRRVUV3UXp0QlFVTXhReXhyUkVGQkswTTdRVUZETDBNc0swTkJRVFJETzBGQlF6VkRMRGhEUVVFeVF6dEJRVU16UXl3MFEwRkJlVU03UVVGRGVrTXNORU5CUVhsRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lMeW9xWEc0Z0tpQkFiVzlrZFd4bElHbHVkR1ZuY21GMGFXOXVjeTluY21Gd2FDOXNiMjl3YzF4dUlDb2dRSE4xYlcxaGNua2dVM1J5ZFdOMGRYSmxaQ0JzYjI5d0lHVjRaV04xZEc5eWN5NWNiaUFxSUVCa1pYTmpjbWx3ZEdsdmJpQlNaUzFsZUhCdmNuUnpJSFJvWlNCamIyNWthWFJwYjI0Z1pYWmhiSFZoZEc5eUxDQnNiMjl3SUdWNFpXTjFkR2x2YmlCamIyNTBaWGgwTENCaGJtUWdabTl5WldGamFDOTNhR2xzWlM5MWJuUnBiQ0JsZUdWamRYUnZjbk11WEc0Z0tpOWNibVY0Y0c5eWRDQXFJR1p5YjIwZ1hDSXVMMGR5WVhCb1EyOXVaR2wwYVc5dVJYWmhiSFZoZEc5eVhDSTdYRzVsZUhCdmNuUWdLaUJtY205dElGd2lMaTlEYjI1a2FYUnBiMjVGZUhCeVpYTnphVzl1UlhaaGJIVmhkRzl5WENJN1hHNWxlSEJ2Y25RZ0tpQm1jbTl0SUZ3aUxpOUhjbUZ3YUV4dmIzQkZlR1ZqZFhScGIyNURiMjUwWlhoMFhDSTdYRzVsZUhCdmNuUWdLaUJtY205dElGd2lMaTlHYjNKbFlXTm9SM0poY0doT2IyUmxSWGhsWTNWMGIzSmNJanRjYm1WNGNHOXlkQ0FxSUdaeWIyMGdYQ0l1TDFkb2FXeGxSM0poY0doT2IyUmxSWGhsWTNWMGIzSmNJanRjYm1WNGNHOXlkQ0FxSUdaeWIyMGdYQ0l1TDFWdWRHbHNSM0poY0doT2IyUmxSWGhsWTNWMGIzSmNJanRjYmlKZGZRPT0iXX0=
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GRAPH_AGENT_NODES = exports.AgentNode = void 0;
4
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
5
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
6
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
7
+ r = Reflect.decorate(decorators, target, key, desc);
8
+ else
9
+ for (var i = decorators.length - 1; i >= 0; i--)
10
+ if (d = decorators[i])
11
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
12
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
13
+ };
14
+ var __metadata = (this && this.__metadata) || function (k, v) {
15
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
16
+ return Reflect.metadata(k, v);
17
+ };
18
+ /**
19
+ * @module integrations/graph/nodes/agent
20
+ * @summary Production Agent node declaration.
21
+ * @description The Agent node is the primary AI agent entrypoint. It is a
22
+ * rectangular node with `@connection()` ports for its structural dependencies:
23
+ * `model` (the LLM), `memory` (the memory store), and `workspace` (the
24
+ * workspace/context). Connections are rendered on the bottom side of the node
25
+ * (DECAF-32 §21.3). Each connection category has a distinct color defined in
26
+ * the category style registry.
27
+ *
28
+ * The single `prompt` input accepts placeholder expressions (§22.4) such as
29
+ * `{{ $input.brief }}` or `{{ $node["Research"].output.summary }}` that are
30
+ * resolved at execution time by the placeholder compiler.
31
+ */
32
+ const decorator_validation_1 = require("@decaf-ts/decorator-validation");
33
+ const ui_decorators_1 = require("@decaf-ts/ui-decorators");
34
+ const graph_1 = require("@decaf-ts/ui-decorators/graph");
35
+ // Ensure category styles are registered (idempotent).
36
+ require("./category-styles.cjs");
37
+ /**
38
+ * Agent node — an AI agent that orchestrates a model, memory, and workspace.
39
+ *
40
+ * The agent has:
41
+ * - `@input` port on the **left**: `prompt` (the task prompt; supports
42
+ * placeholder expressions like `{{ $input.something }}` per §22.4).
43
+ * - `@output` ports on the **right**: `response` (the agent's output), `actions`
44
+ * (any actions the agent decided to take).
45
+ * - `@connection` ports on the **bottom**: `model` (LLM), `memory` (memory
46
+ * store), `workspace` (workspace/context). Each connection has a distinct
47
+ * category color.
48
+ *
49
+ * The node is rectangular (not rounded) to visually distinguish it from
50
+ * regular processing nodes. The `color` and `icon` are omitted from `@node()`
51
+ * so they are resolved from the `"Agent"` category style.
52
+ */
53
+ let AgentNode = class AgentNode extends decorator_validation_1.Model {
54
+ };
55
+ exports.AgentNode = AgentNode;
56
+ __decorate([
57
+ (0, decorator_validation_1.required)(),
58
+ (0, ui_decorators_1.uielement)("textarea", {
59
+ label: "Prompt",
60
+ placeholder: "Enter task prompt. Supports placeholders like {{ $input.brief }} or {{ $node[\"Research\"].output.summary }}",
61
+ }),
62
+ (0, graph_1.input)({ handle: "prompt" }),
63
+ __metadata("design:type", String)
64
+ ], AgentNode.prototype, "prompt", void 0);
65
+ __decorate([
66
+ (0, decorator_validation_1.required)(),
67
+ (0, ui_decorators_1.uielement)("textarea", { label: "Response", placeholder: "Agent response" }),
68
+ (0, graph_1.output)({ handle: "response" }),
69
+ __metadata("design:type", String)
70
+ ], AgentNode.prototype, "response", void 0);
71
+ __decorate([
72
+ (0, decorator_validation_1.required)(),
73
+ (0, ui_decorators_1.uielement)("textarea", { label: "Actions", placeholder: "Actions taken by the agent" }),
74
+ (0, graph_1.output)({ handle: "actions" }),
75
+ __metadata("design:type", Array)
76
+ ], AgentNode.prototype, "actions", void 0);
77
+ __decorate([
78
+ (0, graph_1.connection)({ category: "model", handle: "model" }),
79
+ __metadata("design:type", Object)
80
+ ], AgentNode.prototype, "model", void 0);
81
+ __decorate([
82
+ (0, graph_1.connection)({ category: "memory", handle: "memory" }),
83
+ __metadata("design:type", Object)
84
+ ], AgentNode.prototype, "memory", void 0);
85
+ __decorate([
86
+ (0, graph_1.connection)({ category: "workspace", handle: "workspace" }),
87
+ __metadata("design:type", Object)
88
+ ], AgentNode.prototype, "workspace", void 0);
89
+ exports.AgentNode = AgentNode = __decorate([
90
+ (0, graph_1.node)("core.agent", {
91
+ kind: "core.agent",
92
+ category: "Agent",
93
+ // color and icon omitted — resolved from the "Agent" category style
94
+ width: 120,
95
+ height: 140,
96
+ labels: ["agent", "ai", "orchestrator"],
97
+ metadata: {
98
+ title: "Agent",
99
+ description: "AI agent that orchestrates a model, memory, and workspace to complete a task.",
100
+ shape: "rectangle",
101
+ },
102
+ }),
103
+ (0, decorator_validation_1.model)()
104
+ ], AgentNode);
105
+ /**
106
+ * All built-in agent node constructors.
107
+ */
108
+ exports.GRAPH_AGENT_NODES = [AgentNode];
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ3JhcGgvbm9kZXMvYWdlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFaEYsc0RBQXNEO0FBQ3RELDhCQUEyQjtBQUUzQjs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFnQkksSUFBTSxTQUFTLEdBQWYsTUFBTSxTQUFVLFNBQVEsS0FBSztDQWlDbkMsQ0FBQTtBQXhCQztJQU5DLFFBQVEsRUFBRTtJQUNWLFNBQVMsQ0FBQyxVQUFVLEVBQUU7UUFDckIsS0FBSyxFQUFFLFFBQVE7UUFDZixXQUFXLEVBQUUsOEdBQThHO0tBQzVILENBQUM7SUFDRCxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUM7O3lDQUNaO0FBT2hCO0lBSEMsUUFBUSxFQUFFO0lBQ1YsU0FBUyxDQUFDLFVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLENBQUM7SUFDM0UsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxDQUFDOzsyQ0FDYjtBQUtsQjtJQUhDLFFBQVEsRUFBRTtJQUNWLFNBQVMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSw0QkFBNEIsRUFBRSxDQUFDO0lBQ3RGLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQzs7MENBQ1Y7QUFLcEI7SUFEQyxVQUFVLENBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQzs7d0NBQ25DO0FBR2hCO0lBREMsVUFBVSxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUM7O3lDQUNwQztBQUdqQjtJQURDLFVBQVUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDOzs0Q0FDdkM7QUFoQ1QsU0FBUztJQWZyQixJQUFJLENBQUMsWUFBWSxFQUFFO1FBQ2xCLElBQUksRUFBRSxZQUFZO1FBQ2xCLFFBQVEsRUFBRSxPQUFPO1FBQ2pCLG9FQUFvRTtRQUNwRSxLQUFLLEVBQUUsR0FBRztRQUNWLE1BQU0sRUFBRSxHQUFHO1FBQ1gsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxjQUFjLENBQUM7UUFDdkMsUUFBUSxFQUFFO1lBQ1IsS0FBSyxFQUFFLE9BQU87WUFDZCxXQUFXLEVBQ1QsK0VBQStFO1lBQ2pGLEtBQUssRUFBRSxXQUFXO1NBQ25CO0tBQ0YsQ0FBQztJQUNELEtBQUssRUFBRTtHQUNLLFNBQVMsQ0FpQ3JCOztBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxTQUFTLENBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvZ3JhcGgvbm9kZXMvYWdlbnRcbiAqIEBzdW1tYXJ5IFByb2R1Y3Rpb24gQWdlbnQgbm9kZSBkZWNsYXJhdGlvbi5cbiAqIEBkZXNjcmlwdGlvbiBUaGUgQWdlbnQgbm9kZSBpcyB0aGUgcHJpbWFyeSBBSSBhZ2VudCBlbnRyeXBvaW50LiBJdCBpcyBhXG4gKiByZWN0YW5ndWxhciBub2RlIHdpdGggYEBjb25uZWN0aW9uKClgIHBvcnRzIGZvciBpdHMgc3RydWN0dXJhbCBkZXBlbmRlbmNpZXM6XG4gKiBgbW9kZWxgICh0aGUgTExNKSwgYG1lbW9yeWAgKHRoZSBtZW1vcnkgc3RvcmUpLCBhbmQgYHdvcmtzcGFjZWAgKHRoZVxuICogd29ya3NwYWNlL2NvbnRleHQpLiBDb25uZWN0aW9ucyBhcmUgcmVuZGVyZWQgb24gdGhlIGJvdHRvbSBzaWRlIG9mIHRoZSBub2RlXG4gKiAoREVDQUYtMzIgwqcyMS4zKS4gRWFjaCBjb25uZWN0aW9uIGNhdGVnb3J5IGhhcyBhIGRpc3RpbmN0IGNvbG9yIGRlZmluZWQgaW5cbiAqIHRoZSBjYXRlZ29yeSBzdHlsZSByZWdpc3RyeS5cbiAqXG4gKiBUaGUgc2luZ2xlIGBwcm9tcHRgIGlucHV0IGFjY2VwdHMgcGxhY2Vob2xkZXIgZXhwcmVzc2lvbnMgKMKnMjIuNCkgc3VjaCBhc1xuICogYHt7ICRpbnB1dC5icmllZiB9fWAgb3IgYHt7ICRub2RlW1wiUmVzZWFyY2hcIl0ub3V0cHV0LnN1bW1hcnkgfX1gIHRoYXQgYXJlXG4gKiByZXNvbHZlZCBhdCBleGVjdXRpb24gdGltZSBieSB0aGUgcGxhY2Vob2xkZXIgY29tcGlsZXIuXG4gKi9cbmltcG9ydCB7IE1vZGVsLCBtb2RlbCwgcmVxdWlyZWQgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyB1aWVsZW1lbnQgfSBmcm9tIFwiQGRlY2FmLXRzL3VpLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IGNvbm5lY3Rpb24sIGlucHV0LCBub2RlLCBvdXRwdXQgfSBmcm9tIFwiQGRlY2FmLXRzL3VpLWRlY29yYXRvcnMvZ3JhcGhcIjtcblxuLy8gRW5zdXJlIGNhdGVnb3J5IHN0eWxlcyBhcmUgcmVnaXN0ZXJlZCAoaWRlbXBvdGVudCkuXG5pbXBvcnQgXCIuL2NhdGVnb3J5LXN0eWxlc1wiO1xuXG4vKipcbiAqIEFnZW50IG5vZGUg4oCUIGFuIEFJIGFnZW50IHRoYXQgb3JjaGVzdHJhdGVzIGEgbW9kZWwsIG1lbW9yeSwgYW5kIHdvcmtzcGFjZS5cbiAqXG4gKiBUaGUgYWdlbnQgaGFzOlxuICogLSBgQGlucHV0YCBwb3J0IG9uIHRoZSAqKmxlZnQqKjogYHByb21wdGAgKHRoZSB0YXNrIHByb21wdDsgc3VwcG9ydHNcbiAqICAgcGxhY2Vob2xkZXIgZXhwcmVzc2lvbnMgbGlrZSBge3sgJGlucHV0LnNvbWV0aGluZyB9fWAgcGVyIMKnMjIuNCkuXG4gKiAtIGBAb3V0cHV0YCBwb3J0cyBvbiB0aGUgKipyaWdodCoqOiBgcmVzcG9uc2VgICh0aGUgYWdlbnQncyBvdXRwdXQpLCBgYWN0aW9uc2BcbiAqICAgKGFueSBhY3Rpb25zIHRoZSBhZ2VudCBkZWNpZGVkIHRvIHRha2UpLlxuICogLSBgQGNvbm5lY3Rpb25gIHBvcnRzIG9uIHRoZSAqKmJvdHRvbSoqOiBgbW9kZWxgIChMTE0pLCBgbWVtb3J5YCAobWVtb3J5XG4gKiAgIHN0b3JlKSwgYHdvcmtzcGFjZWAgKHdvcmtzcGFjZS9jb250ZXh0KS4gRWFjaCBjb25uZWN0aW9uIGhhcyBhIGRpc3RpbmN0XG4gKiAgIGNhdGVnb3J5IGNvbG9yLlxuICpcbiAqIFRoZSBub2RlIGlzIHJlY3Rhbmd1bGFyIChub3Qgcm91bmRlZCkgdG8gdmlzdWFsbHkgZGlzdGluZ3Vpc2ggaXQgZnJvbVxuICogcmVndWxhciBwcm9jZXNzaW5nIG5vZGVzLiBUaGUgYGNvbG9yYCBhbmQgYGljb25gIGFyZSBvbWl0dGVkIGZyb20gYEBub2RlKClgXG4gKiBzbyB0aGV5IGFyZSByZXNvbHZlZCBmcm9tIHRoZSBgXCJBZ2VudFwiYCBjYXRlZ29yeSBzdHlsZS5cbiAqL1xuQG5vZGUoXCJjb3JlLmFnZW50XCIsIHtcbiAga2luZDogXCJjb3JlLmFnZW50XCIsXG4gIGNhdGVnb3J5OiBcIkFnZW50XCIsXG4gIC8vIGNvbG9yIGFuZCBpY29uIG9taXR0ZWQg4oCUIHJlc29sdmVkIGZyb20gdGhlIFwiQWdlbnRcIiBjYXRlZ29yeSBzdHlsZVxuICB3aWR0aDogMTIwLFxuICBoZWlnaHQ6IDE0MCxcbiAgbGFiZWxzOiBbXCJhZ2VudFwiLCBcImFpXCIsIFwib3JjaGVzdHJhdG9yXCJdLFxuICBtZXRhZGF0YToge1xuICAgIHRpdGxlOiBcIkFnZW50XCIsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIkFJIGFnZW50IHRoYXQgb3JjaGVzdHJhdGVzIGEgbW9kZWwsIG1lbW9yeSwgYW5kIHdvcmtzcGFjZSB0byBjb21wbGV0ZSBhIHRhc2suXCIsXG4gICAgc2hhcGU6IFwicmVjdGFuZ2xlXCIsXG4gIH0sXG59KVxuQG1vZGVsKClcbmV4cG9ydCBjbGFzcyBBZ2VudE5vZGUgZXh0ZW5kcyBNb2RlbCB7XG4gIC8vIC0tLSBJbnB1dHMgKGxlZnQgc2lkZSkgLS0tXG5cbiAgQHJlcXVpcmVkKClcbiAgQHVpZWxlbWVudChcInRleHRhcmVhXCIsIHtcbiAgICBsYWJlbDogXCJQcm9tcHRcIixcbiAgICBwbGFjZWhvbGRlcjogXCJFbnRlciB0YXNrIHByb21wdC4gU3VwcG9ydHMgcGxhY2Vob2xkZXJzIGxpa2Uge3sgJGlucHV0LmJyaWVmIH19IG9yIHt7ICRub2RlW1xcXCJSZXNlYXJjaFxcXCJdLm91dHB1dC5zdW1tYXJ5IH19XCIsXG4gIH0pXG4gIEBpbnB1dCh7IGhhbmRsZTogXCJwcm9tcHRcIiB9KVxuICBwcm9tcHQhOiBzdHJpbmc7XG5cbiAgLy8gLS0tIE91dHB1dHMgKHJpZ2h0IHNpZGUpIC0tLVxuXG4gIEByZXF1aXJlZCgpXG4gIEB1aWVsZW1lbnQoXCJ0ZXh0YXJlYVwiLCB7IGxhYmVsOiBcIlJlc3BvbnNlXCIsIHBsYWNlaG9sZGVyOiBcIkFnZW50IHJlc3BvbnNlXCIgfSlcbiAgQG91dHB1dCh7IGhhbmRsZTogXCJyZXNwb25zZVwiIH0pXG4gIHJlc3BvbnNlITogc3RyaW5nO1xuXG4gIEByZXF1aXJlZCgpXG4gIEB1aWVsZW1lbnQoXCJ0ZXh0YXJlYVwiLCB7IGxhYmVsOiBcIkFjdGlvbnNcIiwgcGxhY2Vob2xkZXI6IFwiQWN0aW9ucyB0YWtlbiBieSB0aGUgYWdlbnRcIiB9KVxuICBAb3V0cHV0KHsgaGFuZGxlOiBcImFjdGlvbnNcIiB9KVxuICBhY3Rpb25zITogdW5rbm93bltdO1xuXG4gIC8vIC0tLSBDb25uZWN0aW9ucyAoYm90dG9tIHNpZGUpIC0tLVxuXG4gIEBjb25uZWN0aW9uKHsgY2F0ZWdvcnk6IFwibW9kZWxcIiwgaGFuZGxlOiBcIm1vZGVsXCIgfSlcbiAgbW9kZWwhOiB1bmtub3duO1xuXG4gIEBjb25uZWN0aW9uKHsgY2F0ZWdvcnk6IFwibWVtb3J5XCIsIGhhbmRsZTogXCJtZW1vcnlcIiB9KVxuICBtZW1vcnkhOiB1bmtub3duO1xuXG4gIEBjb25uZWN0aW9uKHsgY2F0ZWdvcnk6IFwid29ya3NwYWNlXCIsIGhhbmRsZTogXCJ3b3Jrc3BhY2VcIiB9KVxuICB3b3Jrc3BhY2UhOiB1bmtub3duO1xufVxuXG4vKipcbiAqIEFsbCBidWlsdC1pbiBhZ2VudCBub2RlIGNvbnN0cnVjdG9ycy5cbiAqL1xuZXhwb3J0IGNvbnN0IEdSQVBIX0FHRU5UX05PREVTID0gW0FnZW50Tm9kZV0gYXMgY29uc3Q7XG4iXX0=
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhZ2VudC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFJLFVBQVUsR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksVUFBVSxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJO0lBQ2pGLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDN0gsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLElBQUksT0FBTyxPQUFPLENBQUMsUUFBUSxLQUFLLFVBQVU7UUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQzs7UUFDMUgsS0FBSyxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUFFLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsSixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDbEUsQ0FBQyxDQUFDO0FBQ0YsSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUM7SUFDeEQsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLElBQUksT0FBTyxPQUFPLENBQUMsUUFBUSxLQUFLLFVBQVU7UUFBRSxPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzdHLENBQUMsQ0FBQztBQUNGOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCx5RUFBd0U7QUFDeEUsMkRBQW9EO0FBQ3BELHlEQUFnRjtBQUNoRixzREFBc0Q7QUFDdEQsZ0NBQThCO0FBQzlCOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILElBQUksU0FBUyxHQUFHLE1BQU0sU0FBVSxTQUFRLDRCQUFLO0NBQzVDLENBQUM7QUFrRE8sOEJBQVM7QUFqRGxCLFVBQVUsQ0FBQztJQUNQLElBQUEsK0JBQVEsR0FBRTtJQUNWLElBQUEseUJBQVMsRUFBQyxVQUFVLEVBQUU7UUFDbEIsS0FBSyxFQUFFLFFBQVE7UUFDZixXQUFXLEVBQUUsOEdBQThHO0tBQzlILENBQUM7SUFDRixJQUFBLGFBQUssRUFBQyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUMzQixVQUFVLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQztDQUNwQyxFQUFFLFNBQVMsQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDMUMsVUFBVSxDQUFDO0lBQ1AsSUFBQSwrQkFBUSxHQUFFO0lBQ1YsSUFBQSx5QkFBUyxFQUFDLFVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLENBQUM7SUFDM0UsSUFBQSxjQUFNLEVBQUMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDOUIsVUFBVSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUM7Q0FDcEMsRUFBRSxTQUFTLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzVDLFVBQVUsQ0FBQztJQUNQLElBQUEsK0JBQVEsR0FBRTtJQUNWLElBQUEseUJBQVMsRUFBQyxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSw0QkFBNEIsRUFBRSxDQUFDO0lBQ3RGLElBQUEsY0FBTSxFQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDO0lBQzdCLFVBQVUsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDO0NBQ25DLEVBQUUsU0FBUyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUMzQyxVQUFVLENBQUM7SUFDUCxJQUFBLGtCQUFVLEVBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNsRCxVQUFVLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQztDQUNwQyxFQUFFLFNBQVMsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDekMsVUFBVSxDQUFDO0lBQ1AsSUFBQSxrQkFBVSxFQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUM7SUFDcEQsVUFBVSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUM7Q0FDcEMsRUFBRSxTQUFTLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzFDLFVBQVUsQ0FBQztJQUNQLElBQUEsa0JBQVUsRUFBQyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQzFELFVBQVUsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDO0NBQ3BDLEVBQUUsU0FBUyxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUM3QyxvQkFBQSxTQUFTLEdBQUcsVUFBVSxDQUFDO0lBQ25CLElBQUEsWUFBSSxFQUFDLFlBQVksRUFBRTtRQUNmLElBQUksRUFBRSxZQUFZO1FBQ2xCLFFBQVEsRUFBRSxPQUFPO1FBQ2pCLG9FQUFvRTtRQUNwRSxLQUFLLEVBQUUsR0FBRztRQUNWLE1BQU0sRUFBRSxHQUFHO1FBQ1gsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxjQUFjLENBQUM7UUFDdkMsUUFBUSxFQUFFO1lBQ04sS0FBSyxFQUFFLE9BQU87WUFDZCxXQUFXLEVBQUUsK0VBQStFO1lBQzVGLEtBQUssRUFBRSxXQUFXO1NBQ3JCO0tBQ0osQ0FBQztJQUNGLElBQUEsNEJBQUssR0FBRTtDQUNWLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFFZDs7R0FFRztBQUNVLFFBQUEsaUJBQWlCLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM3QywwOE1BQTA4TSIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2RlY29yYXRlID0gKHRoaXMgJiYgdGhpcy5fX2RlY29yYXRlKSB8fCBmdW5jdGlvbiAoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcbiAgICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSkgOiBkZXNjLCBkO1xuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSA9PT0gXCJmdW5jdGlvblwiKSByID0gUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYyk7XG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcbiAgICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByO1xufTtcbnZhciBfX21ldGFkYXRhID0gKHRoaXMgJiYgdGhpcy5fX21ldGFkYXRhKSB8fCBmdW5jdGlvbiAoaywgdikge1xuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShrLCB2KTtcbn07XG4vKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL2dyYXBoL25vZGVzL2FnZW50XG4gKiBAc3VtbWFyeSBQcm9kdWN0aW9uIEFnZW50IG5vZGUgZGVjbGFyYXRpb24uXG4gKiBAZGVzY3JpcHRpb24gVGhlIEFnZW50IG5vZGUgaXMgdGhlIHByaW1hcnkgQUkgYWdlbnQgZW50cnlwb2ludC4gSXQgaXMgYVxuICogcmVjdGFuZ3VsYXIgbm9kZSB3aXRoIGBAY29ubmVjdGlvbigpYCBwb3J0cyBmb3IgaXRzIHN0cnVjdHVyYWwgZGVwZW5kZW5jaWVzOlxuICogYG1vZGVsYCAodGhlIExMTSksIGBtZW1vcnlgICh0aGUgbWVtb3J5IHN0b3JlKSwgYW5kIGB3b3Jrc3BhY2VgICh0aGVcbiAqIHdvcmtzcGFjZS9jb250ZXh0KS4gQ29ubmVjdGlvbnMgYXJlIHJlbmRlcmVkIG9uIHRoZSBib3R0b20gc2lkZSBvZiB0aGUgbm9kZVxuICogKERFQ0FGLTMyIMKnMjEuMykuIEVhY2ggY29ubmVjdGlvbiBjYXRlZ29yeSBoYXMgYSBkaXN0aW5jdCBjb2xvciBkZWZpbmVkIGluXG4gKiB0aGUgY2F0ZWdvcnkgc3R5bGUgcmVnaXN0cnkuXG4gKlxuICogVGhlIHNpbmdsZSBgcHJvbXB0YCBpbnB1dCBhY2NlcHRzIHBsYWNlaG9sZGVyIGV4cHJlc3Npb25zICjCpzIyLjQpIHN1Y2ggYXNcbiAqIGB7eyAkaW5wdXQuYnJpZWYgfX1gIG9yIGB7eyAkbm9kZVtcIlJlc2VhcmNoXCJdLm91dHB1dC5zdW1tYXJ5IH19YCB0aGF0IGFyZVxuICogcmVzb2x2ZWQgYXQgZXhlY3V0aW9uIHRpbWUgYnkgdGhlIHBsYWNlaG9sZGVyIGNvbXBpbGVyLlxuICovXG5pbXBvcnQgeyBNb2RlbCwgbW9kZWwsIHJlcXVpcmVkIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgdWllbGVtZW50IH0gZnJvbSBcIkBkZWNhZi10cy91aS1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBjb25uZWN0aW9uLCBpbnB1dCwgbm9kZSwgb3V0cHV0IH0gZnJvbSBcIkBkZWNhZi10cy91aS1kZWNvcmF0b3JzL2dyYXBoXCI7XG4vLyBFbnN1cmUgY2F0ZWdvcnkgc3R5bGVzIGFyZSByZWdpc3RlcmVkIChpZGVtcG90ZW50KS5cbmltcG9ydCBcIi4vY2F0ZWdvcnktc3R5bGVzLmpzXCI7XG4vKipcbiAqIEFnZW50IG5vZGUg4oCUIGFuIEFJIGFnZW50IHRoYXQgb3JjaGVzdHJhdGVzIGEgbW9kZWwsIG1lbW9yeSwgYW5kIHdvcmtzcGFjZS5cbiAqXG4gKiBUaGUgYWdlbnQgaGFzOlxuICogLSBgQGlucHV0YCBwb3J0IG9uIHRoZSAqKmxlZnQqKjogYHByb21wdGAgKHRoZSB0YXNrIHByb21wdDsgc3VwcG9ydHNcbiAqICAgcGxhY2Vob2xkZXIgZXhwcmVzc2lvbnMgbGlrZSBge3sgJGlucHV0LnNvbWV0aGluZyB9fWAgcGVyIMKnMjIuNCkuXG4gKiAtIGBAb3V0cHV0YCBwb3J0cyBvbiB0aGUgKipyaWdodCoqOiBgcmVzcG9uc2VgICh0aGUgYWdlbnQncyBvdXRwdXQpLCBgYWN0aW9uc2BcbiAqICAgKGFueSBhY3Rpb25zIHRoZSBhZ2VudCBkZWNpZGVkIHRvIHRha2UpLlxuICogLSBgQGNvbm5lY3Rpb25gIHBvcnRzIG9uIHRoZSAqKmJvdHRvbSoqOiBgbW9kZWxgIChMTE0pLCBgbWVtb3J5YCAobWVtb3J5XG4gKiAgIHN0b3JlKSwgYHdvcmtzcGFjZWAgKHdvcmtzcGFjZS9jb250ZXh0KS4gRWFjaCBjb25uZWN0aW9uIGhhcyBhIGRpc3RpbmN0XG4gKiAgIGNhdGVnb3J5IGNvbG9yLlxuICpcbiAqIFRoZSBub2RlIGlzIHJlY3Rhbmd1bGFyIChub3Qgcm91bmRlZCkgdG8gdmlzdWFsbHkgZGlzdGluZ3Vpc2ggaXQgZnJvbVxuICogcmVndWxhciBwcm9jZXNzaW5nIG5vZGVzLiBUaGUgYGNvbG9yYCBhbmQgYGljb25gIGFyZSBvbWl0dGVkIGZyb20gYEBub2RlKClgXG4gKiBzbyB0aGV5IGFyZSByZXNvbHZlZCBmcm9tIHRoZSBgXCJBZ2VudFwiYCBjYXRlZ29yeSBzdHlsZS5cbiAqL1xubGV0IEFnZW50Tm9kZSA9IGNsYXNzIEFnZW50Tm9kZSBleHRlbmRzIE1vZGVsIHtcbn07XG5fX2RlY29yYXRlKFtcbiAgICByZXF1aXJlZCgpLFxuICAgIHVpZWxlbWVudChcInRleHRhcmVhXCIsIHtcbiAgICAgICAgbGFiZWw6IFwiUHJvbXB0XCIsXG4gICAgICAgIHBsYWNlaG9sZGVyOiBcIkVudGVyIHRhc2sgcHJvbXB0LiBTdXBwb3J0cyBwbGFjZWhvbGRlcnMgbGlrZSB7eyAkaW5wdXQuYnJpZWYgfX0gb3Ige3sgJG5vZGVbXFxcIlJlc2VhcmNoXFxcIl0ub3V0cHV0LnN1bW1hcnkgfX1cIixcbiAgICB9KSxcbiAgICBpbnB1dCh7IGhhbmRsZTogXCJwcm9tcHRcIiB9KSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgU3RyaW5nKVxuXSwgQWdlbnROb2RlLnByb3RvdHlwZSwgXCJwcm9tcHRcIiwgdm9pZCAwKTtcbl9fZGVjb3JhdGUoW1xuICAgIHJlcXVpcmVkKCksXG4gICAgdWllbGVtZW50KFwidGV4dGFyZWFcIiwgeyBsYWJlbDogXCJSZXNwb25zZVwiLCBwbGFjZWhvbGRlcjogXCJBZ2VudCByZXNwb25zZVwiIH0pLFxuICAgIG91dHB1dCh7IGhhbmRsZTogXCJyZXNwb25zZVwiIH0pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBTdHJpbmcpXG5dLCBBZ2VudE5vZGUucHJvdG90eXBlLCBcInJlc3BvbnNlXCIsIHZvaWQgMCk7XG5fX2RlY29yYXRlKFtcbiAgICByZXF1aXJlZCgpLFxuICAgIHVpZWxlbWVudChcInRleHRhcmVhXCIsIHsgbGFiZWw6IFwiQWN0aW9uc1wiLCBwbGFjZWhvbGRlcjogXCJBY3Rpb25zIHRha2VuIGJ5IHRoZSBhZ2VudFwiIH0pLFxuICAgIG91dHB1dCh7IGhhbmRsZTogXCJhY3Rpb25zXCIgfSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEFycmF5KVxuXSwgQWdlbnROb2RlLnByb3RvdHlwZSwgXCJhY3Rpb25zXCIsIHZvaWQgMCk7XG5fX2RlY29yYXRlKFtcbiAgICBjb25uZWN0aW9uKHsgY2F0ZWdvcnk6IFwibW9kZWxcIiwgaGFuZGxlOiBcIm1vZGVsXCIgfSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIE9iamVjdClcbl0sIEFnZW50Tm9kZS5wcm90b3R5cGUsIFwibW9kZWxcIiwgdm9pZCAwKTtcbl9fZGVjb3JhdGUoW1xuICAgIGNvbm5lY3Rpb24oeyBjYXRlZ29yeTogXCJtZW1vcnlcIiwgaGFuZGxlOiBcIm1lbW9yeVwiIH0pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBPYmplY3QpXG5dLCBBZ2VudE5vZGUucHJvdG90eXBlLCBcIm1lbW9yeVwiLCB2b2lkIDApO1xuX19kZWNvcmF0ZShbXG4gICAgY29ubmVjdGlvbih7IGNhdGVnb3J5OiBcIndvcmtzcGFjZVwiLCBoYW5kbGU6IFwid29ya3NwYWNlXCIgfSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIE9iamVjdClcbl0sIEFnZW50Tm9kZS5wcm90b3R5cGUsIFwid29ya3NwYWNlXCIsIHZvaWQgMCk7XG5BZ2VudE5vZGUgPSBfX2RlY29yYXRlKFtcbiAgICBub2RlKFwiY29yZS5hZ2VudFwiLCB7XG4gICAgICAgIGtpbmQ6IFwiY29yZS5hZ2VudFwiLFxuICAgICAgICBjYXRlZ29yeTogXCJBZ2VudFwiLFxuICAgICAgICAvLyBjb2xvciBhbmQgaWNvbiBvbWl0dGVkIOKAlCByZXNvbHZlZCBmcm9tIHRoZSBcIkFnZW50XCIgY2F0ZWdvcnkgc3R5bGVcbiAgICAgICAgd2lkdGg6IDEyMCxcbiAgICAgICAgaGVpZ2h0OiAxNDAsXG4gICAgICAgIGxhYmVsczogW1wiYWdlbnRcIiwgXCJhaVwiLCBcIm9yY2hlc3RyYXRvclwiXSxcbiAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICAgIHRpdGxlOiBcIkFnZW50XCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJBSSBhZ2VudCB0aGF0IG9yY2hlc3RyYXRlcyBhIG1vZGVsLCBtZW1vcnksIGFuZCB3b3Jrc3BhY2UgdG8gY29tcGxldGUgYSB0YXNrLlwiLFxuICAgICAgICAgICAgc2hhcGU6IFwicmVjdGFuZ2xlXCIsXG4gICAgICAgIH0sXG4gICAgfSksXG4gICAgbW9kZWwoKVxuXSwgQWdlbnROb2RlKTtcbmV4cG9ydCB7IEFnZW50Tm9kZSB9O1xuLyoqXG4gKiBBbGwgYnVpbHQtaW4gYWdlbnQgbm9kZSBjb25zdHJ1Y3RvcnMuXG4gKi9cbmV4cG9ydCBjb25zdCBHUkFQSF9BR0VOVF9OT0RFUyA9IFtBZ2VudE5vZGVdO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWVdkbGJuUXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTh1TGk4dUxpOXpjbU12WjNKaGNHZ3ZibTlrWlhNdllXZGxiblF1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPenM3TzBGQlFVRTdPenM3T3pzN096czdPenM3UjBGaFJ6dEJRVU5JTEU5QlFVOHNSVUZCUlN4TFFVRkxMRVZCUVVVc1MwRkJTeXhGUVVGRkxGRkJRVkVzUlVGQlJTeE5RVUZOTEdkRFFVRm5ReXhEUVVGRE8wRkJRM2hGTEU5QlFVOHNSVUZCUlN4VFFVRlRMRVZCUVVVc1RVRkJUU3g1UWtGQmVVSXNRMEZCUXp0QlFVTndSQ3hQUVVGUExFVkJRVVVzVlVGQlZTeEZRVUZGTEV0QlFVc3NSVUZCUlN4SlFVRkpMRVZCUVVVc1RVRkJUU3hGUVVGRkxFMUJRVTBzSzBKQlFTdENMRU5CUVVNN1FVRkZhRVlzYzBSQlFYTkVPMEZCUTNSRUxEaENRVUV5UWp0QlFVVXpRanM3T3pzN096czdPenM3T3pzN08wZEJaVWM3UVVGblFra3NTVUZCVFN4VFFVRlRMRWRCUVdZc1RVRkJUU3hUUVVGVkxGTkJRVkVzUzBGQlN6dERRV2xEYmtNc1EwRkJRVHRCUVhoQ1F6dEpRVTVETEZGQlFWRXNSVUZCUlR0SlFVTldMRk5CUVZNc1EwRkJReXhWUVVGVkxFVkJRVVU3VVVGRGNrSXNTMEZCU3l4RlFVRkZMRkZCUVZFN1VVRkRaaXhYUVVGWExFVkJRVVVzT0VkQlFUaEhPMHRCUXpWSUxFTkJRVU03U1VGRFJDeExRVUZMTEVOQlFVTXNSVUZCUlN4TlFVRk5MRVZCUVVVc1VVRkJVU3hGUVVGRkxFTkJRVU03TzNsRFFVTmFPMEZCVDJoQ08wbEJTRU1zVVVGQlVTeEZRVUZGTzBsQlExWXNVMEZCVXl4RFFVRkRMRlZCUVZVc1JVRkJSU3hGUVVGRkxFdEJRVXNzUlVGQlJTeFZRVUZWTEVWQlFVVXNWMEZCVnl4RlFVRkZMR2RDUVVGblFpeEZRVUZGTEVOQlFVTTdTVUZETTBVc1RVRkJUU3hEUVVGRExFVkJRVVVzVFVGQlRTeEZRVUZGTEZWQlFWVXNSVUZCUlN4RFFVRkRPenN5UTBGRFlqdEJRVXRzUWp0SlFVaERMRkZCUVZFc1JVRkJSVHRKUVVOV0xGTkJRVk1zUTBGQlF5eFZRVUZWTEVWQlFVVXNSVUZCUlN4TFFVRkxMRVZCUVVVc1UwRkJVeXhGUVVGRkxGZEJRVmNzUlVGQlJTdzBRa0ZCTkVJc1JVRkJSU3hEUVVGRE8wbEJRM1JHTEUxQlFVMHNRMEZCUXl4RlFVRkZMRTFCUVUwc1JVRkJSU3hUUVVGVExFVkJRVVVzUTBGQlF6czdNRU5CUTFZN1FVRkxjRUk3U1VGRVF5eFZRVUZWTEVOQlFVTXNSVUZCUlN4UlFVRlJMRVZCUVVVc1QwRkJUeXhGUVVGRkxFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNRMEZCUXpzN2QwTkJRMjVETzBGQlIyaENPMGxCUkVNc1ZVRkJWU3hEUVVGRExFVkJRVVVzVVVGQlVTeEZRVUZGTEZGQlFWRXNSVUZCUlN4TlFVRk5MRVZCUVVVc1VVRkJVU3hGUVVGRkxFTkJRVU03TzNsRFFVTndRenRCUVVkcVFqdEpRVVJETEZWQlFWVXNRMEZCUXl4RlFVRkZMRkZCUVZFc1JVRkJSU3hYUVVGWExFVkJRVVVzVFVGQlRTeEZRVUZGTEZkQlFWY3NSVUZCUlN4RFFVRkRPenMwUTBGRGRrTTdRVUZvUTFRc1UwRkJVenRKUVdaeVFpeEpRVUZKTEVOQlFVTXNXVUZCV1N4RlFVRkZPMUZCUTJ4Q0xFbEJRVWtzUlVGQlJTeFpRVUZaTzFGQlEyeENMRkZCUVZFc1JVRkJSU3hQUVVGUE8xRkJRMnBDTEc5RlFVRnZSVHRSUVVOd1JTeExRVUZMTEVWQlFVVXNSMEZCUnp0UlFVTldMRTFCUVUwc1JVRkJSU3hIUVVGSE8xRkJRMWdzVFVGQlRTeEZRVUZGTEVOQlFVTXNUMEZCVHl4RlFVRkZMRWxCUVVrc1JVRkJSU3hqUVVGakxFTkJRVU03VVVGRGRrTXNVVUZCVVN4RlFVRkZPMWxCUTFJc1MwRkJTeXhGUVVGRkxFOUJRVTg3V1VGRFpDeFhRVUZYTEVWQlExUXNLMFZCUVN0Rk8xbEJRMnBHTEV0QlFVc3NSVUZCUlN4WFFVRlhPMU5CUTI1Q08wdEJRMFlzUTBGQlF6dEpRVU5FTEV0QlFVc3NSVUZCUlR0SFFVTkxMRk5CUVZNc1EwRnBRM0pDT3p0QlFVVkVPenRIUVVWSE8wRkJRMGdzVFVGQlRTeERRVUZETEUxQlFVMHNhVUpCUVdsQ0xFZEJRVWNzUTBGQlF5eFRRVUZUTEVOQlFWVXNRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHFLbHh1SUNvZ1FHMXZaSFZzWlNCcGJuUmxaM0poZEdsdmJuTXZaM0poY0dndmJtOWtaWE12WVdkbGJuUmNiaUFxSUVCemRXMXRZWEo1SUZCeWIyUjFZM1JwYjI0Z1FXZGxiblFnYm05a1pTQmtaV05zWVhKaGRHbHZiaTVjYmlBcUlFQmtaWE5qY21sd2RHbHZiaUJVYUdVZ1FXZGxiblFnYm05a1pTQnBjeUIwYUdVZ2NISnBiV0Z5ZVNCQlNTQmhaMlZ1ZENCbGJuUnllWEJ2YVc1MExpQkpkQ0JwY3lCaFhHNGdLaUJ5WldOMFlXNW5kV3hoY2lCdWIyUmxJSGRwZEdnZ1lFQmpiMjV1WldOMGFXOXVLQ2xnSUhCdmNuUnpJR1p2Y2lCcGRITWdjM1J5ZFdOMGRYSmhiQ0JrWlhCbGJtUmxibU5wWlhNNlhHNGdLaUJnYlc5a1pXeGdJQ2gwYUdVZ1RFeE5LU3dnWUcxbGJXOXllV0FnS0hSb1pTQnRaVzF2Y25rZ2MzUnZjbVVwTENCaGJtUWdZSGR2Y210emNHRmpaV0FnS0hSb1pWeHVJQ29nZDI5eWEzTndZV05sTDJOdmJuUmxlSFFwTGlCRGIyNXVaV04wYVc5dWN5QmhjbVVnY21WdVpHVnlaV1FnYjI0Z2RHaGxJR0p2ZEhSdmJTQnphV1JsSUc5bUlIUm9aU0J1YjJSbFhHNGdLaUFvUkVWRFFVWXRNeklnd3FjeU1TNHpLUzRnUldGamFDQmpiMjV1WldOMGFXOXVJR05oZEdWbmIzSjVJR2hoY3lCaElHUnBjM1JwYm1OMElHTnZiRzl5SUdSbFptbHVaV1FnYVc1Y2JpQXFJSFJvWlNCallYUmxaMjl5ZVNCemRIbHNaU0J5WldkcGMzUnllUzVjYmlBcVhHNGdLaUJVYUdVZ2MybHVaMnhsSUdCd2NtOXRjSFJnSUdsdWNIVjBJR0ZqWTJWd2RITWdjR3hoWTJWb2IyeGtaWElnWlhod2NtVnpjMmx2Ym5NZ0tNS25Nakl1TkNrZ2MzVmphQ0JoYzF4dUlDb2dZSHQ3SUNScGJuQjFkQzVpY21sbFppQjlmV0FnYjNJZ1lIdDdJQ1J1YjJSbFcxd2lVbVZ6WldGeVkyaGNJbDB1YjNWMGNIVjBMbk4xYlcxaGNua2dmWDFnSUhSb1lYUWdZWEpsWEc0Z0tpQnlaWE52YkhabFpDQmhkQ0JsZUdWamRYUnBiMjRnZEdsdFpTQmllU0IwYUdVZ2NHeGhZMlZvYjJ4a1pYSWdZMjl0Y0dsc1pYSXVYRzRnS2k5Y2JtbHRjRzl5ZENCN0lFMXZaR1ZzTENCdGIyUmxiQ3dnY21WeGRXbHlaV1FnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJSbFkyOXlZWFJ2Y2kxMllXeHBaR0YwYVc5dVhDSTdYRzVwYlhCdmNuUWdleUIxYVdWc1pXMWxiblFnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDNWcExXUmxZMjl5WVhSdmNuTmNJanRjYm1sdGNHOXlkQ0I3SUdOdmJtNWxZM1JwYjI0c0lHbHVjSFYwTENCdWIyUmxMQ0J2ZFhSd2RYUWdmU0JtY205dElGd2lRR1JsWTJGbUxYUnpMM1ZwTFdSbFkyOXlZWFJ2Y25NdlozSmhjR2hjSWp0Y2JseHVMeThnUlc1emRYSmxJR05oZEdWbmIzSjVJSE4wZVd4bGN5QmhjbVVnY21WbmFYTjBaWEpsWkNBb2FXUmxiWEJ2ZEdWdWRDa3VYRzVwYlhCdmNuUWdYQ0l1TDJOaGRHVm5iM0o1TFhOMGVXeGxjMXdpTzF4dVhHNHZLaXBjYmlBcUlFRm5aVzUwSUc1dlpHVWc0b0NVSUdGdUlFRkpJR0ZuWlc1MElIUm9ZWFFnYjNKamFHVnpkSEpoZEdWeklHRWdiVzlrWld3c0lHMWxiVzl5ZVN3Z1lXNWtJSGR2Y210emNHRmpaUzVjYmlBcVhHNGdLaUJVYUdVZ1lXZGxiblFnYUdGek9seHVJQ29nTFNCZ1FHbHVjSFYwWUNCd2IzSjBJRzl1SUhSb1pTQXFLbXhsWm5RcUtqb2dZSEJ5YjIxd2RHQWdLSFJvWlNCMFlYTnJJSEJ5YjIxd2REc2djM1Z3Y0c5eWRITmNiaUFxSUNBZ2NHeGhZMlZvYjJ4a1pYSWdaWGh3Y21WemMybHZibk1nYkdsclpTQmdlM3NnSkdsdWNIVjBMbk52YldWMGFHbHVaeUI5ZldBZ2NHVnlJTUtuTWpJdU5Da3VYRzRnS2lBdElHQkFiM1YwY0hWMFlDQndiM0owY3lCdmJpQjBhR1VnS2lweWFXZG9kQ29xT2lCZ2NtVnpjRzl1YzJWZ0lDaDBhR1VnWVdkbGJuUW5jeUJ2ZFhSd2RYUXBMQ0JnWVdOMGFXOXVjMkJjYmlBcUlDQWdLR0Z1ZVNCaFkzUnBiMjV6SUhSb1pTQmhaMlZ1ZENCa1pXTnBaR1ZrSUhSdklIUmhhMlVwTGx4dUlDb2dMU0JnUUdOdmJtNWxZM1JwYjI1Z0lIQnZjblJ6SUc5dUlIUm9aU0FxS21KdmRIUnZiU29xT2lCZ2JXOWtaV3hnSUNoTVRFMHBMQ0JnYldWdGIzSjVZQ0FvYldWdGIzSjVYRzRnS2lBZ0lITjBiM0psS1N3Z1lIZHZjbXR6Y0dGalpXQWdLSGR2Y210emNHRmpaUzlqYjI1MFpYaDBLUzRnUldGamFDQmpiMjV1WldOMGFXOXVJR2hoY3lCaElHUnBjM1JwYm1OMFhHNGdLaUFnSUdOaGRHVm5iM0o1SUdOdmJHOXlMbHh1SUNwY2JpQXFJRlJvWlNCdWIyUmxJR2x6SUhKbFkzUmhibWQxYkdGeUlDaHViM1FnY205MWJtUmxaQ2tnZEc4Z2RtbHpkV0ZzYkhrZ1pHbHpkR2x1WjNWcGMyZ2dhWFFnWm5KdmJWeHVJQ29nY21WbmRXeGhjaUJ3Y205alpYTnphVzVuSUc1dlpHVnpMaUJVYUdVZ1lHTnZiRzl5WUNCaGJtUWdZR2xqYjI1Z0lHRnlaU0J2YldsMGRHVmtJR1p5YjIwZ1lFQnViMlJsS0NsZ1hHNGdLaUJ6YnlCMGFHVjVJR0Z5WlNCeVpYTnZiSFpsWkNCbWNtOXRJSFJvWlNCZ1hDSkJaMlZ1ZEZ3aVlDQmpZWFJsWjI5eWVTQnpkSGxzWlM1Y2JpQXFMMXh1UUc1dlpHVW9YQ0pqYjNKbExtRm5aVzUwWENJc0lIdGNiaUFnYTJsdVpEb2dYQ0pqYjNKbExtRm5aVzUwWENJc1hHNGdJR05oZEdWbmIzSjVPaUJjSWtGblpXNTBYQ0lzWEc0Z0lDOHZJR052Ykc5eUlHRnVaQ0JwWTI5dUlHOXRhWFIwWldRZzRvQ1VJSEpsYzI5c2RtVmtJR1p5YjIwZ2RHaGxJRndpUVdkbGJuUmNJaUJqWVhSbFoyOXllU0J6ZEhsc1pWeHVJQ0IzYVdSMGFEb2dNVEl3TEZ4dUlDQm9aV2xuYUhRNklERTBNQ3hjYmlBZ2JHRmlaV3h6T2lCYlhDSmhaMlZ1ZEZ3aUxDQmNJbUZwWENJc0lGd2liM0pqYUdWemRISmhkRzl5WENKZExGeHVJQ0J0WlhSaFpHRjBZVG9nZTF4dUlDQWdJSFJwZEd4bE9pQmNJa0ZuWlc1MFhDSXNYRzRnSUNBZ1pHVnpZM0pwY0hScGIyNDZYRzRnSUNBZ0lDQmNJa0ZKSUdGblpXNTBJSFJvWVhRZ2IzSmphR1Z6ZEhKaGRHVnpJR0VnYlc5a1pXd3NJRzFsYlc5eWVTd2dZVzVrSUhkdmNtdHpjR0ZqWlNCMGJ5QmpiMjF3YkdWMFpTQmhJSFJoYzJzdVhDSXNYRzRnSUNBZ2MyaGhjR1U2SUZ3aWNtVmpkR0Z1WjJ4bFhDSXNYRzRnSUgwc1hHNTlLVnh1UUcxdlpHVnNLQ2xjYm1WNGNHOXlkQ0JqYkdGemN5QkJaMlZ1ZEU1dlpHVWdaWGgwWlc1a2N5Qk5iMlJsYkNCN1hHNGdJQzh2SUMwdExTQkpibkIxZEhNZ0tHeGxablFnYzJsa1pTa2dMUzB0WEc1Y2JpQWdRSEpsY1hWcGNtVmtLQ2xjYmlBZ1FIVnBaV3hsYldWdWRDaGNJblJsZUhSaGNtVmhYQ0lzSUh0Y2JpQWdJQ0JzWVdKbGJEb2dYQ0pRY205dGNIUmNJaXhjYmlBZ0lDQndiR0ZqWldodmJHUmxjam9nWENKRmJuUmxjaUIwWVhOcklIQnliMjF3ZEM0Z1UzVndjRzl5ZEhNZ2NHeGhZMlZvYjJ4a1pYSnpJR3hwYTJVZ2Uzc2dKR2x1Y0hWMExtSnlhV1ZtSUgxOUlHOXlJSHQ3SUNSdWIyUmxXMXhjWENKU1pYTmxZWEpqYUZ4Y1hDSmRMbTkxZEhCMWRDNXpkVzF0WVhKNUlIMTlYQ0lzWEc0Z0lIMHBYRzRnSUVCcGJuQjFkQ2g3SUdoaGJtUnNaVG9nWENKd2NtOXRjSFJjSWlCOUtWeHVJQ0J3Y205dGNIUWhPaUJ6ZEhKcGJtYzdYRzVjYmlBZ0x5OGdMUzB0SUU5MWRIQjFkSE1nS0hKcFoyaDBJSE5wWkdVcElDMHRMVnh1WEc0Z0lFQnlaWEYxYVhKbFpDZ3BYRzRnSUVCMWFXVnNaVzFsYm5Rb1hDSjBaWGgwWVhKbFlWd2lMQ0I3SUd4aFltVnNPaUJjSWxKbGMzQnZibk5sWENJc0lIQnNZV05sYUc5c1pHVnlPaUJjSWtGblpXNTBJSEpsYzNCdmJuTmxYQ0lnZlNsY2JpQWdRRzkxZEhCMWRDaDdJR2hoYm1Sc1pUb2dYQ0p5WlhOd2IyNXpaVndpSUgwcFhHNGdJSEpsYzNCdmJuTmxJVG9nYzNSeWFXNW5PMXh1WEc0Z0lFQnlaWEYxYVhKbFpDZ3BYRzRnSUVCMWFXVnNaVzFsYm5Rb1hDSjBaWGgwWVhKbFlWd2lMQ0I3SUd4aFltVnNPaUJjSWtGamRHbHZibk5jSWl3Z2NHeGhZMlZvYjJ4a1pYSTZJRndpUVdOMGFXOXVjeUIwWVd0bGJpQmllU0IwYUdVZ1lXZGxiblJjSWlCOUtWeHVJQ0JBYjNWMGNIVjBLSHNnYUdGdVpHeGxPaUJjSW1GamRHbHZibk5jSWlCOUtWeHVJQ0JoWTNScGIyNXpJVG9nZFc1cmJtOTNibHRkTzF4dVhHNGdJQzh2SUMwdExTQkRiMjV1WldOMGFXOXVjeUFvWW05MGRHOXRJSE5wWkdVcElDMHRMVnh1WEc0Z0lFQmpiMjV1WldOMGFXOXVLSHNnWTJGMFpXZHZjbms2SUZ3aWJXOWtaV3hjSWl3Z2FHRnVaR3hsT2lCY0ltMXZaR1ZzWENJZ2ZTbGNiaUFnYlc5a1pXd2hPaUIxYm10dWIzZHVPMXh1WEc0Z0lFQmpiMjV1WldOMGFXOXVLSHNnWTJGMFpXZHZjbms2SUZ3aWJXVnRiM0o1WENJc0lHaGhibVJzWlRvZ1hDSnRaVzF2Y25sY0lpQjlLVnh1SUNCdFpXMXZjbmtoT2lCMWJtdHViM2R1TzF4dVhHNGdJRUJqYjI1dVpXTjBhVzl1S0hzZ1kyRjBaV2R2Y25rNklGd2lkMjl5YTNOd1lXTmxYQ0lzSUdoaGJtUnNaVG9nWENKM2IzSnJjM0JoWTJWY0lpQjlLVnh1SUNCM2IzSnJjM0JoWTJVaE9pQjFibXR1YjNkdU8xeHVmVnh1WEc0dktpcGNiaUFxSUVGc2JDQmlkV2xzZEMxcGJpQmhaMlZ1ZENCdWIyUmxJR052Ym5OMGNuVmpkRzl5Y3k1Y2JpQXFMMXh1Wlhod2IzSjBJR052Ym5OMElFZFNRVkJJWDBGSFJVNVVYMDVQUkVWVElEMGdXMEZuWlc1MFRtOWtaVjBnWVhNZ1kyOXVjM1E3WEc0aVhYMD0iXX0=
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerBuiltinCategoryStyles = registerBuiltinCategoryStyles;
4
+ /**
5
+ * @module integrations/graph/nodes/category-styles
6
+ * @summary Built-in node/connection category style registrations.
7
+ * @description Registers default colors and icons for the built-in node and
8
+ * connection categories (DECAF-32 §21.2). The `color` / `icon` on a node's
9
+ * `@node()` metadata are optional overrides — when omitted, the effective
10
+ * style is resolved from the category registry.
11
+ */
12
+ const graph_1 = require("@decaf-ts/ui-decorators/graph");
13
+ /**
14
+ * Registers all built-in category styles. Called once at module init.
15
+ *
16
+ * Categories define the default visual style for nodes and connection ports.
17
+ * A node's explicit `color` / `icon` (on `@node()`) overrides the category
18
+ * style; when omitted, the category style is used.
19
+ */
20
+ function registerBuiltinCategoryStyles() {
21
+ // Node categories
22
+ (0, graph_1.registerGraphCategoryStyle)("Trigger", { color: "#3b82f6", icon: "ti-bolt" });
23
+ (0, graph_1.registerGraphCategoryStyle)("Flow Control", { color: "#f59e0b", icon: "ti-arrows-split-2" });
24
+ (0, graph_1.registerGraphCategoryStyle)("Utility", { color: "#0d9488", icon: "ti-tool" });
25
+ (0, graph_1.registerGraphCategoryStyle)("Loop", { color: "#eab308", icon: "ti-repeat" });
26
+ (0, graph_1.registerGraphCategoryStyle)("Workflow", { color: "#f97316", icon: "ti-sitemap" });
27
+ (0, graph_1.registerGraphCategoryStyle)("Pipeline", { color: "#0ea5e9", icon: "ti-git-merge" });
28
+ (0, graph_1.registerGraphCategoryStyle)("Node", { color: "#8b5cf6", icon: "ti-point-filled" });
29
+ (0, graph_1.registerGraphCategoryStyle)("Agent", { color: "#7c3aed", icon: "ti-robot" });
30
+ // Connection categories (for @connection() ports)
31
+ (0, graph_1.registerGraphCategoryStyle)("model", { color: "#3b82f6", icon: "ti-cpu" });
32
+ (0, graph_1.registerGraphCategoryStyle)("memory", { color: "#10b981", icon: "ti-database" });
33
+ (0, graph_1.registerGraphCategoryStyle)("workspace", { color: "#f59e0b", icon: "ti-folder" });
34
+ }
35
+ // Register at module load so the styles are available immediately.
36
+ registerBuiltinCategoryStyles();
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktc3R5bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2dyYXBoL25vZGVzL2NhdGVnb3J5LXN0eWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztHQU9HO0FBQ0gsT0FBTyxFQUNMLDBCQUEwQixHQUMzQixNQUFNLCtCQUErQixDQUFDO0FBRXZDOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSw2QkFBNkI7SUFDM0Msa0JBQWtCO0lBQ2xCLDBCQUEwQixDQUFDLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDN0UsMEJBQTBCLENBQUMsY0FBYyxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO0lBQzVGLDBCQUEwQixDQUFDLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDN0UsMEJBQTBCLENBQUMsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUM1RSwwQkFBMEIsQ0FBQyxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ2pGLDBCQUEwQixDQUFDLFVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDbkYsMEJBQTBCLENBQUMsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO0lBQ2xGLDBCQUEwQixDQUFDLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFFNUUsa0RBQWtEO0lBQ2xELDBCQUEwQixDQUFDLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDMUUsMEJBQTBCLENBQUMsUUFBUSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUNoRiwwQkFBMEIsQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBQ25GLENBQUM7QUFFRCxtRUFBbUU7QUFDbkUsNkJBQTZCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvZ3JhcGgvbm9kZXMvY2F0ZWdvcnktc3R5bGVzXG4gKiBAc3VtbWFyeSBCdWlsdC1pbiBub2RlL2Nvbm5lY3Rpb24gY2F0ZWdvcnkgc3R5bGUgcmVnaXN0cmF0aW9ucy5cbiAqIEBkZXNjcmlwdGlvbiBSZWdpc3RlcnMgZGVmYXVsdCBjb2xvcnMgYW5kIGljb25zIGZvciB0aGUgYnVpbHQtaW4gbm9kZSBhbmRcbiAqIGNvbm5lY3Rpb24gY2F0ZWdvcmllcyAoREVDQUYtMzIgwqcyMS4yKS4gVGhlIGBjb2xvcmAgLyBgaWNvbmAgb24gYSBub2RlJ3NcbiAqIGBAbm9kZSgpYCBtZXRhZGF0YSBhcmUgb3B0aW9uYWwgb3ZlcnJpZGVzIOKAlCB3aGVuIG9taXR0ZWQsIHRoZSBlZmZlY3RpdmVcbiAqIHN0eWxlIGlzIHJlc29sdmVkIGZyb20gdGhlIGNhdGVnb3J5IHJlZ2lzdHJ5LlxuICovXG5pbXBvcnQge1xuICByZWdpc3RlckdyYXBoQ2F0ZWdvcnlTdHlsZSxcbn0gZnJvbSBcIkBkZWNhZi10cy91aS1kZWNvcmF0b3JzL2dyYXBoXCI7XG5cbi8qKlxuICogUmVnaXN0ZXJzIGFsbCBidWlsdC1pbiBjYXRlZ29yeSBzdHlsZXMuIENhbGxlZCBvbmNlIGF0IG1vZHVsZSBpbml0LlxuICpcbiAqIENhdGVnb3JpZXMgZGVmaW5lIHRoZSBkZWZhdWx0IHZpc3VhbCBzdHlsZSBmb3Igbm9kZXMgYW5kIGNvbm5lY3Rpb24gcG9ydHMuXG4gKiBBIG5vZGUncyBleHBsaWNpdCBgY29sb3JgIC8gYGljb25gIChvbiBgQG5vZGUoKWApIG92ZXJyaWRlcyB0aGUgY2F0ZWdvcnlcbiAqIHN0eWxlOyB3aGVuIG9taXR0ZWQsIHRoZSBjYXRlZ29yeSBzdHlsZSBpcyB1c2VkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJCdWlsdGluQ2F0ZWdvcnlTdHlsZXMoKTogdm9pZCB7XG4gIC8vIE5vZGUgY2F0ZWdvcmllc1xuICByZWdpc3RlckdyYXBoQ2F0ZWdvcnlTdHlsZShcIlRyaWdnZXJcIiwgeyBjb2xvcjogXCIjM2I4MmY2XCIsIGljb246IFwidGktYm9sdFwiIH0pO1xuICByZWdpc3RlckdyYXBoQ2F0ZWdvcnlTdHlsZShcIkZsb3cgQ29udHJvbFwiLCB7IGNvbG9yOiBcIiNmNTllMGJcIiwgaWNvbjogXCJ0aS1hcnJvd3Mtc3BsaXQtMlwiIH0pO1xuICByZWdpc3RlckdyYXBoQ2F0ZWdvcnlTdHlsZShcIlV0aWxpdHlcIiwgeyBjb2xvcjogXCIjMGQ5NDg4XCIsIGljb246IFwidGktdG9vbFwiIH0pO1xuICByZWdpc3RlckdyYXBoQ2F0ZWdvcnlTdHlsZShcIkxvb3BcIiwgeyBjb2xvcjogXCIjZWFiMzA4XCIsIGljb246IFwidGktcmVwZWF0XCIgfSk7XG4gIHJlZ2lzdGVyR3JhcGhDYXRlZ29yeVN0eWxlKFwiV29ya2Zsb3dcIiwgeyBjb2xvcjogXCIjZjk3MzE2XCIsIGljb246IFwidGktc2l0ZW1hcFwiIH0pO1xuICByZWdpc3RlckdyYXBoQ2F0ZWdvcnlTdHlsZShcIlBpcGVsaW5lXCIsIHsgY29sb3I6IFwiIzBlYTVlOVwiLCBpY29uOiBcInRpLWdpdC1tZXJnZVwiIH0pO1xuICByZWdpc3RlckdyYXBoQ2F0ZWdvcnlTdHlsZShcIk5vZGVcIiwgeyBjb2xvcjogXCIjOGI1Y2Y2XCIsIGljb246IFwidGktcG9pbnQtZmlsbGVkXCIgfSk7XG4gIHJlZ2lzdGVyR3JhcGhDYXRlZ29yeVN0eWxlKFwiQWdlbnRcIiwgeyBjb2xvcjogXCIjN2MzYWVkXCIsIGljb246IFwidGktcm9ib3RcIiB9KTtcblxuICAvLyBDb25uZWN0aW9uIGNhdGVnb3JpZXMgKGZvciBAY29ubmVjdGlvbigpIHBvcnRzKVxuICByZWdpc3RlckdyYXBoQ2F0ZWdvcnlTdHlsZShcIm1vZGVsXCIsIHsgY29sb3I6IFwiIzNiODJmNlwiLCBpY29uOiBcInRpLWNwdVwiIH0pO1xuICByZWdpc3RlckdyYXBoQ2F0ZWdvcnlTdHlsZShcIm1lbW9yeVwiLCB7IGNvbG9yOiBcIiMxMGI5ODFcIiwgaWNvbjogXCJ0aS1kYXRhYmFzZVwiIH0pO1xuICByZWdpc3RlckdyYXBoQ2F0ZWdvcnlTdHlsZShcIndvcmtzcGFjZVwiLCB7IGNvbG9yOiBcIiNmNTllMGJcIiwgaWNvbjogXCJ0aS1mb2xkZXJcIiB9KTtcbn1cblxuLy8gUmVnaXN0ZXIgYXQgbW9kdWxlIGxvYWQgc28gdGhlIHN0eWxlcyBhcmUgYXZhaWxhYmxlIGltbWVkaWF0ZWx5LlxucmVnaXN0ZXJCdWlsdGluQ2F0ZWdvcnlTdHlsZXMoKTtcbiJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktc3R5bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2F0ZWdvcnktc3R5bGVzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBZ0JBLHNFQWNDO0FBOUJEOzs7Ozs7O0dBT0c7QUFDSCx5REFBNEU7QUFDNUU7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsNkJBQTZCO0lBQ3pDLGtCQUFrQjtJQUNsQixJQUFBLGtDQUEwQixFQUFDLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDN0UsSUFBQSxrQ0FBMEIsRUFBQyxjQUFjLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7SUFDNUYsSUFBQSxrQ0FBMEIsRUFBQyxTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQzdFLElBQUEsa0NBQTBCLEVBQUMsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUM1RSxJQUFBLGtDQUEwQixFQUFDLFVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDakYsSUFBQSxrQ0FBMEIsRUFBQyxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQ25GLElBQUEsa0NBQTBCLEVBQUMsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO0lBQ2xGLElBQUEsa0NBQTBCLEVBQUMsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUM1RSxrREFBa0Q7SUFDbEQsSUFBQSxrQ0FBMEIsRUFBQyxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzFFLElBQUEsa0NBQTBCLEVBQUMsUUFBUSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUNoRixJQUFBLGtDQUEwQixFQUFDLFdBQVcsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDckYsQ0FBQztBQUNELG1FQUFtRTtBQUNuRSw2QkFBNkIsRUFBRSxDQUFDO0FBQ2hDLDAwSUFBMDBJIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9ncmFwaC9ub2Rlcy9jYXRlZ29yeS1zdHlsZXNcbiAqIEBzdW1tYXJ5IEJ1aWx0LWluIG5vZGUvY29ubmVjdGlvbiBjYXRlZ29yeSBzdHlsZSByZWdpc3RyYXRpb25zLlxuICogQGRlc2NyaXB0aW9uIFJlZ2lzdGVycyBkZWZhdWx0IGNvbG9ycyBhbmQgaWNvbnMgZm9yIHRoZSBidWlsdC1pbiBub2RlIGFuZFxuICogY29ubmVjdGlvbiBjYXRlZ29yaWVzIChERUNBRi0zMiDCpzIxLjIpLiBUaGUgYGNvbG9yYCAvIGBpY29uYCBvbiBhIG5vZGUnc1xuICogYEBub2RlKClgIG1ldGFkYXRhIGFyZSBvcHRpb25hbCBvdmVycmlkZXMg4oCUIHdoZW4gb21pdHRlZCwgdGhlIGVmZmVjdGl2ZVxuICogc3R5bGUgaXMgcmVzb2x2ZWQgZnJvbSB0aGUgY2F0ZWdvcnkgcmVnaXN0cnkuXG4gKi9cbmltcG9ydCB7IHJlZ2lzdGVyR3JhcGhDYXRlZ29yeVN0eWxlLCB9IGZyb20gXCJAZGVjYWYtdHMvdWktZGVjb3JhdG9ycy9ncmFwaFwiO1xuLyoqXG4gKiBSZWdpc3RlcnMgYWxsIGJ1aWx0LWluIGNhdGVnb3J5IHN0eWxlcy4gQ2FsbGVkIG9uY2UgYXQgbW9kdWxlIGluaXQuXG4gKlxuICogQ2F0ZWdvcmllcyBkZWZpbmUgdGhlIGRlZmF1bHQgdmlzdWFsIHN0eWxlIGZvciBub2RlcyBhbmQgY29ubmVjdGlvbiBwb3J0cy5cbiAqIEEgbm9kZSdzIGV4cGxpY2l0IGBjb2xvcmAgLyBgaWNvbmAgKG9uIGBAbm9kZSgpYCkgb3ZlcnJpZGVzIHRoZSBjYXRlZ29yeVxuICogc3R5bGU7IHdoZW4gb21pdHRlZCwgdGhlIGNhdGVnb3J5IHN0eWxlIGlzIHVzZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckJ1aWx0aW5DYXRlZ29yeVN0eWxlcygpIHtcbiAgICAvLyBOb2RlIGNhdGVnb3JpZXNcbiAgICByZWdpc3RlckdyYXBoQ2F0ZWdvcnlTdHlsZShcIlRyaWdnZXJcIiwgeyBjb2xvcjogXCIjM2I4MmY2XCIsIGljb246IFwidGktYm9sdFwiIH0pO1xuICAgIHJlZ2lzdGVyR3JhcGhDYXRlZ29yeVN0eWxlKFwiRmxvdyBDb250cm9sXCIsIHsgY29sb3I6IFwiI2Y1OWUwYlwiLCBpY29uOiBcInRpLWFycm93cy1zcGxpdC0yXCIgfSk7XG4gICAgcmVnaXN0ZXJHcmFwaENhdGVnb3J5U3R5bGUoXCJVdGlsaXR5XCIsIHsgY29sb3I6IFwiIzBkOTQ4OFwiLCBpY29uOiBcInRpLXRvb2xcIiB9KTtcbiAgICByZWdpc3RlckdyYXBoQ2F0ZWdvcnlTdHlsZShcIkxvb3BcIiwgeyBjb2xvcjogXCIjZWFiMzA4XCIsIGljb246IFwidGktcmVwZWF0XCIgfSk7XG4gICAgcmVnaXN0ZXJHcmFwaENhdGVnb3J5U3R5bGUoXCJXb3JrZmxvd1wiLCB7IGNvbG9yOiBcIiNmOTczMTZcIiwgaWNvbjogXCJ0aS1zaXRlbWFwXCIgfSk7XG4gICAgcmVnaXN0ZXJHcmFwaENhdGVnb3J5U3R5bGUoXCJQaXBlbGluZVwiLCB7IGNvbG9yOiBcIiMwZWE1ZTlcIiwgaWNvbjogXCJ0aS1naXQtbWVyZ2VcIiB9KTtcbiAgICByZWdpc3RlckdyYXBoQ2F0ZWdvcnlTdHlsZShcIk5vZGVcIiwgeyBjb2xvcjogXCIjOGI1Y2Y2XCIsIGljb246IFwidGktcG9pbnQtZmlsbGVkXCIgfSk7XG4gICAgcmVnaXN0ZXJHcmFwaENhdGVnb3J5U3R5bGUoXCJBZ2VudFwiLCB7IGNvbG9yOiBcIiM3YzNhZWRcIiwgaWNvbjogXCJ0aS1yb2JvdFwiIH0pO1xuICAgIC8vIENvbm5lY3Rpb24gY2F0ZWdvcmllcyAoZm9yIEBjb25uZWN0aW9uKCkgcG9ydHMpXG4gICAgcmVnaXN0ZXJHcmFwaENhdGVnb3J5U3R5bGUoXCJtb2RlbFwiLCB7IGNvbG9yOiBcIiMzYjgyZjZcIiwgaWNvbjogXCJ0aS1jcHVcIiB9KTtcbiAgICByZWdpc3RlckdyYXBoQ2F0ZWdvcnlTdHlsZShcIm1lbW9yeVwiLCB7IGNvbG9yOiBcIiMxMGI5ODFcIiwgaWNvbjogXCJ0aS1kYXRhYmFzZVwiIH0pO1xuICAgIHJlZ2lzdGVyR3JhcGhDYXRlZ29yeVN0eWxlKFwid29ya3NwYWNlXCIsIHsgY29sb3I6IFwiI2Y1OWUwYlwiLCBpY29uOiBcInRpLWZvbGRlclwiIH0pO1xufVxuLy8gUmVnaXN0ZXIgYXQgbW9kdWxlIGxvYWQgc28gdGhlIHN0eWxlcyBhcmUgYXZhaWxhYmxlIGltbWVkaWF0ZWx5LlxucmVnaXN0ZXJCdWlsdGluQ2F0ZWdvcnlTdHlsZXMoKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVkyRjBaV2R2Y25rdGMzUjViR1Z6TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZMaTR2YzNKakwyZHlZWEJvTDI1dlpHVnpMMk5oZEdWbmIzSjVMWE4wZVd4bGN5NTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVRzN096czdPenRIUVU5SE8wRkJRMGdzVDBGQlR5eEZRVU5NTERCQ1FVRXdRaXhIUVVNelFpeE5RVUZOTEN0Q1FVRXJRaXhEUVVGRE8wRkJSWFpET3pzN096czdSMEZOUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3cyUWtGQk5rSTdTVUZETTBNc2EwSkJRV3RDTzBsQlEyeENMREJDUVVFd1FpeERRVUZETEZOQlFWTXNSVUZCUlN4RlFVRkZMRXRCUVVzc1JVRkJSU3hUUVVGVExFVkJRVVVzU1VGQlNTeEZRVUZGTEZOQlFWTXNSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkROMFVzTUVKQlFUQkNMRU5CUVVNc1kwRkJZeXhGUVVGRkxFVkJRVVVzUzBGQlN5eEZRVUZGTEZOQlFWTXNSVUZCUlN4SlFVRkpMRVZCUVVVc2JVSkJRVzFDTEVWQlFVVXNRMEZCUXl4RFFVRkRPMGxCUXpWR0xEQkNRVUV3UWl4RFFVRkRMRk5CUVZNc1JVRkJSU3hGUVVGRkxFdEJRVXNzUlVGQlJTeFRRVUZUTEVWQlFVVXNTVUZCU1N4RlFVRkZMRk5CUVZNc1JVRkJSU3hEUVVGRExFTkJRVU03U1VGRE4wVXNNRUpCUVRCQ0xFTkJRVU1zVFVGQlRTeEZRVUZGTEVWQlFVVXNTMEZCU3l4RlFVRkZMRk5CUVZNc1JVRkJSU3hKUVVGSkxFVkJRVVVzVjBGQlZ5eEZRVUZGTEVOQlFVTXNRMEZCUXp0SlFVTTFSU3d3UWtGQk1FSXNRMEZCUXl4VlFVRlZMRVZCUVVVc1JVRkJSU3hMUVVGTExFVkJRVVVzVTBGQlV5eEZRVUZGTEVsQlFVa3NSVUZCUlN4WlFVRlpMRVZCUVVVc1EwRkJReXhEUVVGRE8wbEJRMnBHTERCQ1FVRXdRaXhEUVVGRExGVkJRVlVzUlVGQlJTeEZRVUZGTEV0QlFVc3NSVUZCUlN4VFFVRlRMRVZCUVVVc1NVRkJTU3hGUVVGRkxHTkJRV01zUlVGQlJTeERRVUZETEVOQlFVTTdTVUZEYmtZc01FSkJRVEJDTEVOQlFVTXNUVUZCVFN4RlFVRkZMRVZCUVVVc1MwRkJTeXhGUVVGRkxGTkJRVk1zUlVGQlJTeEpRVUZKTEVWQlFVVXNhVUpCUVdsQ0xFVkJRVVVzUTBGQlF5eERRVUZETzBsQlEyeEdMREJDUVVFd1FpeERRVUZETEU5QlFVOHNSVUZCUlN4RlFVRkZMRXRCUVVzc1JVRkJSU3hUUVVGVExFVkJRVVVzU1VGQlNTeEZRVUZGTEZWQlFWVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkZOVVVzYTBSQlFXdEVPMGxCUTJ4RUxEQkNRVUV3UWl4RFFVRkRMRTlCUVU4c1JVRkJSU3hGUVVGRkxFdEJRVXNzUlVGQlJTeFRRVUZUTEVWQlFVVXNTVUZCU1N4RlFVRkZMRkZCUVZFc1JVRkJSU3hEUVVGRExFTkJRVU03U1VGRE1VVXNNRUpCUVRCQ0xFTkJRVU1zVVVGQlVTeEZRVUZGTEVWQlFVVXNTMEZCU3l4RlFVRkZMRk5CUVZNc1JVRkJSU3hKUVVGSkxFVkJRVVVzWVVGQllTeEZRVUZGTEVOQlFVTXNRMEZCUXp0SlFVTm9SaXd3UWtGQk1FSXNRMEZCUXl4WFFVRlhMRVZCUVVVc1JVRkJSU3hMUVVGTExFVkJRVVVzVTBGQlV5eEZRVUZGTEVsQlFVa3NSVUZCUlN4WFFVRlhMRVZCUVVVc1EwRkJReXhEUVVGRE8wRkJRMjVHTEVOQlFVTTdRVUZGUkN4dFJVRkJiVVU3UVVGRGJrVXNOa0pCUVRaQ0xFVkJRVVVzUTBGQlF5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJaThxS2x4dUlDb2dRRzF2WkhWc1pTQnBiblJsWjNKaGRHbHZibk12WjNKaGNHZ3ZibTlrWlhNdlkyRjBaV2R2Y25rdGMzUjViR1Z6WEc0Z0tpQkFjM1Z0YldGeWVTQkNkV2xzZEMxcGJpQnViMlJsTDJOdmJtNWxZM1JwYjI0Z1kyRjBaV2R2Y25rZ2MzUjViR1VnY21WbmFYTjBjbUYwYVc5dWN5NWNiaUFxSUVCa1pYTmpjbWx3ZEdsdmJpQlNaV2RwYzNSbGNuTWdaR1ZtWVhWc2RDQmpiMnh2Y25NZ1lXNWtJR2xqYjI1eklHWnZjaUIwYUdVZ1luVnBiSFF0YVc0Z2JtOWtaU0JoYm1SY2JpQXFJR052Ym01bFkzUnBiMjRnWTJGMFpXZHZjbWxsY3lBb1JFVkRRVVl0TXpJZ3dxY3lNUzR5S1M0Z1ZHaGxJR0JqYjJ4dmNtQWdMeUJnYVdOdmJtQWdiMjRnWVNCdWIyUmxKM05jYmlBcUlHQkFibTlrWlNncFlDQnRaWFJoWkdGMFlTQmhjbVVnYjNCMGFXOXVZV3dnYjNabGNuSnBaR1Z6SU9LQWxDQjNhR1Z1SUc5dGFYUjBaV1FzSUhSb1pTQmxabVpsWTNScGRtVmNiaUFxSUhOMGVXeGxJR2x6SUhKbGMyOXNkbVZrSUdaeWIyMGdkR2hsSUdOaGRHVm5iM0o1SUhKbFoybHpkSEo1TGx4dUlDb3ZYRzVwYlhCdmNuUWdlMXh1SUNCeVpXZHBjM1JsY2tkeVlYQm9RMkYwWldkdmNubFRkSGxzWlN4Y2JuMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OTFhUzFrWldOdmNtRjBiM0p6TDJkeVlYQm9YQ0k3WEc1Y2JpOHFLbHh1SUNvZ1VtVm5hWE4wWlhKeklHRnNiQ0JpZFdsc2RDMXBiaUJqWVhSbFoyOXllU0J6ZEhsc1pYTXVJRU5oYkd4bFpDQnZibU5sSUdGMElHMXZaSFZzWlNCcGJtbDBMbHh1SUNwY2JpQXFJRU5oZEdWbmIzSnBaWE1nWkdWbWFXNWxJSFJvWlNCa1pXWmhkV3gwSUhacGMzVmhiQ0J6ZEhsc1pTQm1iM0lnYm05a1pYTWdZVzVrSUdOdmJtNWxZM1JwYjI0Z2NHOXlkSE11WEc0Z0tpQkJJRzV2WkdVbmN5QmxlSEJzYVdOcGRDQmdZMjlzYjNKZ0lDOGdZR2xqYjI1Z0lDaHZiaUJnUUc1dlpHVW9LV0FwSUc5MlpYSnlhV1JsY3lCMGFHVWdZMkYwWldkdmNubGNiaUFxSUhOMGVXeGxPeUIzYUdWdUlHOXRhWFIwWldRc0lIUm9aU0JqWVhSbFoyOXllU0J6ZEhsc1pTQnBjeUIxYzJWa0xseHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnY21WbmFYTjBaWEpDZFdsc2RHbHVRMkYwWldkdmNubFRkSGxzWlhNb0tUb2dkbTlwWkNCN1hHNGdJQzh2SUU1dlpHVWdZMkYwWldkdmNtbGxjMXh1SUNCeVpXZHBjM1JsY2tkeVlYQm9RMkYwWldkdmNubFRkSGxzWlNoY0lsUnlhV2RuWlhKY0lpd2dleUJqYjJ4dmNqb2dYQ0lqTTJJNE1tWTJYQ0lzSUdsamIyNDZJRndpZEdrdFltOXNkRndpSUgwcE8xeHVJQ0J5WldkcGMzUmxja2R5WVhCb1EyRjBaV2R2Y25sVGRIbHNaU2hjSWtac2IzY2dRMjl1ZEhKdmJGd2lMQ0I3SUdOdmJHOXlPaUJjSWlObU5UbGxNR0pjSWl3Z2FXTnZiam9nWENKMGFTMWhjbkp2ZDNNdGMzQnNhWFF0TWx3aUlIMHBPMXh1SUNCeVpXZHBjM1JsY2tkeVlYQm9RMkYwWldkdmNubFRkSGxzWlNoY0lsVjBhV3hwZEhsY0lpd2dleUJqYjJ4dmNqb2dYQ0lqTUdRNU5EZzRYQ0lzSUdsamIyNDZJRndpZEdrdGRHOXZiRndpSUgwcE8xeHVJQ0J5WldkcGMzUmxja2R5WVhCb1EyRjBaV2R2Y25sVGRIbHNaU2hjSWt4dmIzQmNJaXdnZXlCamIyeHZjam9nWENJalpXRmlNekE0WENJc0lHbGpiMjQ2SUZ3aWRHa3RjbVZ3WldGMFhDSWdmU2s3WEc0Z0lISmxaMmx6ZEdWeVIzSmhjR2hEWVhSbFoyOXllVk4wZVd4bEtGd2lWMjl5YTJac2IzZGNJaXdnZXlCamIyeHZjam9nWENJalpqazNNekUyWENJc0lHbGpiMjQ2SUZ3aWRHa3RjMmwwWlcxaGNGd2lJSDBwTzF4dUlDQnlaV2RwYzNSbGNrZHlZWEJvUTJGMFpXZHZjbmxUZEhsc1pTaGNJbEJwY0dWc2FXNWxYQ0lzSUhzZ1kyOXNiM0k2SUZ3aUl6QmxZVFZsT1Z3aUxDQnBZMjl1T2lCY0luUnBMV2RwZEMxdFpYSm5aVndpSUgwcE8xeHVJQ0J5WldkcGMzUmxja2R5WVhCb1EyRjBaV2R2Y25sVGRIbHNaU2hjSWs1dlpHVmNJaXdnZXlCamIyeHZjam9nWENJak9HSTFZMlkyWENJc0lHbGpiMjQ2SUZ3aWRHa3RjRzlwYm5RdFptbHNiR1ZrWENJZ2ZTazdYRzRnSUhKbFoybHpkR1Z5UjNKaGNHaERZWFJsWjI5eWVWTjBlV3hsS0Z3aVFXZGxiblJjSWl3Z2V5QmpiMnh2Y2pvZ1hDSWpOMk16WVdWa1hDSXNJR2xqYjI0NklGd2lkR2t0Y205aWIzUmNJaUI5S1R0Y2JseHVJQ0F2THlCRGIyNXVaV04wYVc5dUlHTmhkR1ZuYjNKcFpYTWdLR1p2Y2lCQVkyOXVibVZqZEdsdmJpZ3BJSEJ2Y25SektWeHVJQ0J5WldkcGMzUmxja2R5WVhCb1EyRjBaV2R2Y25sVGRIbHNaU2hjSW0xdlpHVnNYQ0lzSUhzZ1kyOXNiM0k2SUZ3aUl6TmlPREptTmx3aUxDQnBZMjl1T2lCY0luUnBMV053ZFZ3aUlIMHBPMXh1SUNCeVpXZHBjM1JsY2tkeVlYQm9RMkYwWldkdmNubFRkSGxzWlNoY0ltMWxiVzl5ZVZ3aUxDQjdJR052Ykc5eU9pQmNJaU14TUdJNU9ERmNJaXdnYVdOdmJqb2dYQ0owYVMxa1lYUmhZbUZ6WlZ3aUlIMHBPMXh1SUNCeVpXZHBjM1JsY2tkeVlYQm9RMkYwWldkdmNubFRkSGxzWlNoY0luZHZjbXR6Y0dGalpWd2lMQ0I3SUdOdmJHOXlPaUJjSWlObU5UbGxNR0pjSWl3Z2FXTnZiam9nWENKMGFTMW1iMnhrWlhKY0lpQjlLVHRjYm4xY2JseHVMeThnVW1WbmFYTjBaWElnWVhRZ2JXOWtkV3hsSUd4dllXUWdjMjhnZEdobElITjBlV3hsY3lCaGNtVWdZWFpoYVd4aFlteGxJR2x0YldWa2FXRjBaV3g1TGx4dWNtVm5hWE4wWlhKQ2RXbHNkR2x1UTJGMFpXZHZjbmxUZEhsc1pYTW9LVHRjYmlKZGZRPT0iXX0=