{
"$schema" : "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
"name" : "Hybrid A2A Client (early access)",
"id" : "io.camunda.connectors.agenticai.a2a.client.v0-hybrid",
"description" : "Agent-to-Agent (A2A) client, enabling discovering remote agents' Agent Cards as well as sending messages to remote agents.",
"metadata" : {
"keywords" : [ ]
},
"documentationRef" : "https://docs.camunda.io/docs/8.9/components/early-access/alpha/a2a-client/a2a-client-connector/",
"version" : 0,
"category" : {
"id" : "connectors",
"name" : "Connectors"
},
"appliesTo" : [ "bpmn:Task" ],
"elementType" : {
"value" : "bpmn:ServiceTask"
},
"engines" : {
"camunda" : "^8.9"
},
"groups" : [ {
"id" : "taskDefinitionType",
"label" : "Task definition type"
}, {
"id" : "connection",
"label" : "HTTP Connection",
"tooltip" : "Configure the HTTP connection to the remote A2A server for retrieving the Agent Card. Setting authentication headers is not supported yet."
}, {
"id" : "connectorMode",
"label" : "Connector mode",
"tooltip" : "Select how this connector is used. When the connector is used as an AI agent tool, select the AI Agent tool mode."
}, {
"id" : "operation",
"label" : "Operation"
}, {
"id" : "connector",
"label" : "Connector"
}, {
"id" : "output",
"label" : "Output mapping"
}, {
"id" : "error",
"label" : "Error handling"
}, {
"id" : "retries",
"label" : "Retries"
} ],
"properties" : [ {
"id" : "taskDefinitionType",
"value" : "io.camunda.agenticai:a2aclient:0",
"group" : "taskDefinitionType",
"binding" : {
"property" : "type",
"type" : "zeebe:taskDefinition"
},
"type" : "String"
}, {
"value" : "a2aClient",
"binding" : {
"name" : "io.camunda.agenticai.gateway.type",
"type" : "zeebe:property"
},
"condition" : {
"property" : "data.connectorMode.type",
"equals" : "aiAgentTool",
"type" : "simple"
},
"type" : "Hidden"
}, {
"id" : "data.connection.url",
"label" : "A2A server URL",
"description" : "The base URL of the A2A server.",
"optional" : false,
"constraints" : {
"notEmpty" : true
},
"feel" : "optional",
"group" : "connection",
"binding" : {
"name" : "data.connection.url",
"type" : "zeebe:input"
},
"type" : "String"
}, {
"id" : "data.connection.agentCardLocation",
"label" : "Agent card location",
"description" : "Optional path to the agent card endpoint relative to the base server URL, defaults to .well-known/agent-card.json.",
"optional" : true,
"feel" : "optional",
"group" : "connection",
"binding" : {
"name" : "data.connection.agentCardLocation",
"type" : "zeebe:input"
},
"type" : "String"
}, {
"id" : "data.connectorMode.type",
"label" : "Connector mode",
"description" : "Select how this connector is used.",
"value" : "aiAgentTool",
"group" : "connectorMode",
"binding" : {
"name" : "data.connectorMode.type",
"type" : "zeebe:input"
},
"type" : "Dropdown",
"choices" : [ {
"name" : "Standalone",
"value" : "standalone"
}, {
"name" : "AI Agent tool",
"value" : "aiAgentTool"
} ]
}, {
"id" : "data.connectorMode.operation.type",
"label" : "Operation",
"description" : "The type of operation to perform.",
"value" : "fetchAgentCard",
"group" : "operation",
"binding" : {
"name" : "data.connectorMode.operation.type",
"type" : "zeebe:input"
},
"condition" : {
"property" : "data.connectorMode.type",
"equals" : "standalone",
"type" : "simple"
},
"type" : "Dropdown",
"choices" : [ {
"name" : "Fetch Agent Card",
"value" : "fetchAgentCard"
}, {
"name" : "Send message",
"value" : "sendMessage"
} ]
}, {
"id" : "data.connectorMode.operation.params.text",
"label" : "Text",
"description" : "The text to to be included in the message.",
"optional" : false,
"constraints" : {
"notEmpty" : true
},
"feel" : "optional",
"group" : "operation",
"binding" : {
"name" : "data.connectorMode.operation.params.text",
"type" : "zeebe:input"
},
"condition" : {
"allMatch" : [ {
"property" : "data.connectorMode.operation.type",
"equals" : "sendMessage",
"type" : "simple"
}, {
"property" : "data.connectorMode.type",
"equals" : "standalone",
"type" : "simple"
} ]
},
"type" : "Text"
}, {
"id" : "data.connectorMode.operation.params.contextId",
"label" : "Context ID",
"description" : "The context ID for this message, used to group related interactions.",
"optional" : true,
"feel" : "optional",
"group" : "operation",
"binding" : {
"name" : "data.connectorMode.operation.params.contextId",
"type" : "zeebe:input"
},
"condition" : {
"allMatch" : [ {
"property" : "data.connectorMode.operation.type",
"equals" : "sendMessage",
"type" : "simple"
}, {
"property" : "data.connectorMode.type",
"equals" : "standalone",
"type" : "simple"
} ]
},
"tooltip" : "Context IDs are generated by the remote server. Omit if this is the first message or if this message starts a new context.",
"type" : "String"
}, {
"id" : "data.connectorMode.operation.params.taskId",
"label" : "Task ID",
"description" : "The ID of the task this message is part of.",
"optional" : true,
"feel" : "optional",
"group" : "operation",
"binding" : {
"name" : "data.connectorMode.operation.params.taskId",
"type" : "zeebe:input"
},
"condition" : {
"allMatch" : [ {
"property" : "data.connectorMode.operation.type",
"equals" : "sendMessage",
"type" : "simple"
}, {
"property" : "data.connectorMode.type",
"equals" : "standalone",
"type" : "simple"
} ]
},
"tooltip" : "Task IDs are generated by the remote server. Omit if the message is not yet part of a specific task.",
"type" : "String"
}, {
"id" : "data.connectorMode.operation.params.referenceTaskIds",
"label" : "Reference Task IDs",
"description" : "A list of task IDs that this message references for additional context.",
"optional" : true,
"feel" : "required",
"group" : "operation",
"binding" : {
"name" : "data.connectorMode.operation.params.referenceTaskIds",
"type" : "zeebe:input"
},
"condition" : {
"allMatch" : [ {
"property" : "data.connectorMode.operation.type",
"equals" : "sendMessage",
"type" : "simple"
}, {
"property" : "data.connectorMode.type",
"equals" : "standalone",
"type" : "simple"
} ]
},
"type" : "String"
}, {
"id" : "data.connectorMode.operation.params.documents",
"label" : "Documents",
"description" : "Documents to be included in the message.",
"optional" : true,
"feel" : "required",
"group" : "operation",
"binding" : {
"name" : "data.connectorMode.operation.params.documents",
"type" : "zeebe:input"
},
"condition" : {
"allMatch" : [ {
"property" : "data.connectorMode.operation.type",
"equals" : "sendMessage",
"type" : "simple"
}, {
"property" : "data.connectorMode.type",
"equals" : "standalone",
"type" : "simple"
} ]
},
"tooltip" : "Referenced documents that will be added to the message.",
"type" : "String"
}, {
"id" : "data.connectorMode.operation.settings.responseRetrievalMode.type",
"label" : "Response retrieval",
"description" : "How to receive the final response from the remote agent.",
"value" : "polling",
"group" : "operation",
"binding" : {
"name" : "data.connectorMode.operation.settings.responseRetrievalMode.type",
"type" : "zeebe:input"
},
"condition" : {
"allMatch" : [ {
"property" : "data.connectorMode.operation.type",
"equals" : "sendMessage",
"type" : "simple"
}, {
"property" : "data.connectorMode.type",
"equals" : "standalone",
"type" : "simple"
} ]
},
"type" : "Dropdown",
"choices" : [ {
"name" : "Blocking",
"value" : "blocking"
}, {
"name" : "Polling",
"value" : "polling"
}, {
"name" : "Notification",
"value" : "notification"
} ]
}, {
"id" : "data.connectorMode.operation.settings.responseRetrievalMode.webhookUrl",
"label" : "Webhook URL",
"description" : "The webhook URL where the remote agent will send the response.",
"optional" : false,
"constraints" : {
"notEmpty" : true
},
"feel" : "optional",
"group" : "operation",
"binding" : {
"name" : "data.connectorMode.operation.settings.responseRetrievalMode.webhookUrl",
"type" : "zeebe:input"
},
"condition" : {
"allMatch" : [ {
"property" : "data.connectorMode.operation.settings.responseRetrievalMode.type",
"equals" : "notification",
"type" : "simple"
}, {
"property" : "data.connectorMode.operation.type",
"equals" : "sendMessage",
"type" : "simple"
}, {
"property" : "data.connectorMode.type",
"equals" : "standalone",
"type" : "simple"
} ]
},
"type" : "String"
}, {
"id" : "data.connectorMode.operation.settings.responseRetrievalMode.token",
"label" : "Token",
"description" : "A unique token for the task or session to validate incoming push notifications",
"optional" : true,
"feel" : "optional",
"group" : "operation",
"binding" : {
"name" : "data.connectorMode.operation.settings.responseRetrievalMode.token",
"type" : "zeebe:input"
},
"condition" : {
"allMatch" : [ {
"property" : "data.connectorMode.operation.settings.responseRetrievalMode.type",
"equals" : "notification",
"type" : "simple"
}, {
"property" : "data.connectorMode.operation.type",
"equals" : "sendMessage",
"type" : "simple"
}, {
"property" : "data.connectorMode.type",
"equals" : "standalone",
"type" : "simple"
} ]
},
"type" : "String"
}, {
"id" : "data.connectorMode.operation.settings.responseRetrievalMode.authenticationSchemes",
"label" : "Authentication schemes",
"description" : "A list of authentication schemes required by the webhook.",
"optional" : false,
"feel" : "required",
"group" : "operation",
"binding" : {
"name" : "data.connectorMode.operation.settings.responseRetrievalMode.authenticationSchemes",
"type" : "zeebe:input"
},
"condition" : {
"allMatch" : [ {
"property" : "data.connectorMode.operation.settings.responseRetrievalMode.type",
"equals" : "notification",
"type" : "simple"
}, {
"property" : "data.connectorMode.operation.type",
"equals" : "sendMessage",
"type" : "simple"
}, {
"property" : "data.connectorMode.type",
"equals" : "standalone",
"type" : "simple"
} ]
},
"type" : "String"
}, {
"id" : "data.connectorMode.operation.settings.responseRetrievalMode.credentials",
"label" : "Authentication credentials",
"description" : "Credentials to authenticate the webhook request.",
"optional" : false,
"feel" : "optional",
"group" : "operation",
"binding" : {
"name" : "data.connectorMode.operation.settings.responseRetrievalMode.credentials",
"type" : "zeebe:input"
},
"condition" : {
"allMatch" : [ {
"property" : "data.connectorMode.operation.settings.responseRetrievalMode.type",
"equals" : "notification",
"type" : "simple"
}, {
"property" : "data.connectorMode.operation.type",
"equals" : "sendMessage",
"type" : "simple"
}, {
"property" : "data.connectorMode.type",
"equals" : "standalone",
"type" : "simple"
} ]
},
"type" : "String"
}, {
"id" : "data.connectorMode.operation.settings.historyLength",
"label" : "History length",
"description" : "The number of most recent messages from the task's history to retrieve in the response.",
"optional" : false,
"value" : 3,
"feel" : "optional",
"group" : "operation",
"binding" : {
"name" : "data.connectorMode.operation.settings.historyLength",
"type" : "zeebe:input"
},
"condition" : {
"allMatch" : [ {
"property" : "data.connectorMode.operation.type",
"equals" : "sendMessage",
"type" : "simple"
}, {
"property" : "data.connectorMode.type",
"equals" : "standalone",
"type" : "simple"
} ]
},
"type" : "Number"
}, {
"id" : "data.connectorMode.operation.settings.timeout",
"label" : "Response timeout",
"description" : "How long to wait for the remote agent response as ISO-8601 duration (example: PT1M).",
"optional" : false,
"value" : "PT1M",
"feel" : "optional",
"group" : "operation",
"binding" : {
"name" : "data.connectorMode.operation.settings.timeout",
"type" : "zeebe:input"
},
"condition" : {
"allMatch" : [ {
"property" : "data.connectorMode.operation.type",
"equals" : "sendMessage",
"type" : "simple"
}, {
"property" : "data.connectorMode.type",
"equals" : "standalone",
"type" : "simple"
} ]
},
"type" : "String"
}, {
"id" : "data.connectorMode.toolOperation.operation",
"label" : "Operation",
"description" : "The action to perform. Possible values are fetchAgentCard and sendMessage.",
"optional" : false,
"value" : "=toolCall.operation",
"constraints" : {
"notEmpty" : true
},
"feel" : "required",
"group" : "operation",
"binding" : {
"name" : "data.connectorMode.toolOperation.operation",
"type" : "zeebe:input"
},
"condition" : {
"property" : "data.connectorMode.type",
"equals" : "aiAgentTool",
"type" : "simple"
},
"type" : "String"
}, {
"id" : "data.connectorMode.toolOperation.params",
"label" : "Parameters",
"description" : "The parameters used to build the message that will be sent to the remote agent.",
"optional" : true,
"value" : "=toolCall.params",
"feel" : "required",
"group" : "operation",
"binding" : {
"name" : "data.connectorMode.toolOperation.params",
"type" : "zeebe:input"
},
"condition" : {
"property" : "data.connectorMode.type",
"equals" : "aiAgentTool",
"type" : "simple"
},
"type" : "Text"
}, {
"id" : "data.connectorMode.toolOperation.sendMessageSettings.responseRetrievalMode.type",
"label" : "Response retrieval",
"description" : "How to receive the final response from the remote agent.",
"value" : "polling",
"group" : "operation",
"binding" : {
"name" : "data.connectorMode.toolOperation.sendMessageSettings.responseRetrievalMode.type",
"type" : "zeebe:input"
},
"condition" : {
"property" : "data.connectorMode.type",
"equals" : "aiAgentTool",
"type" : "simple"
},
"type" : "Dropdown",
"choices" : [ {
"name" : "Blocking",
"value" : "blocking"
}, {
"name" : "Polling",
"value" : "polling"
}, {
"name" : "Notification",
"value" : "notification"
} ]
}, {
"id" : "data.connectorMode.toolOperation.sendMessageSettings.responseRetrievalMode.webhookUrl",
"label" : "Webhook URL",
"description" : "The webhook URL where the remote agent will send the response.",
"optional" : false,
"constraints" : {
"notEmpty" : true
},
"feel" : "optional",
"group" : "operation",
"binding" : {
"name" : "data.connectorMode.toolOperation.sendMessageSettings.responseRetrievalMode.webhookUrl",
"type" : "zeebe:input"
},
"condition" : {
"allMatch" : [ {
"property" : "data.connectorMode.toolOperation.sendMessageSettings.responseRetrievalMode.type",
"equals" : "notification",
"type" : "simple"
}, {
"property" : "data.connectorMode.type",
"equals" : "aiAgentTool",
"type" : "simple"
} ]
},
"type" : "String"
}, {
"id" : "data.connectorMode.toolOperation.sendMessageSettings.responseRetrievalMode.token",
"label" : "Token",
"description" : "A unique token for the task or session to validate incoming push notifications",
"optional" : true,
"feel" : "optional",
"group" : "operation",
"binding" : {
"name" : "data.connectorMode.toolOperation.sendMessageSettings.responseRetrievalMode.token",
"type" : "zeebe:input"
},
"condition" : {
"allMatch" : [ {
"property" : "data.connectorMode.toolOperation.sendMessageSettings.responseRetrievalMode.type",
"equals" : "notification",
"type" : "simple"
}, {
"property" : "data.connectorMode.type",
"equals" : "aiAgentTool",
"type" : "simple"
} ]
},
"type" : "String"
}, {
"id" : "data.connectorMode.toolOperation.sendMessageSettings.responseRetrievalMode.authenticationSchemes",
"label" : "Authentication schemes",
"description" : "A list of authentication schemes required by the webhook.",
"optional" : false,
"feel" : "required",
"group" : "operation",
"binding" : {
"name" : "data.connectorMode.toolOperation.sendMessageSettings.responseRetrievalMode.authenticationSchemes",
"type" : "zeebe:input"
},
"condition" : {
"allMatch" : [ {
"property" : "data.connectorMode.toolOperation.sendMessageSettings.responseRetrievalMode.type",
"equals" : "notification",
"type" : "simple"
}, {
"property" : "data.connectorMode.type",
"equals" : "aiAgentTool",
"type" : "simple"
} ]
},
"type" : "String"
}, {
"id" : "data.connectorMode.toolOperation.sendMessageSettings.responseRetrievalMode.credentials",
"label" : "Authentication credentials",
"description" : "Credentials to authenticate the webhook request.",
"optional" : false,
"feel" : "optional",
"group" : "operation",
"binding" : {
"name" : "data.connectorMode.toolOperation.sendMessageSettings.responseRetrievalMode.credentials",
"type" : "zeebe:input"
},
"condition" : {
"allMatch" : [ {
"property" : "data.connectorMode.toolOperation.sendMessageSettings.responseRetrievalMode.type",
"equals" : "notification",
"type" : "simple"
}, {
"property" : "data.connectorMode.type",
"equals" : "aiAgentTool",
"type" : "simple"
} ]
},
"type" : "String"
}, {
"id" : "data.connectorMode.toolOperation.sendMessageSettings.historyLength",
"label" : "History length",
"description" : "The number of most recent messages from the task's history to retrieve in the response.",
"optional" : false,
"value" : 3,
"feel" : "optional",
"group" : "operation",
"binding" : {
"name" : "data.connectorMode.toolOperation.sendMessageSettings.historyLength",
"type" : "zeebe:input"
},
"condition" : {
"property" : "data.connectorMode.type",
"equals" : "aiAgentTool",
"type" : "simple"
},
"type" : "Number"
}, {
"id" : "data.connectorMode.toolOperation.sendMessageSettings.timeout",
"label" : "Response timeout",
"description" : "How long to wait for the remote agent response as ISO-8601 duration (example: PT1M).",
"optional" : false,
"value" : "PT1M",
"feel" : "optional",
"group" : "operation",
"binding" : {
"name" : "data.connectorMode.toolOperation.sendMessageSettings.timeout",
"type" : "zeebe:input"
},
"condition" : {
"property" : "data.connectorMode.type",
"equals" : "aiAgentTool",
"type" : "simple"
},
"type" : "String"
}, {
"id" : "version",
"label" : "Version",
"description" : "Version of the element template",
"value" : "0",
"group" : "connector",
"binding" : {
"key" : "elementTemplateVersion",
"type" : "zeebe:taskHeader"
},
"type" : "Hidden"
}, {
"id" : "id",
"label" : "ID",
"description" : "ID of the element template",
"value" : "io.camunda.connectors.agenticai.a2a.client.v0",
"group" : "connector",
"binding" : {
"key" : "elementTemplateId",
"type" : "zeebe:taskHeader"
},
"type" : "Hidden"
}, {
"id" : "resultVariable",
"label" : "Result variable",
"description" : "Name of variable to store the response in",
"group" : "output",
"binding" : {
"key" : "resultVariable",
"type" : "zeebe:taskHeader"
},
"type" : "String"
}, {
"id" : "resultExpression",
"label" : "Result expression",
"description" : "Expression to map the response into process variables",
"feel" : "required",
"group" : "output",
"binding" : {
"key" : "resultExpression",
"type" : "zeebe:taskHeader"
},
"type" : "Text"
}, {
"id" : "errorExpression",
"label" : "Error expression",
"description" : "Expression to handle errors. Details in the documentation.",
"feel" : "required",
"group" : "error",
"binding" : {
"key" : "errorExpression",
"type" : "zeebe:taskHeader"
},
"type" : "Text"
}, {
"id" : "retryCount",
"label" : "Retries",
"description" : "Number of retries",
"value" : "3",
"feel" : "optional",
"group" : "retries",
"binding" : {
"property" : "retries",
"type" : "zeebe:taskDefinition"
},
"type" : "String"
}, {
"id" : "retryBackoff",
"label" : "Retry backoff",
"description" : "ISO-8601 duration to wait between retries",
"value" : "PT0S",
"group" : "retries",
"binding" : {
"key" : "retryBackoff",
"type" : "zeebe:taskHeader"
},
"type" : "String"
} ],
"icon" : {
"contents" : "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMTguNSIgdmlld0JveD0iMyA5IDMwIDE4LjUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPHBhdGggZD0iTTguNyAxNC43MjVDOC41MTY2NyAxNC45MDgzIDguMjgzMzMgMTUgOCAxNUM3LjcxNjY3IDE1IDcuNDc1IDE0LjkwODMgNy4yNzUgMTQuNzI1QzcuMDkxNjcgMTQuNTI1IDcgMTQuMjgzMyA3IDE0QzcgMTMuNzE2NyA3LjA5MTY3IDEzLjQ4MzMgNy4yNzUgMTMuM0M3LjQ3NSAxMy4xIDcuNzE2NjcgMTMgOCAxM0M4LjI4MzMzIDEzIDguNTE2NjcgMTMuMSA4LjcgMTMuM0M4LjkgMTMuNDgzMyA5IDEzLjcxNjcgOSAxNEM5IDE0LjI4MzMgOC45IDE0LjUyNSA4LjcgMTQuNzI1WiIgZmlsbD0iYmxhY2siLz4KICA8cGF0aCBkPSJNMTQuNyAxNC43MjVDMTQuNTE2NyAxNC45MDgzIDE0LjI4MzMgMTUgMTQgMTVDMTMuNzE2NyAxNSAxMy40NzUgMTQuOTA4MyAxMy4yNzUgMTQuNzI1QzEzLjA5MTcgMTQuNTI1IDEzIDE0LjI4MzMgMTMgMTRDMTMgMTMuNzE2NyAxMy4wOTE3IDEzLjQ4MzMgMTMuMjc1IDEzLjNDMTMuNDc1IDEzLjEgMTMuNzE2NyAxMyAxNCAxM0MxNC4yODMzIDEzIDE0LjUxNjcgMTMuMSAxNC43IDEzLjNDMTQuOSAxMy40ODMzIDE1IDEzLjcxNjcgMTUgMTRDMTUgMTQuMjgzMyAxNC45IDE0LjUyNSAxNC43IDE0LjcyNVoiIGZpbGw9ImJsYWNrIi8+CiAgPHBhdGggZD0iTTIyLjcgMTQuNzI1QzIyLjUxNjcgMTQuOTA4MyAyMi4yODMzIDE1IDIyIDE1QzIxLjcxNjcgMTUgMjEuNDc1IDE0LjkwODMgMjEuMjc1IDE0LjcyNUMyMS4wOTE3IDE0LjUyNSAyMSAxNC4yODMzIDIxIDE0QzIxIDEzLjcxNjcgMjEuMDkxNyAxMy40ODMzIDIxLjI3NSAxMy4zQzIxLjQ3NSAxMy4xIDIxLjcxNjcgMTMgMjIgMTNDMjIuMjgzMyAxMyAyMi41MTY3IDEzLjEgMjIuNyAxMy4zQzIyLjkgMTMuNDgzMyAyMyAxMy43MTY3IDIzIDE0QzIzIDE0LjI4MzMgMjIuOSAxNC41MjUgMjIuNyAxNC43MjVaIiBmaWxsPSJibGFjayIvPgogIDxwYXRoIGQ9Ik0yOC43IDE0LjcyNUMyOC41MTY3IDE0LjkwODMgMjguMjgzMyAxNSAyOCAxNUMyNy43MTY3IDE1IDI3LjQ3NSAxNC45MDgzIDI3LjI3NSAxNC43MjVDMjcuMDkxNyAxNC41MjUgMjcgMTQuMjgzMyAyNyAxNEMyNyAxMy43MTY3IDI3LjA5MTcgMTMuNDgzMyAyNy4yNzUgMTMuM0MyNy40NzUgMTMuMSAyNy43MTY3IDEzIDI4IDEzQzI4LjI4MzMgMTMgMjguNTE2NyAxMy4xIDI4LjcgMTMuM0MyOC45IDEzLjQ4MzMgMjkgMTMuNzE2NyAyOSAxNEMyOSAxNC4yODMzIDI4LjkgMTQuNTI1IDI4LjcgMTQuNzI1WiIgZmlsbD0iYmxhY2siLz4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTUgMTRDNSAxMi4zNDMxIDYuMzQzMTUgMTEgOCAxMUgxNEMxNC43NzYgMTEgMTUuMjg0IDExLjE1MzcgMTUuNjQgMTEuMzgxOEMxNS44NTg5IDEwLjc5NCAxNi4xNTE3IDEwLjE3MDkgMTYuNTU1IDkuNTk3OTVDMTUuODc5NyA5LjIxMTUzIDE1LjAzODYgOSAxNCA5SDhDNS4yMzg1OCA5IDMgMTEuMjM4NiAzIDE0QzMgMTYuNzYxMiA1LjIzNzU5IDE5IDcuOTk5MjYgMTlIMTRDMTUuNzYzNCAxOSAxNi45NTczIDE4LjM5MDIgMTcuNzM3NSAxNy4zNUMxOC40MjI4IDE2LjQzNjMgMTguNzE0OCAxNS4yNjYgMTguOTQ4MyAxNC4zMjk5TDE4Ljk3MDEgMTQuMjQyNUMxOS4yMzI3IDEzLjE5MjQgMTkuNDQ0MiAxMi40MDc3IDE5Ljg2MjUgMTEuODVDMjAuMjA3MyAxMS4zOTAyIDIwLjc2MzQgMTEgMjIgMTFIMjguMDAwNUMyOS42NTcyIDExIDMxIDEyLjM0MyAzMSAxNEMzMSAxNS42NTY5IDI5LjY1NjkgMTcgMjggMTdIMjJDMjEuMjI0IDE3IDIwLjcxNiAxNi44NDYzIDIwLjM2IDE2LjYxODJDMjAuMTQxMSAxNy4yMDYgMTkuODQ4MyAxNy44MjkxIDE5LjQ0NSAxOC40MDJDMjAuMTIwMyAxOC43ODg1IDIwLjk2MTQgMTkgMjIgMTlIMjhDMzAuNzYxNCAxOSAzMyAxNi43NjE0IDMzIDE0QzMzIDExLjIzODggMzAuNzYyMSA5IDI4LjAwMDUgOUgyMkMyMC4yMzY2IDkgMTkuMDQyNyA5LjYwOTc5IDE4LjI2MjUgMTAuNjVDMTcuNTc3MiAxMS41NjM3IDE3LjI4NTIgMTIuNzM0IDE3LjA1MTcgMTMuNjcwMUwxNy4wMjk5IDEzLjc1NzVDMTYuNzY3MyAxNC44MDc2IDE2LjU1NTggMTUuNTkyMyAxNi4xMzc1IDE2LjE1QzE1Ljc5MjcgMTYuNjA5OCAxNS4yMzY2IDE3IDE0IDE3SDcuOTk5MjZDNi4zNDI2NSAxNyA1IDE1LjY1NzEgNSAxNFoiIGZpbGw9ImJsYWNrIi8+CiAgPHBhdGggZD0iTTcgMjMuNUM2LjcxNjY3IDIzLjUgNi40NzUgMjMuNDA4MyA2LjI3NSAyMy4yMjVDNi4wOTE2NyAyMy4wMjUgNiAyMi43ODMzIDYgMjIuNUM2IDIyLjIxNjcgNi4wOTE2NyAyMS45ODMzIDYuMjc1IDIxLjhDNi40NzUgMjEuNiA2LjcxNjY3IDIxLjUgNyAyMS41SDEyQzEyLjI4MzMgMjEuNSAxMi41MTY3IDIxLjYgMTIuNyAyMS44QzEyLjkgMjEuOTgzMyAxMyAyMi4yMTY3IDEzIDIyLjVDMTMgMjIuNzgzMyAxMi45IDIzLjAyNSAxMi43IDIzLjIyNUMxMi41MTY3IDIzLjQwODMgMTIuMjgzMyAyMy41IDEyIDIzLjVIN1pNNSAyNy41QzQuNzE2NjcgMjcuNSA0LjQ3NSAyNy40MDgzIDQuMjc1IDI3LjIyNUM0LjA5MTY3IDI3LjAyNSA0IDI2Ljc4MzMgNCAyNi41QzQgMjYuMjE2NyA0LjA5MTY3IDI1Ljk4MzMgNC4yNzUgMjUuOEM0LjQ3NSAyNS42IDQuNzE2NjcgMjUuNSA1IDI1LjVIOEM4LjI4MzMzIDI1LjUgOC41MTY2NyAyNS42IDguNyAyNS44QzguOSAyNS45ODMzIDkgMjYuMjE2NyA5IDI2LjVDOSAyNi43ODMzIDguOSAyNy4wMjUgOC43IDI3LjIyNUM4LjUxNjY3IDI3LjQwODMgOC4yODMzMyAyNy41IDggMjcuNUg1Wk0xMiAyNy41QzExLjcxNjcgMjcuNSAxMS40NzUgMjcuNDA4MyAxMS4yNzUgMjcuMjI1QzExLjA5MTcgMjcuMDI1IDExIDI2Ljc4MzMgMTEgMjYuNUMxMSAyNi4yMTY3IDExLjA5MTcgMjUuOTgzMyAxMS4yNzUgMjUuOEMxMS40NzUgMjUuNiAxMS43MTY3IDI1LjUgMTIgMjUuNUgyMEMyMC4yODMzIDI1LjUgMjAuNTE2NyAyNS42IDIwLjcgMjUuOEMyMC45IDI1Ljk4MzMgMjEgMjYuMjE2NyAyMSAyNi41QzIxIDI2Ljc4MzMgMjAuOSAyNy4wMjUgMjAuNyAyNy4yMjVDMjAuNTE2NyAyNy40MDgzIDIwLjI4MzMgMjcuNSAyMCAyNy41SDEyWk0yOCAyNy41QzI3LjcxNjcgMjcuNSAyNy40NzUgMjcuNDA4MyAyNy4yNzUgMjcuMjI1QzI3LjA5MTcgMjcuMDI1IDI3IDI2Ljc4MzMgMjcgMjYuNUMyNyAyNi4yMTY3IDI3LjA5MTcgMjUuOTgzMyAyNy4yNzUgMjUuOEMyNy40NzUgMjUuNiAyNy43MTY3IDI1LjUgMjggMjUuNUgzMkMzMi4yODMzIDI1LjUgMzIuNTE2NyAyNS42IDMyLjcgMjUuOEMzMi45IDI1Ljk4MzMgMzMgMjYuMjE2NyAzMyAyNi41QzMzIDI2Ljc4MzMzMi45IDI3LjAyNSAzMi43IDI3LjIyNUMzMi41MTY3IDI3LjQwODMgMzIuMjgzMyAyNy41IDMyIDI3LjVIMjhaTTE2IDIzLjVDMTUuNzE2NyAyMy41IDE1LjQ3NSAyMy40MDgzIDE1LjI3NSAyMy4yMjVDMTUuMDkxNyAyMy4wMjUgMTUgMjIuNzgzMyAxNSAyMi41QzE1IDIyLjIxNjcgMTUuMDkxNyAyMS45ODMzIDE1LjI3NSAyMS44QzE1LjQ3NSAyMS42IDE1LjcxNjcgMjEuNSAxNiAyMS41QzE2LjI4MzMgMjEuNSAxNi41MTY3IDIxLjYgMTYuNyAyMS44QzE2LjkgMjEuOTgzMyAxNyAyMi4yMTY3IDE3IDIyLjVDMTcgMjIuNzgzMyAxNi45IDIzLjAyNSAxNi43IDIzLjIyNUMxNi41MTY3IDIzLjQwODMgMTYuMjgzMyAyMy41IDE2IDIzLjVaTTI0IDI3LjVDMjMuNzE2NyAyNy41IDIzLjQ3NSAyNy40MDgzIDIzLjI3NSAyNy4yMjVDMjMuMDkxNyAyNy4wMjUgMjMgMjYuNzgzMyAyMyAyNi41QzIzIDI2LjIxNjcgMjMuMDkxNyAyNS45ODMzIDIzLjI3NSAyNS44QzIzLjQ3NSAyNS42IDIzLjcxNjcgMjUuNSAyNCAyNS41QzI0LjI4MzMgMjUuNSAyNC41MTY3IDI1LjYgMjQuNyAyNS44QzI0LjkgMjUuOTgzMyAyNSAyNi4yMTY3IDI1IDI2LjVDMjUgMjYuNzgzMyAyNC45IDI3LjAyNSAyNC43IDI3LjIyNUMyNC41MTY3IDI3LjQwODMgMjQuMjgzMyAyNy41IDI0IDI3LjVaIiBmaWxsPSJibGFjayIvPgogIDxwYXRoIGQ9Ik0xOS4yNzUgMjMuMjI1QzE5LjQ3NSAyMy40MDgzIDE5LjcxNjcgMjMuNSAyMCAyMy41SDIzQzIzLjI4MzMgMjMuNSAyMy41MTY3IDIzLjQwODMgMjMuNyAyMy4yMjVDMjMuOSAyMy4wMjUgMjQgMjIuNzgzMyAyNCAyMi41QzI0IDIyLjIxNjcgMjMuOSAyMS45ODMzIDIzLjcgMjEuOEMyMy41MTY3IDIxLjYgMjMuMjgzMyAyMS41IDIzIDIxLjVIMjBDMTkuNzE2NyAyMS41IDE5LjQ3NSAyMS42IDE5LjI3NSAyMS44QzE5LjA5MTcgMjEuOTgzMyAxOSAyMi4yMTY3IDE5IDIyLjVDMTkgMjIuNzgzMyAxOS4wOTE3IDIzLjAyNSAxOS4yNzUgMjMuMjI1WiIgZmlsbD0iYmxhY2siLz4KICA8cGF0aCBkPSJNMjYuMjc1IDIzLjIyNUMyNi40NzUgMjMuNDA4MyAyNi43MTY3IDIzLjUgMjcgMjMuNUgzMEMzMC4yODMzIDIzLjUgMzAuNTE2NyAyMy40MDgzIDMwLjcgMjMuMjI1QzMwLjkgMjMuMDI1IDMxIDIyLjc4MzMgMzEgMjIuNUMzMSAyMi4yMTY3IDMwLjkgMjEuOTgzMyAzMC43IDIxLjhDMzAuNTE2NyAyMS42IDMwLjI4MzMgMjEuNSAzMCAyMS41SDI3QzI2LjcxNjcgMjEuNSAyNi40NzUgMjEuNiAyNi4yNzUgMjEuOEMyNi4wOTE3IDIxLjk4MzMgMjYgMjIuMjE2NyAyNiAyMi41QzI2IDIyLjc4MzMgMjYuMDkxNyAyMy4wMjUgMjYuMjc1IDIzLjIyNVoiIGZpbGw9ImJsYWNrIi8+Cjwvc3ZnPg=="
}
}