@ema.co/mcp-toolkit 2026.3.25-4 → 2026.4.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/dist/auth/login.js +1 -1
  2. package/dist/config/profile.js +1 -1
  3. package/dist/config/tool-guidance.js +7 -3
  4. package/dist/knowledge/extractors/openapi-endpoints.js +160 -2
  5. package/dist/knowledge/guidance-cache.js +4 -3
  6. package/dist/knowledge/search-client.js +57 -47
  7. package/dist/knowledge/search-config.js +2 -1
  8. package/dist/mcp/handlers/config/index.js +124 -8
  9. package/dist/mcp/handlers/feedback/index.js +32 -0
  10. package/dist/mcp/handlers/feedback/store.js +4 -0
  11. package/dist/mcp/handlers/knowledge/confidence-loop.js +10 -5
  12. package/dist/mcp/handlers/knowledge/index.js +25 -7
  13. package/dist/mcp/handlers/knowledge/outcome-feedback.js +205 -0
  14. package/dist/mcp/handlers/knowledge/session-state.js +110 -0
  15. package/dist/mcp/handlers/workflow/deploy.js +33 -0
  16. package/dist/mcp/knowledge-guidance-topics.js +25 -1
  17. package/dist/mcp/knowledge.js +1 -1
  18. package/dist/mcp/resources-dynamic.js +3 -3
  19. package/dist/mcp/tools.js +15 -3
  20. package/dist/sdk/generated/agent-catalog.js +8 -4
  21. package/dist/sdk/generated/deprecated-actions.js +19 -19
  22. package/dist/sdk/generated/proto-fields.js +1 -1
  23. package/dist/sdk/generated/protos/service/agent_qa/v1/agent_qa_pb.js +223 -15
  24. package/dist/sdk/generated/protos/service/common/v1/common_pb.js +51 -1
  25. package/dist/sdk/generated/protos/service/conversation_review/v1/conversation_review_pb.js +63 -16
  26. package/dist/sdk/generated/protos/service/dataingest/v1/dataingest_pb.js +65 -9
  27. package/dist/sdk/generated/protos/service/eval-tool/v1/evaluation_pb.js +114 -1
  28. package/dist/sdk/generated/protos/service/eval-tool/v1/testbed_pb.js +1 -1
  29. package/dist/sdk/generated/protos/service/external_access_service/v1/external_bot_pb.js +5 -1
  30. package/dist/sdk/generated/protos/service/external_tool_connection/v1/connection_manager_pb.js +114 -35
  31. package/dist/sdk/generated/protos/service/external_tool_connection/v1/ema_connector_pb.js +120 -0
  32. package/dist/sdk/generated/protos/service/identity/v1/identity_pb.js +188 -0
  33. package/dist/sdk/generated/protos/service/llmservice/v1/llmservice_pb.js +41 -2
  34. package/dist/sdk/generated/protos/service/permissions/permissions_pb.js +327 -24
  35. package/dist/sdk/generated/protos/service/persona/v1/chatbot_pb.js +41 -3
  36. package/dist/sdk/generated/protos/service/persona/v1/persona_config_pb.js +141 -89
  37. package/dist/sdk/generated/protos/service/persona/v1/persona_pb.js +283 -133
  38. package/dist/sdk/generated/protos/service/persona/v1/shared_widgets/widget_types_pb.js +24 -3
  39. package/dist/sdk/generated/protos/service/persona/v1/voicebot_widgets/widget_types_pb.js +114 -14
  40. package/dist/sdk/generated/protos/service/proposal/v1/proposal_pb.js +57 -1
  41. package/dist/sdk/generated/protos/service/script_executor/v1/script_executor_pb.js +96 -0
  42. package/dist/sdk/generated/protos/service/transform/v1/transform_pb.js +19 -1
  43. package/dist/sdk/generated/protos/service/user/v1/user_pb.js +1 -1
  44. package/dist/sdk/generated/protos/service/voice/v1/external_voice_pb.js +132 -0
  45. package/dist/sdk/generated/protos/service/voice/v1/voice_pb.js +1 -1
  46. package/dist/sdk/generated/protos/service/webcrawl/v1/webcrawl_pb.js +7 -2
  47. package/dist/sdk/generated/protos/service/workflows/v1/action_registry_pb.js +86 -49
  48. package/dist/sdk/generated/protos/service/workflows/v1/action_runner_pb.js +12 -7
  49. package/dist/sdk/generated/protos/service/workflows/v1/action_type_pb.js +27 -17
  50. package/dist/sdk/generated/protos/service/workflows/v1/agentic_search_pb.js +27 -0
  51. package/dist/sdk/generated/protos/service/workflows/v1/chatbot_pb.js +30 -21
  52. package/dist/sdk/generated/protos/service/workflows/v1/dashboards_pb.js +35 -13
  53. package/dist/sdk/generated/protos/service/workflows/v1/embedded_persona_runner_pb.js +6 -1
  54. package/dist/sdk/generated/protos/service/workflows/v1/external_actions_pb.js +19 -1
  55. package/dist/sdk/generated/protos/service/workflows/v1/log_type_pb.js +6 -1
  56. package/dist/sdk/generated/protos/service/workflows/v1/rpc/workflow_rpc_pb.js +71 -14
  57. package/dist/sdk/generated/protos/service/workflows/v1/values_pb.js +8 -2
  58. package/dist/sdk/generated/protos/service/workflows/v1/well_known_pb.js +2 -1
  59. package/dist/sdk/generated/protos/service/workflows/v1/workflow_pb.js +31 -16
  60. package/dist/sdk/generated/template-fallbacks.js +1 -1
  61. package/dist/sdk/generated/well-known-types.js +4 -1
  62. package/package.json +1 -1
@@ -2,12 +2,13 @@
2
2
  // @generated from file service/agent_qa/v1/agent_qa.proto (package agent_qa.v1, syntax proto3)
3
3
  /* eslint-disable */
