@valtimo/plugin 12.6.0 → 12.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/plugins/portaaltaak/components/create-portal-task/create-portal-task.component.mjs +5 -3
- package/esm2022/lib/plugins/portaaltaak/portaaltaak-plugin.specification.mjs +27 -15
- package/esm2022/lib/plugins/smart-documents/components/generate-document-configuration/generate-document-configuration.component.mjs +5 -3
- package/esm2022/lib/plugins/smart-documents/smart-documents-plugin.specification.mjs +7 -1
- package/esm2022/lib/plugins/verzoek/components/verzoek-configuration/verzoek-configuration.component.mjs +9 -4
- package/fesm2022/valtimo-plugin.mjs +46 -21
- package/fesm2022/valtimo-plugin.mjs.map +1 -1
- package/lib/plugins/portaaltaak/components/create-portal-task/create-portal-task.component.d.ts +2 -1
- package/lib/plugins/portaaltaak/components/create-portal-task/create-portal-task.component.d.ts.map +1 -1
- package/lib/plugins/portaaltaak/portaaltaak-plugin.specification.d.ts.map +1 -1
- package/lib/plugins/smart-documents/components/generate-document-configuration/generate-document-configuration.component.d.ts +2 -0
- package/lib/plugins/smart-documents/components/generate-document-configuration/generate-document-configuration.component.d.ts.map +1 -1
- package/lib/plugins/smart-documents/smart-documents-plugin.specification.d.ts.map +1 -1
- package/lib/plugins/verzoek/components/verzoek-configuration/verzoek-configuration.component.d.ts +3 -1
- package/lib/plugins/verzoek/components/verzoek-configuration/verzoek-configuration.component.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -46,6 +46,8 @@ const smartDocumentsPluginSpecification = {
|
|
|
46
46
|
resultingDocumentProcessVariableName: 'Naam procesvariabele voor opslag document',
|
|
47
47
|
resultingDocumentProcessVariableNameTooltip: 'De locatie van het gegenereerde document wordt opgeslagen in een procesvariabele. Deze procesvariabele kan gebruikt worden om het document te verwerken in een andere BPMN-taak.',
|
|
48
48
|
generateDocumentWarning: 'Deze actie genereert een tijdelijk bestand. Het verwerken hiervan moet door een andere actie worden gedaan.',
|
|
49
|
+
key: 'Sleutel',
|
|
50
|
+
value: 'Waarde',
|
|
49
51
|
},
|
|
50
52
|
en: {
|
|
51
53
|
title: 'SmartDocuments',
|
|
@@ -67,6 +69,8 @@ const smartDocumentsPluginSpecification = {
|
|
|
67
69
|
resultingDocumentProcessVariableName: 'Process variable name for storing document',
|
|
68
70
|
resultingDocumentProcessVariableNameTooltip: 'The location of the generated document is stored in a process variable. This process variable can be used to access the document in another BPMN task.',
|
|
69
71
|
generateDocumentWarning: 'This action generates a temporary file. It needs to be stored in a following task.',
|
|
72
|
+
key: 'Key',
|
|
73
|
+
value: 'Value',
|
|
70
74
|
},
|
|
71
75
|
de: {
|
|
72
76
|
title: 'SmartDocuments',
|
|
@@ -88,8 +92,10 @@ const smartDocumentsPluginSpecification = {
|
|
|
88
92
|
resultingDocumentProcessVariableName: 'Prozessvariablenname zum Speichern des Dokuments',
|
|
89
93
|
resultingDocumentProcessVariableNameTooltip: 'Der Ort des generierten Dokuments wird in einer Prozessvariablen gespeichert. Diese Prozessvariable wird verwendet, um in einer anderen BPMN-Aufgabe auf das Dokument zuzugreifen.',
|
|
90
94
|
generateDocumentWarning: 'Diese Aktion erzeugt eine temporäre Datei. Die Verarbeitung muss durch eine andere Aktion erfolgen.',
|
|
95
|
+
key: 'Schlüssel',
|
|
96
|
+
value: 'Wert',
|
|
91
97
|
},
|
|
92
98
|
},
|
|
93
99
|
};
|
|
94
100
|
export { smartDocumentsPluginSpecification };
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZG9jdW1lbnRzLXBsdWdpbi5zcGVjaWZpY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9wbHVnaW4vc3JjL2xpYi9wbHVnaW5zL3NtYXJ0LWRvY3VtZW50cy9zbWFydC1kb2N1bWVudHMtcGx1Z2luLnNwZWNpZmljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFHSCxPQUFPLEVBQUMsb0NBQW9DLEVBQUMsTUFBTSxvRkFBb0YsQ0FBQztBQUN4SSxPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDNUQsT0FBTyxFQUFDLHNDQUFzQyxFQUFDLE1BQU0sd0ZBQXdGLENBQUM7QUFDOUksT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sOERBQThELENBQUM7QUFFdkcsTUFBTSxpQ0FBaUMsR0FBd0I7SUFDN0QsUUFBUSxFQUFFLGdCQUFnQjtJQUMxQiw0QkFBNEIsRUFBRSxvQ0FBb0M7SUFDbEUsZ0JBQWdCLEVBQUUsa0NBQWtDO0lBQ3BELCtCQUErQixFQUFFO1FBQy9CLG1CQUFtQixFQUFFLHNDQUFzQztRQUMzRCxvQkFBb0IsRUFBRSx5QkFBeUI7S0FDaEQ7SUFDRCxrQkFBa0IsRUFBRTtRQUNsQixFQUFFLEVBQUU7WUFDRixLQUFLLEVBQUUsZ0JBQWdCO1lBQ3ZCLFdBQVcsRUFBRSwrQ0FBK0M7WUFDNUQsbUJBQW1CLEVBQUUsb0JBQW9CO1lBQ3pDLG9CQUFvQixFQUFFLHVCQUF1QjtZQUM3QyxrQkFBa0IsRUFBRSxrQkFBa0I7WUFDdEMseUJBQXlCLEVBQ3ZCLDhFQUE4RTtZQUNoRixHQUFHLEVBQUUsb0JBQW9CO1lBQ3pCLFFBQVEsRUFBRSxnQkFBZ0I7WUFDMUIsUUFBUSxFQUFFLFlBQVk7WUFDdEIsYUFBYSxFQUFFLGdCQUFnQjtZQUMvQixZQUFZLEVBQUUsZUFBZTtZQUM3QixpQkFBaUIsRUFBRSxxQkFBcUI7WUFDeEMsNENBQTRDLEVBQzFDLG1EQUFtRDtZQUNyRCxtQkFBbUIsRUFDakIsMkZBQTJGO1lBQzdGLE1BQU0sRUFBRSxpQkFBaUI7WUFDekIsWUFBWSxFQUFFLGVBQWU7WUFDN0Isb0NBQW9DLEVBQUUsMkNBQTJDO1lBQ2pGLDJDQUEyQyxFQUN6QyxrTEFBa0w7WUFDcEwsdUJBQXVCLEVBQ3JCLDZHQUE2RztTQUNoSDtRQUNELEVBQUUsRUFBRTtZQUNGLEtBQUssRUFBRSxnQkFBZ0I7WUFDdkIsV0FBVyxFQUFFLDBDQUEwQztZQUN2RCxtQkFBbUIsRUFBRSxtQkFBbUI7WUFDeEMsb0JBQW9CLEVBQUUsb0JBQW9CO1lBQzFDLGtCQUFrQixFQUFFLG9CQUFvQjtZQUN4Qyx5QkFBeUIsRUFDdkIsK0VBQStFO1lBQ2pGLEdBQUcsRUFBRSxvQkFBb0I7WUFDekIsUUFBUSxFQUFFLFVBQVU7WUFDcEIsUUFBUSxFQUFFLFVBQVU7WUFDcEIsYUFBYSxFQUFFLGdCQUFnQjtZQUMvQixZQUFZLEVBQUUsZUFBZTtZQUM3QixpQkFBaUIsRUFBRSxxQkFBcUI7WUFDeEMsNENBQTRDLEVBQUUsOENBQThDO1lBRTVGLE1BQU0sRUFBRSxpQkFBaUI7WUFDekIsWUFBWSxFQUFFLGVBQWU7WUFDN0IsbUJBQW1CLEVBQ2pCLHdGQUF3RjtZQUMxRixvQ0FBb0MsRUFBRSw0Q0FBNEM7WUFDbEYsMkNBQTJDLEVBQ3pDLHdKQUF3SjtZQUMxSix1QkFBdUIsRUFDckIsb0ZBQW9GO1NBQ3ZGO1FBQ0QsRUFBRSxFQUFFO1lBQ0YsS0FBSyxFQUFFLGdCQUFnQjtZQUN2QixXQUFXLEVBQUUsMkRBQTJEO1lBQ3hFLG1CQUFtQixFQUFFLHFCQUFxQjtZQUMxQyxvQkFBb0IsRUFBRSxvQkFBb0I7WUFDMUMsa0JBQWtCLEVBQUUsb0JBQW9CO1lBQ3hDLHlCQUF5QixFQUN2QixzRUFBc0U7WUFDeEUsR0FBRyxFQUFFLG9CQUFvQjtZQUN6QixRQUFRLEVBQUUsWUFBWTtZQUN0QixRQUFRLEVBQUUsVUFBVTtZQUNwQixhQUFhLEVBQUUsaUJBQWlCO1lBQ2hDLFlBQVksRUFBRSxlQUFlO1lBQzdCLGlCQUFpQixFQUFFLHNCQUFzQjtZQUN6Qyw0Q0FBNEMsRUFDMUMscURBQXFEO1lBQ3ZELE1BQU0sRUFBRSxnQkFBZ0I7WUFDeEIsWUFBWSxFQUFFLGVBQWU7WUFDN0IsbUJBQW1CLEVBQ2pCLDhGQUE4RjtZQUNoRyxvQ0FBb0MsRUFBRSxrREFBa0Q7WUFDeEYsMkNBQTJDLEVBQ3pDLG9MQUFvTDtZQUN0TCx1QkFBdUIsRUFDckIscUdBQXFHO1NBQ3hHO0tBQ0Y7Q0FDRixDQUFDO0FBRUYsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge1BsdWdpblNwZWNpZmljYXRpb259IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge1NtYXJ0RG9jdW1lbnRzQ29uZmlndXJhdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL3NtYXJ0LWRvY3VtZW50cy1jb25maWd1cmF0aW9uL3NtYXJ0LWRvY3VtZW50cy1jb25maWd1cmF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQge1NNQVJUX0RPQ1VNRU5UU19QTFVHSU5fTE9HT19CQVNFNjR9IGZyb20gJy4vYXNzZXRzJztcbmltcG9ydCB7R2VuZXJhdGVEb2N1bWVudENvbmZpZ3VyYXRpb25Db21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9nZW5lcmF0ZS1kb2N1bWVudC1jb25maWd1cmF0aW9uL2dlbmVyYXRlLWRvY3VtZW50LWNvbmZpZ3VyYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7R2V0VGVtcGxhdGVOYW1lc0NvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2dldC10ZW1wbGF0ZS1uYW1lcy9nZXQtdGVtcGxhdGUtbmFtZXMuY29tcG9uZW50JztcblxuY29uc3Qgc21hcnREb2N1bWVudHNQbHVnaW5TcGVjaWZpY2F0aW9uOiBQbHVnaW5TcGVjaWZpY2F0aW9uID0ge1xuICBwbHVnaW5JZDogJ3NtYXJ0ZG9jdW1lbnRzJyxcbiAgcGx1Z2luQ29uZmlndXJhdGlvbkNvbXBvbmVudDogU21hcnREb2N1bWVudHNDb25maWd1cmF0aW9uQ29tcG9uZW50LFxuICBwbHVnaW5Mb2dvQmFzZTY0OiBTTUFSVF9ET0NVTUVOVFNfUExVR0lOX0xPR09fQkFTRTY0LFxuICBmdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21wb25lbnRzOiB7XG4gICAgJ2dlbmVyYXRlLWRvY3VtZW50JzogR2VuZXJhdGVEb2N1bWVudENvbmZpZ3VyYXRpb25Db21wb25lbnQsXG4gICAgJ2dldC10ZW1wbGF0ZS1uYW1lcyc6IEdldFRlbXBsYXRlTmFtZXNDb21wb25lbnQsXG4gIH0sXG4gIHBsdWdpblRyYW5zbGF0aW9uczoge1xuICAgIG5sOiB7XG4gICAgICB0aXRsZTogJ1NtYXJ0RG9jdW1lbnRzJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQXV0b21hdGlzZWVyIGRvY3VtZW50ZW4gbWV0IHNsaW1tZSB0ZW1wbGF0ZXMuJyxcbiAgICAgICdnZW5lcmF0ZS1kb2N1bWVudCc6ICdEb2N1bWVudCBnZW5lcmVyZW4nLFxuICAgICAgJ2dldC10ZW1wbGF0ZS1uYW1lcyc6ICdUZW1wbGF0ZW5hbWVuIG9waGFsZW4nLFxuICAgICAgY29uZmlndXJhdGlvblRpdGxlOiAnQ29uZmlndXJhdGllbmFhbScsXG4gICAgICBjb25maWd1cmF0aW9uVGl0bGVUb29sdGlwOlxuICAgICAgICAnT25kZXIgZGV6ZSBuYWFtIHphbCBkZSBwbHVnaW4gdGUgaGVya2VubmVuIHppam4gaW4gZGUgcmVzdCB2YW4gZGUgYXBwbGljYXRpZScsXG4gICAgICB1cmw6ICdTbWFydERvY3VtZW50cyBVUkwnLFxuICAgICAgdXNlcm5hbWU6ICdHZWJydWlrZXJzbmFhbScsXG4gICAgICBwYXNzd29yZDogJ1dhY2h0d29vcmQnLFxuICAgICAgdGVtcGxhdGVHcm91cDogJ1RlbXBsYXRlIGdyb2VwJyxcbiAgICAgIHRlbXBsYXRlTmFtZTogJ1RlbXBsYXRlIG5hYW0nLFxuICAgICAgdGVtcGxhdGVHcm91cE5hbWU6ICdUZW1wbGF0ZSBncm9lcHNuYWFtJyxcbiAgICAgIHJlc3VsdGluZ1RlbXBsYXRlTmFtZUxpc3RQcm9jZXNzVmFyaWFibGVOYW1lOlxuICAgICAgICAnTmFhbSB2YW4gcHJvY2VzcyB2YXJpYWJsZSBvbSBsaWpzdCBpbiBvcCB0ZSBzbGFhbicsXG4gICAgICB0ZW1wbGF0ZURhdGFUb29sdGlwOlxuICAgICAgICAnRGUgcmVjaHRlciB2YWx1ZS1rb2xvbSBvbmRlcnN0ZXVudCBvb2sgaGV0IGdlYnJ1aWsgdmFuIHByb2Nlc3ZhcmlhYmVsZW4gem9hbHMgcHY6IGVuIGRvYzonLFxuICAgICAgZm9ybWF0OiAnRG9jdW1lbnRmb3JtYWF0JyxcbiAgICAgIHRlbXBsYXRlRGF0YTogJ1RlbXBsYXRlLWRhdGEnLFxuICAgICAgcmVzdWx0aW5nRG9jdW1lbnRQcm9jZXNzVmFyaWFibGVOYW1lOiAnTmFhbSBwcm9jZXN2YXJpYWJlbGUgdm9vciBvcHNsYWcgZG9jdW1lbnQnLFxuICAgICAgcmVzdWx0aW5nRG9jdW1lbnRQcm9jZXNzVmFyaWFibGVOYW1lVG9vbHRpcDpcbiAgICAgICAgJ0RlIGxvY2F0aWUgdmFuIGhldCBnZWdlbmVyZWVyZGUgZG9jdW1lbnQgd29yZHQgb3BnZXNsYWdlbiBpbiBlZW4gcHJvY2VzdmFyaWFiZWxlLiBEZXplIHByb2Nlc3ZhcmlhYmVsZSBrYW4gZ2VicnVpa3Qgd29yZGVuIG9tIGhldCBkb2N1bWVudCB0ZSB2ZXJ3ZXJrZW4gaW4gZWVuIGFuZGVyZSBCUE1OLXRhYWsuJyxcbiAgICAgIGdlbmVyYXRlRG9jdW1lbnRXYXJuaW5nOlxuICAgICAgICAnRGV6ZSBhY3RpZSBnZW5lcmVlcnQgZWVuIHRpamRlbGlqayBiZXN0YW5kLiBIZXQgdmVyd2Vya2VuIGhpZXJ2YW4gbW9ldCBkb29yIGVlbiBhbmRlcmUgYWN0aWUgd29yZGVuIGdlZGFhbi4nLFxuICAgIH0sXG4gICAgZW46IHtcbiAgICAgIHRpdGxlOiAnU21hcnREb2N1bWVudHMnLFxuICAgICAgZGVzY3JpcHRpb246ICdBdXRvbWF0ZSBkb2N1bWVudHMgd2l0aCBzbWFydCB0ZW1wbGF0ZXMuJyxcbiAgICAgICdnZW5lcmF0ZS1kb2N1bWVudCc6ICdHZW5lcmF0ZSBkb2N1bWVudCcsXG4gICAgICAnZ2V0LXRlbXBsYXRlLW5hbWVzJzogJ0dldCBUZW1wbGF0ZSBOYW1lcycsXG4gICAgICBjb25maWd1cmF0aW9uVGl0bGU6ICdDb25maWd1cmF0aW9uIG5hbWUnLFxuICAgICAgY29uZmlndXJhdGlvblRpdGxlVG9vbHRpcDpcbiAgICAgICAgJ1dpdGggdGhpcyBuYW1lIHRoZSBwbHVnaW4gd2lsbCBiZSByZWNvZ25pemFibGUgaW4gdGhlIHJlc3Qgb2YgdGhlIGFwcGxpY2F0aW9uJyxcbiAgICAgIHVybDogJ1NtYXJ0RG9jdW1lbnRzIFVSTCcsXG4gICAgICB1c2VybmFtZTogJ1VzZXJuYW1lJyxcbiAgICAgIHBhc3N3b3JkOiAnUGFzc3dvcmQnLFxuICAgICAgdGVtcGxhdGVHcm91cDogJ1RlbXBsYXRlIGdyb3VwJyxcbiAgICAgIHRlbXBsYXRlTmFtZTogJ1RlbXBsYXRlIG5hbWUnLFxuICAgICAgdGVtcGxhdGVHcm91cE5hbWU6ICdUZW1wbGF0ZSBncm91cCBuYW1lJyxcbiAgICAgIHJlc3VsdGluZ1RlbXBsYXRlTmFtZUxpc3RQcm9jZXNzVmFyaWFibGVOYW1lOiAnTmFtZSBvZiBwcm9jZXNzIHZhcmlhYmxlIHRvIHNhdmUgdGhlIGxpc3QgaW4nLFxuXG4gICAgICBmb3JtYXQ6ICdEb2N1bWVudCBmb3JtYXQnLFxuICAgICAgdGVtcGxhdGVEYXRhOiAnVGVtcGxhdGUgZGF0YScsXG4gICAgICB0ZW1wbGF0ZURhdGFUb29sdGlwOlxuICAgICAgICAnVGhlIHJpZ2h0IHZhbHVlLWNvbHVtbiBhbHNvIHN1cHBvcnRzIHRoZSB1c2Ugb2YgcHJvY2VzcyB2YXJpYWJsZXMgc3VjaCBhcyBwdjogYW5kIGRvYzonLFxuICAgICAgcmVzdWx0aW5nRG9jdW1lbnRQcm9jZXNzVmFyaWFibGVOYW1lOiAnUHJvY2VzcyB2YXJpYWJsZSBuYW1lIGZvciBzdG9yaW5nIGRvY3VtZW50JyxcbiAgICAgIHJlc3VsdGluZ0RvY3VtZW50UHJvY2Vzc1ZhcmlhYmxlTmFtZVRvb2x0aXA6XG4gICAgICAgICdUaGUgbG9jYXRpb24gb2YgdGhlIGdlbmVyYXRlZCBkb2N1bWVudCBpcyBzdG9yZWQgaW4gYSBwcm9jZXNzIHZhcmlhYmxlLiBUaGlzIHByb2Nlc3MgdmFyaWFibGUgY2FuIGJlIHVzZWQgdG8gYWNjZXNzIHRoZSBkb2N1bWVudCBpbiBhbm90aGVyIEJQTU4gdGFzay4nLFxuICAgICAgZ2VuZXJhdGVEb2N1bWVudFdhcm5pbmc6XG4gICAgICAgICdUaGlzIGFjdGlvbiBnZW5lcmF0ZXMgYSB0ZW1wb3JhcnkgZmlsZS4gSXQgbmVlZHMgdG8gYmUgc3RvcmVkIGluIGEgZm9sbG93aW5nIHRhc2suJyxcbiAgICB9LFxuICAgIGRlOiB7XG4gICAgICB0aXRsZTogJ1NtYXJ0RG9jdW1lbnRzJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQXV0b21hdGlzaWVyZW4gU2llIERva3VtZW50ZSBtaXQgaW50ZWxsaWdlbnRlbiBUZW1wbGF0ZXMuJyxcbiAgICAgICdnZW5lcmF0ZS1kb2N1bWVudCc6ICdEb2t1bWVudCBnZW5lcmllcmVuJyxcbiAgICAgICdnZXQtdGVtcGxhdGUtbmFtZXMnOiAnR2V0IFRlbXBsYXRlIE5hbWVzJyxcbiAgICAgIGNvbmZpZ3VyYXRpb25UaXRsZTogJ0tvbmZpZ3VyYXRpb25zbmFtZScsXG4gICAgICBjb25maWd1cmF0aW9uVGl0bGVUb29sdGlwOlxuICAgICAgICAnQW4gZGllc2VtIE5hbWVuIHdpcmQgZGFzIFBsdWdpbiBpbSBSZXN0IGRlciBBbndlbmR1bmcgZXJrZW5uYmFyIHNlaW4nLFxuICAgICAgdXJsOiAnU21hcnREb2N1bWVudHMgVVJMJyxcbiAgICAgIHVzZXJuYW1lOiAnTnV0emVybmFtZScsXG4gICAgICBwYXNzd29yZDogJ1Bhc3N3b3J0JyxcbiAgICAgIHRlbXBsYXRlR3JvdXA6ICdUZW1wbGF0ZSBncnVwcGUnLFxuICAgICAgdGVtcGxhdGVOYW1lOiAnVGVtcGxhdGUgbmFtZScsXG4gICAgICB0ZW1wbGF0ZUdyb3VwTmFtZTogJ1RlbXBsYXRlIGdydXBwZSBuYW1lJyxcbiAgICAgIHJlc3VsdGluZ1RlbXBsYXRlTmFtZUxpc3RQcm9jZXNzVmFyaWFibGVOYW1lOlxuICAgICAgICAnTmFtZSBkZXIgUHJvemVzc3ZhcmlhYmxlLCB1bSBkaWUgTGlzdGUgenUgc3BlaWNoZXJuJyxcbiAgICAgIGZvcm1hdDogJ0Rva3VtZW50Zm9ybWF0JyxcbiAgICAgIHRlbXBsYXRlRGF0YTogJ1RlbXBsYXRlZGF0ZW4nLFxuICAgICAgdGVtcGxhdGVEYXRhVG9vbHRpcDpcbiAgICAgICAgJ0RpZSByZWNodGUgV2VydGVzcGFsdGUgdW50ZXJzdMO8dHp0IGF1Y2ggZGllIFZlcndlbmR1bmcgdm9uIFByb3plc3N2YXJpYWJsZW4gd2llIHB2OiB1bmQgZG9jOicsXG4gICAgICByZXN1bHRpbmdEb2N1bWVudFByb2Nlc3NWYXJpYWJsZU5hbWU6ICdQcm96ZXNzdmFyaWFibGVubmFtZSB6dW0gU3BlaWNoZXJuIGRlcyBEb2t1bWVudHMnLFxuICAgICAgcmVzdWx0aW5nRG9jdW1lbnRQcm9jZXNzVmFyaWFibGVOYW1lVG9vbHRpcDpcbiAgICAgICAgJ0RlciBPcnQgZGVzIGdlbmVyaWVydGVuIERva3VtZW50cyB3aXJkIGluIGVpbmVyIFByb3plc3N2YXJpYWJsZW4gZ2VzcGVpY2hlcnQuIERpZXNlIFByb3plc3N2YXJpYWJsZSB3aXJkIHZlcndlbmRldCwgdW0gaW4gZWluZXIgYW5kZXJlbiBCUE1OLUF1ZmdhYmUgYXVmIGRhcyBEb2t1bWVudCB6dXp1Z3JlaWZlbi4nLFxuICAgICAgZ2VuZXJhdGVEb2N1bWVudFdhcm5pbmc6XG4gICAgICAgICdEaWVzZSBBa3Rpb24gZXJ6ZXVndCBlaW5lIHRlbXBvcsOkcmUgRGF0ZWkuIERpZSBWZXJhcmJlaXR1bmcgbXVzcyBkdXJjaCBlaW5lIGFuZGVyZSBBa3Rpb24gZXJmb2xnZW4uJyxcbiAgICB9LFxuICB9LFxufTtcblxuZXhwb3J0IHtzbWFydERvY3VtZW50c1BsdWdpblNwZWNpZmljYXRpb259O1xuIl19
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZG9jdW1lbnRzLXBsdWdpbi5zcGVjaWZpY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9wbHVnaW4vc3JjL2xpYi9wbHVnaW5zL3NtYXJ0LWRvY3VtZW50cy9zbWFydC1kb2N1bWVudHMtcGx1Z2luLnNwZWNpZmljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFHSCxPQUFPLEVBQUMsb0NBQW9DLEVBQUMsTUFBTSxvRkFBb0YsQ0FBQztBQUN4SSxPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDNUQsT0FBTyxFQUFDLHNDQUFzQyxFQUFDLE1BQU0sd0ZBQXdGLENBQUM7QUFDOUksT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sOERBQThELENBQUM7QUFFdkcsTUFBTSxpQ0FBaUMsR0FBd0I7SUFDN0QsUUFBUSxFQUFFLGdCQUFnQjtJQUMxQiw0QkFBNEIsRUFBRSxvQ0FBb0M7SUFDbEUsZ0JBQWdCLEVBQUUsa0NBQWtDO0lBQ3BELCtCQUErQixFQUFFO1FBQy9CLG1CQUFtQixFQUFFLHNDQUFzQztRQUMzRCxvQkFBb0IsRUFBRSx5QkFBeUI7S0FDaEQ7SUFDRCxrQkFBa0IsRUFBRTtRQUNsQixFQUFFLEVBQUU7WUFDRixLQUFLLEVBQUUsZ0JBQWdCO1lBQ3ZCLFdBQVcsRUFBRSwrQ0FBK0M7WUFDNUQsbUJBQW1CLEVBQUUsb0JBQW9CO1lBQ3pDLG9CQUFvQixFQUFFLHVCQUF1QjtZQUM3QyxrQkFBa0IsRUFBRSxrQkFBa0I7WUFDdEMseUJBQXlCLEVBQ3ZCLDhFQUE4RTtZQUNoRixHQUFHLEVBQUUsb0JBQW9CO1lBQ3pCLFFBQVEsRUFBRSxnQkFBZ0I7WUFDMUIsUUFBUSxFQUFFLFlBQVk7WUFDdEIsYUFBYSxFQUFFLGdCQUFnQjtZQUMvQixZQUFZLEVBQUUsZUFBZTtZQUM3QixpQkFBaUIsRUFBRSxxQkFBcUI7WUFDeEMsNENBQTRDLEVBQzFDLG1EQUFtRDtZQUNyRCxtQkFBbUIsRUFDakIsMkZBQTJGO1lBQzdGLE1BQU0sRUFBRSxpQkFBaUI7WUFDekIsWUFBWSxFQUFFLGVBQWU7WUFDN0Isb0NBQW9DLEVBQUUsMkNBQTJDO1lBQ2pGLDJDQUEyQyxFQUN6QyxrTEFBa0w7WUFDcEwsdUJBQXVCLEVBQ3JCLDZHQUE2RztZQUMvRyxHQUFHLEVBQUUsU0FBUztZQUNkLEtBQUssRUFBRSxRQUFRO1NBQ2hCO1FBQ0QsRUFBRSxFQUFFO1lBQ0YsS0FBSyxFQUFFLGdCQUFnQjtZQUN2QixXQUFXLEVBQUUsMENBQTBDO1lBQ3ZELG1CQUFtQixFQUFFLG1CQUFtQjtZQUN4QyxvQkFBb0IsRUFBRSxvQkFBb0I7WUFDMUMsa0JBQWtCLEVBQUUsb0JBQW9CO1lBQ3hDLHlCQUF5QixFQUN2QiwrRUFBK0U7WUFDakYsR0FBRyxFQUFFLG9CQUFvQjtZQUN6QixRQUFRLEVBQUUsVUFBVTtZQUNwQixRQUFRLEVBQUUsVUFBVTtZQUNwQixhQUFhLEVBQUUsZ0JBQWdCO1lBQy9CLFlBQVksRUFBRSxlQUFlO1lBQzdCLGlCQUFpQixFQUFFLHFCQUFxQjtZQUN4Qyw0Q0FBNEMsRUFBRSw4Q0FBOEM7WUFFNUYsTUFBTSxFQUFFLGlCQUFpQjtZQUN6QixZQUFZLEVBQUUsZUFBZTtZQUM3QixtQkFBbUIsRUFDakIsd0ZBQXdGO1lBQzFGLG9DQUFvQyxFQUFFLDRDQUE0QztZQUNsRiwyQ0FBMkMsRUFDekMsd0pBQXdKO1lBQzFKLHVCQUF1QixFQUNyQixvRkFBb0Y7WUFDdEYsR0FBRyxFQUFFLEtBQUs7WUFDVixLQUFLLEVBQUUsT0FBTztTQUNmO1FBQ0QsRUFBRSxFQUFFO1lBQ0YsS0FBSyxFQUFFLGdCQUFnQjtZQUN2QixXQUFXLEVBQUUsMkRBQTJEO1lBQ3hFLG1CQUFtQixFQUFFLHFCQUFxQjtZQUMxQyxvQkFBb0IsRUFBRSxvQkFBb0I7WUFDMUMsa0JBQWtCLEVBQUUsb0JBQW9CO1lBQ3hDLHlCQUF5QixFQUN2QixzRUFBc0U7WUFDeEUsR0FBRyxFQUFFLG9CQUFvQjtZQUN6QixRQUFRLEVBQUUsWUFBWTtZQUN0QixRQUFRLEVBQUUsVUFBVTtZQUNwQixhQUFhLEVBQUUsaUJBQWlCO1lBQ2hDLFlBQVksRUFBRSxlQUFlO1lBQzdCLGlCQUFpQixFQUFFLHNCQUFzQjtZQUN6Qyw0Q0FBNEMsRUFDMUMscURBQXFEO1lBQ3ZELE1BQU0sRUFBRSxnQkFBZ0I7WUFDeEIsWUFBWSxFQUFFLGVBQWU7WUFDN0IsbUJBQW1CLEVBQ2pCLDhGQUE4RjtZQUNoRyxvQ0FBb0MsRUFBRSxrREFBa0Q7WUFDeEYsMkNBQTJDLEVBQ3pDLG9MQUFvTDtZQUN0TCx1QkFBdUIsRUFDckIscUdBQXFHO1lBQ3ZHLEdBQUcsRUFBRSxXQUFXO1lBQ2hCLEtBQUssRUFBRSxNQUFNO1NBQ2Q7S0FDRjtDQUNGLENBQUM7QUFFRixPQUFPLEVBQUMsaUNBQWlDLEVBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7UGx1Z2luU3BlY2lmaWNhdGlvbn0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7U21hcnREb2N1bWVudHNDb25maWd1cmF0aW9uQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvc21hcnQtZG9jdW1lbnRzLWNvbmZpZ3VyYXRpb24vc21hcnQtZG9jdW1lbnRzLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7U01BUlRfRE9DVU1FTlRTX1BMVUdJTl9MT0dPX0JBU0U2NH0gZnJvbSAnLi9hc3NldHMnO1xuaW1wb3J0IHtHZW5lcmF0ZURvY3VtZW50Q29uZmlndXJhdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2dlbmVyYXRlLWRvY3VtZW50LWNvbmZpZ3VyYXRpb24vZ2VuZXJhdGUtZG9jdW1lbnQtY29uZmlndXJhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtHZXRUZW1wbGF0ZU5hbWVzQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvZ2V0LXRlbXBsYXRlLW5hbWVzL2dldC10ZW1wbGF0ZS1uYW1lcy5jb21wb25lbnQnO1xuXG5jb25zdCBzbWFydERvY3VtZW50c1BsdWdpblNwZWNpZmljYXRpb246IFBsdWdpblNwZWNpZmljYXRpb24gPSB7XG4gIHBsdWdpbklkOiAnc21hcnRkb2N1bWVudHMnLFxuICBwbHVnaW5Db25maWd1cmF0aW9uQ29tcG9uZW50OiBTbWFydERvY3VtZW50c0NvbmZpZ3VyYXRpb25Db21wb25lbnQsXG4gIHBsdWdpbkxvZ29CYXNlNjQ6IFNNQVJUX0RPQ1VNRU5UU19QTFVHSU5fTE9HT19CQVNFNjQsXG4gIGZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbXBvbmVudHM6IHtcbiAgICAnZ2VuZXJhdGUtZG9jdW1lbnQnOiBHZW5lcmF0ZURvY3VtZW50Q29uZmlndXJhdGlvbkNvbXBvbmVudCxcbiAgICAnZ2V0LXRlbXBsYXRlLW5hbWVzJzogR2V0VGVtcGxhdGVOYW1lc0NvbXBvbmVudCxcbiAgfSxcbiAgcGx1Z2luVHJhbnNsYXRpb25zOiB7XG4gICAgbmw6IHtcbiAgICAgIHRpdGxlOiAnU21hcnREb2N1bWVudHMnLFxuICAgICAgZGVzY3JpcHRpb246ICdBdXRvbWF0aXNlZXIgZG9jdW1lbnRlbiBtZXQgc2xpbW1lIHRlbXBsYXRlcy4nLFxuICAgICAgJ2dlbmVyYXRlLWRvY3VtZW50JzogJ0RvY3VtZW50IGdlbmVyZXJlbicsXG4gICAgICAnZ2V0LXRlbXBsYXRlLW5hbWVzJzogJ1RlbXBsYXRlbmFtZW4gb3BoYWxlbicsXG4gICAgICBjb25maWd1cmF0aW9uVGl0bGU6ICdDb25maWd1cmF0aWVuYWFtJyxcbiAgICAgIGNvbmZpZ3VyYXRpb25UaXRsZVRvb2x0aXA6XG4gICAgICAgICdPbmRlciBkZXplIG5hYW0gemFsIGRlIHBsdWdpbiB0ZSBoZXJrZW5uZW4gemlqbiBpbiBkZSByZXN0IHZhbiBkZSBhcHBsaWNhdGllJyxcbiAgICAgIHVybDogJ1NtYXJ0RG9jdW1lbnRzIFVSTCcsXG4gICAgICB1c2VybmFtZTogJ0dlYnJ1aWtlcnNuYWFtJyxcbiAgICAgIHBhc3N3b3JkOiAnV2FjaHR3b29yZCcsXG4gICAgICB0ZW1wbGF0ZUdyb3VwOiAnVGVtcGxhdGUgZ3JvZXAnLFxuICAgICAgdGVtcGxhdGVOYW1lOiAnVGVtcGxhdGUgbmFhbScsXG4gICAgICB0ZW1wbGF0ZUdyb3VwTmFtZTogJ1RlbXBsYXRlIGdyb2Vwc25hYW0nLFxuICAgICAgcmVzdWx0aW5nVGVtcGxhdGVOYW1lTGlzdFByb2Nlc3NWYXJpYWJsZU5hbWU6XG4gICAgICAgICdOYWFtIHZhbiBwcm9jZXNzIHZhcmlhYmxlIG9tIGxpanN0IGluIG9wIHRlIHNsYWFuJyxcbiAgICAgIHRlbXBsYXRlRGF0YVRvb2x0aXA6XG4gICAgICAgICdEZSByZWNodGVyIHZhbHVlLWtvbG9tIG9uZGVyc3RldW50IG9vayBoZXQgZ2VicnVpayB2YW4gcHJvY2VzdmFyaWFiZWxlbiB6b2FscyBwdjogZW4gZG9jOicsXG4gICAgICBmb3JtYXQ6ICdEb2N1bWVudGZvcm1hYXQnLFxuICAgICAgdGVtcGxhdGVEYXRhOiAnVGVtcGxhdGUtZGF0YScsXG4gICAgICByZXN1bHRpbmdEb2N1bWVudFByb2Nlc3NWYXJpYWJsZU5hbWU6ICdOYWFtIHByb2Nlc3ZhcmlhYmVsZSB2b29yIG9wc2xhZyBkb2N1bWVudCcsXG4gICAgICByZXN1bHRpbmdEb2N1bWVudFByb2Nlc3NWYXJpYWJsZU5hbWVUb29sdGlwOlxuICAgICAgICAnRGUgbG9jYXRpZSB2YW4gaGV0IGdlZ2VuZXJlZXJkZSBkb2N1bWVudCB3b3JkdCBvcGdlc2xhZ2VuIGluIGVlbiBwcm9jZXN2YXJpYWJlbGUuIERlemUgcHJvY2VzdmFyaWFiZWxlIGthbiBnZWJydWlrdCB3b3JkZW4gb20gaGV0IGRvY3VtZW50IHRlIHZlcndlcmtlbiBpbiBlZW4gYW5kZXJlIEJQTU4tdGFhay4nLFxuICAgICAgZ2VuZXJhdGVEb2N1bWVudFdhcm5pbmc6XG4gICAgICAgICdEZXplIGFjdGllIGdlbmVyZWVydCBlZW4gdGlqZGVsaWprIGJlc3RhbmQuIEhldCB2ZXJ3ZXJrZW4gaGllcnZhbiBtb2V0IGRvb3IgZWVuIGFuZGVyZSBhY3RpZSB3b3JkZW4gZ2VkYWFuLicsXG4gICAgICBrZXk6ICdTbGV1dGVsJyxcbiAgICAgIHZhbHVlOiAnV2FhcmRlJyxcbiAgICB9LFxuICAgIGVuOiB7XG4gICAgICB0aXRsZTogJ1NtYXJ0RG9jdW1lbnRzJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQXV0b21hdGUgZG9jdW1lbnRzIHdpdGggc21hcnQgdGVtcGxhdGVzLicsXG4gICAgICAnZ2VuZXJhdGUtZG9jdW1lbnQnOiAnR2VuZXJhdGUgZG9jdW1lbnQnLFxuICAgICAgJ2dldC10ZW1wbGF0ZS1uYW1lcyc6ICdHZXQgVGVtcGxhdGUgTmFtZXMnLFxuICAgICAgY29uZmlndXJhdGlvblRpdGxlOiAnQ29uZmlndXJhdGlvbiBuYW1lJyxcbiAgICAgIGNvbmZpZ3VyYXRpb25UaXRsZVRvb2x0aXA6XG4gICAgICAgICdXaXRoIHRoaXMgbmFtZSB0aGUgcGx1Z2luIHdpbGwgYmUgcmVjb2duaXphYmxlIGluIHRoZSByZXN0IG9mIHRoZSBhcHBsaWNhdGlvbicsXG4gICAgICB1cmw6ICdTbWFydERvY3VtZW50cyBVUkwnLFxuICAgICAgdXNlcm5hbWU6ICdVc2VybmFtZScsXG4gICAgICBwYXNzd29yZDogJ1Bhc3N3b3JkJyxcbiAgICAgIHRlbXBsYXRlR3JvdXA6ICdUZW1wbGF0ZSBncm91cCcsXG4gICAgICB0ZW1wbGF0ZU5hbWU6ICdUZW1wbGF0ZSBuYW1lJyxcbiAgICAgIHRlbXBsYXRlR3JvdXBOYW1lOiAnVGVtcGxhdGUgZ3JvdXAgbmFtZScsXG4gICAgICByZXN1bHRpbmdUZW1wbGF0ZU5hbWVMaXN0UHJvY2Vzc1ZhcmlhYmxlTmFtZTogJ05hbWUgb2YgcHJvY2VzcyB2YXJpYWJsZSB0byBzYXZlIHRoZSBsaXN0IGluJyxcblxuICAgICAgZm9ybWF0OiAnRG9jdW1lbnQgZm9ybWF0JyxcbiAgICAgIHRlbXBsYXRlRGF0YTogJ1RlbXBsYXRlIGRhdGEnLFxuICAgICAgdGVtcGxhdGVEYXRhVG9vbHRpcDpcbiAgICAgICAgJ1RoZSByaWdodCB2YWx1ZS1jb2x1bW4gYWxzbyBzdXBwb3J0cyB0aGUgdXNlIG9mIHByb2Nlc3MgdmFyaWFibGVzIHN1Y2ggYXMgcHY6IGFuZCBkb2M6JyxcbiAgICAgIHJlc3VsdGluZ0RvY3VtZW50UHJvY2Vzc1ZhcmlhYmxlTmFtZTogJ1Byb2Nlc3MgdmFyaWFibGUgbmFtZSBmb3Igc3RvcmluZyBkb2N1bWVudCcsXG4gICAgICByZXN1bHRpbmdEb2N1bWVudFByb2Nlc3NWYXJpYWJsZU5hbWVUb29sdGlwOlxuICAgICAgICAnVGhlIGxvY2F0aW9uIG9mIHRoZSBnZW5lcmF0ZWQgZG9jdW1lbnQgaXMgc3RvcmVkIGluIGEgcHJvY2VzcyB2YXJpYWJsZS4gVGhpcyBwcm9jZXNzIHZhcmlhYmxlIGNhbiBiZSB1c2VkIHRvIGFjY2VzcyB0aGUgZG9jdW1lbnQgaW4gYW5vdGhlciBCUE1OIHRhc2suJyxcbiAgICAgIGdlbmVyYXRlRG9jdW1lbnRXYXJuaW5nOlxuICAgICAgICAnVGhpcyBhY3Rpb24gZ2VuZXJhdGVzIGEgdGVtcG9yYXJ5IGZpbGUuIEl0IG5lZWRzIHRvIGJlIHN0b3JlZCBpbiBhIGZvbGxvd2luZyB0YXNrLicsXG4gICAgICBrZXk6ICdLZXknLFxuICAgICAgdmFsdWU6ICdWYWx1ZScsXG4gICAgfSxcbiAgICBkZToge1xuICAgICAgdGl0bGU6ICdTbWFydERvY3VtZW50cycsXG4gICAgICBkZXNjcmlwdGlvbjogJ0F1dG9tYXRpc2llcmVuIFNpZSBEb2t1bWVudGUgbWl0IGludGVsbGlnZW50ZW4gVGVtcGxhdGVzLicsXG4gICAgICAnZ2VuZXJhdGUtZG9jdW1lbnQnOiAnRG9rdW1lbnQgZ2VuZXJpZXJlbicsXG4gICAgICAnZ2V0LXRlbXBsYXRlLW5hbWVzJzogJ0dldCBUZW1wbGF0ZSBOYW1lcycsXG4gICAgICBjb25maWd1cmF0aW9uVGl0bGU6ICdLb25maWd1cmF0aW9uc25hbWUnLFxuICAgICAgY29uZmlndXJhdGlvblRpdGxlVG9vbHRpcDpcbiAgICAgICAgJ0FuIGRpZXNlbSBOYW1lbiB3aXJkIGRhcyBQbHVnaW4gaW0gUmVzdCBkZXIgQW53ZW5kdW5nIGVya2VubmJhciBzZWluJyxcbiAgICAgIHVybDogJ1NtYXJ0RG9jdW1lbnRzIFVSTCcsXG4gICAgICB1c2VybmFtZTogJ051dHplcm5hbWUnLFxuICAgICAgcGFzc3dvcmQ6ICdQYXNzd29ydCcsXG4gICAgICB0ZW1wbGF0ZUdyb3VwOiAnVGVtcGxhdGUgZ3J1cHBlJyxcbiAgICAgIHRlbXBsYXRlTmFtZTogJ1RlbXBsYXRlIG5hbWUnLFxuICAgICAgdGVtcGxhdGVHcm91cE5hbWU6ICdUZW1wbGF0ZSBncnVwcGUgbmFtZScsXG4gICAgICByZXN1bHRpbmdUZW1wbGF0ZU5hbWVMaXN0UHJvY2Vzc1ZhcmlhYmxlTmFtZTpcbiAgICAgICAgJ05hbWUgZGVyIFByb3plc3N2YXJpYWJsZSwgdW0gZGllIExpc3RlIHp1IHNwZWljaGVybicsXG4gICAgICBmb3JtYXQ6ICdEb2t1bWVudGZvcm1hdCcsXG4gICAgICB0ZW1wbGF0ZURhdGE6ICdUZW1wbGF0ZWRhdGVuJyxcbiAgICAgIHRlbXBsYXRlRGF0YVRvb2x0aXA6XG4gICAgICAgICdEaWUgcmVjaHRlIFdlcnRlc3BhbHRlIHVudGVyc3TDvHR6dCBhdWNoIGRpZSBWZXJ3ZW5kdW5nIHZvbiBQcm96ZXNzdmFyaWFibGVuIHdpZSBwdjogdW5kIGRvYzonLFxuICAgICAgcmVzdWx0aW5nRG9jdW1lbnRQcm9jZXNzVmFyaWFibGVOYW1lOiAnUHJvemVzc3ZhcmlhYmxlbm5hbWUgenVtIFNwZWljaGVybiBkZXMgRG9rdW1lbnRzJyxcbiAgICAgIHJlc3VsdGluZ0RvY3VtZW50UHJvY2Vzc1ZhcmlhYmxlTmFtZVRvb2x0aXA6XG4gICAgICAgICdEZXIgT3J0IGRlcyBnZW5lcmllcnRlbiBEb2t1bWVudHMgd2lyZCBpbiBlaW5lciBQcm96ZXNzdmFyaWFibGVuIGdlc3BlaWNoZXJ0LiBEaWVzZSBQcm96ZXNzdmFyaWFibGUgd2lyZCB2ZXJ3ZW5kZXQsIHVtIGluIGVpbmVyIGFuZGVyZW4gQlBNTi1BdWZnYWJlIGF1ZiBkYXMgRG9rdW1lbnQgenV6dWdyZWlmZW4uJyxcbiAgICAgIGdlbmVyYXRlRG9jdW1lbnRXYXJuaW5nOlxuICAgICAgICAnRGllc2UgQWt0aW9uIGVyemV1Z3QgZWluZSB0ZW1wb3LDpHJlIERhdGVpLiBEaWUgVmVyYXJiZWl0dW5nIG11c3MgZHVyY2ggZWluZSBhbmRlcmUgQWt0aW9uIGVyZm9sZ2VuLicsXG4gICAgICBrZXk6ICdTY2hsw7xzc2VsJyxcbiAgICAgIHZhbHVlOiAnV2VydCcsXG4gICAgfSxcbiAgfSxcbn07XG5cbmV4cG9ydCB7c21hcnREb2N1bWVudHNQbHVnaW5TcGVjaWZpY2F0aW9ufTtcbiJdfQ==
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { Component, EventEmitter, Input, Output, ViewChildren, } from '@angular/core';
|
|
17
17
|
import { BehaviorSubject, combineLatest, filter, map, of, take, tap, } from 'rxjs';
|
|
18
|
-
import { VModalComponent, } from '@valtimo/components';
|
|
18
|
+
import { ValuePathSelectorPrefix, VModalComponent, } from '@valtimo/components';
|
|
19
19
|
import * as i0 from "@angular/core";
|
|
20
20
|
import * as i1 from "../../../../services";
|
|
21
21
|
import * as i2 from "@ngx-translate/core";
|
|
@@ -27,6 +27,10 @@ import * as i7 from "@angular/common";
|
|
|
27
27
|
import * as i8 from "carbon-components-angular";
|
|
28
28
|
import * as i9 from "../../../../pipes/plugin-translate/plugin-translate.pipe";
|
|
29
29
|
export class VerzoekConfigurationComponent {
|
|
30
|
+
getSelectedCaseDefinitionNameForIndex(index) {
|
|
31
|
+
return this.formValue$.pipe(map(formValue => Array.isArray(formValue.verzoekProperties) &&
|
|
32
|
+
formValue.verzoekProperties[index]?.caseDefinitionName));
|
|
33
|
+
}
|
|
30
34
|
constructor(pluginManagementService, translateService, pluginTranslationService, verzoekPluginService, processService, documentService, modalService) {
|
|
31
35
|
this.pluginManagementService = pluginManagementService;
|
|
32
36
|
this.translateService = translateService;
|
|
@@ -74,6 +78,7 @@ export class VerzoekConfigurationComponent {
|
|
|
74
78
|
this.mappings = {};
|
|
75
79
|
this.formValue$ = new BehaviorSubject(null);
|
|
76
80
|
this.valid$ = new BehaviorSubject(false);
|
|
81
|
+
this.ValuePathSelectorPrefix = ValuePathSelectorPrefix;
|
|
77
82
|
}
|
|
78
83
|
ngOnInit() {
|
|
79
84
|
this.openSaveSubscription();
|
|
@@ -205,11 +210,11 @@ export class VerzoekConfigurationComponent {
|
|
|
205
210
|
}));
|
|
206
211
|
}
|
|
207
212
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: VerzoekConfigurationComponent, deps: [{ token: i1.PluginManagementService }, { token: i2.TranslateService }, { token: i1.PluginTranslationService }, { token: i3.VerzoekPluginService }, { token: i4.ProcessService }, { token: i5.DocumentService }, { token: i6.ModalService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
208
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: VerzoekConfigurationComponent, selector: "valtimo-verzoek-configuration", inputs: { save$: "save$", disabled$: "disabled$", pluginId: "pluginId", prefillConfiguration$: "prefillConfiguration$" }, outputs: { valid: "valid", configuration: "configuration" }, viewQueries: [{ propertyName: "mappingModals", predicate: VModalComponent, descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: mappedPrefill$ ? (mappedPrefill$ | async) : null,\n } as obs\"\n>\n <v-input\n name=\"configurationTitle\"\n [title]=\"'configurationTitle' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"obs.prefill?.configurationTitle\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'configurationTitleTooltip' | pluginTranslate: pluginId | async\"\n placeholder=\"Verzoek Plugin\"\n >\n </v-input>\n <ng-container\n *ngIf=\"{notificatiePluginSelectItems: notificatiePluginSelectItems$ | async} as vars\"\n >\n <v-select\n [items]=\"vars.notificatiePluginSelectItems\"\n [margin]=\"true\"\n name=\"notificatiesApiPluginConfiguration\"\n [title]=\"'notificatiesApiPluginConfiguration' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"obs.prefill?.notificatiesApiPluginConfiguration\"\n [required]=\"true\"\n [loading]=\"!vars.notificatiePluginSelectItems\"\n [tooltip]=\"'notificatiesApiPluginConfigurationTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <ng-container *ngIf=\"{processSelectItems: processSelectItems$ | async} as vars\">\n <v-select\n [items]=\"vars.processSelectItems\"\n [margin]=\"true\"\n name=\"processToStart\"\n [title]=\"'processToStart' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"obs.prefill?.processToStart\"\n [required]=\"true\"\n [loading]=\"!vars.processSelectItems\"\n [tooltip]=\"'processToStartTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <v-input\n name=\"rsin\"\n [title]=\"'rsin' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"obs.prefill?.rsin\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'rsinTooltip' | pluginTranslate: pluginId | async\"\n placeholder=\"\"\n >\n </v-input>\n <v-multi-input-form\n name=\"verzoekProperties\"\n [title]=\"'verzoekProperties' | pluginTranslate: pluginId | async\"\n [formTemplate]=\"mappingForm\"\n [addRowText]=\"'addVerzoekType' | pluginTranslate: pluginId | async\"\n [required]=\"false\"\n [tooltip]=\"'verzoekPropertiesTooltip' | pluginTranslate: pluginId | async\"\n (deleteRowEvent)=\"deleteRow($event)\"\n [initialAmountOfRows]=\"0\"\n [minimumAmountOfRows]=\"0\"\n [defaultValues]=\"obs.prefill?.verzoekProperties\"\n >\n </v-multi-input-form>\n</v-form>\n\n<ng-template\n #mappingForm\n let-index=\"index\"\n let-uuid=\"uuid\"\n let-changeFunction=\"changeFunction\"\n let-prefill=\"prefill\"\n>\n <ng-container\n *ngIf=\"{\n disabled: disabled$ | async,\n } as obs\"\n >\n <v-form (valueChange)=\"changeFunction($event, uuid); verzoekTypeFormChange($event, uuid)\">\n <v-input\n name=\"type\"\n [title]=\"'type' | pluginTranslate: pluginId | async\"\n [margin]=\"false\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"prefill?.type\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'typeTooltip' | pluginTranslate: pluginId | async\"\n [smallMargin]=\"true\"\n placeholder=\"\"\n >\n </v-input>\n <ng-container *ngIf=\"{documentSelectItems: documentSelectItems$ | async} as vars\">\n <v-select\n [items]=\"vars.documentSelectItems\"\n [smallMargin]=\"true\"\n name=\"caseDefinitionName\"\n [title]=\"'caseDefinitionName' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"prefill?.caseDefinitionName\"\n [required]=\"true\"\n [loading]=\"!vars.documentSelectItems\"\n [tooltip]=\"'caseDefinitionNameTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <ng-container\n *ngIf=\"{objectManagementSelectItems: objectManagementSelectItems$ | async} as vars\"\n >\n <v-select\n [items]=\"vars.objectManagementSelectItems\"\n [smallMargin]=\"true\"\n name=\"objectManagementId\"\n [title]=\"'objectManagementId' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"prefill?.objectManagementId\"\n [required]=\"true\"\n [loading]=\"!vars.objectManagementSelectItems\"\n [tooltip]=\"'objectManagementIdTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <v-select\n [items]=\"\n rolTypeSelectItemsObservables[uuid]?.caseDefinitionName &&\n (rolTypeSelectItemsObservables[uuid].items | async)\n \"\n [smallMargin]=\"true\"\n name=\"initiatorRoltypeUrl\"\n [title]=\"'initiatorRoltypeUrl' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled || !rolTypeSelectItemsObservables[uuid]?.caseDefinitionName\"\n [defaultSelectionId]=\"prefill?.initiatorRoltypeUrl\"\n [required]=\"true\"\n [tooltip]=\"'initiatorRoltypeUrlTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n <v-input\n name=\"initiatorRolDescription\"\n [title]=\"'initiatorRolDescription' | pluginTranslate: pluginId | async\"\n [margin]=\"false\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"prefill?.initiatorRolDescription || 'Initiator'\"\n [required]=\"true\"\n [tooltip]=\"'initiatorRolDescriptionTooltip' | pluginTranslate: pluginId | async\"\n [smallMargin]=\"true\"\n placeholder=\"\"\n >\n </v-input>\n <ng-container *ngIf=\"{processSelectItems: processSelectItems$ | async} as vars\">\n <v-select\n [items]=\"vars.processSelectItems\"\n [smallMargin]=\"true\"\n name=\"processDefinitionKey\"\n [title]=\"'processDefinitionKey' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"prefill?.processDefinitionKey\"\n [required]=\"true\"\n [loading]=\"!vars.processSelectItems\"\n [tooltip]=\"'processDefinitionKeyTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <v-radio\n name=\"copyStrategy\"\n [disabled]=\"obs.disabled\"\n [title]=\"'copyStrategy' | pluginTranslate: pluginId | async\"\n [tooltip]=\"'copyStrategyTooltip' | pluginTranslate: pluginId | async\"\n [radioValues]=\"radioItems$ | async\"\n [smallMargin]=\"true\"\n [defaultValue]=\"prefill?.copyStrategy || 'full'\"\n >\n </v-radio>\n <ng-container *ngIf=\"showMappingButtons[uuid]\">\n <v-input-label\n [title]=\"'mapping' | pluginTranslate: pluginId | async\"\n [tooltip]=\"'mappingTooltip' | pluginTranslate: pluginId | async\"\n >\n </v-input-label>\n <v-button (clickEvent)=\"openMappingModal(uuid)\" mdiIcon=\"table\"\n >{{ 'setMapping' | pluginTranslate: pluginId | async }}\n </v-button>\n </ng-container>\n <v-input class=\"hidden-input\" name=\"uuid\" [defaultValue]=\"uuid\"> </v-input>\n </v-form>\n <v-modal [parentId]=\"uuid\" (closeEvent)=\"closeMappingModal(uuid)\">\n <div role=\"header\">\n <h3 cdsModalHeaderHeading>{{ 'setMapping' | pluginTranslate: pluginId | async }}</h3>\n </div>\n\n <div role=\"content\">\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'mapping' | pluginTranslate: pluginId | async }}\n <v-tooltip-icon\n [tooltip]=\"'mappingTooltip' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n </cds-label>\n <valtimo-carbon-multi-input\n *ngIf=\"showMappingModalsDelay[uuid]\"\n type=\"keyValue\"\n (valueChange)=\"mappingValueChange($event, uuid)\"\n [defaultValues]=\"mappings[uuid] || prefill?.mapping\"\n [valueColumnTitle]=\"'target' | pluginTranslate: pluginId | async\"\n [keyColumnTitle]=\"'source' | pluginTranslate: pluginId | async\"\n [fullWidth]=\"true\"\n ></valtimo-carbon-multi-input>\n </div>\n </div>\n\n <div role=\"footer\">\n <ng-container>\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeMappingModal(uuid)\"\n [disabled]=\"obs.disabled\"\n >\n {{ 'close' | pluginTranslate: pluginId | async }}\n </button>\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n [disabled]=\"obs.disabled\"\n (click)=\"saveMapping(uuid)\"\n [disabled]=\"obs.disabled\"\n >\n {{ 'save' | pluginTranslate: pluginId | async }}\n </button>\n </ng-container>\n </div>\n </v-modal>\n </ng-container>\n</ng-template>\n", styles: [".label-with-tooltip{display:flex;align-items:center}.select-label{padding-bottom:.5rem;width:250px}.hidden-input{display:none}.cds--text-input__field-wrapper{flex-direction:column}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.FormComponent, selector: "v-form", inputs: ["className"], outputs: ["valueChange"] }, { kind: "component", type: i6.InputComponent, selector: "v-input", inputs: ["name", "type", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "step", "min", "maxLength", "tooltip", "required", "hideNumberSpinBox", "smallLabel", "rows", "clear$", "carbonTheme", "placeholder", "dataTestId", "trim"], outputs: ["valueChange"] }, { kind: "component", type: i6.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "defaultSelectionIds", "disabled", "dropUp", "multiple", "margin", "widthInPx", "notFoundText", "clearAllText", "clearText", "name", "title", "titleTranslationKey", "clearSelectionSubject$", "tooltip", "required", "loading", "loadingText", "placeholder", "smallMargin", "carbonTheme", "appendInline", "dataTestId"], outputs: ["selectedChange"] }, { kind: "component", type: i6.MultiInputFormComponent, selector: "v-multi-input-form", inputs: ["name", "title", "titleTranslationKey", "type", "initialAmountOfRows", "minimumAmountOfRows", "maxRows", "addRowText", "addRowTranslationKey", "deleteRowText", "deleteRowTranslationKey", "disabled", "defaultValues", "margin", "tooltip", "required", "formTemplate"], outputs: ["valueChange", "deleteRowEvent"] }, { kind: "component", type: i6.RadioComponent, selector: "v-radio", inputs: ["name", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "tooltip", "required", "smallLabel", "rows", "clear$", "radioValues"], outputs: ["valueChange"] }, { kind: "component", type: i6.InputLabelComponent, selector: "v-input-label", inputs: ["name", "tooltip", "largeMargin", "small", "noMargin", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }, { kind: "component", type: i6.ButtonComponent, selector: "v-button", inputs: ["type", "mdiIcon", "disabled", "title", "titleTranslationKey"], outputs: ["clickEvent"] }, { kind: "directive", type: i8.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "component", type: i8.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "component", type: i6.TooltipIconComponent, selector: "v-tooltip-icon", inputs: ["tooltip", "disabled"] }, { kind: "component", type: i6.CarbonMultiInputComponent, selector: "valtimo-carbon-multi-input", inputs: ["name", "title", "titleTranslationKey", "type", "arbitraryValueAmount", "arbitraryAmountTitles", "initialAmountOfRows", "minimumAmountOfRows", "maxRows", "addRowText", "addRowTranslationKey", "deleteRowText", "deleteRowTranslationKey", "disabled", "defaultValues", "margin", "tooltip", "required", "keyColumnTitle", "valueColumnTitle", "dropdownColumnTitle", "hideDeleteButton", "hideAddButton", "dropdownItems", "dropdownWidth", "fullWidth", "carbonTheme"], outputs: ["valueChange", "allValuesValidEvent"] }, { kind: "directive", type: i8.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: i6.VModalComponent, selector: "v-modal", inputs: ["appearingDelayMs", "maxWidthPx", "hideFooter", "parentId"], outputs: ["closeEvent"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.PluginTranslatePipe, name: "pluginTranslate" }] }); }
|
|
213
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: VerzoekConfigurationComponent, selector: "valtimo-verzoek-configuration", inputs: { save$: "save$", disabled$: "disabled$", pluginId: "pluginId", prefillConfiguration$: "prefillConfiguration$" }, outputs: { valid: "valid", configuration: "configuration" }, viewQueries: [{ propertyName: "mappingModals", predicate: VModalComponent, descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: mappedPrefill$ ? (mappedPrefill$ | async) : null,\n } as obs\"\n>\n <v-input\n name=\"configurationTitle\"\n [title]=\"'configurationTitle' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"obs.prefill?.configurationTitle\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'configurationTitleTooltip' | pluginTranslate: pluginId | async\"\n placeholder=\"Verzoek Plugin\"\n >\n </v-input>\n <ng-container\n *ngIf=\"{notificatiePluginSelectItems: notificatiePluginSelectItems$ | async} as vars\"\n >\n <v-select\n [items]=\"vars.notificatiePluginSelectItems\"\n [margin]=\"true\"\n name=\"notificatiesApiPluginConfiguration\"\n [title]=\"'notificatiesApiPluginConfiguration' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"obs.prefill?.notificatiesApiPluginConfiguration\"\n [required]=\"true\"\n [loading]=\"!vars.notificatiePluginSelectItems\"\n [tooltip]=\"'notificatiesApiPluginConfigurationTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <ng-container *ngIf=\"{processSelectItems: processSelectItems$ | async} as vars\">\n <v-select\n [items]=\"vars.processSelectItems\"\n [margin]=\"true\"\n name=\"processToStart\"\n [title]=\"'processToStart' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"obs.prefill?.processToStart\"\n [required]=\"true\"\n [loading]=\"!vars.processSelectItems\"\n [tooltip]=\"'processToStartTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <v-input\n name=\"rsin\"\n [title]=\"'rsin' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"obs.prefill?.rsin\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'rsinTooltip' | pluginTranslate: pluginId | async\"\n placeholder=\"\"\n >\n </v-input>\n <v-multi-input-form\n name=\"verzoekProperties\"\n [title]=\"'verzoekProperties' | pluginTranslate: pluginId | async\"\n [formTemplate]=\"mappingForm\"\n [addRowText]=\"'addVerzoekType' | pluginTranslate: pluginId | async\"\n [required]=\"false\"\n [tooltip]=\"'verzoekPropertiesTooltip' | pluginTranslate: pluginId | async\"\n (deleteRowEvent)=\"deleteRow($event)\"\n [initialAmountOfRows]=\"0\"\n [minimumAmountOfRows]=\"0\"\n [defaultValues]=\"obs.prefill?.verzoekProperties\"\n >\n </v-multi-input-form>\n</v-form>\n\n<ng-template\n #mappingForm\n let-index=\"index\"\n let-uuid=\"uuid\"\n let-changeFunction=\"changeFunction\"\n let-prefill=\"prefill\"\n>\n <ng-container\n *ngIf=\"{\n disabled: disabled$ | async,\n } as obs\"\n >\n <v-form (valueChange)=\"changeFunction($event, uuid); verzoekTypeFormChange($event, uuid)\">\n <v-input\n name=\"type\"\n [title]=\"'type' | pluginTranslate: pluginId | async\"\n [margin]=\"false\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"prefill?.type\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'typeTooltip' | pluginTranslate: pluginId | async\"\n [smallMargin]=\"true\"\n placeholder=\"\"\n >\n </v-input>\n <ng-container *ngIf=\"{documentSelectItems: documentSelectItems$ | async} as vars\">\n <v-select\n [items]=\"vars.documentSelectItems\"\n [smallMargin]=\"true\"\n name=\"caseDefinitionName\"\n [title]=\"'caseDefinitionName' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"prefill?.caseDefinitionName\"\n [required]=\"true\"\n [loading]=\"!vars.documentSelectItems\"\n [tooltip]=\"'caseDefinitionNameTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <ng-container\n *ngIf=\"{objectManagementSelectItems: objectManagementSelectItems$ | async} as vars\"\n >\n <v-select\n [items]=\"vars.objectManagementSelectItems\"\n [smallMargin]=\"true\"\n name=\"objectManagementId\"\n [title]=\"'objectManagementId' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"prefill?.objectManagementId\"\n [required]=\"true\"\n [loading]=\"!vars.objectManagementSelectItems\"\n [tooltip]=\"'objectManagementIdTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <v-select\n [items]=\"\n rolTypeSelectItemsObservables[uuid]?.caseDefinitionName &&\n (rolTypeSelectItemsObservables[uuid].items | async)\n \"\n [smallMargin]=\"true\"\n name=\"initiatorRoltypeUrl\"\n [title]=\"'initiatorRoltypeUrl' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled || !rolTypeSelectItemsObservables[uuid]?.caseDefinitionName\"\n [defaultSelectionId]=\"prefill?.initiatorRoltypeUrl\"\n [required]=\"true\"\n [tooltip]=\"'initiatorRoltypeUrlTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n <v-input\n name=\"initiatorRolDescription\"\n [title]=\"'initiatorRolDescription' | pluginTranslate: pluginId | async\"\n [margin]=\"false\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"prefill?.initiatorRolDescription || 'Initiator'\"\n [required]=\"true\"\n [tooltip]=\"'initiatorRolDescriptionTooltip' | pluginTranslate: pluginId | async\"\n [smallMargin]=\"true\"\n placeholder=\"\"\n >\n </v-input>\n <ng-container *ngIf=\"{processSelectItems: processSelectItems$ | async} as vars\">\n <v-select\n [items]=\"vars.processSelectItems\"\n [smallMargin]=\"true\"\n name=\"processDefinitionKey\"\n [title]=\"'processDefinitionKey' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"prefill?.processDefinitionKey\"\n [required]=\"true\"\n [loading]=\"!vars.processSelectItems\"\n [tooltip]=\"'processDefinitionKeyTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <v-radio\n name=\"copyStrategy\"\n [disabled]=\"obs.disabled\"\n [title]=\"'copyStrategy' | pluginTranslate: pluginId | async\"\n [tooltip]=\"'copyStrategyTooltip' | pluginTranslate: pluginId | async\"\n [radioValues]=\"radioItems$ | async\"\n [smallMargin]=\"true\"\n [defaultValue]=\"prefill?.copyStrategy || 'full'\"\n >\n </v-radio>\n <ng-container *ngIf=\"showMappingButtons[uuid]\">\n <v-input-label\n [title]=\"'mapping' | pluginTranslate: pluginId | async\"\n [tooltip]=\"'mappingTooltip' | pluginTranslate: pluginId | async\"\n >\n </v-input-label>\n <v-button (clickEvent)=\"openMappingModal(uuid)\" mdiIcon=\"table\"\n >{{ 'setMapping' | pluginTranslate: pluginId | async }}\n </v-button>\n </ng-container>\n <v-input class=\"hidden-input\" name=\"uuid\" [defaultValue]=\"uuid\"> </v-input>\n </v-form>\n <v-modal [parentId]=\"uuid\" (closeEvent)=\"closeMappingModal(uuid)\" [maxWidthPx]=\"960\">\n <div role=\"header\">\n <h3 cdsModalHeaderHeading>{{ 'setMapping' | pluginTranslate: pluginId | async }}</h3>\n </div>\n\n <div role=\"content\">\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'mapping' | pluginTranslate: pluginId | async }}\n <v-tooltip-icon\n [tooltip]=\"'mappingTooltip' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n </cds-label>\n <valtimo-carbon-multi-input\n *ngIf=\"showMappingModalsDelay[uuid]\"\n type=\"keyValuePathSelector\"\n (valueChange)=\"mappingValueChange($event, uuid)\"\n [defaultValues]=\"mappings[uuid] || prefill?.mapping\"\n [valueColumnTitle]=\"'target' | pluginTranslate: pluginId | async\"\n [keyColumnTitle]=\"'source' | pluginTranslate: pluginId | async\"\n [fullWidth]=\"true\"\n valuePathSelectorNotation=\"slashes\"\n [valuePathSelectorDocumentDefinitionName]=\"\n getSelectedCaseDefinitionNameForIndex(index) | async\n \"\n [valuePathSelectorPrefixes]=\"[ValuePathSelectorPrefix.DOC]\"\n [keyColumnFlex]=\"1\"\n [valueColumnFlex]=\"2\"\n ></valtimo-carbon-multi-input>\n </div>\n </div>\n\n <div role=\"footer\" class=\"modal-buttons-container\">\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeMappingModal(uuid)\"\n [disabled]=\"obs.disabled\"\n >\n {{ 'close' | pluginTranslate: pluginId | async }}\n </button>\n\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n [disabled]=\"obs.disabled\"\n (click)=\"saveMapping(uuid)\"\n [disabled]=\"obs.disabled\"\n >\n {{ 'save' | pluginTranslate: pluginId | async }}\n </button>\n </div>\n </v-modal>\n </ng-container>\n</ng-template>\n", styles: [".label-with-tooltip{display:flex;align-items:center}.select-label{padding-bottom:.5rem;width:250px}.hidden-input{display:none}.cds--text-input__field-wrapper{flex-direction:column}.modal-buttons-container{width:100%;display:flex;justify-content:flex-end}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.FormComponent, selector: "v-form", inputs: ["className"], outputs: ["valueChange"] }, { kind: "component", type: i6.InputComponent, selector: "v-input", inputs: ["name", "type", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "step", "min", "maxLength", "tooltip", "required", "hideNumberSpinBox", "smallLabel", "rows", "clear$", "carbonTheme", "placeholder", "dataTestId", "trim"], outputs: ["valueChange"] }, { kind: "component", type: i6.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "defaultSelectionIds", "disabled", "dropUp", "multiple", "margin", "widthInPx", "notFoundText", "clearAllText", "clearText", "name", "title", "titleTranslationKey", "clearSelectionSubject$", "tooltip", "required", "loading", "loadingText", "placeholder", "smallMargin", "carbonTheme", "appendInline", "dataTestId"], outputs: ["selectedChange"] }, { kind: "component", type: i6.MultiInputFormComponent, selector: "v-multi-input-form", inputs: ["name", "title", "titleTranslationKey", "type", "initialAmountOfRows", "minimumAmountOfRows", "maxRows", "addRowText", "addRowTranslationKey", "deleteRowText", "deleteRowTranslationKey", "disabled", "defaultValues", "margin", "tooltip", "required", "formTemplate"], outputs: ["valueChange", "deleteRowEvent"] }, { kind: "component", type: i6.RadioComponent, selector: "v-radio", inputs: ["name", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "tooltip", "required", "smallLabel", "rows", "clear$", "radioValues"], outputs: ["valueChange"] }, { kind: "component", type: i6.InputLabelComponent, selector: "v-input-label", inputs: ["name", "tooltip", "largeMargin", "small", "noMargin", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }, { kind: "component", type: i6.ButtonComponent, selector: "v-button", inputs: ["type", "mdiIcon", "disabled", "title", "titleTranslationKey"], outputs: ["clickEvent"] }, { kind: "directive", type: i8.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "component", type: i8.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "component", type: i6.TooltipIconComponent, selector: "v-tooltip-icon", inputs: ["tooltip", "disabled"] }, { kind: "component", type: i6.CarbonMultiInputComponent, selector: "valtimo-carbon-multi-input", inputs: ["addRowText", "addRowTranslationKey", "arbitraryAmountTitles", "arbitraryValueAmount", "defaultValues", "deleteRowText", "deleteRowTranslationKey", "disabled", "dropdownColumnTitle", "dropdownItems", "dropdownWidth", "fullWidth", "hideAddButton", "hideDeleteButton", "initialAmountOfRows", "keyColumnTitle", "margin", "maxRows", "minimumAmountOfRows", "name", "required", "title", "titleTranslationKey", "tooltip", "type", "valueColumnTitle", "valuePathSelectorDocumentDefinitionName", "valuePathSelectorPrefixes", "valuePathSelectorShowDocumentDefinitionSelector", "valuePathSelectorNotation", "keyColumnFlex", "dropdownColumnFlex", "valueColumnFlex"], outputs: ["valueChange", "allValuesValidEvent"] }, { kind: "directive", type: i8.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: i6.VModalComponent, selector: "v-modal", inputs: ["appearingDelayMs", "maxWidthPx", "hideFooter", "parentId"], outputs: ["closeEvent"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.PluginTranslatePipe, name: "pluginTranslate" }] }); }
|
|
209
214
|
}
|
|
210
215
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: VerzoekConfigurationComponent, decorators: [{
|
|
211
216
|
type: Component,
|
|
212
|
-
args: [{ selector: 'valtimo-verzoek-configuration', template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: mappedPrefill$ ? (mappedPrefill$ | async) : null,\n } as obs\"\n>\n <v-input\n name=\"configurationTitle\"\n [title]=\"'configurationTitle' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"obs.prefill?.configurationTitle\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'configurationTitleTooltip' | pluginTranslate: pluginId | async\"\n placeholder=\"Verzoek Plugin\"\n >\n </v-input>\n <ng-container\n *ngIf=\"{notificatiePluginSelectItems: notificatiePluginSelectItems$ | async} as vars\"\n >\n <v-select\n [items]=\"vars.notificatiePluginSelectItems\"\n [margin]=\"true\"\n name=\"notificatiesApiPluginConfiguration\"\n [title]=\"'notificatiesApiPluginConfiguration' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"obs.prefill?.notificatiesApiPluginConfiguration\"\n [required]=\"true\"\n [loading]=\"!vars.notificatiePluginSelectItems\"\n [tooltip]=\"'notificatiesApiPluginConfigurationTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <ng-container *ngIf=\"{processSelectItems: processSelectItems$ | async} as vars\">\n <v-select\n [items]=\"vars.processSelectItems\"\n [margin]=\"true\"\n name=\"processToStart\"\n [title]=\"'processToStart' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"obs.prefill?.processToStart\"\n [required]=\"true\"\n [loading]=\"!vars.processSelectItems\"\n [tooltip]=\"'processToStartTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <v-input\n name=\"rsin\"\n [title]=\"'rsin' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"obs.prefill?.rsin\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'rsinTooltip' | pluginTranslate: pluginId | async\"\n placeholder=\"\"\n >\n </v-input>\n <v-multi-input-form\n name=\"verzoekProperties\"\n [title]=\"'verzoekProperties' | pluginTranslate: pluginId | async\"\n [formTemplate]=\"mappingForm\"\n [addRowText]=\"'addVerzoekType' | pluginTranslate: pluginId | async\"\n [required]=\"false\"\n [tooltip]=\"'verzoekPropertiesTooltip' | pluginTranslate: pluginId | async\"\n (deleteRowEvent)=\"deleteRow($event)\"\n [initialAmountOfRows]=\"0\"\n [minimumAmountOfRows]=\"0\"\n [defaultValues]=\"obs.prefill?.verzoekProperties\"\n >\n </v-multi-input-form>\n</v-form>\n\n<ng-template\n #mappingForm\n let-index=\"index\"\n let-uuid=\"uuid\"\n let-changeFunction=\"changeFunction\"\n let-prefill=\"prefill\"\n>\n <ng-container\n *ngIf=\"{\n disabled: disabled$ | async,\n } as obs\"\n >\n <v-form (valueChange)=\"changeFunction($event, uuid); verzoekTypeFormChange($event, uuid)\">\n <v-input\n name=\"type\"\n [title]=\"'type' | pluginTranslate: pluginId | async\"\n [margin]=\"false\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"prefill?.type\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'typeTooltip' | pluginTranslate: pluginId | async\"\n [smallMargin]=\"true\"\n placeholder=\"\"\n >\n </v-input>\n <ng-container *ngIf=\"{documentSelectItems: documentSelectItems$ | async} as vars\">\n <v-select\n [items]=\"vars.documentSelectItems\"\n [smallMargin]=\"true\"\n name=\"caseDefinitionName\"\n [title]=\"'caseDefinitionName' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"prefill?.caseDefinitionName\"\n [required]=\"true\"\n [loading]=\"!vars.documentSelectItems\"\n [tooltip]=\"'caseDefinitionNameTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <ng-container\n *ngIf=\"{objectManagementSelectItems: objectManagementSelectItems$ | async} as vars\"\n >\n <v-select\n [items]=\"vars.objectManagementSelectItems\"\n [smallMargin]=\"true\"\n name=\"objectManagementId\"\n [title]=\"'objectManagementId' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"prefill?.objectManagementId\"\n [required]=\"true\"\n [loading]=\"!vars.objectManagementSelectItems\"\n [tooltip]=\"'objectManagementIdTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <v-select\n [items]=\"\n rolTypeSelectItemsObservables[uuid]?.caseDefinitionName &&\n (rolTypeSelectItemsObservables[uuid].items | async)\n \"\n [smallMargin]=\"true\"\n name=\"initiatorRoltypeUrl\"\n [title]=\"'initiatorRoltypeUrl' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled || !rolTypeSelectItemsObservables[uuid]?.caseDefinitionName\"\n [defaultSelectionId]=\"prefill?.initiatorRoltypeUrl\"\n [required]=\"true\"\n [tooltip]=\"'initiatorRoltypeUrlTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n <v-input\n name=\"initiatorRolDescription\"\n [title]=\"'initiatorRolDescription' | pluginTranslate: pluginId | async\"\n [margin]=\"false\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"prefill?.initiatorRolDescription || 'Initiator'\"\n [required]=\"true\"\n [tooltip]=\"'initiatorRolDescriptionTooltip' | pluginTranslate: pluginId | async\"\n [smallMargin]=\"true\"\n placeholder=\"\"\n >\n </v-input>\n <ng-container *ngIf=\"{processSelectItems: processSelectItems$ | async} as vars\">\n <v-select\n [items]=\"vars.processSelectItems\"\n [smallMargin]=\"true\"\n name=\"processDefinitionKey\"\n [title]=\"'processDefinitionKey' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"prefill?.processDefinitionKey\"\n [required]=\"true\"\n [loading]=\"!vars.processSelectItems\"\n [tooltip]=\"'processDefinitionKeyTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <v-radio\n name=\"copyStrategy\"\n [disabled]=\"obs.disabled\"\n [title]=\"'copyStrategy' | pluginTranslate: pluginId | async\"\n [tooltip]=\"'copyStrategyTooltip' | pluginTranslate: pluginId | async\"\n [radioValues]=\"radioItems$ | async\"\n [smallMargin]=\"true\"\n [defaultValue]=\"prefill?.copyStrategy || 'full'\"\n >\n </v-radio>\n <ng-container *ngIf=\"showMappingButtons[uuid]\">\n <v-input-label\n [title]=\"'mapping' | pluginTranslate: pluginId | async\"\n [tooltip]=\"'mappingTooltip' | pluginTranslate: pluginId | async\"\n >\n </v-input-label>\n <v-button (clickEvent)=\"openMappingModal(uuid)\" mdiIcon=\"table\"\n >{{ 'setMapping' | pluginTranslate: pluginId | async }}\n </v-button>\n </ng-container>\n <v-input class=\"hidden-input\" name=\"uuid\" [defaultValue]=\"uuid\"> </v-input>\n </v-form>\n <v-modal [parentId]=\"uuid\" (closeEvent)=\"closeMappingModal(uuid)\">\n <div role=\"header\">\n <h3 cdsModalHeaderHeading>{{ 'setMapping' | pluginTranslate: pluginId | async }}</h3>\n </div>\n\n <div role=\"content\">\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'mapping' | pluginTranslate: pluginId | async }}\n <v-tooltip-icon\n [tooltip]=\"'mappingTooltip' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n </cds-label>\n <valtimo-carbon-multi-input\n *ngIf=\"showMappingModalsDelay[uuid]\"\n type=\"keyValue\"\n (valueChange)=\"mappingValueChange($event, uuid)\"\n [defaultValues]=\"mappings[uuid] || prefill?.mapping\"\n [valueColumnTitle]=\"'target' | pluginTranslate: pluginId | async\"\n [keyColumnTitle]=\"'source' | pluginTranslate: pluginId | async\"\n [fullWidth]=\"true\"\n ></valtimo-carbon-multi-input>\n </div>\n </div>\n\n <div role=\"footer\">\n <ng-container>\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeMappingModal(uuid)\"\n [disabled]=\"obs.disabled\"\n >\n {{ 'close' | pluginTranslate: pluginId | async }}\n </button>\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n [disabled]=\"obs.disabled\"\n (click)=\"saveMapping(uuid)\"\n [disabled]=\"obs.disabled\"\n >\n {{ 'save' | pluginTranslate: pluginId | async }}\n </button>\n </ng-container>\n </div>\n </v-modal>\n </ng-container>\n</ng-template>\n", styles: [".label-with-tooltip{display:flex;align-items:center}.select-label{padding-bottom:.5rem;width:250px}.hidden-input{display:none}.cds--text-input__field-wrapper{flex-direction:column}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
|
|
217
|
+
args: [{ selector: 'valtimo-verzoek-configuration', template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: mappedPrefill$ ? (mappedPrefill$ | async) : null,\n } as obs\"\n>\n <v-input\n name=\"configurationTitle\"\n [title]=\"'configurationTitle' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"obs.prefill?.configurationTitle\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'configurationTitleTooltip' | pluginTranslate: pluginId | async\"\n placeholder=\"Verzoek Plugin\"\n >\n </v-input>\n <ng-container\n *ngIf=\"{notificatiePluginSelectItems: notificatiePluginSelectItems$ | async} as vars\"\n >\n <v-select\n [items]=\"vars.notificatiePluginSelectItems\"\n [margin]=\"true\"\n name=\"notificatiesApiPluginConfiguration\"\n [title]=\"'notificatiesApiPluginConfiguration' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"obs.prefill?.notificatiesApiPluginConfiguration\"\n [required]=\"true\"\n [loading]=\"!vars.notificatiePluginSelectItems\"\n [tooltip]=\"'notificatiesApiPluginConfigurationTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <ng-container *ngIf=\"{processSelectItems: processSelectItems$ | async} as vars\">\n <v-select\n [items]=\"vars.processSelectItems\"\n [margin]=\"true\"\n name=\"processToStart\"\n [title]=\"'processToStart' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"obs.prefill?.processToStart\"\n [required]=\"true\"\n [loading]=\"!vars.processSelectItems\"\n [tooltip]=\"'processToStartTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <v-input\n name=\"rsin\"\n [title]=\"'rsin' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"obs.prefill?.rsin\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'rsinTooltip' | pluginTranslate: pluginId | async\"\n placeholder=\"\"\n >\n </v-input>\n <v-multi-input-form\n name=\"verzoekProperties\"\n [title]=\"'verzoekProperties' | pluginTranslate: pluginId | async\"\n [formTemplate]=\"mappingForm\"\n [addRowText]=\"'addVerzoekType' | pluginTranslate: pluginId | async\"\n [required]=\"false\"\n [tooltip]=\"'verzoekPropertiesTooltip' | pluginTranslate: pluginId | async\"\n (deleteRowEvent)=\"deleteRow($event)\"\n [initialAmountOfRows]=\"0\"\n [minimumAmountOfRows]=\"0\"\n [defaultValues]=\"obs.prefill?.verzoekProperties\"\n >\n </v-multi-input-form>\n</v-form>\n\n<ng-template\n #mappingForm\n let-index=\"index\"\n let-uuid=\"uuid\"\n let-changeFunction=\"changeFunction\"\n let-prefill=\"prefill\"\n>\n <ng-container\n *ngIf=\"{\n disabled: disabled$ | async,\n } as obs\"\n >\n <v-form (valueChange)=\"changeFunction($event, uuid); verzoekTypeFormChange($event, uuid)\">\n <v-input\n name=\"type\"\n [title]=\"'type' | pluginTranslate: pluginId | async\"\n [margin]=\"false\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"prefill?.type\"\n [required]=\"true\"\n [trim]=\"true\"\n [tooltip]=\"'typeTooltip' | pluginTranslate: pluginId | async\"\n [smallMargin]=\"true\"\n placeholder=\"\"\n >\n </v-input>\n <ng-container *ngIf=\"{documentSelectItems: documentSelectItems$ | async} as vars\">\n <v-select\n [items]=\"vars.documentSelectItems\"\n [smallMargin]=\"true\"\n name=\"caseDefinitionName\"\n [title]=\"'caseDefinitionName' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"prefill?.caseDefinitionName\"\n [required]=\"true\"\n [loading]=\"!vars.documentSelectItems\"\n [tooltip]=\"'caseDefinitionNameTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <ng-container\n *ngIf=\"{objectManagementSelectItems: objectManagementSelectItems$ | async} as vars\"\n >\n <v-select\n [items]=\"vars.objectManagementSelectItems\"\n [smallMargin]=\"true\"\n name=\"objectManagementId\"\n [title]=\"'objectManagementId' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"prefill?.objectManagementId\"\n [required]=\"true\"\n [loading]=\"!vars.objectManagementSelectItems\"\n [tooltip]=\"'objectManagementIdTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <v-select\n [items]=\"\n rolTypeSelectItemsObservables[uuid]?.caseDefinitionName &&\n (rolTypeSelectItemsObservables[uuid].items | async)\n \"\n [smallMargin]=\"true\"\n name=\"initiatorRoltypeUrl\"\n [title]=\"'initiatorRoltypeUrl' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled || !rolTypeSelectItemsObservables[uuid]?.caseDefinitionName\"\n [defaultSelectionId]=\"prefill?.initiatorRoltypeUrl\"\n [required]=\"true\"\n [tooltip]=\"'initiatorRoltypeUrlTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n <v-input\n name=\"initiatorRolDescription\"\n [title]=\"'initiatorRolDescription' | pluginTranslate: pluginId | async\"\n [margin]=\"false\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"prefill?.initiatorRolDescription || 'Initiator'\"\n [required]=\"true\"\n [tooltip]=\"'initiatorRolDescriptionTooltip' | pluginTranslate: pluginId | async\"\n [smallMargin]=\"true\"\n placeholder=\"\"\n >\n </v-input>\n <ng-container *ngIf=\"{processSelectItems: processSelectItems$ | async} as vars\">\n <v-select\n [items]=\"vars.processSelectItems\"\n [smallMargin]=\"true\"\n name=\"processDefinitionKey\"\n [title]=\"'processDefinitionKey' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"prefill?.processDefinitionKey\"\n [required]=\"true\"\n [loading]=\"!vars.processSelectItems\"\n [tooltip]=\"'processDefinitionKeyTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n </ng-container>\n <v-radio\n name=\"copyStrategy\"\n [disabled]=\"obs.disabled\"\n [title]=\"'copyStrategy' | pluginTranslate: pluginId | async\"\n [tooltip]=\"'copyStrategyTooltip' | pluginTranslate: pluginId | async\"\n [radioValues]=\"radioItems$ | async\"\n [smallMargin]=\"true\"\n [defaultValue]=\"prefill?.copyStrategy || 'full'\"\n >\n </v-radio>\n <ng-container *ngIf=\"showMappingButtons[uuid]\">\n <v-input-label\n [title]=\"'mapping' | pluginTranslate: pluginId | async\"\n [tooltip]=\"'mappingTooltip' | pluginTranslate: pluginId | async\"\n >\n </v-input-label>\n <v-button (clickEvent)=\"openMappingModal(uuid)\" mdiIcon=\"table\"\n >{{ 'setMapping' | pluginTranslate: pluginId | async }}\n </v-button>\n </ng-container>\n <v-input class=\"hidden-input\" name=\"uuid\" [defaultValue]=\"uuid\"> </v-input>\n </v-form>\n <v-modal [parentId]=\"uuid\" (closeEvent)=\"closeMappingModal(uuid)\" [maxWidthPx]=\"960\">\n <div role=\"header\">\n <h3 cdsModalHeaderHeading>{{ 'setMapping' | pluginTranslate: pluginId | async }}</h3>\n </div>\n\n <div role=\"content\">\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'mapping' | pluginTranslate: pluginId | async }}\n <v-tooltip-icon\n [tooltip]=\"'mappingTooltip' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n </cds-label>\n <valtimo-carbon-multi-input\n *ngIf=\"showMappingModalsDelay[uuid]\"\n type=\"keyValuePathSelector\"\n (valueChange)=\"mappingValueChange($event, uuid)\"\n [defaultValues]=\"mappings[uuid] || prefill?.mapping\"\n [valueColumnTitle]=\"'target' | pluginTranslate: pluginId | async\"\n [keyColumnTitle]=\"'source' | pluginTranslate: pluginId | async\"\n [fullWidth]=\"true\"\n valuePathSelectorNotation=\"slashes\"\n [valuePathSelectorDocumentDefinitionName]=\"\n getSelectedCaseDefinitionNameForIndex(index) | async\n \"\n [valuePathSelectorPrefixes]=\"[ValuePathSelectorPrefix.DOC]\"\n [keyColumnFlex]=\"1\"\n [valueColumnFlex]=\"2\"\n ></valtimo-carbon-multi-input>\n </div>\n </div>\n\n <div role=\"footer\" class=\"modal-buttons-container\">\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeMappingModal(uuid)\"\n [disabled]=\"obs.disabled\"\n >\n {{ 'close' | pluginTranslate: pluginId | async }}\n </button>\n\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n [disabled]=\"obs.disabled\"\n (click)=\"saveMapping(uuid)\"\n [disabled]=\"obs.disabled\"\n >\n {{ 'save' | pluginTranslate: pluginId | async }}\n </button>\n </div>\n </v-modal>\n </ng-container>\n</ng-template>\n", styles: [".label-with-tooltip{display:flex;align-items:center}.select-label{padding-bottom:.5rem;width:250px}.hidden-input{display:none}.cds--text-input__field-wrapper{flex-direction:column}.modal-buttons-container{width:100%;display:flex;justify-content:flex-end}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
|
|
213
218
|
}], ctorParameters: () => [{ type: i1.PluginManagementService }, { type: i2.TranslateService }, { type: i1.PluginTranslationService }, { type: i3.VerzoekPluginService }, { type: i4.ProcessService }, { type: i5.DocumentService }, { type: i6.ModalService }], propDecorators: { mappingModals: [{
|
|
214
219
|
type: ViewChildren,
|
|
215
220
|
args: [VModalComponent]
|
|
@@ -226,4 +231,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
226
231
|
}], configuration: [{
|
|
227
232
|
type: Output
|
|
228
233
|
}] } });
|
|
229
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyem9lay1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcGx1Z2luL3NyYy9saWIvcGx1Z2lucy92ZXJ6b2VrL2NvbXBvbmVudHMvdmVyem9lay1jb25maWd1cmF0aW9uL3ZlcnpvZWstY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3BsdWdpbi9zcmMvbGliL3BsdWdpbnMvdmVyem9lay9jb21wb25lbnRzL3ZlcnpvZWstY29uZmlndXJhdGlvbi92ZXJ6b2VrLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixNQUFNLEVBQ04sR0FBRyxFQUVILEVBQUUsRUFFRixJQUFJLEVBQ0osR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBSWQsT0FBTyxFQUtMLGVBQWUsR0FDaEIsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7QUFVN0IsTUFBTSxPQUFPLDZCQUE2QjtJQXlGeEMsWUFDbUIsdUJBQWdELEVBQ2hELGdCQUFrQyxFQUNsQyx3QkFBa0QsRUFDbEQsb0JBQTBDLEVBQzFDLGNBQThCLEVBQzlCLGVBQWdDLEVBQ2hDLFlBQTBCO1FBTjFCLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDaEQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELHlCQUFvQixHQUFwQixvQkFBb0IsQ0FB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QWtCLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDO3dCQUV0RCxJQUFJLGlCQUFpQixJQUFJLGNBQWMsRUFBRSxDQUFDOzRCQUN4QyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxHQUFHLGlCQUFpQixDQUFDO3dCQUNwRCxDQUFDO29CQUNILENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7K0dBclFVLDZCQUE2QjttR0FBN0IsNkJBQTZCLDhSQUcxQixlQUFlLGdEQzVEL0IsbThUQWdRQTs7NEZEdk1hLDZCQUE2QjtrQkFMekMsU0FBUzsrQkFDRSwrQkFBK0I7MlJBT1YsYUFBYTtzQkFBM0MsWUFBWTt1QkFBQyxlQUFlO2dCQUVwQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDSSxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtQbHVnaW5Db25maWd1cmF0aW9uQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBmaWx0ZXIsXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIFN1YnNjcmlwdGlvbixcbiAgdGFrZSxcbiAgdGFwLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q29weVN0cmF0ZWd5LCBWZXJ6b2VrQ29uZmlnLCBWZXJ6b2VrVHlwZX0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7UGx1Z2luTWFuYWdlbWVudFNlcnZpY2UsIFBsdWdpblRyYW5zbGF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7XG4gIE1vZGFsU2VydmljZSxcbiAgTXVsdGlJbnB1dFZhbHVlcyxcbiAgUmFkaW9WYWx1ZSxcbiAgU2VsZWN0SXRlbSxcbiAgVk1vZGFsQ29tcG9uZW50LFxufSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7VmVyem9la1BsdWdpblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7UHJvY2Vzc1NlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL3Byb2Nlc3MnO1xuaW1wb3J0IHtEb2N1bWVudFNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2RvY3VtZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby12ZXJ6b2VrLWNvbmZpZ3VyYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vdmVyem9lay1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdmVyem9lay1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFZlcnpvZWtDb25maWd1cmF0aW9uQ29tcG9uZW50XG4gIGltcGxlbWVudHMgUGx1Z2luQ29uZmlndXJhdGlvbkNvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgQFZpZXdDaGlsZHJlbihWTW9kYWxDb21wb25lbnQpIG1hcHBpbmdNb2RhbHM6IFF1ZXJ5TGlzdDxWTW9kYWxDb21wb25lbnQ+O1xuXG4gIEBJbnB1dCgpIHNhdmUkOiBPYnNlcnZhYmxlPHZvaWQ+O1xuICBASW5wdXQoKSBkaXNhYmxlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIEBJbnB1dCgpIHBsdWdpbklkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHByZWZpbGxDb25maWd1cmF0aW9uJDogT2JzZXJ2YWJsZTxWZXJ6b2VrQ29uZmlnPjtcbiAgQE91dHB1dCgpIHZhbGlkOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBjb25maWd1cmF0aW9uOiBFdmVudEVtaXR0ZXI8VmVyem9la0NvbmZpZz4gPSBuZXcgRXZlbnRFbWl0dGVyPFZlcnpvZWtDb25maWc+KCk7XG5cbiAgbWFwcGVkUHJlZmlsbCQ6IE9ic2VydmFibGU8VmVyem9la0NvbmZpZz47XG5cbiAgcmVhZG9ubHkgbm90aWZpY2F0aWVQbHVnaW5TZWxlY3RJdGVtcyQ6IE9ic2VydmFibGU8QXJyYXk8U2VsZWN0SXRlbT4+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5wbHVnaW5NYW5hZ2VtZW50U2VydmljZS5nZXRQbHVnaW5Db25maWd1cmF0aW9uc0J5UGx1Z2luRGVmaW5pdGlvbktleSgnbm90aWZpY2F0aWVzYXBpJyksXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbSgna2V5JyksXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbY29uZmlndXJhdGlvbnNdKSA9PlxuICAgICAgY29uZmlndXJhdGlvbnMubWFwKGNvbmZpZ3VyYXRpb24gPT4gKHtcbiAgICAgICAgaWQ6IGNvbmZpZ3VyYXRpb24uaWQsXG4gICAgICAgIHRleHQ6IGAke2NvbmZpZ3VyYXRpb24udGl0bGV9IC0gJHt0aGlzLnBsdWdpblRyYW5zbGF0aW9uU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICd0aXRsZScsXG4gICAgICAgICAgY29uZmlndXJhdGlvbi5wbHVnaW5EZWZpbml0aW9uLmtleVxuICAgICAgICApfWAsXG4gICAgICB9KSlcbiAgICApXG4gICk7XG5cbiAgcmVhZG9ubHkgb2JqZWN0TWFuYWdlbWVudFNlbGVjdEl0ZW1zJDogT2JzZXJ2YWJsZTxBcnJheTxTZWxlY3RJdGVtPj4gPSB0aGlzLnZlcnpvZWtQbHVnaW5TZXJ2aWNlXG4gICAgLmdldEFsbE9iamVjdHMoKVxuICAgIC5waXBlKFxuICAgICAgbWFwKG9iamVjdHMgPT5cbiAgICAgICAgb2JqZWN0cy5tYXAob2JqZWN0ID0+ICh7XG4gICAgICAgICAgaWQ6IG9iamVjdC5pZCxcbiAgICAgICAgICB0ZXh0OiBvYmplY3QudGl0bGUsXG4gICAgICAgIH0pKVxuICAgICAgKVxuICAgICk7XG5cbiAgcmVhZG9ubHkgcHJvY2Vzc1NlbGVjdEl0ZW1zJDogT2JzZXJ2YWJsZTxBcnJheTxTZWxlY3RJdGVtPj4gPSB0aGlzLnByb2Nlc3NTZXJ2aWNlXG4gICAgLmdldFByb2Nlc3NEZWZpbml0aW9ucygpXG4gICAgLnBpcGUoXG4gICAgICBtYXAocHJvY2Vzc0RlZmluaXRpb25zID0+XG4gICAgICAgIHByb2Nlc3NEZWZpbml0aW9ucy5tYXAocHJvY2Vzc0RlZmluaXRpb24gPT4gKHtcbiAgICAgICAgICBpZDogcHJvY2Vzc0RlZmluaXRpb24ua2V5LFxuICAgICAgICAgIHRleHQ6IHByb2Nlc3NEZWZpbml0aW9uLm5hbWUgPz8gJycsXG4gICAgICAgIH0pKVxuICAgICAgKVxuICAgICk7XG5cbiAgcmVhZG9ubHkgZG9jdW1lbnRTZWxlY3RJdGVtcyQ6IE9ic2VydmFibGU8QXJyYXk8U2VsZWN0SXRlbT4+ID0gdGhpcy5kb2N1bWVudFNlcnZpY2VcbiAgICAuZ2V0QWxsRGVmaW5pdGlvbnMoKVxuICAgIC5waXBlKFxuICAgICAgbWFwKGRvY3VtZW50RGVmaW5pdGlvbnMgPT5cbiAgICAgICAgZG9jdW1lbnREZWZpbml0aW9ucy5jb250ZW50Lm1hcChkb2N1bWVudERlZmluaXRpb24gPT4gKHtcbiAgICAgICAgICBpZDogZG9jdW1lbnREZWZpbml0aW9uLmlkLm5hbWUsXG4gICAgICAgICAgdGV4dDogZG9jdW1lbnREZWZpbml0aW9uLmlkLm5hbWUsXG4gICAgICAgIH0pKVxuICAgICAgKVxuICAgICk7XG5cbiAgcmVhZG9ubHkgUkFESU9fSVRFTVM6IEFycmF5PENvcHlTdHJhdGVneT4gPSBbJ2Z1bGwnLCAnc3BlY2lmaWVkJ107XG4gIHJlYWRvbmx5IHJhZGlvSXRlbXMkOiBPYnNlcnZhYmxlPEFycmF5PFJhZGlvVmFsdWU+PiA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5zdHJlYW0oJ2tleScpLnBpcGUoXG4gICAgbWFwKCgpID0+XG4gICAgICB0aGlzLlJBRElPX0lURU1TLm1hcChyYWRpb0l0ZW0gPT4gKHtcbiAgICAgICAgdmFsdWU6IHJhZGlvSXRlbSxcbiAgICAgICAgdGl0bGU6IHRoaXMucGx1Z2luVHJhbnNsYXRpb25TZXJ2aWNlLmluc3RhbnQocmFkaW9JdGVtLCB0aGlzLnBsdWdpbklkKSxcbiAgICAgIH0pKVxuICAgIClcbiAgKTtcblxuICByZWFkb25seSByb2xUeXBlU2VsZWN0SXRlbXNPYnNlcnZhYmxlczoge1xuICAgIFt1dWlkOiBzdHJpbmddOiB7Y2FzZURlZmluaXRpb25OYW1lOiBzdHJpbmc7IGl0ZW1zOiBPYnNlcnZhYmxlPEFycmF5PFNlbGVjdEl0ZW0+Pn07XG4gIH0gPSB7fTtcblxuICByZWFkb25seSBzaG93TWFwcGluZ0J1dHRvbnM6IHtbdXVpZDogc3RyaW5nXTogYm9vbGVhbn0gPSB7fTtcblxuICByZWFkb25seSBzaG93TWFwcGluZ01vZGFsc0RlbGF5OiB7W3V1aWQ6IHN0cmluZ106IGJvb2xlYW59ID0ge307XG5cbiAgcmVhZG9ubHkgdGVtcE1hcHBpbmdzOiB7W3V1aWQ6IHN0cmluZ106IE11bHRpSW5wdXRWYWx1ZXN9ID0ge307XG5cbiAgcmVhZG9ubHkgbWFwcGluZ3M6IHtbdXVpZDogc3RyaW5nXTogTXVsdGlJbnB1dFZhbHVlc30gPSB7fTtcblxuICBwcml2YXRlIHNhdmVTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG5cbiAgcHJpdmF0ZSByZWFkb25seSBmb3JtVmFsdWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxWZXJ6b2VrQ29uZmlnIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdmFsaWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBwbHVnaW5NYW5hZ2VtZW50U2VydmljZTogUGx1Z2luTWFuYWdlbWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGx1Z2luVHJhbnNsYXRpb25TZXJ2aWNlOiBQbHVnaW5UcmFuc2xhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB2ZXJ6b2VrUGx1Z2luU2VydmljZTogVmVyem9la1BsdWdpblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9jZXNzU2VydmljZTogUHJvY2Vzc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudFNlcnZpY2U6IERvY3VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5TYXZlU3Vic2NyaXB0aW9uKCk7XG4gICAgdGhpcy5zZXRNYXBwZWRQcmVmaWxsKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnNhdmVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBmb3JtVmFsdWVDaGFuZ2UoZm9ybVZhbHVlOiBWZXJ6b2VrQ29uZmlnKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtVmFsdWUkLm5leHQoZm9ybVZhbHVlKTtcbiAgICB0aGlzLmhhbmRsZVZhbGlkKGZvcm1WYWx1ZSk7XG4gIH1cblxuICB2ZXJ6b2VrVHlwZUZvcm1DaGFuZ2UoZm9ybVZhbHVlOiBWZXJ6b2VrVHlwZSwgdXVpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgY2FzZURlZmluaXRpb25OYW1lID0gZm9ybVZhbHVlPy5jYXNlRGVmaW5pdGlvbk5hbWU7XG4gICAgY29uc3Qgcm9sVHlwZVNlbGVjdEl0ZW1zT2JzZXJ2YWJsZXMgPSB0aGlzLnJvbFR5cGVTZWxlY3RJdGVtc09ic2VydmFibGVzO1xuXG4gICAgdGhpcy5zaG93TWFwcGluZ0J1dHRvbnNbdXVpZF0gPSBmb3JtVmFsdWUuY29weVN0cmF0ZWd5ID09PSAnc3BlY2lmaWVkJztcblxuICAgIGlmIChjYXNlRGVmaW5pdGlvbk5hbWUpIHtcbiAgICAgIGlmIChcbiAgICAgICAgIXJvbFR5cGVTZWxlY3RJdGVtc09ic2VydmFibGVzW3V1aWRdIHx8XG4gICAgICAgIHJvbFR5cGVTZWxlY3RJdGVtc09ic2VydmFibGVzW3V1aWRdLmNhc2VEZWZpbml0aW9uTmFtZSAhPT0gY2FzZURlZmluaXRpb25OYW1lXG4gICAgICApIHtcbiAgICAgICAgcm9sVHlwZVNlbGVjdEl0ZW1zT2JzZXJ2YWJsZXNbdXVpZF0gPSB7XG4gICAgICAgICAgY2FzZURlZmluaXRpb25OYW1lLFxuICAgICAgICAgIGl0ZW1zOiB0aGlzLnZlcnpvZWtQbHVnaW5TZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0Um9sdHlwZXNCeURvY3VtZW50RGVmaW5pdGlvbk5hbWUoY2FzZURlZmluaXRpb25OYW1lKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIG1hcChyb2xUeXBlcyA9PiByb2xUeXBlcy5tYXAocm9sVHlwZSA9PiAoe3RleHQ6IHJvbFR5cGUubmFtZSwgaWQ6IHJvbFR5cGUudXJsfSkpKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcm9sVHlwZVNlbGVjdEl0ZW1zT2JzZXJ2YWJsZXNbdXVpZF0gPSB7XG4gICAgICAgIGNhc2VEZWZpbml0aW9uTmFtZSxcbiAgICAgICAgaXRlbXM6IG9mKFtdKSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgZGVsZXRlUm93KHV1aWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGRlbGV0ZSB0aGlzLnJvbFR5cGVTZWxlY3RJdGVtc09ic2VydmFibGVzW3V1aWRdO1xuICB9XG5cbiAgb3Blbk1hcHBpbmdNb2RhbCh1dWlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dNYXBwaW5nTW9kYWxzRGVsYXlbdXVpZF0gPSB0cnVlO1xuICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW5Nb2RhbChcbiAgICAgIHRoaXMubWFwcGluZ01vZGFscy5maW5kKG1hcHBpbmdNb2RhbCA9PiBtYXBwaW5nTW9kYWwucGFyZW50SWQgPT09IHV1aWQpXG4gICAgKTtcbiAgfVxuXG4gIGNsb3NlTWFwcGluZ01vZGFsKHV1aWQpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGFsU2VydmljZS5jbG9zZU1vZGFsKCk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2hvd01hcHBpbmdNb2RhbHNEZWxheVt1dWlkXSA9IGZhbHNlO1xuICAgIH0sIDI1MCk7XG4gIH1cblxuICBtYXBwaW5nVmFsdWVDaGFuZ2UobmV3VmFsdWU6IE11bHRpSW5wdXRWYWx1ZXMsIHV1aWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudGVtcE1hcHBpbmdzW3V1aWRdID0gbmV3VmFsdWU7XG4gIH1cblxuICBzYXZlTWFwcGluZyh1dWlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLm1hcHBpbmdzW3V1aWRdID0gWy4uLnRoaXMudGVtcE1hcHBpbmdzW3V1aWRdXTtcbiAgICB0aGlzLnRlbXBNYXBwaW5nc1t1dWlkXSA9IFtdO1xuICAgIHRoaXMuY2xvc2VNYXBwaW5nTW9kYWwodXVpZCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVZhbGlkKGZvcm1WYWx1ZTogVmVyem9la0NvbmZpZyk6IHZvaWQge1xuICAgIGNvbnN0IHZhbGlkRm9ybSA9ICEhKFxuICAgICAgZm9ybVZhbHVlLmNvbmZpZ3VyYXRpb25UaXRsZSAmJlxuICAgICAgZm9ybVZhbHVlLm5vdGlmaWNhdGllc0FwaVBsdWdpbkNvbmZpZ3VyYXRpb24gJiZcbiAgICAgIGZvcm1WYWx1ZS5yc2luICYmXG4gICAgICBmb3JtVmFsdWUucHJvY2Vzc1RvU3RhcnRcbiAgICApO1xuICAgIGNvbnN0IHZlcnpvZWtUeXBlbiA9IGZvcm1WYWx1ZS52ZXJ6b2VrUHJvcGVydGllcyB8fCBbXTtcbiAgICBjb25zdCB2YWxpZFZlcnpvZWtUeXBlbiA9IHZlcnpvZWtUeXBlbi5maWx0ZXIoXG4gICAgICB0eXBlID0+XG4gICAgICAgICEhKFxuICAgICAgICAgIHR5cGUudHlwZSAmJlxuICAgICAgICAgIHR5cGUuY2FzZURlZmluaXRpb25OYW1lICYmXG4gICAgICAgICAgdHlwZS5vYmplY3RNYW5hZ2VtZW50SWQgJiZcbiAgICAgICAgICB0eXBlLmluaXRpYXRvclJvbHR5cGVVcmwgJiZcbiAgICAgICAgICB0eXBlLnByb2Nlc3NEZWZpbml0aW9uS2V5ICYmXG4gICAgICAgICAgdHlwZS5pbml0aWF0b3JSb2xEZXNjcmlwdGlvblxuICAgICAgICApXG4gICAgKTtcbiAgICBjb25zdCB2YWxpZCA9IHZhbGlkRm9ybSAmJiB2ZXJ6b2VrVHlwZW4ubGVuZ3RoID09PSB2YWxpZFZlcnpvZWtUeXBlbi5sZW5ndGg7XG4gICAgdGhpcy52YWxpZCQubmV4dCh2YWxpZCk7XG4gICAgdGhpcy52YWxpZC5lbWl0KHZhbGlkKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlblNhdmVTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5zYXZlU3Vic2NyaXB0aW9uID0gdGhpcy5zYXZlJD8uc3Vic2NyaWJlKHNhdmUgPT4ge1xuICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5mb3JtVmFsdWUkLCB0aGlzLnZhbGlkJF0pXG4gICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKFtmb3JtVmFsdWUsIHZhbGlkXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGZvcm1WYWx1ZVRvU2F2ZTogVmVyem9la0NvbmZpZyA9IHtcbiAgICAgICAgICAgIC4uLmZvcm1WYWx1ZSxcbiAgICAgICAgICAgIHZlcnpvZWtQcm9wZXJ0aWVzOiBmb3JtVmFsdWUudmVyem9la1Byb3BlcnRpZXMubWFwKHZlcnpvZWsgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB2ZXJ6b2VrVG9SZXR1cm46IFZlcnpvZWtUeXBlID0gey4uLnZlcnpvZWt9O1xuICAgICAgICAgICAgICBkZWxldGUgdmVyem9la1RvUmV0dXJuLnV1aWQ7XG5cbiAgICAgICAgICAgICAgaWYgKHRoaXMubWFwcGluZ3NbdmVyem9lay51dWlkXSAmJiB2ZXJ6b2VrLmNvcHlTdHJhdGVneSA9PT0gJ3NwZWNpZmllZCcpIHtcbiAgICAgICAgICAgICAgICB2ZXJ6b2VrVG9SZXR1cm4ubWFwcGluZyA9IHRoaXMubWFwcGluZ3NbdmVyem9lay51dWlkXTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4udmVyem9la1RvUmV0dXJuLFxuICAgICAgICAgICAgICAgIC4uLih2ZXJ6b2VrVG9SZXR1cm4ubWFwcGluZyAmJiB7XG4gICAgICAgICAgICAgICAgICBtYXBwaW5nOiB2ZXJ6b2VrVG9SZXR1cm4ubWFwcGluZy5tYXAodmVyem9la01hcHBpbmcgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgc291cmNlOiB2ZXJ6b2VrTWFwcGluZy5rZXksXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldDogdmVyem9la01hcHBpbmcudmFsdWUsXG4gICAgICAgICAgICAgICAgICB9KSkgYXMgQXJyYXk8YW55PixcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH07XG4gICAgICAgICAgaWYgKHZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24uZW1pdChmb3JtVmFsdWVUb1NhdmUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldE1hcHBlZFByZWZpbGwoKTogdm9pZCB7XG4gICAgdGhpcy5tYXBwZWRQcmVmaWxsJCA9IHRoaXMucHJlZmlsbENvbmZpZ3VyYXRpb24kLnBpcGUoXG4gICAgICBmaWx0ZXIocHJlZmlsbCA9PiAhIXByZWZpbGwpLFxuICAgICAgbWFwKHByZWZpbGwgPT4gKHtcbiAgICAgICAgLi4ucHJlZmlsbCxcbiAgICAgICAgdmVyem9la1Byb3BlcnRpZXM6IHByZWZpbGwudmVyem9la1Byb3BlcnRpZXMubWFwKHZlcnpvZWtUeXBlID0+ICh7XG4gICAgICAgICAgLi4udmVyem9la1R5cGUsXG4gICAgICAgICAgLi4uKHZlcnpvZWtUeXBlLm1hcHBpbmcgJiZcbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkodmVyem9la1R5cGUubWFwcGluZykgJiYge1xuICAgICAgICAgICAgICBtYXBwaW5nOiB2ZXJ6b2VrVHlwZS5tYXBwaW5nLm1hcChtYXBwaW5nID0+ICh7XG4gICAgICAgICAgICAgICAga2V5OiBtYXBwaW5nLnNvdXJjZSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogbWFwcGluZy50YXJnZXQsXG4gICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KSksXG4gICAgICB9KSksXG4gICAgICB0YXAocHJlZmlsbCA9PiB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZm9ybVZhbHVlJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShmb3JtVmFsdWUgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJlZmlsbFZlcnpvZWtlbiA9IHByZWZpbGw/LnZlcnpvZWtQcm9wZXJ0aWVzO1xuICAgICAgICAgICAgY29uc3QgZm9ybVZhbHVlVmVyem9la2VuID0gZm9ybVZhbHVlPy52ZXJ6b2VrUHJvcGVydGllcztcblxuICAgICAgICAgICAgcHJlZmlsbFZlcnpvZWtlbi5mb3JFYWNoKCh2ZXJ6b2VrLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBtYXBwaW5nRm9yVmVyem9layA9IHZlcnpvZWs/Lm1hcHBpbmc7XG4gICAgICAgICAgICAgIGNvbnN0IHV1aWRGb3JNYXBwaW5nID0gZm9ybVZhbHVlVmVyem9la2VuW2luZGV4XS51dWlkO1xuXG4gICAgICAgICAgICAgIGlmIChtYXBwaW5nRm9yVmVyem9layAmJiB1dWlkRm9yTWFwcGluZykge1xuICAgICAgICAgICAgICAgIHRoaXMubWFwcGluZ3NbdXVpZEZvck1hcHBpbmddID0gbWFwcGluZ0ZvclZlcnpvZWs7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9LCAyNTApO1xuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjx2LWZvcm1cbiAgKHZhbHVlQ2hhbmdlKT1cImZvcm1WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgKm5nSWY9XCJ7XG4gICAgZGlzYWJsZWQ6IGRpc2FibGVkJCB8IGFzeW5jLFxuICAgIHByZWZpbGw6IG1hcHBlZFByZWZpbGwkID8gKG1hcHBlZFByZWZpbGwkIHwgYXN5bmMpIDogbnVsbCxcbiAgfSBhcyBvYnNcIlxuPlxuICA8di1pbnB1dFxuICAgIG5hbWU9XCJjb25maWd1cmF0aW9uVGl0bGVcIlxuICAgIFt0aXRsZV09XCInY29uZmlndXJhdGlvblRpdGxlJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgW21hcmdpbl09XCJ0cnVlXCJcbiAgICBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCJcbiAgICBbZGVmYXVsdFZhbHVlXT1cIm9icy5wcmVmaWxsPy5jb25maWd1cmF0aW9uVGl0bGVcIlxuICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICBbdHJpbV09XCJ0cnVlXCJcbiAgICBbdG9vbHRpcF09XCInY29uZmlndXJhdGlvblRpdGxlVG9vbHRpcCcgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgIHBsYWNlaG9sZGVyPVwiVmVyem9layBQbHVnaW5cIlxuICA+XG4gIDwvdi1pbnB1dD5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwie25vdGlmaWNhdGllUGx1Z2luU2VsZWN0SXRlbXM6IG5vdGlmaWNhdGllUGx1Z2luU2VsZWN0SXRlbXMkIHwgYXN5bmN9IGFzIHZhcnNcIlxuICA+XG4gICAgPHYtc2VsZWN0XG4gICAgICBbaXRlbXNdPVwidmFycy5ub3RpZmljYXRpZVBsdWdpblNlbGVjdEl0ZW1zXCJcbiAgICAgIFttYXJnaW5dPVwidHJ1ZVwiXG4gICAgICBuYW1lPVwibm90aWZpY2F0aWVzQXBpUGx1Z2luQ29uZmlndXJhdGlvblwiXG4gICAgICBbdGl0bGVdPVwiJ25vdGlmaWNhdGllc0FwaVBsdWdpbkNvbmZpZ3VyYXRpb24nIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICAgIFtkaXNhYmxlZF09XCJvYnMuZGlzYWJsZWRcIlxuICAgICAgW2RlZmF1bHRTZWxlY3Rpb25JZF09XCJvYnMucHJlZmlsbD8ubm90aWZpY2F0aWVzQXBpUGx1Z2luQ29uZmlndXJhdGlvblwiXG4gICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICBbbG9hZGluZ109XCIhdmFycy5ub3RpZmljYXRpZVBsdWdpblNlbGVjdEl0ZW1zXCJcbiAgICAgIFt0b29sdGlwXT1cIidub3RpZmljYXRpZXNBcGlQbHVnaW5Db25maWd1cmF0aW9uVG9vbHRpcCcgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgID48L3Ytc2VsZWN0PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIntwcm9jZXNzU2VsZWN0SXRlbXM6IHByb2Nlc3NTZWxlY3RJdGVtcyQgfCBhc3luY30gYXMgdmFyc1wiPlxuICAgIDx2LXNlbGVjdFxuICAgICAgW2l0ZW1zXT1cInZhcnMucHJvY2Vzc1NlbGVjdEl0ZW1zXCJcbiAgICAgIFttYXJnaW5dPVwidHJ1ZVwiXG4gICAgICBuYW1lPVwicHJvY2Vzc1RvU3RhcnRcIlxuICAgICAgW3RpdGxlXT1cIidwcm9jZXNzVG9TdGFydCcgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgICAgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZFwiXG4gICAgICBbZGVmYXVsdFNlbGVjdGlvbklkXT1cIm9icy5wcmVmaWxsPy5wcm9jZXNzVG9TdGFydFwiXG4gICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICBbbG9hZGluZ109XCIhdmFycy5wcm9jZXNzU2VsZWN0SXRlbXNcIlxuICAgICAgW3Rvb2x0aXBdPVwiJ3Byb2Nlc3NUb1N0YXJ0VG9vbHRpcCcgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgID48L3Ytc2VsZWN0PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPHYtaW5wdXRcbiAgICBuYW1lPVwicnNpblwiXG4gICAgW3RpdGxlXT1cIidyc2luJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgW21hcmdpbl09XCJ0cnVlXCJcbiAgICBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCJcbiAgICBbZGVmYXVsdFZhbHVlXT1cIm9icy5wcmVmaWxsPy5yc2luXCJcbiAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgW3RyaW1dPVwidHJ1ZVwiXG4gICAgW3Rvb2x0aXBdPVwiJ3JzaW5Ub29sdGlwJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgcGxhY2Vob2xkZXI9XCJcIlxuICA+XG4gIDwvdi1pbnB1dD5cbiAgPHYtbXVsdGktaW5wdXQtZm9ybVxuICAgIG5hbWU9XCJ2ZXJ6b2VrUHJvcGVydGllc1wiXG4gICAgW3RpdGxlXT1cIid2ZXJ6b2VrUHJvcGVydGllcycgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgIFtmb3JtVGVtcGxhdGVdPVwibWFwcGluZ0Zvcm1cIlxuICAgIFthZGRSb3dUZXh0XT1cIidhZGRWZXJ6b2VrVHlwZScgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgIFtyZXF1aXJlZF09XCJmYWxzZVwiXG4gICAgW3Rvb2x0aXBdPVwiJ3ZlcnpvZWtQcm9wZXJ0aWVzVG9vbHRpcCcgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgIChkZWxldGVSb3dFdmVudCk9XCJkZWxldGVSb3coJGV2ZW50KVwiXG4gICAgW2luaXRpYWxBbW91bnRPZlJvd3NdPVwiMFwiXG4gICAgW21pbmltdW1BbW91bnRPZlJvd3NdPVwiMFwiXG4gICAgW2RlZmF1bHRWYWx1ZXNdPVwib2JzLnByZWZpbGw/LnZlcnpvZWtQcm9wZXJ0aWVzXCJcbiAgPlxuICA8L3YtbXVsdGktaW5wdXQtZm9ybT5cbjwvdi1mb3JtPlxuXG48bmctdGVtcGxhdGVcbiAgI21hcHBpbmdGb3JtXG4gIGxldC1pbmRleD1cImluZGV4XCJcbiAgbGV0LXV1aWQ9XCJ1dWlkXCJcbiAgbGV0LWNoYW5nZUZ1bmN0aW9uPVwiY2hhbmdlRnVuY3Rpb25cIlxuICBsZXQtcHJlZmlsbD1cInByZWZpbGxcIlxuPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJ7XG4gICAgICBkaXNhYmxlZDogZGlzYWJsZWQkIHwgYXN5bmMsXG4gICAgfSBhcyBvYnNcIlxuICA+XG4gICAgPHYtZm9ybSAodmFsdWVDaGFuZ2UpPVwiY2hhbmdlRnVuY3Rpb24oJGV2ZW50LCB1dWlkKTsgdmVyem9la1R5cGVGb3JtQ2hhbmdlKCRldmVudCwgdXVpZClcIj5cbiAgICAgIDx2LWlucHV0XG4gICAgICAgIG5hbWU9XCJ0eXBlXCJcbiAgICAgICAgW3RpdGxlXT1cIid0eXBlJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgICAgIFttYXJnaW5dPVwiZmFsc2VcIlxuICAgICAgICBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCJcbiAgICAgICAgW2RlZmF1bHRWYWx1ZV09XCJwcmVmaWxsPy50eXBlXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICBbdHJpbV09XCJ0cnVlXCJcbiAgICAgICAgW3Rvb2x0aXBdPVwiJ3R5cGVUb29sdGlwJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgICAgIFtzbWFsbE1hcmdpbl09XCJ0cnVlXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJcIlxuICAgICAgPlxuICAgICAgPC92LWlucHV0PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIntkb2N1bWVudFNlbGVjdEl0ZW1zOiBkb2N1bWVudFNlbGVjdEl0ZW1zJCB8IGFzeW5jfSBhcyB2YXJzXCI+XG4gICAgICAgIDx2LXNlbGVjdFxuICAgICAgICAgIFtpdGVtc109XCJ2YXJzLmRvY3VtZW50U2VsZWN0SXRlbXNcIlxuICAgICAgICAgIFtzbWFsbE1hcmdpbl09XCJ0cnVlXCJcbiAgICAgICAgICBuYW1lPVwiY2FzZURlZmluaXRpb25OYW1lXCJcbiAgICAgICAgICBbdGl0bGVdPVwiJ2Nhc2VEZWZpbml0aW9uTmFtZScgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJvYnMuZGlzYWJsZWRcIlxuICAgICAgICAgIFtkZWZhdWx0U2VsZWN0aW9uSWRdPVwicHJlZmlsbD8uY2FzZURlZmluaXRpb25OYW1lXCJcbiAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgW2xvYWRpbmddPVwiIXZhcnMuZG9jdW1lbnRTZWxlY3RJdGVtc1wiXG4gICAgICAgICAgW3Rvb2x0aXBdPVwiJ2Nhc2VEZWZpbml0aW9uTmFtZVRvb2x0aXAnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICAgICAgPjwvdi1zZWxlY3Q+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nSWY9XCJ7b2JqZWN0TWFuYWdlbWVudFNlbGVjdEl0ZW1zOiBvYmplY3RNYW5hZ2VtZW50U2VsZWN0SXRlbXMkIHwgYXN5bmN9IGFzIHZhcnNcIlxuICAgICAgPlxuICAgICAgICA8di1zZWxlY3RcbiAgICAgICAgICBbaXRlbXNdPVwidmFycy5vYmplY3RNYW5hZ2VtZW50U2VsZWN0SXRlbXNcIlxuICAgICAgICAgIFtzbWFsbE1hcmdpbl09XCJ0cnVlXCJcbiAgICAgICAgICBuYW1lPVwib2JqZWN0TWFuYWdlbWVudElkXCJcbiAgICAgICAgICBbdGl0bGVdPVwiJ29iamVjdE1hbmFnZW1lbnRJZCcgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJvYnMuZGlzYWJsZWRcIlxuICAgICAgICAgIFtkZWZhdWx0U2VsZWN0aW9uSWRdPVwicHJlZmlsbD8ub2JqZWN0TWFuYWdlbWVudElkXCJcbiAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgW2xvYWRpbmddPVwiIXZhcnMub2JqZWN0TWFuYWdlbWVudFNlbGVjdEl0ZW1zXCJcbiAgICAgICAgICBbdG9vbHRpcF09XCInb2JqZWN0TWFuYWdlbWVudElkVG9vbHRpcCcgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgICAgICA+PC92LXNlbGVjdD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPHYtc2VsZWN0XG4gICAgICAgIFtpdGVtc109XCJcbiAgICAgICAgICByb2xUeXBlU2VsZWN0SXRlbXNPYnNlcnZhYmxlc1t1dWlkXT8uY2FzZURlZmluaXRpb25OYW1lICYmXG4gICAgICAgICAgKHJvbFR5cGVTZWxlY3RJdGVtc09ic2VydmFibGVzW3V1aWRdLml0ZW1zIHwgYXN5bmMpXG4gICAgICAgIFwiXG4gICAgICAgIFtzbWFsbE1hcmdpbl09XCJ0cnVlXCJcbiAgICAgICAgbmFtZT1cImluaXRpYXRvclJvbHR5cGVVcmxcIlxuICAgICAgICBbdGl0bGVdPVwiJ2luaXRpYXRvclJvbHR5cGVVcmwnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZCB8fCAhcm9sVHlwZVNlbGVjdEl0ZW1zT2JzZXJ2YWJsZXNbdXVpZF0/LmNhc2VEZWZpbml0aW9uTmFtZVwiXG4gICAgICAgIFtkZWZhdWx0U2VsZWN0aW9uSWRdPVwicHJlZmlsbD8uaW5pdGlhdG9yUm9sdHlwZVVybFwiXG4gICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgW3Rvb2x0aXBdPVwiJ2luaXRpYXRvclJvbHR5cGVVcmxUb29sdGlwJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgICA+PC92LXNlbGVjdD5cbiAgICAgIDx2LWlucHV0XG4gICAgICAgIG5hbWU9XCJpbml0aWF0b3JSb2xEZXNjcmlwdGlvblwiXG4gICAgICAgIFt0aXRsZV09XCInaW5pdGlhdG9yUm9sRGVzY3JpcHRpb24nIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICAgICAgW21hcmdpbl09XCJmYWxzZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJvYnMuZGlzYWJsZWRcIlxuICAgICAgICBbZGVmYXVsdFZhbHVlXT1cInByZWZpbGw/LmluaXRpYXRvclJvbERlc2NyaXB0aW9uIHx8ICdJbml0aWF0b3InXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICBbdG9vbHRpcF09XCInaW5pdGlhdG9yUm9sRGVzY3JpcHRpb25Ub29sdGlwJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgICAgIFtzbWFsbE1hcmdpbl09XCJ0cnVlXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJcIlxuICAgICAgPlxuICAgICAgPC92LWlucHV0PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIntwcm9jZXNzU2VsZWN0SXRlbXM6IHByb2Nlc3NTZWxlY3RJdGVtcyQgfCBhc3luY30gYXMgdmFyc1wiPlxuICAgICAgICA8di1zZWxlY3RcbiAgICAgICAgICBbaXRlbXNdPVwidmFycy5wcm9jZXNzU2VsZWN0SXRlbXNcIlxuICAgICAgICAgIFtzbWFsbE1hcmdpbl09XCJ0cnVlXCJcbiAgICAgICAgICBuYW1lPVwicHJvY2Vzc0RlZmluaXRpb25LZXlcIlxuICAgICAgICAgIFt0aXRsZV09XCIncHJvY2Vzc0RlZmluaXRpb25LZXknIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCJcbiAgICAgICAgICBbZGVmYXVsdFNlbGVjdGlvbklkXT1cInByZWZpbGw/LnByb2Nlc3NEZWZpbml0aW9uS2V5XCJcbiAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgW2xvYWRpbmddPVwiIXZhcnMucHJvY2Vzc1NlbGVjdEl0ZW1zXCJcbiAgICAgICAgICBbdG9vbHRpcF09XCIncHJvY2Vzc0RlZmluaXRpb25LZXlUb29sdGlwJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgICAgID48L3Ytc2VsZWN0PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8di1yYWRpb1xuICAgICAgICBuYW1lPVwiY29weVN0cmF0ZWd5XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZFwiXG4gICAgICAgIFt0aXRsZV09XCInY29weVN0cmF0ZWd5JyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgICAgIFt0b29sdGlwXT1cIidjb3B5U3RyYXRlZ3lUb29sdGlwJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgICAgIFtyYWRpb1ZhbHVlc109XCJyYWRpb0l0ZW1zJCB8IGFzeW5jXCJcbiAgICAgICAgW3NtYWxsTWFyZ2luXT1cInRydWVcIlxuICAgICAgICBbZGVmYXVsdFZhbHVlXT1cInByZWZpbGw/LmNvcHlTdHJhdGVneSB8fCAnZnVsbCdcIlxuICAgICAgPlxuICAgICAgPC92LXJhZGlvPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dNYXBwaW5nQnV0dG9uc1t1dWlkXVwiPlxuICAgICAgICA8di1pbnB1dC1sYWJlbFxuICAgICAgICAgIFt0aXRsZV09XCInbWFwcGluZycgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgICAgICAgIFt0b29sdGlwXT1cIidtYXBwaW5nVG9vbHRpcCcgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgICAgICA+XG4gICAgICAgIDwvdi1pbnB1dC1sYWJlbD5cbiAgICAgICAgPHYtYnV0dG9uIChjbGlja0V2ZW50KT1cIm9wZW5NYXBwaW5nTW9kYWwodXVpZClcIiBtZGlJY29uPVwidGFibGVcIlxuICAgICAgICAgID57eyAnc2V0TWFwcGluZycgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmMgfX1cbiAgICAgICAgPC92LWJ1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPHYtaW5wdXQgY2xhc3M9XCJoaWRkZW4taW5wdXRcIiBuYW1lPVwidXVpZFwiIFtkZWZhdWx0VmFsdWVdPVwidXVpZFwiPiA8L3YtaW5wdXQ+XG4gICAgPC92LWZvcm0+XG4gICAgPHYtbW9kYWwgW3BhcmVudElkXT1cInV1aWRcIiAoY2xvc2VFdmVudCk9XCJjbG9zZU1hcHBpbmdNb2RhbCh1dWlkKVwiPlxuICAgICAgPGRpdiByb2xlPVwiaGVhZGVyXCI+XG4gICAgICAgIDxoMyBjZHNNb2RhbEhlYWRlckhlYWRpbmc+e3sgJ3NldE1hcHBpbmcnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jIH19PC9oMz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IHJvbGU9XCJjb250ZW50XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjZHMtLXRleHQtaW5wdXRfX2ZpZWxkLXdyYXBwZXJcIj5cbiAgICAgICAgICA8Y2RzLWxhYmVsIFtkaXNhYmxlZF09XCJvYnMuZGlzYWJsZWRcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWwtd2l0aC10b29sdGlwIHNlbGVjdC1sYWJlbFwiPlxuICAgICAgICAgICAgICB7eyAnbWFwcGluZycgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgPHYtdG9vbHRpcC1pY29uXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBdPVwiJ21hcHBpbmdUb29sdGlwJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgID48L3YtdG9vbHRpcC1pY29uPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvY2RzLWxhYmVsPlxuICAgICAgICAgIDx2YWx0aW1vLWNhcmJvbi1tdWx0aS1pbnB1dFxuICAgICAgICAgICAgKm5nSWY9XCJzaG93TWFwcGluZ01vZGFsc0RlbGF5W3V1aWRdXCJcbiAgICAgICAgICAgIHR5cGU9XCJrZXlWYWx1ZVwiXG4gICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwibWFwcGluZ1ZhbHVlQ2hhbmdlKCRldmVudCwgdXVpZClcIlxuICAgICAgICAgICAgW2RlZmF1bHRWYWx1ZXNdPVwibWFwcGluZ3NbdXVpZF0gfHwgcHJlZmlsbD8ubWFwcGluZ1wiXG4gICAgICAgICAgICBbdmFsdWVDb2x1bW5UaXRsZV09XCIndGFyZ2V0JyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgICAgICAgICBba2V5Q29sdW1uVGl0bGVdPVwiJ3NvdXJjZScgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgICAgICAgICAgW2Z1bGxXaWR0aF09XCJ0cnVlXCJcbiAgICAgICAgICA+PC92YWx0aW1vLWNhcmJvbi1tdWx0aS1pbnB1dD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiByb2xlPVwiZm9vdGVyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2RzQnV0dG9uPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICAgIFthdHRyLm1vZGFsLXByaW1hcnktZm9jdXNdPVwidHJ1ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VNYXBwaW5nTW9kYWwodXVpZClcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgJ2Nsb3NlJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luYyB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNkc0J1dHRvbj1cInByaW1hcnlcIlxuICAgICAgICAgICAgW2F0dHIubW9kYWwtcHJpbWFyeS1mb2N1c109XCJ0cnVlXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJvYnMuZGlzYWJsZWRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNhdmVNYXBwaW5nKHV1aWQpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJvYnMuZGlzYWJsZWRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7ICdzYXZlJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luYyB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvdi1tb2RhbD5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
234
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyem9lay1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcGx1Z2luL3NyYy9saWIvcGx1Z2lucy92ZXJ6b2VrL2NvbXBvbmVudHMvdmVyem9lay1jb25maWd1cmF0aW9uL3ZlcnpvZWstY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3BsdWdpbi9zcmMvbGliL3BsdWdpbnMvdmVyem9lay9jb21wb25lbnRzL3ZlcnpvZWstY29uZmlndXJhdGlvbi92ZXJ6b2VrLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixNQUFNLEVBQ04sR0FBRyxFQUVILEVBQUUsRUFFRixJQUFJLEVBQ0osR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBSWQsT0FBTyxFQUtMLHVCQUF1QixFQUN2QixlQUFlLEdBQ2hCLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7Ozs7O0FBVTdCLE1BQU0sT0FBTyw2QkFBNkI7SUF5RmpDLHFDQUFxQyxDQUFDLEtBQWE7UUFDeEQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDekIsR0FBRyxDQUNELFNBQVMsQ0FBQyxFQUFFLENBQ1YsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUM7WUFDMUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxFQUFFLGtCQUFrQixDQUN6RCxDQUNGLENBQUM7SUFD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Q0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRTtvQkFDbEQsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLEVBQUUsaUJBQWlCLENBQUM7b0JBQ3BELE1BQU0sa0JBQWtCLEdBQUcsU0FBUyxFQUFFLGlCQUFpQixDQUFDO29CQUV4RCxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUU7d0JBQzFDLE1BQU0saUJBQWlCLEdBQUcsT0FBTyxFQUFFLE9BQU8sQ0FBQzt3QkFDM0MsTUFBTSxjQUFjLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDO3dCQUV0RCxJQUFJLGlCQUFpQixJQUFJLGNBQWMsRUFBRSxDQUFDOzRCQUN4QyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxHQUFHLGlCQUFpQixDQUFDO3dCQUNwRCxDQUFDO29CQUNILENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7K0dBalJVLDZCQUE2QjttR0FBN0IsNkJBQTZCLDhSQUcxQixlQUFlLGdEQzdEL0IseXdVQXNRQTs7NEZENU1hLDZCQUE2QjtrQkFMekMsU0FBUzsrQkFDRSwrQkFBK0I7MlJBT1YsYUFBYTtzQkFBM0MsWUFBWTt1QkFBQyxlQUFlO2dCQUVwQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDSSxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtQbHVnaW5Db25maWd1cmF0aW9uQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBmaWx0ZXIsXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIFN1YnNjcmlwdGlvbixcbiAgdGFrZSxcbiAgdGFwLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q29weVN0cmF0ZWd5LCBWZXJ6b2VrQ29uZmlnLCBWZXJ6b2VrVHlwZX0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7UGx1Z2luTWFuYWdlbWVudFNlcnZpY2UsIFBsdWdpblRyYW5zbGF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7XG4gIE1vZGFsU2VydmljZSxcbiAgTXVsdGlJbnB1dFZhbHVlcyxcbiAgUmFkaW9WYWx1ZSxcbiAgU2VsZWN0SXRlbSxcbiAgVmFsdWVQYXRoU2VsZWN0b3JQcmVmaXgsXG4gIFZNb2RhbENvbXBvbmVudCxcbn0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge1ZlcnpvZWtQbHVnaW5TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge1Byb2Nlc3NTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9wcm9jZXNzJztcbmltcG9ydCB7RG9jdW1lbnRTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9kb2N1bWVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tdmVyem9lay1jb25maWd1cmF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ZlcnpvZWstY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3ZlcnpvZWstY29uZmlndXJhdGlvbi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBWZXJ6b2VrQ29uZmlndXJhdGlvbkNvbXBvbmVudFxuICBpbXBsZW1lbnRzIFBsdWdpbkNvbmZpZ3VyYXRpb25Db21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95XG57XG4gIEBWaWV3Q2hpbGRyZW4oVk1vZGFsQ29tcG9uZW50KSBtYXBwaW5nTW9kYWxzOiBRdWVyeUxpc3Q8Vk1vZGFsQ29tcG9uZW50PjtcblxuICBASW5wdXQoKSBzYXZlJDogT2JzZXJ2YWJsZTx2b2lkPjtcbiAgQElucHV0KCkgZGlzYWJsZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBASW5wdXQoKSBwbHVnaW5JZDogc3RyaW5nO1xuICBASW5wdXQoKSBwcmVmaWxsQ29uZmlndXJhdGlvbiQ6IE9ic2VydmFibGU8VmVyem9la0NvbmZpZz47XG4gIEBPdXRwdXQoKSB2YWxpZDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgY29uZmlndXJhdGlvbjogRXZlbnRFbWl0dGVyPFZlcnpvZWtDb25maWc+ID0gbmV3IEV2ZW50RW1pdHRlcjxWZXJ6b2VrQ29uZmlnPigpO1xuXG4gIG1hcHBlZFByZWZpbGwkOiBPYnNlcnZhYmxlPFZlcnpvZWtDb25maWc+O1xuXG4gIHJlYWRvbmx5IG5vdGlmaWNhdGllUGx1Z2luU2VsZWN0SXRlbXMkOiBPYnNlcnZhYmxlPEFycmF5PFNlbGVjdEl0ZW0+PiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMucGx1Z2luTWFuYWdlbWVudFNlcnZpY2UuZ2V0UGx1Z2luQ29uZmlndXJhdGlvbnNCeVBsdWdpbkRlZmluaXRpb25LZXkoJ25vdGlmaWNhdGllc2FwaScpLFxuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5zdHJlYW0oJ2tleScpLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW2NvbmZpZ3VyYXRpb25zXSkgPT5cbiAgICAgIGNvbmZpZ3VyYXRpb25zLm1hcChjb25maWd1cmF0aW9uID0+ICh7XG4gICAgICAgIGlkOiBjb25maWd1cmF0aW9uLmlkLFxuICAgICAgICB0ZXh0OiBgJHtjb25maWd1cmF0aW9uLnRpdGxlfSAtICR7dGhpcy5wbHVnaW5UcmFuc2xhdGlvblNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAndGl0bGUnLFxuICAgICAgICAgIGNvbmZpZ3VyYXRpb24ucGx1Z2luRGVmaW5pdGlvbi5rZXlcbiAgICAgICAgKX1gLFxuICAgICAgfSkpXG4gICAgKVxuICApO1xuXG4gIHJlYWRvbmx5IG9iamVjdE1hbmFnZW1lbnRTZWxlY3RJdGVtcyQ6IE9ic2VydmFibGU8QXJyYXk8U2VsZWN0SXRlbT4+ID0gdGhpcy52ZXJ6b2VrUGx1Z2luU2VydmljZVxuICAgIC5nZXRBbGxPYmplY3RzKClcbiAgICAucGlwZShcbiAgICAgIG1hcChvYmplY3RzID0+XG4gICAgICAgIG9iamVjdHMubWFwKG9iamVjdCA9PiAoe1xuICAgICAgICAgIGlkOiBvYmplY3QuaWQsXG4gICAgICAgICAgdGV4dDogb2JqZWN0LnRpdGxlLFxuICAgICAgICB9KSlcbiAgICAgIClcbiAgICApO1xuXG4gIHJlYWRvbmx5IHByb2Nlc3NTZWxlY3RJdGVtcyQ6IE9ic2VydmFibGU8QXJyYXk8U2VsZWN0SXRlbT4+ID0gdGhpcy5wcm9jZXNzU2VydmljZVxuICAgIC5nZXRQcm9jZXNzRGVmaW5pdGlvbnMoKVxuICAgIC5waXBlKFxuICAgICAgbWFwKHByb2Nlc3NEZWZpbml0aW9ucyA9PlxuICAgICAgICBwcm9jZXNzRGVmaW5pdGlvbnMubWFwKHByb2Nlc3NEZWZpbml0aW9uID0+ICh7XG4gICAgICAgICAgaWQ6IHByb2Nlc3NEZWZpbml0aW9uLmtleSxcbiAgICAgICAgICB0ZXh0OiBwcm9jZXNzRGVmaW5pdGlvbi5uYW1lID8/ICcnLFxuICAgICAgICB9KSlcbiAgICAgIClcbiAgICApO1xuXG4gIHJlYWRvbmx5IGRvY3VtZW50U2VsZWN0SXRlbXMkOiBPYnNlcnZhYmxlPEFycmF5PFNlbGVjdEl0ZW0+PiA9IHRoaXMuZG9jdW1lbnRTZXJ2aWNlXG4gICAgLmdldEFsbERlZmluaXRpb25zKClcbiAgICAucGlwZShcbiAgICAgIG1hcChkb2N1bWVudERlZmluaXRpb25zID0+XG4gICAgICAgIGRvY3VtZW50RGVmaW5pdGlvbnMuY29udGVudC5tYXAoZG9jdW1lbnREZWZpbml0aW9uID0+ICh7XG4gICAgICAgICAgaWQ6IGRvY3VtZW50RGVmaW5pdGlvbi5pZC5uYW1lLFxuICAgICAgICAgIHRleHQ6IGRvY3VtZW50RGVmaW5pdGlvbi5pZC5uYW1lLFxuICAgICAgICB9KSlcbiAgICAgIClcbiAgICApO1xuXG4gIHJlYWRvbmx5IFJBRElPX0lURU1TOiBBcnJheTxDb3B5U3RyYXRlZ3k+ID0gWydmdWxsJywgJ3NwZWNpZmllZCddO1xuICByZWFkb25seSByYWRpb0l0ZW1zJDogT2JzZXJ2YWJsZTxBcnJheTxSYWRpb1ZhbHVlPj4gPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKCdrZXknKS5waXBlKFxuICAgIG1hcCgoKSA9PlxuICAgICAgdGhpcy5SQURJT19JVEVNUy5tYXAocmFkaW9JdGVtID0+ICh7XG4gICAgICAgIHZhbHVlOiByYWRpb0l0ZW0sXG4gICAgICAgIHRpdGxlOiB0aGlzLnBsdWdpblRyYW5zbGF0aW9uU2VydmljZS5pbnN0YW50KHJhZGlvSXRlbSwgdGhpcy5wbHVnaW5JZCksXG4gICAgICB9KSlcbiAgICApXG4gICk7XG5cbiAgcmVhZG9ubHkgcm9sVHlwZVNlbGVjdEl0ZW1zT2JzZXJ2YWJsZXM6IHtcbiAgICBbdXVpZDogc3RyaW5nXToge2Nhc2VEZWZpbml0aW9uTmFtZTogc3RyaW5nOyBpdGVtczogT2JzZXJ2YWJsZTxBcnJheTxTZWxlY3RJdGVtPj59O1xuICB9ID0ge307XG5cbiAgcmVhZG9ubHkgc2hvd01hcHBpbmdCdXR0b25zOiB7W3V1aWQ6IHN0cmluZ106IGJvb2xlYW59ID0ge307XG5cbiAgcmVhZG9ubHkgc2hvd01hcHBpbmdNb2RhbHNEZWxheToge1t1dWlkOiBzdHJpbmddOiBib29sZWFufSA9IHt9O1xuXG4gIHJlYWRvbmx5IHRlbXBNYXBwaW5nczoge1t1dWlkOiBzdHJpbmddOiBNdWx0aUlucHV0VmFsdWVzfSA9IHt9O1xuXG4gIHJlYWRvbmx5IG1hcHBpbmdzOiB7W3V1aWQ6IHN0cmluZ106IE11bHRpSW5wdXRWYWx1ZXN9ID0ge307XG5cbiAgcHJpdmF0ZSBzYXZlU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZm9ybVZhbHVlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VmVyem9la0NvbmZpZyB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIHJlYWRvbmx5IHZhbGlkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHB1YmxpYyBnZXRTZWxlY3RlZENhc2VEZWZpbml0aW9uTmFtZUZvckluZGV4KGluZGV4OiBudW1iZXIpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmZvcm1WYWx1ZSQucGlwZShcbiAgICAgIG1hcChcbiAgICAgICAgZm9ybVZhbHVlID0+XG4gICAgICAgICAgQXJyYXkuaXNBcnJheShmb3JtVmFsdWUudmVyem9la1Byb3BlcnRpZXMpICYmXG4gICAgICAgICAgZm9ybVZhbHVlLnZlcnpvZWtQcm9wZXJ0aWVzW2luZGV4XT8uY2FzZURlZmluaXRpb25OYW1lXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBWYWx1ZVBhdGhTZWxlY3RvclByZWZpeCA9IFZhbHVlUGF0aFNlbGVjdG9yUHJlZml4O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGx1Z2luTWFuYWdlbWVudFNlcnZpY2U6IFBsdWdpbk1hbmFnZW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBsdWdpblRyYW5zbGF0aW9uU2VydmljZTogUGx1Z2luVHJhbnNsYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdmVyem9la1BsdWdpblNlcnZpY2U6IFZlcnpvZWtQbHVnaW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvY2Vzc1NlcnZpY2U6IFByb2Nlc3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRTZXJ2aWNlOiBEb2N1bWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuU2F2ZVN1YnNjcmlwdGlvbigpO1xuICAgIHRoaXMuc2V0TWFwcGVkUHJlZmlsbCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zYXZlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZm9ybVZhbHVlQ2hhbmdlKGZvcm1WYWx1ZTogVmVyem9la0NvbmZpZyk6IHZvaWQge1xuICAgIHRoaXMuZm9ybVZhbHVlJC5uZXh0KGZvcm1WYWx1ZSk7XG4gICAgdGhpcy5oYW5kbGVWYWxpZChmb3JtVmFsdWUpO1xuICB9XG5cbiAgdmVyem9la1R5cGVGb3JtQ2hhbmdlKGZvcm1WYWx1ZTogVmVyem9la1R5cGUsIHV1aWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGNhc2VEZWZpbml0aW9uTmFtZSA9IGZvcm1WYWx1ZT8uY2FzZURlZmluaXRpb25OYW1lO1xuICAgIGNvbnN0IHJvbFR5cGVTZWxlY3RJdGVtc09ic2VydmFibGVzID0gdGhpcy5yb2xUeXBlU2VsZWN0SXRlbXNPYnNlcnZhYmxlcztcblxuICAgIHRoaXMuc2hvd01hcHBpbmdCdXR0b25zW3V1aWRdID0gZm9ybVZhbHVlLmNvcHlTdHJhdGVneSA9PT0gJ3NwZWNpZmllZCc7XG5cbiAgICBpZiAoY2FzZURlZmluaXRpb25OYW1lKSB7XG4gICAgICBpZiAoXG4gICAgICAgICFyb2xUeXBlU2VsZWN0SXRlbXNPYnNlcnZhYmxlc1t1dWlkXSB8fFxuICAgICAgICByb2xUeXBlU2VsZWN0SXRlbXNPYnNlcnZhYmxlc1t1dWlkXS5jYXNlRGVmaW5pdGlvbk5hbWUgIT09IGNhc2VEZWZpbml0aW9uTmFtZVxuICAgICAgKSB7XG4gICAgICAgIHJvbFR5cGVTZWxlY3RJdGVtc09ic2VydmFibGVzW3V1aWRdID0ge1xuICAgICAgICAgIGNhc2VEZWZpbml0aW9uTmFtZSxcbiAgICAgICAgICBpdGVtczogdGhpcy52ZXJ6b2VrUGx1Z2luU2VydmljZVxuICAgICAgICAgICAgLmdldFJvbHR5cGVzQnlEb2N1bWVudERlZmluaXRpb25OYW1lKGNhc2VEZWZpbml0aW9uTmFtZSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICBtYXAocm9sVHlwZXMgPT4gcm9sVHlwZXMubWFwKHJvbFR5cGUgPT4gKHt0ZXh0OiByb2xUeXBlLm5hbWUsIGlkOiByb2xUeXBlLnVybH0pKSlcbiAgICAgICAgICAgICksXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJvbFR5cGVTZWxlY3RJdGVtc09ic2VydmFibGVzW3V1aWRdID0ge1xuICAgICAgICBjYXNlRGVmaW5pdGlvbk5hbWUsXG4gICAgICAgIGl0ZW1zOiBvZihbXSksXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIGRlbGV0ZVJvdyh1dWlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBkZWxldGUgdGhpcy5yb2xUeXBlU2VsZWN0SXRlbXNPYnNlcnZhYmxlc1t1dWlkXTtcbiAgfVxuXG4gIG9wZW5NYXBwaW5nTW9kYWwodXVpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zaG93TWFwcGluZ01vZGFsc0RlbGF5W3V1aWRdID0gdHJ1ZTtcbiAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuTW9kYWwoXG4gICAgICB0aGlzLm1hcHBpbmdNb2RhbHMuZmluZChtYXBwaW5nTW9kYWwgPT4gbWFwcGluZ01vZGFsLnBhcmVudElkID09PSB1dWlkKVxuICAgICk7XG4gIH1cblxuICBjbG9zZU1hcHBpbmdNb2RhbCh1dWlkKTogdm9pZCB7XG4gICAgdGhpcy5tb2RhbFNlcnZpY2UuY2xvc2VNb2RhbCgpO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNob3dNYXBwaW5nTW9kYWxzRGVsYXlbdXVpZF0gPSBmYWxzZTtcbiAgICB9LCAyNTApO1xuICB9XG5cbiAgbWFwcGluZ1ZhbHVlQ2hhbmdlKG5ld1ZhbHVlOiBNdWx0aUlucHV0VmFsdWVzLCB1dWlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnRlbXBNYXBwaW5nc1t1dWlkXSA9IG5ld1ZhbHVlO1xuICB9XG5cbiAgc2F2ZU1hcHBpbmcodXVpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5tYXBwaW5nc1t1dWlkXSA9IFsuLi50aGlzLnRlbXBNYXBwaW5nc1t1dWlkXV07XG4gICAgdGhpcy50ZW1wTWFwcGluZ3NbdXVpZF0gPSBbXTtcbiAgICB0aGlzLmNsb3NlTWFwcGluZ01vZGFsKHV1aWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVWYWxpZChmb3JtVmFsdWU6IFZlcnpvZWtDb25maWcpOiB2b2lkIHtcbiAgICBjb25zdCB2YWxpZEZvcm0gPSAhIShcbiAgICAgIGZvcm1WYWx1ZS5jb25maWd1cmF0aW9uVGl0bGUgJiZcbiAgICAgIGZvcm1WYWx1ZS5ub3RpZmljYXRpZXNBcGlQbHVnaW5Db25maWd1cmF0aW9uICYmXG4gICAgICBmb3JtVmFsdWUucnNpbiAmJlxuICAgICAgZm9ybVZhbHVlLnByb2Nlc3NUb1N0YXJ0XG4gICAgKTtcbiAgICBjb25zdCB2ZXJ6b2VrVHlwZW4gPSBmb3JtVmFsdWUudmVyem9la1Byb3BlcnRpZXMgfHwgW107XG4gICAgY29uc3QgdmFsaWRWZXJ6b2VrVHlwZW4gPSB2ZXJ6b2VrVHlwZW4uZmlsdGVyKFxuICAgICAgdHlwZSA9PlxuICAgICAgICAhIShcbiAgICAgICAgICB0eXBlLnR5cGUgJiZcbiAgICAgICAgICB0eXBlLmNhc2VEZWZpbml0aW9uTmFtZSAmJlxuICAgICAgICAgIHR5cGUub2JqZWN0TWFuYWdlbWVudElkICYmXG4gICAgICAgICAgdHlwZS5pbml0aWF0b3JSb2x0eXBlVXJsICYmXG4gICAgICAgICAgdHlwZS5wcm9jZXNzRGVmaW5pdGlvbktleSAmJlxuICAgICAgICAgIHR5cGUuaW5pdGlhdG9yUm9sRGVzY3JpcHRpb25cbiAgICAgICAgKVxuICAgICk7XG4gICAgY29uc3QgdmFsaWQgPSB2YWxpZEZvcm0gJiYgdmVyem9la1R5cGVuLmxlbmd0aCA9PT0gdmFsaWRWZXJ6b2VrVHlwZW4ubGVuZ3RoO1xuICAgIHRoaXMudmFsaWQkLm5leHQodmFsaWQpO1xuICAgIHRoaXMudmFsaWQuZW1pdCh2YWxpZCk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5TYXZlU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuc2F2ZVN1YnNjcmlwdGlvbiA9IHRoaXMuc2F2ZSQ/LnN1YnNjcmliZShzYXZlID0+IHtcbiAgICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuZm9ybVZhbHVlJCwgdGhpcy52YWxpZCRdKVxuICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAuc3Vic2NyaWJlKChbZm9ybVZhbHVlLCB2YWxpZF0pID0+IHtcbiAgICAgICAgICBjb25zdCBmb3JtVmFsdWVUb1NhdmU6IFZlcnpvZWtDb25maWcgPSB7XG4gICAgICAgICAgICAuLi5mb3JtVmFsdWUsXG4gICAgICAgICAgICB2ZXJ6b2VrUHJvcGVydGllczogZm9ybVZhbHVlLnZlcnpvZWtQcm9wZXJ0aWVzLm1hcCh2ZXJ6b2VrID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgdmVyem9la1RvUmV0dXJuOiBWZXJ6b2VrVHlwZSA9IHsuLi52ZXJ6b2VrfTtcbiAgICAgICAgICAgICAgZGVsZXRlIHZlcnpvZWtUb1JldHVybi51dWlkO1xuXG4gICAgICAgICAgICAgIGlmICh0aGlzLm1hcHBpbmdzW3ZlcnpvZWsudXVpZF0gJiYgdmVyem9lay5jb3B5U3RyYXRlZ3kgPT09ICdzcGVjaWZpZWQnKSB7XG4gICAgICAgICAgICAgICAgdmVyem9la1RvUmV0dXJuLm1hcHBpbmcgPSB0aGlzLm1hcHBpbmdzW3ZlcnpvZWsudXVpZF07XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLnZlcnpvZWtUb1JldHVybixcbiAgICAgICAgICAgICAgICAuLi4odmVyem9la1RvUmV0dXJuLm1hcHBpbmcgJiYge1xuICAgICAgICAgICAgICAgICAgbWFwcGluZzogdmVyem9la1RvUmV0dXJuLm1hcHBpbmcubWFwKHZlcnpvZWtNYXBwaW5nID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIHNvdXJjZTogdmVyem9la01hcHBpbmcua2V5LFxuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IHZlcnpvZWtNYXBwaW5nLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgfSkpIGFzIEFycmF5PGFueT4sXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGlmICh2YWxpZCkge1xuICAgICAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uLmVtaXQoZm9ybVZhbHVlVG9TYXZlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRNYXBwZWRQcmVmaWxsKCk6IHZvaWQge1xuICAgIHRoaXMubWFwcGVkUHJlZmlsbCQgPSB0aGlzLnByZWZpbGxDb25maWd1cmF0aW9uJC5waXBlKFxuICAgICAgZmlsdGVyKHByZWZpbGwgPT4gISFwcmVmaWxsKSxcbiAgICAgIG1hcChwcmVmaWxsID0+ICh7XG4gICAgICAgIC4uLnByZWZpbGwsXG4gICAgICAgIHZlcnpvZWtQcm9wZXJ0aWVzOiBwcmVmaWxsLnZlcnpvZWtQcm9wZXJ0aWVzLm1hcCh2ZXJ6b2VrVHlwZSA9PiAoe1xuICAgICAgICAgIC4uLnZlcnpvZWtUeXBlLFxuICAgICAgICAgIC4uLih2ZXJ6b2VrVHlwZS5tYXBwaW5nICYmXG4gICAgICAgICAgICBBcnJheS5pc0FycmF5KHZlcnpvZWtUeXBlLm1hcHBpbmcpICYmIHtcbiAgICAgICAgICAgICAgbWFwcGluZzogdmVyem9la1R5cGUubWFwcGluZy5tYXAobWFwcGluZyA9PiAoe1xuICAgICAgICAgICAgICAgIGtleTogbWFwcGluZy5zb3VyY2UsXG4gICAgICAgICAgICAgICAgdmFsdWU6IG1hcHBpbmcudGFyZ2V0LFxuICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSkpLFxuICAgICAgfSkpLFxuICAgICAgdGFwKHByZWZpbGwgPT4ge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLmZvcm1WYWx1ZSQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoZm9ybVZhbHVlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByZWZpbGxWZXJ6b2VrZW4gPSBwcmVmaWxsPy52ZXJ6b2VrUHJvcGVydGllcztcbiAgICAgICAgICAgIGNvbnN0IGZvcm1WYWx1ZVZlcnpvZWtlbiA9IGZvcm1WYWx1ZT8udmVyem9la1Byb3BlcnRpZXM7XG5cbiAgICAgICAgICAgIHByZWZpbGxWZXJ6b2VrZW4uZm9yRWFjaCgodmVyem9laywgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgbWFwcGluZ0ZvclZlcnpvZWsgPSB2ZXJ6b2VrPy5tYXBwaW5nO1xuICAgICAgICAgICAgICBjb25zdCB1dWlkRm9yTWFwcGluZyA9IGZvcm1WYWx1ZVZlcnpvZWtlbltpbmRleF0udXVpZDtcblxuICAgICAgICAgICAgICBpZiAobWFwcGluZ0ZvclZlcnpvZWsgJiYgdXVpZEZvck1hcHBpbmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1hcHBpbmdzW3V1aWRGb3JNYXBwaW5nXSA9IG1hcHBpbmdGb3JWZXJ6b2VrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSwgMjUwKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48di1mb3JtXG4gICh2YWx1ZUNoYW5nZSk9XCJmb3JtVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICpuZ0lmPVwie1xuICAgIGRpc2FibGVkOiBkaXNhYmxlZCQgfCBhc3luYyxcbiAgICBwcmVmaWxsOiBtYXBwZWRQcmVmaWxsJCA/IChtYXBwZWRQcmVmaWxsJCB8IGFzeW5jKSA6IG51bGwsXG4gIH0gYXMgb2JzXCJcbj5cbiAgPHYtaW5wdXRcbiAgICBuYW1lPVwiY29uZmlndXJhdGlvblRpdGxlXCJcbiAgICBbdGl0bGVdPVwiJ2NvbmZpZ3VyYXRpb25UaXRsZScgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgIFttYXJnaW5dPVwidHJ1ZVwiXG4gICAgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZFwiXG4gICAgW2RlZmF1bHRWYWx1ZV09XCJvYnMucHJlZmlsbD8uY29uZmlndXJhdGlvblRpdGxlXCJcbiAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgW3RyaW1dPVwidHJ1ZVwiXG4gICAgW3Rvb2x0aXBdPVwiJ2NvbmZpZ3VyYXRpb25UaXRsZVRvb2x0aXAnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICBwbGFjZWhvbGRlcj1cIlZlcnpvZWsgUGx1Z2luXCJcbiAgPlxuICA8L3YtaW5wdXQ+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIntub3RpZmljYXRpZVBsdWdpblNlbGVjdEl0ZW1zOiBub3RpZmljYXRpZVBsdWdpblNlbGVjdEl0ZW1zJCB8IGFzeW5jfSBhcyB2YXJzXCJcbiAgPlxuICAgIDx2LXNlbGVjdFxuICAgICAgW2l0ZW1zXT1cInZhcnMubm90aWZpY2F0aWVQbHVnaW5TZWxlY3RJdGVtc1wiXG4gICAgICBbbWFyZ2luXT1cInRydWVcIlxuICAgICAgbmFtZT1cIm5vdGlmaWNhdGllc0FwaVBsdWdpbkNvbmZpZ3VyYXRpb25cIlxuICAgICAgW3RpdGxlXT1cIidub3RpZmljYXRpZXNBcGlQbHVnaW5Db25maWd1cmF0aW9uJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgICBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCJcbiAgICAgIFtkZWZhdWx0U2VsZWN0aW9uSWRdPVwib2JzLnByZWZpbGw/Lm5vdGlmaWNhdGllc0FwaVBsdWdpbkNvbmZpZ3VyYXRpb25cIlxuICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgW2xvYWRpbmddPVwiIXZhcnMubm90aWZpY2F0aWVQbHVnaW5TZWxlY3RJdGVtc1wiXG4gICAgICBbdG9vbHRpcF09XCInbm90aWZpY2F0aWVzQXBpUGx1Z2luQ29uZmlndXJhdGlvblRvb2x0aXAnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICA+PC92LXNlbGVjdD5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ7cHJvY2Vzc1NlbGVjdEl0ZW1zOiBwcm9jZXNzU2VsZWN0SXRlbXMkIHwgYXN5bmN9IGFzIHZhcnNcIj5cbiAgICA8di1zZWxlY3RcbiAgICAgIFtpdGVtc109XCJ2YXJzLnByb2Nlc3NTZWxlY3RJdGVtc1wiXG4gICAgICBbbWFyZ2luXT1cInRydWVcIlxuICAgICAgbmFtZT1cInByb2Nlc3NUb1N0YXJ0XCJcbiAgICAgIFt0aXRsZV09XCIncHJvY2Vzc1RvU3RhcnQnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICAgIFtkaXNhYmxlZF09XCJvYnMuZGlzYWJsZWRcIlxuICAgICAgW2RlZmF1bHRTZWxlY3Rpb25JZF09XCJvYnMucHJlZmlsbD8ucHJvY2Vzc1RvU3RhcnRcIlxuICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgW2xvYWRpbmddPVwiIXZhcnMucHJvY2Vzc1NlbGVjdEl0ZW1zXCJcbiAgICAgIFt0b29sdGlwXT1cIidwcm9jZXNzVG9TdGFydFRvb2x0aXAnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICA+PC92LXNlbGVjdD5cbiAgPC9uZy1jb250YWluZXI+XG4gIDx2LWlucHV0XG4gICAgbmFtZT1cInJzaW5cIlxuICAgIFt0aXRsZV09XCIncnNpbicgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgIFttYXJnaW5dPVwidHJ1ZVwiXG4gICAgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZFwiXG4gICAgW2RlZmF1bHRWYWx1ZV09XCJvYnMucHJlZmlsbD8ucnNpblwiXG4gICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgIFt0cmltXT1cInRydWVcIlxuICAgIFt0b29sdGlwXT1cIidyc2luVG9vbHRpcCcgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgIHBsYWNlaG9sZGVyPVwiXCJcbiAgPlxuICA8L3YtaW5wdXQ+XG4gIDx2LW11bHRpLWlucHV0LWZvcm1cbiAgICBuYW1lPVwidmVyem9la1Byb3BlcnRpZXNcIlxuICAgIFt0aXRsZV09XCIndmVyem9la1Byb3BlcnRpZXMnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICBbZm9ybVRlbXBsYXRlXT1cIm1hcHBpbmdGb3JtXCJcbiAgICBbYWRkUm93VGV4dF09XCInYWRkVmVyem9la1R5cGUnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICBbcmVxdWlyZWRdPVwiZmFsc2VcIlxuICAgIFt0b29sdGlwXT1cIid2ZXJ6b2VrUHJvcGVydGllc1Rvb2x0aXAnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICAoZGVsZXRlUm93RXZlbnQpPVwiZGVsZXRlUm93KCRldmVudClcIlxuICAgIFtpbml0aWFsQW1vdW50T2ZSb3dzXT1cIjBcIlxuICAgIFttaW5pbXVtQW1vdW50T2ZSb3dzXT1cIjBcIlxuICAgIFtkZWZhdWx0VmFsdWVzXT1cIm9icy5wcmVmaWxsPy52ZXJ6b2VrUHJvcGVydGllc1wiXG4gID5cbiAgPC92LW11bHRpLWlucHV0LWZvcm0+XG48L3YtZm9ybT5cblxuPG5nLXRlbXBsYXRlXG4gICNtYXBwaW5nRm9ybVxuICBsZXQtaW5kZXg9XCJpbmRleFwiXG4gIGxldC11dWlkPVwidXVpZFwiXG4gIGxldC1jaGFuZ2VGdW5jdGlvbj1cImNoYW5nZUZ1bmN0aW9uXCJcbiAgbGV0LXByZWZpbGw9XCJwcmVmaWxsXCJcbj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwie1xuICAgICAgZGlzYWJsZWQ6IGRpc2FibGVkJCB8IGFzeW5jLFxuICAgIH0gYXMgb2JzXCJcbiAgPlxuICAgIDx2LWZvcm0gKHZhbHVlQ2hhbmdlKT1cImNoYW5nZUZ1bmN0aW9uKCRldmVudCwgdXVpZCk7IHZlcnpvZWtUeXBlRm9ybUNoYW5nZSgkZXZlbnQsIHV1aWQpXCI+XG4gICAgICA8di1pbnB1dFxuICAgICAgICBuYW1lPVwidHlwZVwiXG4gICAgICAgIFt0aXRsZV09XCIndHlwZScgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgICAgICBbbWFyZ2luXT1cImZhbHNlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZFwiXG4gICAgICAgIFtkZWZhdWx0VmFsdWVdPVwicHJlZmlsbD8udHlwZVwiXG4gICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgW3RyaW1dPVwidHJ1ZVwiXG4gICAgICAgIFt0b29sdGlwXT1cIid0eXBlVG9vbHRpcCcgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgICAgICBbc21hbGxNYXJnaW5dPVwidHJ1ZVwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiXCJcbiAgICAgID5cbiAgICAgIDwvdi1pbnB1dD5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ7ZG9jdW1lbnRTZWxlY3RJdGVtczogZG9jdW1lbnRTZWxlY3RJdGVtcyQgfCBhc3luY30gYXMgdmFyc1wiPlxuICAgICAgICA8di1zZWxlY3RcbiAgICAgICAgICBbaXRlbXNdPVwidmFycy5kb2N1bWVudFNlbGVjdEl0ZW1zXCJcbiAgICAgICAgICBbc21hbGxNYXJnaW5dPVwidHJ1ZVwiXG4gICAgICAgICAgbmFtZT1cImNhc2VEZWZpbml0aW9uTmFtZVwiXG4gICAgICAgICAgW3RpdGxlXT1cIidjYXNlRGVmaW5pdGlvbk5hbWUnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCJcbiAgICAgICAgICBbZGVmYXVsdFNlbGVjdGlvbklkXT1cInByZWZpbGw/LmNhc2VEZWZpbml0aW9uTmFtZVwiXG4gICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICAgIFtsb2FkaW5nXT1cIiF2YXJzLmRvY3VtZW50U2VsZWN0SXRlbXNcIlxuICAgICAgICAgIFt0b29sdGlwXT1cIidjYXNlRGVmaW5pdGlvbk5hbWVUb29sdGlwJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgICAgID48L3Ytc2VsZWN0PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0lmPVwie29iamVjdE1hbmFnZW1lbnRTZWxlY3RJdGVtczogb2JqZWN0TWFuYWdlbWVudFNlbGVjdEl0ZW1zJCB8IGFzeW5jfSBhcyB2YXJzXCJcbiAgICAgID5cbiAgICAgICAgPHYtc2VsZWN0XG4gICAgICAgICAgW2l0ZW1zXT1cInZhcnMub2JqZWN0TWFuYWdlbWVudFNlbGVjdEl0ZW1zXCJcbiAgICAgICAgICBbc21hbGxNYXJnaW5dPVwidHJ1ZVwiXG4gICAgICAgICAgbmFtZT1cIm9iamVjdE1hbmFnZW1lbnRJZFwiXG4gICAgICAgICAgW3RpdGxlXT1cIidvYmplY3RNYW5hZ2VtZW50SWQnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCJcbiAgICAgICAgICBbZGVmYXVsdFNlbGVjdGlvbklkXT1cInByZWZpbGw/Lm9iamVjdE1hbmFnZW1lbnRJZFwiXG4gICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICAgIFtsb2FkaW5nXT1cIiF2YXJzLm9iamVjdE1hbmFnZW1lbnRTZWxlY3RJdGVtc1wiXG4gICAgICAgICAgW3Rvb2x0aXBdPVwiJ29iamVjdE1hbmFnZW1lbnRJZFRvb2x0aXAnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICAgICAgPjwvdi1zZWxlY3Q+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDx2LXNlbGVjdFxuICAgICAgICBbaXRlbXNdPVwiXG4gICAgICAgICAgcm9sVHlwZVNlbGVjdEl0ZW1zT2JzZXJ2YWJsZXNbdXVpZF0/LmNhc2VEZWZpbml0aW9uTmFtZSAmJlxuICAgICAgICAgIChyb2xUeXBlU2VsZWN0SXRlbXNPYnNlcnZhYmxlc1t1dWlkXS5pdGVtcyB8IGFzeW5jKVxuICAgICAgICBcIlxuICAgICAgICBbc21hbGxNYXJnaW5dPVwidHJ1ZVwiXG4gICAgICAgIG5hbWU9XCJpbml0aWF0b3JSb2x0eXBlVXJsXCJcbiAgICAgICAgW3RpdGxlXT1cIidpbml0aWF0b3JSb2x0eXBlVXJsJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJvYnMuZGlzYWJsZWQgfHwgIXJvbFR5cGVTZWxlY3RJdGVtc09ic2VydmFibGVzW3V1aWRdPy5jYXNlRGVmaW5pdGlvbk5hbWVcIlxuICAgICAgICBbZGVmYXVsdFNlbGVjdGlvbklkXT1cInByZWZpbGw/LmluaXRpYXRvclJvbHR5cGVVcmxcIlxuICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgIFt0b29sdGlwXT1cIidpbml0aWF0b3JSb2x0eXBlVXJsVG9vbHRpcCcgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgICAgPjwvdi1zZWxlY3Q+XG4gICAgICA8di1pbnB1dFxuICAgICAgICBuYW1lPVwiaW5pdGlhdG9yUm9sRGVzY3JpcHRpb25cIlxuICAgICAgICBbdGl0bGVdPVwiJ2luaXRpYXRvclJvbERlc2NyaXB0aW9uJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgICAgIFttYXJnaW5dPVwiZmFsc2VcIlxuICAgICAgICBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCJcbiAgICAgICAgW2RlZmF1bHRWYWx1ZV09XCJwcmVmaWxsPy5pbml0aWF0b3JSb2xEZXNjcmlwdGlvbiB8fCAnSW5pdGlhdG9yJ1wiXG4gICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgW3Rvb2x0aXBdPVwiJ2luaXRpYXRvclJvbERlc2NyaXB0aW9uVG9vbHRpcCcgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgICAgICBbc21hbGxNYXJnaW5dPVwidHJ1ZVwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiXCJcbiAgICAgID5cbiAgICAgIDwvdi1pbnB1dD5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ7cHJvY2Vzc1NlbGVjdEl0ZW1zOiBwcm9jZXNzU2VsZWN0SXRlbXMkIHwgYXN5bmN9IGFzIHZhcnNcIj5cbiAgICAgICAgPHYtc2VsZWN0XG4gICAgICAgICAgW2l0ZW1zXT1cInZhcnMucHJvY2Vzc1NlbGVjdEl0ZW1zXCJcbiAgICAgICAgICBbc21hbGxNYXJnaW5dPVwidHJ1ZVwiXG4gICAgICAgICAgbmFtZT1cInByb2Nlc3NEZWZpbml0aW9uS2V5XCJcbiAgICAgICAgICBbdGl0bGVdPVwiJ3Byb2Nlc3NEZWZpbml0aW9uS2V5JyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZFwiXG4gICAgICAgICAgW2RlZmF1bHRTZWxlY3Rpb25JZF09XCJwcmVmaWxsPy5wcm9jZXNzRGVmaW5pdGlvbktleVwiXG4gICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICAgIFtsb2FkaW5nXT1cIiF2YXJzLnByb2Nlc3NTZWxlY3RJdGVtc1wiXG4gICAgICAgICAgW3Rvb2x0aXBdPVwiJ3Byb2Nlc3NEZWZpbml0aW9uS2V5VG9vbHRpcCcgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgICAgICA+PC92LXNlbGVjdD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPHYtcmFkaW9cbiAgICAgICAgbmFtZT1cImNvcHlTdHJhdGVneVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJvYnMuZGlzYWJsZWRcIlxuICAgICAgICBbdGl0bGVdPVwiJ2NvcHlTdHJhdGVneScgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgICAgICBbdG9vbHRpcF09XCInY29weVN0cmF0ZWd5VG9vbHRpcCcgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgICAgICBbcmFkaW9WYWx1ZXNdPVwicmFkaW9JdGVtcyQgfCBhc3luY1wiXG4gICAgICAgIFtzbWFsbE1hcmdpbl09XCJ0cnVlXCJcbiAgICAgICAgW2RlZmF1bHRWYWx1ZV09XCJwcmVmaWxsPy5jb3B5U3RyYXRlZ3kgfHwgJ2Z1bGwnXCJcbiAgICAgID5cbiAgICAgIDwvdi1yYWRpbz5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93TWFwcGluZ0J1dHRvbnNbdXVpZF1cIj5cbiAgICAgICAgPHYtaW5wdXQtbGFiZWxcbiAgICAgICAgICBbdGl0bGVdPVwiJ21hcHBpbmcnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICAgICAgICBbdG9vbHRpcF09XCInbWFwcGluZ1Rvb2x0aXAnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICAgICAgPlxuICAgICAgICA8L3YtaW5wdXQtbGFiZWw+XG4gICAgICAgIDx2LWJ1dHRvbiAoY2xpY2tFdmVudCk9XCJvcGVuTWFwcGluZ01vZGFsKHV1aWQpXCIgbWRpSWNvbj1cInRhYmxlXCJcbiAgICAgICAgICA+e3sgJ3NldE1hcHBpbmcnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jIH19XG4gICAgICAgIDwvdi1idXR0b24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDx2LWlucHV0IGNsYXNzPVwiaGlkZGVuLWlucHV0XCIgbmFtZT1cInV1aWRcIiBbZGVmYXVsdFZhbHVlXT1cInV1aWRcIj4gPC92LWlucHV0PlxuICAgIDwvdi1mb3JtPlxuICAgIDx2LW1vZGFsIFtwYXJlbnRJZF09XCJ1dWlkXCIgKGNsb3NlRXZlbnQpPVwiY2xvc2VNYXBwaW5nTW9kYWwodXVpZClcIiBbbWF4V2lkdGhQeF09XCI5NjBcIj5cbiAgICAgIDxkaXYgcm9sZT1cImhlYWRlclwiPlxuICAgICAgICA8aDMgY2RzTW9kYWxIZWFkZXJIZWFkaW5nPnt7ICdzZXRNYXBwaW5nJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luYyB9fTwvaDM+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiByb2xlPVwiY29udGVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2RzLS10ZXh0LWlucHV0X19maWVsZC13cmFwcGVyXCI+XG4gICAgICAgICAgPGNkcy1sYWJlbCBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsLXdpdGgtdG9vbHRpcCBzZWxlY3QtbGFiZWxcIj5cbiAgICAgICAgICAgICAge3sgJ21hcHBpbmcnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jIH19XG4gICAgICAgICAgICAgIDx2LXRvb2x0aXAtaWNvblxuICAgICAgICAgICAgICAgIFt0b29sdGlwXT1cIidtYXBwaW5nVG9vbHRpcCcgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJvYnMuZGlzYWJsZWRcIlxuICAgICAgICAgICAgICA+PC92LXRvb2x0aXAtaWNvbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Nkcy1sYWJlbD5cbiAgICAgICAgICA8dmFsdGltby1jYXJib24tbXVsdGktaW5wdXRcbiAgICAgICAgICAgICpuZ0lmPVwic2hvd01hcHBpbmdNb2RhbHNEZWxheVt1dWlkXVwiXG4gICAgICAgICAgICB0eXBlPVwia2V5VmFsdWVQYXRoU2VsZWN0b3JcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm1hcHBpbmdWYWx1ZUNoYW5nZSgkZXZlbnQsIHV1aWQpXCJcbiAgICAgICAgICAgIFtkZWZhdWx0VmFsdWVzXT1cIm1hcHBpbmdzW3V1aWRdIHx8IHByZWZpbGw/Lm1hcHBpbmdcIlxuICAgICAgICAgICAgW3ZhbHVlQ29sdW1uVGl0bGVdPVwiJ3RhcmdldCcgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgICAgICAgICAgW2tleUNvbHVtblRpdGxlXT1cIidzb3VyY2UnIHwgcGx1Z2luVHJhbnNsYXRlOiBwbHVnaW5JZCB8IGFzeW5jXCJcbiAgICAgICAgICAgIFtmdWxsV2lkdGhdPVwidHJ1ZVwiXG4gICAgICAgICAgICB2YWx1ZVBhdGhTZWxlY3Rvck5vdGF0aW9uPVwic2xhc2hlc1wiXG4gICAgICAgICAgICBbdmFsdWVQYXRoU2VsZWN0b3JEb2N1bWVudERlZmluaXRpb25OYW1lXT1cIlxuICAgICAgICAgICAgICBnZXRTZWxlY3RlZENhc2VEZWZpbml0aW9uTmFtZUZvckluZGV4KGluZGV4KSB8IGFzeW5jXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW3ZhbHVlUGF0aFNlbGVjdG9yUHJlZml4ZXNdPVwiW1ZhbHVlUGF0aFNlbGVjdG9yUHJlZml4LkRPQ11cIlxuICAgICAgICAgICAgW2tleUNvbHVtbkZsZXhdPVwiMVwiXG4gICAgICAgICAgICBbdmFsdWVDb2x1bW5GbGV4XT1cIjJcIlxuICAgICAgICAgID48L3ZhbHRpbW8tY2FyYm9uLW11bHRpLWlucHV0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IHJvbGU9XCJmb290ZXJcIiBjbGFzcz1cIm1vZGFsLWJ1dHRvbnMtY29udGFpbmVyXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjZHNCdXR0b249XCJzZWNvbmRhcnlcIlxuICAgICAgICAgIFthdHRyLm1vZGFsLXByaW1hcnktZm9jdXNdPVwidHJ1ZVwiXG4gICAgICAgICAgKGNsaWNrKT1cImNsb3NlTWFwcGluZ01vZGFsKHV1aWQpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7ICdjbG9zZScgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmMgfX1cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNkc0J1dHRvbj1cInByaW1hcnlcIlxuICAgICAgICAgIFthdHRyLm1vZGFsLXByaW1hcnktZm9jdXNdPVwidHJ1ZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZFwiXG4gICAgICAgICAgKGNsaWNrKT1cInNhdmVNYXBwaW5nKHV1aWQpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7ICdzYXZlJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luYyB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvdi1tb2RhbD5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
|