@shadr/iterm2-ts 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/connection/auth.ts","../src/gen/api_pb.ts","../src/connection/transport.ts","../src/connection/connection.ts","../src/events/emitter.ts","../src/events/iterator.ts","../src/events/notifications.ts","../src/models/common.ts","../src/models/session.ts","../src/models/tab.ts","../src/models/window.ts","../src/models/app.ts","../src/api/profiles.ts","../src/api/sessions.ts","../src/api/windows.ts","../src/api/client.ts","../src/index.ts"],"names":["execFileSync","messageDesc","join","homedir","existsSync","net","WebSocket","create","toBinary","fromBinary"],"mappings":"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","file":"index.cjs","sourcesContent":["import { execFileSync } from \"node:child_process\";\n\nconst cookieArgs = (): string[] => [\"-e\", 'tell application \"iTerm2\" to request cookie'];\n\nconst cookieAndKeyArgs = (name: string): string[] => [\n \"-e\",\n `tell application \"iTerm2\" to request cookie and key for app named \"${name}\"`,\n];\n\ninterface AuthCredentials {\n readonly cookie: string;\n readonly key?: string;\n}\n\nexport const getAuthCredentials = (appName = \"iterm2-ts\"): AuthCredentials => {\n const envCookie = process.env.ITERM2_COOKIE;\n if (envCookie) {\n const envKey = process.env.ITERM2_KEY;\n return { cookie: envCookie, key: envKey ?? undefined };\n }\n\n try {\n // Response format: \"cookie key\" (space-separated)\n const result = execFileSync(\"osascript\", cookieAndKeyArgs(appName), {\n encoding: \"utf-8\",\n timeout: 5000,\n }).trim();\n\n const parts = result.split(\" \");\n const cookie = parts[0];\n const key = parts[1];\n if (!cookie) {\n throw new Error(\"Empty cookie from osascript\");\n }\n return { cookie, key: key || undefined };\n } catch {\n // Fall back to cookie-only request\n try {\n const cookie = execFileSync(\"osascript\", cookieArgs(), {\n encoding: \"utf-8\",\n timeout: 5000,\n }).trim();\n if (!cookie) {\n throw new Error(\"Empty cookie from osascript\");\n }\n return { cookie };\n } catch (err) {\n throw new Error(\n `Failed to get iTerm2 auth credentials. Ensure iTerm2 is running and \"Enable Python API\" is on in Preferences > General > Magic. ${err}`,\n );\n }\n }\n};\n\nexport interface ConnectionHeaders {\n readonly origin: string;\n readonly \"x-iterm2-library-version\": string;\n readonly \"x-iterm2-disable-auth-ui\": string;\n readonly \"x-iterm2-advisory-name\": string;\n readonly \"x-iterm2-cookie\"?: string;\n readonly \"x-iterm2-key\"?: string;\n}\n\nexport const buildHeaders = (\n advisoryName: string,\n disableAuthUi: boolean = false,\n): ConnectionHeaders => {\n const creds = getAuthCredentials(advisoryName);\n return {\n origin: \"ws://localhost\",\n \"x-iterm2-library-version\": \"typescript 0.1.0\",\n \"x-iterm2-disable-auth-ui\": disableAuthUi ? \"1\" : \"0\",\n \"x-iterm2-advisory-name\": advisoryName,\n ...(creds.cookie ? { \"x-iterm2-cookie\": creds.cookie } : {}),\n ...(creds.key ? { \"x-iterm2-key\": creds.key } : {}),\n };\n};\n","// @generated by protoc-gen-es v2.11.0 with parameter \"target=ts,import_extension=.js\"\n// @generated from file api.proto (package iterm2, syntax proto2)\n/* eslint-disable */\n\nimport type { Message } from \"@bufbuild/protobuf\";\nimport type { GenEnum, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\n\n/**\n * Describes the file api.proto.\n */\nexport const file_api: GenFile = /*@__PURE__*/\n fileDesc(\"CglhcGkucHJvdG8SBml0ZXJtMiLZEAoXQ2xpZW50T3JpZ2luYXRlZE1lc3NhZ2USCgoCaWQYASABKAMSNgoSZ2V0X2J1ZmZlcl9yZXF1ZXN0GGQgASgLMhguaXRlcm0yLkdldEJ1ZmZlclJlcXVlc3RIABI2ChJnZXRfcHJvbXB0X3JlcXVlc3QYZSABKAsyGC5pdGVybTIuR2V0UHJvbXB0UmVxdWVzdEgAEjkKE3RyYW5zYWN0aW9uX3JlcXVlc3QYZiABKAsyGi5pdGVybTIuVHJhbnNhY3Rpb25SZXF1ZXN0SAASOwoUbm90aWZpY2F0aW9uX3JlcXVlc3QYZyABKAsyGy5pdGVybTIuTm90aWZpY2F0aW9uUmVxdWVzdEgAEjwKFXJlZ2lzdGVyX3Rvb2xfcmVxdWVzdBhoIAEoCzIbLml0ZXJtMi5SZWdpc3RlclRvb2xSZXF1ZXN0SAASSQocc2V0X3Byb2ZpbGVfcHJvcGVydHlfcmVxdWVzdBhpIAEoCzIhLml0ZXJtMi5TZXRQcm9maWxlUHJvcGVydHlSZXF1ZXN0SAASPAoVbGlzdF9zZXNzaW9uc19yZXF1ZXN0GGogASgLMhsuaXRlcm0yLkxpc3RTZXNzaW9uc1JlcXVlc3RIABI0ChFzZW5kX3RleHRfcmVxdWVzdBhrIAEoCzIXLml0ZXJtMi5TZW5kVGV4dFJlcXVlc3RIABI2ChJjcmVhdGVfdGFiX3JlcXVlc3QYbCABKAsyGC5pdGVybTIuQ3JlYXRlVGFiUmVxdWVzdEgAEjYKEnNwbGl0X3BhbmVfcmVxdWVzdBhtIAEoCzIYLml0ZXJtMi5TcGxpdFBhbmVSZXF1ZXN0SAASSQocZ2V0X3Byb2ZpbGVfcHJvcGVydHlfcmVxdWVzdBhuIAEoCzIhLml0ZXJtMi5HZXRQcm9maWxlUHJvcGVydHlSZXF1ZXN0SAASOgoUc2V0X3Byb3BlcnR5X3JlcXVlc3QYbyABKAsyGi5pdGVybTIuU2V0UHJvcGVydHlSZXF1ZXN0SAASOgoUZ2V0X3Byb3BlcnR5X3JlcXVlc3QYcCABKAsyGi5pdGVybTIuR2V0UHJvcGVydHlSZXF1ZXN0SAASLwoOaW5qZWN0X3JlcXVlc3QYcSABKAsyFS5pdGVybTIuSW5qZWN0UmVxdWVzdEgAEjMKEGFjdGl2YXRlX3JlcXVlc3QYciABKAsyFy5pdGVybTIuQWN0aXZhdGVSZXF1ZXN0SAASMwoQdmFyaWFibGVfcmVxdWVzdBhzIAEoCzIXLml0ZXJtMi5WYXJpYWJsZVJlcXVlc3RIABJEChlzYXZlZF9hcnJhbmdlbWVudF9yZXF1ZXN0GHQgASgLMh8uaXRlcm0yLlNhdmVkQXJyYW5nZW1lbnRSZXF1ZXN0SAASLQoNZm9jdXNfcmVxdWVzdBh1IAEoCzIULml0ZXJtMi5Gb2N1c1JlcXVlc3RIABI8ChVsaXN0X3Byb2ZpbGVzX3JlcXVlc3QYdiABKAsyGy5pdGVybTIuTGlzdFByb2ZpbGVzUmVxdWVzdEgAElgKJHNlcnZlcl9vcmlnaW5hdGVkX3JwY19yZXN1bHRfcmVxdWVzdBh3IAEoCzIoLml0ZXJtMi5TZXJ2ZXJPcmlnaW5hdGVkUlBDUmVzdWx0UmVxdWVzdEgAEkAKF3Jlc3RhcnRfc2Vzc2lvbl9yZXF1ZXN0GHggASgLMh0uaXRlcm0yLlJlc3RhcnRTZXNzaW9uUmVxdWVzdEgAEjQKEW1lbnVfaXRlbV9yZXF1ZXN0GHkgASgLMhcuaXRlcm0yLk1lbnVJdGVtUmVxdWVzdEgAEj0KFnNldF90YWJfbGF5b3V0X3JlcXVlc3QYeiABKAsyGy5pdGVybTIuU2V0VGFiTGF5b3V0UmVxdWVzdEgAEksKHWdldF9icm9hZGNhc3RfZG9tYWluc19yZXF1ZXN0GHsgASgLMiIuaXRlcm0yLkdldEJyb2FkY2FzdERvbWFpbnNSZXF1ZXN0SAASKwoMdG11eF9yZXF1ZXN0GHwgASgLMhMuaXRlcm0yLlRtdXhSZXF1ZXN0SAASOgoUcmVvcmRlcl90YWJzX3JlcXVlc3QYfSABKAsyGi5pdGVybTIuUmVvcmRlclRhYnNSZXF1ZXN0SAASOQoTcHJlZmVyZW5jZXNfcmVxdWVzdBh+IAEoCzIaLml0ZXJtMi5QcmVmZXJlbmNlc1JlcXVlc3RIABI6ChRjb2xvcl9wcmVzZXRfcmVxdWVzdBh/IAEoCzIaLml0ZXJtMi5Db2xvclByZXNldFJlcXVlc3RIABI2ChFzZWxlY3Rpb25fcmVxdWVzdBiAASABKAsyGC5pdGVybTIuU2VsZWN0aW9uUmVxdWVzdEgAEkoKHHN0YXR1c19iYXJfY29tcG9uZW50X3JlcXVlc3QYgQEgASgLMiEuaXRlcm0yLlN0YXR1c0JhckNvbXBvbmVudFJlcXVlc3RIABJMCh1zZXRfYnJvYWRjYXN0X2RvbWFpbnNfcmVxdWVzdBiCASABKAsyIi5pdGVybTIuU2V0QnJvYWRjYXN0RG9tYWluc1JlcXVlc3RIABIuCg1jbG9zZV9yZXF1ZXN0GIMBIAEoCzIULml0ZXJtMi5DbG9zZVJlcXVlc3RIABJBChdpbnZva2VfZnVuY3Rpb25fcmVxdWVzdBiEASABKAsyHS5pdGVybTIuSW52b2tlRnVuY3Rpb25SZXF1ZXN0SAASOwoUbGlzdF9wcm9tcHRzX3JlcXVlc3QYhQEgASgLMhouaXRlcm0yLkxpc3RQcm9tcHRzUmVxdWVzdEgAQgwKCnN1Ym1lc3NhZ2Ui3REKF1NlcnZlck9yaWdpbmF0ZWRNZXNzYWdlEgoKAmlkGAEgASgDEg8KBWVycm9yGAIgASgJSAASOAoTZ2V0X2J1ZmZlcl9yZXNwb25zZRhkIAEoCzIZLml0ZXJtMi5HZXRCdWZmZXJSZXNwb25zZUgAEjgKE2dldF9wcm9tcHRfcmVzcG9uc2UYZSABKAsyGS5pdGVybTIuR2V0UHJvbXB0UmVzcG9uc2VIABI7ChR0cmFuc2FjdGlvbl9yZXNwb25zZRhmIAEoCzIbLml0ZXJtMi5UcmFuc2FjdGlvblJlc3BvbnNlSAASPQoVbm90aWZpY2F0aW9uX3Jlc3BvbnNlGGcgASgLMhwuaXRlcm0yLk5vdGlmaWNhdGlvblJlc3BvbnNlSAASPgoWcmVnaXN0ZXJfdG9vbF9yZXNwb25zZRhoIAEoCzIcLml0ZXJtMi5SZWdpc3RlclRvb2xSZXNwb25zZUgAEksKHXNldF9wcm9maWxlX3Byb3BlcnR5X3Jlc3BvbnNlGGkgASgLMiIuaXRlcm0yLlNldFByb2ZpbGVQcm9wZXJ0eVJlc3BvbnNlSAASPgoWbGlzdF9zZXNzaW9uc19yZXNwb25zZRhqIAEoCzIcLml0ZXJtMi5MaXN0U2Vzc2lvbnNSZXNwb25zZUgAEjYKEnNlbmRfdGV4dF9yZXNwb25zZRhrIAEoCzIYLml0ZXJtMi5TZW5kVGV4dFJlc3BvbnNlSAASOAoTY3JlYXRlX3RhYl9yZXNwb25zZRhsIAEoCzIZLml0ZXJtMi5DcmVhdGVUYWJSZXNwb25zZUgAEjgKE3NwbGl0X3BhbmVfcmVzcG9uc2UYbSABKAsyGS5pdGVybTIuU3BsaXRQYW5lUmVzcG9uc2VIABJLCh1nZXRfcHJvZmlsZV9wcm9wZXJ0eV9yZXNwb25zZRhuIAEoCzIiLml0ZXJtMi5HZXRQcm9maWxlUHJvcGVydHlSZXNwb25zZUgAEjwKFXNldF9wcm9wZXJ0eV9yZXNwb25zZRhvIAEoCzIbLml0ZXJtMi5TZXRQcm9wZXJ0eVJlc3BvbnNlSAASPAoVZ2V0X3Byb3BlcnR5X3Jlc3BvbnNlGHAgASgLMhsuaXRlcm0yLkdldFByb3BlcnR5UmVzcG9uc2VIABIxCg9pbmplY3RfcmVzcG9uc2UYcSABKAsyFi5pdGVybTIuSW5qZWN0UmVzcG9uc2VIABI1ChFhY3RpdmF0ZV9yZXNwb25zZRhyIAEoCzIYLml0ZXJtMi5BY3RpdmF0ZVJlc3BvbnNlSAASNQoRdmFyaWFibGVfcmVzcG9uc2UYcyABKAsyGC5pdGVybTIuVmFyaWFibGVSZXNwb25zZUgAEkYKGnNhdmVkX2FycmFuZ2VtZW50X3Jlc3BvbnNlGHQgASgLMiAuaXRlcm0yLlNhdmVkQXJyYW5nZW1lbnRSZXNwb25zZUgAEi8KDmZvY3VzX3Jlc3BvbnNlGHUgASgLMhUuaXRlcm0yLkZvY3VzUmVzcG9uc2VIABI+ChZsaXN0X3Byb2ZpbGVzX3Jlc3BvbnNlGHYgASgLMhwuaXRlcm0yLkxpc3RQcm9maWxlc1Jlc3BvbnNlSAASWgolc2VydmVyX29yaWdpbmF0ZWRfcnBjX3Jlc3VsdF9yZXNwb25zZRh3IAEoCzIpLml0ZXJtMi5TZXJ2ZXJPcmlnaW5hdGVkUlBDUmVzdWx0UmVzcG9uc2VIABJCChhyZXN0YXJ0X3Nlc3Npb25fcmVzcG9uc2UYeCABKAsyHi5pdGVybTIuUmVzdGFydFNlc3Npb25SZXNwb25zZUgAEjYKEm1lbnVfaXRlbV9yZXNwb25zZRh5IAEoCzIYLml0ZXJtMi5NZW51SXRlbVJlc3BvbnNlSAASPwoXc2V0X3RhYl9sYXlvdXRfcmVzcG9uc2UYeiABKAsyHC5pdGVybTIuU2V0VGFiTGF5b3V0UmVzcG9uc2VIABJNCh5nZXRfYnJvYWRjYXN0X2RvbWFpbnNfcmVzcG9uc2UYeyABKAsyIy5pdGVybTIuR2V0QnJvYWRjYXN0RG9tYWluc1Jlc3BvbnNlSAASLQoNdG11eF9yZXNwb25zZRh8IAEoCzIULml0ZXJtMi5UbXV4UmVzcG9uc2VIABI8ChVyZW9yZGVyX3RhYnNfcmVzcG9uc2UYfSABKAsyGy5pdGVybTIuUmVvcmRlclRhYnNSZXNwb25zZUgAEjsKFHByZWZlcmVuY2VzX3Jlc3BvbnNlGH4gASgLMhsuaXRlcm0yLlByZWZlcmVuY2VzUmVzcG9uc2VIABI8ChVjb2xvcl9wcmVzZXRfcmVzcG9uc2UYfyABKAsyGy5pdGVybTIuQ29sb3JQcmVzZXRSZXNwb25zZUgAEjgKEnNlbGVjdGlvbl9yZXNwb25zZRiAASABKAsyGS5pdGVybTIuU2VsZWN0aW9uUmVzcG9uc2VIABJMCh1zdGF0dXNfYmFyX2NvbXBvbmVudF9yZXNwb25zZRiBASABKAsyIi5pdGVybTIuU3RhdHVzQmFyQ29tcG9uZW50UmVzcG9uc2VIABJOCh5zZXRfYnJvYWRjYXN0X2RvbWFpbnNfcmVzcG9uc2UYggEgASgLMiMuaXRlcm0yLlNldEJyb2FkY2FzdERvbWFpbnNSZXNwb25zZUgAEjAKDmNsb3NlX3Jlc3BvbnNlGIMBIAEoCzIVLml0ZXJtMi5DbG9zZVJlc3BvbnNlSAASQwoYaW52b2tlX2Z1bmN0aW9uX3Jlc3BvbnNlGIQBIAEoCzIeLml0ZXJtMi5JbnZva2VGdW5jdGlvblJlc3BvbnNlSAASPQoVbGlzdF9wcm9tcHRzX3Jlc3BvbnNlGIUBIAEoCzIbLml0ZXJtMi5MaXN0UHJvbXB0c1Jlc3BvbnNlSAASLQoMbm90aWZpY2F0aW9uGOgHIAEoCzIULml0ZXJtMi5Ob3RpZmljYXRpb25IAEIMCgpzdWJtZXNzYWdlIs8DChVJbnZva2VGdW5jdGlvblJlcXVlc3QSMAoDdGFiGAEgASgLMiEuaXRlcm0yLkludm9rZUZ1bmN0aW9uUmVxdWVzdC5UYWJIABI4CgdzZXNzaW9uGAIgASgLMiUuaXRlcm0yLkludm9rZUZ1bmN0aW9uUmVxdWVzdC5TZXNzaW9uSAASNgoGd2luZG93GAMgASgLMiQuaXRlcm0yLkludm9rZUZ1bmN0aW9uUmVxdWVzdC5XaW5kb3dIABIwCgNhcHAYBCABKAsyIS5pdGVybTIuSW52b2tlRnVuY3Rpb25SZXF1ZXN0LkFwcEgAEjYKBm1ldGhvZBgHIAEoCzIkLml0ZXJtMi5JbnZva2VGdW5jdGlvblJlcXVlc3QuTWV0aG9kSAASEgoKaW52b2NhdGlvbhgFIAEoCRITCgd0aW1lb3V0GAYgASgBOgItMRoVCgNUYWISDgoGdGFiX2lkGAEgASgJGh0KB1Nlc3Npb24SEgoKc2Vzc2lvbl9pZBgBIAEoCRobCgZXaW5kb3cSEQoJd2luZG93X2lkGAEgASgJGgUKA0FwcBoaCgZNZXRob2QSEAoIcmVjZWl2ZXIYASABKAlCCQoHY29udGV4dCLZAgoWSW52b2tlRnVuY3Rpb25SZXNwb25zZRI1CgVlcnJvchgBIAEoCzIkLml0ZXJtMi5JbnZva2VGdW5jdGlvblJlc3BvbnNlLkVycm9ySAASOQoHc3VjY2VzcxgCIAEoCzImLml0ZXJtMi5JbnZva2VGdW5jdGlvblJlc3BvbnNlLlN1Y2Nlc3NIABpUCgVFcnJvchI1CgZzdGF0dXMYASABKA4yJS5pdGVybTIuSW52b2tlRnVuY3Rpb25SZXNwb25zZS5TdGF0dXMSFAoMZXJyb3JfcmVhc29uGAIgASgJGh4KB1N1Y2Nlc3MSEwoLanNvbl9yZXN1bHQYASABKAkiSAoGU3RhdHVzEgsKB1RJTUVPVVQQARIKCgZGQUlMRUQQAhIVChFSRVFVRVNUX01BTEZPUk1FRBADEg4KCklOVkFMSURfSUQQBEINCgtkaXNwb3NpdGlvbiKtAgoMQ2xvc2VSZXF1ZXN0Ei4KBHRhYnMYASABKAsyHi5pdGVybTIuQ2xvc2VSZXF1ZXN0LkNsb3NlVGFic0gAEjYKCHNlc3Npb25zGAIgASgLMiIuaXRlcm0yLkNsb3NlUmVxdWVzdC5DbG9zZVNlc3Npb25zSAASNAoHd2luZG93cxgDIAEoCzIhLml0ZXJtMi5DbG9zZVJlcXVlc3QuQ2xvc2VXaW5kb3dzSAASDQoFZm9yY2UYBCABKAgaHAoJQ2xvc2VUYWJzEg8KB3RhYl9pZHMYASADKAkaJAoNQ2xvc2VTZXNzaW9ucxITCgtzZXNzaW9uX2lkcxgBIAMoCRoiCgxDbG9zZVdpbmRvd3MSEgoKd2luZG93X2lkcxgBIAMoCUIICgZ0YXJnZXQicwoNQ2xvc2VSZXNwb25zZRIuCghzdGF0dXNlcxgBIAMoDjIcLml0ZXJtMi5DbG9zZVJlc3BvbnNlLlN0YXR1cyIyCgZTdGF0dXMSBgoCT0sQABINCglOT1RfRk9VTkQQARIRCg1VU0VSX0RFQ0xJTkVEEAIiUAoaU2V0QnJvYWRjYXN0RG9tYWluc1JlcXVlc3QSMgoRYnJvYWRjYXN0X2RvbWFpbnMYASADKAsyFy5pdGVybTIuQnJvYWRjYXN0RG9tYWluIscBChtTZXRCcm9hZGNhc3REb21haW5zUmVzcG9uc2USOgoGc3RhdHVzGAEgASgOMiouaXRlcm0yLlNldEJyb2FkY2FzdERvbWFpbnNSZXNwb25zZS5TdGF0dXMibAoGU3RhdHVzEgYKAk9LEAASFQoRU0VTU0lPTl9OT1RfRk9VTkQQARIiCh5CUk9BRENBU1RfRE9NQUlOU19OT1RfRElTSk9JTlQQAhIfChtTRVNTSU9OU19OT1RfSU5fU0FNRV9XSU5ET1cQAyLOAQoZU3RhdHVzQmFyQ29tcG9uZW50UmVxdWVzdBJFCgxvcGVuX3BvcG92ZXIYASABKAsyLS5pdGVybTIuU3RhdHVzQmFyQ29tcG9uZW50UmVxdWVzdC5PcGVuUG9wb3ZlckgAEhIKCmlkZW50aWZpZXIYAiABKAkaSwoLT3BlblBvcG92ZXISEgoKc2Vzc2lvbl9pZBgBIAEoCRIMCgRodG1sGAIgASgJEhoKBHNpemUYAyABKAsyDC5pdGVybTIuU2l6ZUIJCgdyZXF1ZXN0Iq8BChpTdGF0dXNCYXJDb21wb25lbnRSZXNwb25zZRI5CgZzdGF0dXMYASABKA4yKS5pdGVybTIuU3RhdHVzQmFyQ29tcG9uZW50UmVzcG9uc2UuU3RhdHVzIlYKBlN0YXR1cxIGCgJPSxAAEhUKEVNFU1NJT05fTk9UX0ZPVU5EEAESFQoRUkVRVUVTVF9NQUxGT1JNRUQQAhIWChJJTlZBTElEX0lERU5USUZJRVIQAyJdChJXaW5kb3dlZENvb3JkUmFuZ2USJwoLY29vcmRfcmFuZ2UYASABKAsyEi5pdGVybTIuQ29vcmRSYW5nZRIeCgdjb2x1bW5zGAIgASgLMg0uaXRlcm0yLlJhbmdlIooBCgxTdWJTZWxlY3Rpb24SOAoUd2luZG93ZWRfY29vcmRfcmFuZ2UYASABKAsyGi5pdGVybTIuV2luZG93ZWRDb29yZFJhbmdlEi0KDnNlbGVjdGlvbl9tb2RlGAIgASgOMhUuaXRlcm0yLlNlbGVjdGlvbk1vZGUSEQoJY29ubmVjdGVkGAMgASgIIjkKCVNlbGVjdGlvbhIsCg5zdWJfc2VsZWN0aW9ucxgBIAMoCzIULml0ZXJtMi5TdWJTZWxlY3Rpb24itwIKEFNlbGVjdGlvblJlcXVlc3QSTQoVZ2V0X3NlbGVjdGlvbl9yZXF1ZXN0GAEgASgLMiwuaXRlcm0yLlNlbGVjdGlvblJlcXVlc3QuR2V0U2VsZWN0aW9uUmVxdWVzdEgAEk0KFXNldF9zZWxlY3Rpb25fcmVxdWVzdBgCIAEoCzIsLml0ZXJtMi5TZWxlY3Rpb25SZXF1ZXN0LlNldFNlbGVjdGlvblJlcXVlc3RIABopChNHZXRTZWxlY3Rpb25SZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkaTwoTU2V0U2VsZWN0aW9uUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEiQKCXNlbGVjdGlvbhgCIAEoCzIRLml0ZXJtMi5TZWxlY3Rpb25CCQoHcmVxdWVzdCKcAwoRU2VsZWN0aW9uUmVzcG9uc2USMAoGc3RhdHVzGAEgASgOMiAuaXRlcm0yLlNlbGVjdGlvblJlc3BvbnNlLlN0YXR1cxJQChZnZXRfc2VsZWN0aW9uX3Jlc3BvbnNlGAIgASgLMi4uaXRlcm0yLlNlbGVjdGlvblJlc3BvbnNlLkdldFNlbGVjdGlvblJlc3BvbnNlSAASUAoWc2V0X3NlbGVjdGlvbl9yZXNwb25zZRgDIAEoCzIuLml0ZXJtMi5TZWxlY3Rpb25SZXNwb25zZS5TZXRTZWxlY3Rpb25SZXNwb25zZUgAGjwKFEdldFNlbGVjdGlvblJlc3BvbnNlEiQKCXNlbGVjdGlvbhgCIAEoCzIRLml0ZXJtMi5TZWxlY3Rpb24aFgoUU2V0U2VsZWN0aW9uUmVzcG9uc2UiTwoGU3RhdHVzEgYKAk9LEAASEwoPSU5WQUxJRF9TRVNTSU9OEAESEQoNSU5WQUxJRF9SQU5HRRACEhUKEVJFUVVFU1RfTUFMRk9STUVEEANCCgoIcmVzcG9uc2UixQEKEkNvbG9yUHJlc2V0UmVxdWVzdBI+CgxsaXN0X3ByZXNldHMYASABKAsyJi5pdGVybTIuQ29sb3JQcmVzZXRSZXF1ZXN0Lkxpc3RQcmVzZXRzSAASOgoKZ2V0X3ByZXNldBgCIAEoCzIkLml0ZXJtMi5Db2xvclByZXNldFJlcXVlc3QuR2V0UHJlc2V0SAAaDQoLTGlzdFByZXNldHMaGQoJR2V0UHJlc2V0EgwKBG5hbWUYASABKAlCCQoHcmVxdWVzdCL0AwoTQ29sb3JQcmVzZXRSZXNwb25zZRI/CgxsaXN0X3ByZXNldHMYASABKAsyJy5pdGVybTIuQ29sb3JQcmVzZXRSZXNwb25zZS5MaXN0UHJlc2V0c0gAEjsKCmdldF9wcmVzZXQYAiABKAsyJS5pdGVybTIuQ29sb3JQcmVzZXRSZXNwb25zZS5HZXRQcmVzZXRIABIyCgZzdGF0dXMYAyABKA4yIi5pdGVybTIuQ29sb3JQcmVzZXRSZXNwb25zZS5TdGF0dXMaGwoLTGlzdFByZXNldHMSDAoEbmFtZRgBIAMoCRrCAQoJR2V0UHJlc2V0EkoKDmNvbG9yX3NldHRpbmdzGAEgAygLMjIuaXRlcm0yLkNvbG9yUHJlc2V0UmVzcG9uc2UuR2V0UHJlc2V0LkNvbG9yU2V0dGluZxppCgxDb2xvclNldHRpbmcSCwoDcmVkGAEgASgCEg0KBWdyZWVuGAIgASgCEgwKBGJsdWUYAyABKAISDQoFYWxwaGEYBCABKAISEwoLY29sb3Jfc3BhY2UYBSABKAkSCwoDa2V5GAYgASgJIj0KBlN0YXR1cxIGCgJPSxAAEhQKEFBSRVNFVF9OT1RfRk9VTkQQARIVChFSRVFVRVNUX01BTEZPUk1FRBACQgoKCHJlc3BvbnNlIssEChJQcmVmZXJlbmNlc1JlcXVlc3QSNAoIcmVxdWVzdHMYASADKAsyIi5pdGVybTIuUHJlZmVyZW5jZXNSZXF1ZXN0LlJlcXVlc3Qa/gMKB1JlcXVlc3QSUgoWc2V0X3ByZWZlcmVuY2VfcmVxdWVzdBgBIAEoCzIwLml0ZXJtMi5QcmVmZXJlbmNlc1JlcXVlc3QuUmVxdWVzdC5TZXRQcmVmZXJlbmNlSAASUgoWZ2V0X3ByZWZlcmVuY2VfcmVxdWVzdBgCIAEoCzIwLml0ZXJtMi5QcmVmZXJlbmNlc1JlcXVlc3QuUmVxdWVzdC5HZXRQcmVmZXJlbmNlSAASWwobc2V0X2RlZmF1bHRfcHJvZmlsZV9yZXF1ZXN0GAMgASgLMjQuaXRlcm0yLlByZWZlcmVuY2VzUmVxdWVzdC5SZXF1ZXN0LlNldERlZmF1bHRQcm9maWxlSAASWwobZ2V0X2RlZmF1bHRfcHJvZmlsZV9yZXF1ZXN0GAQgASgLMjQuaXRlcm0yLlByZWZlcmVuY2VzUmVxdWVzdC5SZXF1ZXN0LkdldERlZmF1bHRQcm9maWxlSAAaMAoNU2V0UHJlZmVyZW5jZRILCgNrZXkYASABKAkSEgoKanNvbl92YWx1ZRgCIAEoCRocCg1HZXRQcmVmZXJlbmNlEgsKA2tleRgBIAEoCRohChFTZXREZWZhdWx0UHJvZmlsZRIMCgRndWlkGAEgASgJGhMKEUdldERlZmF1bHRQcm9maWxlQgkKB3JlcXVlc3QivwcKE1ByZWZlcmVuY2VzUmVzcG9uc2USMwoHcmVzdWx0cxgBIAMoCzIiLml0ZXJtMi5QcmVmZXJlbmNlc1Jlc3BvbnNlLlJlc3VsdBryBgoGUmVzdWx0ElUKFHVucmVjb2duaXplZF9yZXF1ZXN0GAEgASgLMjUuaXRlcm0yLlByZWZlcmVuY2VzUmVzcG9uc2UuUmVzdWx0LlVucmVjb2duaXplZFJlc3VsdEgAElcKFXNldF9wcmVmZXJlbmNlX3Jlc3VsdBgCIAEoCzI2Lml0ZXJtMi5QcmVmZXJlbmNlc1Jlc3BvbnNlLlJlc3VsdC5TZXRQcmVmZXJlbmNlUmVzdWx0SAASVwoVZ2V0X3ByZWZlcmVuY2VfcmVzdWx0GAMgASgLMjYuaXRlcm0yLlByZWZlcmVuY2VzUmVzcG9uc2UuUmVzdWx0LkdldFByZWZlcmVuY2VSZXN1bHRIABJgChpzZXRfZGVmYXVsdF9wcm9maWxlX3Jlc3VsdBgEIAEoCzI6Lml0ZXJtMi5QcmVmZXJlbmNlc1Jlc3BvbnNlLlJlc3VsdC5TZXREZWZhdWx0UHJvZmlsZVJlc3VsdEgAEmAKGmdldF9kZWZhdWx0X3Byb2ZpbGVfcmVzdWx0GAUgASgLMjouaXRlcm0yLlByZWZlcmVuY2VzUmVzcG9uc2UuUmVzdWx0LkdldERlZmF1bHRQcm9maWxlUmVzdWx0SAAalwEKE1NldFByZWZlcmVuY2VSZXN1bHQSTQoGc3RhdHVzGAEgASgOMj0uaXRlcm0yLlByZWZlcmVuY2VzUmVzcG9uc2UuUmVzdWx0LlNldFByZWZlcmVuY2VSZXN1bHQuU3RhdHVzIjEKBlN0YXR1cxIGCgJPSxAAEgwKCEJBRF9KU09OEAESEQoNSU5WQUxJRF9WQUxVRRACGikKE0dldFByZWZlcmVuY2VSZXN1bHQSEgoKanNvbl92YWx1ZRgBIAEoCRqMAQoXU2V0RGVmYXVsdFByb2ZpbGVSZXN1bHQSUQoGc3RhdHVzGAEgASgOMkEuaXRlcm0yLlByZWZlcmVuY2VzUmVzcG9uc2UuUmVzdWx0LlNldERlZmF1bHRQcm9maWxlUmVzdWx0LlN0YXR1cyIeCgZTdGF0dXMSBgoCT0sQABIMCghCQURfR1VJRBABGhQKElVucmVjb2duaXplZFJlc3VsdBonChdHZXREZWZhdWx0UHJvZmlsZVJlc3VsdBIMCgRndWlkGAEgASgJQggKBnJlc3VsdCKCAQoSUmVvcmRlclRhYnNSZXF1ZXN0EjoKC2Fzc2lnbm1lbnRzGAMgAygLMiUuaXRlcm0yLlJlb3JkZXJUYWJzUmVxdWVzdC5Bc3NpZ25tZW50GjAKCkFzc2lnbm1lbnQSEQoJd2luZG93X2lkGAEgASgJEg8KB3RhYl9pZHMYAiADKAkingEKE1Jlb3JkZXJUYWJzUmVzcG9uc2USMgoGc3RhdHVzGAQgASgOMiIuaXRlcm0yLlJlb3JkZXJUYWJzUmVzcG9uc2UuU3RhdHVzIlMKBlN0YXR1cxIGCgJPSxAAEhYKEklOVkFMSURfQVNTSUdOTUVOVBABEhUKEUlOVkFMSURfV0lORE9XX0lEEAISEgoOSU5WQUxJRF9UQUJfSUQQAyLjAwoLVG11eFJlcXVlc3QSPwoQbGlzdF9jb25uZWN0aW9ucxgBIAEoCzIjLml0ZXJtMi5UbXV4UmVxdWVzdC5MaXN0Q29ubmVjdGlvbnNIABI3CgxzZW5kX2NvbW1hbmQYAiABKAsyHy5pdGVybTIuVG11eFJlcXVlc3QuU2VuZENvbW1hbmRIABJCChJzZXRfd2luZG93X3Zpc2libGUYAyABKAsyJC5pdGVybTIuVG11eFJlcXVlc3QuU2V0V2luZG93VmlzaWJsZUgAEjkKDWNyZWF0ZV93aW5kb3cYBCABKAsyIC5pdGVybTIuVG11eFJlcXVlc3QuQ3JlYXRlV2luZG93SAAaEQoPTGlzdENvbm5lY3Rpb25zGjUKC1NlbmRDb21tYW5kEhUKDWNvbm5lY3Rpb25faWQYASABKAkSDwoHY29tbWFuZBgCIAEoCRpNChBTZXRXaW5kb3dWaXNpYmxlEhUKDWNvbm5lY3Rpb25faWQYASABKAkSEQoJd2luZG93X2lkGAIgASgJEg8KB3Zpc2libGUYAyABKAgaNwoMQ3JlYXRlV2luZG93EhUKDWNvbm5lY3Rpb25faWQYASABKAkSEAoIYWZmaW5pdHkYAiABKAlCCQoHcGF5bG9hZCKJBQoMVG11eFJlc3BvbnNlEkAKEGxpc3RfY29ubmVjdGlvbnMYASABKAsyJC5pdGVybTIuVG11eFJlc3BvbnNlLkxpc3RDb25uZWN0aW9uc0gAEjgKDHNlbmRfY29tbWFuZBgCIAEoCzIgLml0ZXJtMi5UbXV4UmVzcG9uc2UuU2VuZENvbW1hbmRIABJDChJzZXRfd2luZG93X3Zpc2libGUYAyABKAsyJS5pdGVybTIuVG11eFJlc3BvbnNlLlNldFdpbmRvd1Zpc2libGVIABI6Cg1jcmVhdGVfd2luZG93GAUgASgLMiEuaXRlcm0yLlRtdXhSZXNwb25zZS5DcmVhdGVXaW5kb3dIABIrCgZzdGF0dXMYBCABKA4yGy5pdGVybTIuVG11eFJlc3BvbnNlLlN0YXR1cxqXAQoPTGlzdENvbm5lY3Rpb25zEkQKC2Nvbm5lY3Rpb25zGAEgAygLMi8uaXRlcm0yLlRtdXhSZXNwb25zZS5MaXN0Q29ubmVjdGlvbnMuQ29ubmVjdGlvbho+CgpDb25uZWN0aW9uEhUKDWNvbm5lY3Rpb25faWQYASABKAkSGQoRb3duaW5nX3Nlc3Npb25faWQYAiABKAkaHQoLU2VuZENvbW1hbmQSDgoGb3V0cHV0GAEgASgJGhIKEFNldFdpbmRvd1Zpc2libGUaHgoMQ3JlYXRlV2luZG93Eg4KBnRhYl9pZBgBIAEoCSJXCgZTdGF0dXMSBgoCT0sQABITCg9JTlZBTElEX1JFUVVFU1QQARIZChVJTlZBTElEX0NPTk5FQ1RJT05fSUQQAhIVChFJTlZBTElEX1dJTkRPV19JRBADQgkKB3BheWxvYWQiHAoaR2V0QnJvYWRjYXN0RG9tYWluc1JlcXVlc3QiJgoPQnJvYWRjYXN0RG9tYWluEhMKC3Nlc3Npb25faWRzGAEgAygJIlEKG0dldEJyb2FkY2FzdERvbWFpbnNSZXNwb25zZRIyChFicm9hZGNhc3RfZG9tYWlucxgBIAMoCzIXLml0ZXJtMi5Ccm9hZGNhc3REb21haW4iSgoTU2V0VGFiTGF5b3V0UmVxdWVzdBIjCgRyb290GAEgASgLMhUuaXRlcm0yLlNwbGl0VHJlZU5vZGUSDgoGdGFiX2lkGAIgASgJIo8BChRTZXRUYWJMYXlvdXRSZXNwb25zZRIzCgZzdGF0dXMYASABKA4yIy5pdGVybTIuU2V0VGFiTGF5b3V0UmVzcG9uc2UuU3RhdHVzIkIKBlN0YXR1cxIGCgJPSxAAEg4KCkJBRF9UQUJfSUQQARIOCgpXUk9OR19UUkVFEAISEAoMSU5WQUxJRF9TSVpFEAMiOQoPTWVudUl0ZW1SZXF1ZXN0EhIKCmlkZW50aWZpZXIYASABKAkSEgoKcXVlcnlfb25seRgCIAEoCCKZAQoQTWVudUl0ZW1SZXNwb25zZRIvCgZzdGF0dXMYASABKA4yHy5pdGVybTIuTWVudUl0ZW1SZXNwb25zZS5TdGF0dXMSDwoHY2hlY2tlZBgCIAEoCBIPCgdlbmFibGVkGAMgASgIIjIKBlN0YXR1cxIGCgJPSxAAEhIKDkJBRF9JREVOVElGSUVSEAESDAoIRElTQUJMRUQQAiJDChVSZXN0YXJ0U2Vzc2lvblJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIWCg5vbmx5X2lmX2V4aXRlZBgCIAEoCCKVAQoWUmVzdGFydFNlc3Npb25SZXNwb25zZRI1CgZzdGF0dXMYASABKA4yJS5pdGVybTIuUmVzdGFydFNlc3Npb25SZXNwb25zZS5TdGF0dXMiRAoGU3RhdHVzEgYKAk9LEAASFQoRU0VTU0lPTl9OT1RfRk9VTkQQARIbChdTRVNTSU9OX05PVF9SRVNUQVJUQUJMRRACInAKIFNlcnZlck9yaWdpbmF0ZWRSUENSZXN1bHRSZXF1ZXN0EhIKCnJlcXVlc3RfaWQYASABKAkSGAoOanNvbl9leGNlcHRpb24YAiABKAlIABIUCgpqc29uX3ZhbHVlGAMgASgJSABCCAoGcmVzdWx0IiMKIVNlcnZlck9yaWdpbmF0ZWRSUENSZXN1bHRSZXNwb25zZSI4ChNMaXN0UHJvZmlsZXNSZXF1ZXN0EhIKCnByb3BlcnRpZXMYASADKAkSDQoFZ3VpZHMYAiADKAkihgEKFExpc3RQcm9maWxlc1Jlc3BvbnNlEjYKCHByb2ZpbGVzGAEgAygLMiQuaXRlcm0yLkxpc3RQcm9maWxlc1Jlc3BvbnNlLlByb2ZpbGUaNgoHUHJvZmlsZRIrCgpwcm9wZXJ0aWVzGAEgAygLMhcuaXRlcm0yLlByb2ZpbGVQcm9wZXJ0eSIOCgxGb2N1c1JlcXVlc3QiSAoNRm9jdXNSZXNwb25zZRI3Cg1ub3RpZmljYXRpb25zGAEgAygLMiAuaXRlcm0yLkZvY3VzQ2hhbmdlZE5vdGlmaWNhdGlvbiKdAQoXU2F2ZWRBcnJhbmdlbWVudFJlcXVlc3QSDAoEbmFtZRgBIAEoCRI2CgZhY3Rpb24YAiABKA4yJi5pdGVybTIuU2F2ZWRBcnJhbmdlbWVudFJlcXVlc3QuQWN0aW9uEhEKCXdpbmRvd19pZBgDIAEoCSIpCgZBY3Rpb24SCwoHUkVTVE9SRRAAEggKBFNBVkUQARIICgRMSVNUEAIivAEKGFNhdmVkQXJyYW5nZW1lbnRSZXNwb25zZRI3CgZzdGF0dXMYASABKA4yJy5pdGVybTIuU2F2ZWRBcnJhbmdlbWVudFJlc3BvbnNlLlN0YXR1cxINCgVuYW1lcxgCIAMoCSJYCgZTdGF0dXMSBgoCT0sQABIZChVBUlJBTkdFTUVOVF9OT1RfRk9VTkQQARIUChBXSU5ET1dfTk9UX0ZPVU5EEAISFQoRUkVRVUVTVF9NQUxGT1JNRUQQAyLBAQoPVmFyaWFibGVSZXF1ZXN0EhQKCnNlc3Npb25faWQYASABKAlIABIQCgZ0YWJfaWQYBCABKAlIABINCgNhcHAYBSABKAhIABITCgl3aW5kb3dfaWQYBiABKAlIABIoCgNzZXQYAiADKAsyGy5pdGVybTIuVmFyaWFibGVSZXF1ZXN0LlNldBILCgNnZXQYAyADKAkaIgoDU2V0EgwKBG5hbWUYASABKAkSDQoFdmFsdWUYAiABKAlCBwoFc2NvcGUi5QEKEFZhcmlhYmxlUmVzcG9uc2USLwoGc3RhdHVzGAEgASgOMh8uaXRlcm0yLlZhcmlhYmxlUmVzcG9uc2UuU3RhdHVzEg4KBnZhbHVlcxgCIAMoCSKPAQoGU3RhdHVzEgYKAk9LEAASFQoRU0VTU0lPTl9OT1RfRk9VTkQQARIQCgxJTlZBTElEX05BTUUQAhIRCg1NSVNTSU5HX1NDT1BFEAMSEQoNVEFCX05PVF9GT1VORBAEEhgKFE1VTFRJX0dFVF9ESVNBTExPV0VEEAUSFAoQV0lORE9XX05PVF9GT1VORBAGIpYCCg9BY3RpdmF0ZVJlcXVlc3QSEwoJd2luZG93X2lkGAEgASgJSAASEAoGdGFiX2lkGAIgASgJSAASFAoKc2Vzc2lvbl9pZBgDIAEoCUgAEhoKEm9yZGVyX3dpbmRvd19mcm9udBgEIAEoCBISCgpzZWxlY3RfdGFiGAUgASgIEhYKDnNlbGVjdF9zZXNzaW9uGAYgASgIEjEKDGFjdGl2YXRlX2FwcBgHIAEoCzIbLml0ZXJtMi5BY3RpdmF0ZVJlcXVlc3QuQXBwGj0KA0FwcBIZChFyYWlzZV9hbGxfd2luZG93cxgBIAEoCBIbChNpZ25vcmluZ19vdGhlcl9hcHBzGAIgASgIQgwKCmlkZW50aWZpZXIifQoQQWN0aXZhdGVSZXNwb25zZRIvCgZzdGF0dXMYASABKA4yHy5pdGVybTIuQWN0aXZhdGVSZXNwb25zZS5TdGF0dXMiOAoGU3RhdHVzEgYKAk9LEAASEgoOQkFEX0lERU5USUZJRVIQARISCg5JTlZBTElEX09QVElPThACIjEKDUluamVjdFJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAMoCRIMCgRkYXRhGAIgASgMImgKDkluamVjdFJlc3BvbnNlEi0KBnN0YXR1cxgBIAMoDjIdLml0ZXJtMi5JbmplY3RSZXNwb25zZS5TdGF0dXMiJwoGU3RhdHVzEgYKAk9LEAASFQoRU0VTU0lPTl9OT1RfRk9VTkQQASJbChJHZXRQcm9wZXJ0eVJlcXVlc3QSEwoJd2luZG93X2lkGAEgASgJSAASFAoKc2Vzc2lvbl9pZBgDIAEoCUgAEgwKBG5hbWUYAiABKAlCDAoKaWRlbnRpZmllciKaAQoTR2V0UHJvcGVydHlSZXNwb25zZRIyCgZzdGF0dXMYASABKA4yIi5pdGVybTIuR2V0UHJvcGVydHlSZXNwb25zZS5TdGF0dXMSEgoKanNvbl92YWx1ZRgCIAEoCSI7CgZTdGF0dXMSBgoCT0sQABIVChFVTlJFQ09HTklaRURfTkFNRRABEhIKDklOVkFMSURfVEFSR0VUEAIibwoSU2V0UHJvcGVydHlSZXF1ZXN0EhMKCXdpbmRvd19pZBgBIAEoCUgAEhQKCnNlc3Npb25faWQYBSABKAlIABIMCgRuYW1lGAMgASgJEhIKCmpzb25fdmFsdWUYBCABKAlCDAoKaWRlbnRpZmllciLDAQoTU2V0UHJvcGVydHlSZXNwb25zZRIyCgZzdGF0dXMYASABKA4yIi5pdGVybTIuU2V0UHJvcGVydHlSZXNwb25zZS5TdGF0dXMieAoGU3RhdHVzEgYKAk9LEAASFQoRVU5SRUNPR05JWkVEX05BTUUQARIRCg1JTlZBTElEX1ZBTFVFEAISEgoOSU5WQUxJRF9UQVJHRVQQAxIMCghERUZFUlJFRBAEEg4KCklNUE9TU0lCTEUQBRIKCgZGQUlMRUQQBiLYAQoTUmVnaXN0ZXJUb29sUmVxdWVzdBIMCgRuYW1lGAEgASgJEhIKCmlkZW50aWZpZXIYAiABKAkSKwoccmV2ZWFsX2lmX2FscmVhZHlfcmVnaXN0ZXJlZBgFIAEoCDoFZmFsc2USRgoJdG9vbF90eXBlGAMgASgOMiQuaXRlcm0yLlJlZ2lzdGVyVG9vbFJlcXVlc3QuVG9vbFR5cGU6DVdFQl9WSUVXX1RPT0wSCwoDVVJMGAQgASgJIh0KCFRvb2xUeXBlEhEKDVdFQl9WSUVXX1RPT0wQASLfDAoWUlBDUmVnaXN0cmF0aW9uUmVxdWVzdBIMCgRuYW1lGAEgASgJEkYKCWFyZ3VtZW50cxgCIAMoCzIzLml0ZXJtMi5SUENSZWdpc3RyYXRpb25SZXF1ZXN0LlJQQ0FyZ3VtZW50U2lnbmF0dXJlEjwKCGRlZmF1bHRzGAQgAygLMiouaXRlcm0yLlJQQ1JlZ2lzdHJhdGlvblJlcXVlc3QuUlBDQXJndW1lbnQSDwoHdGltZW91dBgDIAEoAhI6CgRyb2xlGAUgASgOMiMuaXRlcm0yLlJQQ1JlZ2lzdHJhdGlvblJlcXVlc3QuUm9sZToHR0VORVJJQxJZChhzZXNzaW9uX3RpdGxlX2F0dHJpYnV0ZXMYByABKAsyNS5pdGVybTIuUlBDUmVnaXN0cmF0aW9uUmVxdWVzdC5TZXNzaW9uVGl0bGVBdHRyaWJ1dGVzSAASZgofc3RhdHVzX2Jhcl9jb21wb25lbnRfYXR0cmlidXRlcxgIIAEoCzI7Lml0ZXJtMi5SUENSZWdpc3RyYXRpb25SZXF1ZXN0LlN0YXR1c0JhckNvbXBvbmVudEF0dHJpYnV0ZXNIABJXChdjb250ZXh0X21lbnVfYXR0cmlidXRlcxgJIAEoCzI0Lml0ZXJtMi5SUENSZWdpc3RyYXRpb25SZXF1ZXN0LkNvbnRleHRNZW51QXR0cmlidXRlc0gAEhgKDGRpc3BsYXlfbmFtZRgGIAEoCUICGAEaJAoUUlBDQXJndW1lbnRTaWduYXR1cmUSDAoEbmFtZRgBIAEoCRopCgtSUENBcmd1bWVudBIMCgRuYW1lGAEgASgJEgwKBHBhdGgYAiABKAkaSQoWU2Vzc2lvblRpdGxlQXR0cmlidXRlcxIUCgxkaXNwbGF5X25hbWUYASABKAkSGQoRdW5pcXVlX2lkZW50aWZpZXIYBiABKAka2QUKHFN0YXR1c0JhckNvbXBvbmVudEF0dHJpYnV0ZXMSGQoRc2hvcnRfZGVzY3JpcHRpb24YASABKAkSHAoUZGV0YWlsZWRfZGVzY3JpcHRpb24YAiABKAkSTwoFa25vYnMYAyADKAsyQC5pdGVybTIuUlBDUmVnaXN0cmF0aW9uUmVxdWVzdC5TdGF0dXNCYXJDb21wb25lbnRBdHRyaWJ1dGVzLktub2ISEAoIZXhlbXBsYXIYBCABKAkSFgoOdXBkYXRlX2NhZGVuY2UYBSABKAISGQoRdW5pcXVlX2lkZW50aWZpZXIYBiABKAkSTwoFaWNvbnMYByADKAsyQC5pdGVybTIuUlBDUmVnaXN0cmF0aW9uUmVxdWVzdC5TdGF0dXNCYXJDb21wb25lbnRBdHRyaWJ1dGVzLkljb24SXgoGZm9ybWF0GAggASgOMkIuaXRlcm0yLlJQQ1JlZ2lzdHJhdGlvblJlcXVlc3QuU3RhdHVzQmFyQ29tcG9uZW50QXR0cmlidXRlcy5Gb3JtYXQ6ClBMQUlOX1RFWFQa7wEKBEtub2ISDAoEbmFtZRgBIAEoCRJTCgR0eXBlGAIgASgOMkUuaXRlcm0yLlJQQ1JlZ2lzdHJhdGlvblJlcXVlc3QuU3RhdHVzQmFyQ29tcG9uZW50QXR0cmlidXRlcy5Lbm9iLlR5cGUSEwoLcGxhY2Vob2xkZXIYAyABKAkSGgoSanNvbl9kZWZhdWx0X3ZhbHVlGAQgASgJEgsKA2tleRgFIAEoCSJGCgRUeXBlEgwKCENoZWNrYm94EAESCgoGU3RyaW5nEAISGQoVUG9zaXRpdmVGbG9hdGluZ1BvaW50EAMSCQoFQ29sb3IQBBojCgRJY29uEgwKBGRhdGEYASABKAwSDQoFc2NhbGUYAiABKAIiIgoGRm9ybWF0Eg4KClBMQUlOX1RFWFQQABIICgRIVE1MEAEaSAoVQ29udGV4dE1lbnVBdHRyaWJ1dGVzEhQKDGRpc3BsYXlfbmFtZRgBIAEoCRIZChF1bmlxdWVfaWRlbnRpZmllchgCIAEoCSJSCgRSb2xlEgsKB0dFTkVSSUMQARIRCg1TRVNTSU9OX1RJVExFEAISGAoUU1RBVFVTX0JBUl9DT01QT05FTlQQAxIQCgxDT05URVhUX01FTlUQBEIYChZSb2xlU3BlY2lmaWNBdHRyaWJ1dGVzIosBChRSZWdpc3RlclRvb2xSZXNwb25zZRIzCgZzdGF0dXMYASABKA4yIy5pdGVybTIuUmVnaXN0ZXJUb29sUmVzcG9uc2UuU3RhdHVzIj4KBlN0YXR1cxIGCgJPSxAAEhUKEVJFUVVFU1RfTUFMRk9STUVEEAESFQoRUEVSTUlTU0lPTl9ERU5JRUQQAiK+AQoQS2V5c3Ryb2tlUGF0dGVybhItChJyZXF1aXJlZF9tb2RpZmllcnMYASADKA4yES5pdGVybTIuTW9kaWZpZXJzEi4KE2ZvcmJpZGRlbl9tb2RpZmllcnMYAiADKA4yES5pdGVybTIuTW9kaWZpZXJzEhAKCGtleWNvZGVzGAMgAygFEhIKCmNoYXJhY3RlcnMYBCADKAkSJQodY2hhcmFjdGVyc19pZ25vcmluZ19tb2RpZmllcnMYBSADKAkiZQoXS2V5c3Ryb2tlTW9uaXRvclJlcXVlc3QSOAoScGF0dGVybnNfdG9faWdub3JlGAEgAygLMhguaXRlcm0yLktleXN0cm9rZVBhdHRlcm5CAhgBEhAKCGFkdmFuY2VkGAIgASgIIk4KFktleXN0cm9rZUZpbHRlclJlcXVlc3QSNAoScGF0dGVybnNfdG9faWdub3JlGAEgAygLMhguaXRlcm0yLktleXN0cm9rZVBhdHRlcm4iYAoWVmFyaWFibGVNb25pdG9yUmVxdWVzdBIMCgRuYW1lGAEgASgJEiQKBXNjb3BlGAIgASgOMhUuaXRlcm0yLlZhcmlhYmxlU2NvcGUSEgoKaWRlbnRpZmllchgDIAEoCSIkChRQcm9maWxlQ2hhbmdlUmVxdWVzdBIMCgRndWlkGAEgASgJIkAKFFByb21wdE1vbml0b3JSZXF1ZXN0EigKBW1vZGVzGAEgAygOMhkuaXRlcm0yLlByb21wdE1vbml0b3JNb2RlIo0EChNOb3RpZmljYXRpb25SZXF1ZXN0Eg8KB3Nlc3Npb24YASABKAkSEQoJc3Vic2NyaWJlGAIgASgIEjMKEW5vdGlmaWNhdGlvbl90eXBlGAMgASgOMhguaXRlcm0yLk5vdGlmaWNhdGlvblR5cGUSQgoYcnBjX3JlZ2lzdHJhdGlvbl9yZXF1ZXN0GAQgASgLMh4uaXRlcm0yLlJQQ1JlZ2lzdHJhdGlvblJlcXVlc3RIABJEChlrZXlzdHJva2VfbW9uaXRvcl9yZXF1ZXN0GAUgASgLMh8uaXRlcm0yLktleXN0cm9rZU1vbml0b3JSZXF1ZXN0SAASQgoYdmFyaWFibGVfbW9uaXRvcl9yZXF1ZXN0GAYgASgLMh4uaXRlcm0yLlZhcmlhYmxlTW9uaXRvclJlcXVlc3RIABI+ChZwcm9maWxlX2NoYW5nZV9yZXF1ZXN0GAcgASgLMhwuaXRlcm0yLlByb2ZpbGVDaGFuZ2VSZXF1ZXN0SAASQgoYa2V5c3Ryb2tlX2ZpbHRlcl9yZXF1ZXN0GAggASgLMh4uaXRlcm0yLktleXN0cm9rZUZpbHRlclJlcXVlc3RIABI+ChZwcm9tcHRfbW9uaXRvcl9yZXF1ZXN0GAkgASgLMhwuaXRlcm0yLlByb21wdE1vbml0b3JSZXF1ZXN0SABCCwoJYXJndW1lbnRzIvUBChROb3RpZmljYXRpb25SZXNwb25zZRIzCgZzdGF0dXMYASABKA4yIy5pdGVybTIuTm90aWZpY2F0aW9uUmVzcG9uc2UuU3RhdHVzIqcBCgZTdGF0dXMSBgoCT0sQABIVChFTRVNTSU9OX05PVF9GT1VORBABEhUKEVJFUVVFU1RfTUFMRk9STUVEEAISEgoOTk9UX1NVQlNDUklCRUQQAxIWChJBTFJFQURZX1NVQlNDUklCRUQQBBIjCh9EVVBMSUNBVEVfU0VSVkVSX09SSUdJTkFURURfUlBDEAUSFgoSSU5WQUxJRF9JREVOVElGSUVSEAYiygcKDE5vdGlmaWNhdGlvbhI9ChZrZXlzdHJva2Vfbm90aWZpY2F0aW9uGAEgASgLMh0uaXRlcm0yLktleXN0cm9rZU5vdGlmaWNhdGlvbhJEChpzY3JlZW5fdXBkYXRlX25vdGlmaWNhdGlvbhgCIAEoCzIgLml0ZXJtMi5TY3JlZW5VcGRhdGVOb3RpZmljYXRpb24SNwoTcHJvbXB0X25vdGlmaWNhdGlvbhgDIAEoCzIaLml0ZXJtMi5Qcm9tcHROb3RpZmljYXRpb24STAocbG9jYXRpb25fY2hhbmdlX25vdGlmaWNhdGlvbhgEIAEoCzIiLml0ZXJtMi5Mb2NhdGlvbkNoYW5nZU5vdGlmaWNhdGlvbkICGAESVQojY3VzdG9tX2VzY2FwZV9zZXF1ZW5jZV9ub3RpZmljYXRpb24YBSABKAsyKC5pdGVybTIuQ3VzdG9tRXNjYXBlU2VxdWVuY2VOb3RpZmljYXRpb24SQAoYbmV3X3Nlc3Npb25fbm90aWZpY2F0aW9uGAYgASgLMh4uaXRlcm0yLk5ld1Nlc3Npb25Ob3RpZmljYXRpb24STAoedGVybWluYXRlX3Nlc3Npb25fbm90aWZpY2F0aW9uGAcgASgLMiQuaXRlcm0yLlRlcm1pbmF0ZVNlc3Npb25Ob3RpZmljYXRpb24SRgobbGF5b3V0X2NoYW5nZWRfbm90aWZpY2F0aW9uGAggASgLMiEuaXRlcm0yLkxheW91dENoYW5nZWROb3RpZmljYXRpb24SRAoaZm9jdXNfY2hhbmdlZF9ub3RpZmljYXRpb24YCSABKAsyIC5pdGVybTIuRm9jdXNDaGFuZ2VkTm90aWZpY2F0aW9uElMKInNlcnZlcl9vcmlnaW5hdGVkX3JwY19ub3RpZmljYXRpb24YCiABKAsyJy5pdGVybTIuU2VydmVyT3JpZ2luYXRlZFJQQ05vdGlmaWNhdGlvbhJOChlicm9hZGNhc3RfZG9tYWluc19jaGFuZ2VkGAsgASgLMisuaXRlcm0yLkJyb2FkY2FzdERvbWFpbnNDaGFuZ2VkTm90aWZpY2F0aW9uEkoKHXZhcmlhYmxlX2NoYW5nZWRfbm90aWZpY2F0aW9uGAwgASgLMiMuaXRlcm0yLlZhcmlhYmxlQ2hhbmdlZE5vdGlmaWNhdGlvbhJIChxwcm9maWxlX2NoYW5nZWRfbm90aWZpY2F0aW9uGA0gASgLMiIuaXRlcm0yLlByb2ZpbGVDaGFuZ2VkTm90aWZpY2F0aW9uIioKGlByb2ZpbGVDaGFuZ2VkTm90aWZpY2F0aW9uEgwKBGd1aWQYASABKAkifQobVmFyaWFibGVDaGFuZ2VkTm90aWZpY2F0aW9uEiQKBXNjb3BlGAEgASgOMhUuaXRlcm0yLlZhcmlhYmxlU2NvcGUSEgoKaWRlbnRpZmllchgCIAEoCRIMCgRuYW1lGAMgASgJEhYKDmpzb25fbmV3X3ZhbHVlGAQgASgJIlkKI0Jyb2FkY2FzdERvbWFpbnNDaGFuZ2VkTm90aWZpY2F0aW9uEjIKEWJyb2FkY2FzdF9kb21haW5zGAEgAygLMhcuaXRlcm0yLkJyb2FkY2FzdERvbWFpbiKQAQoTU2VydmVyT3JpZ2luYXRlZFJQQxIMCgRuYW1lGAIgASgJEjoKCWFyZ3VtZW50cxgDIAMoCzInLml0ZXJtMi5TZXJ2ZXJPcmlnaW5hdGVkUlBDLlJQQ0FyZ3VtZW50Gi8KC1JQQ0FyZ3VtZW50EgwKBG5hbWUYASABKAkSEgoKanNvbl92YWx1ZRgCIAEoCSJfCh9TZXJ2ZXJPcmlnaW5hdGVkUlBDTm90aWZpY2F0aW9uEhIKCnJlcXVlc3RfaWQYASABKAkSKAoDcnBjGAIgASgLMhsuaXRlcm0yLlNlcnZlck9yaWdpbmF0ZWRSUEMihQIKFUtleXN0cm9rZU5vdGlmaWNhdGlvbhISCgpjaGFyYWN0ZXJzGAEgASgJEiMKG2NoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVycxgCIAEoCRIkCgltb2RpZmllcnMYAyADKA4yES5pdGVybTIuTW9kaWZpZXJzEg8KB2tleUNvZGUYBCABKAUSDwoHc2Vzc2lvbhgFIAEoCRI0CgZhY3Rpb24YBiABKA4yJC5pdGVybTIuS2V5c3Ryb2tlTm90aWZpY2F0aW9uLkFjdGlvbiI1CgZBY3Rpb24SDAoIS0VZX0RPV04QABIKCgZLRVlfVVAQARIRCg1GTEFHU19DSEFOR0VEEAIiKwoYU2NyZWVuVXBkYXRlTm90aWZpY2F0aW9uEg8KB3Nlc3Npb24YASABKAkiWgoYUHJvbXB0Tm90aWZpY2F0aW9uUHJvbXB0EhMKC3BsYWNlaG9sZGVyGAEgASgJEikKBnByb21wdBgCIAEoCzIZLml0ZXJtMi5HZXRQcm9tcHRSZXNwb25zZSIxCh5Qcm9tcHROb3RpZmljYXRpb25Db21tYW5kU3RhcnQSDwoHY29tbWFuZBgBIAEoCSIuChxQcm9tcHROb3RpZmljYXRpb25Db21tYW5kRW5kEg4KBnN0YXR1cxgBIAEoBSL6AQoSUHJvbXB0Tm90aWZpY2F0aW9uEg8KB3Nlc3Npb24YASABKAkSMgoGcHJvbXB0GAIgASgLMiAuaXRlcm0yLlByb21wdE5vdGlmaWNhdGlvblByb21wdEgAEj8KDWNvbW1hbmRfc3RhcnQYAyABKAsyJi5pdGVybTIuUHJvbXB0Tm90aWZpY2F0aW9uQ29tbWFuZFN0YXJ0SAASOwoLY29tbWFuZF9lbmQYBCABKAsyJC5pdGVybTIuUHJvbXB0Tm90aWZpY2F0aW9uQ29tbWFuZEVuZEgAEhgKEHVuaXF1ZV9wcm9tcHRfaWQYBSABKAlCBwoFZXZlbnQiZgoaTG9jYXRpb25DaGFuZ2VOb3RpZmljYXRpb24SEQoJaG9zdF9uYW1lGAEgASgJEhEKCXVzZXJfbmFtZRgCIAEoCRIRCglkaXJlY3RvcnkYAyABKAkSDwoHc2Vzc2lvbhgEIAEoCSJdCiBDdXN0b21Fc2NhcGVTZXF1ZW5jZU5vdGlmaWNhdGlvbhIPCgdzZXNzaW9uGAEgASgJEhcKD3NlbmRlcl9pZGVudGl0eRgCIAEoCRIPCgdwYXlsb2FkGAMgASgJIiwKFk5ld1Nlc3Npb25Ob3RpZmljYXRpb24SEgoKc2Vzc2lvbl9pZBgBIAEoCSKEAwoYRm9jdXNDaGFuZ2VkTm90aWZpY2F0aW9uEhwKEmFwcGxpY2F0aW9uX2FjdGl2ZRgBIAEoCEgAEjkKBndpbmRvdxgCIAEoCzInLml0ZXJtMi5Gb2N1c0NoYW5nZWROb3RpZmljYXRpb24uV2luZG93SAASFgoMc2VsZWN0ZWRfdGFiGAMgASgJSAASEQoHc2Vzc2lvbhgEIAEoCUgAGtoBCgZXaW5kb3cSSwoNd2luZG93X3N0YXR1cxgBIAEoDjI0Lml0ZXJtMi5Gb2N1c0NoYW5nZWROb3RpZmljYXRpb24uV2luZG93LldpbmRvd1N0YXR1cxIRCgl3aW5kb3dfaWQYAiABKAkicAoMV2luZG93U3RhdHVzEh4KGlRFUk1JTkFMX1dJTkRPV19CRUNBTUVfS0VZEAASHgoaVEVSTUlOQUxfV0lORE9XX0lTX0NVUlJFTlQQARIgChxURVJNSU5BTF9XSU5ET1dfUkVTSUdORURfS0VZEAJCBwoFZXZlbnQiMgocVGVybWluYXRlU2Vzc2lvbk5vdGlmaWNhdGlvbhISCgpzZXNzaW9uX2lkGAEgASgJIlkKGUxheW91dENoYW5nZWROb3RpZmljYXRpb24SPAoWbGlzdF9zZXNzaW9uc19yZXNwb25zZRgBIAEoCzIcLml0ZXJtMi5MaXN0U2Vzc2lvbnNSZXNwb25zZSJiChBHZXRCdWZmZXJSZXF1ZXN0Eg8KB3Nlc3Npb24YASABKAkSJQoKbGluZV9yYW5nZRgCIAEoCzIRLml0ZXJtMi5MaW5lUmFuZ2USFgoOaW5jbHVkZV9zdHlsZXMYAyABKAgi6AIKEUdldEJ1ZmZlclJlc3BvbnNlEjQKBnN0YXR1cxgBIAEoDjIgLml0ZXJtMi5HZXRCdWZmZXJSZXNwb25zZS5TdGF0dXM6Ak9LEiAKBXJhbmdlGAIgASgLMg0uaXRlcm0yLlJhbmdlQgIYARImCghjb250ZW50cxgDIAMoCzIULml0ZXJtMi5MaW5lQ29udGVudHMSHQoGY3Vyc29yGAQgASgLMg0uaXRlcm0yLkNvb3JkEiIKFm51bV9saW5lc19hYm92ZV9zY3JlZW4YBSABKANCAhgBEjgKFHdpbmRvd2VkX2Nvb3JkX3JhbmdlGAYgASgLMhouaXRlcm0yLldpbmRvd2VkQ29vcmRSYW5nZSJWCgZTdGF0dXMSBgoCT0sQABIVChFTRVNTSU9OX05PVF9GT1VORBABEhYKEklOVkFMSURfTElORV9SQU5HRRACEhUKEVJFUVVFU1RfTUFMRk9STUVEEAMiPQoQR2V0UHJvbXB0UmVxdWVzdBIPCgdzZXNzaW9uGAEgASgJEhgKEHVuaXF1ZV9wcm9tcHRfaWQYAiABKAki4wMKEUdldFByb21wdFJlc3BvbnNlEjQKBnN0YXR1cxgBIAEoDjIgLml0ZXJtMi5HZXRQcm9tcHRSZXNwb25zZS5TdGF0dXM6Ak9LEigKDHByb21wdF9yYW5nZRgCIAEoCzISLml0ZXJtMi5Db29yZFJhbmdlEikKDWNvbW1hbmRfcmFuZ2UYAyABKAsyEi5pdGVybTIuQ29vcmRSYW5nZRIoCgxvdXRwdXRfcmFuZ2UYBCABKAsyEi5pdGVybTIuQ29vcmRSYW5nZRIZChF3b3JraW5nX2RpcmVjdG9yeRgFIAEoCRIPCgdjb21tYW5kGAYgASgJEjUKDHByb21wdF9zdGF0ZRgHIAEoDjIfLml0ZXJtMi5HZXRQcm9tcHRSZXNwb25zZS5TdGF0ZRITCgtleGl0X3N0YXR1cxgJIAEoDRIYChB1bmlxdWVfcHJvbXB0X2lkGAogASgJIlYKBlN0YXR1cxIGCgJPSxAAEhUKEVNFU1NJT05fTk9UX0ZPVU5EEAESFQoRUkVRVUVTVF9NQUxGT1JNRUQQAhIWChJQUk9NUFRfVU5BVkFJTEFCTEUQAyIvCgVTdGF0ZRILCgdFRElUSU5HEAASCwoHUlVOTklORxABEgwKCEZJTklTSEVEEAIiVgoSTGlzdFByb21wdHNSZXF1ZXN0Eg8KB3Nlc3Npb24YASABKAkSFwoPZmlyc3RfdW5pcXVlX2lkGAIgASgJEhYKDmxhc3RfdW5pcXVlX2lkGAMgASgJIpABChNMaXN0UHJvbXB0c1Jlc3BvbnNlEjYKBnN0YXR1cxgBIAEoDjIiLml0ZXJtMi5MaXN0UHJvbXB0c1Jlc3BvbnNlLlN0YXR1czoCT0sSGAoQdW5pcXVlX3Byb21wdF9pZBgCIAMoCSInCgZTdGF0dXMSBgoCT0sQABIVChFTRVNTSU9OX05PVF9GT1VORBABIjoKGUdldFByb2ZpbGVQcm9wZXJ0eVJlcXVlc3QSDwoHc2Vzc2lvbhgBIAEoCRIMCgRrZXlzGAIgAygJIjIKD1Byb2ZpbGVQcm9wZXJ0eRILCgNrZXkYASABKAkSEgoKanNvbl92YWx1ZRgCIAEoCSLTAQoaR2V0UHJvZmlsZVByb3BlcnR5UmVzcG9uc2USPQoGc3RhdHVzGAEgASgOMikuaXRlcm0yLkdldFByb2ZpbGVQcm9wZXJ0eVJlc3BvbnNlLlN0YXR1czoCT0sSKwoKcHJvcGVydGllcxgDIAMoCzIXLml0ZXJtMi5Qcm9maWxlUHJvcGVydHkiSQoGU3RhdHVzEgYKAk9LEAASFQoRU0VTU0lPTl9OT1RfRk9VTkQQARIVChFSRVFVRVNUX01BTEZPUk1FRBACEgkKBUVSUk9SEAMipwIKGVNldFByb2ZpbGVQcm9wZXJ0eVJlcXVlc3QSEQoHc2Vzc2lvbhgBIAEoCUgAEj8KCWd1aWRfbGlzdBgCIAEoCzIqLml0ZXJtMi5TZXRQcm9maWxlUHJvcGVydHlSZXF1ZXN0Lkd1aWRMaXN0SAASCwoDa2V5GAMgASgJEhIKCmpzb25fdmFsdWUYBCABKAkSQQoLYXNzaWdubWVudHMYBSADKAsyLC5pdGVybTIuU2V0UHJvZmlsZVByb3BlcnR5UmVxdWVzdC5Bc3NpZ25tZW50GhkKCEd1aWRMaXN0Eg0KBWd1aWRzGAEgAygJGi0KCkFzc2lnbm1lbnQSCwoDa2V5GAEgASgJEhIKCmpzb25fdmFsdWUYAiABKAlCCAoGdGFyZ2V0IqkBChpTZXRQcm9maWxlUHJvcGVydHlSZXNwb25zZRI9CgZzdGF0dXMYASABKA4yKS5pdGVybTIuU2V0UHJvZmlsZVByb3BlcnR5UmVzcG9uc2UuU3RhdHVzOgJPSyJMCgZTdGF0dXMSBgoCT0sQABIVChFTRVNTSU9OX05PVF9GT1VORBABEhUKEVJFUVVFU1RfTUFMRk9STUVEEAISDAoIQkFEX0dVSUQQAyIjChJUcmFuc2FjdGlvblJlcXVlc3QSDQoFYmVnaW4YASABKAgijwEKE1RyYW5zYWN0aW9uUmVzcG9uc2USNgoGc3RhdHVzGAEgASgOMiIuaXRlcm0yLlRyYW5zYWN0aW9uUmVzcG9uc2UuU3RhdHVzOgJPSyJACgZTdGF0dXMSBgoCT0sQABISCg5OT19UUkFOU0FDVElPThABEhoKFkFMUkVBRFlfSU5fVFJBTlNBQ1RJT04QAiJ7CglMaW5lUmFuZ2USHAoUc2NyZWVuX2NvbnRlbnRzX29ubHkYASABKAgSFgoOdHJhaWxpbmdfbGluZXMYAiABKAUSOAoUd2luZG93ZWRfY29vcmRfcmFuZ2UYAyABKAsyGi5pdGVybTIuV2luZG93ZWRDb29yZFJhbmdlIikKBVJhbmdlEhAKCGxvY2F0aW9uGAEgASgDEg4KBmxlbmd0aBgCIAEoAyJGCgpDb29yZFJhbmdlEhwKBXN0YXJ0GAEgASgLMg0uaXRlcm0yLkNvb3JkEhoKA2VuZBgCIAEoCzINLml0ZXJtMi5Db29yZCIdCgVDb29yZBIJCgF4GAEgASgFEgkKAXkYAiABKAMiNAoIUkdCQ29sb3ISCwoDcmVkGAEgASgNEg0KBWdyZWVuGAIgASgNEgwKBGJsdWUYAyABKA0iJgoDVVJMEgsKA3VybBgBIAEoCRISCgppZGVudGlmaWVyGAIgASgJIuEECglDZWxsU3R5bGUSFAoKZmdTdGFuZGFyZBgBIAEoDUgAEi0KC2ZnQWx0ZXJuYXRlGAIgASgOMhYuaXRlcm0yLkFsdGVybmF0ZUNvbG9ySAASIQoFZmdSZ2IYAyABKAsyEC5pdGVybTIuUkdCQ29sb3JIABIfChVmZ0FsdGVybmF0ZVBsYWNlbWVudFgYBCABKA1IABIUCgpiZ1N0YW5kYXJkGAUgASgNSAESLQoLYmdBbHRlcm5hdGUYBiABKA4yFi5pdGVybTIuQWx0ZXJuYXRlQ29sb3JIARIhCgViZ1JnYhgHIAEoCzIQLml0ZXJtMi5SR0JDb2xvckgBEh8KFWJnQWx0ZXJuYXRlUGxhY2VtZW50WRgIIAEoDUgBEgwKBGJvbGQYCSABKAgSDQoFZmFpbnQYCiABKAgSDgoGaXRhbGljGAsgASgIEg0KBWJsaW5rGAwgASgIEhEKCXVuZGVybGluZRgNIAEoCBIVCg1zdHJpa2V0aHJvdWdoGA4gASgIEhEKCWludmlzaWJsZRgPIAEoCBIPCgdpbnZlcnNlGBAgASgIEg8KB2d1YXJkZWQYESABKAgSKwoFaW1hZ2UYEiABKA4yHC5pdGVybTIuSW1hZ2VQbGFjZWhvbGRlclR5cGUSKAoOdW5kZXJsaW5lQ29sb3IYEyABKAsyEC5pdGVybTIuUkdCQ29sb3ISDwoHYmxvY2tJRBgUIAEoCRIYCgN1cmwYFSABKAsyCy5pdGVybTIuVVJMEg8KB3JlcGVhdHMYFiABKA1CCQoHZmdDb2xvckIJCgdiZ0NvbG9yIo0CCgxMaW5lQ29udGVudHMSDAoEdGV4dBgBIAEoCRI3ChRjb2RlX3BvaW50c19wZXJfY2VsbBgCIAMoCzIZLml0ZXJtMi5Db2RlUG9pbnRzUGVyQ2VsbBJOCgxjb250aW51YXRpb24YAyABKA4yIS5pdGVybTIuTGluZUNvbnRlbnRzLkNvbnRpbnVhdGlvbjoVQ09OVElOVUFUSU9OX0hBUkRfRU9MEiAKBXN0eWxlGAQgAygLMhEuaXRlcm0yLkNlbGxTdHlsZSJECgxDb250aW51YXRpb24SGQoVQ09OVElOVUFUSU9OX0hBUkRfRU9MEAESGQoVQ09OVElOVUFUSU9OX1NPRlRfRU9MEAIiQAoRQ29kZVBvaW50c1BlckNlbGwSGgoPbnVtX2NvZGVfcG9pbnRzGAEgASgFOgExEg8KB3JlcGVhdHMYAiABKAUiFQoTTGlzdFNlc3Npb25zUmVxdWVzdCJMCg9TZW5kVGV4dFJlcXVlc3QSDwoHc2Vzc2lvbhgBIAEoCRIMCgR0ZXh0GAIgASgJEhoKEnN1cHByZXNzX2Jyb2FkY2FzdBgDIAEoCCJsChBTZW5kVGV4dFJlc3BvbnNlEi8KBnN0YXR1cxgBIAEoDjIfLml0ZXJtMi5TZW5kVGV4dFJlc3BvbnNlLlN0YXR1cyInCgZTdGF0dXMSBgoCT0sQABIVChFTRVNTSU9OX05PVF9GT1VORBABIiUKBFNpemUSDQoFd2lkdGgYASABKAUSDgoGaGVpZ2h0GAIgASgFIh0KBVBvaW50EgkKAXgYASABKAUSCQoBeRgCIAEoBSJCCgVGcmFtZRIdCgZvcmlnaW4YASABKAsyDS5pdGVybTIuUG9pbnQSGgoEc2l6ZRgCIAEoCzIMLml0ZXJtMi5TaXplInkKDlNlc3Npb25TdW1tYXJ5EhkKEXVuaXF1ZV9pZGVudGlmaWVyGAEgASgJEhwKBWZyYW1lGAIgASgLMg0uaXRlcm0yLkZyYW1lEh8KCWdyaWRfc2l6ZRgDIAEoCzIMLml0ZXJtMi5TaXplEg0KBXRpdGxlGAQgASgJIsEBCg1TcGxpdFRyZWVOb2RlEhAKCHZlcnRpY2FsGAEgASgIEjIKBWxpbmtzGAIgAygLMiMuaXRlcm0yLlNwbGl0VHJlZU5vZGUuU3BsaXRUcmVlTGluaxpqCg1TcGxpdFRyZWVMaW5rEikKB3Nlc3Npb24YASABKAsyFi5pdGVybTIuU2Vzc2lvblN1bW1hcnlIABIlCgRub2RlGAIgASgLMhUuaXRlcm0yLlNwbGl0VHJlZU5vZGVIAEIHCgVjaGlsZCKdAwoUTGlzdFNlc3Npb25zUmVzcG9uc2USNAoHd2luZG93cxgBIAMoCzIjLml0ZXJtMi5MaXN0U2Vzc2lvbnNSZXNwb25zZS5XaW5kb3cSLwoPYnVyaWVkX3Nlc3Npb25zGAIgAygLMhYuaXRlcm0yLlNlc3Npb25TdW1tYXJ5GnkKBldpbmRvdxIuCgR0YWJzGAEgAygLMiAuaXRlcm0yLkxpc3RTZXNzaW9uc1Jlc3BvbnNlLlRhYhIRCgl3aW5kb3dfaWQYAiABKAkSHAoFZnJhbWUYAyABKAsyDS5pdGVybTIuRnJhbWUSDgoGbnVtYmVyGAQgASgFGqIBCgNUYWISIwoEcm9vdBgDIAEoCzIVLml0ZXJtMi5TcGxpdFRyZWVOb2RlEg4KBnRhYl9pZBgCIAEoCRIWCg50bXV4X3dpbmRvd19pZBgEIAEoCRIaChJ0bXV4X2Nvbm5lY3Rpb25faWQYBSABKAkSMgoSbWluaW1pemVkX3Nlc3Npb25zGAYgAygLMhYuaXRlcm0yLlNlc3Npb25TdW1tYXJ5Ip8BChBDcmVhdGVUYWJSZXF1ZXN0EhQKDHByb2ZpbGVfbmFtZRgBIAEoCRIRCgl3aW5kb3dfaWQYAiABKAkSEQoJdGFiX2luZGV4GAMgASgNEhMKB2NvbW1hbmQYBCABKAlCAhgBEjoKGWN1c3RvbV9wcm9maWxlX3Byb3BlcnRpZXMYBSADKAsyFy5pdGVybTIuUHJvZmlsZVByb3BlcnR5IvABChFDcmVhdGVUYWJSZXNwb25zZRIwCgZzdGF0dXMYASABKA4yIC5pdGVybTIuQ3JlYXRlVGFiUmVzcG9uc2UuU3RhdHVzEhEKCXdpbmRvd19pZBgCIAEoCRIOCgZ0YWJfaWQYAyABKAUSEgoKc2Vzc2lvbl9pZBgEIAEoCSJyCgZTdGF0dXMSBgoCT0sQABIYChRJTlZBTElEX1BST0ZJTEVfTkFNRRABEhUKEUlOVkFMSURfV0lORE9XX0lEEAISFQoRSU5WQUxJRF9UQUJfSU5ERVgQAxIYChRNSVNTSU5HX1NVQlNUSVRVVElPThAEIv4BChBTcGxpdFBhbmVSZXF1ZXN0Eg8KB3Nlc3Npb24YASABKAkSQAoPc3BsaXRfZGlyZWN0aW9uGAIgASgOMicuaXRlcm0yLlNwbGl0UGFuZVJlcXVlc3QuU3BsaXREaXJlY3Rpb24SFQoGYmVmb3JlGAMgASgIOgVmYWxzZRIUCgxwcm9maWxlX25hbWUYBCABKAkSOgoZY3VzdG9tX3Byb2ZpbGVfcHJvcGVydGllcxgFIAMoCzIXLml0ZXJtMi5Qcm9maWxlUHJvcGVydHkiLgoOU3BsaXREaXJlY3Rpb24SDAoIVkVSVElDQUwQABIOCgpIT1JJWk9OVEFMEAEi1QEKEVNwbGl0UGFuZVJlc3BvbnNlEjAKBnN0YXR1cxgBIAEoDjIgLml0ZXJtMi5TcGxpdFBhbmVSZXNwb25zZS5TdGF0dXMSEgoKc2Vzc2lvbl9pZBgCIAMoCSJ6CgZTdGF0dXMSBgoCT0sQABIVChFTRVNTSU9OX05PVF9GT1VORBABEhgKFElOVkFMSURfUFJPRklMRV9OQU1FEAISEAoMQ0FOTk9UX1NQTElUEAMSJQohTUFMRk9STUVEX0NVU1RPTV9QUk9GSUxFX1BST1BFUlRZEAQqVgoNU2VsZWN0aW9uTW9kZRINCglDSEFSQUNURVIQABIICgRXT1JEEAESCAoETElORRACEgkKBVNNQVJUEAMSBwoDQk9YEAQSDgoKV0hPTEVfTElORRAFKrQDChBOb3RpZmljYXRpb25UeXBlEhcKE05PVElGWV9PTl9LRVlTVFJPS0UQARIbChdOT1RJRllfT05fU0NSRUVOX1VQREFURRACEhQKEE5PVElGWV9PTl9QUk9NUFQQAxIhChlOT1RJRllfT05fTE9DQVRJT05fQ0hBTkdFEAQaAggBEiQKIE5PVElGWV9PTl9DVVNUT01fRVNDQVBFX1NFUVVFTkNFEAUSHQoZTk9USUZZX09OX1ZBUklBQkxFX0NIQU5HRRAMEhQKEEtFWVNUUk9LRV9GSUxURVIQDhIZChVOT1RJRllfT05fTkVXX1NFU1NJT04QBhIfChtOT1RJRllfT05fVEVSTUlOQVRFX1NFU1NJT04QBxIbChdOT1RJRllfT05fTEFZT1VUX0NIQU5HRRAIEhoKFk5PVElGWV9PTl9GT0NVU19DSEFOR0UQCRIjCh9OT1RJRllfT05fU0VSVkVSX09SSUdJTkFURURfUlBDEAoSHgoaTk9USUZZX09OX0JST0FEQ0FTVF9DSEFOR0UQCxIcChhOT1RJRllfT05fUFJPRklMRV9DSEFOR0UQDSpWCglNb2RpZmllcnMSCwoHQ09OVFJPTBABEgoKBk9QVElPThACEgsKB0NPTU1BTkQQAxIJCgVTSElGVBAEEgwKCEZVTkNUSU9OEAUSCgoGTlVNUEFEEAYqOgoNVmFyaWFibGVTY29wZRILCgdTRVNTSU9OEAESBwoDVEFCEAISCgoGV0lORE9XEAMSBwoDQVBQEAQqQwoRUHJvbXB0TW9uaXRvck1vZGUSCgoGUFJPTVBUEAESEQoNQ09NTUFORF9TVEFSVBACEg8KC0NPTU1BTkRfRU5EEAMqRwoOQWx0ZXJuYXRlQ29sb3ISCwoHREVGQVVMVBAAEhQKEFJFVkVSU0VEX0RFRkFVTFQQAxISCg5TWVNURU1fTUVTU0FHRRAEKjcKFEltYWdlUGxhY2Vob2xkZXJUeXBlEggKBE5PTkUQABIKCgZJVEVSTTIQARIJCgVLSVRUWRACQgaiAgNJVE0\");\n\n/**\n * All requests are wrapped in this message. This encoded message is the entirety of the payload\n * of messages sent over WebSocket from client to iTerm2.\n *\n * @generated from message iterm2.ClientOriginatedMessage\n */\nexport type ClientOriginatedMessage = Message<\"iterm2.ClientOriginatedMessage\"> & {\n /**\n * @generated from field: optional int64 id = 1;\n */\n id: bigint;\n\n /**\n * @generated from oneof iterm2.ClientOriginatedMessage.submessage\n */\n submessage: {\n /**\n * @generated from field: iterm2.GetBufferRequest get_buffer_request = 100;\n */\n value: GetBufferRequest;\n case: \"getBufferRequest\";\n } | {\n /**\n * @generated from field: iterm2.GetPromptRequest get_prompt_request = 101;\n */\n value: GetPromptRequest;\n case: \"getPromptRequest\";\n } | {\n /**\n * @generated from field: iterm2.TransactionRequest transaction_request = 102;\n */\n value: TransactionRequest;\n case: \"transactionRequest\";\n } | {\n /**\n * @generated from field: iterm2.NotificationRequest notification_request = 103;\n */\n value: NotificationRequest;\n case: \"notificationRequest\";\n } | {\n /**\n * @generated from field: iterm2.RegisterToolRequest register_tool_request = 104;\n */\n value: RegisterToolRequest;\n case: \"registerToolRequest\";\n } | {\n /**\n * @generated from field: iterm2.SetProfilePropertyRequest set_profile_property_request = 105;\n */\n value: SetProfilePropertyRequest;\n case: \"setProfilePropertyRequest\";\n } | {\n /**\n * @generated from field: iterm2.ListSessionsRequest list_sessions_request = 106;\n */\n value: ListSessionsRequest;\n case: \"listSessionsRequest\";\n } | {\n /**\n * @generated from field: iterm2.SendTextRequest send_text_request = 107;\n */\n value: SendTextRequest;\n case: \"sendTextRequest\";\n } | {\n /**\n * @generated from field: iterm2.CreateTabRequest create_tab_request = 108;\n */\n value: CreateTabRequest;\n case: \"createTabRequest\";\n } | {\n /**\n * @generated from field: iterm2.SplitPaneRequest split_pane_request = 109;\n */\n value: SplitPaneRequest;\n case: \"splitPaneRequest\";\n } | {\n /**\n * @generated from field: iterm2.GetProfilePropertyRequest get_profile_property_request = 110;\n */\n value: GetProfilePropertyRequest;\n case: \"getProfilePropertyRequest\";\n } | {\n /**\n * @generated from field: iterm2.SetPropertyRequest set_property_request = 111;\n */\n value: SetPropertyRequest;\n case: \"setPropertyRequest\";\n } | {\n /**\n * @generated from field: iterm2.GetPropertyRequest get_property_request = 112;\n */\n value: GetPropertyRequest;\n case: \"getPropertyRequest\";\n } | {\n /**\n * @generated from field: iterm2.InjectRequest inject_request = 113;\n */\n value: InjectRequest;\n case: \"injectRequest\";\n } | {\n /**\n * @generated from field: iterm2.ActivateRequest activate_request = 114;\n */\n value: ActivateRequest;\n case: \"activateRequest\";\n } | {\n /**\n * @generated from field: iterm2.VariableRequest variable_request = 115;\n */\n value: VariableRequest;\n case: \"variableRequest\";\n } | {\n /**\n * @generated from field: iterm2.SavedArrangementRequest saved_arrangement_request = 116;\n */\n value: SavedArrangementRequest;\n case: \"savedArrangementRequest\";\n } | {\n /**\n * @generated from field: iterm2.FocusRequest focus_request = 117;\n */\n value: FocusRequest;\n case: \"focusRequest\";\n } | {\n /**\n * @generated from field: iterm2.ListProfilesRequest list_profiles_request = 118;\n */\n value: ListProfilesRequest;\n case: \"listProfilesRequest\";\n } | {\n /**\n * @generated from field: iterm2.ServerOriginatedRPCResultRequest server_originated_rpc_result_request = 119;\n */\n value: ServerOriginatedRPCResultRequest;\n case: \"serverOriginatedRpcResultRequest\";\n } | {\n /**\n * @generated from field: iterm2.RestartSessionRequest restart_session_request = 120;\n */\n value: RestartSessionRequest;\n case: \"restartSessionRequest\";\n } | {\n /**\n * @generated from field: iterm2.MenuItemRequest menu_item_request = 121;\n */\n value: MenuItemRequest;\n case: \"menuItemRequest\";\n } | {\n /**\n * @generated from field: iterm2.SetTabLayoutRequest set_tab_layout_request = 122;\n */\n value: SetTabLayoutRequest;\n case: \"setTabLayoutRequest\";\n } | {\n /**\n * @generated from field: iterm2.GetBroadcastDomainsRequest get_broadcast_domains_request = 123;\n */\n value: GetBroadcastDomainsRequest;\n case: \"getBroadcastDomainsRequest\";\n } | {\n /**\n * @generated from field: iterm2.TmuxRequest tmux_request = 124;\n */\n value: TmuxRequest;\n case: \"tmuxRequest\";\n } | {\n /**\n * @generated from field: iterm2.ReorderTabsRequest reorder_tabs_request = 125;\n */\n value: ReorderTabsRequest;\n case: \"reorderTabsRequest\";\n } | {\n /**\n * @generated from field: iterm2.PreferencesRequest preferences_request = 126;\n */\n value: PreferencesRequest;\n case: \"preferencesRequest\";\n } | {\n /**\n * @generated from field: iterm2.ColorPresetRequest color_preset_request = 127;\n */\n value: ColorPresetRequest;\n case: \"colorPresetRequest\";\n } | {\n /**\n * @generated from field: iterm2.SelectionRequest selection_request = 128;\n */\n value: SelectionRequest;\n case: \"selectionRequest\";\n } | {\n /**\n * @generated from field: iterm2.StatusBarComponentRequest status_bar_component_request = 129;\n */\n value: StatusBarComponentRequest;\n case: \"statusBarComponentRequest\";\n } | {\n /**\n * @generated from field: iterm2.SetBroadcastDomainsRequest set_broadcast_domains_request = 130;\n */\n value: SetBroadcastDomainsRequest;\n case: \"setBroadcastDomainsRequest\";\n } | {\n /**\n * @generated from field: iterm2.CloseRequest close_request = 131;\n */\n value: CloseRequest;\n case: \"closeRequest\";\n } | {\n /**\n * @generated from field: iterm2.InvokeFunctionRequest invoke_function_request = 132;\n */\n value: InvokeFunctionRequest;\n case: \"invokeFunctionRequest\";\n } | {\n /**\n * @generated from field: iterm2.ListPromptsRequest list_prompts_request = 133;\n */\n value: ListPromptsRequest;\n case: \"listPromptsRequest\";\n } | { case: undefined; value?: undefined };\n};\n\n/**\n * Describes the message iterm2.ClientOriginatedMessage.\n * Use `create(ClientOriginatedMessageSchema)` to create a new message.\n */\nexport const ClientOriginatedMessageSchema: GenMessage<ClientOriginatedMessage> = /*@__PURE__*/\n messageDesc(file_api, 0);\n\n/**\n * All responses are wrapped in this message. This encoded message is the entirety of the payload\n * of messages sent over WebSocket from iTerm2 to client.\n *\n * @generated from message iterm2.ServerOriginatedMessage\n */\nexport type ServerOriginatedMessage = Message<\"iterm2.ServerOriginatedMessage\"> & {\n /**\n * @generated from field: optional int64 id = 1;\n */\n id: bigint;\n\n /**\n * Responses to ClientOriginatedMessages of the corresponding type\n *\n * @generated from oneof iterm2.ServerOriginatedMessage.submessage\n */\n submessage: {\n /**\n * Set if request was malformed\n *\n * @generated from field: string error = 2;\n */\n value: string;\n case: \"error\";\n } | {\n /**\n * @generated from field: iterm2.GetBufferResponse get_buffer_response = 100;\n */\n value: GetBufferResponse;\n case: \"getBufferResponse\";\n } | {\n /**\n * @generated from field: iterm2.GetPromptResponse get_prompt_response = 101;\n */\n value: GetPromptResponse;\n case: \"getPromptResponse\";\n } | {\n /**\n * @generated from field: iterm2.TransactionResponse transaction_response = 102;\n */\n value: TransactionResponse;\n case: \"transactionResponse\";\n } | {\n /**\n * @generated from field: iterm2.NotificationResponse notification_response = 103;\n */\n value: NotificationResponse;\n case: \"notificationResponse\";\n } | {\n /**\n * @generated from field: iterm2.RegisterToolResponse register_tool_response = 104;\n */\n value: RegisterToolResponse;\n case: \"registerToolResponse\";\n } | {\n /**\n * @generated from field: iterm2.SetProfilePropertyResponse set_profile_property_response = 105;\n */\n value: SetProfilePropertyResponse;\n case: \"setProfilePropertyResponse\";\n } | {\n /**\n * @generated from field: iterm2.ListSessionsResponse list_sessions_response = 106;\n */\n value: ListSessionsResponse;\n case: \"listSessionsResponse\";\n } | {\n /**\n * @generated from field: iterm2.SendTextResponse send_text_response = 107;\n */\n value: SendTextResponse;\n case: \"sendTextResponse\";\n } | {\n /**\n * @generated from field: iterm2.CreateTabResponse create_tab_response = 108;\n */\n value: CreateTabResponse;\n case: \"createTabResponse\";\n } | {\n /**\n * @generated from field: iterm2.SplitPaneResponse split_pane_response = 109;\n */\n value: SplitPaneResponse;\n case: \"splitPaneResponse\";\n } | {\n /**\n * @generated from field: iterm2.GetProfilePropertyResponse get_profile_property_response = 110;\n */\n value: GetProfilePropertyResponse;\n case: \"getProfilePropertyResponse\";\n } | {\n /**\n * @generated from field: iterm2.SetPropertyResponse set_property_response = 111;\n */\n value: SetPropertyResponse;\n case: \"setPropertyResponse\";\n } | {\n /**\n * @generated from field: iterm2.GetPropertyResponse get_property_response = 112;\n */\n value: GetPropertyResponse;\n case: \"getPropertyResponse\";\n } | {\n /**\n * @generated from field: iterm2.InjectResponse inject_response = 113;\n */\n value: InjectResponse;\n case: \"injectResponse\";\n } | {\n /**\n * @generated from field: iterm2.ActivateResponse activate_response = 114;\n */\n value: ActivateResponse;\n case: \"activateResponse\";\n } | {\n /**\n * @generated from field: iterm2.VariableResponse variable_response = 115;\n */\n value: VariableResponse;\n case: \"variableResponse\";\n } | {\n /**\n * @generated from field: iterm2.SavedArrangementResponse saved_arrangement_response = 116;\n */\n value: SavedArrangementResponse;\n case: \"savedArrangementResponse\";\n } | {\n /**\n * @generated from field: iterm2.FocusResponse focus_response = 117;\n */\n value: FocusResponse;\n case: \"focusResponse\";\n } | {\n /**\n * @generated from field: iterm2.ListProfilesResponse list_profiles_response = 118;\n */\n value: ListProfilesResponse;\n case: \"listProfilesResponse\";\n } | {\n /**\n * @generated from field: iterm2.ServerOriginatedRPCResultResponse server_originated_rpc_result_response = 119;\n */\n value: ServerOriginatedRPCResultResponse;\n case: \"serverOriginatedRpcResultResponse\";\n } | {\n /**\n * @generated from field: iterm2.RestartSessionResponse restart_session_response = 120;\n */\n value: RestartSessionResponse;\n case: \"restartSessionResponse\";\n } | {\n /**\n * @generated from field: iterm2.MenuItemResponse menu_item_response = 121;\n */\n value: MenuItemResponse;\n case: \"menuItemResponse\";\n } | {\n /**\n * @generated from field: iterm2.SetTabLayoutResponse set_tab_layout_response = 122;\n */\n value: SetTabLayoutResponse;\n case: \"setTabLayoutResponse\";\n } | {\n /**\n * @generated from field: iterm2.GetBroadcastDomainsResponse get_broadcast_domains_response = 123;\n */\n value: GetBroadcastDomainsResponse;\n case: \"getBroadcastDomainsResponse\";\n } | {\n /**\n * @generated from field: iterm2.TmuxResponse tmux_response = 124;\n */\n value: TmuxResponse;\n case: \"tmuxResponse\";\n } | {\n /**\n * @generated from field: iterm2.ReorderTabsResponse reorder_tabs_response = 125;\n */\n value: ReorderTabsResponse;\n case: \"reorderTabsResponse\";\n } | {\n /**\n * @generated from field: iterm2.PreferencesResponse preferences_response = 126;\n */\n value: PreferencesResponse;\n case: \"preferencesResponse\";\n } | {\n /**\n * @generated from field: iterm2.ColorPresetResponse color_preset_response = 127;\n */\n value: ColorPresetResponse;\n case: \"colorPresetResponse\";\n } | {\n /**\n * @generated from field: iterm2.SelectionResponse selection_response = 128;\n */\n value: SelectionResponse;\n case: \"selectionResponse\";\n } | {\n /**\n * @generated from field: iterm2.StatusBarComponentResponse status_bar_component_response = 129;\n */\n value: StatusBarComponentResponse;\n case: \"statusBarComponentResponse\";\n } | {\n /**\n * @generated from field: iterm2.SetBroadcastDomainsResponse set_broadcast_domains_response = 130;\n */\n value: SetBroadcastDomainsResponse;\n case: \"setBroadcastDomainsResponse\";\n } | {\n /**\n * @generated from field: iterm2.CloseResponse close_response = 131;\n */\n value: CloseResponse;\n case: \"closeResponse\";\n } | {\n /**\n * @generated from field: iterm2.InvokeFunctionResponse invoke_function_response = 132;\n */\n value: InvokeFunctionResponse;\n case: \"invokeFunctionResponse\";\n } | {\n /**\n * @generated from field: iterm2.ListPromptsResponse list_prompts_response = 133;\n */\n value: ListPromptsResponse;\n case: \"listPromptsResponse\";\n } | {\n /**\n * This is the only response that is sent spontaneously. The 'id' field will not be set.\n *\n * @generated from field: iterm2.Notification notification = 1000;\n */\n value: Notification;\n case: \"notification\";\n } | { case: undefined; value?: undefined };\n};\n\n/**\n * Describes the message iterm2.ServerOriginatedMessage.\n * Use `create(ServerOriginatedMessageSchema)` to create a new message.\n */\nexport const ServerOriginatedMessageSchema: GenMessage<ServerOriginatedMessage> = /*@__PURE__*/\n messageDesc(file_api, 1);\n\n/**\n * @generated from message iterm2.InvokeFunctionRequest\n */\nexport type InvokeFunctionRequest = Message<\"iterm2.InvokeFunctionRequest\"> & {\n /**\n * @generated from oneof iterm2.InvokeFunctionRequest.context\n */\n context: {\n /**\n * @generated from field: iterm2.InvokeFunctionRequest.Tab tab = 1;\n */\n value: InvokeFunctionRequest_Tab;\n case: \"tab\";\n } | {\n /**\n * @generated from field: iterm2.InvokeFunctionRequest.Session session = 2;\n */\n value: InvokeFunctionRequest_Session;\n case: \"session\";\n } | {\n /**\n * @generated from field: iterm2.InvokeFunctionRequest.Window window = 3;\n */\n value: InvokeFunctionRequest_Window;\n case: \"window\";\n } | {\n /**\n * @generated from field: iterm2.InvokeFunctionRequest.App app = 4;\n */\n value: InvokeFunctionRequest_App;\n case: \"app\";\n } | {\n /**\n * @generated from field: iterm2.InvokeFunctionRequest.Method method = 7;\n */\n value: InvokeFunctionRequest_Method;\n case: \"method\";\n } | { case: undefined; value?: undefined };\n\n /**\n * @generated from field: optional string invocation = 5;\n */\n invocation: string;\n\n /**\n * @generated from field: optional double timeout = 6 [default = -1];\n */\n timeout: number;\n};\n\n/**\n * Describes the message iterm2.InvokeFunctionRequest.\n * Use `create(InvokeFunctionRequestSchema)` to create a new message.\n */\nexport const InvokeFunctionRequestSchema: GenMessage<InvokeFunctionRequest> = /*@__PURE__*/\n messageDesc(file_api, 2);\n\n/**\n * @generated from message iterm2.InvokeFunctionRequest.Tab\n */\nexport type InvokeFunctionRequest_Tab = Message<\"iterm2.InvokeFunctionRequest.Tab\"> & {\n /**\n * @generated from field: optional string tab_id = 1;\n */\n tabId: string;\n};\n\n/**\n * Describes the message iterm2.InvokeFunctionRequest.Tab.\n * Use `create(InvokeFunctionRequest_TabSchema)` to create a new message.\n */\nexport const InvokeFunctionRequest_TabSchema: GenMessage<InvokeFunctionRequest_Tab> = /*@__PURE__*/\n messageDesc(file_api, 2, 0);\n\n/**\n * @generated from message iterm2.InvokeFunctionRequest.Session\n */\nexport type InvokeFunctionRequest_Session = Message<\"iterm2.InvokeFunctionRequest.Session\"> & {\n /**\n * @generated from field: optional string session_id = 1;\n */\n sessionId: string;\n};\n\n/**\n * Describes the message iterm2.InvokeFunctionRequest.Session.\n * Use `create(InvokeFunctionRequest_SessionSchema)` to create a new message.\n */\nexport const InvokeFunctionRequest_SessionSchema: GenMessage<InvokeFunctionRequest_Session> = /*@__PURE__*/\n messageDesc(file_api, 2, 1);\n\n/**\n * @generated from message iterm2.InvokeFunctionRequest.Window\n */\nexport type InvokeFunctionRequest_Window = Message<\"iterm2.InvokeFunctionRequest.Window\"> & {\n /**\n * @generated from field: optional string window_id = 1;\n */\n windowId: string;\n};\n\n/**\n * Describes the message iterm2.InvokeFunctionRequest.Window.\n * Use `create(InvokeFunctionRequest_WindowSchema)` to create a new message.\n */\nexport const InvokeFunctionRequest_WindowSchema: GenMessage<InvokeFunctionRequest_Window> = /*@__PURE__*/\n messageDesc(file_api, 2, 2);\n\n/**\n * @generated from message iterm2.InvokeFunctionRequest.App\n */\nexport type InvokeFunctionRequest_App = Message<\"iterm2.InvokeFunctionRequest.App\"> & {\n};\n\n/**\n * Describes the message iterm2.InvokeFunctionRequest.App.\n * Use `create(InvokeFunctionRequest_AppSchema)` to create a new message.\n */\nexport const InvokeFunctionRequest_AppSchema: GenMessage<InvokeFunctionRequest_App> = /*@__PURE__*/\n messageDesc(file_api, 2, 3);\n\n/**\n * @generated from message iterm2.InvokeFunctionRequest.Method\n */\nexport type InvokeFunctionRequest_Method = Message<\"iterm2.InvokeFunctionRequest.Method\"> & {\n /**\n * @generated from field: optional string receiver = 1;\n */\n receiver: string;\n};\n\n/**\n * Describes the message iterm2.InvokeFunctionRequest.Method.\n * Use `create(InvokeFunctionRequest_MethodSchema)` to create a new message.\n */\nexport const InvokeFunctionRequest_MethodSchema: GenMessage<InvokeFunctionRequest_Method> = /*@__PURE__*/\n messageDesc(file_api, 2, 4);\n\n/**\n * @generated from message iterm2.InvokeFunctionResponse\n */\nexport type InvokeFunctionResponse = Message<\"iterm2.InvokeFunctionResponse\"> & {\n /**\n * @generated from oneof iterm2.InvokeFunctionResponse.disposition\n */\n disposition: {\n /**\n * @generated from field: iterm2.InvokeFunctionResponse.Error error = 1;\n */\n value: InvokeFunctionResponse_Error;\n case: \"error\";\n } | {\n /**\n * @generated from field: iterm2.InvokeFunctionResponse.Success success = 2;\n */\n value: InvokeFunctionResponse_Success;\n case: \"success\";\n } | { case: undefined; value?: undefined };\n};\n\n/**\n * Describes the message iterm2.InvokeFunctionResponse.\n * Use `create(InvokeFunctionResponseSchema)` to create a new message.\n */\nexport const InvokeFunctionResponseSchema: GenMessage<InvokeFunctionResponse> = /*@__PURE__*/\n messageDesc(file_api, 3);\n\n/**\n * @generated from message iterm2.InvokeFunctionResponse.Error\n */\nexport type InvokeFunctionResponse_Error = Message<\"iterm2.InvokeFunctionResponse.Error\"> & {\n /**\n * @generated from field: optional iterm2.InvokeFunctionResponse.Status status = 1;\n */\n status: InvokeFunctionResponse_Status;\n\n /**\n * @generated from field: optional string error_reason = 2;\n */\n errorReason: string;\n};\n\n/**\n * Describes the message iterm2.InvokeFunctionResponse.Error.\n * Use `create(InvokeFunctionResponse_ErrorSchema)` to create a new message.\n */\nexport const InvokeFunctionResponse_ErrorSchema: GenMessage<InvokeFunctionResponse_Error> = /*@__PURE__*/\n messageDesc(file_api, 3, 0);\n\n/**\n * @generated from message iterm2.InvokeFunctionResponse.Success\n */\nexport type InvokeFunctionResponse_Success = Message<\"iterm2.InvokeFunctionResponse.Success\"> & {\n /**\n * @generated from field: optional string json_result = 1;\n */\n jsonResult: string;\n};\n\n/**\n * Describes the message iterm2.InvokeFunctionResponse.Success.\n * Use `create(InvokeFunctionResponse_SuccessSchema)` to create a new message.\n */\nexport const InvokeFunctionResponse_SuccessSchema: GenMessage<InvokeFunctionResponse_Success> = /*@__PURE__*/\n messageDesc(file_api, 3, 1);\n\n/**\n * @generated from enum iterm2.InvokeFunctionResponse.Status\n */\nexport enum InvokeFunctionResponse_Status {\n /**\n * @generated from enum value: TIMEOUT = 1;\n */\n TIMEOUT = 1,\n\n /**\n * @generated from enum value: FAILED = 2;\n */\n FAILED = 2,\n\n /**\n * @generated from enum value: REQUEST_MALFORMED = 3;\n */\n REQUEST_MALFORMED = 3,\n\n /**\n * @generated from enum value: INVALID_ID = 4;\n */\n INVALID_ID = 4,\n}\n\n/**\n * Describes the enum iterm2.InvokeFunctionResponse.Status.\n */\nexport const InvokeFunctionResponse_StatusSchema: GenEnum<InvokeFunctionResponse_Status> = /*@__PURE__*/\n enumDesc(file_api, 3, 0);\n\n/**\n * @generated from message iterm2.CloseRequest\n */\nexport type CloseRequest = Message<\"iterm2.CloseRequest\"> & {\n /**\n * @generated from oneof iterm2.CloseRequest.target\n */\n target: {\n /**\n * @generated from field: iterm2.CloseRequest.CloseTabs tabs = 1;\n */\n value: CloseRequest_CloseTabs;\n case: \"tabs\";\n } | {\n /**\n * @generated from field: iterm2.CloseRequest.CloseSessions sessions = 2;\n */\n value: CloseRequest_CloseSessions;\n case: \"sessions\";\n } | {\n /**\n * @generated from field: iterm2.CloseRequest.CloseWindows windows = 3;\n */\n value: CloseRequest_CloseWindows;\n case: \"windows\";\n } | { case: undefined; value?: undefined };\n\n /**\n * @generated from field: optional bool force = 4;\n */\n force: boolean;\n};\n\n/**\n * Describes the message iterm2.CloseRequest.\n * Use `create(CloseRequestSchema)` to create a new message.\n */\nexport const CloseRequestSchema: GenMessage<CloseRequest> = /*@__PURE__*/\n messageDesc(file_api, 4);\n\n/**\n * @generated from message iterm2.CloseRequest.CloseTabs\n */\nexport type CloseRequest_CloseTabs = Message<\"iterm2.CloseRequest.CloseTabs\"> & {\n /**\n * @generated from field: repeated string tab_ids = 1;\n */\n tabIds: string[];\n};\n\n/**\n * Describes the message iterm2.CloseRequest.CloseTabs.\n * Use `create(CloseRequest_CloseTabsSchema)` to create a new message.\n */\nexport const CloseRequest_CloseTabsSchema: GenMessage<CloseRequest_CloseTabs> = /*@__PURE__*/\n messageDesc(file_api, 4, 0);\n\n/**\n * @generated from message iterm2.CloseRequest.CloseSessions\n */\nexport type CloseRequest_CloseSessions = Message<\"iterm2.CloseRequest.CloseSessions\"> & {\n /**\n * @generated from field: repeated string session_ids = 1;\n */\n sessionIds: string[];\n};\n\n/**\n * Describes the message iterm2.CloseRequest.CloseSessions.\n * Use `create(CloseRequest_CloseSessionsSchema)` to create a new message.\n */\nexport const CloseRequest_CloseSessionsSchema: GenMessage<CloseRequest_CloseSessions> = /*@__PURE__*/\n messageDesc(file_api, 4, 1);\n\n/**\n * @generated from message iterm2.CloseRequest.CloseWindows\n */\nexport type CloseRequest_CloseWindows = Message<\"iterm2.CloseRequest.CloseWindows\"> & {\n /**\n * @generated from field: repeated string window_ids = 1;\n */\n windowIds: string[];\n};\n\n/**\n * Describes the message iterm2.CloseRequest.CloseWindows.\n * Use `create(CloseRequest_CloseWindowsSchema)` to create a new message.\n */\nexport const CloseRequest_CloseWindowsSchema: GenMessage<CloseRequest_CloseWindows> = /*@__PURE__*/\n messageDesc(file_api, 4, 2);\n\n/**\n * @generated from message iterm2.CloseResponse\n */\nexport type CloseResponse = Message<\"iterm2.CloseResponse\"> & {\n /**\n * @generated from field: repeated iterm2.CloseResponse.Status statuses = 1;\n */\n statuses: CloseResponse_Status[];\n};\n\n/**\n * Describes the message iterm2.CloseResponse.\n * Use `create(CloseResponseSchema)` to create a new message.\n */\nexport const CloseResponseSchema: GenMessage<CloseResponse> = /*@__PURE__*/\n messageDesc(file_api, 5);\n\n/**\n * @generated from enum iterm2.CloseResponse.Status\n */\nexport enum CloseResponse_Status {\n /**\n * @generated from enum value: OK = 0;\n */\n OK = 0,\n\n /**\n * @generated from enum value: NOT_FOUND = 1;\n */\n NOT_FOUND = 1,\n\n /**\n * @generated from enum value: USER_DECLINED = 2;\n */\n USER_DECLINED = 2,\n}\n\n/**\n * Describes the enum iterm2.CloseResponse.Status.\n */\nexport const CloseResponse_StatusSchema: GenEnum<CloseResponse_Status> = /*@__PURE__*/\n enumDesc(file_api, 5, 0);\n\n/**\n * @generated from message iterm2.SetBroadcastDomainsRequest\n */\nexport type SetBroadcastDomainsRequest = Message<\"iterm2.SetBroadcastDomainsRequest\"> & {\n /**\n * @generated from field: repeated iterm2.BroadcastDomain broadcast_domains = 1;\n */\n broadcastDomains: BroadcastDomain[];\n};\n\n/**\n * Describes the message iterm2.SetBroadcastDomainsRequest.\n * Use `create(SetBroadcastDomainsRequestSchema)` to create a new message.\n */\nexport const SetBroadcastDomainsRequestSchema: GenMessage<SetBroadcastDomainsRequest> = /*@__PURE__*/\n messageDesc(file_api, 6);\n\n/**\n * @generated from message iterm2.SetBroadcastDomainsResponse\n */\nexport type SetBroadcastDomainsResponse = Message<\"iterm2.SetBroadcastDomainsResponse\"> & {\n /**\n * @generated from field: optional iterm2.SetBroadcastDomainsResponse.Status status = 1;\n */\n status: SetBroadcastDomainsResponse_Status;\n};\n\n/**\n * Describes the message iterm2.SetBroadcastDomainsResponse.\n * Use `create(SetBroadcastDomainsResponseSchema)` to create a new message.\n */\nexport const SetBroadcastDomainsResponseSchema: GenMessage<SetBroadcastDomainsResponse> = /*@__PURE__*/\n messageDesc(file_api, 7);\n\n/**\n * @generated from enum iterm2.SetBroadcastDomainsResponse.Status\n */\nexport enum SetBroadcastDomainsResponse_Status {\n /**\n * @generated from enum value: OK = 0;\n */\n OK = 0,\n\n /**\n * @generated from enum value: SESSION_NOT_FOUND = 1;\n */\n SESSION_NOT_FOUND = 1,\n\n /**\n * @generated from enum value: BROADCAST_DOMAINS_NOT_DISJOINT = 2;\n */\n BROADCAST_DOMAINS_NOT_DISJOINT = 2,\n\n /**\n * @generated from enum value: SESSIONS_NOT_IN_SAME_WINDOW = 3;\n */\n SESSIONS_NOT_IN_SAME_WINDOW = 3,\n}\n\n/**\n * Describes the enum iterm2.SetBroadcastDomainsResponse.Status.\n */\nexport const SetBroadcastDomainsResponse_StatusSchema: GenEnum<SetBroadcastDomainsResponse_Status> = /*@__PURE__*/\n enumDesc(file_api, 7, 0);\n\n/**\n * @generated from message iterm2.StatusBarComponentRequest\n */\nexport type StatusBarComponentRequest = Message<\"iterm2.StatusBarComponentRequest\"> & {\n /**\n * @generated from oneof iterm2.StatusBarComponentRequest.request\n */\n request: {\n /**\n * @generated from field: iterm2.StatusBarComponentRequest.OpenPopover open_popover = 1;\n */\n value: StatusBarComponentRequest_OpenPopover;\n case: \"openPopover\";\n } | { case: undefined; value?: undefined };\n\n /**\n * @generated from field: optional string identifier = 2;\n */\n identifier: string;\n};\n\n/**\n * Describes the message iterm2.StatusBarComponentRequest.\n * Use `create(StatusBarComponentRequestSchema)` to create a new message.\n */\nexport const StatusBarComponentRequestSchema: GenMessage<StatusBarComponentRequest> = /*@__PURE__*/\n messageDesc(file_api, 8);\n\n/**\n * @generated from message iterm2.StatusBarComponentRequest.OpenPopover\n */\nexport type StatusBarComponentRequest_OpenPopover = Message<\"iterm2.StatusBarComponentRequest.OpenPopover\"> & {\n /**\n * @generated from field: optional string session_id = 1;\n */\n sessionId: string;\n\n /**\n * @generated from field: optional string html = 2;\n */\n html: string;\n\n /**\n * @generated from field: optional iterm2.Size size = 3;\n */\n size?: Size;\n};\n\n/**\n * Describes the message iterm2.StatusBarComponentRequest.OpenPopover.\n * Use `create(StatusBarComponentRequest_OpenPopoverSchema)` to create a new message.\n */\nexport const StatusBarComponentRequest_OpenPopoverSchema: GenMessage<StatusBarComponentRequest_OpenPopover> = /*@__PURE__*/\n messageDesc(file_api, 8, 0);\n\n/**\n * @generated from message iterm2.StatusBarComponentResponse\n */\nexport type StatusBarComponentResponse = Message<\"iterm2.StatusBarComponentResponse\"> & {\n /**\n * @generated from field: optional iterm2.StatusBarComponentResponse.Status status = 1;\n */\n status: StatusBarComponentResponse_Status;\n};\n\n/**\n * Describes the message iterm2.StatusBarComponentResponse.\n * Use `create(StatusBarComponentResponseSchema)` to create a new message.\n */\nexport const StatusBarComponentResponseSchema: GenMessage<StatusBarComponentResponse> = /*@__PURE__*/\n messageDesc(file_api, 9);\n\n/**\n * @generated from enum iterm2.StatusBarComponentResponse.Status\n */\nexport enum StatusBarComponentResponse_Status {\n /**\n * @generated from enum value: OK = 0;\n */\n OK = 0,\n\n /**\n * @generated from enum value: SESSION_NOT_FOUND = 1;\n */\n SESSION_NOT_FOUND = 1,\n\n /**\n * @generated from enum value: REQUEST_MALFORMED = 2;\n */\n REQUEST_MALFORMED = 2,\n\n /**\n * @generated from enum value: INVALID_IDENTIFIER = 3;\n */\n INVALID_IDENTIFIER = 3,\n}\n\n/**\n * Describes the enum iterm2.StatusBarComponentResponse.Status.\n */\nexport const StatusBarComponentResponse_StatusSchema: GenEnum<StatusBarComponentResponse_Status> = /*@__PURE__*/\n enumDesc(file_api, 9, 0);\n\n/**\n * @generated from message iterm2.WindowedCoordRange\n */\nexport type WindowedCoordRange = Message<\"iterm2.WindowedCoordRange\"> & {\n /**\n * @generated from field: optional iterm2.CoordRange coord_range = 1;\n */\n coordRange?: CoordRange;\n\n /**\n * @generated from field: optional iterm2.Range columns = 2;\n */\n columns?: Range;\n};\n\n/**\n * Describes the message iterm2.WindowedCoordRange.\n * Use `create(WindowedCoordRangeSchema)` to create a new message.\n */\nexport const WindowedCoordRangeSchema: GenMessage<WindowedCoordRange> = /*@__PURE__*/\n messageDesc(file_api, 10);\n\n/**\n * @generated from message iterm2.SubSelection\n */\nexport type SubSelection = Message<\"iterm2.SubSelection\"> & {\n /**\n * @generated from field: optional iterm2.WindowedCoordRange windowed_coord_range = 1;\n */\n windowedCoordRange?: WindowedCoordRange;\n\n /**\n * @generated from field: optional iterm2.SelectionMode selection_mode = 2;\n */\n selectionMode: SelectionMode;\n\n /**\n * @generated from field: optional bool connected = 3;\n */\n connected: boolean;\n};\n\n/**\n * Describes the message iterm2.SubSelection.\n * Use `create(SubSelectionSchema)` to create a new message.\n */\nexport const SubSelectionSchema: GenMessage<SubSelection> = /*@__PURE__*/\n messageDesc(file_api, 11);\n\n/**\n * @generated from message iterm2.Selection\n */\nexport type Selection = Message<\"iterm2.Selection\"> & {\n /**\n * @generated from field: repeated iterm2.SubSelection sub_selections = 1;\n */\n subSelections: SubSelection[];\n};\n\n/**\n * Describes the message iterm2.Selection.\n * Use `create(SelectionSchema)` to create a new message.\n */\nexport const SelectionSchema: GenMessage<Selection> = /*@__PURE__*/\n messageDesc(file_api, 12);\n\n/**\n * @generated from message iterm2.SelectionRequest\n */\nexport type SelectionRequest = Message<\"iterm2.SelectionRequest\"> & {\n /**\n * @generated from oneof iterm2.SelectionRequest.request\n */\n request: {\n /**\n * @generated from field: iterm2.SelectionRequest.GetSelectionRequest get_selection_request = 1;\n */\n value: SelectionRequest_GetSelectionRequest;\n case: \"getSelectionRequest\";\n } | {\n /**\n * @generated from field: iterm2.SelectionRequest.SetSelectionRequest set_selection_request = 2;\n */\n value: SelectionRequest_SetSelectionRequest;\n case: \"setSelectionRequest\";\n } | { case: undefined; value?: undefined };\n};\n\n/**\n * Describes the message iterm2.SelectionRequest.\n * Use `create(SelectionRequestSchema)` to create a new message.\n */\nexport const SelectionRequestSchema: GenMessage<SelectionRequest> = /*@__PURE__*/\n messageDesc(file_api, 13);\n\n/**\n * @generated from message iterm2.SelectionRequest.GetSelectionRequest\n */\nexport type SelectionRequest_GetSelectionRequest = Message<\"iterm2.SelectionRequest.GetSelectionRequest\"> & {\n /**\n * @generated from field: optional string session_id = 1;\n */\n sessionId: string;\n};\n\n/**\n * Describes the message iterm2.SelectionRequest.GetSelectionRequest.\n * Use `create(SelectionRequest_GetSelectionRequestSchema)` to create a new message.\n */\nexport const SelectionRequest_GetSelectionRequestSchema: GenMessage<SelectionRequest_GetSelectionRequest> = /*@__PURE__*/\n messageDesc(file_api, 13, 0);\n\n/**\n * @generated from message iterm2.SelectionRequest.SetSelectionRequest\n */\nexport type SelectionRequest_SetSelectionRequest = Message<\"iterm2.SelectionRequest.SetSelectionRequest\"> & {\n /**\n * @generated from field: optional string session_id = 1;\n */\n sessionId: string;\n\n /**\n * @generated from field: optional iterm2.Selection selection = 2;\n */\n selection?: Selection;\n};\n\n/**\n * Describes the message iterm2.SelectionRequest.SetSelectionRequest.\n * Use `create(SelectionRequest_SetSelectionRequestSchema)` to create a new message.\n */\nexport const SelectionRequest_SetSelectionRequestSchema: GenMessage<SelectionRequest_SetSelectionRequest> = /*@__PURE__*/\n messageDesc(file_api, 13, 1);\n\n/**\n * @generated from message iterm2.SelectionResponse\n */\nexport type SelectionResponse = Message<\"iterm2.SelectionResponse\"> & {\n /**\n * @generated from field: optional iterm2.SelectionResponse.Status status = 1;\n */\n status: SelectionResponse_Status;\n\n /**\n * @generated from oneof iterm2.SelectionResponse.response\n */\n response: {\n /**\n * @generated from field: iterm2.SelectionResponse.GetSelectionResponse get_selection_response = 2;\n */\n value: SelectionResponse_GetSelectionResponse;\n case: \"getSelectionResponse\";\n } | {\n /**\n * @generated from field: iterm2.SelectionResponse.SetSelectionResponse set_selection_response = 3;\n */\n value: SelectionResponse_SetSelectionResponse;\n case: \"setSelectionResponse\";\n } | { case: undefined; value?: undefined };\n};\n\n/**\n * Describes the message iterm2.SelectionResponse.\n * Use `create(SelectionResponseSchema)` to create a new message.\n */\nexport const SelectionResponseSchema: GenMessage<SelectionResponse> = /*@__PURE__*/\n messageDesc(file_api, 14);\n\n/**\n * @generated from message iterm2.SelectionResponse.GetSelectionResponse\n */\nexport type SelectionResponse_GetSelectionResponse = Message<\"iterm2.SelectionResponse.GetSelectionResponse\"> & {\n /**\n * @generated from field: optional iterm2.Selection selection = 2;\n */\n selection?: Selection;\n};\n\n/**\n * Describes the message iterm2.SelectionResponse.GetSelectionResponse.\n * Use `create(SelectionResponse_GetSelectionResponseSchema)` to create a new message.\n */\nexport const SelectionResponse_GetSelectionResponseSchema: GenMessage<SelectionResponse_GetSelectionResponse> = /*@__PURE__*/\n messageDesc(file_api, 14, 0);\n\n/**\n * @generated from message iterm2.SelectionResponse.SetSelectionResponse\n */\nexport type SelectionResponse_SetSelectionResponse = Message<\"iterm2.SelectionResponse.SetSelectionResponse\"> & {\n};\n\n/**\n * Describes the message iterm2.SelectionResponse.SetSelectionResponse.\n * Use `create(SelectionResponse_SetSelectionResponseSchema)` to create a new message.\n */\nexport const SelectionResponse_SetSelectionResponseSchema: GenMessage<SelectionResponse_SetSelectionResponse> = /*@__PURE__*/\n messageDesc(file_api, 14, 1);\n\n/**\n * @generated from enum iterm2.SelectionResponse.Status\n */\nexport enum SelectionResponse_Status {\n /**\n * @generated from enum value: OK = 0;\n */\n OK = 0,\n\n /**\n * @generated from enum value: INVALID_SESSION = 1;\n */\n INVALID_SESSION = 1,\n\n /**\n * @generated from enum value: INVALID_RANGE = 2;\n */\n INVALID_RANGE = 2,\n\n /**\n * @generated from enum value: REQUEST_MALFORMED = 3;\n */\n REQUEST_MALFORMED = 3,\n}\n\n/**\n * Describes the enum iterm2.SelectionResponse.Status.\n */\nexport const SelectionResponse_StatusSchema: GenEnum<SelectionResponse_Status> = /*@__PURE__*/\n enumDesc(file_api, 14, 0);\n\n/**\n * @generated from message iterm2.ColorPresetRequest\n */\nexport type ColorPresetRequest = Message<\"iterm2.ColorPresetRequest\"> & {\n /**\n * @generated from oneof iterm2.ColorPresetRequest.request\n */\n request: {\n /**\n * @generated from field: iterm2.ColorPresetRequest.ListPresets list_presets = 1;\n */\n value: ColorPresetRequest_ListPresets;\n case: \"listPresets\";\n } | {\n /**\n * @generated from field: iterm2.ColorPresetRequest.GetPreset get_preset = 2;\n */\n value: ColorPresetRequest_GetPreset;\n case: \"getPreset\";\n } | { case: undefined; value?: undefined };\n};\n\n/**\n * Describes the message iterm2.ColorPresetRequest.\n * Use `create(ColorPresetRequestSchema)` to create a new message.\n */\nexport const ColorPresetRequestSchema: GenMessage<ColorPresetRequest> = /*@__PURE__*/\n messageDesc(file_api, 15);\n\n/**\n * @generated from message iterm2.ColorPresetRequest.ListPresets\n */\nexport type ColorPresetRequest_ListPresets = Message<\"iterm2.ColorPresetRequest.ListPresets\"> & {\n};\n\n/**\n * Describes the message iterm2.ColorPresetRequest.ListPresets.\n * Use `create(ColorPresetRequest_ListPresetsSchema)` to create a new message.\n */\nexport const ColorPresetRequest_ListPresetsSchema: GenMessage<ColorPresetRequest_ListPresets> = /*@__PURE__*/\n messageDesc(file_api, 15, 0);\n\n/**\n * @generated from message iterm2.ColorPresetRequest.GetPreset\n */\nexport type ColorPresetRequest_GetPreset = Message<\"iterm2.ColorPresetRequest.GetPreset\"> & {\n /**\n * @generated from field: optional string name = 1;\n */\n name: string;\n};\n\n/**\n * Describes the message iterm2.ColorPresetRequest.GetPreset.\n * Use `create(ColorPresetRequest_GetPresetSchema)` to create a new message.\n */\nexport const ColorPresetRequest_GetPresetSchema: GenMessage<ColorPresetRequest_GetPreset> = /*@__PURE__*/\n messageDesc(file_api, 15, 1);\n\n/**\n * @generated from message iterm2.ColorPresetResponse\n */\nexport type ColorPresetResponse = Message<\"iterm2.ColorPresetResponse\"> & {\n /**\n * @generated from oneof iterm2.ColorPresetResponse.response\n */\n response: {\n /**\n * @generated from field: iterm2.ColorPresetResponse.ListPresets list_presets = 1;\n */\n value: ColorPresetResponse_ListPresets;\n case: \"listPresets\";\n } | {\n /**\n * @generated from field: iterm2.ColorPresetResponse.GetPreset get_preset = 2;\n */\n value: ColorPresetResponse_GetPreset;\n case: \"getPreset\";\n } | { case: undefined; value?: undefined };\n\n /**\n * @generated from field: optional iterm2.ColorPresetResponse.Status status = 3;\n */\n status: ColorPresetResponse_Status;\n};\n\n/**\n * Describes the message iterm2.ColorPresetResponse.\n * Use `create(ColorPresetResponseSchema)` to create a new message.\n */\nexport const ColorPresetResponseSchema: GenMessage<ColorPresetResponse> = /*@__PURE__*/\n messageDesc(file_api, 16);\n\n/**\n * @generated from message iterm2.ColorPresetResponse.ListPresets\n */\nexport type ColorPresetResponse_ListPresets = Message<\"iterm2.ColorPresetResponse.ListPresets\"> & {\n /**\n * @generated from field: repeated string name = 1;\n */\n name: string[];\n};\n\n/**\n * Describes the message iterm2.ColorPresetResponse.ListPresets.\n * Use `create(ColorPresetResponse_ListPresetsSchema)` to create a new message.\n */\nexport const ColorPresetResponse_ListPresetsSchema: GenMessage<ColorPresetResponse_ListPresets> = /*@__PURE__*/\n messageDesc(file_api, 16, 0);\n\n/**\n * @generated from message iterm2.ColorPresetResponse.GetPreset\n */\nexport type ColorPresetResponse_GetPreset = Message<\"iterm2.ColorPresetResponse.GetPreset\"> & {\n /**\n * @generated from field: repeated iterm2.ColorPresetResponse.GetPreset.ColorSetting color_settings = 1;\n */\n colorSettings: ColorPresetResponse_GetPreset_ColorSetting[];\n};\n\n/**\n * Describes the message iterm2.ColorPresetResponse.GetPreset.\n * Use `create(ColorPresetResponse_GetPresetSchema)` to create a new message.\n */\nexport const ColorPresetResponse_GetPresetSchema: GenMessage<ColorPresetResponse_GetPreset> = /*@__PURE__*/\n messageDesc(file_api, 16, 1);\n\n/**\n * @generated from message iterm2.ColorPresetResponse.GetPreset.ColorSetting\n */\nexport type ColorPresetResponse_GetPreset_ColorSetting = Message<\"iterm2.ColorPresetResponse.GetPreset.ColorSetting\"> & {\n /**\n * @generated from field: optional float red = 1;\n */\n red: number;\n\n /**\n * @generated from field: optional float green = 2;\n */\n green: number;\n\n /**\n * @generated from field: optional float blue = 3;\n */\n blue: number;\n\n /**\n * @generated from field: optional float alpha = 4;\n */\n alpha: number;\n\n /**\n * @generated from field: optional string color_space = 5;\n */\n colorSpace: string;\n\n /**\n * @generated from field: optional string key = 6;\n */\n key: string;\n};\n\n/**\n * Describes the message iterm2.ColorPresetResponse.GetPreset.ColorSetting.\n * Use `create(ColorPresetResponse_GetPreset_ColorSettingSchema)` to create a new message.\n */\nexport const ColorPresetResponse_GetPreset_ColorSettingSchema: GenMessage<ColorPresetResponse_GetPreset_ColorSetting> = /*@__PURE__*/\n messageDesc(file_api, 16, 1, 0);\n\n/**\n * @generated from enum iterm2.ColorPresetResponse.Status\n */\nexport enum ColorPresetResponse_Status {\n /**\n * @generated from enum value: OK = 0;\n */\n OK = 0,\n\n /**\n * @generated from enum value: PRESET_NOT_FOUND = 1;\n */\n PRESET_NOT_FOUND = 1,\n\n /**\n * @generated from enum value: REQUEST_MALFORMED = 2;\n */\n REQUEST_MALFORMED = 2,\n}\n\n/**\n * Describes the enum iterm2.ColorPresetResponse.Status.\n */\nexport const ColorPresetResponse_StatusSchema: GenEnum<ColorPresetResponse_Status> = /*@__PURE__*/\n enumDesc(file_api, 16, 0);\n\n/**\n * @generated from message iterm2.PreferencesRequest\n */\nexport type PreferencesRequest = Message<\"iterm2.PreferencesRequest\"> & {\n /**\n * @generated from field: repeated iterm2.PreferencesRequest.Request requests = 1;\n */\n requests: PreferencesRequest_Request[];\n};\n\n/**\n * Describes the message iterm2.PreferencesRequest.\n * Use `create(PreferencesRequestSchema)` to create a new message.\n */\nexport const PreferencesRequestSchema: GenMessage<PreferencesRequest> = /*@__PURE__*/\n messageDesc(file_api, 17);\n\n/**\n * @generated from message iterm2.PreferencesRequest.Request\n */\nexport type PreferencesRequest_Request = Message<\"iterm2.PreferencesRequest.Request\"> & {\n /**\n * @generated from oneof iterm2.PreferencesRequest.Request.request\n */\n request: {\n /**\n * @generated from field: iterm2.PreferencesRequest.Request.SetPreference set_preference_request = 1;\n */\n value: PreferencesRequest_Request_SetPreference;\n case: \"setPreferenceRequest\";\n } | {\n /**\n * @generated from field: iterm2.PreferencesRequest.Request.GetPreference get_preference_request = 2;\n */\n value: PreferencesRequest_Request_GetPreference;\n case: \"getPreferenceRequest\";\n } | {\n /**\n * @generated from field: iterm2.PreferencesRequest.Request.SetDefaultProfile set_default_profile_request = 3;\n */\n value: PreferencesRequest_Request_SetDefaultProfile;\n case: \"setDefaultProfileRequest\";\n } | {\n /**\n * @generated from field: iterm2.PreferencesRequest.Request.GetDefaultProfile get_default_profile_request = 4;\n */\n value: PreferencesRequest_Request_GetDefaultProfile;\n case: \"getDefaultProfileRequest\";\n } | { case: undefined; value?: undefined };\n};\n\n/**\n * Describes the message iterm2.PreferencesRequest.Request.\n * Use `create(PreferencesRequest_RequestSchema)` to create a new message.\n */\nexport const PreferencesRequest_RequestSchema: GenMessage<PreferencesRequest_Request> = /*@__PURE__*/\n messageDesc(file_api, 17, 0);\n\n/**\n * @generated from message iterm2.PreferencesRequest.Request.SetPreference\n */\nexport type PreferencesRequest_Request_SetPreference = Message<\"iterm2.PreferencesRequest.Request.SetPreference\"> & {\n /**\n * @generated from field: optional string key = 1;\n */\n key: string;\n\n /**\n * @generated from field: optional string json_value = 2;\n */\n jsonValue: string;\n};\n\n/**\n * Describes the message iterm2.PreferencesRequest.Request.SetPreference.\n * Use `create(PreferencesRequest_Request_SetPreferenceSchema)` to create a new message.\n */\nexport const PreferencesRequest_Request_SetPreferenceSchema: GenMessage<PreferencesRequest_Request_SetPreference> = /*@__PURE__*/\n messageDesc(file_api, 17, 0, 0);\n\n/**\n * @generated from message iterm2.PreferencesRequest.Request.GetPreference\n */\nexport type PreferencesRequest_Request_GetPreference = Message<\"iterm2.PreferencesRequest.Request.GetPreference\"> & {\n /**\n * @generated from field: optional string key = 1;\n */\n key: string;\n};\n\n/**\n * Describes the message iterm2.PreferencesRequest.Request.GetPreference.\n * Use `create(PreferencesRequest_Request_GetPreferenceSchema)` to create a new message.\n */\nexport const PreferencesRequest_Request_GetPreferenceSchema: GenMessage<PreferencesRequest_Request_GetPreference> = /*@__PURE__*/\n messageDesc(file_api, 17, 0, 1);\n\n/**\n * @generated from message iterm2.PreferencesRequest.Request.SetDefaultProfile\n */\nexport type PreferencesRequest_Request_SetDefaultProfile = Message<\"iterm2.PreferencesRequest.Request.SetDefaultProfile\"> & {\n /**\n * @generated from field: optional string guid = 1;\n */\n guid: string;\n};\n\n/**\n * Describes the message iterm2.PreferencesRequest.Request.SetDefaultProfile.\n * Use `create(PreferencesRequest_Request_SetDefaultProfileSchema)` to create a new message.\n */\nexport const PreferencesRequest_Request_SetDefaultProfileSchema: GenMessage<PreferencesRequest_Request_SetDefaultProfile> = /*@__PURE__*/\n messageDesc(file_api, 17, 0, 2);\n\n/**\n * @generated from message iterm2.PreferencesRequest.Request.GetDefaultProfile\n */\nexport type PreferencesRequest_Request_GetDefaultProfile = Message<\"iterm2.PreferencesRequest.Request.GetDefaultProfile\"> & {\n};\n\n/**\n * Describes the message iterm2.PreferencesRequest.Request.GetDefaultProfile.\n * Use `create(PreferencesRequest_Request_GetDefaultProfileSchema)` to create a new message.\n */\nexport const PreferencesRequest_Request_GetDefaultProfileSchema: GenMessage<PreferencesRequest_Request_GetDefaultProfile> = /*@__PURE__*/\n messageDesc(file_api, 17, 0, 3);\n\n/**\n * @generated from message iterm2.PreferencesResponse\n */\nexport type PreferencesResponse = Message<\"iterm2.PreferencesResponse\"> & {\n /**\n * @generated from field: repeated iterm2.PreferencesResponse.Result results = 1;\n */\n results: PreferencesResponse_Result[];\n};\n\n/**\n * Describes the message iterm2.PreferencesResponse.\n * Use `create(PreferencesResponseSchema)` to create a new message.\n */\nexport const PreferencesResponseSchema: GenMessage<PreferencesResponse> = /*@__PURE__*/\n messageDesc(file_api, 18);\n\n/**\n * @generated from message iterm2.PreferencesResponse.Result\n */\nexport type PreferencesResponse_Result = Message<\"iterm2.PreferencesResponse.Result\"> & {\n /**\n * @generated from oneof iterm2.PreferencesResponse.Result.result\n */\n result: {\n /**\n * @generated from field: iterm2.PreferencesResponse.Result.UnrecognizedResult unrecognized_request = 1;\n */\n value: PreferencesResponse_Result_UnrecognizedResult;\n case: \"unrecognizedRequest\";\n } | {\n /**\n * @generated from field: iterm2.PreferencesResponse.Result.SetPreferenceResult set_preference_result = 2;\n */\n value: PreferencesResponse_Result_SetPreferenceResult;\n case: \"setPreferenceResult\";\n } | {\n /**\n * @generated from field: iterm2.PreferencesResponse.Result.GetPreferenceResult get_preference_result = 3;\n */\n value: PreferencesResponse_Result_GetPreferenceResult;\n case: \"getPreferenceResult\";\n } | {\n /**\n * @generated from field: iterm2.PreferencesResponse.Result.SetDefaultProfileResult set_default_profile_result = 4;\n */\n value: PreferencesResponse_Result_SetDefaultProfileResult;\n case: \"setDefaultProfileResult\";\n } | {\n /**\n * @generated from field: iterm2.PreferencesResponse.Result.GetDefaultProfileResult get_default_profile_result = 5;\n */\n value: PreferencesResponse_Result_GetDefaultProfileResult;\n case: \"getDefaultProfileResult\";\n } | { case: undefined; value?: undefined };\n};\n\n/**\n * Describes the message iterm2.PreferencesResponse.Result.\n * Use `create(PreferencesResponse_ResultSchema)` to create a new message.\n */\nexport const PreferencesResponse_ResultSchema: GenMessage<PreferencesResponse_Result> = /*@__PURE__*/\n messageDesc(file_api, 18, 0);\n\n/**\n * @generated from message iterm2.PreferencesResponse.Result.SetPreferenceResult\n */\nexport type PreferencesResponse_Result_SetPreferenceResult = Message<\"iterm2.PreferencesResponse.Result.SetPreferenceResult\"> & {\n /**\n * @generated from field: optional iterm2.PreferencesResponse.Result.SetPreferenceResult.Status status = 1;\n */\n status: PreferencesResponse_Result_SetPreferenceResult_Status;\n};\n\n/**\n * Describes the message iterm2.PreferencesResponse.Result.SetPreferenceResult.\n * Use `create(PreferencesResponse_Result_SetPreferenceResultSchema)` to create a new message.\n */\nexport const PreferencesResponse_Result_SetPreferenceResultSchema: GenMessage<PreferencesResponse_Result_SetPreferenceResult> = /*@__PURE__*/\n messageDesc(file_api, 18, 0, 0);\n\n/**\n * @generated from enum iterm2.PreferencesResponse.Result.SetPreferenceResult.Status\n */\nexport enum PreferencesResponse_Result_SetPreferenceResult_Status {\n /**\n * @generated from enum value: OK = 0;\n */\n OK = 0,\n\n /**\n * @generated from enum value: BAD_JSON = 1;\n */\n BAD_JSON = 1,\n\n /**\n * @generated from enum value: INVALID_VALUE = 2;\n */\n INVALID_VALUE = 2,\n}\n\n/**\n * Describes the enum iterm2.PreferencesResponse.Result.SetPreferenceResult.Status.\n */\nexport const PreferencesResponse_Result_SetPreferenceResult_StatusSchema: GenEnum<PreferencesResponse_Result_SetPreferenceResult_Status> = /*@__PURE__*/\n enumDesc(file_api, 18, 0, 0, 0);\n\n/**\n * @generated from message iterm2.PreferencesResponse.Result.GetPreferenceResult\n */\nexport type PreferencesResponse_Result_GetPreferenceResult = Message<\"iterm2.PreferencesResponse.Result.GetPreferenceResult\"> & {\n /**\n * @generated from field: optional string json_value = 1;\n */\n jsonValue: string;\n};\n\n/**\n * Describes the message iterm2.PreferencesResponse.Result.GetPreferenceResult.\n * Use `create(PreferencesResponse_Result_GetPreferenceResultSchema)` to create a new message.\n */\nexport const PreferencesResponse_Result_GetPreferenceResultSchema: GenMessage<PreferencesResponse_Result_GetPreferenceResult> = /*@__PURE__*/\n messageDesc(file_api, 18, 0, 1);\n\n/**\n * @generated from message iterm2.PreferencesResponse.Result.SetDefaultProfileResult\n */\nexport type PreferencesResponse_Result_SetDefaultProfileResult = Message<\"iterm2.PreferencesResponse.Result.SetDefaultProfileResult\"> & {\n /**\n * @generated from field: optional iterm2.PreferencesResponse.Result.SetDefaultProfileResult.Status status = 1;\n */\n status: PreferencesResponse_Result_SetDefaultProfileResult_Status;\n};\n\n/**\n * Describes the message iterm2.PreferencesResponse.Result.SetDefaultProfileResult.\n * Use `create(PreferencesResponse_Result_SetDefaultProfileResultSchema)` to create a new message.\n */\nexport const PreferencesResponse_Result_SetDefaultProfileResultSchema: GenMessage<PreferencesResponse_Result_SetDefaultProfileResult> = /*@__PURE__*/\n messageDesc(file_api, 18, 0, 2);\n\n/**\n * @generated from enum iterm2.PreferencesResponse.Result.SetDefaultProfileResult.Status\n */\nexport enum PreferencesResponse_Result_SetDefaultProfileResult_Status {\n /**\n * @generated from enum value: OK = 0;\n */\n OK = 0,\n\n /**\n * @generated from enum value: BAD_GUID = 1;\n */\n BAD_GUID = 1,\n}\n\n/**\n * Describes the enum iterm2.PreferencesResponse.Result.SetDefaultProfileResult.Status.\n */\nexport const PreferencesResponse_Result_SetDefaultProfileResult_StatusSchema: GenEnum<PreferencesResponse_Result_SetDefaultProfileResult_Status> = /*@__PURE__*/\n enumDesc(file_api, 18, 0, 2, 0);\n\n/**\n * @generated from message iterm2.PreferencesResponse.Result.UnrecognizedResult\n */\nexport type PreferencesResponse_Result_UnrecognizedResult = Message<\"iterm2.PreferencesResponse.Result.UnrecognizedResult\"> & {\n};\n\n/**\n * Describes the message iterm2.PreferencesResponse.Result.UnrecognizedResult.\n * Use `create(PreferencesResponse_Result_UnrecognizedResultSchema)` to create a new message.\n */\nexport const PreferencesResponse_Result_UnrecognizedResultSchema: GenMessage<PreferencesResponse_Result_UnrecognizedResult> = /*@__PURE__*/\n messageDesc(file_api, 18, 0, 3);\n\n/**\n * @generated from message iterm2.PreferencesResponse.Result.GetDefaultProfileResult\n */\nexport type PreferencesResponse_Result_GetDefaultProfileResult = Message<\"iterm2.PreferencesResponse.Result.GetDefaultProfileResult\"> & {\n /**\n * @generated from field: optional string guid = 1;\n */\n guid: string;\n};\n\n/**\n * Describes the message iterm2.PreferencesResponse.Result.GetDefaultProfileResult.\n * Use `create(PreferencesResponse_Result_GetDefaultProfileResultSchema)` to create a new message.\n */\nexport const PreferencesResponse_Result_GetDefaultProfileResultSchema: GenMessage<PreferencesResponse_Result_GetDefaultProfileResult> = /*@__PURE__*/\n messageDesc(file_api, 18, 0, 4);\n\n/**\n * @generated from message iterm2.ReorderTabsRequest\n */\nexport type ReorderTabsRequest = Message<\"iterm2.ReorderTabsRequest\"> & {\n /**\n * @generated from field: repeated iterm2.ReorderTabsRequest.Assignment assignments = 3;\n */\n assignments: ReorderTabsRequest_Assignment[];\n};\n\n/**\n * Describes the message iterm2.ReorderTabsRequest.\n * Use `create(ReorderTabsRequestSchema)` to create a new message.\n */\nexport const ReorderTabsRequestSchema: GenMessage<ReorderTabsRequest> = /*@__PURE__*/\n messageDesc(file_api, 19);\n\n/**\n * @generated from message iterm2.ReorderTabsRequest.Assignment\n */\nexport type ReorderTabsRequest_Assignment = Message<\"iterm2.ReorderTabsRequest.Assignment\"> & {\n /**\n * @generated from field: optional string window_id = 1;\n */\n windowId: string;\n\n /**\n * @generated from field: repeated string tab_ids = 2;\n */\n tabIds: string[];\n};\n\n/**\n * Describes the message iterm2.ReorderTabsRequest.Assignment.\n * Use `create(ReorderTabsRequest_AssignmentSchema)` to create a new message.\n */\nexport const ReorderTabsRequest_AssignmentSchema: GenMessage<ReorderTabsRequest_Assignment> = /*@__PURE__*/\n messageDesc(file_api, 19, 0);\n\n/**\n * @generated from message iterm2.ReorderTabsResponse\n */\nexport type ReorderTabsResponse = Message<\"iterm2.ReorderTabsResponse\"> & {\n /**\n * @generated from field: optional iterm2.ReorderTabsResponse.Status status = 4;\n */\n status: ReorderTabsResponse_Status;\n};\n\n/**\n * Describes the message iterm2.ReorderTabsResponse.\n * Use `create(ReorderTabsResponseSchema)` to create a new message.\n */\nexport const ReorderTabsResponseSchema: GenMessage<ReorderTabsResponse> = /*@__PURE__*/\n messageDesc(file_api, 20);\n\n/**\n * @generated from enum iterm2.ReorderTabsResponse.Status\n */\nexport enum ReorderTabsResponse_Status {\n /**\n * @generated from enum value: OK = 0;\n */\n OK = 0,\n\n /**\n * @generated from enum value: INVALID_ASSIGNMENT = 1;\n */\n INVALID_ASSIGNMENT = 1,\n\n /**\n * @generated from enum value: INVALID_WINDOW_ID = 2;\n */\n INVALID_WINDOW_ID = 2,\n\n /**\n * @generated from enum value: INVALID_TAB_ID = 3;\n */\n INVALID_TAB_ID = 3,\n}\n\n/**\n * Describes the enum iterm2.ReorderTabsResponse.Status.\n */\nexport const ReorderTabsResponse_StatusSchema: GenEnum<ReorderTabsResponse_Status> = /*@__PURE__*/\n enumDesc(file_api, 20, 0);\n\n/**\n * @generated from message iterm2.TmuxRequest\n */\nexport type TmuxRequest = Message<\"iterm2.TmuxRequest\"> & {\n /**\n * @generated from oneof iterm2.TmuxRequest.payload\n */\n payload: {\n /**\n * @generated from field: iterm2.TmuxRequest.ListConnections list_connections = 1;\n */\n value: TmuxRequest_ListConnections;\n case: \"listConnections\";\n } | {\n /**\n * @generated from field: iterm2.TmuxRequest.SendCommand send_command = 2;\n */\n value: TmuxRequest_SendCommand;\n case: \"sendCommand\";\n } | {\n /**\n * @generated from field: iterm2.TmuxRequest.SetWindowVisible set_window_visible = 3;\n */\n value: TmuxRequest_SetWindowVisible;\n case: \"setWindowVisible\";\n } | {\n /**\n * @generated from field: iterm2.TmuxRequest.CreateWindow create_window = 4;\n */\n value: TmuxRequest_CreateWindow;\n case: \"createWindow\";\n } | { case: undefined; value?: undefined };\n};\n\n/**\n * Describes the message iterm2.TmuxRequest.\n * Use `create(TmuxRequestSchema)` to create a new message.\n */\nexport const TmuxRequestSchema: GenMessage<TmuxRequest> = /*@__PURE__*/\n messageDesc(file_api, 21);\n\n/**\n * @generated from message iterm2.TmuxRequest.ListConnections\n */\nexport type TmuxRequest_ListConnections = Message<\"iterm2.TmuxRequest.ListConnections\"> & {\n};\n\n/**\n * Describes the message iterm2.TmuxRequest.ListConnections.\n * Use `create(TmuxRequest_ListConnectionsSchema)` to create a new message.\n */\nexport const TmuxRequest_ListConnectionsSchema: GenMessage<TmuxRequest_ListConnections> = /*@__PURE__*/\n messageDesc(file_api, 21, 0);\n\n/**\n * @generated from message iterm2.TmuxRequest.SendCommand\n */\nexport type TmuxRequest_SendCommand = Message<\"iterm2.TmuxRequest.SendCommand\"> & {\n /**\n * @generated from field: optional string connection_id = 1;\n */\n connectionId: string;\n\n /**\n * @generated from field: optional string command = 2;\n */\n command: string;\n};\n\n/**\n * Describes the message iterm2.TmuxRequest.SendCommand.\n * Use `create(TmuxRequest_SendCommandSchema)` to create a new message.\n */\nexport const TmuxRequest_SendCommandSchema: GenMessage<TmuxRequest_SendCommand> = /*@__PURE__*/\n messageDesc(file_api, 21, 1);\n\n/**\n * @generated from message iterm2.TmuxRequest.SetWindowVisible\n */\nexport type TmuxRequest_SetWindowVisible = Message<\"iterm2.TmuxRequest.SetWindowVisible\"> & {\n /**\n * @generated from field: optional string connection_id = 1;\n */\n connectionId: string;\n\n /**\n * @generated from field: optional string window_id = 2;\n */\n windowId: string;\n\n /**\n * @generated from field: optional bool visible = 3;\n */\n visible: boolean;\n};\n\n/**\n * Describes the message iterm2.TmuxRequest.SetWindowVisible.\n * Use `create(TmuxRequest_SetWindowVisibleSchema)` to create a new message.\n */\nexport const TmuxRequest_SetWindowVisibleSchema: GenMessage<TmuxRequest_SetWindowVisible> = /*@__PURE__*/\n messageDesc(file_api, 21, 2);\n\n/**\n * @generated from message iterm2.TmuxRequest.CreateWindow\n */\nexport type TmuxRequest_CreateWindow = Message<\"iterm2.TmuxRequest.CreateWindow\"> & {\n /**\n * @generated from field: optional string connection_id = 1;\n */\n connectionId: string;\n\n /**\n * @generated from field: optional string affinity = 2;\n */\n affinity: string;\n};\n\n/**\n * Describes the message iterm2.TmuxRequest.CreateWindow.\n * Use `create(TmuxRequest_CreateWindowSchema)` to create a new message.\n */\nexport const TmuxRequest_CreateWindowSchema: GenMessage<TmuxRequest_CreateWindow> = /*@__PURE__*/\n messageDesc(file_api, 21, 3);\n\n/**\n * @generated from message iterm2.TmuxResponse\n */\nexport type TmuxResponse = Message<\"iterm2.TmuxResponse\"> & {\n /**\n * @generated from oneof iterm2.TmuxResponse.payload\n */\n payload: {\n /**\n * @generated from field: iterm2.TmuxResponse.ListConnections list_connections = 1;\n */\n value: TmuxResponse_ListConnections;\n case: \"listConnections\";\n } | {\n /**\n * @generated from field: iterm2.TmuxResponse.SendCommand send_command = 2;\n */\n value: TmuxResponse_SendCommand;\n case: \"sendCommand\";\n } | {\n /**\n * @generated from field: iterm2.TmuxResponse.SetWindowVisible set_window_visible = 3;\n */\n value: TmuxResponse_SetWindowVisible;\n case: \"setWindowVisible\";\n } | {\n /**\n * @generated from field: iterm2.TmuxResponse.CreateWindow create_window = 5;\n */\n value: TmuxResponse_CreateWindow;\n case: \"createWindow\";\n } | { case: undefined; value?: undefined };\n\n /**\n * @generated from field: optional iterm2.TmuxResponse.Status status = 4;\n */\n status: TmuxResponse_Status;\n};\n\n/**\n * Describes the message iterm2.TmuxResponse.\n * Use `create(TmuxResponseSchema)` to create a new message.\n */\nexport const TmuxResponseSchema: GenMessage<TmuxResponse> = /*@__PURE__*/\n messageDesc(file_api, 22);\n\n/**\n * @generated from message iterm2.TmuxResponse.ListConnections\n */\nexport type TmuxResponse_ListConnections = Message<\"iterm2.TmuxResponse.ListConnections\"> & {\n /**\n * @generated from field: repeated iterm2.TmuxResponse.ListConnections.Connection connections = 1;\n */\n connections: TmuxResponse_ListConnections_Connection[];\n};\n\n/**\n * Describes the message iterm2.TmuxResponse.ListConnections.\n * Use `create(TmuxResponse_ListConnectionsSchema)` to create a new message.\n */\nexport const TmuxResponse_ListConnectionsSchema: GenMessage<TmuxResponse_ListConnections> = /*@__PURE__*/\n messageDesc(file_api, 22, 0);\n\n/**\n * @generated from message iterm2.TmuxResponse.ListConnections.Connection\n */\nexport type TmuxResponse_ListConnections_Connection = Message<\"iterm2.TmuxResponse.ListConnections.Connection\"> & {\n /**\n * @generated from field: optional string connection_id = 1;\n */\n connectionId: string;\n\n /**\n * @generated from field: optional string owning_session_id = 2;\n */\n owningSessionId: string;\n};\n\n/**\n * Describes the message iterm2.TmuxResponse.ListConnections.Connection.\n * Use `create(TmuxResponse_ListConnections_ConnectionSchema)` to create a new message.\n */\nexport const TmuxResponse_ListConnections_ConnectionSchema: GenMessage<TmuxResponse_ListConnections_Connection> = /*@__PURE__*/\n messageDesc(file_api, 22, 0, 0);\n\n/**\n * @generated from message iterm2.TmuxResponse.SendCommand\n */\nexport type TmuxResponse_SendCommand = Message<\"iterm2.TmuxResponse.SendCommand\"> & {\n /**\n * @generated from field: optional string output = 1;\n */\n output: string;\n};\n\n/**\n * Describes the message iterm2.TmuxResponse.SendCommand.\n * Use `create(TmuxResponse_SendCommandSchema)` to create a new message.\n */\nexport const TmuxResponse_SendCommandSchema: GenMessage<TmuxResponse_SendCommand> = /*@__PURE__*/\n messageDesc(file_api, 22, 1);\n\n/**\n * @generated from message iterm2.TmuxResponse.SetWindowVisible\n */\nexport type TmuxResponse_SetWindowVisible = Message<\"iterm2.TmuxResponse.SetWindowVisible\"> & {\n};\n\n/**\n * Describes the message iterm2.TmuxResponse.SetWindowVisible.\n * Use `create(TmuxResponse_SetWindowVisibleSchema)` to create a new message.\n */\nexport const TmuxResponse_SetWindowVisibleSchema: GenMessage<TmuxResponse_SetWindowVisible> = /*@__PURE__*/\n messageDesc(file_api, 22, 2);\n\n/**\n * @generated from message iterm2.TmuxResponse.CreateWindow\n */\nexport type TmuxResponse_CreateWindow = Message<\"iterm2.TmuxResponse.CreateWindow\"> & {\n /**\n * @generated from field: optional string tab_id = 1;\n */\n tabId: string;\n};\n\n/**\n * Describes the message iterm2.TmuxResponse.CreateWindow.\n * Use `create(TmuxResponse_CreateWindowSchema)` to create a new message.\n */\nexport const TmuxResponse_CreateWindowSchema: GenMessage<TmuxResponse_CreateWindow> = /*@__PURE__*/\n messageDesc(file_api, 22, 3);\n\n/**\n * @generated from enum iterm2.TmuxResponse.Status\n */\nexport enum TmuxResponse_Status {\n /**\n * @generated from enum value: OK = 0;\n */\n OK = 0,\n\n /**\n * @generated from enum value: INVALID_REQUEST = 1;\n */\n INVALID_REQUEST = 1,\n\n /**\n * @generated from enum value: INVALID_CONNECTION_ID = 2;\n */\n INVALID_CONNECTION_ID = 2,\n\n /**\n * @generated from enum value: INVALID_WINDOW_ID = 3;\n */\n INVALID_WINDOW_ID = 3,\n}\n\n/**\n * Describes the enum iterm2.TmuxResponse.Status.\n */\nexport const TmuxResponse_StatusSchema: GenEnum<TmuxResponse_Status> = /*@__PURE__*/\n enumDesc(file_api, 22, 0);\n\n/**\n * @generated from message iterm2.GetBroadcastDomainsRequest\n */\nexport type GetBroadcastDomainsRequest = Message<\"iterm2.GetBroadcastDomainsRequest\"> & {\n};\n\n/**\n * Describes the message iterm2.GetBroadcastDomainsRequest.\n * Use `create(GetBroadcastDomainsRequestSchema)` to create a new message.\n */\nexport const GetBroadcastDomainsRequestSchema: GenMessage<GetBroadcastDomainsRequest> = /*@__PURE__*/\n messageDesc(file_api, 23);\n\n/**\n * @generated from message iterm2.BroadcastDomain\n */\nexport type BroadcastDomain = Message<\"iterm2.BroadcastDomain\"> & {\n /**\n * @generated from field: repeated string session_ids = 1;\n */\n sessionIds: string[];\n};\n\n/**\n * Describes the message iterm2.BroadcastDomain.\n * Use `create(BroadcastDomainSchema)` to create a new message.\n */\nexport const BroadcastDomainSchema: GenMessage<BroadcastDomain> = /*@__PURE__*/\n messageDesc(file_api, 24);\n\n/**\n * @generated from message iterm2.GetBroadcastDomainsResponse\n */\nexport type GetBroadcastDomainsResponse = Message<\"iterm2.GetBroadcastDomainsResponse\"> & {\n /**\n * @generated from field: repeated iterm2.BroadcastDomain broadcast_domains = 1;\n */\n broadcastDomains: BroadcastDomain[];\n};\n\n/**\n * Describes the message iterm2.GetBroadcastDomainsResponse.\n * Use `create(GetBroadcastDomainsResponseSchema)` to create a new message.\n */\nexport const GetBroadcastDomainsResponseSchema: GenMessage<GetBroadcastDomainsResponse> = /*@__PURE__*/\n messageDesc(file_api, 25);\n\n/**\n * @generated from message iterm2.SetTabLayoutRequest\n */\nexport type SetTabLayoutRequest = Message<\"iterm2.SetTabLayoutRequest\"> & {\n /**\n * @generated from field: optional iterm2.SplitTreeNode root = 1;\n */\n root?: SplitTreeNode;\n\n /**\n * @generated from field: optional string tab_id = 2;\n */\n tabId: string;\n};\n\n/**\n * Describes the message iterm2.SetTabLayoutRequest.\n * Use `create(SetTabLayoutRequestSchema)` to create a new message.\n */\nexport const SetTabLayoutRequestSchema: GenMessage<SetTabLayoutRequest> = /*@__PURE__*/\n messageDesc(file_api, 26);\n\n/**\n * @generated from message iterm2.SetTabLayoutResponse\n */\nexport type SetTabLayoutResponse = Message<\"iterm2.SetTabLayoutResponse\"> & {\n /**\n * @generated from field: optional iterm2.SetTabLayoutResponse.Status status = 1;\n */\n status: SetTabLayoutResponse_Status;\n};\n\n/**\n * Describes the message iterm2.SetTabLayoutResponse.\n * Use `create(SetTabLayoutResponseSchema)` to create a new message.\n */\nexport const SetTabLayoutResponseSchema: GenMessage<SetTabLayoutResponse> = /*@__PURE__*/\n messageDesc(file_api, 27);\n\n/**\n * @generated from enum iterm2.SetTabLayoutResponse.Status\n */\nexport enum SetTabLayoutResponse_Status {\n /**\n * @generated from enum value: OK = 0;\n */\n OK = 0,\n\n /**\n * @generated from enum value: BAD_TAB_ID = 1;\n */\n BAD_TAB_ID = 1,\n\n /**\n * @generated from enum value: WRONG_TREE = 2;\n */\n WRONG_TREE = 2,\n\n /**\n * @generated from enum value: INVALID_SIZE = 3;\n */\n INVALID_SIZE = 3,\n}\n\n/**\n * Describes the enum iterm2.SetTabLayoutResponse.Status.\n */\nexport const SetTabLayoutResponse_StatusSchema: GenEnum<SetTabLayoutResponse_Status> = /*@__PURE__*/\n enumDesc(file_api, 27, 0);\n\n/**\n * @generated from message iterm2.MenuItemRequest\n */\nexport type MenuItemRequest = Message<\"iterm2.MenuItemRequest\"> & {\n /**\n * @generated from field: optional string identifier = 1;\n */\n identifier: string;\n\n /**\n * @generated from field: optional bool query_only = 2;\n */\n queryOnly: boolean;\n};\n\n/**\n * Describes the message iterm2.MenuItemRequest.\n * Use `create(MenuItemRequestSchema)` to create a new message.\n */\nexport const MenuItemRequestSchema: GenMessage<MenuItemRequest> = /*@__PURE__*/\n messageDesc(file_api, 28);\n\n/**\n * @generated from message iterm2.MenuItemResponse\n */\nexport type MenuItemResponse = Message<\"iterm2.MenuItemResponse\"> & {\n /**\n * @generated from field: optional iterm2.MenuItemResponse.Status status = 1;\n */\n status: MenuItemResponse_Status;\n\n /**\n * @generated from field: optional bool checked = 2;\n */\n checked: boolean;\n\n /**\n * @generated from field: optional bool enabled = 3;\n */\n enabled: boolean;\n};\n\n/**\n * Describes the message iterm2.MenuItemResponse.\n * Use `create(MenuItemResponseSchema)` to create a new message.\n */\nexport const MenuItemResponseSchema: GenMessage<MenuItemResponse> = /*@__PURE__*/\n messageDesc(file_api, 29);\n\n/**\n * @generated from enum iterm2.MenuItemResponse.Status\n */\nexport enum MenuItemResponse_Status {\n /**\n * @generated from enum value: OK = 0;\n */\n OK = 0,\n\n /**\n * @generated from enum value: BAD_IDENTIFIER = 1;\n */\n BAD_IDENTIFIER = 1,\n\n /**\n * @generated from enum value: DISABLED = 2;\n */\n DISABLED = 2,\n}\n\n/**\n * Describes the enum iterm2.MenuItemResponse.Status.\n */\nexport const MenuItemResponse_StatusSchema: GenEnum<MenuItemResponse_Status> = /*@__PURE__*/\n enumDesc(file_api, 29, 0);\n\n/**\n * @generated from message iterm2.RestartSessionRequest\n */\nexport type RestartSessionRequest = Message<\"iterm2.RestartSessionRequest\"> & {\n /**\n * @generated from field: optional string session_id = 1;\n */\n sessionId: string;\n\n /**\n * @generated from field: optional bool only_if_exited = 2;\n */\n onlyIfExited: boolean;\n};\n\n/**\n * Describes the message iterm2.RestartSessionRequest.\n * Use `create(RestartSessionRequestSchema)` to create a new message.\n */\nexport const RestartSessionRequestSchema: GenMessage<RestartSessionRequest> = /*@__PURE__*/\n messageDesc(file_api, 30);\n\n/**\n * @generated from message iterm2.RestartSessionResponse\n */\nexport type RestartSessionResponse = Message<\"iterm2.RestartSessionResponse\"> & {\n /**\n * @generated from field: optional iterm2.RestartSessionResponse.Status status = 1;\n */\n status: RestartSessionResponse_Status;\n};\n\n/**\n * Describes the message iterm2.RestartSessionResponse.\n * Use `create(RestartSessionResponseSchema)` to create a new message.\n */\nexport const RestartSessionResponseSchema: GenMessage<RestartSessionResponse> = /*@__PURE__*/\n messageDesc(file_api, 31);\n\n/**\n * @generated from enum iterm2.RestartSessionResponse.Status\n */\nexport enum RestartSessionResponse_Status {\n /**\n * @generated from enum value: OK = 0;\n */\n OK = 0,\n\n /**\n * @generated from enum value: SESSION_NOT_FOUND = 1;\n */\n SESSION_NOT_FOUND = 1,\n\n /**\n * @generated from enum value: SESSION_NOT_RESTARTABLE = 2;\n */\n SESSION_NOT_RESTARTABLE = 2,\n}\n\n/**\n * Describes the enum iterm2.RestartSessionResponse.Status.\n */\nexport const RestartSessionResponse_StatusSchema: GenEnum<RestartSessionResponse_Status> = /*@__PURE__*/\n enumDesc(file_api, 31, 0);\n\n/**\n * @generated from message iterm2.ServerOriginatedRPCResultRequest\n */\nexport type ServerOriginatedRPCResultRequest = Message<\"iterm2.ServerOriginatedRPCResultRequest\"> & {\n /**\n * @generated from field: optional string request_id = 1;\n */\n requestId: string;\n\n /**\n * @generated from oneof iterm2.ServerOriginatedRPCResultRequest.result\n */\n result: {\n /**\n * @generated from field: string json_exception = 2;\n */\n value: string;\n case: \"jsonException\";\n } | {\n /**\n * @generated from field: string json_value = 3;\n */\n value: string;\n case: \"jsonValue\";\n } | { case: undefined; value?: undefined };\n};\n\n/**\n * Describes the message iterm2.ServerOriginatedRPCResultRequest.\n * Use `create(ServerOriginatedRPCResultRequestSchema)` to create a new message.\n */\nexport const ServerOriginatedRPCResultRequestSchema: GenMessage<ServerOriginatedRPCResultRequest> = /*@__PURE__*/\n messageDesc(file_api, 32);\n\n/**\n * @generated from message iterm2.ServerOriginatedRPCResultResponse\n */\nexport type ServerOriginatedRPCResultResponse = Message<\"iterm2.ServerOriginatedRPCResultResponse\"> & {\n};\n\n/**\n * Describes the message iterm2.ServerOriginatedRPCResultResponse.\n * Use `create(ServerOriginatedRPCResultResponseSchema)` to create a new message.\n */\nexport const ServerOriginatedRPCResultResponseSchema: GenMessage<ServerOriginatedRPCResultResponse> = /*@__PURE__*/\n messageDesc(file_api, 33);\n\n/**\n * @generated from message iterm2.ListProfilesRequest\n */\nexport type ListProfilesRequest = Message<\"iterm2.ListProfilesRequest\"> & {\n /**\n * @generated from field: repeated string properties = 1;\n */\n properties: string[];\n\n /**\n * @generated from field: repeated string guids = 2;\n */\n guids: string[];\n};\n\n/**\n * Describes the message iterm2.ListProfilesRequest.\n * Use `create(ListProfilesRequestSchema)` to create a new message.\n */\nexport const ListProfilesRequestSchema: GenMessage<ListProfilesRequest> = /*@__PURE__*/\n messageDesc(file_api, 34);\n\n/**\n * @generated from message iterm2.ListProfilesResponse\n */\nexport type ListProfilesResponse = Message<\"iterm2.ListProfilesResponse\"> & {\n /**\n * @generated from field: repeated iterm2.ListProfilesResponse.Profile profiles = 1;\n */\n profiles: ListProfilesResponse_Profile[];\n};\n\n/**\n * Describes the message iterm2.ListProfilesResponse.\n * Use `create(ListProfilesResponseSchema)` to create a new message.\n */\nexport const ListProfilesResponseSchema: GenMessage<ListProfilesResponse> = /*@__PURE__*/\n messageDesc(file_api, 35);\n\n/**\n * @generated from message iterm2.ListProfilesResponse.Profile\n */\nexport type ListProfilesResponse_Profile = Message<\"iterm2.ListProfilesResponse.Profile\"> & {\n /**\n * @generated from field: repeated iterm2.ProfileProperty properties = 1;\n */\n properties: ProfileProperty[];\n};\n\n/**\n * Describes the message iterm2.ListProfilesResponse.Profile.\n * Use `create(ListProfilesResponse_ProfileSchema)` to create a new message.\n */\nexport const ListProfilesResponse_ProfileSchema: GenMessage<ListProfilesResponse_Profile> = /*@__PURE__*/\n messageDesc(file_api, 35, 0);\n\n/**\n * @generated from message iterm2.FocusRequest\n */\nexport type FocusRequest = Message<\"iterm2.FocusRequest\"> & {\n};\n\n/**\n * Describes the message iterm2.FocusRequest.\n * Use `create(FocusRequestSchema)` to create a new message.\n */\nexport const FocusRequestSchema: GenMessage<FocusRequest> = /*@__PURE__*/\n messageDesc(file_api, 36);\n\n/**\n * @generated from message iterm2.FocusResponse\n */\nexport type FocusResponse = Message<\"iterm2.FocusResponse\"> & {\n /**\n * @generated from field: repeated iterm2.FocusChangedNotification notifications = 1;\n */\n notifications: FocusChangedNotification[];\n};\n\n/**\n * Describes the message iterm2.FocusResponse.\n * Use `create(FocusResponseSchema)` to create a new message.\n */\nexport const FocusResponseSchema: GenMessage<FocusResponse> = /*@__PURE__*/\n messageDesc(file_api, 37);\n\n/**\n * @generated from message iterm2.SavedArrangementRequest\n */\nexport type SavedArrangementRequest = Message<\"iterm2.SavedArrangementRequest\"> & {\n /**\n * @generated from field: optional string name = 1;\n */\n name: string;\n\n /**\n * @generated from field: optional iterm2.SavedArrangementRequest.Action action = 2;\n */\n action: SavedArrangementRequest_Action;\n\n /**\n * @generated from field: optional string window_id = 3;\n */\n windowId: string;\n};\n\n/**\n * Describes the message iterm2.SavedArrangementRequest.\n * Use `create(SavedArrangementRequestSchema)` to create a new message.\n */\nexport const SavedArrangementRequestSchema: GenMessage<SavedArrangementRequest> = /*@__PURE__*/\n messageDesc(file_api, 38);\n\n/**\n * @generated from enum iterm2.SavedArrangementRequest.Action\n */\nexport enum SavedArrangementRequest_Action {\n /**\n * @generated from enum value: RESTORE = 0;\n */\n RESTORE = 0,\n\n /**\n * @generated from enum value: SAVE = 1;\n */\n SAVE = 1,\n\n /**\n * @generated from enum value: LIST = 2;\n */\n LIST = 2,\n}\n\n/**\n * Describes the enum iterm2.SavedArrangementRequest.Action.\n */\nexport const SavedArrangementRequest_ActionSchema: GenEnum<SavedArrangementRequest_Action> = /*@__PURE__*/\n enumDesc(file_api, 38, 0);\n\n/**\n * @generated from message iterm2.SavedArrangementResponse\n */\nexport type SavedArrangementResponse = Message<\"iterm2.SavedArrangementResponse\"> & {\n /**\n * @generated from field: optional iterm2.SavedArrangementResponse.Status status = 1;\n */\n status: SavedArrangementResponse_Status;\n\n /**\n * @generated from field: repeated string names = 2;\n */\n names: string[];\n};\n\n/**\n * Describes the message iterm2.SavedArrangementResponse.\n * Use `create(SavedArrangementResponseSchema)` to create a new message.\n */\nexport const SavedArrangementResponseSchema: GenMessage<SavedArrangementResponse> = /*@__PURE__*/\n messageDesc(file_api, 39);\n\n/**\n * @generated from enum iterm2.SavedArrangementResponse.Status\n */\nexport enum SavedArrangementResponse_Status {\n /**\n * @generated from enum value: OK = 0;\n */\n OK = 0,\n\n /**\n * @generated from enum value: ARRANGEMENT_NOT_FOUND = 1;\n */\n ARRANGEMENT_NOT_FOUND = 1,\n\n /**\n * @generated from enum value: WINDOW_NOT_FOUND = 2;\n */\n WINDOW_NOT_FOUND = 2,\n\n /**\n * @generated from enum value: REQUEST_MALFORMED = 3;\n */\n REQUEST_MALFORMED = 3,\n}\n\n/**\n * Describes the enum iterm2.SavedArrangementResponse.Status.\n */\nexport const SavedArrangementResponse_StatusSchema: GenEnum<SavedArrangementResponse_Status> = /*@__PURE__*/\n enumDesc(file_api, 39, 0);\n\n/**\n * @generated from message iterm2.VariableRequest\n */\nexport type VariableRequest = Message<\"iterm2.VariableRequest\"> & {\n /**\n * @generated from oneof iterm2.VariableRequest.scope\n */\n scope: {\n /**\n * @generated from field: string session_id = 1;\n */\n value: string;\n case: \"sessionId\";\n } | {\n /**\n * @generated from field: string tab_id = 4;\n */\n value: string;\n case: \"tabId\";\n } | {\n /**\n * @generated from field: bool app = 5;\n */\n value: boolean;\n case: \"app\";\n } | {\n /**\n * @generated from field: string window_id = 6;\n */\n value: string;\n case: \"windowId\";\n } | { case: undefined; value?: undefined };\n\n /**\n * @generated from field: repeated iterm2.VariableRequest.Set set = 2;\n */\n set: VariableRequest_Set[];\n\n /**\n * @generated from field: repeated string get = 3;\n */\n get: string[];\n};\n\n/**\n * Describes the message iterm2.VariableRequest.\n * Use `create(VariableRequestSchema)` to create a new message.\n */\nexport const VariableRequestSchema: GenMessage<VariableRequest> = /*@__PURE__*/\n messageDesc(file_api, 40);\n\n/**\n * @generated from message iterm2.VariableRequest.Set\n */\nexport type VariableRequest_Set = Message<\"iterm2.VariableRequest.Set\"> & {\n /**\n * @generated from field: optional string name = 1;\n */\n name: string;\n\n /**\n * @generated from field: optional string value = 2;\n */\n value: string;\n};\n\n/**\n * Describes the message iterm2.VariableRequest.Set.\n * Use `create(VariableRequest_SetSchema)` to create a new message.\n */\nexport const VariableRequest_SetSchema: GenMessage<VariableRequest_Set> = /*@__PURE__*/\n messageDesc(file_api, 40, 0);\n\n/**\n * @generated from message iterm2.VariableResponse\n */\nexport type VariableResponse = Message<\"iterm2.VariableResponse\"> & {\n /**\n * @generated from field: optional iterm2.VariableResponse.Status status = 1;\n */\n status: VariableResponse_Status;\n\n /**\n * @generated from field: repeated string values = 2;\n */\n values: string[];\n};\n\n/**\n * Describes the message iterm2.VariableResponse.\n * Use `create(VariableResponseSchema)` to create a new message.\n */\nexport const VariableResponseSchema: GenMessage<VariableResponse> = /*@__PURE__*/\n messageDesc(file_api, 41);\n\n/**\n * @generated from enum iterm2.VariableResponse.Status\n */\nexport enum VariableResponse_Status {\n /**\n * @generated from enum value: OK = 0;\n */\n OK = 0,\n\n /**\n * @generated from enum value: SESSION_NOT_FOUND = 1;\n */\n SESSION_NOT_FOUND = 1,\n\n /**\n * @generated from enum value: INVALID_NAME = 2;\n */\n INVALID_NAME = 2,\n\n /**\n * @generated from enum value: MISSING_SCOPE = 3;\n */\n MISSING_SCOPE = 3,\n\n /**\n * @generated from enum value: TAB_NOT_FOUND = 4;\n */\n TAB_NOT_FOUND = 4,\n\n /**\n * @generated from enum value: MULTI_GET_DISALLOWED = 5;\n */\n MULTI_GET_DISALLOWED = 5,\n\n /**\n * @generated from enum value: WINDOW_NOT_FOUND = 6;\n */\n WINDOW_NOT_FOUND = 6,\n}\n\n/**\n * Describes the enum iterm2.VariableResponse.Status.\n */\nexport const VariableResponse_StatusSchema: GenEnum<VariableResponse_Status> = /*@__PURE__*/\n enumDesc(file_api, 41, 0);\n\n/**\n * @generated from message iterm2.ActivateRequest\n */\nexport type ActivateRequest = Message<\"iterm2.ActivateRequest\"> & {\n /**\n * @generated from oneof iterm2.ActivateRequest.identifier\n */\n identifier: {\n /**\n * @generated from field: string window_id = 1;\n */\n value: string;\n case: \"windowId\";\n } | {\n /**\n * @generated from field: string tab_id = 2;\n */\n value: string;\n case: \"tabId\";\n } | {\n /**\n * @generated from field: string session_id = 3;\n */\n value: string;\n case: \"sessionId\";\n } | { case: undefined; value?: undefined };\n\n /**\n * @generated from field: optional bool order_window_front = 4;\n */\n orderWindowFront: boolean;\n\n /**\n * @generated from field: optional bool select_tab = 5;\n */\n selectTab: boolean;\n\n /**\n * @generated from field: optional bool select_session = 6;\n */\n selectSession: boolean;\n\n /**\n * @generated from field: optional iterm2.ActivateRequest.App activate_app = 7;\n */\n activateApp?: ActivateRequest_App;\n};\n\n/**\n * Describes the message iterm2.ActivateRequest.\n * Use `create(ActivateRequestSchema)` to create a new message.\n */\nexport const ActivateRequestSchema: GenMessage<ActivateRequest> = /*@__PURE__*/\n messageDesc(file_api, 42);\n\n/**\n * @generated from message iterm2.ActivateRequest.App\n */\nexport type ActivateRequest_App = Message<\"iterm2.ActivateRequest.App\"> & {\n /**\n * @generated from field: optional bool raise_all_windows = 1;\n */\n raiseAllWindows: boolean;\n\n /**\n * @generated from field: optional bool ignoring_other_apps = 2;\n */\n ignoringOtherApps: boolean;\n};\n\n/**\n * Describes the message iterm2.ActivateRequest.App.\n * Use `create(ActivateRequest_AppSchema)` to create a new message.\n */\nexport const ActivateRequest_AppSchema: GenMessage<ActivateRequest_App> = /*@__PURE__*/\n messageDesc(file_api, 42, 0);\n\n/**\n * @generated from message iterm2.ActivateResponse\n */\nexport type ActivateResponse = Message<\"iterm2.ActivateResponse\"> & {\n /**\n * @generated from field: optional iterm2.ActivateResponse.Status status = 1;\n */\n status: ActivateResponse_Status;\n};\n\n/**\n * Describes the message iterm2.ActivateResponse.\n * Use `create(ActivateResponseSchema)` to create a new message.\n */\nexport const ActivateResponseSchema: GenMessage<ActivateResponse> = /*@__PURE__*/\n messageDesc(file_api, 43);\n\n/**\n * @generated from enum iterm2.ActivateResponse.Status\n */\nexport enum ActivateResponse_Status {\n /**\n * @generated from enum value: OK = 0;\n */\n OK = 0,\n\n /**\n * @generated from enum value: BAD_IDENTIFIER = 1;\n */\n BAD_IDENTIFIER = 1,\n\n /**\n * @generated from enum value: INVALID_OPTION = 2;\n */\n INVALID_OPTION = 2,\n}\n\n/**\n * Describes the enum iterm2.ActivateResponse.Status.\n */\nexport const ActivateResponse_StatusSchema: GenEnum<ActivateResponse_Status> = /*@__PURE__*/\n enumDesc(file_api, 43, 0);\n\n/**\n * @generated from message iterm2.InjectRequest\n */\nexport type InjectRequest = Message<\"iterm2.InjectRequest\"> & {\n /**\n * @generated from field: repeated string session_id = 1;\n */\n sessionId: string[];\n\n /**\n * @generated from field: optional bytes data = 2;\n */\n data: Uint8Array;\n};\n\n/**\n * Describes the message iterm2.InjectRequest.\n * Use `create(InjectRequestSchema)` to create a new message.\n */\nexport const InjectRequestSchema: GenMessage<InjectRequest> = /*@__PURE__*/\n messageDesc(file_api, 44);\n\n/**\n * @generated from message iterm2.InjectResponse\n */\nexport type InjectResponse = Message<\"iterm2.InjectResponse\"> & {\n /**\n * @generated from field: repeated iterm2.InjectResponse.Status status = 1;\n */\n status: InjectResponse_Status[];\n};\n\n/**\n * Describes the message iterm2.InjectResponse.\n * Use `create(InjectResponseSchema)` to create a new message.\n */\nexport const InjectResponseSchema: GenMessage<InjectResponse> = /*@__PURE__*/\n messageDesc(file_api, 45);\n\n/**\n * @generated from enum iterm2.InjectResponse.Status\n */\nexport enum InjectResponse_Status {\n /**\n * @generated from enum value: OK = 0;\n */\n OK = 0,\n\n /**\n * @generated from enum value: SESSION_NOT_FOUND = 1;\n */\n SESSION_NOT_FOUND = 1,\n}\n\n/**\n * Describes the enum iterm2.InjectResponse.Status.\n */\nexport const InjectResponse_StatusSchema: GenEnum<InjectResponse_Status> = /*@__PURE__*/\n enumDesc(file_api, 45, 0);\n\n/**\n * @generated from message iterm2.GetPropertyRequest\n */\nexport type GetPropertyRequest = Message<\"iterm2.GetPropertyRequest\"> & {\n /**\n * @generated from oneof iterm2.GetPropertyRequest.identifier\n */\n identifier: {\n /**\n * @generated from field: string window_id = 1;\n */\n value: string;\n case: \"windowId\";\n } | {\n /**\n * @generated from field: string session_id = 3;\n */\n value: string;\n case: \"sessionId\";\n } | { case: undefined; value?: undefined };\n\n /**\n * @generated from field: optional string name = 2;\n */\n name: string;\n};\n\n/**\n * Describes the message iterm2.GetPropertyRequest.\n * Use `create(GetPropertyRequestSchema)` to create a new message.\n */\nexport const GetPropertyRequestSchema: GenMessage<GetPropertyRequest> = /*@__PURE__*/\n messageDesc(file_api, 46);\n\n/**\n * @generated from message iterm2.GetPropertyResponse\n */\nexport type GetPropertyResponse = Message<\"iterm2.GetPropertyResponse\"> & {\n /**\n * @generated from field: optional iterm2.GetPropertyResponse.Status status = 1;\n */\n status: GetPropertyResponse_Status;\n\n /**\n * @generated from field: optional string json_value = 2;\n */\n jsonValue: string;\n};\n\n/**\n * Describes the message iterm2.GetPropertyResponse.\n * Use `create(GetPropertyResponseSchema)` to create a new message.\n */\nexport const GetPropertyResponseSchema: GenMessage<GetPropertyResponse> = /*@__PURE__*/\n messageDesc(file_api, 47);\n\n/**\n * @generated from enum iterm2.GetPropertyResponse.Status\n */\nexport enum GetPropertyResponse_Status {\n /**\n * @generated from enum value: OK = 0;\n */\n OK = 0,\n\n /**\n * @generated from enum value: UNRECOGNIZED_NAME = 1;\n */\n UNRECOGNIZED_NAME = 1,\n\n /**\n * @generated from enum value: INVALID_TARGET = 2;\n */\n INVALID_TARGET = 2,\n}\n\n/**\n * Describes the enum iterm2.GetPropertyResponse.Status.\n */\nexport const GetPropertyResponse_StatusSchema: GenEnum<GetPropertyResponse_Status> = /*@__PURE__*/\n enumDesc(file_api, 47, 0);\n\n/**\n * @generated from message iterm2.SetPropertyRequest\n */\nexport type SetPropertyRequest = Message<\"iterm2.SetPropertyRequest\"> & {\n /**\n * @generated from oneof iterm2.SetPropertyRequest.identifier\n */\n identifier: {\n /**\n * @generated from field: string window_id = 1;\n */\n value: string;\n case: \"windowId\";\n } | {\n /**\n * @generated from field: string session_id = 5;\n */\n value: string;\n case: \"sessionId\";\n } | { case: undefined; value?: undefined };\n\n /**\n * @generated from field: optional string name = 3;\n */\n name: string;\n\n /**\n * @generated from field: optional string json_value = 4;\n */\n jsonValue: string;\n};\n\n/**\n * Describes the message iterm2.SetPropertyRequest.\n * Use `create(SetPropertyRequestSchema)` to create a new message.\n */\nexport const SetPropertyRequestSchema: GenMessage<SetPropertyRequest> = /*@__PURE__*/\n messageDesc(file_api, 48);\n\n/**\n * @generated from message iterm2.SetPropertyResponse\n */\nexport type SetPropertyResponse = Message<\"iterm2.SetPropertyResponse\"> & {\n /**\n * @generated from field: optional iterm2.SetPropertyResponse.Status status = 1;\n */\n status: SetPropertyResponse_Status;\n};\n\n/**\n * Describes the message iterm2.SetPropertyResponse.\n * Use `create(SetPropertyResponseSchema)` to create a new message.\n */\nexport const SetPropertyResponseSchema: GenMessage<SetPropertyResponse> = /*@__PURE__*/\n messageDesc(file_api, 49);\n\n/**\n * @generated from enum iterm2.SetPropertyResponse.Status\n */\nexport enum SetPropertyResponse_Status {\n /**\n * @generated from enum value: OK = 0;\n */\n OK = 0,\n\n /**\n * @generated from enum value: UNRECOGNIZED_NAME = 1;\n */\n UNRECOGNIZED_NAME = 1,\n\n /**\n * @generated from enum value: INVALID_VALUE = 2;\n */\n INVALID_VALUE = 2,\n\n /**\n * @generated from enum value: INVALID_TARGET = 3;\n */\n INVALID_TARGET = 3,\n\n /**\n * @generated from enum value: DEFERRED = 4;\n */\n DEFERRED = 4,\n\n /**\n * @generated from enum value: IMPOSSIBLE = 5;\n */\n IMPOSSIBLE = 5,\n\n /**\n * @generated from enum value: FAILED = 6;\n */\n FAILED = 6,\n}\n\n/**\n * Describes the enum iterm2.SetPropertyResponse.Status.\n */\nexport const SetPropertyResponse_StatusSchema: GenEnum<SetPropertyResponse_Status> = /*@__PURE__*/\n enumDesc(file_api, 49, 0);\n\n/**\n * @generated from message iterm2.RegisterToolRequest\n */\nexport type RegisterToolRequest = Message<\"iterm2.RegisterToolRequest\"> & {\n /**\n * @generated from field: optional string name = 1;\n */\n name: string;\n\n /**\n * @generated from field: optional string identifier = 2;\n */\n identifier: string;\n\n /**\n * @generated from field: optional bool reveal_if_already_registered = 5 [default = false];\n */\n revealIfAlreadyRegistered: boolean;\n\n /**\n * @generated from field: optional iterm2.RegisterToolRequest.ToolType tool_type = 3 [default = WEB_VIEW_TOOL];\n */\n toolType: RegisterToolRequest_ToolType;\n\n /**\n * @generated from field: optional string URL = 4;\n */\n URL: string;\n};\n\n/**\n * Describes the message iterm2.RegisterToolRequest.\n * Use `create(RegisterToolRequestSchema)` to create a new message.\n */\nexport const RegisterToolRequestSchema: GenMessage<RegisterToolRequest> = /*@__PURE__*/\n messageDesc(file_api, 50);\n\n/**\n * @generated from enum iterm2.RegisterToolRequest.ToolType\n */\nexport enum RegisterToolRequest_ToolType {\n /**\n * @generated from enum value: WEB_VIEW_TOOL = 1;\n */\n WEB_VIEW_TOOL = 1,\n}\n\n/**\n * Describes the enum iterm2.RegisterToolRequest.ToolType.\n */\nexport const RegisterToolRequest_ToolTypeSchema: GenEnum<RegisterToolRequest_ToolType> = /*@__PURE__*/\n enumDesc(file_api, 50, 0);\n\n/**\n * @generated from message iterm2.RPCRegistrationRequest\n */\nexport type RPCRegistrationRequest = Message<\"iterm2.RPCRegistrationRequest\"> & {\n /**\n * @generated from field: optional string name = 1;\n */\n name: string;\n\n /**\n * @generated from field: repeated iterm2.RPCRegistrationRequest.RPCArgumentSignature arguments = 2;\n */\n arguments: RPCRegistrationRequest_RPCArgumentSignature[];\n\n /**\n * @generated from field: repeated iterm2.RPCRegistrationRequest.RPCArgument defaults = 4;\n */\n defaults: RPCRegistrationRequest_RPCArgument[];\n\n /**\n * @generated from field: optional float timeout = 3;\n */\n timeout: number;\n\n /**\n * @generated from field: optional iterm2.RPCRegistrationRequest.Role role = 5 [default = GENERIC];\n */\n role: RPCRegistrationRequest_Role;\n\n /**\n * @generated from oneof iterm2.RPCRegistrationRequest.RoleSpecificAttributes\n */\n RoleSpecificAttributes: {\n /**\n * @generated from field: iterm2.RPCRegistrationRequest.SessionTitleAttributes session_title_attributes = 7;\n */\n value: RPCRegistrationRequest_SessionTitleAttributes;\n case: \"sessionTitleAttributes\";\n } | {\n /**\n * @generated from field: iterm2.RPCRegistrationRequest.StatusBarComponentAttributes status_bar_component_attributes = 8;\n */\n value: RPCRegistrationRequest_StatusBarComponentAttributes;\n case: \"statusBarComponentAttributes\";\n } | {\n /**\n * @generated from field: iterm2.RPCRegistrationRequest.ContextMenuAttributes context_menu_attributes = 9;\n */\n value: RPCRegistrationRequest_ContextMenuAttributes;\n case: \"contextMenuAttributes\";\n } | { case: undefined; value?: undefined };\n\n /**\n * @generated from field: optional string display_name = 6 [deprecated = true];\n * @deprecated\n */\n displayName: string;\n};\n\n/**\n * Describes the message iterm2.RPCRegistrationRequest.\n * Use `create(RPCRegistrationRequestSchema)` to create a new message.\n */\nexport const RPCRegistrationRequestSchema: GenMessage<RPCRegistrationRequest> = /*@__PURE__*/\n messageDesc(file_api, 51);\n\n/**\n * @generated from message iterm2.RPCRegistrationRequest.RPCArgumentSignature\n */\nexport type RPCRegistrationRequest_RPCArgumentSignature = Message<\"iterm2.RPCRegistrationRequest.RPCArgumentSignature\"> & {\n /**\n * @generated from field: optional string name = 1;\n */\n name: string;\n};\n\n/**\n * Describes the message iterm2.RPCRegistrationRequest.RPCArgumentSignature.\n * Use `create(RPCRegistrationRequest_RPCArgumentSignatureSchema)` to create a new message.\n */\nexport const RPCRegistrationRequest_RPCArgumentSignatureSchema: GenMessage<RPCRegistrationRequest_RPCArgumentSignature> = /*@__PURE__*/\n messageDesc(file_api, 51, 0);\n\n/**\n * @generated from message iterm2.RPCRegistrationRequest.RPCArgument\n */\nexport type RPCRegistrationRequest_RPCArgument = Message<\"iterm2.RPCRegistrationRequest.RPCArgument\"> & {\n /**\n * @generated from field: optional string name = 1;\n */\n name: string;\n\n /**\n * @generated from field: optional string path = 2;\n */\n path: string;\n};\n\n/**\n * Describes the message iterm2.RPCRegistrationRequest.RPCArgument.\n * Use `create(RPCRegistrationRequest_RPCArgumentSchema)` to create a new message.\n */\nexport const RPCRegistrationRequest_RPCArgumentSchema: GenMessage<RPCRegistrationRequest_RPCArgument> = /*@__PURE__*/\n messageDesc(file_api, 51, 1);\n\n/**\n * @generated from message iterm2.RPCRegistrationRequest.SessionTitleAttributes\n */\nexport type RPCRegistrationRequest_SessionTitleAttributes = Message<\"iterm2.RPCRegistrationRequest.SessionTitleAttributes\"> & {\n /**\n * @generated from field: optional string display_name = 1;\n */\n displayName: string;\n\n /**\n * @generated from field: optional string unique_identifier = 6;\n */\n uniqueIdentifier: string;\n};\n\n/**\n * Describes the message iterm2.RPCRegistrationRequest.SessionTitleAttributes.\n * Use `create(RPCRegistrationRequest_SessionTitleAttributesSchema)` to create a new message.\n */\nexport const RPCRegistrationRequest_SessionTitleAttributesSchema: GenMessage<RPCRegistrationRequest_SessionTitleAttributes> = /*@__PURE__*/\n messageDesc(file_api, 51, 2);\n\n/**\n * @generated from message iterm2.RPCRegistrationRequest.StatusBarComponentAttributes\n */\nexport type RPCRegistrationRequest_StatusBarComponentAttributes = Message<\"iterm2.RPCRegistrationRequest.StatusBarComponentAttributes\"> & {\n /**\n * @generated from field: optional string short_description = 1;\n */\n shortDescription: string;\n\n /**\n * @generated from field: optional string detailed_description = 2;\n */\n detailedDescription: string;\n\n /**\n * @generated from field: repeated iterm2.RPCRegistrationRequest.StatusBarComponentAttributes.Knob knobs = 3;\n */\n knobs: RPCRegistrationRequest_StatusBarComponentAttributes_Knob[];\n\n /**\n * @generated from field: optional string exemplar = 4;\n */\n exemplar: string;\n\n /**\n * @generated from field: optional float update_cadence = 5;\n */\n updateCadence: number;\n\n /**\n * @generated from field: optional string unique_identifier = 6;\n */\n uniqueIdentifier: string;\n\n /**\n * @generated from field: repeated iterm2.RPCRegistrationRequest.StatusBarComponentAttributes.Icon icons = 7;\n */\n icons: RPCRegistrationRequest_StatusBarComponentAttributes_Icon[];\n\n /**\n * @generated from field: optional iterm2.RPCRegistrationRequest.StatusBarComponentAttributes.Format format = 8 [default = PLAIN_TEXT];\n */\n format: RPCRegistrationRequest_StatusBarComponentAttributes_Format;\n};\n\n/**\n * Describes the message iterm2.RPCRegistrationRequest.StatusBarComponentAttributes.\n * Use `create(RPCRegistrationRequest_StatusBarComponentAttributesSchema)` to create a new message.\n */\nexport const RPCRegistrationRequest_StatusBarComponentAttributesSchema: GenMessage<RPCRegistrationRequest_StatusBarComponentAttributes> = /*@__PURE__*/\n messageDesc(file_api, 51, 3);\n\n/**\n * @generated from message iterm2.RPCRegistrationRequest.StatusBarComponentAttributes.Knob\n */\nexport type RPCRegistrationRequest_StatusBarComponentAttributes_Knob = Message<\"iterm2.RPCRegistrationRequest.StatusBarComponentAttributes.Knob\"> & {\n /**\n * @generated from field: optional string name = 1;\n */\n name: string;\n\n /**\n * @generated from field: optional iterm2.RPCRegistrationRequest.StatusBarComponentAttributes.Knob.Type type = 2;\n */\n type: RPCRegistrationRequest_StatusBarComponentAttributes_Knob_Type;\n\n /**\n * @generated from field: optional string placeholder = 3;\n */\n placeholder: string;\n\n /**\n * @generated from field: optional string json_default_value = 4;\n */\n jsonDefaultValue: string;\n\n /**\n * @generated from field: optional string key = 5;\n */\n key: string;\n};\n\n/**\n * Describes the message iterm2.RPCRegistrationRequest.StatusBarComponentAttributes.Knob.\n * Use `create(RPCRegistrationRequest_StatusBarComponentAttributes_KnobSchema)` to create a new message.\n */\nexport const RPCRegistrationRequest_StatusBarComponentAttributes_KnobSchema: GenMessage<RPCRegistrationRequest_StatusBarComponentAttributes_Knob> = /*@__PURE__*/\n messageDesc(file_api, 51, 3, 0);\n\n/**\n * @generated from enum iterm2.RPCRegistrationRequest.StatusBarComponentAttributes.Knob.Type\n */\nexport enum RPCRegistrationRequest_StatusBarComponentAttributes_Knob_Type {\n /**\n * @generated from enum value: Checkbox = 1;\n */\n Checkbox = 1,\n\n /**\n * @generated from enum value: String = 2;\n */\n String = 2,\n\n /**\n * @generated from enum value: PositiveFloatingPoint = 3;\n */\n PositiveFloatingPoint = 3,\n\n /**\n * @generated from enum value: Color = 4;\n */\n Color = 4,\n}\n\n/**\n * Describes the enum iterm2.RPCRegistrationRequest.StatusBarComponentAttributes.Knob.Type.\n */\nexport const RPCRegistrationRequest_StatusBarComponentAttributes_Knob_TypeSchema: GenEnum<RPCRegistrationRequest_StatusBarComponentAttributes_Knob_Type> = /*@__PURE__*/\n enumDesc(file_api, 51, 3, 0, 0);\n\n/**\n * @generated from message iterm2.RPCRegistrationRequest.StatusBarComponentAttributes.Icon\n */\nexport type RPCRegistrationRequest_StatusBarComponentAttributes_Icon = Message<\"iterm2.RPCRegistrationRequest.StatusBarComponentAttributes.Icon\"> & {\n /**\n * @generated from field: optional bytes data = 1;\n */\n data: Uint8Array;\n\n /**\n * @generated from field: optional float scale = 2;\n */\n scale: number;\n};\n\n/**\n * Describes the message iterm2.RPCRegistrationRequest.StatusBarComponentAttributes.Icon.\n * Use `create(RPCRegistrationRequest_StatusBarComponentAttributes_IconSchema)` to create a new message.\n */\nexport const RPCRegistrationRequest_StatusBarComponentAttributes_IconSchema: GenMessage<RPCRegistrationRequest_StatusBarComponentAttributes_Icon> = /*@__PURE__*/\n messageDesc(file_api, 51, 3, 1);\n\n/**\n * @generated from enum iterm2.RPCRegistrationRequest.StatusBarComponentAttributes.Format\n */\nexport enum RPCRegistrationRequest_StatusBarComponentAttributes_Format {\n /**\n * @generated from enum value: PLAIN_TEXT = 0;\n */\n PLAIN_TEXT = 0,\n\n /**\n * @generated from enum value: HTML = 1;\n */\n HTML = 1,\n}\n\n/**\n * Describes the enum iterm2.RPCRegistrationRequest.StatusBarComponentAttributes.Format.\n */\nexport const RPCRegistrationRequest_StatusBarComponentAttributes_FormatSchema: GenEnum<RPCRegistrationRequest_StatusBarComponentAttributes_Format> = /*@__PURE__*/\n enumDesc(file_api, 51, 3, 0);\n\n/**\n * @generated from message iterm2.RPCRegistrationRequest.ContextMenuAttributes\n */\nexport type RPCRegistrationRequest_ContextMenuAttributes = Message<\"iterm2.RPCRegistrationRequest.ContextMenuAttributes\"> & {\n /**\n * @generated from field: optional string display_name = 1;\n */\n displayName: string;\n\n /**\n * @generated from field: optional string unique_identifier = 2;\n */\n uniqueIdentifier: string;\n};\n\n/**\n * Describes the message iterm2.RPCRegistrationRequest.ContextMenuAttributes.\n * Use `create(RPCRegistrationRequest_ContextMenuAttributesSchema)` to create a new message.\n */\nexport const RPCRegistrationRequest_ContextMenuAttributesSchema: GenMessage<RPCRegistrationRequest_ContextMenuAttributes> = /*@__PURE__*/\n messageDesc(file_api, 51, 4);\n\n/**\n * @generated from enum iterm2.RPCRegistrationRequest.Role\n */\nexport enum RPCRegistrationRequest_Role {\n /**\n * @generated from enum value: GENERIC = 1;\n */\n GENERIC = 1,\n\n /**\n * @generated from enum value: SESSION_TITLE = 2;\n */\n SESSION_TITLE = 2,\n\n /**\n * @generated from enum value: STATUS_BAR_COMPONENT = 3;\n */\n STATUS_BAR_COMPONENT = 3,\n\n /**\n * @generated from enum value: CONTEXT_MENU = 4;\n */\n CONTEXT_MENU = 4,\n}\n\n/**\n * Describes the enum iterm2.RPCRegistrationRequest.Role.\n */\nexport const RPCRegistrationRequest_RoleSchema: GenEnum<RPCRegistrationRequest_Role> = /*@__PURE__*/\n enumDesc(file_api, 51, 0);\n\n/**\n * @generated from message iterm2.RegisterToolResponse\n */\nexport type RegisterToolResponse = Message<\"iterm2.RegisterToolResponse\"> & {\n /**\n * @generated from field: optional iterm2.RegisterToolResponse.Status status = 1;\n */\n status: RegisterToolResponse_Status;\n};\n\n/**\n * Describes the message iterm2.RegisterToolResponse.\n * Use `create(RegisterToolResponseSchema)` to create a new message.\n */\nexport const RegisterToolResponseSchema: GenMessage<RegisterToolResponse> = /*@__PURE__*/\n messageDesc(file_api, 52);\n\n/**\n * @generated from enum iterm2.RegisterToolResponse.Status\n */\nexport enum RegisterToolResponse_Status {\n /**\n * @generated from enum value: OK = 0;\n */\n OK = 0,\n\n /**\n * @generated from enum value: REQUEST_MALFORMED = 1;\n */\n REQUEST_MALFORMED = 1,\n\n /**\n * @generated from enum value: PERMISSION_DENIED = 2;\n */\n PERMISSION_DENIED = 2,\n}\n\n/**\n * Describes the enum iterm2.RegisterToolResponse.Status.\n */\nexport const RegisterToolResponse_StatusSchema: GenEnum<RegisterToolResponse_Status> = /*@__PURE__*/\n enumDesc(file_api, 52, 0);\n\n/**\n * @generated from message iterm2.KeystrokePattern\n */\nexport type KeystrokePattern = Message<\"iterm2.KeystrokePattern\"> & {\n /**\n * @generated from field: repeated iterm2.Modifiers required_modifiers = 1;\n */\n requiredModifiers: Modifiers[];\n\n /**\n * @generated from field: repeated iterm2.Modifiers forbidden_modifiers = 2;\n */\n forbiddenModifiers: Modifiers[];\n\n /**\n * @generated from field: repeated int32 keycodes = 3;\n */\n keycodes: number[];\n\n /**\n * @generated from field: repeated string characters = 4;\n */\n characters: string[];\n\n /**\n * @generated from field: repeated string characters_ignoring_modifiers = 5;\n */\n charactersIgnoringModifiers: string[];\n};\n\n/**\n * Describes the message iterm2.KeystrokePattern.\n * Use `create(KeystrokePatternSchema)` to create a new message.\n */\nexport const KeystrokePatternSchema: GenMessage<KeystrokePattern> = /*@__PURE__*/\n messageDesc(file_api, 53);\n\n/**\n * @generated from message iterm2.KeystrokeMonitorRequest\n */\nexport type KeystrokeMonitorRequest = Message<\"iterm2.KeystrokeMonitorRequest\"> & {\n /**\n * @generated from field: repeated iterm2.KeystrokePattern patterns_to_ignore = 1 [deprecated = true];\n * @deprecated\n */\n patternsToIgnore: KeystrokePattern[];\n\n /**\n * @generated from field: optional bool advanced = 2;\n */\n advanced: boolean;\n};\n\n/**\n * Describes the message iterm2.KeystrokeMonitorRequest.\n * Use `create(KeystrokeMonitorRequestSchema)` to create a new message.\n */\nexport const KeystrokeMonitorRequestSchema: GenMessage<KeystrokeMonitorRequest> = /*@__PURE__*/\n messageDesc(file_api, 54);\n\n/**\n * @generated from message iterm2.KeystrokeFilterRequest\n */\nexport type KeystrokeFilterRequest = Message<\"iterm2.KeystrokeFilterRequest\"> & {\n /**\n * @generated from field: repeated iterm2.KeystrokePattern patterns_to_ignore = 1;\n */\n patternsToIgnore: KeystrokePattern[];\n};\n\n/**\n * Describes the message iterm2.KeystrokeFilterRequest.\n * Use `create(KeystrokeFilterRequestSchema)` to create a new message.\n */\nexport const KeystrokeFilterRequestSchema: GenMessage<KeystrokeFilterRequest> = /*@__PURE__*/\n messageDesc(file_api, 55);\n\n/**\n * @generated from message iterm2.VariableMonitorRequest\n */\nexport type VariableMonitorRequest = Message<\"iterm2.VariableMonitorRequest\"> & {\n /**\n * @generated from field: optional string name = 1;\n */\n name: string;\n\n /**\n * @generated from field: optional iterm2.VariableScope scope = 2;\n */\n scope: VariableScope;\n\n /**\n * @generated from field: optional string identifier = 3;\n */\n identifier: string;\n};\n\n/**\n * Describes the message iterm2.VariableMonitorRequest.\n * Use `create(VariableMonitorRequestSchema)` to create a new message.\n */\nexport const VariableMonitorRequestSchema: GenMessage<VariableMonitorRequest> = /*@__PURE__*/\n messageDesc(file_api, 56);\n\n/**\n * @generated from message iterm2.ProfileChangeRequest\n */\nexport type ProfileChangeRequest = Message<\"iterm2.ProfileChangeRequest\"> & {\n /**\n * @generated from field: optional string guid = 1;\n */\n guid: string;\n};\n\n/**\n * Describes the message iterm2.ProfileChangeRequest.\n * Use `create(ProfileChangeRequestSchema)` to create a new message.\n */\nexport const ProfileChangeRequestSchema: GenMessage<ProfileChangeRequest> = /*@__PURE__*/\n messageDesc(file_api, 57);\n\n/**\n * @generated from message iterm2.PromptMonitorRequest\n */\nexport type PromptMonitorRequest = Message<\"iterm2.PromptMonitorRequest\"> & {\n /**\n * @generated from field: repeated iterm2.PromptMonitorMode modes = 1;\n */\n modes: PromptMonitorMode[];\n};\n\n/**\n * Describes the message iterm2.PromptMonitorRequest.\n * Use `create(PromptMonitorRequestSchema)` to create a new message.\n */\nexport const PromptMonitorRequestSchema: GenMessage<PromptMonitorRequest> = /*@__PURE__*/\n messageDesc(file_api, 58);\n\n/**\n * @generated from message iterm2.NotificationRequest\n */\nexport type NotificationRequest = Message<\"iterm2.NotificationRequest\"> & {\n /**\n * @generated from field: optional string session = 1;\n */\n session: string;\n\n /**\n * @generated from field: optional bool subscribe = 2;\n */\n subscribe: boolean;\n\n /**\n * @generated from field: optional iterm2.NotificationType notification_type = 3;\n */\n notificationType: NotificationType;\n\n /**\n * @generated from oneof iterm2.NotificationRequest.arguments\n */\n arguments: {\n /**\n * @generated from field: iterm2.RPCRegistrationRequest rpc_registration_request = 4;\n */\n value: RPCRegistrationRequest;\n case: \"rpcRegistrationRequest\";\n } | {\n /**\n * @generated from field: iterm2.KeystrokeMonitorRequest keystroke_monitor_request = 5;\n */\n value: KeystrokeMonitorRequest;\n case: \"keystrokeMonitorRequest\";\n } | {\n /**\n * @generated from field: iterm2.VariableMonitorRequest variable_monitor_request = 6;\n */\n value: VariableMonitorRequest;\n case: \"variableMonitorRequest\";\n } | {\n /**\n * @generated from field: iterm2.ProfileChangeRequest profile_change_request = 7;\n */\n value: ProfileChangeRequest;\n case: \"profileChangeRequest\";\n } | {\n /**\n * @generated from field: iterm2.KeystrokeFilterRequest keystroke_filter_request = 8;\n */\n value: KeystrokeFilterRequest;\n case: \"keystrokeFilterRequest\";\n } | {\n /**\n * @generated from field: iterm2.PromptMonitorRequest prompt_monitor_request = 9;\n */\n value: PromptMonitorRequest;\n case: \"promptMonitorRequest\";\n } | { case: undefined; value?: undefined };\n};\n\n/**\n * Describes the message iterm2.NotificationRequest.\n * Use `create(NotificationRequestSchema)` to create a new message.\n */\nexport const NotificationRequestSchema: GenMessage<NotificationRequest> = /*@__PURE__*/\n messageDesc(file_api, 59);\n\n/**\n * @generated from message iterm2.NotificationResponse\n */\nexport type NotificationResponse = Message<\"iterm2.NotificationResponse\"> & {\n /**\n * @generated from field: optional iterm2.NotificationResponse.Status status = 1;\n */\n status: NotificationResponse_Status;\n};\n\n/**\n * Describes the message iterm2.NotificationResponse.\n * Use `create(NotificationResponseSchema)` to create a new message.\n */\nexport const NotificationResponseSchema: GenMessage<NotificationResponse> = /*@__PURE__*/\n messageDesc(file_api, 60);\n\n/**\n * @generated from enum iterm2.NotificationResponse.Status\n */\nexport enum NotificationResponse_Status {\n /**\n * @generated from enum value: OK = 0;\n */\n OK = 0,\n\n /**\n * @generated from enum value: SESSION_NOT_FOUND = 1;\n */\n SESSION_NOT_FOUND = 1,\n\n /**\n * @generated from enum value: REQUEST_MALFORMED = 2;\n */\n REQUEST_MALFORMED = 2,\n\n /**\n * @generated from enum value: NOT_SUBSCRIBED = 3;\n */\n NOT_SUBSCRIBED = 3,\n\n /**\n * @generated from enum value: ALREADY_SUBSCRIBED = 4;\n */\n ALREADY_SUBSCRIBED = 4,\n\n /**\n * @generated from enum value: DUPLICATE_SERVER_ORIGINATED_RPC = 5;\n */\n DUPLICATE_SERVER_ORIGINATED_RPC = 5,\n\n /**\n * @generated from enum value: INVALID_IDENTIFIER = 6;\n */\n INVALID_IDENTIFIER = 6,\n}\n\n/**\n * Describes the enum iterm2.NotificationResponse.Status.\n */\nexport const NotificationResponse_StatusSchema: GenEnum<NotificationResponse_Status> = /*@__PURE__*/\n enumDesc(file_api, 60, 0);\n\n/**\n * @generated from message iterm2.Notification\n */\nexport type Notification = Message<\"iterm2.Notification\"> & {\n /**\n * @generated from field: optional iterm2.KeystrokeNotification keystroke_notification = 1;\n */\n keystrokeNotification?: KeystrokeNotification;\n\n /**\n * @generated from field: optional iterm2.ScreenUpdateNotification screen_update_notification = 2;\n */\n screenUpdateNotification?: ScreenUpdateNotification;\n\n /**\n * @generated from field: optional iterm2.PromptNotification prompt_notification = 3;\n */\n promptNotification?: PromptNotification;\n\n /**\n * @generated from field: optional iterm2.LocationChangeNotification location_change_notification = 4 [deprecated = true];\n * @deprecated\n */\n locationChangeNotification?: LocationChangeNotification;\n\n /**\n * @generated from field: optional iterm2.CustomEscapeSequenceNotification custom_escape_sequence_notification = 5;\n */\n customEscapeSequenceNotification?: CustomEscapeSequenceNotification;\n\n /**\n * @generated from field: optional iterm2.NewSessionNotification new_session_notification = 6;\n */\n newSessionNotification?: NewSessionNotification;\n\n /**\n * @generated from field: optional iterm2.TerminateSessionNotification terminate_session_notification = 7;\n */\n terminateSessionNotification?: TerminateSessionNotification;\n\n /**\n * @generated from field: optional iterm2.LayoutChangedNotification layout_changed_notification = 8;\n */\n layoutChangedNotification?: LayoutChangedNotification;\n\n /**\n * @generated from field: optional iterm2.FocusChangedNotification focus_changed_notification = 9;\n */\n focusChangedNotification?: FocusChangedNotification;\n\n /**\n * @generated from field: optional iterm2.ServerOriginatedRPCNotification server_originated_rpc_notification = 10;\n */\n serverOriginatedRpcNotification?: ServerOriginatedRPCNotification;\n\n /**\n * @generated from field: optional iterm2.BroadcastDomainsChangedNotification broadcast_domains_changed = 11;\n */\n broadcastDomainsChanged?: BroadcastDomainsChangedNotification;\n\n /**\n * @generated from field: optional iterm2.VariableChangedNotification variable_changed_notification = 12;\n */\n variableChangedNotification?: VariableChangedNotification;\n\n /**\n * @generated from field: optional iterm2.ProfileChangedNotification profile_changed_notification = 13;\n */\n profileChangedNotification?: ProfileChangedNotification;\n};\n\n/**\n * Describes the message iterm2.Notification.\n * Use `create(NotificationSchema)` to create a new message.\n */\nexport const NotificationSchema: GenMessage<Notification> = /*@__PURE__*/\n messageDesc(file_api, 61);\n\n/**\n * @generated from message iterm2.ProfileChangedNotification\n */\nexport type ProfileChangedNotification = Message<\"iterm2.ProfileChangedNotification\"> & {\n /**\n * @generated from field: optional string guid = 1;\n */\n guid: string;\n};\n\n/**\n * Describes the message iterm2.ProfileChangedNotification.\n * Use `create(ProfileChangedNotificationSchema)` to create a new message.\n */\nexport const ProfileChangedNotificationSchema: GenMessage<ProfileChangedNotification> = /*@__PURE__*/\n messageDesc(file_api, 62);\n\n/**\n * @generated from message iterm2.VariableChangedNotification\n */\nexport type VariableChangedNotification = Message<\"iterm2.VariableChangedNotification\"> & {\n /**\n * @generated from field: optional iterm2.VariableScope scope = 1;\n */\n scope: VariableScope;\n\n /**\n * @generated from field: optional string identifier = 2;\n */\n identifier: string;\n\n /**\n * @generated from field: optional string name = 3;\n */\n name: string;\n\n /**\n * @generated from field: optional string json_new_value = 4;\n */\n jsonNewValue: string;\n};\n\n/**\n * Describes the message iterm2.VariableChangedNotification.\n * Use `create(VariableChangedNotificationSchema)` to create a new message.\n */\nexport const VariableChangedNotificationSchema: GenMessage<VariableChangedNotification> = /*@__PURE__*/\n messageDesc(file_api, 63);\n\n/**\n * @generated from message iterm2.BroadcastDomainsChangedNotification\n */\nexport type BroadcastDomainsChangedNotification = Message<\"iterm2.BroadcastDomainsChangedNotification\"> & {\n /**\n * @generated from field: repeated iterm2.BroadcastDomain broadcast_domains = 1;\n */\n broadcastDomains: BroadcastDomain[];\n};\n\n/**\n * Describes the message iterm2.BroadcastDomainsChangedNotification.\n * Use `create(BroadcastDomainsChangedNotificationSchema)` to create a new message.\n */\nexport const BroadcastDomainsChangedNotificationSchema: GenMessage<BroadcastDomainsChangedNotification> = /*@__PURE__*/\n messageDesc(file_api, 64);\n\n/**\n * @generated from message iterm2.ServerOriginatedRPC\n */\nexport type ServerOriginatedRPC = Message<\"iterm2.ServerOriginatedRPC\"> & {\n /**\n * @generated from field: optional string name = 2;\n */\n name: string;\n\n /**\n * @generated from field: repeated iterm2.ServerOriginatedRPC.RPCArgument arguments = 3;\n */\n arguments: ServerOriginatedRPC_RPCArgument[];\n};\n\n/**\n * Describes the message iterm2.ServerOriginatedRPC.\n * Use `create(ServerOriginatedRPCSchema)` to create a new message.\n */\nexport const ServerOriginatedRPCSchema: GenMessage<ServerOriginatedRPC> = /*@__PURE__*/\n messageDesc(file_api, 65);\n\n/**\n * @generated from message iterm2.ServerOriginatedRPC.RPCArgument\n */\nexport type ServerOriginatedRPC_RPCArgument = Message<\"iterm2.ServerOriginatedRPC.RPCArgument\"> & {\n /**\n * @generated from field: optional string name = 1;\n */\n name: string;\n\n /**\n * @generated from field: optional string json_value = 2;\n */\n jsonValue: string;\n};\n\n/**\n * Describes the message iterm2.ServerOriginatedRPC.RPCArgument.\n * Use `create(ServerOriginatedRPC_RPCArgumentSchema)` to create a new message.\n */\nexport const ServerOriginatedRPC_RPCArgumentSchema: GenMessage<ServerOriginatedRPC_RPCArgument> = /*@__PURE__*/\n messageDesc(file_api, 65, 0);\n\n/**\n * @generated from message iterm2.ServerOriginatedRPCNotification\n */\nexport type ServerOriginatedRPCNotification = Message<\"iterm2.ServerOriginatedRPCNotification\"> & {\n /**\n * @generated from field: optional string request_id = 1;\n */\n requestId: string;\n\n /**\n * @generated from field: optional iterm2.ServerOriginatedRPC rpc = 2;\n */\n rpc?: ServerOriginatedRPC;\n};\n\n/**\n * Describes the message iterm2.ServerOriginatedRPCNotification.\n * Use `create(ServerOriginatedRPCNotificationSchema)` to create a new message.\n */\nexport const ServerOriginatedRPCNotificationSchema: GenMessage<ServerOriginatedRPCNotification> = /*@__PURE__*/\n messageDesc(file_api, 66);\n\n/**\n * @generated from message iterm2.KeystrokeNotification\n */\nexport type KeystrokeNotification = Message<\"iterm2.KeystrokeNotification\"> & {\n /**\n * @generated from field: optional string characters = 1;\n */\n characters: string;\n\n /**\n * @generated from field: optional string charactersIgnoringModifiers = 2;\n */\n charactersIgnoringModifiers: string;\n\n /**\n * @generated from field: repeated iterm2.Modifiers modifiers = 3;\n */\n modifiers: Modifiers[];\n\n /**\n * @generated from field: optional int32 keyCode = 4;\n */\n keyCode: number;\n\n /**\n * @generated from field: optional string session = 5;\n */\n session: string;\n\n /**\n * @generated from field: optional iterm2.KeystrokeNotification.Action action = 6;\n */\n action: KeystrokeNotification_Action;\n};\n\n/**\n * Describes the message iterm2.KeystrokeNotification.\n * Use `create(KeystrokeNotificationSchema)` to create a new message.\n */\nexport const KeystrokeNotificationSchema: GenMessage<KeystrokeNotification> = /*@__PURE__*/\n messageDesc(file_api, 67);\n\n/**\n * @generated from enum iterm2.KeystrokeNotification.Action\n */\nexport enum KeystrokeNotification_Action {\n /**\n * @generated from enum value: KEY_DOWN = 0;\n */\n KEY_DOWN = 0,\n\n /**\n * @generated from enum value: KEY_UP = 1;\n */\n KEY_UP = 1,\n\n /**\n * @generated from enum value: FLAGS_CHANGED = 2;\n */\n FLAGS_CHANGED = 2,\n}\n\n/**\n * Describes the enum iterm2.KeystrokeNotification.Action.\n */\nexport const KeystrokeNotification_ActionSchema: GenEnum<KeystrokeNotification_Action> = /*@__PURE__*/\n enumDesc(file_api, 67, 0);\n\n/**\n * @generated from message iterm2.ScreenUpdateNotification\n */\nexport type ScreenUpdateNotification = Message<\"iterm2.ScreenUpdateNotification\"> & {\n /**\n * @generated from field: optional string session = 1;\n */\n session: string;\n};\n\n/**\n * Describes the message iterm2.ScreenUpdateNotification.\n * Use `create(ScreenUpdateNotificationSchema)` to create a new message.\n */\nexport const ScreenUpdateNotificationSchema: GenMessage<ScreenUpdateNotification> = /*@__PURE__*/\n messageDesc(file_api, 68);\n\n/**\n * @generated from message iterm2.PromptNotificationPrompt\n */\nexport type PromptNotificationPrompt = Message<\"iterm2.PromptNotificationPrompt\"> & {\n /**\n * @generated from field: optional string placeholder = 1;\n */\n placeholder: string;\n\n /**\n * @generated from field: optional iterm2.GetPromptResponse prompt = 2;\n */\n prompt?: GetPromptResponse;\n};\n\n/**\n * Describes the message iterm2.PromptNotificationPrompt.\n * Use `create(PromptNotificationPromptSchema)` to create a new message.\n */\nexport const PromptNotificationPromptSchema: GenMessage<PromptNotificationPrompt> = /*@__PURE__*/\n messageDesc(file_api, 69);\n\n/**\n * @generated from message iterm2.PromptNotificationCommandStart\n */\nexport type PromptNotificationCommandStart = Message<\"iterm2.PromptNotificationCommandStart\"> & {\n /**\n * @generated from field: optional string command = 1;\n */\n command: string;\n};\n\n/**\n * Describes the message iterm2.PromptNotificationCommandStart.\n * Use `create(PromptNotificationCommandStartSchema)` to create a new message.\n */\nexport const PromptNotificationCommandStartSchema: GenMessage<PromptNotificationCommandStart> = /*@__PURE__*/\n messageDesc(file_api, 70);\n\n/**\n * @generated from message iterm2.PromptNotificationCommandEnd\n */\nexport type PromptNotificationCommandEnd = Message<\"iterm2.PromptNotificationCommandEnd\"> & {\n /**\n * @generated from field: optional int32 status = 1;\n */\n status: number;\n};\n\n/**\n * Describes the message iterm2.PromptNotificationCommandEnd.\n * Use `create(PromptNotificationCommandEndSchema)` to create a new message.\n */\nexport const PromptNotificationCommandEndSchema: GenMessage<PromptNotificationCommandEnd> = /*@__PURE__*/\n messageDesc(file_api, 71);\n\n/**\n * @generated from message iterm2.PromptNotification\n */\nexport type PromptNotification = Message<\"iterm2.PromptNotification\"> & {\n /**\n * @generated from field: optional string session = 1;\n */\n session: string;\n\n /**\n * @generated from oneof iterm2.PromptNotification.event\n */\n event: {\n /**\n * @generated from field: iterm2.PromptNotificationPrompt prompt = 2;\n */\n value: PromptNotificationPrompt;\n case: \"prompt\";\n } | {\n /**\n * @generated from field: iterm2.PromptNotificationCommandStart command_start = 3;\n */\n value: PromptNotificationCommandStart;\n case: \"commandStart\";\n } | {\n /**\n * @generated from field: iterm2.PromptNotificationCommandEnd command_end = 4;\n */\n value: PromptNotificationCommandEnd;\n case: \"commandEnd\";\n } | { case: undefined; value?: undefined };\n\n /**\n * @generated from field: optional string unique_prompt_id = 5;\n */\n uniquePromptId: string;\n};\n\n/**\n * Describes the message iterm2.PromptNotification.\n * Use `create(PromptNotificationSchema)` to create a new message.\n */\nexport const PromptNotificationSchema: GenMessage<PromptNotification> = /*@__PURE__*/\n messageDesc(file_api, 72);\n\n/**\n * @generated from message iterm2.LocationChangeNotification\n */\nexport type LocationChangeNotification = Message<\"iterm2.LocationChangeNotification\"> & {\n /**\n * @generated from field: optional string host_name = 1;\n */\n hostName: string;\n\n /**\n * @generated from field: optional string user_name = 2;\n */\n userName: string;\n\n /**\n * @generated from field: optional string directory = 3;\n */\n directory: string;\n\n /**\n * @generated from field: optional string session = 4;\n */\n session: string;\n};\n\n/**\n * Describes the message iterm2.LocationChangeNotification.\n * Use `create(LocationChangeNotificationSchema)` to create a new message.\n */\nexport const LocationChangeNotificationSchema: GenMessage<LocationChangeNotification> = /*@__PURE__*/\n messageDesc(file_api, 73);\n\n/**\n * @generated from message iterm2.CustomEscapeSequenceNotification\n */\nexport type CustomEscapeSequenceNotification = Message<\"iterm2.CustomEscapeSequenceNotification\"> & {\n /**\n * @generated from field: optional string session = 1;\n */\n session: string;\n\n /**\n * @generated from field: optional string sender_identity = 2;\n */\n senderIdentity: string;\n\n /**\n * @generated from field: optional string payload = 3;\n */\n payload: string;\n};\n\n/**\n * Describes the message iterm2.CustomEscapeSequenceNotification.\n * Use `create(CustomEscapeSequenceNotificationSchema)` to create a new message.\n */\nexport const CustomEscapeSequenceNotificationSchema: GenMessage<CustomEscapeSequenceNotification> = /*@__PURE__*/\n messageDesc(file_api, 74);\n\n/**\n * @generated from message iterm2.NewSessionNotification\n */\nexport type NewSessionNotification = Message<\"iterm2.NewSessionNotification\"> & {\n /**\n * @generated from field: optional string session_id = 1;\n */\n sessionId: string;\n};\n\n/**\n * Describes the message iterm2.NewSessionNotification.\n * Use `create(NewSessionNotificationSchema)` to create a new message.\n */\nexport const NewSessionNotificationSchema: GenMessage<NewSessionNotification> = /*@__PURE__*/\n messageDesc(file_api, 75);\n\n/**\n * @generated from message iterm2.FocusChangedNotification\n */\nexport type FocusChangedNotification = Message<\"iterm2.FocusChangedNotification\"> & {\n /**\n * @generated from oneof iterm2.FocusChangedNotification.event\n */\n event: {\n /**\n * @generated from field: bool application_active = 1;\n */\n value: boolean;\n case: \"applicationActive\";\n } | {\n /**\n * @generated from field: iterm2.FocusChangedNotification.Window window = 2;\n */\n value: FocusChangedNotification_Window;\n case: \"window\";\n } | {\n /**\n * @generated from field: string selected_tab = 3;\n */\n value: string;\n case: \"selectedTab\";\n } | {\n /**\n * @generated from field: string session = 4;\n */\n value: string;\n case: \"session\";\n } | { case: undefined; value?: undefined };\n};\n\n/**\n * Describes the message iterm2.FocusChangedNotification.\n * Use `create(FocusChangedNotificationSchema)` to create a new message.\n */\nexport const FocusChangedNotificationSchema: GenMessage<FocusChangedNotification> = /*@__PURE__*/\n messageDesc(file_api, 76);\n\n/**\n * @generated from message iterm2.FocusChangedNotification.Window\n */\nexport type FocusChangedNotification_Window = Message<\"iterm2.FocusChangedNotification.Window\"> & {\n /**\n * @generated from field: optional iterm2.FocusChangedNotification.Window.WindowStatus window_status = 1;\n */\n windowStatus: FocusChangedNotification_Window_WindowStatus;\n\n /**\n * @generated from field: optional string window_id = 2;\n */\n windowId: string;\n};\n\n/**\n * Describes the message iterm2.FocusChangedNotification.Window.\n * Use `create(FocusChangedNotification_WindowSchema)` to create a new message.\n */\nexport const FocusChangedNotification_WindowSchema: GenMessage<FocusChangedNotification_Window> = /*@__PURE__*/\n messageDesc(file_api, 76, 0);\n\n/**\n * @generated from enum iterm2.FocusChangedNotification.Window.WindowStatus\n */\nexport enum FocusChangedNotification_Window_WindowStatus {\n /**\n * @generated from enum value: TERMINAL_WINDOW_BECAME_KEY = 0;\n */\n TERMINAL_WINDOW_BECAME_KEY = 0,\n\n /**\n * @generated from enum value: TERMINAL_WINDOW_IS_CURRENT = 1;\n */\n TERMINAL_WINDOW_IS_CURRENT = 1,\n\n /**\n * @generated from enum value: TERMINAL_WINDOW_RESIGNED_KEY = 2;\n */\n TERMINAL_WINDOW_RESIGNED_KEY = 2,\n}\n\n/**\n * Describes the enum iterm2.FocusChangedNotification.Window.WindowStatus.\n */\nexport const FocusChangedNotification_Window_WindowStatusSchema: GenEnum<FocusChangedNotification_Window_WindowStatus> = /*@__PURE__*/\n enumDesc(file_api, 76, 0, 0);\n\n/**\n * @generated from message iterm2.TerminateSessionNotification\n */\nexport type TerminateSessionNotification = Message<\"iterm2.TerminateSessionNotification\"> & {\n /**\n * @generated from field: optional string session_id = 1;\n */\n sessionId: string;\n};\n\n/**\n * Describes the message iterm2.TerminateSessionNotification.\n * Use `create(TerminateSessionNotificationSchema)` to create a new message.\n */\nexport const TerminateSessionNotificationSchema: GenMessage<TerminateSessionNotification> = /*@__PURE__*/\n messageDesc(file_api, 77);\n\n/**\n * @generated from message iterm2.LayoutChangedNotification\n */\nexport type LayoutChangedNotification = Message<\"iterm2.LayoutChangedNotification\"> & {\n /**\n * @generated from field: optional iterm2.ListSessionsResponse list_sessions_response = 1;\n */\n listSessionsResponse?: ListSessionsResponse;\n};\n\n/**\n * Describes the message iterm2.LayoutChangedNotification.\n * Use `create(LayoutChangedNotificationSchema)` to create a new message.\n */\nexport const LayoutChangedNotificationSchema: GenMessage<LayoutChangedNotification> = /*@__PURE__*/\n messageDesc(file_api, 78);\n\n/**\n * @generated from message iterm2.GetBufferRequest\n */\nexport type GetBufferRequest = Message<\"iterm2.GetBufferRequest\"> & {\n /**\n * @generated from field: optional string session = 1;\n */\n session: string;\n\n /**\n * @generated from field: optional iterm2.LineRange line_range = 2;\n */\n lineRange?: LineRange;\n\n /**\n * @generated from field: optional bool include_styles = 3;\n */\n includeStyles: boolean;\n};\n\n/**\n * Describes the message iterm2.GetBufferRequest.\n * Use `create(GetBufferRequestSchema)` to create a new message.\n */\nexport const GetBufferRequestSchema: GenMessage<GetBufferRequest> = /*@__PURE__*/\n messageDesc(file_api, 79);\n\n/**\n * @generated from message iterm2.GetBufferResponse\n */\nexport type GetBufferResponse = Message<\"iterm2.GetBufferResponse\"> & {\n /**\n * @generated from field: optional iterm2.GetBufferResponse.Status status = 1 [default = OK];\n */\n status: GetBufferResponse_Status;\n\n /**\n * @generated from field: optional iterm2.Range range = 2 [deprecated = true];\n * @deprecated\n */\n range?: Range;\n\n /**\n * @generated from field: repeated iterm2.LineContents contents = 3;\n */\n contents: LineContents[];\n\n /**\n * @generated from field: optional iterm2.Coord cursor = 4;\n */\n cursor?: Coord;\n\n /**\n * @generated from field: optional int64 num_lines_above_screen = 5 [deprecated = true];\n * @deprecated\n */\n numLinesAboveScreen: bigint;\n\n /**\n * @generated from field: optional iterm2.WindowedCoordRange windowed_coord_range = 6;\n */\n windowedCoordRange?: WindowedCoordRange;\n};\n\n/**\n * Describes the message iterm2.GetBufferResponse.\n * Use `create(GetBufferResponseSchema)` to create a new message.\n */\nexport const GetBufferResponseSchema: GenMessage<GetBufferResponse> = /*@__PURE__*/\n messageDesc(file_api, 80);\n\n/**\n * @generated from enum iterm2.GetBufferResponse.Status\n */\nexport enum GetBufferResponse_Status {\n /**\n * @generated from enum value: OK = 0;\n */\n OK = 0,\n\n /**\n * @generated from enum value: SESSION_NOT_FOUND = 1;\n */\n SESSION_NOT_FOUND = 1,\n\n /**\n * @generated from enum value: INVALID_LINE_RANGE = 2;\n */\n INVALID_LINE_RANGE = 2,\n\n /**\n * @generated from enum value: REQUEST_MALFORMED = 3;\n */\n REQUEST_MALFORMED = 3,\n}\n\n/**\n * Describes the enum iterm2.GetBufferResponse.Status.\n */\nexport const GetBufferResponse_StatusSchema: GenEnum<GetBufferResponse_Status> = /*@__PURE__*/\n enumDesc(file_api, 80, 0);\n\n/**\n * @generated from message iterm2.GetPromptRequest\n */\nexport type GetPromptRequest = Message<\"iterm2.GetPromptRequest\"> & {\n /**\n * @generated from field: optional string session = 1;\n */\n session: string;\n\n /**\n * @generated from field: optional string unique_prompt_id = 2;\n */\n uniquePromptId: string;\n};\n\n/**\n * Describes the message iterm2.GetPromptRequest.\n * Use `create(GetPromptRequestSchema)` to create a new message.\n */\nexport const GetPromptRequestSchema: GenMessage<GetPromptRequest> = /*@__PURE__*/\n messageDesc(file_api, 81);\n\n/**\n * @generated from message iterm2.GetPromptResponse\n */\nexport type GetPromptResponse = Message<\"iterm2.GetPromptResponse\"> & {\n /**\n * @generated from field: optional iterm2.GetPromptResponse.Status status = 1 [default = OK];\n */\n status: GetPromptResponse_Status;\n\n /**\n * @generated from field: optional iterm2.CoordRange prompt_range = 2;\n */\n promptRange?: CoordRange;\n\n /**\n * @generated from field: optional iterm2.CoordRange command_range = 3;\n */\n commandRange?: CoordRange;\n\n /**\n * @generated from field: optional iterm2.CoordRange output_range = 4;\n */\n outputRange?: CoordRange;\n\n /**\n * @generated from field: optional string working_directory = 5;\n */\n workingDirectory: string;\n\n /**\n * @generated from field: optional string command = 6;\n */\n command: string;\n\n /**\n * @generated from field: optional iterm2.GetPromptResponse.State prompt_state = 7;\n */\n promptState: GetPromptResponse_State;\n\n /**\n * @generated from field: optional uint32 exit_status = 9;\n */\n exitStatus: number;\n\n /**\n * @generated from field: optional string unique_prompt_id = 10;\n */\n uniquePromptId: string;\n};\n\n/**\n * Describes the message iterm2.GetPromptResponse.\n * Use `create(GetPromptResponseSchema)` to create a new message.\n */\nexport const GetPromptResponseSchema: GenMessage<GetPromptResponse> = /*@__PURE__*/\n messageDesc(file_api, 82);\n\n/**\n * @generated from enum iterm2.GetPromptResponse.Status\n */\nexport enum GetPromptResponse_Status {\n /**\n * @generated from enum value: OK = 0;\n */\n OK = 0,\n\n /**\n * @generated from enum value: SESSION_NOT_FOUND = 1;\n */\n SESSION_NOT_FOUND = 1,\n\n /**\n * @generated from enum value: REQUEST_MALFORMED = 2;\n */\n REQUEST_MALFORMED = 2,\n\n /**\n * @generated from enum value: PROMPT_UNAVAILABLE = 3;\n */\n PROMPT_UNAVAILABLE = 3,\n}\n\n/**\n * Describes the enum iterm2.GetPromptResponse.Status.\n */\nexport const GetPromptResponse_StatusSchema: GenEnum<GetPromptResponse_Status> = /*@__PURE__*/\n enumDesc(file_api, 82, 0);\n\n/**\n * @generated from enum iterm2.GetPromptResponse.State\n */\nexport enum GetPromptResponse_State {\n /**\n * @generated from enum value: EDITING = 0;\n */\n EDITING = 0,\n\n /**\n * @generated from enum value: RUNNING = 1;\n */\n RUNNING = 1,\n\n /**\n * @generated from enum value: FINISHED = 2;\n */\n FINISHED = 2,\n}\n\n/**\n * Describes the enum iterm2.GetPromptResponse.State.\n */\nexport const GetPromptResponse_StateSchema: GenEnum<GetPromptResponse_State> = /*@__PURE__*/\n enumDesc(file_api, 82, 1);\n\n/**\n * @generated from message iterm2.ListPromptsRequest\n */\nexport type ListPromptsRequest = Message<\"iterm2.ListPromptsRequest\"> & {\n /**\n * @generated from field: optional string session = 1;\n */\n session: string;\n\n /**\n * @generated from field: optional string first_unique_id = 2;\n */\n firstUniqueId: string;\n\n /**\n * @generated from field: optional string last_unique_id = 3;\n */\n lastUniqueId: string;\n};\n\n/**\n * Describes the message iterm2.ListPromptsRequest.\n * Use `create(ListPromptsRequestSchema)` to create a new message.\n */\nexport const ListPromptsRequestSchema: GenMessage<ListPromptsRequest> = /*@__PURE__*/\n messageDesc(file_api, 83);\n\n/**\n * @generated from message iterm2.ListPromptsResponse\n */\nexport type ListPromptsResponse = Message<\"iterm2.ListPromptsResponse\"> & {\n /**\n * @generated from field: optional iterm2.ListPromptsResponse.Status status = 1 [default = OK];\n */\n status: ListPromptsResponse_Status;\n\n /**\n * @generated from field: repeated string unique_prompt_id = 2;\n */\n uniquePromptId: string[];\n};\n\n/**\n * Describes the message iterm2.ListPromptsResponse.\n * Use `create(ListPromptsResponseSchema)` to create a new message.\n */\nexport const ListPromptsResponseSchema: GenMessage<ListPromptsResponse> = /*@__PURE__*/\n messageDesc(file_api, 84);\n\n/**\n * @generated from enum iterm2.ListPromptsResponse.Status\n */\nexport enum ListPromptsResponse_Status {\n /**\n * @generated from enum value: OK = 0;\n */\n OK = 0,\n\n /**\n * @generated from enum value: SESSION_NOT_FOUND = 1;\n */\n SESSION_NOT_FOUND = 1,\n}\n\n/**\n * Describes the enum iterm2.ListPromptsResponse.Status.\n */\nexport const ListPromptsResponse_StatusSchema: GenEnum<ListPromptsResponse_Status> = /*@__PURE__*/\n enumDesc(file_api, 84, 0);\n\n/**\n * @generated from message iterm2.GetProfilePropertyRequest\n */\nexport type GetProfilePropertyRequest = Message<\"iterm2.GetProfilePropertyRequest\"> & {\n /**\n * @generated from field: optional string session = 1;\n */\n session: string;\n\n /**\n * @generated from field: repeated string keys = 2;\n */\n keys: string[];\n};\n\n/**\n * Describes the message iterm2.GetProfilePropertyRequest.\n * Use `create(GetProfilePropertyRequestSchema)` to create a new message.\n */\nexport const GetProfilePropertyRequestSchema: GenMessage<GetProfilePropertyRequest> = /*@__PURE__*/\n messageDesc(file_api, 85);\n\n/**\n * @generated from message iterm2.ProfileProperty\n */\nexport type ProfileProperty = Message<\"iterm2.ProfileProperty\"> & {\n /**\n * @generated from field: optional string key = 1;\n */\n key: string;\n\n /**\n * @generated from field: optional string json_value = 2;\n */\n jsonValue: string;\n};\n\n/**\n * Describes the message iterm2.ProfileProperty.\n * Use `create(ProfilePropertySchema)` to create a new message.\n */\nexport const ProfilePropertySchema: GenMessage<ProfileProperty> = /*@__PURE__*/\n messageDesc(file_api, 86);\n\n/**\n * @generated from message iterm2.GetProfilePropertyResponse\n */\nexport type GetProfilePropertyResponse = Message<\"iterm2.GetProfilePropertyResponse\"> & {\n /**\n * @generated from field: optional iterm2.GetProfilePropertyResponse.Status status = 1 [default = OK];\n */\n status: GetProfilePropertyResponse_Status;\n\n /**\n * @generated from field: repeated iterm2.ProfileProperty properties = 3;\n */\n properties: ProfileProperty[];\n};\n\n/**\n * Describes the message iterm2.GetProfilePropertyResponse.\n * Use `create(GetProfilePropertyResponseSchema)` to create a new message.\n */\nexport const GetProfilePropertyResponseSchema: GenMessage<GetProfilePropertyResponse> = /*@__PURE__*/\n messageDesc(file_api, 87);\n\n/**\n * @generated from enum iterm2.GetProfilePropertyResponse.Status\n */\nexport enum GetProfilePropertyResponse_Status {\n /**\n * @generated from enum value: OK = 0;\n */\n OK = 0,\n\n /**\n * @generated from enum value: SESSION_NOT_FOUND = 1;\n */\n SESSION_NOT_FOUND = 1,\n\n /**\n * @generated from enum value: REQUEST_MALFORMED = 2;\n */\n REQUEST_MALFORMED = 2,\n\n /**\n * @generated from enum value: ERROR = 3;\n */\n ERROR = 3,\n}\n\n/**\n * Describes the enum iterm2.GetProfilePropertyResponse.Status.\n */\nexport const GetProfilePropertyResponse_StatusSchema: GenEnum<GetProfilePropertyResponse_Status> = /*@__PURE__*/\n enumDesc(file_api, 87, 0);\n\n/**\n * @generated from message iterm2.SetProfilePropertyRequest\n */\nexport type SetProfilePropertyRequest = Message<\"iterm2.SetProfilePropertyRequest\"> & {\n /**\n * @generated from oneof iterm2.SetProfilePropertyRequest.target\n */\n target: {\n /**\n * @generated from field: string session = 1;\n */\n value: string;\n case: \"session\";\n } | {\n /**\n * @generated from field: iterm2.SetProfilePropertyRequest.GuidList guid_list = 2;\n */\n value: SetProfilePropertyRequest_GuidList;\n case: \"guidList\";\n } | { case: undefined; value?: undefined };\n\n /**\n * @generated from field: optional string key = 3;\n */\n key: string;\n\n /**\n * @generated from field: optional string json_value = 4;\n */\n jsonValue: string;\n\n /**\n * @generated from field: repeated iterm2.SetProfilePropertyRequest.Assignment assignments = 5;\n */\n assignments: SetProfilePropertyRequest_Assignment[];\n};\n\n/**\n * Describes the message iterm2.SetProfilePropertyRequest.\n * Use `create(SetProfilePropertyRequestSchema)` to create a new message.\n */\nexport const SetProfilePropertyRequestSchema: GenMessage<SetProfilePropertyRequest> = /*@__PURE__*/\n messageDesc(file_api, 88);\n\n/**\n * @generated from message iterm2.SetProfilePropertyRequest.GuidList\n */\nexport type SetProfilePropertyRequest_GuidList = Message<\"iterm2.SetProfilePropertyRequest.GuidList\"> & {\n /**\n * @generated from field: repeated string guids = 1;\n */\n guids: string[];\n};\n\n/**\n * Describes the message iterm2.SetProfilePropertyRequest.GuidList.\n * Use `create(SetProfilePropertyRequest_GuidListSchema)` to create a new message.\n */\nexport const SetProfilePropertyRequest_GuidListSchema: GenMessage<SetProfilePropertyRequest_GuidList> = /*@__PURE__*/\n messageDesc(file_api, 88, 0);\n\n/**\n * @generated from message iterm2.SetProfilePropertyRequest.Assignment\n */\nexport type SetProfilePropertyRequest_Assignment = Message<\"iterm2.SetProfilePropertyRequest.Assignment\"> & {\n /**\n * @generated from field: optional string key = 1;\n */\n key: string;\n\n /**\n * @generated from field: optional string json_value = 2;\n */\n jsonValue: string;\n};\n\n/**\n * Describes the message iterm2.SetProfilePropertyRequest.Assignment.\n * Use `create(SetProfilePropertyRequest_AssignmentSchema)` to create a new message.\n */\nexport const SetProfilePropertyRequest_AssignmentSchema: GenMessage<SetProfilePropertyRequest_Assignment> = /*@__PURE__*/\n messageDesc(file_api, 88, 1);\n\n/**\n * @generated from message iterm2.SetProfilePropertyResponse\n */\nexport type SetProfilePropertyResponse = Message<\"iterm2.SetProfilePropertyResponse\"> & {\n /**\n * @generated from field: optional iterm2.SetProfilePropertyResponse.Status status = 1 [default = OK];\n */\n status: SetProfilePropertyResponse_Status;\n};\n\n/**\n * Describes the message iterm2.SetProfilePropertyResponse.\n * Use `create(SetProfilePropertyResponseSchema)` to create a new message.\n */\nexport const SetProfilePropertyResponseSchema: GenMessage<SetProfilePropertyResponse> = /*@__PURE__*/\n messageDesc(file_api, 89);\n\n/**\n * @generated from enum iterm2.SetProfilePropertyResponse.Status\n */\nexport enum SetProfilePropertyResponse_Status {\n /**\n * @generated from enum value: OK = 0;\n */\n OK = 0,\n\n /**\n * @generated from enum value: SESSION_NOT_FOUND = 1;\n */\n SESSION_NOT_FOUND = 1,\n\n /**\n * @generated from enum value: REQUEST_MALFORMED = 2;\n */\n REQUEST_MALFORMED = 2,\n\n /**\n * @generated from enum value: BAD_GUID = 3;\n */\n BAD_GUID = 3,\n}\n\n/**\n * Describes the enum iterm2.SetProfilePropertyResponse.Status.\n */\nexport const SetProfilePropertyResponse_StatusSchema: GenEnum<SetProfilePropertyResponse_Status> = /*@__PURE__*/\n enumDesc(file_api, 89, 0);\n\n/**\n * @generated from message iterm2.TransactionRequest\n */\nexport type TransactionRequest = Message<\"iterm2.TransactionRequest\"> & {\n /**\n * @generated from field: optional bool begin = 1;\n */\n begin: boolean;\n};\n\n/**\n * Describes the message iterm2.TransactionRequest.\n * Use `create(TransactionRequestSchema)` to create a new message.\n */\nexport const TransactionRequestSchema: GenMessage<TransactionRequest> = /*@__PURE__*/\n messageDesc(file_api, 90);\n\n/**\n * @generated from message iterm2.TransactionResponse\n */\nexport type TransactionResponse = Message<\"iterm2.TransactionResponse\"> & {\n /**\n * @generated from field: optional iterm2.TransactionResponse.Status status = 1 [default = OK];\n */\n status: TransactionResponse_Status;\n};\n\n/**\n * Describes the message iterm2.TransactionResponse.\n * Use `create(TransactionResponseSchema)` to create a new message.\n */\nexport const TransactionResponseSchema: GenMessage<TransactionResponse> = /*@__PURE__*/\n messageDesc(file_api, 91);\n\n/**\n * @generated from enum iterm2.TransactionResponse.Status\n */\nexport enum TransactionResponse_Status {\n /**\n * @generated from enum value: OK = 0;\n */\n OK = 0,\n\n /**\n * @generated from enum value: NO_TRANSACTION = 1;\n */\n NO_TRANSACTION = 1,\n\n /**\n * @generated from enum value: ALREADY_IN_TRANSACTION = 2;\n */\n ALREADY_IN_TRANSACTION = 2,\n}\n\n/**\n * Describes the enum iterm2.TransactionResponse.Status.\n */\nexport const TransactionResponse_StatusSchema: GenEnum<TransactionResponse_Status> = /*@__PURE__*/\n enumDesc(file_api, 91, 0);\n\n/**\n * @generated from message iterm2.LineRange\n */\nexport type LineRange = Message<\"iterm2.LineRange\"> & {\n /**\n * @generated from field: optional bool screen_contents_only = 1;\n */\n screenContentsOnly: boolean;\n\n /**\n * @generated from field: optional int32 trailing_lines = 2;\n */\n trailingLines: number;\n\n /**\n * @generated from field: optional iterm2.WindowedCoordRange windowed_coord_range = 3;\n */\n windowedCoordRange?: WindowedCoordRange;\n};\n\n/**\n * Describes the message iterm2.LineRange.\n * Use `create(LineRangeSchema)` to create a new message.\n */\nexport const LineRangeSchema: GenMessage<LineRange> = /*@__PURE__*/\n messageDesc(file_api, 92);\n\n/**\n * @generated from message iterm2.Range\n */\nexport type Range = Message<\"iterm2.Range\"> & {\n /**\n * @generated from field: optional int64 location = 1;\n */\n location: bigint;\n\n /**\n * @generated from field: optional int64 length = 2;\n */\n length: bigint;\n};\n\n/**\n * Describes the message iterm2.Range.\n * Use `create(RangeSchema)` to create a new message.\n */\nexport const RangeSchema: GenMessage<Range> = /*@__PURE__*/\n messageDesc(file_api, 93);\n\n/**\n * @generated from message iterm2.CoordRange\n */\nexport type CoordRange = Message<\"iterm2.CoordRange\"> & {\n /**\n * @generated from field: optional iterm2.Coord start = 1;\n */\n start?: Coord;\n\n /**\n * @generated from field: optional iterm2.Coord end = 2;\n */\n end?: Coord;\n};\n\n/**\n * Describes the message iterm2.CoordRange.\n * Use `create(CoordRangeSchema)` to create a new message.\n */\nexport const CoordRangeSchema: GenMessage<CoordRange> = /*@__PURE__*/\n messageDesc(file_api, 94);\n\n/**\n * @generated from message iterm2.Coord\n */\nexport type Coord = Message<\"iterm2.Coord\"> & {\n /**\n * @generated from field: optional int32 x = 1;\n */\n x: number;\n\n /**\n * @generated from field: optional int64 y = 2;\n */\n y: bigint;\n};\n\n/**\n * Describes the message iterm2.Coord.\n * Use `create(CoordSchema)` to create a new message.\n */\nexport const CoordSchema: GenMessage<Coord> = /*@__PURE__*/\n messageDesc(file_api, 95);\n\n/**\n * @generated from message iterm2.RGBColor\n */\nexport type RGBColor = Message<\"iterm2.RGBColor\"> & {\n /**\n * @generated from field: optional uint32 red = 1;\n */\n red: number;\n\n /**\n * @generated from field: optional uint32 green = 2;\n */\n green: number;\n\n /**\n * @generated from field: optional uint32 blue = 3;\n */\n blue: number;\n};\n\n/**\n * Describes the message iterm2.RGBColor.\n * Use `create(RGBColorSchema)` to create a new message.\n */\nexport const RGBColorSchema: GenMessage<RGBColor> = /*@__PURE__*/\n messageDesc(file_api, 96);\n\n/**\n * @generated from message iterm2.URL\n */\nexport type URL = Message<\"iterm2.URL\"> & {\n /**\n * @generated from field: optional string url = 1;\n */\n url: string;\n\n /**\n * @generated from field: optional string identifier = 2;\n */\n identifier: string;\n};\n\n/**\n * Describes the message iterm2.URL.\n * Use `create(URLSchema)` to create a new message.\n */\nexport const URLSchema: GenMessage<URL> = /*@__PURE__*/\n messageDesc(file_api, 97);\n\n/**\n * @generated from message iterm2.CellStyle\n */\nexport type CellStyle = Message<\"iterm2.CellStyle\"> & {\n /**\n * @generated from oneof iterm2.CellStyle.fgColor\n */\n fgColor: {\n /**\n * @generated from field: uint32 fgStandard = 1;\n */\n value: number;\n case: \"fgStandard\";\n } | {\n /**\n * @generated from field: iterm2.AlternateColor fgAlternate = 2;\n */\n value: AlternateColor;\n case: \"fgAlternate\";\n } | {\n /**\n * @generated from field: iterm2.RGBColor fgRgb = 3;\n */\n value: RGBColor;\n case: \"fgRgb\";\n } | {\n /**\n * @generated from field: uint32 fgAlternatePlacementX = 4;\n */\n value: number;\n case: \"fgAlternatePlacementX\";\n } | { case: undefined; value?: undefined };\n\n /**\n * @generated from oneof iterm2.CellStyle.bgColor\n */\n bgColor: {\n /**\n * @generated from field: uint32 bgStandard = 5;\n */\n value: number;\n case: \"bgStandard\";\n } | {\n /**\n * @generated from field: iterm2.AlternateColor bgAlternate = 6;\n */\n value: AlternateColor;\n case: \"bgAlternate\";\n } | {\n /**\n * @generated from field: iterm2.RGBColor bgRgb = 7;\n */\n value: RGBColor;\n case: \"bgRgb\";\n } | {\n /**\n * @generated from field: uint32 bgAlternatePlacementY = 8;\n */\n value: number;\n case: \"bgAlternatePlacementY\";\n } | { case: undefined; value?: undefined };\n\n /**\n * @generated from field: optional bool bold = 9;\n */\n bold: boolean;\n\n /**\n * @generated from field: optional bool faint = 10;\n */\n faint: boolean;\n\n /**\n * @generated from field: optional bool italic = 11;\n */\n italic: boolean;\n\n /**\n * @generated from field: optional bool blink = 12;\n */\n blink: boolean;\n\n /**\n * @generated from field: optional bool underline = 13;\n */\n underline: boolean;\n\n /**\n * @generated from field: optional bool strikethrough = 14;\n */\n strikethrough: boolean;\n\n /**\n * @generated from field: optional bool invisible = 15;\n */\n invisible: boolean;\n\n /**\n * @generated from field: optional bool inverse = 16;\n */\n inverse: boolean;\n\n /**\n * @generated from field: optional bool guarded = 17;\n */\n guarded: boolean;\n\n /**\n * @generated from field: optional iterm2.ImagePlaceholderType image = 18;\n */\n image: ImagePlaceholderType;\n\n /**\n * @generated from field: optional iterm2.RGBColor underlineColor = 19;\n */\n underlineColor?: RGBColor;\n\n /**\n * @generated from field: optional string blockID = 20;\n */\n blockID: string;\n\n /**\n * @generated from field: optional iterm2.URL url = 21;\n */\n url?: URL;\n\n /**\n * @generated from field: optional uint32 repeats = 22;\n */\n repeats: number;\n};\n\n/**\n * Describes the message iterm2.CellStyle.\n * Use `create(CellStyleSchema)` to create a new message.\n */\nexport const CellStyleSchema: GenMessage<CellStyle> = /*@__PURE__*/\n messageDesc(file_api, 98);\n\n/**\n * @generated from message iterm2.LineContents\n */\nexport type LineContents = Message<\"iterm2.LineContents\"> & {\n /**\n * @generated from field: optional string text = 1;\n */\n text: string;\n\n /**\n * @generated from field: repeated iterm2.CodePointsPerCell code_points_per_cell = 2;\n */\n codePointsPerCell: CodePointsPerCell[];\n\n /**\n * @generated from field: optional iterm2.LineContents.Continuation continuation = 3 [default = CONTINUATION_HARD_EOL];\n */\n continuation: LineContents_Continuation;\n\n /**\n * @generated from field: repeated iterm2.CellStyle style = 4;\n */\n style: CellStyle[];\n};\n\n/**\n * Describes the message iterm2.LineContents.\n * Use `create(LineContentsSchema)` to create a new message.\n */\nexport const LineContentsSchema: GenMessage<LineContents> = /*@__PURE__*/\n messageDesc(file_api, 99);\n\n/**\n * @generated from enum iterm2.LineContents.Continuation\n */\nexport enum LineContents_Continuation {\n /**\n * @generated from enum value: CONTINUATION_HARD_EOL = 1;\n */\n HARD_EOL = 1,\n\n /**\n * @generated from enum value: CONTINUATION_SOFT_EOL = 2;\n */\n SOFT_EOL = 2,\n}\n\n/**\n * Describes the enum iterm2.LineContents.Continuation.\n */\nexport const LineContents_ContinuationSchema: GenEnum<LineContents_Continuation> = /*@__PURE__*/\n enumDesc(file_api, 99, 0);\n\n/**\n * @generated from message iterm2.CodePointsPerCell\n */\nexport type CodePointsPerCell = Message<\"iterm2.CodePointsPerCell\"> & {\n /**\n * @generated from field: optional int32 num_code_points = 1 [default = 1];\n */\n numCodePoints: number;\n\n /**\n * @generated from field: optional int32 repeats = 2;\n */\n repeats: number;\n};\n\n/**\n * Describes the message iterm2.CodePointsPerCell.\n * Use `create(CodePointsPerCellSchema)` to create a new message.\n */\nexport const CodePointsPerCellSchema: GenMessage<CodePointsPerCell> = /*@__PURE__*/\n messageDesc(file_api, 100);\n\n/**\n * @generated from message iterm2.ListSessionsRequest\n */\nexport type ListSessionsRequest = Message<\"iterm2.ListSessionsRequest\"> & {\n};\n\n/**\n * Describes the message iterm2.ListSessionsRequest.\n * Use `create(ListSessionsRequestSchema)` to create a new message.\n */\nexport const ListSessionsRequestSchema: GenMessage<ListSessionsRequest> = /*@__PURE__*/\n messageDesc(file_api, 101);\n\n/**\n * @generated from message iterm2.SendTextRequest\n */\nexport type SendTextRequest = Message<\"iterm2.SendTextRequest\"> & {\n /**\n * @generated from field: optional string session = 1;\n */\n session: string;\n\n /**\n * @generated from field: optional string text = 2;\n */\n text: string;\n\n /**\n * @generated from field: optional bool suppress_broadcast = 3;\n */\n suppressBroadcast: boolean;\n};\n\n/**\n * Describes the message iterm2.SendTextRequest.\n * Use `create(SendTextRequestSchema)` to create a new message.\n */\nexport const SendTextRequestSchema: GenMessage<SendTextRequest> = /*@__PURE__*/\n messageDesc(file_api, 102);\n\n/**\n * @generated from message iterm2.SendTextResponse\n */\nexport type SendTextResponse = Message<\"iterm2.SendTextResponse\"> & {\n /**\n * @generated from field: optional iterm2.SendTextResponse.Status status = 1;\n */\n status: SendTextResponse_Status;\n};\n\n/**\n * Describes the message iterm2.SendTextResponse.\n * Use `create(SendTextResponseSchema)` to create a new message.\n */\nexport const SendTextResponseSchema: GenMessage<SendTextResponse> = /*@__PURE__*/\n messageDesc(file_api, 103);\n\n/**\n * @generated from enum iterm2.SendTextResponse.Status\n */\nexport enum SendTextResponse_Status {\n /**\n * @generated from enum value: OK = 0;\n */\n OK = 0,\n\n /**\n * @generated from enum value: SESSION_NOT_FOUND = 1;\n */\n SESSION_NOT_FOUND = 1,\n}\n\n/**\n * Describes the enum iterm2.SendTextResponse.Status.\n */\nexport const SendTextResponse_StatusSchema: GenEnum<SendTextResponse_Status> = /*@__PURE__*/\n enumDesc(file_api, 103, 0);\n\n/**\n * @generated from message iterm2.Size\n */\nexport type Size = Message<\"iterm2.Size\"> & {\n /**\n * @generated from field: optional int32 width = 1;\n */\n width: number;\n\n /**\n * @generated from field: optional int32 height = 2;\n */\n height: number;\n};\n\n/**\n * Describes the message iterm2.Size.\n * Use `create(SizeSchema)` to create a new message.\n */\nexport const SizeSchema: GenMessage<Size> = /*@__PURE__*/\n messageDesc(file_api, 104);\n\n/**\n * @generated from message iterm2.Point\n */\nexport type Point = Message<\"iterm2.Point\"> & {\n /**\n * @generated from field: optional int32 x = 1;\n */\n x: number;\n\n /**\n * @generated from field: optional int32 y = 2;\n */\n y: number;\n};\n\n/**\n * Describes the message iterm2.Point.\n * Use `create(PointSchema)` to create a new message.\n */\nexport const PointSchema: GenMessage<Point> = /*@__PURE__*/\n messageDesc(file_api, 105);\n\n/**\n * @generated from message iterm2.Frame\n */\nexport type Frame = Message<\"iterm2.Frame\"> & {\n /**\n * @generated from field: optional iterm2.Point origin = 1;\n */\n origin?: Point;\n\n /**\n * @generated from field: optional iterm2.Size size = 2;\n */\n size?: Size;\n};\n\n/**\n * Describes the message iterm2.Frame.\n * Use `create(FrameSchema)` to create a new message.\n */\nexport const FrameSchema: GenMessage<Frame> = /*@__PURE__*/\n messageDesc(file_api, 106);\n\n/**\n * @generated from message iterm2.SessionSummary\n */\nexport type SessionSummary = Message<\"iterm2.SessionSummary\"> & {\n /**\n * @generated from field: optional string unique_identifier = 1;\n */\n uniqueIdentifier: string;\n\n /**\n * @generated from field: optional iterm2.Frame frame = 2;\n */\n frame?: Frame;\n\n /**\n * @generated from field: optional iterm2.Size grid_size = 3;\n */\n gridSize?: Size;\n\n /**\n * @generated from field: optional string title = 4;\n */\n title: string;\n};\n\n/**\n * Describes the message iterm2.SessionSummary.\n * Use `create(SessionSummarySchema)` to create a new message.\n */\nexport const SessionSummarySchema: GenMessage<SessionSummary> = /*@__PURE__*/\n messageDesc(file_api, 107);\n\n/**\n * @generated from message iterm2.SplitTreeNode\n */\nexport type SplitTreeNode = Message<\"iterm2.SplitTreeNode\"> & {\n /**\n * @generated from field: optional bool vertical = 1;\n */\n vertical: boolean;\n\n /**\n * @generated from field: repeated iterm2.SplitTreeNode.SplitTreeLink links = 2;\n */\n links: SplitTreeNode_SplitTreeLink[];\n};\n\n/**\n * Describes the message iterm2.SplitTreeNode.\n * Use `create(SplitTreeNodeSchema)` to create a new message.\n */\nexport const SplitTreeNodeSchema: GenMessage<SplitTreeNode> = /*@__PURE__*/\n messageDesc(file_api, 108);\n\n/**\n * @generated from message iterm2.SplitTreeNode.SplitTreeLink\n */\nexport type SplitTreeNode_SplitTreeLink = Message<\"iterm2.SplitTreeNode.SplitTreeLink\"> & {\n /**\n * @generated from oneof iterm2.SplitTreeNode.SplitTreeLink.child\n */\n child: {\n /**\n * @generated from field: iterm2.SessionSummary session = 1;\n */\n value: SessionSummary;\n case: \"session\";\n } | {\n /**\n * @generated from field: iterm2.SplitTreeNode node = 2;\n */\n value: SplitTreeNode;\n case: \"node\";\n } | { case: undefined; value?: undefined };\n};\n\n/**\n * Describes the message iterm2.SplitTreeNode.SplitTreeLink.\n * Use `create(SplitTreeNode_SplitTreeLinkSchema)` to create a new message.\n */\nexport const SplitTreeNode_SplitTreeLinkSchema: GenMessage<SplitTreeNode_SplitTreeLink> = /*@__PURE__*/\n messageDesc(file_api, 108, 0);\n\n/**\n * @generated from message iterm2.ListSessionsResponse\n */\nexport type ListSessionsResponse = Message<\"iterm2.ListSessionsResponse\"> & {\n /**\n * @generated from field: repeated iterm2.ListSessionsResponse.Window windows = 1;\n */\n windows: ListSessionsResponse_Window[];\n\n /**\n * @generated from field: repeated iterm2.SessionSummary buried_sessions = 2;\n */\n buriedSessions: SessionSummary[];\n};\n\n/**\n * Describes the message iterm2.ListSessionsResponse.\n * Use `create(ListSessionsResponseSchema)` to create a new message.\n */\nexport const ListSessionsResponseSchema: GenMessage<ListSessionsResponse> = /*@__PURE__*/\n messageDesc(file_api, 109);\n\n/**\n * @generated from message iterm2.ListSessionsResponse.Window\n */\nexport type ListSessionsResponse_Window = Message<\"iterm2.ListSessionsResponse.Window\"> & {\n /**\n * @generated from field: repeated iterm2.ListSessionsResponse.Tab tabs = 1;\n */\n tabs: ListSessionsResponse_Tab[];\n\n /**\n * @generated from field: optional string window_id = 2;\n */\n windowId: string;\n\n /**\n * @generated from field: optional iterm2.Frame frame = 3;\n */\n frame?: Frame;\n\n /**\n * @generated from field: optional int32 number = 4;\n */\n number: number;\n};\n\n/**\n * Describes the message iterm2.ListSessionsResponse.Window.\n * Use `create(ListSessionsResponse_WindowSchema)` to create a new message.\n */\nexport const ListSessionsResponse_WindowSchema: GenMessage<ListSessionsResponse_Window> = /*@__PURE__*/\n messageDesc(file_api, 109, 0);\n\n/**\n * @generated from message iterm2.ListSessionsResponse.Tab\n */\nexport type ListSessionsResponse_Tab = Message<\"iterm2.ListSessionsResponse.Tab\"> & {\n /**\n * @generated from field: optional iterm2.SplitTreeNode root = 3;\n */\n root?: SplitTreeNode;\n\n /**\n * @generated from field: optional string tab_id = 2;\n */\n tabId: string;\n\n /**\n * @generated from field: optional string tmux_window_id = 4;\n */\n tmuxWindowId: string;\n\n /**\n * @generated from field: optional string tmux_connection_id = 5;\n */\n tmuxConnectionId: string;\n\n /**\n * @generated from field: repeated iterm2.SessionSummary minimized_sessions = 6;\n */\n minimizedSessions: SessionSummary[];\n};\n\n/**\n * Describes the message iterm2.ListSessionsResponse.Tab.\n * Use `create(ListSessionsResponse_TabSchema)` to create a new message.\n */\nexport const ListSessionsResponse_TabSchema: GenMessage<ListSessionsResponse_Tab> = /*@__PURE__*/\n messageDesc(file_api, 109, 1);\n\n/**\n * @generated from message iterm2.CreateTabRequest\n */\nexport type CreateTabRequest = Message<\"iterm2.CreateTabRequest\"> & {\n /**\n * @generated from field: optional string profile_name = 1;\n */\n profileName: string;\n\n /**\n * @generated from field: optional string window_id = 2;\n */\n windowId: string;\n\n /**\n * @generated from field: optional uint32 tab_index = 3;\n */\n tabIndex: number;\n\n /**\n * @generated from field: optional string command = 4 [deprecated = true];\n * @deprecated\n */\n command: string;\n\n /**\n * @generated from field: repeated iterm2.ProfileProperty custom_profile_properties = 5;\n */\n customProfileProperties: ProfileProperty[];\n};\n\n/**\n * Describes the message iterm2.CreateTabRequest.\n * Use `create(CreateTabRequestSchema)` to create a new message.\n */\nexport const CreateTabRequestSchema: GenMessage<CreateTabRequest> = /*@__PURE__*/\n messageDesc(file_api, 110);\n\n/**\n * @generated from message iterm2.CreateTabResponse\n */\nexport type CreateTabResponse = Message<\"iterm2.CreateTabResponse\"> & {\n /**\n * @generated from field: optional iterm2.CreateTabResponse.Status status = 1;\n */\n status: CreateTabResponse_Status;\n\n /**\n * @generated from field: optional string window_id = 2;\n */\n windowId: string;\n\n /**\n * @generated from field: optional int32 tab_id = 3;\n */\n tabId: number;\n\n /**\n * @generated from field: optional string session_id = 4;\n */\n sessionId: string;\n};\n\n/**\n * Describes the message iterm2.CreateTabResponse.\n * Use `create(CreateTabResponseSchema)` to create a new message.\n */\nexport const CreateTabResponseSchema: GenMessage<CreateTabResponse> = /*@__PURE__*/\n messageDesc(file_api, 111);\n\n/**\n * @generated from enum iterm2.CreateTabResponse.Status\n */\nexport enum CreateTabResponse_Status {\n /**\n * @generated from enum value: OK = 0;\n */\n OK = 0,\n\n /**\n * @generated from enum value: INVALID_PROFILE_NAME = 1;\n */\n INVALID_PROFILE_NAME = 1,\n\n /**\n * @generated from enum value: INVALID_WINDOW_ID = 2;\n */\n INVALID_WINDOW_ID = 2,\n\n /**\n * @generated from enum value: INVALID_TAB_INDEX = 3;\n */\n INVALID_TAB_INDEX = 3,\n\n /**\n * @generated from enum value: MISSING_SUBSTITUTION = 4;\n */\n MISSING_SUBSTITUTION = 4,\n}\n\n/**\n * Describes the enum iterm2.CreateTabResponse.Status.\n */\nexport const CreateTabResponse_StatusSchema: GenEnum<CreateTabResponse_Status> = /*@__PURE__*/\n enumDesc(file_api, 111, 0);\n\n/**\n * @generated from message iterm2.SplitPaneRequest\n */\nexport type SplitPaneRequest = Message<\"iterm2.SplitPaneRequest\"> & {\n /**\n * @generated from field: optional string session = 1;\n */\n session: string;\n\n /**\n * @generated from field: optional iterm2.SplitPaneRequest.SplitDirection split_direction = 2;\n */\n splitDirection: SplitPaneRequest_SplitDirection;\n\n /**\n * @generated from field: optional bool before = 3 [default = false];\n */\n before: boolean;\n\n /**\n * @generated from field: optional string profile_name = 4;\n */\n profileName: string;\n\n /**\n * @generated from field: repeated iterm2.ProfileProperty custom_profile_properties = 5;\n */\n customProfileProperties: ProfileProperty[];\n};\n\n/**\n * Describes the message iterm2.SplitPaneRequest.\n * Use `create(SplitPaneRequestSchema)` to create a new message.\n */\nexport const SplitPaneRequestSchema: GenMessage<SplitPaneRequest> = /*@__PURE__*/\n messageDesc(file_api, 112);\n\n/**\n * @generated from enum iterm2.SplitPaneRequest.SplitDirection\n */\nexport enum SplitPaneRequest_SplitDirection {\n /**\n * @generated from enum value: VERTICAL = 0;\n */\n VERTICAL = 0,\n\n /**\n * @generated from enum value: HORIZONTAL = 1;\n */\n HORIZONTAL = 1,\n}\n\n/**\n * Describes the enum iterm2.SplitPaneRequest.SplitDirection.\n */\nexport const SplitPaneRequest_SplitDirectionSchema: GenEnum<SplitPaneRequest_SplitDirection> = /*@__PURE__*/\n enumDesc(file_api, 112, 0);\n\n/**\n * @generated from message iterm2.SplitPaneResponse\n */\nexport type SplitPaneResponse = Message<\"iterm2.SplitPaneResponse\"> & {\n /**\n * @generated from field: optional iterm2.SplitPaneResponse.Status status = 1;\n */\n status: SplitPaneResponse_Status;\n\n /**\n * @generated from field: repeated string session_id = 2;\n */\n sessionId: string[];\n};\n\n/**\n * Describes the message iterm2.SplitPaneResponse.\n * Use `create(SplitPaneResponseSchema)` to create a new message.\n */\nexport const SplitPaneResponseSchema: GenMessage<SplitPaneResponse> = /*@__PURE__*/\n messageDesc(file_api, 113);\n\n/**\n * @generated from enum iterm2.SplitPaneResponse.Status\n */\nexport enum SplitPaneResponse_Status {\n /**\n * @generated from enum value: OK = 0;\n */\n OK = 0,\n\n /**\n * @generated from enum value: SESSION_NOT_FOUND = 1;\n */\n SESSION_NOT_FOUND = 1,\n\n /**\n * @generated from enum value: INVALID_PROFILE_NAME = 2;\n */\n INVALID_PROFILE_NAME = 2,\n\n /**\n * @generated from enum value: CANNOT_SPLIT = 3;\n */\n CANNOT_SPLIT = 3,\n\n /**\n * @generated from enum value: MALFORMED_CUSTOM_PROFILE_PROPERTY = 4;\n */\n MALFORMED_CUSTOM_PROFILE_PROPERTY = 4,\n}\n\n/**\n * Describes the enum iterm2.SplitPaneResponse.Status.\n */\nexport const SplitPaneResponse_StatusSchema: GenEnum<SplitPaneResponse_Status> = /*@__PURE__*/\n enumDesc(file_api, 113, 0);\n\n/**\n * @generated from enum iterm2.SelectionMode\n */\nexport enum SelectionMode {\n /**\n * @generated from enum value: CHARACTER = 0;\n */\n CHARACTER = 0,\n\n /**\n * @generated from enum value: WORD = 1;\n */\n WORD = 1,\n\n /**\n * @generated from enum value: LINE = 2;\n */\n LINE = 2,\n\n /**\n * @generated from enum value: SMART = 3;\n */\n SMART = 3,\n\n /**\n * @generated from enum value: BOX = 4;\n */\n BOX = 4,\n\n /**\n * @generated from enum value: WHOLE_LINE = 5;\n */\n WHOLE_LINE = 5,\n}\n\n/**\n * Describes the enum iterm2.SelectionMode.\n */\nexport const SelectionModeSchema: GenEnum<SelectionMode> = /*@__PURE__*/\n enumDesc(file_api, 0);\n\n/**\n * @generated from enum iterm2.NotificationType\n */\nexport enum NotificationType {\n /**\n * @generated from enum value: NOTIFY_ON_KEYSTROKE = 1;\n */\n NOTIFY_ON_KEYSTROKE = 1,\n\n /**\n * @generated from enum value: NOTIFY_ON_SCREEN_UPDATE = 2;\n */\n NOTIFY_ON_SCREEN_UPDATE = 2,\n\n /**\n * @generated from enum value: NOTIFY_ON_PROMPT = 3;\n */\n NOTIFY_ON_PROMPT = 3,\n\n /**\n * @generated from enum value: NOTIFY_ON_LOCATION_CHANGE = 4 [deprecated = true];\n * @deprecated\n */\n NOTIFY_ON_LOCATION_CHANGE = 4,\n\n /**\n * @generated from enum value: NOTIFY_ON_CUSTOM_ESCAPE_SEQUENCE = 5;\n */\n NOTIFY_ON_CUSTOM_ESCAPE_SEQUENCE = 5,\n\n /**\n * @generated from enum value: NOTIFY_ON_VARIABLE_CHANGE = 12;\n */\n NOTIFY_ON_VARIABLE_CHANGE = 12,\n\n /**\n * @generated from enum value: KEYSTROKE_FILTER = 14;\n */\n KEYSTROKE_FILTER = 14,\n\n /**\n * @generated from enum value: NOTIFY_ON_NEW_SESSION = 6;\n */\n NOTIFY_ON_NEW_SESSION = 6,\n\n /**\n * @generated from enum value: NOTIFY_ON_TERMINATE_SESSION = 7;\n */\n NOTIFY_ON_TERMINATE_SESSION = 7,\n\n /**\n * @generated from enum value: NOTIFY_ON_LAYOUT_CHANGE = 8;\n */\n NOTIFY_ON_LAYOUT_CHANGE = 8,\n\n /**\n * @generated from enum value: NOTIFY_ON_FOCUS_CHANGE = 9;\n */\n NOTIFY_ON_FOCUS_CHANGE = 9,\n\n /**\n * @generated from enum value: NOTIFY_ON_SERVER_ORIGINATED_RPC = 10;\n */\n NOTIFY_ON_SERVER_ORIGINATED_RPC = 10,\n\n /**\n * @generated from enum value: NOTIFY_ON_BROADCAST_CHANGE = 11;\n */\n NOTIFY_ON_BROADCAST_CHANGE = 11,\n\n /**\n * @generated from enum value: NOTIFY_ON_PROFILE_CHANGE = 13;\n */\n NOTIFY_ON_PROFILE_CHANGE = 13,\n}\n\n/**\n * Describes the enum iterm2.NotificationType.\n */\nexport const NotificationTypeSchema: GenEnum<NotificationType> = /*@__PURE__*/\n enumDesc(file_api, 1);\n\n/**\n * @generated from enum iterm2.Modifiers\n */\nexport enum Modifiers {\n /**\n * @generated from enum value: CONTROL = 1;\n */\n CONTROL = 1,\n\n /**\n * @generated from enum value: OPTION = 2;\n */\n OPTION = 2,\n\n /**\n * @generated from enum value: COMMAND = 3;\n */\n COMMAND = 3,\n\n /**\n * @generated from enum value: SHIFT = 4;\n */\n SHIFT = 4,\n\n /**\n * @generated from enum value: FUNCTION = 5;\n */\n FUNCTION = 5,\n\n /**\n * @generated from enum value: NUMPAD = 6;\n */\n NUMPAD = 6,\n}\n\n/**\n * Describes the enum iterm2.Modifiers.\n */\nexport const ModifiersSchema: GenEnum<Modifiers> = /*@__PURE__*/\n enumDesc(file_api, 2);\n\n/**\n * @generated from enum iterm2.VariableScope\n */\nexport enum VariableScope {\n /**\n * @generated from enum value: SESSION = 1;\n */\n SESSION = 1,\n\n /**\n * @generated from enum value: TAB = 2;\n */\n TAB = 2,\n\n /**\n * @generated from enum value: WINDOW = 3;\n */\n WINDOW = 3,\n\n /**\n * @generated from enum value: APP = 4;\n */\n APP = 4,\n}\n\n/**\n * Describes the enum iterm2.VariableScope.\n */\nexport const VariableScopeSchema: GenEnum<VariableScope> = /*@__PURE__*/\n enumDesc(file_api, 3);\n\n/**\n * @generated from enum iterm2.PromptMonitorMode\n */\nexport enum PromptMonitorMode {\n /**\n * @generated from enum value: PROMPT = 1;\n */\n PROMPT = 1,\n\n /**\n * @generated from enum value: COMMAND_START = 2;\n */\n COMMAND_START = 2,\n\n /**\n * @generated from enum value: COMMAND_END = 3;\n */\n COMMAND_END = 3,\n}\n\n/**\n * Describes the enum iterm2.PromptMonitorMode.\n */\nexport const PromptMonitorModeSchema: GenEnum<PromptMonitorMode> = /*@__PURE__*/\n enumDesc(file_api, 4);\n\n/**\n * @generated from enum iterm2.AlternateColor\n */\nexport enum AlternateColor {\n /**\n * @generated from enum value: DEFAULT = 0;\n */\n DEFAULT = 0,\n\n /**\n * @generated from enum value: REVERSED_DEFAULT = 3;\n */\n REVERSED_DEFAULT = 3,\n\n /**\n * @generated from enum value: SYSTEM_MESSAGE = 4;\n */\n SYSTEM_MESSAGE = 4,\n}\n\n/**\n * Describes the enum iterm2.AlternateColor.\n */\nexport const AlternateColorSchema: GenEnum<AlternateColor> = /*@__PURE__*/\n enumDesc(file_api, 5);\n\n/**\n * @generated from enum iterm2.ImagePlaceholderType\n */\nexport enum ImagePlaceholderType {\n /**\n * @generated from enum value: NONE = 0;\n */\n NONE = 0,\n\n /**\n * @generated from enum value: ITERM2 = 1;\n */\n ITERM2 = 1,\n\n /**\n * @generated from enum value: KITTY = 2;\n */\n KITTY = 2,\n}\n\n/**\n * Describes the enum iterm2.ImagePlaceholderType.\n */\nexport const ImagePlaceholderTypeSchema: GenEnum<ImagePlaceholderType> = /*@__PURE__*/\n enumDesc(file_api, 6);\n\n","import { existsSync } from \"node:fs\";\nimport { homedir } from \"node:os\";\nimport { join } from \"node:path\";\n\nconst UNIX_SOCKET_PATH = join(\n homedir(),\n \"Library\",\n \"Application Support\",\n \"iTerm2\",\n \"private\",\n \"socket\",\n);\n\nconst TCP_URL = \"ws://localhost:1912\";\n\nexport interface TransportTarget {\n readonly url: string;\n readonly socketPath?: string;\n}\n\nexport const resolveTransport = (): TransportTarget => {\n if (existsSync(UNIX_SOCKET_PATH)) {\n return {\n url: \"ws://localhost\",\n socketPath: UNIX_SOCKET_PATH,\n };\n }\n return { url: TCP_URL };\n};\n","import net from \"node:net\";\nimport { create, fromBinary, toBinary } from \"@bufbuild/protobuf\";\nimport WebSocket from \"ws\";\nimport {\n type ClientOriginatedMessage,\n ClientOriginatedMessageSchema,\n type Notification,\n type ServerOriginatedMessage,\n ServerOriginatedMessageSchema,\n} from \"../gen/api_pb.js\";\nimport { buildHeaders, type ConnectionHeaders } from \"./auth.js\";\nimport { resolveTransport, type TransportTarget } from \"./transport.js\";\n\nexport type RequestSubmessage = ClientOriginatedMessage[\"submessage\"];\n\nexport interface ConnectionOptions {\n readonly advisoryName?: string;\n readonly disableAuthUi?: boolean;\n readonly transport?: TransportTarget;\n readonly headers?: ConnectionHeaders;\n}\n\nexport interface PendingRequest {\n readonly resolve: (msg: ServerOriginatedMessage) => void;\n readonly reject: (err: Error) => void;\n}\n\nexport type NotificationHandler = (notification: Notification) => void;\n\nexport class Connection {\n private ws: WebSocket | null = null;\n private nextId = 1;\n private readonly pending = new Map<number, PendingRequest>();\n private readonly notificationHandlers = new Set<NotificationHandler>();\n private closed = false;\n\n static async create(options: ConnectionOptions = {}): Promise<Connection> {\n const conn = new Connection();\n await conn.connect(options);\n return conn;\n }\n\n private async connect(options: ConnectionOptions): Promise<void> {\n const transport = options.transport ?? resolveTransport();\n const headers =\n options.headers ?? buildHeaders(options.advisoryName ?? \"iterm2-ts\", options.disableAuthUi);\n\n return new Promise<void>((resolve, reject) => {\n const { socketPath } = transport;\n const wsOptions: WebSocket.ClientOptions = {\n headers: { ...headers },\n ...(socketPath ? { createConnection: () => net.connect(socketPath) } : {}),\n };\n\n this.ws = new WebSocket(transport.url, [\"api.iterm2.com\"], wsOptions);\n\n this.ws.binaryType = \"nodebuffer\";\n\n this.ws.on(\"open\", () => resolve());\n\n this.ws.on(\"error\", (err) => {\n if (!this.ws || this.ws.readyState === WebSocket.CONNECTING) {\n reject(err);\n }\n this.rejectAllPending(err);\n });\n\n this.ws.on(\"close\", () => {\n this.closed = true;\n this.rejectAllPending(new Error(\"Connection closed\"));\n });\n\n this.ws.on(\"message\", (data: Buffer) => {\n this.handleMessage(data);\n });\n });\n }\n\n send(submessage: RequestSubmessage): Promise<ServerOriginatedMessage> {\n if (this.closed || !this.ws) {\n return Promise.reject(new Error(\"Connection is closed\"));\n }\n\n const id = this.nextId++;\n const request = create(ClientOriginatedMessageSchema, {\n id: BigInt(id),\n submessage,\n });\n\n const encoded = toBinary(ClientOriginatedMessageSchema, request);\n this.ws.send(encoded);\n\n return new Promise<ServerOriginatedMessage>((resolve, reject) => {\n this.pending.set(id, { resolve, reject });\n });\n }\n\n onNotification(handler: NotificationHandler): () => void {\n this.notificationHandlers.add(handler);\n return () => {\n this.notificationHandlers.delete(handler);\n };\n }\n\n close(): void {\n this.closed = true;\n if (this.ws) {\n this.ws.close();\n this.ws = null;\n }\n this.rejectAllPending(new Error(\"Connection closed by client\"));\n }\n\n get isConnected(): boolean {\n return !this.closed && this.ws?.readyState === WebSocket.OPEN;\n }\n\n private handleMessage(data: Buffer): void {\n const message = fromBinary(ServerOriginatedMessageSchema, new Uint8Array(data));\n\n // Notifications are part of the submessage oneof\n if (message.submessage.case === \"notification\") {\n for (const handler of this.notificationHandlers) {\n handler(message.submessage.value);\n }\n return;\n }\n\n const id = message.id;\n if (id === 0n) return;\n\n const idNum = Number(id);\n const pending = this.pending.get(idNum);\n if (pending) {\n this.pending.delete(idNum);\n if (message.submessage.case === \"error\") {\n pending.reject(new Error(`iTerm2 error: ${message.submessage.value}`));\n } else {\n pending.resolve(message);\n }\n }\n }\n\n private rejectAllPending(err: Error | unknown): void {\n const error = err instanceof Error ? err : new Error(String(err));\n for (const [id, pending] of this.pending) {\n pending.reject(error);\n this.pending.delete(id);\n }\n }\n}\n","import type {\n BroadcastDomainsChangedNotification,\n CustomEscapeSequenceNotification,\n FocusChangedNotification,\n KeystrokeNotification,\n LayoutChangedNotification,\n NewSessionNotification,\n Notification,\n ProfileChangedNotification,\n PromptNotification,\n ScreenUpdateNotification,\n TerminateSessionNotification,\n VariableChangedNotification,\n} from \"../gen/api_pb.js\";\n\nexport interface EventMap {\n sessionCreated: NewSessionNotification;\n sessionTerminated: TerminateSessionNotification;\n layoutChanged: LayoutChangedNotification;\n focusChanged: FocusChangedNotification;\n screenUpdated: ScreenUpdateNotification;\n keystroke: KeystrokeNotification;\n customEscapeSequence: CustomEscapeSequenceNotification;\n variableChanged: VariableChangedNotification;\n profileChanged: ProfileChangedNotification;\n broadcastDomainsChanged: BroadcastDomainsChangedNotification;\n prompt: PromptNotification;\n}\n\nexport type EventName = keyof EventMap;\nexport type EventHandler<K extends EventName> = (event: EventMap[K]) => void;\n\nexport class TypedEmitter {\n private readonly handlers = new Map<EventName, Set<EventHandler<EventName>>>();\n\n on<K extends EventName>(event: K, handler: EventHandler<K>): () => void {\n let set = this.handlers.get(event);\n if (!set) {\n set = new Set();\n this.handlers.set(event, set);\n }\n set.add(handler as EventHandler<EventName>);\n return () => this.off(event, handler);\n }\n\n off<K extends EventName>(event: K, handler: EventHandler<K>): void {\n const set = this.handlers.get(event);\n if (set) {\n set.delete(handler as EventHandler<EventName>);\n if (set.size === 0) {\n this.handlers.delete(event);\n }\n }\n }\n\n emit<K extends EventName>(event: K, data: EventMap[K]): void {\n const set = this.handlers.get(event);\n if (set) {\n for (const handler of set) {\n handler(data);\n }\n }\n }\n\n hasListeners(event: EventName): boolean {\n return (this.handlers.get(event)?.size ?? 0) > 0;\n }\n\n removeAllListeners(): void {\n this.handlers.clear();\n }\n}\n\ntype NotificationMapping = readonly [key: keyof Notification, event: EventName];\n\nconst NOTIFICATION_MAPPINGS: readonly NotificationMapping[] = [\n [\"newSessionNotification\", \"sessionCreated\"],\n [\"terminateSessionNotification\", \"sessionTerminated\"],\n [\"layoutChangedNotification\", \"layoutChanged\"],\n [\"focusChangedNotification\", \"focusChanged\"],\n [\"screenUpdateNotification\", \"screenUpdated\"],\n [\"keystrokeNotification\", \"keystroke\"],\n [\"customEscapeSequenceNotification\", \"customEscapeSequence\"],\n [\"variableChangedNotification\", \"variableChanged\"],\n [\"profileChangedNotification\", \"profileChanged\"],\n [\"broadcastDomainsChanged\", \"broadcastDomainsChanged\"],\n [\"promptNotification\", \"prompt\"],\n];\n\nexport const dispatchNotification = (emitter: TypedEmitter, notification: Notification): void => {\n for (const [key, event] of NOTIFICATION_MAPPINGS) {\n const value = notification[key];\n if (value) {\n // biome-ignore lint/suspicious/noExplicitAny: proto notification fields have heterogeneous types\n emitter.emit(event, value as any);\n }\n }\n};\n","import type { EventMap, EventName, TypedEmitter } from \"./emitter.js\";\n\nexport const createAsyncIterator = <K extends EventName>(\n emitter: TypedEmitter,\n event: K,\n): AsyncIterableIterator<EventMap[K]> => {\n const buffer: EventMap[K][] = [];\n let resolve: ((value: IteratorResult<EventMap[K]>) => void) | null = null;\n let done = false;\n\n const handler = (data: EventMap[K]) => {\n if (resolve) {\n const r = resolve;\n resolve = null;\n r({ value: data, done: false });\n } else {\n buffer.push(data);\n }\n };\n\n const cleanup = emitter.on(event, handler);\n\n return {\n next(): Promise<IteratorResult<EventMap[K]>> {\n if (done) {\n return Promise.resolve({ value: undefined, done: true });\n }\n\n const buffered = buffer.shift();\n if (buffered !== undefined) {\n return Promise.resolve({ value: buffered, done: false });\n }\n\n return new Promise<IteratorResult<EventMap[K]>>((r) => {\n resolve = r;\n });\n },\n\n return(): Promise<IteratorResult<EventMap[K]>> {\n done = true;\n cleanup();\n if (resolve) {\n resolve({ value: undefined, done: true });\n resolve = null;\n }\n return Promise.resolve({ value: undefined, done: true });\n },\n\n [Symbol.asyncIterator]() {\n return this;\n },\n };\n};\n","import { create } from \"@bufbuild/protobuf\";\nimport type { Connection } from \"../connection/index.js\";\nimport {\n NotificationRequestSchema,\n NotificationResponse_Status,\n NotificationType,\n} from \"../gen/api_pb.js\";\nimport type { EventName } from \"./emitter.js\";\n\nconst EVENT_TO_NOTIFICATION_TYPE: Record<EventName, NotificationType> = {\n sessionCreated: NotificationType.NOTIFY_ON_NEW_SESSION,\n sessionTerminated: NotificationType.NOTIFY_ON_TERMINATE_SESSION,\n layoutChanged: NotificationType.NOTIFY_ON_LAYOUT_CHANGE,\n focusChanged: NotificationType.NOTIFY_ON_FOCUS_CHANGE,\n screenUpdated: NotificationType.NOTIFY_ON_SCREEN_UPDATE,\n keystroke: NotificationType.NOTIFY_ON_KEYSTROKE,\n customEscapeSequence: NotificationType.NOTIFY_ON_CUSTOM_ESCAPE_SEQUENCE,\n variableChanged: NotificationType.NOTIFY_ON_VARIABLE_CHANGE,\n profileChanged: NotificationType.NOTIFY_ON_PROFILE_CHANGE,\n broadcastDomainsChanged: NotificationType.NOTIFY_ON_BROADCAST_CHANGE,\n prompt: NotificationType.NOTIFY_ON_PROMPT,\n};\n\nexport const subscribe = async (\n conn: Connection,\n event: EventName,\n sessionId?: string,\n): Promise<void> => {\n const notificationType = EVENT_TO_NOTIFICATION_TYPE[event];\n const response = await conn.send({\n case: \"notificationRequest\",\n value: create(NotificationRequestSchema, {\n subscribe: true,\n notificationType,\n session: sessionId,\n }),\n });\n if (response.submessage.case === \"notificationResponse\") {\n const status = response.submessage.value.status;\n if (\n status !== NotificationResponse_Status.OK &&\n status !== NotificationResponse_Status.ALREADY_SUBSCRIBED\n ) {\n throw new Error(`subscribe to ${event} failed: status ${status}`);\n }\n }\n};\n\nexport const unsubscribe = async (\n conn: Connection,\n event: EventName,\n sessionId?: string,\n): Promise<void> => {\n const notificationType = EVENT_TO_NOTIFICATION_TYPE[event];\n const response = await conn.send({\n case: \"notificationRequest\",\n value: create(NotificationRequestSchema, {\n subscribe: false,\n notificationType,\n session: sessionId,\n }),\n });\n if (response.submessage.case === \"notificationResponse\") {\n const status = response.submessage.value.status;\n if (\n status !== NotificationResponse_Status.OK &&\n status !== NotificationResponse_Status.NOT_SUBSCRIBED\n ) {\n throw new Error(`unsubscribe from ${event} failed: status ${status}`);\n }\n }\n};\n","import type {\n Frame as ProtoFrame,\n Point as ProtoPoint,\n ProfileProperty as ProtoProfileProperty,\n Size as ProtoSize,\n} from \"../gen/api_pb.js\";\n\nexport interface Point {\n readonly x: number;\n readonly y: number;\n}\n\nexport interface Size {\n readonly width: number;\n readonly height: number;\n}\n\nexport interface Frame {\n readonly origin: Point;\n readonly size: Size;\n}\n\nexport interface ProfileProperty {\n readonly key: string;\n readonly value: unknown;\n}\n\nexport const pointFromProto = (p: ProtoPoint | undefined): Point => ({\n x: p?.x ?? 0,\n y: p?.y ?? 0,\n});\n\nexport const sizeFromProto = (s: ProtoSize | undefined): Size => ({\n width: s?.width ?? 0,\n height: s?.height ?? 0,\n});\n\nexport const frameFromProto = (f: ProtoFrame | undefined): Frame => ({\n origin: pointFromProto(f?.origin),\n size: sizeFromProto(f?.size),\n});\n\nexport const profilePropertyFromProto = (p: ProtoProfileProperty): ProfileProperty => ({\n key: p.key ?? \"\",\n value: p.jsonValue ? JSON.parse(p.jsonValue) : null,\n});\n","import type { SessionSummary } from \"../gen/api_pb.js\";\nimport { type Frame, frameFromProto, type Size, sizeFromProto } from \"./common.js\";\n\nexport interface Session {\n readonly id: string;\n readonly name: string;\n readonly frame?: Frame;\n readonly gridSize?: Size;\n}\n\nexport const sessionFromProto = (s: SessionSummary): Session => ({\n id: s.uniqueIdentifier ?? \"\",\n name: s.title ?? \"\",\n frame: s.frame ? frameFromProto(s.frame) : undefined,\n gridSize: s.gridSize ? sizeFromProto(s.gridSize) : undefined,\n});\n","import type { ListSessionsResponse_Tab, SplitTreeNode } from \"../gen/api_pb.js\";\nimport { type Session, sessionFromProto } from \"./session.js\";\n\nexport interface Tab {\n readonly id: string;\n readonly sessions: readonly Session[];\n}\n\nconst collectSessions = (node: SplitTreeNode | undefined): Session[] => {\n if (!node?.links) return [];\n\n const sessions: Session[] = [];\n for (const link of node.links) {\n if (link.child.case === \"session\") {\n sessions.push(sessionFromProto(link.child.value));\n }\n if (link.child.case === \"node\") {\n sessions.push(...collectSessions(link.child.value));\n }\n }\n return sessions;\n};\n\nexport const tabFromProto = (t: ListSessionsResponse_Tab): Tab => ({\n id: t.tabId ?? \"\",\n sessions: collectSessions(t.root),\n});\n","import type { ListSessionsResponse_Window } from \"../gen/api_pb.js\";\nimport { type Frame, frameFromProto } from \"./common.js\";\nimport { type Tab, tabFromProto } from \"./tab.js\";\n\nexport interface Window {\n readonly id: string;\n readonly tabs: readonly Tab[];\n readonly frame?: Frame;\n readonly number?: number;\n}\n\nexport const windowFromProto = (w: ListSessionsResponse_Window): Window => ({\n id: w.windowId ?? \"\",\n tabs: (w.tabs ?? []).map(tabFromProto),\n frame: w.frame ? frameFromProto(w.frame) : undefined,\n number: w.number ?? undefined,\n});\n","import type { ListSessionsResponse } from \"../gen/api_pb.js\";\nimport { type Session, sessionFromProto } from \"./session.js\";\nimport { type Window, windowFromProto } from \"./window.js\";\n\nexport interface App {\n readonly windows: readonly Window[];\n readonly buriedSessions: readonly Session[];\n}\n\nexport const appFromProto = (response: ListSessionsResponse): App => ({\n windows: (response.windows ?? []).map(windowFromProto),\n buriedSessions: (response.buriedSessions ?? []).map(sessionFromProto),\n});\n","import { create } from \"@bufbuild/protobuf\";\nimport type { Connection } from \"../connection/index.js\";\nimport {\n GetProfilePropertyRequestSchema,\n GetProfilePropertyResponse_Status,\n ListProfilesRequestSchema,\n SetProfilePropertyRequestSchema,\n SetProfilePropertyResponse_Status,\n} from \"../gen/api_pb.js\";\nimport { type ProfileProperty, profilePropertyFromProto } from \"../models/index.js\";\n\nexport interface Profile {\n readonly guid: string;\n readonly name: string;\n readonly properties: readonly ProfileProperty[];\n}\n\nexport const listProfiles = async (\n conn: Connection,\n properties?: readonly string[],\n guids?: readonly string[],\n): Promise<Profile[]> => {\n const response = await conn.send({\n case: \"listProfilesRequest\",\n value: create(ListProfilesRequestSchema, {\n properties: properties ? [...properties] : [],\n guids: guids ? [...guids] : [],\n }),\n });\n\n if (response.submessage.case !== \"listProfilesResponse\") {\n return [];\n }\n const profiles = response.submessage.value.profiles;\n return profiles.map((p) => {\n const props = p.properties.map(profilePropertyFromProto);\n const guidProp = props.find((prop) => prop.key === \"Guid\");\n const nameProp = props.find((prop) => prop.key === \"Name\");\n return {\n guid: (guidProp?.value as string) ?? \"\",\n name: (nameProp?.value as string) ?? \"\",\n properties: props,\n };\n });\n};\n\nexport const getProfileProperty = async (\n conn: Connection,\n sessionId: string,\n key: string,\n): Promise<unknown> => {\n const response = await conn.send({\n case: \"getProfilePropertyRequest\",\n value: create(GetProfilePropertyRequestSchema, {\n session: sessionId,\n keys: [key],\n }),\n });\n\n if (response.submessage.case !== \"getProfilePropertyResponse\") {\n return null;\n }\n const propResponse = response.submessage.value;\n if (propResponse.status !== GetProfilePropertyResponse_Status.OK) {\n throw new Error(`getProfileProperty failed: status ${propResponse.status}`);\n }\n const prop = propResponse.properties[0];\n return prop?.jsonValue ? JSON.parse(prop.jsonValue) : null;\n};\n\nexport const setProfileProperty = async (\n conn: Connection,\n sessionId: string,\n key: string,\n value: unknown,\n): Promise<void> => {\n const response = await conn.send({\n case: \"setProfilePropertyRequest\",\n value: create(SetProfilePropertyRequestSchema, {\n target: { case: \"session\", value: sessionId },\n key,\n jsonValue: JSON.stringify(value),\n }),\n });\n\n if (\n response.submessage.case === \"setProfilePropertyResponse\" &&\n response.submessage.value.status !== SetProfilePropertyResponse_Status.OK\n ) {\n throw new Error(`setProfileProperty failed: status ${response.submessage.value.status}`);\n }\n};\n","import { create } from \"@bufbuild/protobuf\";\nimport type { Connection } from \"../connection/index.js\";\nimport {\n GetBufferRequestSchema,\n GetBufferResponse_Status,\n InjectRequestSchema,\n InjectResponse_Status,\n LineContents_Continuation,\n LineRangeSchema,\n RestartSessionRequestSchema,\n RestartSessionResponse_Status,\n SendTextRequestSchema,\n SendTextResponse_Status,\n SplitPaneRequest_SplitDirection,\n SplitPaneRequestSchema,\n SplitPaneResponse_Status,\n} from \"../gen/api_pb.js\";\nimport type { Session } from \"../models/index.js\";\n\nexport interface SplitPaneOptions {\n readonly direction?: \"vertical\" | \"horizontal\";\n readonly before?: boolean;\n readonly profile?: string;\n}\n\nexport interface LineContents {\n readonly text: string;\n readonly continuation: \"hard\" | \"soft\";\n}\n\nexport const sendText = async (\n conn: Connection,\n sessionId: string,\n text: string,\n suppressBroadcast?: boolean,\n): Promise<void> => {\n const response = await conn.send({\n case: \"sendTextRequest\",\n value: create(SendTextRequestSchema, {\n session: sessionId,\n text,\n suppressBroadcast,\n }),\n });\n if (\n response.submessage.case === \"sendTextResponse\" &&\n response.submessage.value.status !== SendTextResponse_Status.OK\n ) {\n throw new Error(`sendText failed: status ${response.submessage.value.status}`);\n }\n};\n\nexport const splitPane = async (\n conn: Connection,\n sessionId: string,\n options: SplitPaneOptions = {},\n): Promise<Session> => {\n const direction =\n options.direction === \"horizontal\"\n ? SplitPaneRequest_SplitDirection.HORIZONTAL\n : SplitPaneRequest_SplitDirection.VERTICAL;\n\n const response = await conn.send({\n case: \"splitPaneRequest\",\n value: create(SplitPaneRequestSchema, {\n session: sessionId,\n splitDirection: direction,\n before: options.before,\n profileName: options.profile,\n }),\n });\n\n if (response.submessage.case !== \"splitPaneResponse\") {\n throw new Error(\"splitPane: unexpected response\");\n }\n const splitResponse = response.submessage.value;\n if (splitResponse.status !== SplitPaneResponse_Status.OK) {\n throw new Error(`splitPane failed: status ${splitResponse.status}`);\n }\n\n const newSessionId = splitResponse.sessionId[0];\n if (!newSessionId) {\n throw new Error(\"splitPane: no session ID returned\");\n }\n\n return { id: newSessionId, name: \"\" };\n};\n\nexport const getScreenContents = async (conn: Connection, sessionId: string): Promise<string> => {\n const response = await conn.send({\n case: \"getBufferRequest\",\n value: create(GetBufferRequestSchema, {\n session: sessionId,\n lineRange: create(LineRangeSchema, { screenContentsOnly: true }),\n }),\n });\n\n if (response.submessage.case !== \"getBufferResponse\") {\n throw new Error(\"getScreenContents: unexpected response\");\n }\n const bufferResponse = response.submessage.value;\n if (bufferResponse.status !== GetBufferResponse_Status.OK) {\n throw new Error(`getScreenContents failed: status ${bufferResponse.status}`);\n }\n\n return bufferResponse.contents.map((line) => line.text ?? \"\").join(\"\\n\");\n};\n\nexport const getBuffer = async (\n conn: Connection,\n sessionId: string,\n trailingLines?: number,\n): Promise<LineContents[]> => {\n const lineRange =\n trailingLines != null\n ? create(LineRangeSchema, { trailingLines })\n : create(LineRangeSchema, { screenContentsOnly: true });\n\n const response = await conn.send({\n case: \"getBufferRequest\",\n value: create(GetBufferRequestSchema, {\n session: sessionId,\n lineRange,\n }),\n });\n\n if (response.submessage.case !== \"getBufferResponse\") {\n throw new Error(\"getBuffer: unexpected response\");\n }\n const bufferResponse = response.submessage.value;\n if (bufferResponse.status !== GetBufferResponse_Status.OK) {\n throw new Error(`getBuffer failed: status ${bufferResponse.status}`);\n }\n\n return bufferResponse.contents.map((line) => ({\n text: line.text ?? \"\",\n continuation:\n line.continuation === LineContents_Continuation.SOFT_EOL\n ? (\"soft\" as const)\n : (\"hard\" as const),\n }));\n};\n\nexport const inject = async (\n conn: Connection,\n sessionId: string,\n data: Uint8Array,\n): Promise<void> => {\n const response = await conn.send({\n case: \"injectRequest\",\n value: create(InjectRequestSchema, {\n sessionId: [sessionId],\n data,\n }),\n });\n\n if (response.submessage.case === \"injectResponse\") {\n const status = response.submessage.value.status[0];\n if (status != null && status !== InjectResponse_Status.OK) {\n throw new Error(`inject failed: status ${status}`);\n }\n }\n};\n\nexport const restartSession = async (\n conn: Connection,\n sessionId: string,\n onlyIfExited?: boolean,\n): Promise<void> => {\n const response = await conn.send({\n case: \"restartSessionRequest\",\n value: create(RestartSessionRequestSchema, {\n sessionId,\n onlyIfExited,\n }),\n });\n\n if (\n response.submessage.case === \"restartSessionResponse\" &&\n response.submessage.value.status !== RestartSessionResponse_Status.OK\n ) {\n throw new Error(`restartSession failed: status ${response.submessage.value.status}`);\n }\n};\n","import { create } from \"@bufbuild/protobuf\";\nimport type { Connection } from \"../connection/index.js\";\nimport {\n ActivateRequestSchema,\n ActivateResponse_Status,\n type CloseRequest,\n CloseRequest_CloseSessionsSchema,\n CloseRequest_CloseTabsSchema,\n CloseRequest_CloseWindowsSchema,\n CloseRequestSchema,\n CloseResponse_Status,\n CreateTabRequestSchema,\n CreateTabResponse_Status,\n} from \"../gen/api_pb.js\";\n\nexport interface CreateTabResult {\n readonly windowId: string;\n readonly tabId: string;\n readonly sessionId: string;\n}\n\nexport interface CreateWindowResult {\n readonly windowId: string;\n readonly tabId: string;\n readonly sessionId: string;\n}\n\nexport const createTab = async (\n conn: Connection,\n windowId?: string,\n profile?: string,\n): Promise<CreateTabResult> => {\n const response = await conn.send({\n case: \"createTabRequest\",\n value: create(CreateTabRequestSchema, {\n windowId,\n profileName: profile,\n }),\n });\n\n if (response.submessage.case !== \"createTabResponse\") {\n throw new Error(\"createTab: unexpected response\");\n }\n const tabResponse = response.submessage.value;\n if (tabResponse.status !== CreateTabResponse_Status.OK) {\n throw new Error(`createTab failed: status ${tabResponse.status}`);\n }\n\n return {\n windowId: tabResponse.windowId ?? \"\",\n tabId: String(tabResponse.tabId ?? \"\"),\n sessionId: tabResponse.sessionId ?? \"\",\n };\n};\n\nexport const createWindow = async (\n conn: Connection,\n profile?: string,\n): Promise<CreateWindowResult> => {\n return createTab(conn, undefined, profile);\n};\n\nexport type ActivateTarget =\n | { readonly type: \"session\"; readonly id: string }\n | { readonly type: \"tab\"; readonly id: string }\n | { readonly type: \"window\"; readonly id: string };\n\nexport const activate = async (conn: Connection, target: ActivateTarget): Promise<void> => {\n const identifierMap = {\n session: \"sessionId\" as const,\n tab: \"tabId\" as const,\n window: \"windowId\" as const,\n };\n\n const response = await conn.send({\n case: \"activateRequest\",\n value: create(ActivateRequestSchema, {\n orderWindowFront: true,\n selectTab: true,\n selectSession: true,\n identifier: { case: identifierMap[target.type], value: target.id },\n }),\n });\n\n if (\n response.submessage.case === \"activateResponse\" &&\n response.submessage.value.status !== ActivateResponse_Status.OK\n ) {\n throw new Error(`activate failed: status ${response.submessage.value.status}`);\n }\n};\n\nexport type CloseTarget =\n | { readonly type: \"session\"; readonly ids: readonly string[] }\n | { readonly type: \"tab\"; readonly ids: readonly string[] }\n | { readonly type: \"window\"; readonly ids: readonly string[] };\n\nexport const close = async (\n conn: Connection,\n target: CloseTarget,\n force?: boolean,\n): Promise<void> => {\n let closeTarget: CloseRequest[\"target\"];\n\n switch (target.type) {\n case \"session\":\n closeTarget = {\n case: \"sessions\",\n value: create(CloseRequest_CloseSessionsSchema, { sessionIds: [...target.ids] }),\n };\n break;\n case \"tab\":\n closeTarget = {\n case: \"tabs\",\n value: create(CloseRequest_CloseTabsSchema, { tabIds: [...target.ids] }),\n };\n break;\n case \"window\":\n closeTarget = {\n case: \"windows\",\n value: create(CloseRequest_CloseWindowsSchema, { windowIds: [...target.ids] }),\n };\n break;\n }\n\n const response = await conn.send({\n case: \"closeRequest\",\n value: create(CloseRequestSchema, {\n force,\n target: closeTarget,\n }),\n });\n\n if (response.submessage.case === \"closeResponse\") {\n for (const status of response.submessage.value.statuses) {\n if (status !== CloseResponse_Status.OK) {\n throw new Error(`close failed: status ${status}`);\n }\n }\n }\n};\n","import { create } from \"@bufbuild/protobuf\";\nimport {\n Connection,\n type ConnectionOptions,\n type NotificationHandler,\n} from \"../connection/index.js\";\nimport {\n dispatchNotification,\n type EventHandler,\n type EventMap,\n type EventName,\n TypedEmitter,\n} from \"../events/emitter.js\";\nimport { createAsyncIterator } from \"../events/iterator.js\";\nimport { subscribe, unsubscribe } from \"../events/notifications.js\";\nimport {\n type FocusChangedNotification,\n FocusRequestSchema,\n GetPropertyRequestSchema,\n GetPropertyResponse_Status,\n ListSessionsRequestSchema,\n SetPropertyRequestSchema,\n SetPropertyResponse_Status,\n VariableRequest_SetSchema,\n VariableRequestSchema,\n VariableResponse_Status,\n} from \"../gen/api_pb.js\";\nimport { type App, appFromProto } from \"../models/index.js\";\nimport type { Session } from \"../models/session.js\";\nimport { getProfileProperty, listProfiles, type Profile, setProfileProperty } from \"./profiles.js\";\nimport {\n getBuffer,\n getScreenContents,\n inject,\n type LineContents,\n restartSession,\n type SplitPaneOptions,\n sendText,\n splitPane,\n} from \"./sessions.js\";\nimport {\n type ActivateTarget,\n activate,\n type CloseTarget,\n type CreateTabResult,\n type CreateWindowResult,\n close,\n createTab,\n createWindow,\n} from \"./windows.js\";\n\nexport interface ConnectOptions extends ConnectionOptions {}\n\nexport class ITerm2 {\n private readonly conn: Connection;\n private readonly emitter = new TypedEmitter();\n private readonly subscriptions = new Set<string>();\n private cleanupNotificationHandler: (() => void) | null = null;\n\n constructor(connection: Connection) {\n this.conn = connection;\n this.cleanupNotificationHandler = this.conn.onNotification((notification) =>\n dispatchNotification(this.emitter, notification),\n );\n }\n\n static async connect(options: ConnectOptions = {}): Promise<ITerm2> {\n const conn = await Connection.create(options);\n return new ITerm2(conn);\n }\n\n get connection(): Connection {\n return this.conn;\n }\n\n // --- App ---\n\n async getApp(): Promise<App> {\n const response = await this.conn.send({\n case: \"listSessionsRequest\",\n value: create(ListSessionsRequestSchema, {}),\n });\n if (response.submessage.case !== \"listSessionsResponse\") {\n throw new Error(\"getApp: no response\");\n }\n return appFromProto(response.submessage.value);\n }\n\n // --- Sessions ---\n\n async sendText(sessionId: string, text: string, suppressBroadcast?: boolean): Promise<void> {\n return sendText(this.conn, sessionId, text, suppressBroadcast);\n }\n\n async splitPane(sessionId: string, options?: SplitPaneOptions): Promise<Session> {\n return splitPane(this.conn, sessionId, options);\n }\n\n async getScreenContents(sessionId: string): Promise<string> {\n return getScreenContents(this.conn, sessionId);\n }\n\n async getBuffer(sessionId: string, trailingLines?: number): Promise<LineContents[]> {\n return getBuffer(this.conn, sessionId, trailingLines);\n }\n\n async inject(sessionId: string, data: Uint8Array): Promise<void> {\n return inject(this.conn, sessionId, data);\n }\n\n async restartSession(sessionId: string, onlyIfExited?: boolean): Promise<void> {\n return restartSession(this.conn, sessionId, onlyIfExited);\n }\n\n // --- Windows & Tabs ---\n\n async createTab(windowId?: string, profile?: string): Promise<CreateTabResult> {\n return createTab(this.conn, windowId, profile);\n }\n\n async createWindow(profile?: string): Promise<CreateWindowResult> {\n return createWindow(this.conn, profile);\n }\n\n async activate(target: ActivateTarget): Promise<void> {\n return activate(this.conn, target);\n }\n\n async close(target: CloseTarget, force?: boolean): Promise<void> {\n return close(this.conn, target, force);\n }\n\n // --- Profiles ---\n\n async listProfiles(\n properties?: readonly string[],\n guids?: readonly string[],\n ): Promise<Profile[]> {\n return listProfiles(this.conn, properties, guids);\n }\n\n async getProfileProperty(sessionId: string, key: string): Promise<unknown> {\n return getProfileProperty(this.conn, sessionId, key);\n }\n\n async setProfileProperty(sessionId: string, key: string, value: unknown): Promise<void> {\n return setProfileProperty(this.conn, sessionId, key, value);\n }\n\n // --- Variables ---\n\n async setVariable(sessionId: string, name: string, value: unknown): Promise<void> {\n const response = await this.conn.send({\n case: \"variableRequest\",\n value: create(VariableRequestSchema, {\n scope: { case: \"sessionId\", value: sessionId },\n set: [create(VariableRequest_SetSchema, { name, value: JSON.stringify(value) })],\n }),\n });\n if (\n response.submessage.case === \"variableResponse\" &&\n response.submessage.value.status !== VariableResponse_Status.OK\n ) {\n throw new Error(`setVariable failed: status ${response.submessage.value.status}`);\n }\n }\n\n async getVariable(sessionId: string, name: string): Promise<unknown> {\n const response = await this.conn.send({\n case: \"variableRequest\",\n value: create(VariableRequestSchema, {\n scope: { case: \"sessionId\", value: sessionId },\n get: [name],\n }),\n });\n if (response.submessage.case !== \"variableResponse\") {\n return null;\n }\n const varResponse = response.submessage.value;\n if (varResponse.status !== VariableResponse_Status.OK) {\n throw new Error(`getVariable failed: status ${varResponse.status}`);\n }\n const val = varResponse.values[0];\n return val ? JSON.parse(val) : null;\n }\n\n // --- Properties ---\n\n async setProperty(name: string, windowId: string, value: unknown): Promise<void> {\n const response = await this.conn.send({\n case: \"setPropertyRequest\",\n value: create(SetPropertyRequestSchema, {\n identifier: { case: \"windowId\", value: windowId },\n name,\n jsonValue: JSON.stringify(value),\n }),\n });\n if (\n response.submessage.case === \"setPropertyResponse\" &&\n response.submessage.value.status !== SetPropertyResponse_Status.OK\n ) {\n throw new Error(`setProperty failed: status ${response.submessage.value.status}`);\n }\n }\n\n async getProperty(name: string, windowId: string): Promise<unknown> {\n const response = await this.conn.send({\n case: \"getPropertyRequest\",\n value: create(GetPropertyRequestSchema, {\n identifier: { case: \"windowId\", value: windowId },\n name,\n }),\n });\n if (response.submessage.case !== \"getPropertyResponse\") {\n return null;\n }\n const propResponse = response.submessage.value;\n if (propResponse.status !== GetPropertyResponse_Status.OK) {\n throw new Error(`getProperty failed: status ${propResponse.status}`);\n }\n return propResponse.jsonValue ? JSON.parse(propResponse.jsonValue) : null;\n }\n\n // --- Focus ---\n\n async focus(): Promise<FocusChangedNotification[]> {\n const response = await this.conn.send({\n case: \"focusRequest\",\n value: create(FocusRequestSchema, {}),\n });\n if (response.submessage.case !== \"focusResponse\") {\n return [];\n }\n return response.submessage.value.notifications;\n }\n\n // --- Events ---\n\n async on<K extends EventName>(\n event: K,\n handler: EventHandler<K>,\n sessionId?: string,\n ): Promise<() => void> {\n const subKey = `${event}:${sessionId ?? \"\"}`;\n if (!this.subscriptions.has(subKey)) {\n await subscribe(this.conn, event, sessionId);\n this.subscriptions.add(subKey);\n }\n\n const cleanup = this.emitter.on(event, handler);\n return async () => {\n cleanup();\n if (!this.emitter.hasListeners(event)) {\n this.subscriptions.delete(subKey);\n await unsubscribe(this.conn, event, sessionId).catch(() => {});\n }\n };\n }\n\n async *notifications<K extends EventName>(\n event: K,\n sessionId?: string,\n ): AsyncIterableIterator<EventMap[K]> {\n const subKey = `${event}:${sessionId ?? \"\"}`;\n if (!this.subscriptions.has(subKey)) {\n await subscribe(this.conn, event, sessionId);\n this.subscriptions.add(subKey);\n }\n\n const iterator = createAsyncIterator(this.emitter, event);\n try {\n yield* iterator;\n } finally {\n iterator.return?.();\n if (!this.emitter.hasListeners(event)) {\n this.subscriptions.delete(subKey);\n await unsubscribe(this.conn, event, sessionId).catch(() => {});\n }\n }\n }\n\n // --- Raw notification handler ---\n\n onNotification(handler: NotificationHandler): () => void {\n return this.conn.onNotification(handler);\n }\n\n // --- Lifecycle ---\n\n disconnect(): void {\n this.emitter.removeAllListeners();\n this.cleanupNotificationHandler?.();\n this.cleanupNotificationHandler = null;\n this.subscriptions.clear();\n this.conn.close();\n }\n\n get isConnected(): boolean {\n return this.conn.isConnected;\n }\n}\n","export { type ConnectOptions, ITerm2 } from \"./api/client.js\";\nexport type { Profile } from \"./api/profiles.js\";\nexport type {\n LineContents,\n SplitPaneOptions,\n} from \"./api/sessions.js\";\nexport type {\n ActivateTarget,\n CloseTarget,\n CreateTabResult,\n CreateWindowResult,\n} from \"./api/windows.js\";\nexport type { ConnectionOptions, NotificationHandler } from \"./connection/index.js\";\nexport type {\n EventHandler,\n EventMap,\n EventName,\n} from \"./events/emitter.js\";\nexport type {\n App,\n Frame,\n Point,\n ProfileProperty,\n Session,\n Size,\n Tab,\n Window,\n} from \"./models/index.js\";\n\nimport { type ConnectOptions, ITerm2 } from \"./api/client.js\";\n\nexport const connect = (options?: ConnectOptions): Promise<ITerm2> => ITerm2.connect(options);\n"]}