4
4
  import { enumDesc, fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
5
- import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
5
+ import { file_google_protobuf_struct, file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
6
6
  import { file_service_feedback_v1_feedback } from "../../feedback/v1/feedback_pb.js";
7
+ import { file_service_workflows_v1_workflow } from "../../workflows/v1/workflow_pb.js";
7
8
  /**
8
9
  * Describes the file service/agent_qa/v1/agent_qa.proto.
9
10
  */
10
- export const file_service_agent_qa_v1_agent_qa = /*@__PURE__*/ fileDesc("CiJzZXJ2aWNlL2FnZW50X3FhL3YxL2FnZW50X3FhLnByb3RvEgthZ2VudF9xYS52MSLoAQoOUnVsZURlZmluaXRpb24SDAoEbmFtZRgBIAEoCRIQCghjYXRlZ29yeRgCIAEoCRIRCgl3ZWlnaHRhZ2UYAyABKAISMQoLY3JpdGljYWxpdHkYBCABKA4yHC5hZ2VudF9xYS52MS5SdWxlQ3JpdGljYWxpdHkSLQoJbWVjaGFuaXNtGAUgASgOMhouYWdlbnRfcWEudjEuUnVsZU1lY2hhbmlzbRIdChVwYXNzX2ZhaWxfaW5zdHJ1Y3Rpb24YBiABKAkSIgoabm90X2FwcGxpY2FibGVfaW5zdHJ1Y3Rpb24YByABKAkiRAoWQXV0b0xlYXJuUnVsZXNMb2dFbnRyeRIKCgJ0cxgBIAEoCRIRCglpdGVyYXRpb24YAiABKAUSCwoDbXNnGAMgASgJImEKHEF1dG9MZWFyblJ1bGVzUnVsZURlZmluaXRpb24SLwoKZGVmaW5pdGlvbhgBIAEoCzIbLmFnZW50X3FhLnYxLlJ1bGVEZWZpbml0aW9uEhAKCGFjY3VyYWN5GAIgASgCIl0KIUF1dG9MZWFyblJ1bGVzSXRlcmF0aW9uRXZhbHVhdGlvbhIYChBvdmVyYWxsX2FjY3VyYWN5GAEgASgCEh4KFml0ZXJhdGlvbl90aW1lX3NlY29uZHMYAiABKAIinQEKHUF1dG9MZWFyblJ1bGVzSXRlcmF0aW9uUmVzdWx0EkIKCmV2YWx1YXRpb24YASABKAsyLi5hZ2VudF9xYS52MS5BdXRvTGVhcm5SdWxlc0l0ZXJhdGlvbkV2YWx1YXRpb24SOAoFcnVsZXMYAiADKAsyKS5hZ2VudF9xYS52MS5BdXRvTGVhcm5SdWxlc1J1bGVEZWZpbml0aW9uIkcKFUF1dG9MZWFyblJ1bGVzU3VtbWFyeRIWCg5maW5hbF9hY2N1cmFjeRgBIAEoAhIWCg5iZXN0X2l0ZXJhdGlvbhgCIAEoBSLxAQoUQXV0b0xlYXJuUnVsZXNPdXRwdXQSMwoHc3VtbWFyeRgBIAEoCzIiLmFnZW50X3FhLnYxLkF1dG9MZWFyblJ1bGVzU3VtbWFyeRJFCgppdGVyYXRpb25zGAIgAygLMjEuYWdlbnRfcWEudjEuQXV0b0xlYXJuUnVsZXNPdXRwdXQuSXRlcmF0aW9uc0VudHJ5Gl0KD0l0ZXJhdGlvbnNFbnRyeRILCgNrZXkYASABKAkSOQoFdmFsdWUYAiABKAsyKi5hZ2VudF9xYS52MS5BdXRvTGVhcm5SdWxlc0l0ZXJhdGlvblJlc3VsdDoCOAEitwIKEUF1dG9MZWFyblJ1bGVzUnVuEhIKCnBlcnNvbmFfaWQYASABKAkSNwoFc3RhdGUYAiABKA4yKC5hZ2VudF9xYS52MS5BdXRvTGVhcm5SdWxlc1BpcGVsaW5lU3RhdGUSDQoFZXJyb3IYAyABKAkSMQoEbG9ncxgEIAMoCzIjLmFnZW50X3FhLnYxLkF1dG9MZWFyblJ1bGVzTG9nRW50cnkSMQoGb3V0cHV0GAUgASgLMiEuYWdlbnRfcWEudjEuQXV0b0xlYXJuUnVsZXNPdXRwdXQSEgoKc3RhcnRlZF9hdBgGIAEoCRIUCgxjb21wbGV0ZWRfYXQYByABKAkSHAoUY29tcGxldGVkX2l0ZXJhdGlvbnMYCCABKAUSGAoQdG90YWxfaXRlcmF0aW9ucxgJIAEoBSIlCgdSdWxlUmVmEhoKEndvcmtmbG93X3J1bGVfbmFtZRgBIAEoCSJfCgRSdWxlEiYKCHJ1bGVfcmVmGAEgASgLMhQuYWdlbnRfcWEudjEuUnVsZVJlZhIvCgpkZWZpbml0aW9uGAIgASgLMhsuYWdlbnRfcWEudjEuUnVsZURlZmluaXRpb24iXgocTGVhcm5SdWxlSW5zdHJ1Y3Rpb25zUmVxdWVzdBISCgpwZXJzb25hX2lkGAEgASgJEhgKEG9wdGltaXplX2Z1cnRoZXIYAiABKAgSEAoIaXNfcmV0cnkYAyABKAgiTAodTGVhcm5SdWxlSW5zdHJ1Y3Rpb25zUmVzcG9uc2USKwoDcnVuGAEgASgLMh4uYWdlbnRfcWEudjEuQXV0b0xlYXJuUnVsZXNSdW4iOwolR2V0TGVhcm5SdWxlSW5zdHJ1Y3Rpb25zU3RhdHVzUmVxdWVzdBISCgpwZXJzb25hX2lkGAEgASgJIlUKJkdldExlYXJuUnVsZUluc3RydWN0aW9uc1N0YXR1c1Jlc3BvbnNlEisKA3J1bhgBIAEoCzIeLmFnZW50X3FhLnYxLkF1dG9MZWFyblJ1bGVzUnVuIjgKIkdldEF1dG9MZWFybmluZ1dpZGdldFN0YXR1c1JlcXVlc3QSEgoKcGVyc29uYV9pZBgBIAEoCSJeCiNHZXRBdXRvTGVhcm5pbmdXaWRnZXRTdGF0dXNSZXNwb25zZRI3CgVzdGF0ZRgBIAEoDjIoLmFnZW50X3FhLnYxLkF1dG9MZWFyblJ1bGVzUGlwZWxpbmVTdGF0ZSI1Ch9PcHRpbWl6ZVJ1bGVJbnN0cnVjdGlvbnNSZXF1ZXN0EhIKCnBlcnNvbmFfaWQYASABKAkiTwogT3B0aW1pemVSdWxlSW5zdHJ1Y3Rpb25zUmVzcG9uc2USKwoDcnVuGAEgASgLMh4uYWdlbnRfcWEudjEuQXV0b0xlYXJuUnVsZXNSdW4iOQojRGlzY2FyZExlYXJuUnVsZUluc3RydWN0aW9uc1JlcXVlc3QSEgoKcGVyc29uYV9pZBgBIAEoCSI5CiREaXNjYXJkTGVhcm5SdWxlSW5zdHJ1Y3Rpb25zUmVzcG9uc2USEQoJZGlzY2FyZGVkGAEgASgIIr8DCh1VcHNlcnRBZ2VudEludGVyYWN0aW9uUmVxdWVzdBIPCgdmaWxlX2lkGAEgASgJEhAKCGFnZW50X2lkGAIgASgJEhMKC3Jlc291cmNlX2lkGAMgASgJEhIKCnBlcnNvbmFfaWQYBCABKAkSTAoMcmVxdWVzdF90eXBlGAUgASgOMjYuYWdlbnRfcWEudjEuVXBzZXJ0QWdlbnRJbnRlcmFjdGlvblJlcXVlc3QuUmVxdWVzdFR5cGUSDQoFZXJyb3IYBiABKAkSMgoOY2FsbF90aW1lc3RhbXAYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKC2FnZW50X2VtYWlsGAggASgJEhQKDGFnZW50X3RlbnVyZRgJIAEoBRIPCgdjYXNlX2lkGAogASgJIoQBCgtSZXF1ZXN0VHlwZRIcChhSRVFVRVNUX1RZUEVfVU5TUEVDSUZJRUQQABIqCiZSRVFVRVNUX1RZUEVfSU5TRVJUX0lOVEVSQUNUSU9OX1JFQ09SRBABEisKJ1JFUVVFU1RfVFlQRV9NQVJLX0lOVEVSQUNUSU9OX0FTX0ZBSUxFRBACIiAKHlVwc2VydEFnZW50SW50ZXJhY3Rpb25SZXNwb25zZSKwAQoVVHJpZ2dlckFnZW50UUFSZXF1ZXN0Eg8KB2ZpbGVfaWQYASABKAkSFQoNdHJhbnNjcmlwdGlvbhgCIAEoCRIQCghhZ2VudF9pZBgDIAEoCRITCgtyZXNvdXJjZV9pZBgEIAEoCRI0Cg9zaWxlbmNlX21ldHJpY3MYBSABKAsyGy5hZ2VudF9xYS52MS5TaWxlbmNlTWV0cmljcxISCgpwZXJzb25hX2lkGAYgASgJIm0KDlNpbGVuY2VNZXRyaWNzEhcKD2FnZW50X3RhbGtfdGltZRgBIAEoAhIWCg51c2VyX3RhbGtfdGltZRgCIAEoAhIQCghkZWFkX2FpchgDIAEoAhIYChB0b3RhbF9hdWRpb190aW1lGAQgASgCIjEKFlRyaWdnZXJBZ2VudFFBUmVzcG9uc2USFwoPd29ya2Zsb3dfcnVuX2lkGAEgASgJInAKI0FwcHJvdmVMZWFyblJ1bGVJbnN0cnVjdGlvbnNSZXF1ZXN0EhIKCnBlcnNvbmFfaWQYASABKAkSNQoQcnVsZV9kZWZpbml0aW9ucxgCIAMoCzIbLmFnZW50X3FhLnYxLlJ1bGVEZWZpbml0aW9uIk8KJEFwcHJvdmVMZWFyblJ1bGVJbnN0cnVjdGlvbnNSZXNwb25zZRInCglydWxlX3JlZnMYASADKAsyFC5hZ2VudF9xYS52MS5SdWxlUmVmIl8KEkNyZWF0ZVJ1bGVzUmVxdWVzdBISCgpwZXJzb25hX2lkGAEgASgJEjUKEHJ1bGVfZGVmaW5pdGlvbnMYAiADKAsyGy5hZ2VudF9xYS52MS5SdWxlRGVmaW5pdGlvbiI+ChNDcmVhdGVSdWxlc1Jlc3BvbnNlEicKCXJ1bGVfcmVmcxgBIAMoCzIULmFnZW50X3FhLnYxLlJ1bGVSZWYiJgoQTGlzdFJ1bGVzUmVxdWVzdBISCgpwZXJzb25hX2lkGAEgASgJIjUKEUxpc3RSdWxlc1Jlc3BvbnNlEiAKBXJ1bGVzGAEgAygLMhEuYWdlbnRfcWEudjEuUnVsZSJKChJVcGRhdGVSdWxlc1JlcXVlc3QSEgoKcGVyc29uYV9pZBgBIAEoCRIgCgVydWxlcxgCIAMoCzIRLmFnZW50X3FhLnYxLlJ1bGUiPgoTVXBkYXRlUnVsZXNSZXNwb25zZRInCglydWxlX3JlZnMYASADKAsyFC5hZ2VudF9xYS52MS5SdWxlUmVmIlEKEkRlbGV0ZVJ1bGVzUmVxdWVzdBISCgpwZXJzb25hX2lkGAEgASgJEicKCXJ1bGVfcmVmcxgCIAMoCzIULmFnZW50X3FhLnYxLlJ1bGVSZWYiFQoTRGVsZXRlUnVsZXNSZXNwb25zZSLRAgoaUUFUcmFuc2NyaXB0RXZhbHVhdGlvblNvcnQSQAoFZmllbGQYASABKA4yMS5hZ2VudF9xYS52MS5RQVRyYW5zY3JpcHRFdmFsdWF0aW9uU29ydC5Tb3J0RmllbGQSQAoFb3JkZXIYAiABKA4yMS5hZ2VudF9xYS52MS5RQVRyYW5zY3JpcHRFdmFsdWF0aW9uU29ydC5Tb3J0T3JkZXIiXQoJU29ydEZpZWxkEhoKFlNPUlRfRklFTERfVU5TUEVDSUZJRUQQABIaChZTT1JUX0ZJRUxEX0NBTExfTEVOR1RIEAESGAoUU09SVF9GSUVMRF9DQUxMX0RBVEUQAiJQCglTb3J0T3JkZXISGgoWU09SVF9PUkRFUl9VTlNQRUNJRklFRBAAEhIKDlNPUlRfT1JERVJfQVNDEAESEwoPU09SVF9PUkRFUl9ERVNDEAIi+QIKHVFBVHJhbnNjcmlwdEV2YWx1YXRpb25GaWx0ZXJzEiAKGHJlc291cmNlX2lkX3NlYXJjaF9xdWVyeRgBIAEoCRIdChVhZ2VudF9pZF9zZWFyY2hfcXVlcnkYAiABKAkSLQoGc3RhdHVzGAMgASgOMh0uYWdlbnRfcWEudjEuRXZhbHVhdGlvblN0YXR1cxIaCg1xYV9zY29yZV9mcm9tGAQgASgCSACIAQESGAoLcWFfc2NvcmVfdG8YBSABKAJIAYgBARIZCgxoYXNfZmVlZGJhY2sYBiABKAhIAogBARIyCg5jYWxsX2RhdGVfZnJvbRgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMAoMY2FsbF9kYXRlX3RvGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIQCg5fcWFfc2NvcmVfZnJvbUIOCgxfcWFfc2NvcmVfdG9CDwoNX2hhc19mZWVkYmFjayLUAQohR2V0UUFUcmFuc2NyaXB0RXZhbHVhdGlvbnNSZXF1ZXN0EhIKCnBlcnNvbmFfaWQYASABKAkSOwoHZmlsdGVycxgCIAEoCzIqLmFnZW50X3FhLnYxLlFBVHJhbnNjcmlwdEV2YWx1YXRpb25GaWx0ZXJzEjUKBHNvcnQYAyABKAsyJy5hZ2VudF9xYS52MS5RQVRyYW5zY3JpcHRFdmFsdWF0aW9uU29ydBINCgVsaW1pdBgEIAEoDRIYChBwYWdpbmF0aW9uX3Rva2VuGAUgASgJIooCCh1RQVRyYW5zY3JpcHRFdmFsdWF0aW9uU3VtbWFyeRIXCg93b3JrZmxvd19ydW5faWQYASABKAkSDwoHZmlsZV9pZBgCIAEoCRITCgtyZXNvdXJjZV9pZBgDIAEoCRIQCghhZ2VudF9pZBgEIAEoCRIQCghkdXJhdGlvbhgFIAEoAhItCgZzdGF0dXMYBiABKA4yHS5hZ2VudF9xYS52MS5FdmFsdWF0aW9uU3RhdHVzEhAKCHFhX3Njb3JlGAcgASgCEi0KCWNhbGxfZGF0ZRgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFgoOZmVlZGJhY2tfY291bnQYCSABKAUipgEKIkdldFFBVHJhbnNjcmlwdEV2YWx1YXRpb25zUmVzcG9uc2USOQoFaXRlbXMYASADKAsyKi5hZ2VudF9xYS52MS5RQVRyYW5zY3JpcHRFdmFsdWF0aW9uU3VtbWFyeRIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkSFwoPcHJldl9wYWdlX3Rva2VuGAMgASgJEhMKC3RvdGFsX2NvdW50GAQgASgFIlYKJ0dldFFBVHJhbnNjcmlwdEV2YWx1YXRpb25EZXRhaWxzUmVxdWVzdBIXCg93b3JrZmxvd19ydW5faWQYASABKAkSEgoKcGVyc29uYV9pZBgCIAEoCSKCAwoWUnVsZUV2YWx1YXRpb25GZWVkYmFjaxIKCgJpZBgHIAEoCRInCgR0eXBlGAEgASgOMhkuZmVlZGJhY2sudjEuRmVlZGJhY2tUeXBlEg8KB2NvbnRlbnQYAiABKAkSEwoLcmV2aWV3ZXJfaWQYAyABKAkSFgoOcmV2aWV3ZXJfZW1haWwYBCABKAkSLgoKY3JlYXRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEwoLcmVzb3VyY2VfaWQYCCABKAkSFwoPd29ya2Zsb3dfcnVuX2lkGAkgASgJEisKBnN0YXR1cxgKIAEoDjIbLmZlZWRiYWNrLnYxLkZlZWRiYWNrU3RhdHVzEiEKFGFkbWluX3Jldmlld2VyX2VtYWlsGAsgASgJSACIAQFCFwoVX2FkbWluX3Jldmlld2VyX2VtYWlsIrACCg5SdWxlRXZhbHVhdGlvbhIKCgJpZBgJIAEoCRIRCglydWxlX25hbWUYASABKAkSFQoNcnVsZV9jYXRlZ29yeRgCIAEoCRIdChVwYXNzX2ZhaWxfaW5zdHJ1Y3Rpb24YAyABKAkSIgoabm90X2FwcGxpY2FibGVfaW5zdHJ1Y3Rpb24YBCABKAkSMQoGcmVzdWx0GAUgASgOMiEuYWdlbnRfcWEudjEuUnVsZUV2YWx1YXRpb25SZXN1bHQSEQoJcmF0aW9uYWxlGAYgASgJEhQKCHZlcmJhdGltGAcgASgJQgIYARI2CglmZWVkYmFja3MYCCADKAsyIy5hZ2VudF9xYS52MS5SdWxlRXZhbHVhdGlvbkZlZWRiYWNrEhEKCXZlcmJhdGltcxgKIAMoCSJYCh9RQVRyYW5zY3JpcHRFdmFsdWF0aW9uU2NvcmVjYXJkEjUKEHJ1bGVfZXZhbHVhdGlvbnMYASADKAsyGy5hZ2VudF9xYS52MS5SdWxlRXZhbHVhdGlvbiLeAQoTUUFUcmFuc2NyaXB0TWVzc2FnZRIPCgdtZXNzYWdlGAEgASgJEjoKBHJvbGUYAiABKA4yLC5hZ2VudF9xYS52MS5RQVRyYW5zY3JpcHRNZXNzYWdlLk1lc3NhZ2VSb2xlEg0KBXN0YXJ0GAMgASgCEgsKA2VuZBgEIAEoAiJaCgtNZXNzYWdlUm9sZRIcChhNRVNTQUdFX1JPTEVfVU5TUEVDSUZJRUQQABIVChFNRVNTQUdFX1JPTEVfVVNFUhABEhYKEk1FU1NBR0VfUk9MRV9BR0VOVBACOgIYASJOChRRQVRyYW5zY3JpcHRNZXNzYWdlcxIyCghtZXNzYWdlcxgBIAMoCzIgLmFnZW50X3FhLnYxLlFBVHJhbnNjcmlwdE1lc3NhZ2U6AhgBIocBChJQZXJmb3JtYW5jZUluc2lnaHQSEQoFdGl0bGUYAiABKAlCAhgBEhMKB2luc2lnaHQYAyABKAlCAhgBEhAKCGNhdGVnb3J5GAEgASgJEg4KBmRyaXZlchgEIAEoCRIVCg1qdXN0aWZpY2F0aW9uGAUgASgJEhAKCHZlcmJhdGltGAYgASgJIqYDCihHZXRRQVRyYW5zY3JpcHRFdmFsdWF0aW9uRGV0YWlsc1Jlc3BvbnNlEhMKC3Jlc291cmNlX2lkGAEgASgJEhAKCGFnZW50X2lkGAIgASgJEi0KBnN0YXR1cxgDIAEoDjIdLmFnZW50X3FhLnYxLkV2YWx1YXRpb25TdGF0dXMSEAoIcWFfc2NvcmUYBCABKAISLQoJY2FsbF9kYXRlGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI/CglzY29yZWNhcmQYBiABKAsyLC5hZ2VudF9xYS52MS5RQVRyYW5zY3JpcHRFdmFsdWF0aW9uU2NvcmVjYXJkEjkKCnRyYW5zY3JpcHQYByABKAsyIS5hZ2VudF9xYS52MS5RQVRyYW5zY3JpcHRNZXNzYWdlc0ICGAESMgoJc3RyZW5ndGhzGAggAygLMh8uYWdlbnRfcWEudjEuUGVyZm9ybWFuY2VJbnNpZ2h0EjMKCndlYWtuZXNzZXMYCSADKAsyHy5hZ2VudF9xYS52MS5QZXJmb3JtYW5jZUluc2lnaHQilwEKJkNyZWF0ZUZlZWRiYWNrRm9yUnVsZUV2YWx1YXRpb25SZXF1ZXN0EhIKCnBlcnNvbmFfaWQYASABKAkSFgoOcnVsZV9yZXN1bHRfaWQYAiABKAkSMAoNZmVlZGJhY2tfdHlwZRgDIAEoDjIZLmZlZWRiYWNrLnYxLkZlZWRiYWNrVHlwZRIPCgdjb250ZW50GAQgASgJImAKJ0NyZWF0ZUZlZWRiYWNrRm9yUnVsZUV2YWx1YXRpb25SZXNwb25zZRI1CghmZWVkYmFjaxgBIAEoCzIjLmFnZW50X3FhLnYxLlJ1bGVFdmFsdWF0aW9uRmVlZGJhY2siSQoiR2V0QXBwcm92ZWRGZWVkYmFja3NGb3JSdWxlUmVxdWVzdBISCgpwZXJzb25hX2lkGAEgASgJEg8KB3J1bGVfaWQYAiABKAkiXQojR2V0QXBwcm92ZWRGZWVkYmFja3NGb3JSdWxlUmVzcG9uc2USNgoJZmVlZGJhY2tzGAEgAygLMiMuYWdlbnRfcWEudjEuUnVsZUV2YWx1YXRpb25GZWVkYmFjayJBChZBcHByb3ZlRmVlZGJhY2tSZXF1ZXN0EhIKCnBlcnNvbmFfaWQYASABKAkSEwoLZmVlZGJhY2tfaWQYAiABKAkiGQoXQXBwcm92ZUZlZWRiYWNrUmVzcG9uc2UiQAoVSWdub3JlRmVlZGJhY2tSZXF1ZXN0EhIKCnBlcnNvbmFfaWQYASABKAkSEwoLZmVlZGJhY2tfaWQYAiABKAkiGAoWSWdub3JlRmVlZGJhY2tSZXNwb25zZSKDAQoVVXBkYXRlRmVlZGJhY2tSZXF1ZXN0EhIKCnBlcnNvbmFfaWQYASABKAkSEwoLZmVlZGJhY2tfaWQYAiABKAkSMAoNZmVlZGJhY2tfdHlwZRgDIAEoDjIZLmZlZWRiYWNrLnYxLkZlZWRiYWNrVHlwZRIPCgdjb250ZW50GAQgASgJIk8KFlVwZGF0ZUZlZWRiYWNrUmVzcG9uc2USNQoIZmVlZGJhY2sYASABKAsyIy5hZ2VudF9xYS52MS5SdWxlRXZhbHVhdGlvbkZlZWRiYWNrIkAKFURlbGV0ZUZlZWRiYWNrUmVxdWVzdBISCgpwZXJzb25hX2lkGAEgASgJEhMKC2ZlZWRiYWNrX2lkGAIgASgJIhgKFkRlbGV0ZUZlZWRiYWNrUmVzcG9uc2UilAEKGEdldFVuaXF1ZUFnZW50SWRzUmVxdWVzdBISCgpwZXJzb25hX2lkGAEgASgJEjIKDmNhbGxfZGF0ZV9mcm9tGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIwCgxjYWxsX2RhdGVfdG8YAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIi4KGUdldFVuaXF1ZUFnZW50SWRzUmVzcG9uc2USEQoJYWdlbnRfaWRzGAEgAygJIlYKCkluc2lnaHRSb3cSDgoGZHJpdmVyGAEgASgJEhAKCGNhdGVnb3J5GAIgASgJEhEKCXZlcmJhdGltcxgDIAMoCRITCgt0b3RhbF9jb3VudBgEIAEoBSK5AQoTTGlzdEluc2lnaHRzUmVxdWVzdBISCgpwZXJzb25hX2lkGAEgASgJEhEKCWFnZW50X2lkcxgCIAMoCRIyCg5jYWxsX2RhdGVfZnJvbRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMAoMY2FsbF9kYXRlX3RvGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIVCg1tYXhfdmVyYmF0aW1zGAUgASgFIvIBChRMaXN0SW5zaWdodHNSZXNwb25zZRJTChBpbnNpZ2h0c19ieV90eXBlGAEgAygLMjUuYWdlbnRfcWEudjEuTGlzdEluc2lnaHRzUmVzcG9uc2UuSW5zaWdodHNCeVR5cGVFbnRyeUICGAESMwoPaW5zaWdodHNfZ3JvdXBzGAIgAygLMhouYWdlbnRfcWEudjEuSW5zaWdodHNHcm91cBpQChNJbnNpZ2h0c0J5VHlwZUVudHJ5EgsKA2tleRgBIAEoCRIoCgV2YWx1ZRgCIAEoCzIZLmFnZW50X3FhLnYxLkluc2lnaHRzTGlzdDoCOAEiZAoNSW5zaWdodHNHcm91cBImCgR0eXBlGAEgASgOMhguYWdlbnRfcWEudjEuSW5zaWdodFR5cGUSKwoIaW5zaWdodHMYAiABKAsyGS5hZ2VudF9xYS52MS5JbnNpZ2h0c0xpc3QiNgoMSW5zaWdodHNMaXN0EiYKBWl0ZW1zGAEgAygLMhcuYWdlbnRfcWEudjEuSW5zaWdodFJvdyL6AQoZTGlzdEluc2lnaHREZXRhaWxzUmVxdWVzdBISCgpwZXJzb25hX2lkGAEgASgJEi4KDGluc2lnaHRfdHlwZRgCIAEoDjIYLmFnZW50X3FhLnYxLkluc2lnaHRUeXBlEhEKCWFnZW50X2lkcxgDIAMoCRIyCg5jYWxsX2RhdGVfZnJvbRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMAoMY2FsbF9kYXRlX3RvGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIOCgZkcml2ZXIYBiABKAkSEAoIY2F0ZWdvcnkYByABKAkicgoOSW5zaWdodERldGFpbHMSFwoPd29ya2Zsb3dfcnVuX2lkGAEgASgJEhAKCGFnZW50X2lkGAIgASgJEgwKBHVjaWQYAyABKAkSEAoIdmVyYmF0aW0YBCABKAkSFQoNanVzdGlmaWNhdGlvbhgFIAEoCSJZChpMaXN0SW5zaWdodERldGFpbHNSZXNwb25zZRIPCgdzdW1tYXJ5GAEgASgJEioKBWl0ZW1zGAIgAygLMhsuYWdlbnRfcWEudjEuSW5zaWdodERldGFpbHMqywQKG0F1dG9MZWFyblJ1bGVzUGlwZWxpbmVTdGF0ZRIvCitBVVRPX0xFQVJOX1JVTEVTX1BJUEVMSU5FX1NUQVRFX1VOU1BFQ0lGSUVEEAASKgomQVVUT19MRUFSTl9SVUxFU19QSVBFTElORV9TVEFURV9RVUVVRUQQARIrCidBVVRPX0xFQVJOX1JVTEVTX1BJUEVMSU5FX1NUQVRFX1JVTk5JTkcQAhItCilBVVRPX0xFQVJOX1JVTEVTX1BJUEVMSU5FX1NUQVRFX0NPTVBMRVRFRBADEioKJkFVVE9fTEVBUk5fUlVMRVNfUElQRUxJTkVfU1RBVEVfRkFJTEVEEAQSOgo2QVVUT19MRUFSTl9SVUxFU19QSVBFTElORV9TVEFURV9JTklUSUFMX01PREVfQ09NUExFVEVEEAcSNgoyQVVUT19MRUFSTl9SVUxFU19QSVBFTElORV9TVEFURV9BQ0NVUkFDWV9DT05WRVJHRUQQCBI3CjNBVVRPX0xFQVJOX1JVTEVTX1BJUEVMSU5FX1NUQVRFX0lOSVRJQUxfTU9ERV9GQUlMRUQQCRI7CjdBVVRPX0xFQVJOX1JVTEVTX1BJUEVMSU5FX1NUQVRFX09QVElNSVpFX0ZVUlRIRVJfRkFJTEVEEAoSLworQVVUT19MRUFSTl9SVUxFU19QSVBFTElORV9TVEFURV9ET0NTX1VQTE9BRBAFEiwKKEFVVE9fTEVBUk5fUlVMRVNfUElQRUxJTkVfU1RBVEVfQVBQUk9WRUQQBip1Cg9SdWxlQ3JpdGljYWxpdHkSIAocUlVMRV9DUklUSUNBTElUWV9VTlNQRUNJRklFRBAAEh0KGVJVTEVfQ1JJVElDQUxJVFlfQ1JJVElDQUwQARIhCh1SVUxFX0NSSVRJQ0FMSVRZX05PTl9DUklUSUNBTBACKq0BCg1SdWxlTWVjaGFuaXNtEh4KGlJVTEVfTUVDSEFOSVNNX1VOU1BFQ0lGSUVEEAASHQoZUlVMRV9NRUNIQU5JU01fVFJBTlNDUklQVBABEjEKLVJVTEVfTUVDSEFOSVNNX1RSQU5TQ1JJUFRfV0lUSF9LTk9XTEVER0VfQkFTRRACEioKJlJVTEVfTUVDSEFOSVNNX1RSQU5TQ1JJUFRfV0lUSF9BQ1RJT05TEAMqlwEKEEV2YWx1YXRpb25TdGF0dXMSIQodRVZBTFVBVElPTl9TVEFUVVNfVU5TUEVDSUZJRUQQABIhCh1FVkFMVUFUSU9OX1NUQVRVU19JTl9QUk9HUkVTUxABEh8KG0VWQUxVQVRJT05fU1RBVFVTX0NPTVBMRVRFRBACEhwKGEVWQUxVQVRJT05fU1RBVFVTX0ZBSUxFRBADKq8BChRSdWxlRXZhbHVhdGlvblJlc3VsdBImCiJSVUxFX0VWQUxVQVRJT05fUkVTVUxUX1VOU1BFQ0lGSUVEEAASIQodUlVMRV9FVkFMVUFUSU9OX1JFU1VMVF9QQVNTRUQQARIhCh1SVUxFX0VWQUxVQVRJT05fUkVTVUxUX0ZBSUxFRBACEikKJVJVTEVfRVZBTFVBVElPTl9SRVNVTFRfTk9UX0FQUExJQ0FCTEUQAyrEAQoLSW5zaWdodFR5cGUSHAoYSU5TSUdIVF9UWVBFX1VOU1BFQ0lGSUVEEAASGgoWSU5TSUdIVF9UWVBFX1NUUkVOR1RIUxABEhsKF0lOU0lHSFRfVFlQRV9XRUFLTkVTU0VTEAISHQoZSU5TSUdIVF9UWVBFX1BST0RVQ1RfQlVHUxADEiEKHUlOU0lHSFRfVFlQRV9QUk9EVUNUX0ZFRURCQUNLEAQSHAoYSU5TSUdIVF9UWVBFX0NPTVBFVElUT1JTEAUyhBQKDkFnZW50UUFTZXJ2aWNlEnMKFlVwc2VydEFnZW50SW50ZXJhY3Rpb24SKi5hZ2VudF9xYS52MS5VcHNlcnRBZ2VudEludGVyYWN0aW9uUmVxdWVzdBorLmFnZW50X3FhLnYxLlVwc2VydEFnZW50SW50ZXJhY3Rpb25SZXNwb25zZSIAElsKDlRyaWdnZXJBZ2VudFFBEiIuYWdlbnRfcWEudjEuVHJpZ2dlckFnZW50UUFSZXF1ZXN0GiMuYWdlbnRfcWEudjEuVHJpZ2dlckFnZW50UUFSZXNwb25zZSIAEnAKFUxlYXJuUnVsZUluc3RydWN0aW9ucxIpLmFnZW50X3FhLnYxLkxlYXJuUnVsZUluc3RydWN0aW9uc1JlcXVlc3QaKi5hZ2VudF9xYS52MS5MZWFyblJ1bGVJbnN0cnVjdGlvbnNSZXNwb25zZSIAEosBCh5HZXRMZWFyblJ1bGVJbnN0cnVjdGlvbnNTdGF0dXMSMi5hZ2VudF9xYS52MS5HZXRMZWFyblJ1bGVJbnN0cnVjdGlvbnNTdGF0dXNSZXF1ZXN0GjMuYWdlbnRfcWEudjEuR2V0TGVhcm5SdWxlSW5zdHJ1Y3Rpb25zU3RhdHVzUmVzcG9uc2UiABKCAQobR2V0QXV0b0xlYXJuaW5nV2lkZ2V0U3RhdHVzEi8uYWdlbnRfcWEudjEuR2V0QXV0b0xlYXJuaW5nV2lkZ2V0U3RhdHVzUmVxdWVzdBowLmFnZW50X3FhLnYxLkdldEF1dG9MZWFybmluZ1dpZGdldFN0YXR1c1Jlc3BvbnNlIgASeQoYT3B0aW1pemVSdWxlSW5zdHJ1Y3Rpb25zEiwuYWdlbnRfcWEudjEuT3B0aW1pemVSdWxlSW5zdHJ1Y3Rpb25zUmVxdWVzdBotLmFnZW50X3FhLnYxLk9wdGltaXplUnVsZUluc3RydWN0aW9uc1Jlc3BvbnNlIgAShQEKHERpc2NhcmRMZWFyblJ1bGVJbnN0cnVjdGlvbnMSMC5hZ2VudF9xYS52MS5EaXNjYXJkTGVhcm5SdWxlSW5zdHJ1Y3Rpb25zUmVxdWVzdBoxLmFnZW50X3FhLnYxLkRpc2NhcmRMZWFyblJ1bGVJbnN0cnVjdGlvbnNSZXNwb25zZSIAEoUBChxBcHByb3ZlTGVhcm5SdWxlSW5zdHJ1Y3Rpb25zEjAuYWdlbnRfcWEudjEuQXBwcm92ZUxlYXJuUnVsZUluc3RydWN0aW9uc1JlcXVlc3QaMS5hZ2VudF9xYS52MS5BcHByb3ZlTGVhcm5SdWxlSW5zdHJ1Y3Rpb25zUmVzcG9uc2UiABJSCgtDcmVhdGVSdWxlcxIfLmFnZW50X3FhLnYxLkNyZWF0ZVJ1bGVzUmVxdWVzdBogLmFnZW50X3FhLnYxLkNyZWF0ZVJ1bGVzUmVzcG9uc2UiABJSCgtVcGRhdGVSdWxlcxIfLmFnZW50X3FhLnYxLlVwZGF0ZVJ1bGVzUmVxdWVzdBogLmFnZW50X3FhLnYxLlVwZGF0ZVJ1bGVzUmVzcG9uc2UiABJSCgtEZWxldGVSdWxlcxIfLmFnZW50X3FhLnYxLkRlbGV0ZVJ1bGVzUmVxdWVzdBogLmFnZW50X3FhLnYxLkRlbGV0ZVJ1bGVzUmVzcG9uc2UiABJMCglMaXN0UnVsZXMSHS5hZ2VudF9xYS52MS5MaXN0UnVsZXNSZXF1ZXN0Gh4uYWdlbnRfcWEudjEuTGlzdFJ1bGVzUmVzcG9uc2UiABJ/ChpHZXRRQVRyYW5zY3JpcHRFdmFsdWF0aW9ucxIuLmFnZW50X3FhLnYxLkdldFFBVHJhbnNjcmlwdEV2YWx1YXRpb25zUmVxdWVzdBovLmFnZW50X3FhLnYxLkdldFFBVHJhbnNjcmlwdEV2YWx1YXRpb25zUmVzcG9uc2UiABKRAQogR2V0UUFUcmFuc2NyaXB0RXZhbHVhdGlvbkRldGFpbHMSNC5hZ2VudF9xYS52MS5HZXRRQVRyYW5zY3JpcHRFdmFsdWF0aW9uRGV0YWlsc1JlcXVlc3QaNS5hZ2VudF9xYS52MS5HZXRRQVRyYW5zY3JpcHRFdmFsdWF0aW9uRGV0YWlsc1Jlc3BvbnNlIgASjgEKH0NyZWF0ZUZlZWRiYWNrRm9yUnVsZUV2YWx1YXRpb24SMy5hZ2VudF9xYS52MS5DcmVhdGVGZWVkYmFja0ZvclJ1bGVFdmFsdWF0aW9uUmVxdWVzdBo0LmFnZW50X3FhLnYxLkNyZWF0ZUZlZWRiYWNrRm9yUnVsZUV2YWx1YXRpb25SZXNwb25zZSIAEoIBChtHZXRBcHByb3ZlZEZlZWRiYWNrc0ZvclJ1bGUSLy5hZ2VudF9xYS52MS5HZXRBcHByb3ZlZEZlZWRiYWNrc0ZvclJ1bGVSZXF1ZXN0GjAuYWdlbnRfcWEudjEuR2V0QXBwcm92ZWRGZWVkYmFja3NGb3JSdWxlUmVzcG9uc2UiABJeCg9BcHByb3ZlRmVlZGJhY2sSIy5hZ2VudF9xYS52MS5BcHByb3ZlRmVlZGJhY2tSZXF1ZXN0GiQuYWdlbnRfcWEudjEuQXBwcm92ZUZlZWRiYWNrUmVzcG9uc2UiABJbCg5JZ25vcmVGZWVkYmFjaxIiLmFnZW50X3FhLnYxLklnbm9yZUZlZWRiYWNrUmVxdWVzdBojLmFnZW50X3FhLnYxLklnbm9yZUZlZWRiYWNrUmVzcG9uc2UiABJbCg5VcGRhdGVGZWVkYmFjaxIiLmFnZW50X3FhLnYxLlVwZGF0ZUZlZWRiYWNrUmVxdWVzdBojLmFnZW50X3FhLnYxLlVwZGF0ZUZlZWRiYWNrUmVzcG9uc2UiABJbCg5EZWxldGVGZWVkYmFjaxIiLmFnZW50X3FhLnYxLkRlbGV0ZUZlZWRiYWNrUmVxdWVzdBojLmFnZW50X3FhLnYxLkRlbGV0ZUZlZWRiYWNrUmVzcG9uc2UiABJVCgxMaXN0SW5zaWdodHMSIC5hZ2VudF9xYS52MS5MaXN0SW5zaWdodHNSZXF1ZXN0GiEuYWdlbnRfcWEudjEuTGlzdEluc2lnaHRzUmVzcG9uc2UiABJnChJMaXN0SW5zaWdodERldGFpbHMSJi5hZ2VudF9xYS52MS5MaXN0SW5zaWdodERldGFpbHNSZXF1ZXN0GicuYWdlbnRfcWEudjEuTGlzdEluc2lnaHREZXRhaWxzUmVzcG9uc2UiABJkChFHZXRVbmlxdWVBZ2VudElkcxIlLmFnZW50X3FhLnYxLkdldFVuaXF1ZUFnZW50SWRzUmVxdWVzdBomLmFnZW50X3FhLnYxLkdldFVuaXF1ZUFnZW50SWRzUmVzcG9uc2UiAEJDWkFnaXRodWIuY29tL0VtYS1VbmxpbWl0ZWQvcHJvdG9zL2dvL3NlcnZpY2UvYWdlbnRfcWEvdjE7YWdlbnRfcWF2MWIGcHJvdG8z", [file_google_protobuf_timestamp, file_service_feedback_v1_feedback]);
11
+ export const file_service_agent_qa_v1_agent_qa = /*@__PURE__*/ fileDesc("CiJzZXJ2aWNlL2FnZW50X3FhL3YxL2FnZW50X3FhLnByb3RvEgthZ2VudF9xYS52MSLoAQoOUnVsZURlZmluaXRpb24SDAoEbmFtZRgBIAEoCRIQCghjYXRlZ29yeRgCIAEoCRIRCgl3ZWlnaHRhZ2UYAyABKAISMQoLY3JpdGljYWxpdHkYBCABKA4yHC5hZ2VudF9xYS52MS5SdWxlQ3JpdGljYWxpdHkSLQoJbWVjaGFuaXNtGAUgASgOMhouYWdlbnRfcWEudjEuUnVsZU1lY2hhbmlzbRIdChVwYXNzX2ZhaWxfaW5zdHJ1Y3Rpb24YBiABKAkSIgoabm90X2FwcGxpY2FibGVfaW5zdHJ1Y3Rpb24YByABKAkiRAoWQXV0b0xlYXJuUnVsZXNMb2dFbnRyeRIKCgJ0cxgBIAEoCRIRCglpdGVyYXRpb24YAiABKAUSCwoDbXNnGAMgASgJImEKHEF1dG9MZWFyblJ1bGVzUnVsZURlZmluaXRpb24SLwoKZGVmaW5pdGlvbhgBIAEoCzIbLmFnZW50X3FhLnYxLlJ1bGVEZWZpbml0aW9uEhAKCGFjY3VyYWN5GAIgASgCIl0KIUF1dG9MZWFyblJ1bGVzSXRlcmF0aW9uRXZhbHVhdGlvbhIYChBvdmVyYWxsX2FjY3VyYWN5GAEgASgCEh4KFml0ZXJhdGlvbl90aW1lX3NlY29uZHMYAiABKAIinQEKHUF1dG9MZWFyblJ1bGVzSXRlcmF0aW9uUmVzdWx0EkIKCmV2YWx1YXRpb24YASABKAsyLi5hZ2VudF9xYS52MS5BdXRvTGVhcm5SdWxlc0l0ZXJhdGlvbkV2YWx1YXRpb24SOAoFcnVsZXMYAiADKAsyKS5hZ2VudF9xYS52MS5BdXRvTGVhcm5SdWxlc1J1bGVEZWZpbml0aW9uIkcKFUF1dG9MZWFyblJ1bGVzU3VtbWFyeRIWCg5maW5hbF9hY2N1cmFjeRgBIAEoAhIWCg5iZXN0X2l0ZXJhdGlvbhgCIAEoBSLxAQoUQXV0b0xlYXJuUnVsZXNPdXRwdXQSMwoHc3VtbWFyeRgBIAEoCzIiLmFnZW50X3FhLnYxLkF1dG9MZWFyblJ1bGVzU3VtbWFyeRJFCgppdGVyYXRpb25zGAIgAygLMjEuYWdlbnRfcWEudjEuQXV0b0xlYXJuUnVsZXNPdXRwdXQuSXRlcmF0aW9uc0VudHJ5Gl0KD0l0ZXJhdGlvbnNFbnRyeRILCgNrZXkYASABKAkSOQoFdmFsdWUYAiABKAsyKi5hZ2VudF9xYS52MS5BdXRvTGVhcm5SdWxlc0l0ZXJhdGlvblJlc3VsdDoCOAEitwIKEUF1dG9MZWFyblJ1bGVzUnVuEhIKCnBlcnNvbmFfaWQYASABKAkSNwoFc3RhdGUYAiABKA4yKC5hZ2VudF9xYS52MS5BdXRvTGVhcm5SdWxlc1BpcGVsaW5lU3RhdGUSDQoFZXJyb3IYAyABKAkSMQoEbG9ncxgEIAMoCzIjLmFnZW50X3FhLnYxLkF1dG9MZWFyblJ1bGVzTG9nRW50cnkSMQoGb3V0cHV0GAUgASgLMiEuYWdlbnRfcWEudjEuQXV0b0xlYXJuUnVsZXNPdXRwdXQSEgoKc3RhcnRlZF9hdBgGIAEoCRIUCgxjb21wbGV0ZWRfYXQYByABKAkSHAoUY29tcGxldGVkX2l0ZXJhdGlvbnMYCCABKAUSGAoQdG90YWxfaXRlcmF0aW9ucxgJIAEoBSI2CgdSdWxlUmVmEhoKEndvcmtmbG93X3J1bGVfbmFtZRgBIAEoCRIPCgdydWxlX2lkGAIgASgJIl8KBFJ1bGUSJgoIcnVsZV9yZWYYASABKAsyFC5hZ2VudF9xYS52MS5SdWxlUmVmEi8KCmRlZmluaXRpb24YAiABKAsyGy5hZ2VudF9xYS52MS5SdWxlRGVmaW5pdGlvbiJeChxMZWFyblJ1bGVJbnN0cnVjdGlvbnNSZXF1ZXN0EhIKCnBlcnNvbmFfaWQYASABKAkSGAoQb3B0aW1pemVfZnVydGhlchgCIAEoCBIQCghpc19yZXRyeRgDIAEoCCJMCh1MZWFyblJ1bGVJbnN0cnVjdGlvbnNSZXNwb25zZRIrCgNydW4YASABKAsyHi5hZ2VudF9xYS52MS5BdXRvTGVhcm5SdWxlc1J1biI7CiVHZXRMZWFyblJ1bGVJbnN0cnVjdGlvbnNTdGF0dXNSZXF1ZXN0EhIKCnBlcnNvbmFfaWQYASABKAkiVQomR2V0TGVhcm5SdWxlSW5zdHJ1Y3Rpb25zU3RhdHVzUmVzcG9uc2USKwoDcnVuGAEgASgLMh4uYWdlbnRfcWEudjEuQXV0b0xlYXJuUnVsZXNSdW4iOAoiR2V0QXV0b0xlYXJuaW5nV2lkZ2V0U3RhdHVzUmVxdWVzdBISCgpwZXJzb25hX2lkGAEgASgJIl4KI0dldEF1dG9MZWFybmluZ1dpZGdldFN0YXR1c1Jlc3BvbnNlEjcKBXN0YXRlGAEgASgOMiguYWdlbnRfcWEudjEuQXV0b0xlYXJuUnVsZXNQaXBlbGluZVN0YXRlIjUKH09wdGltaXplUnVsZUluc3RydWN0aW9uc1JlcXVlc3QSEgoKcGVyc29uYV9pZBgBIAEoCSJPCiBPcHRpbWl6ZVJ1bGVJbnN0cnVjdGlvbnNSZXNwb25zZRIrCgNydW4YASABKAsyHi5hZ2VudF9xYS52MS5BdXRvTGVhcm5SdWxlc1J1biI5CiNEaXNjYXJkTGVhcm5SdWxlSW5zdHJ1Y3Rpb25zUmVxdWVzdBISCgpwZXJzb25hX2lkGAEgASgJIjkKJERpc2NhcmRMZWFyblJ1bGVJbnN0cnVjdGlvbnNSZXNwb25zZRIRCglkaXNjYXJkZWQYASABKAgi+wQKHVVwc2VydEFnZW50SW50ZXJhY3Rpb25SZXF1ZXN0Eg8KB2ZpbGVfaWQYASABKAkSEAoIYWdlbnRfaWQYAiABKAkSEwoLcmVzb3VyY2VfaWQYAyABKAkSEgoKcGVyc29uYV9pZBgEIAEoCRJMCgxyZXF1ZXN0X3R5cGUYBSABKA4yNi5hZ2VudF9xYS52MS5VcHNlcnRBZ2VudEludGVyYWN0aW9uUmVxdWVzdC5SZXF1ZXN0VHlwZRINCgVlcnJvchgGIAEoCRIyCg5jYWxsX3RpbWVzdGFtcBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEwoLYWdlbnRfZW1haWwYCCABKAkSFAoMYWdlbnRfdGVudXJlGAkgASgFEg8KB2Nhc2VfaWQYCiABKAkSUAoOaW5nZXN0aW9uX3R5cGUYCyABKA4yOC5hZ2VudF9xYS52MS5VcHNlcnRBZ2VudEludGVyYWN0aW9uUmVxdWVzdC5Jbmdlc3Rpb25UeXBlIoQBCgtSZXF1ZXN0VHlwZRIcChhSRVFVRVNUX1RZUEVfVU5TUEVDSUZJRUQQABIqCiZSRVFVRVNUX1RZUEVfSU5TRVJUX0lOVEVSQUNUSU9OX1JFQ09SRBABEisKJ1JFUVVFU1RfVFlQRV9NQVJLX0lOVEVSQUNUSU9OX0FTX0ZBSUxFRBACImgKDUluZ2VzdGlvblR5cGUSHgoaSU5HRVNUSU9OX1RZUEVfVU5TUEVDSUZJRUQQABIYChRJTkdFU1RJT05fVFlQRV9BVURJTxABEh0KGUlOR0VTVElPTl9UWVBFX1RSQU5TQ1JJUFQQAiIgCh5VcHNlcnRBZ2VudEludGVyYWN0aW9uUmVzcG9uc2Ui2wEKFVRyaWdnZXJBZ2VudFFBUmVxdWVzdBIPCgdmaWxlX2lkGAEgASgJEhUKDXRyYW5zY3JpcHRpb24YAiABKAkSEAoIYWdlbnRfaWQYAyABKAkSEwoLcmVzb3VyY2VfaWQYBCABKAkSNAoPc2lsZW5jZV9tZXRyaWNzGAUgASgLMhsuYWdlbnRfcWEudjEuU2lsZW5jZU1ldHJpY3MSEgoKcGVyc29uYV9pZBgGIAEoCRIpCghtZXRhZGF0YRgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QibQoOU2lsZW5jZU1ldHJpY3MSFwoPYWdlbnRfdGFsa190aW1lGAEgASgCEhYKDnVzZXJfdGFsa190aW1lGAIgASgCEhAKCGRlYWRfYWlyGAMgASgCEhgKEHRvdGFsX2F1ZGlvX3RpbWUYBCABKAIiMQoWVHJpZ2dlckFnZW50UUFSZXNwb25zZRIXCg93b3JrZmxvd19ydW5faWQYASABKAkicAojQXBwcm92ZUxlYXJuUnVsZUluc3RydWN0aW9uc1JlcXVlc3QSEgoKcGVyc29uYV9pZBgBIAEoCRI1ChBydWxlX2RlZmluaXRpb25zGAIgAygLMhsuYWdlbnRfcWEudjEuUnVsZURlZmluaXRpb24ihwEKJEFwcHJvdmVMZWFyblJ1bGVJbnN0cnVjdGlvbnNSZXNwb25zZRInCglydWxlX3JlZnMYASADKAsyFC5hZ2VudF9xYS52MS5SdWxlUmVmEjYKE3dvcmtmbG93X2RlZmluaXRpb24YAiABKAsyGS53b3JrZmxvd3MudjEuV29ya2Zsb3dEZWYiXwoSQ3JlYXRlUnVsZXNSZXF1ZXN0EhIKCnBlcnNvbmFfaWQYASABKAkSNQoQcnVsZV9kZWZpbml0aW9ucxgCIAMoCzIbLmFnZW50X3FhLnYxLlJ1bGVEZWZpbml0aW9uIj4KE0NyZWF0ZVJ1bGVzUmVzcG9uc2USJwoJcnVsZV9yZWZzGAEgAygLMhQuYWdlbnRfcWEudjEuUnVsZVJlZiImChBMaXN0UnVsZXNSZXF1ZXN0EhIKCnBlcnNvbmFfaWQYASABKAkiNQoRTGlzdFJ1bGVzUmVzcG9uc2USIAoFcnVsZXMYASADKAsyES5hZ2VudF9xYS52MS5SdWxlIkoKElVwZGF0ZVJ1bGVzUmVxdWVzdBISCgpwZXJzb25hX2lkGAEgASgJEiAKBXJ1bGVzGAIgAygLMhEuYWdlbnRfcWEudjEuUnVsZSI+ChNVcGRhdGVSdWxlc1Jlc3BvbnNlEicKCXJ1bGVfcmVmcxgBIAMoCzIULmFnZW50X3FhLnYxLlJ1bGVSZWYiUQoSRGVsZXRlUnVsZXNSZXF1ZXN0EhIKCnBlcnNvbmFfaWQYASABKAkSJwoJcnVsZV9yZWZzGAIgAygLMhQuYWdlbnRfcWEudjEuUnVsZVJlZiIVChNEZWxldGVSdWxlc1Jlc3BvbnNlItECChpRQVRyYW5zY3JpcHRFdmFsdWF0aW9uU29ydBJACgVmaWVsZBgBIAEoDjIxLmFnZW50X3FhLnYxLlFBVHJhbnNjcmlwdEV2YWx1YXRpb25Tb3J0LlNvcnRGaWVsZBJACgVvcmRlchgCIAEoDjIxLmFnZW50X3FhLnYxLlFBVHJhbnNjcmlwdEV2YWx1YXRpb25Tb3J0LlNvcnRPcmRlciJdCglTb3J0RmllbGQSGgoWU09SVF9GSUVMRF9VTlNQRUNJRklFRBAAEhoKFlNPUlRfRklFTERfQ0FMTF9MRU5HVEgQARIYChRTT1JUX0ZJRUxEX0NBTExfREFURRACIlAKCVNvcnRPcmRlchIaChZTT1JUX09SREVSX1VOU1BFQ0lGSUVEEAASEgoOU09SVF9PUkRFUl9BU0MQARITCg9TT1JUX09SREVSX0RFU0MQAiK1AwodUUFUcmFuc2NyaXB0RXZhbHVhdGlvbkZpbHRlcnMSIAoYcmVzb3VyY2VfaWRfc2VhcmNoX3F1ZXJ5GAEgASgJEh0KFWFnZW50X2lkX3NlYXJjaF9xdWVyeRgCIAEoCRItCgZzdGF0dXMYAyABKA4yHS5hZ2VudF9xYS52MS5FdmFsdWF0aW9uU3RhdHVzEhoKDXFhX3Njb3JlX2Zyb20YBCABKAJIAIgBARIYCgtxYV9zY29yZV90bxgFIAEoAkgBiAEBEhkKDGhhc19mZWVkYmFjaxgGIAEoCEgCiAEBEiEKFGhhc19wZW5kaW5nX2ZlZWRiYWNrGAkgASgISAOIAQESMgoOY2FsbF9kYXRlX2Zyb20YByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjAKDGNhbGxfZGF0ZV90bxgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEAoOX3FhX3Njb3JlX2Zyb21CDgoMX3FhX3Njb3JlX3RvQg8KDV9oYXNfZmVlZGJhY2tCFwoVX2hhc19wZW5kaW5nX2ZlZWRiYWNrItQBCiFHZXRRQVRyYW5zY3JpcHRFdmFsdWF0aW9uc1JlcXVlc3QSEgoKcGVyc29uYV9pZBgBIAEoCRI7CgdmaWx0ZXJzGAIgASgLMiouYWdlbnRfcWEudjEuUUFUcmFuc2NyaXB0RXZhbHVhdGlvbkZpbHRlcnMSNQoEc29ydBgDIAEoCzInLmFnZW50X3FhLnYxLlFBVHJhbnNjcmlwdEV2YWx1YXRpb25Tb3J0Eg0KBWxpbWl0GAQgASgNEhgKEHBhZ2luYXRpb25fdG9rZW4YBSABKAkiqgIKHVFBVHJhbnNjcmlwdEV2YWx1YXRpb25TdW1tYXJ5EhcKD3dvcmtmbG93X3J1bl9pZBgBIAEoCRIPCgdmaWxlX2lkGAIgASgJEhMKC3Jlc291cmNlX2lkGAMgASgJEhAKCGFnZW50X2lkGAQgASgJEhAKCGR1cmF0aW9uGAUgASgCEi0KBnN0YXR1cxgGIAEoDjIdLmFnZW50X3FhLnYxLkV2YWx1YXRpb25TdGF0dXMSEAoIcWFfc2NvcmUYByABKAISLQoJY2FsbF9kYXRlGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIWCg5mZWVkYmFja19jb3VudBgJIAEoBRIeChZwZW5kaW5nX2ZlZWRiYWNrX2NvdW50GAogASgFIqYBCiJHZXRRQVRyYW5zY3JpcHRFdmFsdWF0aW9uc1Jlc3BvbnNlEjkKBWl0ZW1zGAEgAygLMiouYWdlbnRfcWEudjEuUUFUcmFuc2NyaXB0RXZhbHVhdGlvblN1bW1hcnkSFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJEhcKD3ByZXZfcGFnZV90b2tlbhgDIAEoCRITCgt0b3RhbF9jb3VudBgEIAEoBSJWCidHZXRRQVRyYW5zY3JpcHRFdmFsdWF0aW9uRGV0YWlsc1JlcXVlc3QSFwoPd29ya2Zsb3dfcnVuX2lkGAEgASgJEhIKCnBlcnNvbmFfaWQYAiABKAkiggMKFlJ1bGVFdmFsdWF0aW9uRmVlZGJhY2sSCgoCaWQYByABKAkSJwoEdHlwZRgBIAEoDjIZLmZlZWRiYWNrLnYxLkZlZWRiYWNrVHlwZRIPCgdjb250ZW50GAIgASgJEhMKC3Jldmlld2VyX2lkGAMgASgJEhYKDnJldmlld2VyX2VtYWlsGAQgASgJEi4KCmNyZWF0ZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKC3Jlc291cmNlX2lkGAggASgJEhcKD3dvcmtmbG93X3J1bl9pZBgJIAEoCRIrCgZzdGF0dXMYCiABKA4yGy5mZWVkYmFjay52MS5GZWVkYmFja1N0YXR1cxIhChRhZG1pbl9yZXZpZXdlcl9lbWFpbBgLIAEoCUgAiAEBQhcKFV9hZG1pbl9yZXZpZXdlcl9lbWFpbCLjAgoOUnVsZUV2YWx1YXRpb24SCgoCaWQYCSABKAkSEQoJcnVsZV9uYW1lGAEgASgJEhUKDXJ1bGVfY2F0ZWdvcnkYAiABKAkSHQoVcGFzc19mYWlsX2luc3RydWN0aW9uGAMgASgJEiIKGm5vdF9hcHBsaWNhYmxlX2luc3RydWN0aW9uGAQgASgJEjEKBnJlc3VsdBgFIAEoDjIhLmFnZW50X3FhLnYxLlJ1bGVFdmFsdWF0aW9uUmVzdWx0EhEKCXJhdGlvbmFsZRgGIAEoCRIUCgh2ZXJiYXRpbRgHIAEoCUICGAESNgoJZmVlZGJhY2tzGAggAygLMiMuYWdlbnRfcWEudjEuUnVsZUV2YWx1YXRpb25GZWVkYmFjaxIRCgl2ZXJiYXRpbXMYCiADKAkSMQoLY3JpdGljYWxpdHkYCyABKA4yHC5hZ2VudF9xYS52MS5SdWxlQ3JpdGljYWxpdHkiWAofUUFUcmFuc2NyaXB0RXZhbHVhdGlvblNjb3JlY2FyZBI1ChBydWxlX2V2YWx1YXRpb25zGAEgAygLMhsuYWdlbnRfcWEudjEuUnVsZUV2YWx1YXRpb24i3gEKE1FBVHJhbnNjcmlwdE1lc3NhZ2USDwoHbWVzc2FnZRgBIAEoCRI6CgRyb2xlGAIgASgOMiwuYWdlbnRfcWEudjEuUUFUcmFuc2NyaXB0TWVzc2FnZS5NZXNzYWdlUm9sZRINCgVzdGFydBgDIAEoAhILCgNlbmQYBCABKAIiWgoLTWVzc2FnZVJvbGUSHAoYTUVTU0FHRV9ST0xFX1VOU1BFQ0lGSUVEEAASFQoRTUVTU0FHRV9ST0xFX1VTRVIQARIWChJNRVNTQUdFX1JPTEVfQUdFTlQQAjoCGAEiTgoUUUFUcmFuc2NyaXB0TWVzc2FnZXMSMgoIbWVzc2FnZXMYASADKAsyIC5hZ2VudF9xYS52MS5RQVRyYW5zY3JpcHRNZXNzYWdlOgIYASKHAQoSUGVyZm9ybWFuY2VJbnNpZ2h0EhEKBXRpdGxlGAIgASgJQgIYARITCgdpbnNpZ2h0GAMgASgJQgIYARIQCghjYXRlZ29yeRgBIAEoCRIOCgZkcml2ZXIYBCABKAkSFQoNanVzdGlmaWNhdGlvbhgFIAEoCRIQCgh2ZXJiYXRpbRgGIAEoCSKmAwooR2V0UUFUcmFuc2NyaXB0RXZhbHVhdGlvbkRldGFpbHNSZXNwb25zZRITCgtyZXNvdXJjZV9pZBgBIAEoCRIQCghhZ2VudF9pZBgCIAEoCRItCgZzdGF0dXMYAyABKA4yHS5hZ2VudF9xYS52MS5FdmFsdWF0aW9uU3RhdHVzEhAKCHFhX3Njb3JlGAQgASgCEi0KCWNhbGxfZGF0ZRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASPwoJc2NvcmVjYXJkGAYgASgLMiwuYWdlbnRfcWEudjEuUUFUcmFuc2NyaXB0RXZhbHVhdGlvblNjb3JlY2FyZBI5Cgp0cmFuc2NyaXB0GAcgASgLMiEuYWdlbnRfcWEudjEuUUFUcmFuc2NyaXB0TWVzc2FnZXNCAhgBEjIKCXN0cmVuZ3RocxgIIAMoCzIfLmFnZW50X3FhLnYxLlBlcmZvcm1hbmNlSW5zaWdodBIzCgp3ZWFrbmVzc2VzGAkgAygLMh8uYWdlbnRfcWEudjEuUGVyZm9ybWFuY2VJbnNpZ2h0IpcBCiZDcmVhdGVGZWVkYmFja0ZvclJ1bGVFdmFsdWF0aW9uUmVxdWVzdBISCgpwZXJzb25hX2lkGAEgASgJEhYKDnJ1bGVfcmVzdWx0X2lkGAIgASgJEjAKDWZlZWRiYWNrX3R5cGUYAyABKA4yGS5mZWVkYmFjay52MS5GZWVkYmFja1R5cGUSDwoHY29udGVudBgEIAEoCSJgCidDcmVhdGVGZWVkYmFja0ZvclJ1bGVFdmFsdWF0aW9uUmVzcG9uc2USNQoIZmVlZGJhY2sYASABKAsyIy5hZ2VudF9xYS52MS5SdWxlRXZhbHVhdGlvbkZlZWRiYWNrIkkKIkdldEFwcHJvdmVkRmVlZGJhY2tzRm9yUnVsZVJlcXVlc3QSEgoKcGVyc29uYV9pZBgBIAEoCRIPCgdydWxlX2lkGAIgASgJIl0KI0dldEFwcHJvdmVkRmVlZGJhY2tzRm9yUnVsZVJlc3BvbnNlEjYKCWZlZWRiYWNrcxgBIAMoCzIjLmFnZW50X3FhLnYxLlJ1bGVFdmFsdWF0aW9uRmVlZGJhY2siQQoWQXBwcm92ZUZlZWRiYWNrUmVxdWVzdBISCgpwZXJzb25hX2lkGAEgASgJEhMKC2ZlZWRiYWNrX2lkGAIgASgJIhkKF0FwcHJvdmVGZWVkYmFja1Jlc3BvbnNlIkAKFUlnbm9yZUZlZWRiYWNrUmVxdWVzdBISCgpwZXJzb25hX2lkGAEgASgJEhMKC2ZlZWRiYWNrX2lkGAIgASgJIhgKFklnbm9yZUZlZWRiYWNrUmVzcG9uc2UigwEKFVVwZGF0ZUZlZWRiYWNrUmVxdWVzdBISCgpwZXJzb25hX2lkGAEgASgJEhMKC2ZlZWRiYWNrX2lkGAIgASgJEjAKDWZlZWRiYWNrX3R5cGUYAyABKA4yGS5mZWVkYmFjay52MS5GZWVkYmFja1R5cGUSDwoHY29udGVudBgEIAEoCSIYChZVcGRhdGVGZWVkYmFja1Jlc3BvbnNlIkAKFURlbGV0ZUZlZWRiYWNrUmVxdWVzdBISCgpwZXJzb25hX2lkGAEgASgJEhMKC2ZlZWRiYWNrX2lkGAIgASgJIhgKFkRlbGV0ZUZlZWRiYWNrUmVzcG9uc2UiTwoSSW1wcm92ZVJ1bGVSZXF1ZXN0EhIKCnBlcnNvbmFfaWQYASABKAkSDwoHcnVsZV9pZBgCIAEoCRIUCgxmZWVkYmFja19pZHMYAyADKAkiFQoTSW1wcm92ZVJ1bGVSZXNwb25zZSLVAgoSSW1wcm92ZWRSdWxlT3V0cHV0Eg8KB3J1bGVfaWQYASABKAkSNAoFc3RhdGUYAiABKA4yJS5hZ2VudF9xYS52MS5JbXByb3ZlUnVsZVBpcGVsaW5lU3RhdGUSOAoTcHJldmlvdXNfZGVmaW5pdGlvbhgDIAEoCzIbLmFnZW50X3FhLnYxLlJ1bGVEZWZpbml0aW9uEjgKE2ltcHJvdmVkX2RlZmluaXRpb24YBCABKAsyGy5hZ2VudF9xYS52MS5SdWxlRGVmaW5pdGlvbhI0CgVlcnJvchgFIAEoDjIlLmFnZW50X3FhLnYxLkltcHJvdmVSdWxlUGlwZWxpbmVFcnJvchISCgpzdGFydGVkX2F0GAYgASgJEhQKDGNvbXBsZXRlZF9hdBgHIAEoCRIOCgZydW5faWQYCCABKAkSFAoMdHJpZ2dlcmVkX2J5GAkgASgJIkYKH0dldFJ1bGVJbXByb3ZlbWVudFN0YXR1c1JlcXVlc3QSEgoKcGVyc29uYV9pZBgBIAEoCRIPCgdydWxlX2lkGAIgASgJIlMKIEdldFJ1bGVJbXByb3ZlbWVudFN0YXR1c1Jlc3BvbnNlEi8KBm91dHB1dBgBIAEoCzIfLmFnZW50X3FhLnYxLkltcHJvdmVkUnVsZU91dHB1dCJ3ChpBcHByb3ZlSW1wcm92ZWRSdWxlUmVxdWVzdBISCgpwZXJzb25hX2lkGAEgASgJEg8KB3J1bGVfaWQYAiABKAkSNAoPcnVsZV9kZWZpbml0aW9uGAMgASgLMhsuYWdlbnRfcWEudjEuUnVsZURlZmluaXRpb24iHQobQXBwcm92ZUltcHJvdmVkUnVsZVJlc3BvbnNlIpQBChhHZXRVbmlxdWVBZ2VudElkc1JlcXVlc3QSEgoKcGVyc29uYV9pZBgBIAEoCRIyCg5jYWxsX2RhdGVfZnJvbRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMAoMY2FsbF9kYXRlX3RvGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCIuChlHZXRVbmlxdWVBZ2VudElkc1Jlc3BvbnNlEhEKCWFnZW50X2lkcxgBIAMoCSJWCgpJbnNpZ2h0Um93Eg4KBmRyaXZlchgBIAEoCRIQCghjYXRlZ29yeRgCIAEoCRIRCgl2ZXJiYXRpbXMYAyADKAkSEwoLdG90YWxfY291bnQYBCABKAUiuQEKE0xpc3RJbnNpZ2h0c1JlcXVlc3QSEgoKcGVyc29uYV9pZBgBIAEoCRIRCglhZ2VudF9pZHMYAiADKAkSMgoOY2FsbF9kYXRlX2Zyb20YAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjAKDGNhbGxfZGF0ZV90bxgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFQoNbWF4X3ZlcmJhdGltcxgFIAEoBSLyAQoUTGlzdEluc2lnaHRzUmVzcG9uc2USUwoQaW5zaWdodHNfYnlfdHlwZRgBIAMoCzI1LmFnZW50X3FhLnYxLkxpc3RJbnNpZ2h0c1Jlc3BvbnNlLkluc2lnaHRzQnlUeXBlRW50cnlCAhgBEjMKD2luc2lnaHRzX2dyb3VwcxgCIAMoCzIaLmFnZW50X3FhLnYxLkluc2lnaHRzR3JvdXAaUAoTSW5zaWdodHNCeVR5cGVFbnRyeRILCgNrZXkYASABKAkSKAoFdmFsdWUYAiABKAsyGS5hZ2VudF9xYS52MS5JbnNpZ2h0c0xpc3Q6AjgBImQKDUluc2lnaHRzR3JvdXASJgoEdHlwZRgBIAEoDjIYLmFnZW50X3FhLnYxLkluc2lnaHRUeXBlEisKCGluc2lnaHRzGAIgASgLMhkuYWdlbnRfcWEudjEuSW5zaWdodHNMaXN0IjYKDEluc2lnaHRzTGlzdBImCgVpdGVtcxgBIAMoCzIXLmFnZW50X3FhLnYxLkluc2lnaHRSb3ci+gEKGUxpc3RJbnNpZ2h0RGV0YWlsc1JlcXVlc3QSEgoKcGVyc29uYV9pZBgBIAEoCRIuCgxpbnNpZ2h0X3R5cGUYAiABKA4yGC5hZ2VudF9xYS52MS5JbnNpZ2h0VHlwZRIRCglhZ2VudF9pZHMYAyADKAkSMgoOY2FsbF9kYXRlX2Zyb20YBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjAKDGNhbGxfZGF0ZV90bxgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDgoGZHJpdmVyGAYgASgJEhAKCGNhdGVnb3J5GAcgASgJInIKDkluc2lnaHREZXRhaWxzEhcKD3dvcmtmbG93X3J1bl9pZBgBIAEoCRIQCghhZ2VudF9pZBgCIAEoCRIMCgR1Y2lkGAMgASgJEhAKCHZlcmJhdGltGAQgASgJEhUKDWp1c3RpZmljYXRpb24YBSABKAkiWQoaTGlzdEluc2lnaHREZXRhaWxzUmVzcG9uc2USDwoHc3VtbWFyeRgBIAEoCRIqCgVpdGVtcxgCIAMoCzIbLmFnZW50X3FhLnYxLkluc2lnaHREZXRhaWxzIkAKFE1ldHJpY1ZhbHVlV2l0aFRyZW5kEg0KBXZhbHVlGAEgASgCEhkKEXBlcmNlbnRhZ2VfY2hhbmdlGAIgASgCImUKGUFnZW50UGFyYW1ldGVyUGVyZm9ybWFuY2USFgoOcGFyYW1ldGVyX25hbWUYASABKAkSMAoFc2NvcmUYAiABKAsyIS5hZ2VudF9xYS52MS5NZXRyaWNWYWx1ZVdpdGhUcmVuZCLHAgoeQWdlbnRQZXJmb3JtYW5jZUJ5UGFyYW1ldGVyUm93EhAKCGFnZW50X2lkGAEgASgJEhIKCmNhbGxfY291bnQYAiABKAUSQgoXYXZnX2hhbmRsZV90aW1lX3NlY29uZHMYAyABKAsyIS5hZ2VudF9xYS52MS5NZXRyaWNWYWx1ZVdpdGhUcmVuZBJAChVhdmdfdGFsa190aW1lX3NlY29uZHMYBCABKAsyIS5hZ2VudF9xYS52MS5NZXRyaWNWYWx1ZVdpdGhUcmVuZBI3CgxhdmdfcWFfc2NvcmUYBSABKAsyIS5hZ2VudF9xYS52MS5NZXRyaWNWYWx1ZVdpdGhUcmVuZBJAChBwYXJhbWV0ZXJfc2NvcmVzGAYgAygLMiYuYWdlbnRfcWEudjEuQWdlbnRQYXJhbWV0ZXJQZXJmb3JtYW5jZSLbAgonTGlzdEFnZW50UGVyZm9ybWFuY2VCeVBhcmFtZXRlcnNSZXF1ZXN0EhIKCnBlcnNvbmFfaWQYASABKAkSEQoJYWdlbnRfaWRzGAIgAygJEjIKDmNhbGxfZGF0ZV9mcm9tGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIwCgxjYWxsX2RhdGVfdG8YBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEj0KGWNvbXBhcmlzb25fY2FsbF9kYXRlX2Zyb20YBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjsKF2NvbXBhcmlzb25fY2FsbF9kYXRlX3RvGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBINCgVsaW1pdBgHIAEoDRIYChBwYWdpbmF0aW9uX3Rva2VuGAggASgJIsgBCihMaXN0QWdlbnRQZXJmb3JtYW5jZUJ5UGFyYW1ldGVyc1Jlc3BvbnNlEhkKEXBhcmFtZXRlcl9jb2x1bW5zGAEgAygJEjoKBWl0ZW1zGAIgAygLMisuYWdlbnRfcWEudjEuQWdlbnRQZXJmb3JtYW5jZUJ5UGFyYW1ldGVyUm93EhcKD25leHRfcGFnZV90b2tlbhgDIAEoCRIXCg9wcmV2X3BhZ2VfdG9rZW4YBCABKAkSEwoLdG90YWxfY291bnQYBSABKAUipwEKGVNoYXJlQWdlbnRJbnNpZ2h0c1JlcXVlc3QSEgoKcGVyc29uYV9pZBgBIAEoCRIQCghhZ2VudF9pZBgCIAEoCRIyCg5jYWxsX2RhdGVfZnJvbRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMAoMY2FsbF9kYXRlX3RvGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCIrChpTaGFyZUFnZW50SW5zaWdodHNSZXNwb25zZRINCgVlcnJvchgBIAEoCSrLBAobQXV0b0xlYXJuUnVsZXNQaXBlbGluZVN0YXRlEi8KK0FVVE9fTEVBUk5fUlVMRVNfUElQRUxJTkVfU1RBVEVfVU5TUEVDSUZJRUQQABIqCiZBVVRPX0xFQVJOX1JVTEVTX1BJUEVMSU5FX1NUQVRFX1FVRVVFRBABEisKJ0FVVE9fTEVBUk5fUlVMRVNfUElQRUxJTkVfU1RBVEVfUlVOTklORxACEi0KKUFVVE9fTEVBUk5fUlVMRVNfUElQRUxJTkVfU1RBVEVfQ09NUExFVEVEEAMSKgomQVVUT19MRUFSTl9SVUxFU19QSVBFTElORV9TVEFURV9GQUlMRUQQBBI6CjZBVVRPX0xFQVJOX1JVTEVTX1BJUEVMSU5FX1NUQVRFX0lOSVRJQUxfTU9ERV9DT01QTEVURUQQBxI2CjJBVVRPX0xFQVJOX1JVTEVTX1BJUEVMSU5FX1NUQVRFX0FDQ1VSQUNZX0NPTlZFUkdFRBAIEjcKM0FVVE9fTEVBUk5fUlVMRVNfUElQRUxJTkVfU1RBVEVfSU5JVElBTF9NT0RFX0ZBSUxFRBAJEjsKN0FVVE9fTEVBUk5fUlVMRVNfUElQRUxJTkVfU1RBVEVfT1BUSU1JWkVfRlVSVEhFUl9GQUlMRUQQChIvCitBVVRPX0xFQVJOX1JVTEVTX1BJUEVMSU5FX1NUQVRFX0RPQ1NfVVBMT0FEEAUSLAooQVVUT19MRUFSTl9SVUxFU19QSVBFTElORV9TVEFURV9BUFBST1ZFRBAGKnUKD1J1bGVDcml0aWNhbGl0eRIgChxSVUxFX0NSSVRJQ0FMSVRZX1VOU1BFQ0lGSUVEEAASHQoZUlVMRV9DUklUSUNBTElUWV9DUklUSUNBTBABEiEKHVJVTEVfQ1JJVElDQUxJVFlfTk9OX0NSSVRJQ0FMEAIqrQEKDVJ1bGVNZWNoYW5pc20SHgoaUlVMRV9NRUNIQU5JU01fVU5TUEVDSUZJRUQQABIdChlSVUxFX01FQ0hBTklTTV9UUkFOU0NSSVBUEAESMQotUlVMRV9NRUNIQU5JU01fVFJBTlNDUklQVF9XSVRIX0tOT1dMRURHRV9CQVNFEAISKgomUlVMRV9NRUNIQU5JU01fVFJBTlNDUklQVF9XSVRIX0FDVElPTlMQAyrEAgoYSW1wcm92ZVJ1bGVQaXBlbGluZVN0YXRlEisKJ0lNUFJPVkVfUlVMRV9QSVBFTElORV9TVEFURV9VTlNQRUNJRklFRBAAEioKIklNUFJPVkVfUlVMRV9QSVBFTElORV9TVEFURV9RVUVVRUQQARoCCAESJwojSU1QUk9WRV9SVUxFX1BJUEVMSU5FX1NUQVRFX1JVTk5JTkcQAhIpCiVJTVBST1ZFX1JVTEVfUElQRUxJTkVfU1RBVEVfQ09NUExFVEVEEAMSJgoiSU1QUk9WRV9SVUxFX1BJUEVMSU5FX1NUQVRFX0ZBSUxFRBAEEigKJElNUFJPVkVfUlVMRV9QSVBFTElORV9TVEFURV9BUFBST1ZFRBAFEikKJUlNUFJPVkVfUlVMRV9QSVBFTElORV9TVEFURV9USU1FRF9PVVQQBiq+AwoYSW1wcm92ZVJ1bGVQaXBlbGluZUVycm9yEisKJ0lNUFJPVkVfUlVMRV9QSVBFTElORV9FUlJPUl9VTlNQRUNJRklFRBAAEjUKMUlNUFJPVkVfUlVMRV9QSVBFTElORV9FUlJPUl9OT19BUFBST1ZFRF9GRUVEQkFDS1MQARI1CjFJTVBST1ZFX1JVTEVfUElQRUxJTkVfRVJST1JfVEVNUE9SQUxfU1RBUlRfRkFJTEVEEAISNgoySU1QUk9WRV9SVUxFX1BJUEVMSU5FX0VSUk9SX0ZFVENIX0ZFRURCQUNLU19GQUlMRUQQAxI8CjhJTVBST1ZFX1JVTEVfUElQRUxJTkVfRVJST1JfSU1QUk9WRV9SVUxFX0FDVElWSVRZX0ZBSUxFRBAEEjQKMElNUFJPVkVfUlVMRV9QSVBFTElORV9FUlJPUl9MTE1fT1VUUFVUX01BTEZPUk1FRBAFEjEKLUlNUFJPVkVfUlVMRV9QSVBFTElORV9FUlJPUl9VUERBVEVfUlVOX0ZBSUxFRBAGEigKJElNUFJPVkVfUlVMRV9QSVBFTElORV9FUlJPUl9JTlRFUk5BTBAHKpcBChBFdmFsdWF0aW9uU3RhdHVzEiEKHUVWQUxVQVRJT05fU1RBVFVTX1VOU1BFQ0lGSUVEEAASIQodRVZBTFVBVElPTl9TVEFUVVNfSU5fUFJPR1JFU1MQARIfChtFVkFMVUFUSU9OX1NUQVRVU19DT01QTEVURUQQAhIcChhFVkFMVUFUSU9OX1NUQVRVU19GQUlMRUQQAyqvAQoUUnVsZUV2YWx1YXRpb25SZXN1bHQSJgoiUlVMRV9FVkFMVUFUSU9OX1JFU1VMVF9VTlNQRUNJRklFRBAAEiEKHVJVTEVfRVZBTFVBVElPTl9SRVNVTFRfUEFTU0VEEAESIQodUlVMRV9FVkFMVUFUSU9OX1JFU1VMVF9GQUlMRUQQAhIpCiVSVUxFX0VWQUxVQVRJT05fUkVTVUxUX05PVF9BUFBMSUNBQkxFEAMqxAEKC0luc2lnaHRUeXBlEhwKGElOU0lHSFRfVFlQRV9VTlNQRUNJRklFRBAAEhoKFklOU0lHSFRfVFlQRV9TVFJFTkdUSFMQARIbChdJTlNJR0hUX1RZUEVfV0VBS05FU1NFUxACEh0KGUlOU0lHSFRfVFlQRV9QUk9EVUNUX0JVR1MQAxIhCh1JTlNJR0hUX1RZUEVfUFJPRFVDVF9GRUVEQkFDSxAEEhwKGElOU0lHSFRfVFlQRV9DT01QRVRJVE9SUxAFMrwYCg5BZ2VudFFBU2VydmljZRJzChZVcHNlcnRBZ2VudEludGVyYWN0aW9uEiouYWdlbnRfcWEudjEuVXBzZXJ0QWdlbnRJbnRlcmFjdGlvblJlcXVlc3QaKy5hZ2VudF9xYS52MS5VcHNlcnRBZ2VudEludGVyYWN0aW9uUmVzcG9uc2UiABJbCg5UcmlnZ2VyQWdlbnRRQRIiLmFnZW50X3FhLnYxLlRyaWdnZXJBZ2VudFFBUmVxdWVzdBojLmFnZW50X3FhLnYxLlRyaWdnZXJBZ2VudFFBUmVzcG9uc2UiABJwChVMZWFyblJ1bGVJbnN0cnVjdGlvbnMSKS5hZ2VudF9xYS52MS5MZWFyblJ1bGVJbnN0cnVjdGlvbnNSZXF1ZXN0GiouYWdlbnRfcWEudjEuTGVhcm5SdWxlSW5zdHJ1Y3Rpb25zUmVzcG9uc2UiABKLAQoeR2V0TGVhcm5SdWxlSW5zdHJ1Y3Rpb25zU3RhdHVzEjIuYWdlbnRfcWEudjEuR2V0TGVhcm5SdWxlSW5zdHJ1Y3Rpb25zU3RhdHVzUmVxdWVzdBozLmFnZW50X3FhLnYxLkdldExlYXJuUnVsZUluc3RydWN0aW9uc1N0YXR1c1Jlc3BvbnNlIgASggEKG0dldEF1dG9MZWFybmluZ1dpZGdldFN0YXR1cxIvLmFnZW50X3FhLnYxLkdldEF1dG9MZWFybmluZ1dpZGdldFN0YXR1c1JlcXVlc3QaMC5hZ2VudF9xYS52MS5HZXRBdXRvTGVhcm5pbmdXaWRnZXRTdGF0dXNSZXNwb25zZSIAEnkKGE9wdGltaXplUnVsZUluc3RydWN0aW9ucxIsLmFnZW50X3FhLnYxLk9wdGltaXplUnVsZUluc3RydWN0aW9uc1JlcXVlc3QaLS5hZ2VudF9xYS52MS5PcHRpbWl6ZVJ1bGVJbnN0cnVjdGlvbnNSZXNwb25zZSIAEoUBChxEaXNjYXJkTGVhcm5SdWxlSW5zdHJ1Y3Rpb25zEjAuYWdlbnRfcWEudjEuRGlzY2FyZExlYXJuUnVsZUluc3RydWN0aW9uc1JlcXVlc3QaMS5hZ2VudF9xYS52MS5EaXNjYXJkTGVhcm5SdWxlSW5zdHJ1Y3Rpb25zUmVzcG9uc2UiABKFAQocQXBwcm92ZUxlYXJuUnVsZUluc3RydWN0aW9ucxIwLmFnZW50X3FhLnYxLkFwcHJvdmVMZWFyblJ1bGVJbnN0cnVjdGlvbnNSZXF1ZXN0GjEuYWdlbnRfcWEudjEuQXBwcm92ZUxlYXJuUnVsZUluc3RydWN0aW9uc1Jlc3BvbnNlIgASUgoLQ3JlYXRlUnVsZXMSHy5hZ2VudF9xYS52MS5DcmVhdGVSdWxlc1JlcXVlc3QaIC5hZ2VudF9xYS52MS5DcmVhdGVSdWxlc1Jlc3BvbnNlIgASUgoLVXBkYXRlUnVsZXMSHy5hZ2VudF9xYS52MS5VcGRhdGVSdWxlc1JlcXVlc3QaIC5hZ2VudF9xYS52MS5VcGRhdGVSdWxlc1Jlc3BvbnNlIgASUgoLRGVsZXRlUnVsZXMSHy5hZ2VudF9xYS52MS5EZWxldGVSdWxlc1JlcXVlc3QaIC5hZ2VudF9xYS52MS5EZWxldGVSdWxlc1Jlc3BvbnNlIgASTAoJTGlzdFJ1bGVzEh0uYWdlbnRfcWEudjEuTGlzdFJ1bGVzUmVxdWVzdBoeLmFnZW50X3FhLnYxLkxpc3RSdWxlc1Jlc3BvbnNlIgASfwoaR2V0UUFUcmFuc2NyaXB0RXZhbHVhdGlvbnMSLi5hZ2VudF9xYS52MS5HZXRRQVRyYW5zY3JpcHRFdmFsdWF0aW9uc1JlcXVlc3QaLy5hZ2VudF9xYS52MS5HZXRRQVRyYW5zY3JpcHRFdmFsdWF0aW9uc1Jlc3BvbnNlIgASkQEKIEdldFFBVHJhbnNjcmlwdEV2YWx1YXRpb25EZXRhaWxzEjQuYWdlbnRfcWEudjEuR2V0UUFUcmFuc2NyaXB0RXZhbHVhdGlvbkRldGFpbHNSZXF1ZXN0GjUuYWdlbnRfcWEudjEuR2V0UUFUcmFuc2NyaXB0RXZhbHVhdGlvbkRldGFpbHNSZXNwb25zZSIAEo4BCh9DcmVhdGVGZWVkYmFja0ZvclJ1bGVFdmFsdWF0aW9uEjMuYWdlbnRfcWEudjEuQ3JlYXRlRmVlZGJhY2tGb3JSdWxlRXZhbHVhdGlvblJlcXVlc3QaNC5hZ2VudF9xYS52MS5DcmVhdGVGZWVkYmFja0ZvclJ1bGVFdmFsdWF0aW9uUmVzcG9uc2UiABKCAQobR2V0QXBwcm92ZWRGZWVkYmFja3NGb3JSdWxlEi8uYWdlbnRfcWEudjEuR2V0QXBwcm92ZWRGZWVkYmFja3NGb3JSdWxlUmVxdWVzdBowLmFnZW50X3FhLnYxLkdldEFwcHJvdmVkRmVlZGJhY2tzRm9yUnVsZVJlc3BvbnNlIgASXgoPQXBwcm92ZUZlZWRiYWNrEiMuYWdlbnRfcWEudjEuQXBwcm92ZUZlZWRiYWNrUmVxdWVzdBokLmFnZW50X3FhLnYxLkFwcHJvdmVGZWVkYmFja1Jlc3BvbnNlIgASWwoOSWdub3JlRmVlZGJhY2sSIi5hZ2VudF9xYS52MS5JZ25vcmVGZWVkYmFja1JlcXVlc3QaIy5hZ2VudF9xYS52MS5JZ25vcmVGZWVkYmFja1Jlc3BvbnNlIgASWwoOVXBkYXRlRmVlZGJhY2sSIi5hZ2VudF9xYS52MS5VcGRhdGVGZWVkYmFja1JlcXVlc3QaIy5hZ2VudF9xYS52MS5VcGRhdGVGZWVkYmFja1Jlc3BvbnNlIgASWwoORGVsZXRlRmVlZGJhY2sSIi5hZ2VudF9xYS52MS5EZWxldGVGZWVkYmFja1JlcXVlc3QaIy5hZ2VudF9xYS52MS5EZWxldGVGZWVkYmFja1Jlc3BvbnNlIgASUgoLSW1wcm92ZVJ1bGUSHy5hZ2VudF9xYS52MS5JbXByb3ZlUnVsZVJlcXVlc3QaIC5hZ2VudF9xYS52MS5JbXByb3ZlUnVsZVJlc3BvbnNlIgASeQoYR2V0UnVsZUltcHJvdmVtZW50U3RhdHVzEiwuYWdlbnRfcWEudjEuR2V0UnVsZUltcHJvdmVtZW50U3RhdHVzUmVxdWVzdBotLmFnZW50X3FhLnYxLkdldFJ1bGVJbXByb3ZlbWVudFN0YXR1c1Jlc3BvbnNlIgASagoTQXBwcm92ZUltcHJvdmVkUnVsZRInLmFnZW50X3FhLnYxLkFwcHJvdmVJbXByb3ZlZFJ1bGVSZXF1ZXN0GiguYWdlbnRfcWEudjEuQXBwcm92ZUltcHJvdmVkUnVsZVJlc3BvbnNlIgASVQoMTGlzdEluc2lnaHRzEiAuYWdlbnRfcWEudjEuTGlzdEluc2lnaHRzUmVxdWVzdBohLmFnZW50X3FhLnYxLkxpc3RJbnNpZ2h0c1Jlc3BvbnNlIgASZwoSTGlzdEluc2lnaHREZXRhaWxzEiYuYWdlbnRfcWEudjEuTGlzdEluc2lnaHREZXRhaWxzUmVxdWVzdBonLmFnZW50X3FhLnYxLkxpc3RJbnNpZ2h0RGV0YWlsc1Jlc3BvbnNlIgASkQEKIExpc3RBZ2VudFBlcmZvcm1hbmNlQnlQYXJhbWV0ZXJzEjQuYWdlbnRfcWEudjEuTGlzdEFnZW50UGVyZm9ybWFuY2VCeVBhcmFtZXRlcnNSZXF1ZXN0GjUuYWdlbnRfcWEudjEuTGlzdEFnZW50UGVyZm9ybWFuY2VCeVBhcmFtZXRlcnNSZXNwb25zZSIAEmcKElNoYXJlQWdlbnRJbnNpZ2h0cxImLmFnZW50X3FhLnYxLlNoYXJlQWdlbnRJbnNpZ2h0c1JlcXVlc3QaJy5hZ2VudF9xYS52MS5TaGFyZUFnZW50SW5zaWdodHNSZXNwb25zZSIAEmQKEUdldFVuaXF1ZUFnZW50SWRzEiUuYWdlbnRfcWEudjEuR2V0VW5pcXVlQWdlbnRJZHNSZXF1ZXN0GiYuYWdlbnRfcWEudjEuR2V0VW5pcXVlQWdlbnRJZHNSZXNwb25zZSIAQkNaQWdpdGh1Yi5jb20vRW1hLVVubGltaXRlZC9wcm90b3MvZ28vc2VydmljZS9hZ2VudF9xYS92MTthZ2VudF9xYXYxYgZwcm90bzM", [file_google_protobuf_struct, file_google_protobuf_timestamp, file_service_feedback_v1_feedback, file_service_workflows_v1_workflow]);
11
12
  /**
12
13
  * Describes the message agent_qa.v1.RuleDefinition.
13
14
  * Use `create(RuleDefinitionSchema)` to create a new message.
@@ -140,6 +141,28 @@ export var UpsertAgentInteractionRequest_RequestType;
140
141
  * Describes the enum agent_qa.v1.UpsertAgentInteractionRequest.RequestType.
141
142
  */
142
143
  export const UpsertAgentInteractionRequest_RequestTypeSchema = /*@__PURE__*/ enumDesc(file_service_agent_qa_v1_agent_qa, 20, 0);
144
+ /**
145
+ * @generated from enum agent_qa.v1.UpsertAgentInteractionRequest.IngestionType
146
+ */
147
+ export var UpsertAgentInteractionRequest_IngestionType;
148
+ (function (UpsertAgentInteractionRequest_IngestionType) {
149
+ /**
150
+ * @generated from enum value: INGESTION_TYPE_UNSPECIFIED = 0;
151
+ */
152
+ UpsertAgentInteractionRequest_IngestionType[UpsertAgentInteractionRequest_IngestionType["UNSPECIFIED"] = 0] = "UNSPECIFIED";
153
+ /**
154
+ * @generated from enum value: INGESTION_TYPE_AUDIO = 1;
155
+ */
156
+ UpsertAgentInteractionRequest_IngestionType[UpsertAgentInteractionRequest_IngestionType["AUDIO"] = 1] = "AUDIO";
157
+ /**
158
+ * @generated from enum value: INGESTION_TYPE_TRANSCRIPT = 2;
159
+ */
160
+ UpsertAgentInteractionRequest_IngestionType[UpsertAgentInteractionRequest_IngestionType["TRANSCRIPT"] = 2] = "TRANSCRIPT";
161
+ })(UpsertAgentInteractionRequest_IngestionType || (UpsertAgentInteractionRequest_IngestionType = {}));
162
+ /**
163
+ * Describes the enum agent_qa.v1.UpsertAgentInteractionRequest.IngestionType.
164
+ */
165
+ export const UpsertAgentInteractionRequest_IngestionTypeSchema = /*@__PURE__*/ enumDesc(file_service_agent_qa_v1_agent_qa, 20, 1);
143
166
  /**
144
167
  * Describes the message agent_qa.v1.UpsertAgentInteractionResponse.
145
168
  * Use `create(UpsertAgentInteractionResponseSchema)` to create a new message.
@@ -409,56 +432,126 @@ export const DeleteFeedbackRequestSchema = /*@__PURE__*/ messageDesc(file_servic
409
432
  * Use `create(DeleteFeedbackResponseSchema)` to create a new message.
410
433
  */
411
434
  export const DeleteFeedbackResponseSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 59);
435
+ /**
436
+ * Describes the message agent_qa.v1.ImproveRuleRequest.
437
+ * Use `create(ImproveRuleRequestSchema)` to create a new message.
438
+ */
439
+ export const ImproveRuleRequestSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 60);
440
+ /**
441
+ * Describes the message agent_qa.v1.ImproveRuleResponse.
442
+ * Use `create(ImproveRuleResponseSchema)` to create a new message.
443
+ */
444
+ export const ImproveRuleResponseSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 61);
445
+ /**
446
+ * Describes the message agent_qa.v1.ImprovedRuleOutput.
447
+ * Use `create(ImprovedRuleOutputSchema)` to create a new message.
448
+ */
449
+ export const ImprovedRuleOutputSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 62);
450
+ /**
451
+ * Describes the message agent_qa.v1.GetRuleImprovementStatusRequest.
452
+ * Use `create(GetRuleImprovementStatusRequestSchema)` to create a new message.
453
+ */
454
+ export const GetRuleImprovementStatusRequestSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 63);
455
+ /**
456
+ * Describes the message agent_qa.v1.GetRuleImprovementStatusResponse.
457
+ * Use `create(GetRuleImprovementStatusResponseSchema)` to create a new message.
458
+ */
459
+ export const GetRuleImprovementStatusResponseSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 64);
460
+ /**
461
+ * Describes the message agent_qa.v1.ApproveImprovedRuleRequest.
462
+ * Use `create(ApproveImprovedRuleRequestSchema)` to create a new message.
463
+ */
464
+ export const ApproveImprovedRuleRequestSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 65);
465
+ /**
466
+ * Describes the message agent_qa.v1.ApproveImprovedRuleResponse.
467
+ * Use `create(ApproveImprovedRuleResponseSchema)` to create a new message.
468
+ */
469
+ export const ApproveImprovedRuleResponseSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 66);
412
470
  /**
413
471
  * Describes the message agent_qa.v1.GetUniqueAgentIdsRequest.
414
472
  * Use `create(GetUniqueAgentIdsRequestSchema)` to create a new message.
415
473
  */
416
- export const GetUniqueAgentIdsRequestSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 60);
474
+ export const GetUniqueAgentIdsRequestSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 67);
417
475
  /**
418
476
  * Describes the message agent_qa.v1.GetUniqueAgentIdsResponse.
419
477
  * Use `create(GetUniqueAgentIdsResponseSchema)` to create a new message.
420
478
  */
421
- export const GetUniqueAgentIdsResponseSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 61);
479
+ export const GetUniqueAgentIdsResponseSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 68);
422
480
  /**
423
481
  * Describes the message agent_qa.v1.InsightRow.
424
482
  * Use `create(InsightRowSchema)` to create a new message.
425
483
  */
426
- export const InsightRowSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 62);
484
+ export const InsightRowSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 69);
427
485
  /**
428
486
  * Describes the message agent_qa.v1.ListInsightsRequest.
429
487
  * Use `create(ListInsightsRequestSchema)` to create a new message.
430
488
  */
431
- export const ListInsightsRequestSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 63);
489
+ export const ListInsightsRequestSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 70);
432
490
  /**
433
491
  * Describes the message agent_qa.v1.ListInsightsResponse.
434
492
  * Use `create(ListInsightsResponseSchema)` to create a new message.
435
493
  */
436
- export const ListInsightsResponseSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 64);
494
+ export const ListInsightsResponseSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 71);
437
495
  /**
438
496
  * Describes the message agent_qa.v1.InsightsGroup.
439
497
  * Use `create(InsightsGroupSchema)` to create a new message.
440
498
  */
441
- export const InsightsGroupSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 65);
499
+ export const InsightsGroupSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 72);
442
500
  /**
443
501
  * Describes the message agent_qa.v1.InsightsList.
444
502
  * Use `create(InsightsListSchema)` to create a new message.
445
503
  */
446
- export const InsightsListSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 66);
504
+ export const InsightsListSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 73);
447
505
  /**
448
506
  * Describes the message agent_qa.v1.ListInsightDetailsRequest.
449
507
  * Use `create(ListInsightDetailsRequestSchema)` to create a new message.
450
508
  */
451
- export const ListInsightDetailsRequestSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 67);
509
+ export const ListInsightDetailsRequestSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 74);
452
510
  /**
453
511
  * Describes the message agent_qa.v1.InsightDetails.
454
512
  * Use `create(InsightDetailsSchema)` to create a new message.
455
513
  */
456
- export const InsightDetailsSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 68);
514
+ export const InsightDetailsSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 75);
457
515
  /**
458
516
  * Describes the message agent_qa.v1.ListInsightDetailsResponse.
459
517
  * Use `create(ListInsightDetailsResponseSchema)` to create a new message.
460
518
  */
461
- export const ListInsightDetailsResponseSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 69);
519
+ export const ListInsightDetailsResponseSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 76);
520
+ /**
521
+ * Describes the message agent_qa.v1.MetricValueWithTrend.
522
+ * Use `create(MetricValueWithTrendSchema)` to create a new message.
523
+ */
524
+ export const MetricValueWithTrendSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 77);
525
+ /**
526
+ * Describes the message agent_qa.v1.AgentParameterPerformance.
527
+ * Use `create(AgentParameterPerformanceSchema)` to create a new message.
528
+ */
529
+ export const AgentParameterPerformanceSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 78);
530
+ /**
531
+ * Describes the message agent_qa.v1.AgentPerformanceByParameterRow.
532
+ * Use `create(AgentPerformanceByParameterRowSchema)` to create a new message.
533
+ */
534
+ export const AgentPerformanceByParameterRowSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 79);
535
+ /**
536
+ * Describes the message agent_qa.v1.ListAgentPerformanceByParametersRequest.
537
+ * Use `create(ListAgentPerformanceByParametersRequestSchema)` to create a new message.
538
+ */
539
+ export const ListAgentPerformanceByParametersRequestSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 80);
540
+ /**
541
+ * Describes the message agent_qa.v1.ListAgentPerformanceByParametersResponse.
542
+ * Use `create(ListAgentPerformanceByParametersResponseSchema)` to create a new message.
543
+ */
544
+ export const ListAgentPerformanceByParametersResponseSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 81);
545
+ /**
546
+ * Describes the message agent_qa.v1.ShareAgentInsightsRequest.
547
+ * Use `create(ShareAgentInsightsRequestSchema)` to create a new message.
548
+ */
549
+ export const ShareAgentInsightsRequestSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 82);
550
+ /**
551
+ * Describes the message agent_qa.v1.ShareAgentInsightsResponse.
552
+ * Use `create(ShareAgentInsightsResponseSchema)` to create a new message.
553
+ */
554
+ export const ShareAgentInsightsResponseSchema = /*@__PURE__*/ messageDesc(file_service_agent_qa_v1_agent_qa, 83);
462
555
  /**
463
556
  * The enums below represent the state of the underlying pipeline (AutoLearnRulesPipelineState)
464
557
  * as tracked by BE and surfaced to the UI. They’re now a durable "source of truth" instead of FE WidgetState.
@@ -610,6 +703,121 @@ export var RuleMechanism;
610
703
  * Describes the enum agent_qa.v1.RuleMechanism.
611
704
  */
612
705
  export const RuleMechanismSchema = /*@__PURE__*/ enumDesc(file_service_agent_qa_v1_agent_qa, 2);
706
+ /**
707
+ * The enums below represent the state of the underlying pipeline (ImproveRulePipelineState)
708
+ * as tracked by BE and surfaced to the UI. They're a durable "source of truth" instead of FE WidgetState.
709
+ *
710
+ * @generated from enum agent_qa.v1.ImproveRulePipelineState
711
+ */
712
+ export var ImproveRulePipelineState;
713
+ (function (ImproveRulePipelineState) {
714
+ /**
715
+ * @generated from enum value: IMPROVE_RULE_PIPELINE_STATE_UNSPECIFIED = 0;
716
+ */
717
+ ImproveRulePipelineState[ImproveRulePipelineState["UNSPECIFIED"] = 0] = "UNSPECIFIED";
718
+ /**
719
+ * @generated from enum value: IMPROVE_RULE_PIPELINE_STATE_QUEUED = 1 [deprecated = true];
720
+ * @deprecated
721
+ */
722
+ ImproveRulePipelineState[ImproveRulePipelineState["QUEUED"] = 1] = "QUEUED";
723
+ /**
724
+ * POLLING WHEN IN THIS STATE BEHAVIOR
725
+ * The UI uses the GetRuleImprovementStatus (see rpc GetRuleImprovementStatus)
726
+ * polling RPC to track the pipeline state in real-time.
727
+ * While this state is `IMPROVE_RULE_PIPELINE_STATE_RUNNING`,
728
+ * the UI polls the backend using the GetRuleImprovementStatus RPC
729
+ * to fetch the current `ImproveRulePipelineState` to show progress.
730
+ *
731
+ * @generated from enum value: IMPROVE_RULE_PIPELINE_STATE_RUNNING = 2;
732
+ */
733
+ ImproveRulePipelineState[ImproveRulePipelineState["RUNNING"] = 2] = "RUNNING";
734
+ /**
735
+ * The pipeline has successfully completed processing the rule instruction with feedbacks.
736
+ *
737
+ * @generated from enum value: IMPROVE_RULE_PIPELINE_STATE_COMPLETED = 3;
738
+ */
739
+ ImproveRulePipelineState[ImproveRulePipelineState["COMPLETED"] = 3] = "COMPLETED";
740
+ /**
741
+ * The pipeline has failed during processing.
742
+ *
743
+ * @generated from enum value: IMPROVE_RULE_PIPELINE_STATE_FAILED = 4;
744
+ */
745
+ ImproveRulePipelineState[ImproveRulePipelineState["FAILED"] = 4] = "FAILED";
746
+ /**
747
+ * The pipeline has been approved by the user.
748
+ *
749
+ * @generated from enum value: IMPROVE_RULE_PIPELINE_STATE_APPROVED = 5;
750
+ */
751
+ ImproveRulePipelineState[ImproveRulePipelineState["APPROVED"] = 5] = "APPROVED";
752
+ /**
753
+ * The user did not approve the results of the pipeline in time (within 10 minutes of completion).
754
+ * The pipeline result modal should disappear with a notification to the user.
755
+ * TODO: Come back to this description after discussion with product and design.
756
+ *
757
+ * @generated from enum value: IMPROVE_RULE_PIPELINE_STATE_TIMED_OUT = 6;
758
+ */
759
+ ImproveRulePipelineState[ImproveRulePipelineState["TIMED_OUT"] = 6] = "TIMED_OUT";
760
+ })(ImproveRulePipelineState || (ImproveRulePipelineState = {}));
761
+ /**
762
+ * Describes the enum agent_qa.v1.ImproveRulePipelineState.
763
+ */
764
+ export const ImproveRulePipelineStateSchema = /*@__PURE__*/ enumDesc(file_service_agent_qa_v1_agent_qa, 3);
765
+ /**
766
+ * @generated from enum agent_qa.v1.ImproveRulePipelineError
767
+ */
768
+ export var ImproveRulePipelineError;
769
+ (function (ImproveRulePipelineError) {
770
+ /**
771
+ * @generated from enum value: IMPROVE_RULE_PIPELINE_ERROR_UNSPECIFIED = 0;
772
+ */
773
+ ImproveRulePipelineError[ImproveRulePipelineError["UNSPECIFIED"] = 0] = "UNSPECIFIED";
774
+ /**
775
+ * No APPROVED feedbacks were found for the requested persona/rule scope.
776
+ *
777
+ * @generated from enum value: IMPROVE_RULE_PIPELINE_ERROR_NO_APPROVED_FEEDBACKS = 1;
778
+ */
779
+ ImproveRulePipelineError[ImproveRulePipelineError["NO_APPROVED_FEEDBACKS"] = 1] = "NO_APPROVED_FEEDBACKS";
780
+ /**
781
+ * The Temporal workflow could not be started.
782
+ *
783
+ * @generated from enum value: IMPROVE_RULE_PIPELINE_ERROR_TEMPORAL_START_FAILED = 2;
784
+ */
785
+ ImproveRulePipelineError[ImproveRulePipelineError["TEMPORAL_START_FAILED"] = 2] = "TEMPORAL_START_FAILED";
786
+ /**
787
+ * Failed to fetch/assemble rule + feedback learning context.
788
+ *
789
+ * @generated from enum value: IMPROVE_RULE_PIPELINE_ERROR_FETCH_FEEDBACKS_FAILED = 3;
790
+ */
791
+ ImproveRulePipelineError[ImproveRulePipelineError["FETCH_FEEDBACKS_FAILED"] = 3] = "FETCH_FEEDBACKS_FAILED";
792
+ /**
793
+ * The rule-improvement activity failed before producing valid output.
794
+ *
795
+ * @generated from enum value: IMPROVE_RULE_PIPELINE_ERROR_IMPROVE_RULE_ACTIVITY_FAILED = 4;
796
+ */
797
+ ImproveRulePipelineError[ImproveRulePipelineError["IMPROVE_RULE_ACTIVITY_FAILED"] = 4] = "IMPROVE_RULE_ACTIVITY_FAILED";
798
+ /**
799
+ * The LLM response could not be parsed into the expected output schema.
800
+ *
801
+ * @generated from enum value: IMPROVE_RULE_PIPELINE_ERROR_LLM_OUTPUT_MALFORMED = 5;
802
+ */
803
+ ImproveRulePipelineError[ImproveRulePipelineError["LLM_OUTPUT_MALFORMED"] = 5] = "LLM_OUTPUT_MALFORMED";
804
+ /**
805
+ * Failed to persist terminal run state/output.
806
+ *
807
+ * @generated from enum value: IMPROVE_RULE_PIPELINE_ERROR_UPDATE_RUN_FAILED = 6;
808
+ */
809
+ ImproveRulePipelineError[ImproveRulePipelineError["UPDATE_RUN_FAILED"] = 6] = "UPDATE_RUN_FAILED";
810
+ /**
811
+ * Catch-all for unexpected internal failures.
812
+ *
813
+ * @generated from enum value: IMPROVE_RULE_PIPELINE_ERROR_INTERNAL = 7;
814
+ */
815
+ ImproveRulePipelineError[ImproveRulePipelineError["INTERNAL"] = 7] = "INTERNAL";
816
+ })(ImproveRulePipelineError || (ImproveRulePipelineError = {}));
817
+ /**
818
+ * Describes the enum agent_qa.v1.ImproveRulePipelineError.
819
+ */
820
+ export const ImproveRulePipelineErrorSchema = /*@__PURE__*/ enumDesc(file_service_agent_qa_v1_agent_qa, 4);
613
821
  /**
614
822
  * @generated from enum agent_qa.v1.EvaluationStatus
615
823
  */
@@ -635,7 +843,7 @@ export var EvaluationStatus;
635
843
  /**
636
844
  * Describes the enum agent_qa.v1.EvaluationStatus.
637
845
  */
638
- export const EvaluationStatusSchema = /*@__PURE__*/ enumDesc(file_service_agent_qa_v1_agent_qa, 3);
846
+ export const EvaluationStatusSchema = /*@__PURE__*/ enumDesc(file_service_agent_qa_v1_agent_qa, 5);
639
847
  /**
640
848
  * @generated from enum agent_qa.v1.RuleEvaluationResult
641
849
  */
@@ -661,7 +869,7 @@ export var RuleEvaluationResult;
661
869
  /**
662
870
  * Describes the enum agent_qa.v1.RuleEvaluationResult.
663
871
  */
664
- export const RuleEvaluationResultSchema = /*@__PURE__*/ enumDesc(file_service_agent_qa_v1_agent_qa, 4);
872
+ export const RuleEvaluationResultSchema = /*@__PURE__*/ enumDesc(file_service_agent_qa_v1_agent_qa, 6);
665
873
  /**
666
874
  * InsightType identifies which category of insights is being requested.
667
875
  *
@@ -714,7 +922,7 @@ export var InsightType;
714
922
  /**
715
923
  * Describes the enum agent_qa.v1.InsightType.
716
924
  */
717
- export const InsightTypeSchema = /*@__PURE__*/ enumDesc(file_service_agent_qa_v1_agent_qa, 5);
925
+ export const InsightTypeSchema = /*@__PURE__*/ enumDesc(file_service_agent_qa_v1_agent_qa, 7);
718
926
  /**
719
927
  * AgentQAService provides agent quality assurance functionality
720
928
  *
@@ -5,7 +5,7 @@ import { enumDesc, fileDesc } from "@bufbuild/protobuf/codegenv2";
5
5
  /**
6
6
  * Describes the file service/common/v1/common.proto.
7
7
  */
8
- export const file_service_common_v1_common = /*@__PURE__*/ fileDesc("Ch5zZXJ2aWNlL2NvbW1vbi92MS9jb21tb24ucHJvdG8SCWNvbW1vbi52MSrXAQoKRGF0ZUZvcm1hdBIbChdEQVRFX0ZPUk1BVF9VTlNQRUNJRklFRBAAEhoKFkRBVEVfRk9STUFUX0REX01NX1lZWVkQARIaChZEQVRFX0ZPUk1BVF9NTV9ERF9ZWVlZEAISFQoRREFURV9GT1JNQVRfRERfTU0QAxIVChFEQVRFX0ZPUk1BVF9NTV9ERBAEEhcKE0RBVEVfRk9STUFUX01NX1lZWVkQBRIXChNEQVRFX0ZPUk1BVF9ZWVlZX01NEAYSFAoQREFURV9GT1JNQVRfWVlZWRAHKqgCCgxOdW1iZXJGb3JtYXQSHQoZTlVNQkVSX0ZPUk1BVF9VTlNQRUNJRklFRBAAEhkKFU5VTUJFUl9GT1JNQVRfREVDSU1BTBABEhoKFk5VTUJFUl9GT1JNQVRfQ1VSUkVOQ1kQAhIcChhOVU1CRVJfRk9STUFUX1BFUkNFTlRBR0UQAxIhCh1OVU1CRVJfRk9STUFUX0NVUlJFTkNZX0RPTExBUhAEEiAKHE5VTUJFUl9GT1JNQVRfQ1VSUkVOQ1lfUE9VTkQQBRIfChtOVU1CRVJfRk9STUFUX0NVUlJFTkNZX0VVUk8QBhIgChxOVU1CRVJfRk9STUFUX0NVUlJFTkNZX1JVUEVFEAcSHAoYTlVNQkVSX0ZPUk1BVF9TQ0lFTlRJRklDEAhCP1o9Z2l0aHViLmNvbS9FbWEtVW5saW1pdGVkL3Byb3Rvcy9nby9zZXJ2aWNlL2NvbW1vbi92MTtjb21tb25wYmIGcHJvdG8z");
8
+ export const file_service_common_v1_common = /*@__PURE__*/ fileDesc("Ch5zZXJ2aWNlL2NvbW1vbi92MS9jb21tb24ucHJvdG8SCWNvbW1vbi52MSrXAQoKRGF0ZUZvcm1hdBIbChdEQVRFX0ZPUk1BVF9VTlNQRUNJRklFRBAAEhoKFkRBVEVfRk9STUFUX0REX01NX1lZWVkQARIaChZEQVRFX0ZPUk1BVF9NTV9ERF9ZWVlZEAISFQoRREFURV9GT1JNQVRfRERfTU0QAxIVChFEQVRFX0ZPUk1BVF9NTV9ERBAEEhcKE0RBVEVfRk9STUFUX01NX1lZWVkQBRIXChNEQVRFX0ZPUk1BVF9ZWVlZX01NEAYSFAoQREFURV9GT1JNQVRfWVlZWRAHKqgCCgxOdW1iZXJGb3JtYXQSHQoZTlVNQkVSX0ZPUk1BVF9VTlNQRUNJRklFRBAAEhkKFU5VTUJFUl9GT1JNQVRfREVDSU1BTBABEhoKFk5VTUJFUl9GT1JNQVRfQ1VSUkVOQ1kQAhIcChhOVU1CRVJfRk9STUFUX1BFUkNFTlRBR0UQAxIhCh1OVU1CRVJfRk9STUFUX0NVUlJFTkNZX0RPTExBUhAEEiAKHE5VTUJFUl9GT1JNQVRfQ1VSUkVOQ1lfUE9VTkQQBRIfChtOVU1CRVJfRk9STUFUX0NVUlJFTkNZX0VVUk8QBhIgChxOVU1CRVJfRk9STUFUX0NVUlJFTkNZX1JVUEVFEAcSHAoYTlVNQkVSX0ZPUk1BVF9TQ0lFTlRJRklDEAgqkwIKEkNhbGxEaXNjb25uZWN0ZWRCeRIkCiBDQUxMX0RJU0NPTk5FQ1RFRF9CWV9VTlNQRUNJRklFRBAAEh0KGUNBTExfRElTQ09OTkVDVEVEX0JZX1VTRVIQARIcChhDQUxMX0RJU0NPTk5FQ1RFRF9CWV9FTUEQAhIlCiFDQUxMX0RJU0NPTk5FQ1RFRF9CWV9TWVNURU1fRVJST1IQAxIpCiVDQUxMX0RJU0NPTk5FQ1RFRF9CWV9DT05ORUNUSU9OX0VSUk9SEAQSJQohQ0FMTF9ESVNDT05ORUNURURfQllfQ0FMTF9USU1FT1VUEAUSIQodQ0FMTF9ESVNDT05ORUNURURfQllfVU5KT0lORUQQBkI/Wj1naXRodWIuY29tL0VtYS1VbmxpbWl0ZWQvcHJvdG9zL2dvL3NlcnZpY2UvY29tbW9uL3YxO2NvbW1vbnBiYgZwcm90bzM");
9
9
  /**
10
10
  * Common date format being used in ExtractionColumn and Workflow Dashboard, added here to avoid circular dependency
11
11
  *
@@ -132,3 +132,53 @@ export var NumberFormat;
132
132
  * Describes the enum common.v1.NumberFormat.
133
133
  */
134
134
  export const NumberFormatSchema = /*@__PURE__*/ enumDesc(file_service_common_v1_common, 1);
135
+ /**
136
+ * CallDisconnectedBy indicates which party ended the voice call.
137
+ *
138
+ * @generated from enum common.v1.CallDisconnectedBy
139
+ */
140
+ export var CallDisconnectedBy;
141
+ (function (CallDisconnectedBy) {
142
+ /**
143
+ * @generated from enum value: CALL_DISCONNECTED_BY_UNSPECIFIED = 0;
144
+ */
145
+ CallDisconnectedBy[CallDisconnectedBy["UNSPECIFIED"] = 0] = "UNSPECIFIED";
146
+ /**
147
+ * Caller hung up
148
+ *
149
+ * @generated from enum value: CALL_DISCONNECTED_BY_USER = 1;
150
+ */
151
+ CallDisconnectedBy[CallDisconnectedBy["USER"] = 1] = "USER";
152
+ /**
153
+ * Ema ended the call (e.g., after resolution)
154
+ *
155
+ * @generated from enum value: CALL_DISCONNECTED_BY_EMA = 2;
156
+ */
157
+ CallDisconnectedBy[CallDisconnectedBy["EMA"] = 2] = "EMA";
158
+ /**
159
+ * Call dropped due to technical issues
160
+ *
161
+ * @generated from enum value: CALL_DISCONNECTED_BY_SYSTEM_ERROR = 3;
162
+ */
163
+ CallDisconnectedBy[CallDisconnectedBy["SYSTEM_ERROR"] = 3] = "SYSTEM_ERROR";
164
+ /**
165
+ * Call dropped due to connection issues
166
+ *
167
+ * @generated from enum value: CALL_DISCONNECTED_BY_CONNECTION_ERROR = 4;
168
+ */
169
+ CallDisconnectedBy[CallDisconnectedBy["CONNECTION_ERROR"] = 4] = "CONNECTION_ERROR";
170
+ /**
171
+ * @generated from enum value: CALL_DISCONNECTED_BY_CALL_TIMEOUT = 5;
172
+ */
173
+ CallDisconnectedBy[CallDisconnectedBy["CALL_TIMEOUT"] = 5] = "CALL_TIMEOUT";
174
+ /**
175
+ * Call not joined by user
176
+ *
177
+ * @generated from enum value: CALL_DISCONNECTED_BY_UNJOINED = 6;
178
+ */
179
+ CallDisconnectedBy[CallDisconnectedBy["UNJOINED"] = 6] = "UNJOINED";
180
+ })(CallDisconnectedBy || (CallDisconnectedBy = {}));
181
+ /**
182
+ * Describes the enum common.v1.CallDisconnectedBy.
183
+ */
184
+ export const CallDisconnectedBySchema = /*@__PURE__*/ enumDesc(file_service_common_v1_common, 2);