@scalekit-sdk/node 2.2.0-beta.0 → 2.2.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.
Files changed (209) hide show
  1. package/.nvmrc +1 -1
  2. package/README.md +5 -5
  3. package/buf.gen.yaml +1 -5
  4. package/lib/auth.d.ts +9 -6
  5. package/lib/auth.js +4 -20
  6. package/lib/auth.js.map +1 -1
  7. package/lib/connect.d.ts +3 -3
  8. package/lib/connect.js +1 -2
  9. package/lib/connect.js.map +1 -1
  10. package/lib/connection.d.ts +2 -2
  11. package/lib/connection.js +4 -4
  12. package/lib/connection.js.map +1 -1
  13. package/lib/core.js +2 -2
  14. package/lib/core.js.map +1 -1
  15. package/lib/directory.d.ts +2 -2
  16. package/lib/directory.js +7 -7
  17. package/lib/directory.js.map +1 -1
  18. package/lib/domain.d.ts +6 -5
  19. package/lib/domain.js +4 -5
  20. package/lib/domain.js.map +1 -1
  21. package/lib/errors/base-exception.d.ts +1 -1
  22. package/lib/errors/base-exception.js +1 -1
  23. package/lib/errors/base-exception.js.map +1 -1
  24. package/lib/organization.d.ts +10 -9
  25. package/lib/organization.js +11 -9
  26. package/lib/organization.js.map +1 -1
  27. package/lib/passwordless.d.ts +2 -2
  28. package/lib/passwordless.js +8 -7
  29. package/lib/passwordless.js.map +1 -1
  30. package/lib/permission.d.ts +6 -5
  31. package/lib/permission.js +10 -11
  32. package/lib/permission.js.map +1 -1
  33. package/lib/pkg/grpc/buf/validate/validate_pb.d.ts +7 -0
  34. package/lib/pkg/grpc/buf/validate/validate_pb.js +25 -0
  35. package/lib/pkg/grpc/buf/validate/validate_pb.js.map +1 -0
  36. package/lib/pkg/grpc/google/api/annotations_pb.d.ts +7 -0
  37. package/lib/pkg/grpc/google/api/annotations_pb.js +25 -0
  38. package/lib/pkg/grpc/google/api/annotations_pb.js.map +1 -0
  39. package/lib/pkg/grpc/google/api/field_behavior_pb.d.ts +7 -0
  40. package/lib/pkg/grpc/google/api/field_behavior_pb.js +25 -0
  41. package/lib/pkg/grpc/google/api/field_behavior_pb.js.map +1 -0
  42. package/lib/pkg/grpc/google/api/visibility_pb.d.ts +7 -0
  43. package/lib/pkg/grpc/google/api/visibility_pb.js +25 -0
  44. package/lib/pkg/grpc/google/api/visibility_pb.js.map +1 -0
  45. package/lib/pkg/grpc/protoc-gen-openapiv2/options/annotations_pb.d.ts +7 -0
  46. package/lib/pkg/grpc/protoc-gen-openapiv2/options/annotations_pb.js +25 -0
  47. package/lib/pkg/grpc/protoc-gen-openapiv2/options/annotations_pb.js.map +1 -0
  48. package/lib/pkg/grpc/scalekit/v1/auditlogs/auditlogs_pb.d.ts +48 -42
  49. package/lib/pkg/grpc/scalekit/v1/auditlogs/auditlogs_pb.js +27 -263
  50. package/lib/pkg/grpc/scalekit/v1/auditlogs/auditlogs_pb.js.map +1 -1
  51. package/lib/pkg/grpc/scalekit/v1/auth/auth_pb.d.ts +371 -325
  52. package/lib/pkg/grpc/scalekit/v1/auth/auth_pb.js +132 -835
  53. package/lib/pkg/grpc/scalekit/v1/auth/auth_pb.js.map +1 -1
  54. package/lib/pkg/grpc/scalekit/v1/auth/passwordless_pb.d.ts +113 -87
  55. package/lib/pkg/grpc/scalekit/v1/auth/passwordless_pb.js +45 -201
  56. package/lib/pkg/grpc/scalekit/v1/auth/passwordless_pb.js.map +1 -1
  57. package/lib/pkg/grpc/scalekit/v1/auth/webauthn_pb.d.ts +262 -265
  58. package/lib/pkg/grpc/scalekit/v1/auth/webauthn_pb.js +92 -938
  59. package/lib/pkg/grpc/scalekit/v1/auth/webauthn_pb.js.map +1 -1
  60. package/lib/pkg/grpc/scalekit/v1/commons/commons_pb.d.ts +162 -157
  61. package/lib/pkg/grpc/scalekit/v1/commons/commons_pb.js +42 -313
  62. package/lib/pkg/grpc/scalekit/v1/commons/commons_pb.js.map +1 -1
  63. package/lib/pkg/grpc/scalekit/v1/connections/connections_pb.d.ts +1488 -1459
  64. package/lib/pkg/grpc/scalekit/v1/connections/connections_pb.js +353 -2362
  65. package/lib/pkg/grpc/scalekit/v1/connections/connections_pb.js.map +1 -1
  66. package/lib/pkg/grpc/scalekit/v1/directories/directories_pb.d.ts +520 -483
  67. package/lib/pkg/grpc/scalekit/v1/directories/directories_pb.js +224 -1555
  68. package/lib/pkg/grpc/scalekit/v1/directories/directories_pb.js.map +1 -1
  69. package/lib/pkg/grpc/scalekit/v1/domains/domains_pb.d.ts +219 -191
  70. package/lib/pkg/grpc/scalekit/v1/domains/domains_pb.js +96 -553
  71. package/lib/pkg/grpc/scalekit/v1/domains/domains_pb.js.map +1 -1
  72. package/lib/pkg/grpc/scalekit/v1/errdetails/errdetails_pb.d.ts +76 -102
  73. package/lib/pkg/grpc/scalekit/v1/errdetails/errdetails_pb.js +37 -393
  74. package/lib/pkg/grpc/scalekit/v1/errdetails/errdetails_pb.js.map +1 -1
  75. package/lib/pkg/grpc/scalekit/v1/options/options_pb.d.ts +36 -26
  76. package/lib/pkg/grpc/scalekit/v1/options/options_pb.js +20 -69
  77. package/lib/pkg/grpc/scalekit/v1/options/options_pb.js.map +1 -1
  78. package/lib/pkg/grpc/scalekit/v1/organizations/organizations_pb.d.ts +447 -400
  79. package/lib/pkg/grpc/scalekit/v1/organizations/organizations_pb.js +163 -1238
  80. package/lib/pkg/grpc/scalekit/v1/organizations/organizations_pb.js.map +1 -1
  81. package/lib/pkg/grpc/scalekit/v1/roles/roles_pb.d.ts +622 -556
  82. package/lib/pkg/grpc/scalekit/v1/roles/roles_pb.js +201 -1718
  83. package/lib/pkg/grpc/scalekit/v1/roles/roles_pb.js.map +1 -1
  84. package/lib/pkg/grpc/scalekit/v1/sessions/sessions_pb.d.ts +135 -132
  85. package/lib/pkg/grpc/scalekit/v1/sessions/sessions_pb.js +55 -518
  86. package/lib/pkg/grpc/scalekit/v1/sessions/sessions_pb.js.map +1 -1
  87. package/lib/pkg/grpc/scalekit/v1/users/users_pb.d.ts +445 -413
  88. package/lib/pkg/grpc/scalekit/v1/users/users_pb.js +142 -1490
  89. package/lib/pkg/grpc/scalekit/v1/users/users_pb.js.map +1 -1
  90. package/lib/role.d.ts +8 -7
  91. package/lib/role.js +14 -14
  92. package/lib/role.js.map +1 -1
  93. package/lib/scalekit.d.ts +0 -4
  94. package/lib/scalekit.js +0 -4
  95. package/lib/scalekit.js.map +1 -1
  96. package/lib/session.js +15 -24
  97. package/lib/session.js.map +1 -1
  98. package/lib/user.d.ts +6 -5
  99. package/lib/user.js +17 -20
  100. package/lib/user.js.map +1 -1
  101. package/lib/webauthn.js +6 -5
  102. package/lib/webauthn.js.map +1 -1
  103. package/package.json +6 -10
  104. package/reference.md +0 -671
  105. package/src/auth.ts +17 -17
  106. package/src/connect.ts +4 -5
  107. package/src/connection.ts +5 -5
  108. package/src/core.ts +2 -2
  109. package/src/directory.ts +8 -8
  110. package/src/domain.ts +9 -8
  111. package/src/errors/base-exception.ts +3 -2
  112. package/src/organization.ts +18 -15
  113. package/src/passwordless.ts +12 -11
  114. package/src/permission.ts +15 -15
  115. package/src/pkg/grpc/buf/validate/validate_pb.ts +28 -0
  116. package/src/pkg/grpc/google/api/annotations_pb.ts +28 -0
  117. package/src/pkg/grpc/google/api/field_behavior_pb.ts +28 -0
  118. package/src/pkg/grpc/google/api/visibility_pb.ts +28 -0
  119. package/src/pkg/grpc/protoc-gen-openapiv2/options/annotations_pb.ts +28 -0
  120. package/src/pkg/grpc/scalekit/v1/auditlogs/auditlogs_pb.ts +97 -182
  121. package/src/pkg/grpc/scalekit/v1/auth/auth_pb.ts +473 -850
  122. package/src/pkg/grpc/scalekit/v1/auth/passwordless_pb.ts +153 -225
  123. package/src/pkg/grpc/scalekit/v1/auth/webauthn_pb.ts +361 -830
  124. package/src/pkg/grpc/scalekit/v1/commons/commons_pb.ts +237 -358
  125. package/src/pkg/grpc/scalekit/v1/connections/connections_pb.ts +1625 -2826
  126. package/src/pkg/grpc/scalekit/v1/directories/directories_pb.ts +687 -1413
  127. package/src/pkg/grpc/scalekit/v1/domains/domains_pb.ts +286 -542
  128. package/src/pkg/grpc/scalekit/v1/errdetails/errdetails_pb.ts +115 -328
  129. package/src/pkg/grpc/scalekit/v1/options/options_pb.ts +50 -80
  130. package/src/pkg/grpc/scalekit/v1/organizations/organizations_pb.ts +558 -1183
  131. package/src/pkg/grpc/scalekit/v1/roles/roles_pb.ts +765 -1669
  132. package/src/pkg/grpc/scalekit/v1/sessions/sessions_pb.ts +195 -447
  133. package/src/pkg/grpc/scalekit/v1/users/users_pb.ts +592 -1339
  134. package/src/role.ts +21 -19
  135. package/src/scalekit.ts +0 -9
  136. package/src/session.ts +20 -34
  137. package/src/user.ts +30 -26
  138. package/src/webauthn.ts +10 -9
  139. package/tests/utils/test-data.ts +17 -8
  140. package/lib/connected-accounts.d.ts +0 -96
  141. package/lib/connected-accounts.js +0 -186
  142. package/lib/connected-accounts.js.map +0 -1
  143. package/lib/pkg/grpc/scalekit/v1/auditlogs/auditlogs_connect.d.ts +0 -19
  144. package/lib/pkg/grpc/scalekit/v1/auditlogs/auditlogs_connect.js +0 -27
  145. package/lib/pkg/grpc/scalekit/v1/auditlogs/auditlogs_connect.js.map +0 -1
  146. package/lib/pkg/grpc/scalekit/v1/auth/auth_connect.d.ts +0 -118
  147. package/lib/pkg/grpc/scalekit/v1/auth/auth_connect.js +0 -126
  148. package/lib/pkg/grpc/scalekit/v1/auth/auth_connect.js.map +0 -1
  149. package/lib/pkg/grpc/scalekit/v1/auth/passwordless_connect.d.ts +0 -37
  150. package/lib/pkg/grpc/scalekit/v1/auth/passwordless_connect.js +0 -45
  151. package/lib/pkg/grpc/scalekit/v1/auth/passwordless_connect.js.map +0 -1
  152. package/lib/pkg/grpc/scalekit/v1/auth/webauthn_connect.d.ts +0 -82
  153. package/lib/pkg/grpc/scalekit/v1/auth/webauthn_connect.js +0 -90
  154. package/lib/pkg/grpc/scalekit/v1/auth/webauthn_connect.js.map +0 -1
  155. package/lib/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_connect.d.ts +0 -87
  156. package/lib/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_connect.js +0 -95
  157. package/lib/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_connect.js.map +0 -1
  158. package/lib/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_pb.d.ts +0 -718
  159. package/lib/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_pb.js +0 -893
  160. package/lib/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_pb.js.map +0 -1
  161. package/lib/pkg/grpc/scalekit/v1/connections/connections_connect.d.ts +0 -172
  162. package/lib/pkg/grpc/scalekit/v1/connections/connections_connect.js +0 -180
  163. package/lib/pkg/grpc/scalekit/v1/connections/connections_connect.js.map +0 -1
  164. package/lib/pkg/grpc/scalekit/v1/directories/directories_connect.d.ts +0 -154
  165. package/lib/pkg/grpc/scalekit/v1/directories/directories_connect.js +0 -162
  166. package/lib/pkg/grpc/scalekit/v1/directories/directories_connect.js.map +0 -1
  167. package/lib/pkg/grpc/scalekit/v1/domains/domains_connect.d.ts +0 -73
  168. package/lib/pkg/grpc/scalekit/v1/domains/domains_connect.js +0 -81
  169. package/lib/pkg/grpc/scalekit/v1/domains/domains_connect.js.map +0 -1
  170. package/lib/pkg/grpc/scalekit/v1/organizations/organizations_connect.d.ts +0 -171
  171. package/lib/pkg/grpc/scalekit/v1/organizations/organizations_connect.js +0 -179
  172. package/lib/pkg/grpc/scalekit/v1/organizations/organizations_connect.js.map +0 -1
  173. package/lib/pkg/grpc/scalekit/v1/roles/roles_connect.d.ts +0 -250
  174. package/lib/pkg/grpc/scalekit/v1/roles/roles_connect.js +0 -258
  175. package/lib/pkg/grpc/scalekit/v1/roles/roles_connect.js.map +0 -1
  176. package/lib/pkg/grpc/scalekit/v1/sessions/sessions_connect.d.ts +0 -46
  177. package/lib/pkg/grpc/scalekit/v1/sessions/sessions_connect.js +0 -54
  178. package/lib/pkg/grpc/scalekit/v1/sessions/sessions_connect.js.map +0 -1
  179. package/lib/pkg/grpc/scalekit/v1/tools/tools_connect.d.ts +0 -75
  180. package/lib/pkg/grpc/scalekit/v1/tools/tools_connect.js +0 -83
  181. package/lib/pkg/grpc/scalekit/v1/tools/tools_connect.js.map +0 -1
  182. package/lib/pkg/grpc/scalekit/v1/tools/tools_pb.d.ts +0 -431
  183. package/lib/pkg/grpc/scalekit/v1/tools/tools_pb.js +0 -627
  184. package/lib/pkg/grpc/scalekit/v1/tools/tools_pb.js.map +0 -1
  185. package/lib/pkg/grpc/scalekit/v1/users/users_connect.d.ts +0 -173
  186. package/lib/pkg/grpc/scalekit/v1/users/users_connect.js +0 -181
  187. package/lib/pkg/grpc/scalekit/v1/users/users_connect.js.map +0 -1
  188. package/lib/tools.d.ts +0 -75
  189. package/lib/tools.js +0 -127
  190. package/lib/tools.js.map +0 -1
  191. package/src/connected-accounts.ts +0 -283
  192. package/src/pkg/grpc/scalekit/v1/auditlogs/auditlogs_connect.ts +0 -26
  193. package/src/pkg/grpc/scalekit/v1/auth/auth_connect.ts +0 -125
  194. package/src/pkg/grpc/scalekit/v1/auth/passwordless_connect.ts +0 -44
  195. package/src/pkg/grpc/scalekit/v1/auth/webauthn_connect.ts +0 -89
  196. package/src/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_connect.ts +0 -94
  197. package/src/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_pb.ts +0 -1294
  198. package/src/pkg/grpc/scalekit/v1/connections/connections_connect.ts +0 -179
  199. package/src/pkg/grpc/scalekit/v1/directories/directories_connect.ts +0 -161
  200. package/src/pkg/grpc/scalekit/v1/domains/domains_connect.ts +0 -80
  201. package/src/pkg/grpc/scalekit/v1/organizations/organizations_connect.ts +0 -178
  202. package/src/pkg/grpc/scalekit/v1/roles/roles_connect.ts +0 -257
  203. package/src/pkg/grpc/scalekit/v1/sessions/sessions_connect.ts +0 -53
  204. package/src/pkg/grpc/scalekit/v1/tools/tools_connect.ts +0 -82
  205. package/src/pkg/grpc/scalekit/v1/tools/tools_pb.ts +0 -847
  206. package/src/pkg/grpc/scalekit/v1/users/users_connect.ts +0 -180
  207. package/src/tools.ts +0 -166
  208. package/tests/connected-accounts.test.ts +0 -434
  209. package/tests/tools.test.ts +0 -239
@@ -1,70 +1,58 @@
1
- // @generated by protoc-gen-es v1.10.0 with parameter "target=ts"
1
+ // @generated by protoc-gen-es v2.11.0 with parameter "target=ts"
2
2
  // @generated from file scalekit/v1/roles/roles.proto (package scalekit.v1.roles, syntax proto3)
3
3
  /* eslint-disable */
4
- // @ts-nocheck
5
4
 
6
- import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf";
7
- import { Message, proto3, protoInt64, Timestamp } from "@bufbuild/protobuf";
5
+ import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
6
+ import { enumDesc, fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
7
+ import { file_buf_validate_validate } from "../../../buf/validate/validate_pb";
8
+ import { file_google_api_annotations } from "../../../google/api/annotations_pb";
9
+ import { file_google_api_field_behavior } from "../../../google/api/field_behavior_pb";
10
+ import { file_google_api_visibility } from "../../../google/api/visibility_pb";
11
+ import type { EmptySchema, Timestamp } from "@bufbuild/protobuf/wkt";
12
+ import { file_google_protobuf_empty, file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
13
+ import { file_protoc_gen_openapiv2_options_annotations } from "../../../protoc-gen-openapiv2/options/annotations_pb";
14
+ import { file_scalekit_v1_options_options } from "../options/options_pb";
15
+ import type { Message } from "@bufbuild/protobuf";
8
16
 
9
17
  /**
10
- * @generated from enum scalekit.v1.roles.PermissionType
18
+ * Describes the file scalekit/v1/roles/roles.proto.
11
19
  */
12
- export enum PermissionType {
13
- /**
14
- * @generated from enum value: ALL = 0;
15
- */
16
- ALL = 0,
17
-
18
- /**
19
- * @generated from enum value: SCALEKIT = 1;
20
- */
21
- SCALEKIT = 1,
22
-
23
- /**
24
- * @generated from enum value: ENVIRONMENT = 2;
25
- */
26
- ENVIRONMENT = 2,
27
- }
28
- // Retrieve enum metadata with: proto3.getEnumType(PermissionType)
29
- proto3.util.setEnumType(PermissionType, "scalekit.v1.roles.PermissionType", [
30
- { no: 0, name: "ALL" },
31
- { no: 1, name: "SCALEKIT" },
32
- { no: 2, name: "ENVIRONMENT" },
33
- ]);
20
+ export const file_scalekit_v1_roles_roles: GenFile = /*@__PURE__*/
21
+ fileDesc("Ch1zY2FsZWtpdC92MS9yb2xlcy9yb2xlcy5wcm90bxIRc2NhbGVraXQudjEucm9sZXMikQwKBFJvbGUSdQoCaWQYASABKAlCaZJBYzJIVW5pcXVlIHN5c3RlbS1nZW5lcmF0ZWQgaWRlbnRpZmllciBmb3IgdGhlIHJvbGUuIEltbXV0YWJsZSBvbmNlIGNyZWF0ZWQuShcicm9sZV8xMjM0YWJjZDU2NzhlZmdoIuBBAxKPAQoEbmFtZRgCIAEoCUKAAZJBcTJdVW5pcXVlIG5hbWUgaWRlbnRpZmllciBmb3IgdGhlIHJvbGUuIE11c3QgYmUgYWxwaGFudW1lcmljIHdpdGggdW5kZXJzY29yZXMsIDEtMTAwIGNoYXJhY3RlcnMuShAiY29udGVudF9lZGl0b3IiukgJyAEBcgQQARhkEocBCgxkaXNwbGF5X25hbWUYAyABKAlCcZJBYjJOSHVtYW4tcmVhZGFibGUgZGlzcGxheSBuYW1lIGZvciB0aGUgcm9sZS4gVXNlZCBpbiB1c2VyIGludGVyZmFjZXMgYW5kIHJlcG9ydHMuShAiQ29udGVudCBFZGl0b3IiukgJyAEBcgQQARhkErwBCgtkZXNjcmlwdGlvbhgEIAEoCUKmAZJBogEyVURldGFpbGVkIGRlc2NyaXB0aW9uIG9mIHRoZSByb2xlJ3MgcHVycG9zZSBhbmQgY2FwYWJpbGl0aWVzLiBNYXhpbXVtIDIwMDAgY2hhcmFjdGVycy5KSSJDYW4gY3JlYXRlLCBlZGl0LCBhbmQgcHVibGlzaCBjb250ZW50IGJ1dCBjYW5ub3QgZGVsZXRlIG9yIG1hbmFnZSB1c2VycyISbQoPZGVmYXVsdF9jcmVhdG9yGAYgASgIQlSSQVEySUluZGljYXRlcyBpZiB0aGlzIHJvbGUgaXMgdGhlIGRlZmF1bHQgY3JlYXRvciByb2xlIGZvciBuZXcgb3JnYW5pemF0aW9ucy5KBHRydWUSYwoOZGVmYXVsdF9tZW1iZXIYByABKAhCS5JBSDJASW5kaWNhdGVzIGlmIHRoaXMgcm9sZSBpcyB0aGUgZGVmYXVsdCBtZW1iZXIgcm9sZSBmb3IgbmV3IHVzZXJzLkoEdHJ1ZRKdAQoHZXh0ZW5kcxgIIAEoCUKGAZJBZDJUTmFtZSBvZiB0aGUgYmFzZSByb2xlIHRoYXQgdGhpcyByb2xlIGV4dGVuZHMuIEVuYWJsZXMgaGllcmFyY2hpY2FsIHJvbGUgaW5oZXJpdGFuY2UuSgwiYWRtaW5fcm9sZSK6SBxyGhABGGQyFF5bYS16QS1aMC05X117MSw2NH0kSACIAQES4gIKC3Blcm1pc3Npb25zGAkgAygLMiEuc2NhbGVraXQudjEucm9sZXMuUm9sZVBlcm1pc3Npb25CqQKSQaUCMnVMaXN0IG9mIHBlcm1pc3Npb25zIHdpdGggcm9sZSBzb3VyY2UgaW5mb3JtYXRpb24uIE9ubHkgaW5jbHVkZWQgd2hlbiAnaW5jbHVkZScgcGFyYW1ldGVyIGlzIHNwZWNpZmllZCBpbiB0aGUgcmVxdWVzdC5KqwFbeyJuYW1lIjogInJlYWQ6Y29udGVudCIsICJkZXNjcmlwdGlvbiI6ICJSZWFkIENvbnRlbnQiLCAicm9sZV9uYW1lIjogImFkbWluX3JvbGUifSwgeyJuYW1lIjogIndyaXRlOmNvbnRlbnQiLCAiZGVzY3JpcHRpb24iOiAiV3JpdGUgQ29udGVudCIsICJyb2xlX25hbWUiOiAiZWRpdG9yX3JvbGUifV0SewoVZGVwZW5kZW50X3JvbGVzX2NvdW50GAogASgFQlySQVkyVE51bWJlciBvZiByb2xlcyB0aGF0IGV4dGVuZCBmcm9tIHRoaXMgcm9sZSAoZGVwZW5kZW50IHJvbGVzIGNvdW50KS4gUmVhZC1vbmx5IGZpZWxkLkoBMxJPCgtpc19vcmdfcm9sZRgLIAEoCEI6kkE3Mi9JbmRpY2F0ZXMgaWYgdGhpcyByb2xlIGlzIGFuIG9yZ2FuaXphdGlvbiByb2xlLkoEdHJ1ZUIKCghfZXh0ZW5kc0oECAUQBiKYCQoKQ3JlYXRlUm9sZRLrAQoEbmFtZRgCIAEoCULcAZJBtgEyoQFVbmlxdWUgbmFtZSBpZGVudGlmaWVyIGZvciB0aGUgcm9sZS4gTXVzdCBiZSBhbHBoYW51bWVyaWMgd2l0aCB1bmRlcnNjb3JlcywgMS02NCBjaGFyYWN0ZXJzLiBUaGlzIG5hbWUgaXMgdXNlZCBpbiBBUEkgY2FsbHMgYW5kIGNhbm5vdCBiZSBjaGFuZ2VkIGFmdGVyIGNyZWF0aW9uLkoQImNvbnRlbnRfZWRpdG9yIrpIH8gBAXIaEAEYZDIUXlthLXpBLVowLTlfXXsxLDY0fSQSpQEKDGRpc3BsYXlfbmFtZRgDIAEoCUKOAZJBfzJrSHVtYW4tcmVhZGFibGUgZGlzcGxheSBuYW1lIGZvciB0aGUgcm9sZS4gVXNlZCBpbiB1c2VyIGludGVyZmFjZXMsIHJlcG9ydHMsIGFuZCB1c2VyLWZhY2luZyBjb21tdW5pY2F0aW9ucy5KECJDb250ZW50IEVkaXRvciK6SAnIAQFyBBABGGQS7gEKC2Rlc2NyaXB0aW9uGAQgASgJQtMBkkHHATJqRGV0YWlsZWQgZGVzY3JpcHRpb24gb2YgdGhlIHJvbGUncyBwdXJwb3NlLCBjYXBhYmlsaXRpZXMsIGFuZCBpbnRlbmRlZCB1c2UgY2FzZXMuIE1heGltdW0gMjAwMCBjaGFyYWN0ZXJzLkpZIkNhbiBjcmVhdGUsIGVkaXQsIGFuZCBwdWJsaXNoIGNvbnRlbnQgYnV0IGNhbm5vdCBkZWxldGUgY29udGVudCBvciBtYW5hZ2UgdXNlciBhY2NvdW50cyK6SAVyAxjQD0gAiAEBEtcBCgdleHRlbmRzGAggASgJQsABkkGdATKQAU5hbWUgb2YgdGhlIGJhc2Ugcm9sZSB0aGF0IHRoaXMgcm9sZSBleHRlbmRzLiBFbmFibGVzIGhpZXJhcmNoaWNhbCByb2xlIGluaGVyaXRhbmNlIHdoZXJlIHRoaXMgcm9sZSBpbmhlcml0cyBhbGwgcGVybWlzc2lvbnMgZnJvbSB0aGUgYmFzZSByb2xlLkoIInZpZXdlciK6SBxyGhABGGQyFF5bYS16QS1aMC05X117MSw2NH0kSAGIAQES+gEKC3Blcm1pc3Npb25zGAkgAygJQuQBkkG+ATKFAUxpc3Qgb2YgcGVybWlzc2lvbiBuYW1lcyB0byBhc3NpZ24gdG8gdGhpcyByb2xlLiBQZXJtaXNzaW9ucyBtdXN0IGV4aXN0IGluIHRoZSBjdXJyZW50IGVudmlyb25tZW50LiBNYXhpbXVtIDEwMCBwZXJtaXNzaW9ucyBwZXIgcm9sZS5KNFsicmVhZDpjb250ZW50IiwgIndyaXRlOmNvbnRlbnQiLCAicHVibGlzaDpjb250ZW50Il26SB+SARwQZCIYchYQARhAMhBeW2EtekEtWjAtOV86XSskQg4KDF9kZXNjcmlwdGlvbkIKCghfZXh0ZW5kc0oECAUQBkoECAYQB0oECAcQCCLuBQoWQ3JlYXRlT3JnYW5pemF0aW9uUm9sZRJuCgRuYW1lGAIgASgJQmCSQTsyJlVuaXF1ZSBuYW1lIG9mIHRoZSBvcmdhbml6YXRpb24ncyByb2xlShEib3JnX3ZpZXdlcl9yb2xlIrpIH8gBAXIaEAEYZDIUXlthLXpBLVowLTlfXXsxLDY0fSQSagoMZGlzcGxheV9uYW1lGAMgASgJQlSSQUUyJ0Rpc3BsYXkgbmFtZSBvZiB0aGUgb3JnYW5pemF0aW9uJ3Mgcm9sZUoaIk9yZ2FuaXphdGlvbiBWaWV3ZXIgUm9sZSK6SAnIAQFyBBABGGQSkwEKC2Rlc2NyaXB0aW9uGAQgASgJQnmSQW4yJkRlc2NyaXB0aW9uIG9mIHRoZSBvcmdhbml6YXRpb24ncyByb2xlSkQiT3JnYW5pemF0aW9uIFZpZXdlciBSb2xlIHdpbGwgYmUgdXNlZCBvbmx5IGZvciB2aWV3aW5nIHRoZSBvYmplY3RzIrpIBXIDGNAPSACIAQESbQoHZXh0ZW5kcxgIIAEoCUJXkkE1MiVCYXNlIHJvbGUgbmFtZSBmb3IgaGllcmFyY2hpY2FsIHJvbGVzSgwiYWRtaW5fcm9sZSK6SBxyGhABGGQyFF5bYS16QS1aMC05X117MSw2NH0kSAGIAQESxAEKC3Blcm1pc3Npb25zGAkgAygJQq4BkkGIATJjTGlzdCBvZiBwZXJtaXNzaW9uIG5hbWVzIHRvIGFzc2lnbiB0byB0aGlzIHJvbGUuIFBlcm1pc3Npb25zIG11c3QgZXhpc3QgaW4gdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQuSiFbInJlYWQ6dXNlcnMiLCAid3JpdGU6ZG9jdW1lbnRzIl26SB+SARwQZCIYchYQARhAMhBeW2EtekEtWjAtOV86XSskQg4KDF9kZXNjcmlwdGlvbkIKCghfZXh0ZW5kc0oECAUQBkoECAYQB0oECAcQCCLWAgoRQ3JlYXRlUm9sZVJlcXVlc3QSugIKBHJvbGUYAiABKAsyHS5zY2FsZWtpdC52MS5yb2xlcy5DcmVhdGVSb2xlQowCkkGCAjJsUm9sZSBjb25maWd1cmF0aW9uIGRldGFpbHMgaW5jbHVkaW5nIG5hbWUsIGRpc3BsYXkgbmFtZSwgZGVzY3JpcHRpb24sIHBlcm1pc3Npb25zLCBhbmQgaW5oZXJpdGFuY2Ugc2V0dGluZ3MuSpEBeyJuYW1lIjogImNvbnRlbnRfZWRpdG9yIiwgImRpc3BsYXlfbmFtZSI6ICJDb250ZW50IEVkaXRvciIsICJkZXNjcmlwdGlvbiI6ICJDYW4gZWRpdCBjb250ZW50IiwgInBlcm1pc3Npb25zIjogWyJyZWFkOmNvbnRlbnQiLCAid3JpdGU6Y29udGVudCJdfbpIA8gBAUoECAEQAiKUAgoSQ3JlYXRlUm9sZVJlc3BvbnNlEv0BCgRyb2xlGAEgASgLMhcuc2NhbGVraXQudjEucm9sZXMuUm9sZULVAZJB0QEyT1RoZSBjcmVhdGVkIHJvbGUgb2JqZWN0IHdpdGggc3lzdGVtLWdlbmVyYXRlZCBJRCBhbmQgYWxsIGNvbmZpZ3VyYXRpb24gZGV0YWlscy5KfnsiaWQiOiAicm9sZV8xMjM0YWJjZDU2NzhlZmdoIiwgIm5hbWUiOiAiY29udGVudF9lZGl0b3IiLCAiZGlzcGxheV9uYW1lIjogIkNvbnRlbnQgRWRpdG9yIiwgImRlc2NyaXB0aW9uIjogIkNhbiBlZGl0IGNvbnRlbnQifSLUAwoOR2V0Um9sZVJlcXVlc3QStAEKCXJvbGVfbmFtZRgCIAEoCUKgAZJBezJnVW5pcXVlIG5hbWUgaWRlbnRpZmllciBvZiB0aGUgcm9sZSB0byByZXRyaWV2ZS4gTXVzdCBiZSBhbHBoYW51bWVyaWMgd2l0aCB1bmRlcnNjb3JlcywgMS02NCBjaGFyYWN0ZXJzLkoQImNvbnRlbnRfZWRpdG9yIrpIH8gBAXIaEAEYZDIUXlthLXpBLVowLTlfXXsxLDY0fSQS+AEKB2luY2x1ZGUYAyABKAlC4QGSQbgBMqYBSW5jbHVkZSBhZGRpdGlvbmFsIGRhdGEgaW4gdGhlIHJlc3BvbnNlLiBWYWxpZCB2YWx1ZXM6ICdwZXJtaXNzaW9ucycgKGRpcmVjdCBwZXJtaXNzaW9ucyBvbmx5KSwgJ3Blcm1pc3Npb25zOmFsbCcgKGluY2x1ZGVzIGluaGVyaXRlZCBwZXJtaXNzaW9ucyBmcm9tIHJvbGUgaGllcmFyY2h5KUoNInBlcm1pc3Npb25zIrpIInIgUgBSC3Blcm1pc3Npb25zUg9wZXJtaXNzaW9uczphbGxIAIgBAUIKCghfaW5jbHVkZUoECAEQAiK4AgoPR2V0Um9sZVJlc3BvbnNlEqQCCgRyb2xlGAEgASgLMhcuc2NhbGVraXQudjEucm9sZXMuUm9sZUL8AZJB+AEyUVRoZSBjb21wbGV0ZSByb2xlIG9iamVjdCB3aXRoIGFsbCBtZXRhZGF0YSwgcGVybWlzc2lvbnMsIGFuZCBpbmhlcml0YW5jZSBkZXRhaWxzLkqiAXsiaWQiOiAicm9sZV8xMjM0YWJjZDU2NzhlZmdoIiwgIm5hbWUiOiAiY29udGVudF9lZGl0b3IiLCAiZGlzcGxheV9uYW1lIjogIkNvbnRlbnQgRWRpdG9yIiwgInBlcm1pc3Npb25zIjogW3sibmFtZSI6ICJyZWFkOmNvbnRlbnQifV0sICJkZXBlbmRlbnRfcm9sZXNfY291bnQiOiAyfSKfAgoQTGlzdFJvbGVzUmVxdWVzdBL4AQoHaW5jbHVkZRgCIAEoCULhAZJBuAEypgFJbmNsdWRlIGFkZGl0aW9uYWwgZGF0YSBpbiB0aGUgcmVzcG9uc2UuIFZhbGlkIHZhbHVlczogJ3Blcm1pc3Npb25zJyAoZGlyZWN0IHBlcm1pc3Npb25zIG9ubHkpLCAncGVybWlzc2lvbnM6YWxsJyAoaW5jbHVkZXMgaW5oZXJpdGVkIHBlcm1pc3Npb25zIGZyb20gcm9sZSBoaWVyYXJjaHkpSg0icGVybWlzc2lvbnMiukgiciBSAFILcGVybWlzc2lvbnNSD3Blcm1pc3Npb25zOmFsbEgAiAEBQgoKCF9pbmNsdWRlSgQIARACIsICChFMaXN0Um9sZXNSZXNwb25zZRKsAgoFcm9sZXMYASADKAsyFy5zY2FsZWtpdC52MS5yb2xlcy5Sb2xlQoMCkkH/ATJaTGlzdCBvZiBhbGwgcm9sZXMgaW4gdGhlIGVudmlyb25tZW50IHdpdGggdGhlaXIgbWV0YWRhdGEgYW5kIG9wdGlvbmFsbHkgdGhlaXIgcGVybWlzc2lvbnMuSqABW3siaWQiOiAicm9sZV8xMjM0YWJjZDU2NzhlZmdoIiwgIm5hbWUiOiAiYWRtaW4iLCAiZGlzcGxheV9uYW1lIjogIkFkbWluaXN0cmF0b3IifSwgeyJpZCI6ICJyb2xlXzk4NzZ6eXh3NTQzMnZ1dHMiLCAibmFtZSI6ICJ2aWV3ZXIiLCAiZGlzcGxheV9uYW1lIjogIlZpZXdlciJ9XSKtCAoKVXBkYXRlUm9sZRKvAQoMZGlzcGxheV9uYW1lGAEgASgJQpMBkkGGATJrSHVtYW4tcmVhZGFibGUgZGlzcGxheSBuYW1lIGZvciB0aGUgcm9sZS4gVXNlZCBpbiB1c2VyIGludGVyZmFjZXMsIHJlcG9ydHMsIGFuZCB1c2VyLWZhY2luZyBjb21tdW5pY2F0aW9ucy5KFyJTZW5pb3IgQ29udGVudCBFZGl0b3IiukgGcgQQARhkSACIAQES9wEKC2Rlc2NyaXB0aW9uGAIgASgJQtwBkkHOATJqRGV0YWlsZWQgZGVzY3JpcHRpb24gb2YgdGhlIHJvbGUncyBwdXJwb3NlLCBjYXBhYmlsaXRpZXMsIGFuZCBpbnRlbmRlZCB1c2UgY2FzZXMuIE1heGltdW0gMjAwMCBjaGFyYWN0ZXJzLkpgIkNhbiBjcmVhdGUsIGVkaXQsIHB1Ymxpc2gsIGFuZCBhcHByb3ZlIGNvbnRlbnQuIENhbm5vdCBkZWxldGUgY29udGVudCBvciBtYW5hZ2UgdXNlciBhY2NvdW50cy4iukgHcgUQARjQD0gBiAEBEt8BCgdleHRlbmRzGAYgASgJQsgBkkGlATKQAU5hbWUgb2YgdGhlIGJhc2Ugcm9sZSB0aGF0IHRoaXMgcm9sZSBleHRlbmRzLiBFbmFibGVzIGhpZXJhcmNoaWNhbCByb2xlIGluaGVyaXRhbmNlIHdoZXJlIHRoaXMgcm9sZSBpbmhlcml0cyBhbGwgcGVybWlzc2lvbnMgZnJvbSB0aGUgYmFzZSByb2xlLkoQImNvbnRlbnRfZWRpdG9yIrpIHHIaEAEYZDIUXlthLXpBLVowLTlfXXsxLDY0fSRIAogBARLRAgoLcGVybWlzc2lvbnMYByADKAlCuwKSQZUCMskBTGlzdCBvZiBwZXJtaXNzaW9uIG5hbWVzIHRvIGFzc2lnbiB0byB0aGlzIHJvbGUuIFdoZW4gcHJvdmlkZWQsIHRoaXMgcmVwbGFjZXMgYWxsIGV4aXN0aW5nIHJvbGUtcGVybWlzc2lvbiBtYXBwaW5ncy4gUGVybWlzc2lvbnMgbXVzdCBleGlzdCBpbiB0aGUgY3VycmVudCBlbnZpcm9ubWVudC4gTWF4aW11bSAxMDAgcGVybWlzc2lvbnMgcGVyIHJvbGUuSkdbInJlYWQ6Y29udGVudCIsICJ3cml0ZTpjb250ZW50IiwgInB1Ymxpc2g6Y29udGVudCIsICJhcHByb3ZlOmNvbnRlbnQiXbpIH5IBHBBkIhhyFhABGEAyEF5bYS16QS1aMC05XzpdKyRCDwoNX2Rpc3BsYXlfbmFtZUIOCgxfZGVzY3JpcHRpb25CCgoIX2V4dGVuZHNKBAgDEARKBAgEEAVKBAgFEAYimwMKEVVwZGF0ZVJvbGVSZXF1ZXN0ErIBCglyb2xlX25hbWUYAiABKAlCngGSQXkyZVVuaXF1ZSBuYW1lIGlkZW50aWZpZXIgb2YgdGhlIHJvbGUgdG8gdXBkYXRlLiBNdXN0IGJlIGFscGhhbnVtZXJpYyB3aXRoIHVuZGVyc2NvcmVzLCAxLTY0IGNoYXJhY3RlcnMuShAiY29udGVudF9lZGl0b3IiukgfyAEBchoQARhkMhReW2EtekEtWjAtOV9dezEsNjR9JBLKAQoEcm9sZRgDIAEoCzIdLnNjYWxla2l0LnYxLnJvbGVzLlVwZGF0ZVJvbGVCnAGSQZIBMj5Sb2xlIGZpZWxkcyB0byB1cGRhdGUuIE9ubHkgc3BlY2lmaWVkIGZpZWxkcyB3aWxsIGJlIG1vZGlmaWVkLkpQeyJkaXNwbGF5X25hbWUiOiAiU2VuaW9yIEVkaXRvciIsICJkZXNjcmlwdGlvbiI6ICJDYW4gZWRpdCBhbmQgYXBwcm92ZSBjb250ZW50In26SAPIAQFKBAgBEAIikAIKElVwZGF0ZVJvbGVSZXNwb25zZRL5AQoEcm9sZRgBIAEoCzIXLnNjYWxla2l0LnYxLnJvbGVzLlJvbGVC0QGSQc0BMj9UaGUgdXBkYXRlZCByb2xlIG9iamVjdCB3aXRoIGFsbCBjdXJyZW50IGNvbmZpZ3VyYXRpb24gZGV0YWlscy5KiQF7ImlkIjogInJvbGVfMTIzNGFiY2Q1Njc4ZWZnaCIsICJuYW1lIjogImNvbnRlbnRfZWRpdG9yIiwgImRpc3BsYXlfbmFtZSI6ICJTZW5pb3IgRWRpdG9yIiwgImRlc2NyaXB0aW9uIjogIkNhbiBlZGl0IGFuZCBhcHByb3ZlIGNvbnRlbnQifSKOBAoRRGVsZXRlUm9sZVJlcXVlc3QSrAEKCXJvbGVfbmFtZRgCIAEoCUKYAZJBczJlVW5pcXVlIG5hbWUgaWRlbnRpZmllciBvZiB0aGUgcm9sZSB0byBkZWxldGUuIE11c3QgYmUgYWxwaGFudW1lcmljIHdpdGggdW5kZXJzY29yZXMsIDEtNjQgY2hhcmFjdGVycy5KCiJvbGRfcm9sZSK6SB/IAQFyGhABGGQyFF5bYS16QS1aMC05X117MSw2NH0kEooBChByZWFzc2lnbl9yb2xlX2lkGAMgASgJQmsYAZJBRzI2Um9sZSBuYW1lIHRvIHJlYXNzaWduIHVzZXJzIHRvIHdoZW4gZGVsZXRpbmcgdGhpcyByb2xlSg0ibWVtYmVyX3JvbGUiukgcchoQARhkMhReW2EtekEtWjAtOV9dezEsNjR9JEgAiAEBEooBChJyZWFzc2lnbl9yb2xlX25hbWUYBCABKAlCaZJBRzI2Um9sZSBuYW1lIHRvIHJlYXNzaWduIHVzZXJzIHRvIHdoZW4gZGVsZXRpbmcgdGhpcyByb2xlSg0ibWVtYmVyX3JvbGUiukgcchoQARhkMhReW2EtekEtWjAtOV9dezEsNjR9JEgBiAEBQhMKEV9yZWFzc2lnbl9yb2xlX2lkQhUKE19yZWFzc2lnbl9yb2xlX25hbWVKBAgBEAIi3wEKHUNyZWF0ZU9yZ2FuaXphdGlvblJvbGVSZXF1ZXN0El8KBm9yZ19pZBgBIAEoCUJPkkE+MiVVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgb3JnYW5pemF0aW9uShUib3JnXzEyMTMxMjQzNDEyMzMxMiK6SAtyCRABGCA6A29yZxJdCgRyb2xlGAIgASgLMikuc2NhbGVraXQudjEucm9sZXMuQ3JlYXRlT3JnYW5pemF0aW9uUm9sZUIkkkEbMhlPcmdhbml6YXRpb24gcm9sZSBkZXRhaWxzukgDyAEBIkcKHkNyZWF0ZU9yZ2FuaXphdGlvblJvbGVSZXNwb25zZRIlCgRyb2xlGAEgASgLMhcuc2NhbGVraXQudjEucm9sZXMuUm9sZSLRAwoaR2V0T3JnYW5pemF0aW9uUm9sZVJlcXVlc3QSXwoGb3JnX2lkGAEgASgJQk+SQT4yJVVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBvcmdhbml6YXRpb25KFSJvcmdfMTIxMzEyNDM0MTIzMzEyIrpIC3IJEAEYIDoDb3JnEl8KCXJvbGVfbmFtZRgCIAEoCUJMkkEnMhdVbmlxdWUgbmFtZSBvZiB0aGUgcm9sZUoMImFkbWluX3JvbGUiukgfyAEBchoQARhkMhReW2EtekEtWjAtOV9dezEsNjR9JBLkAQoHaW5jbHVkZRgDIAEoCULNAZJBpAEykgFJbmNsdWRlIGFkZGl0aW9uYWwgZGF0YSBpbiB0aGUgcmVzcG9uc2UuIFZhbGlkIHZhbHVlczogJ3Blcm1pc3Npb25zJyAoZGlyZWN0IHBlcm1pc3Npb25zIG9ubHkpLCAncGVybWlzc2lvbnM6YWxsJyAoaW5jbHVkZXMgaW5oZXJpdGVkIHBlcm1pc3Npb25zKUoNInBlcm1pc3Npb25zIrpIInIgUgBSC3Blcm1pc3Npb25zUg9wZXJtaXNzaW9uczphbGxIAIgBAUIKCghfaW5jbHVkZSJEChtHZXRPcmdhbml6YXRpb25Sb2xlUmVzcG9uc2USJQoEcm9sZRgBIAEoCzIXLnNjYWxla2l0LnYxLnJvbGVzLlJvbGUi0gQKHExpc3RPcmdhbml6YXRpb25Sb2xlc1JlcXVlc3QSYgoGb3JnX2lkGAEgASgJQlKSQT4yJVVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBvcmdhbml6YXRpb25KFSJvcmdfMTIxMzEyNDM0MTIzMzEyIrpIDsgBAXIJEAEYIDoDb3JnEuQBCgdpbmNsdWRlGAIgASgJQs0BkkGkATKSAUluY2x1ZGUgYWRkaXRpb25hbCBkYXRhIGluIHRoZSByZXNwb25zZS4gVmFsaWQgdmFsdWVzOiAncGVybWlzc2lvbnMnIChkaXJlY3QgcGVybWlzc2lvbnMgb25seSksICdwZXJtaXNzaW9uczphbGwnIChpbmNsdWRlcyBpbmhlcml0ZWQgcGVybWlzc2lvbnMpSg0icGVybWlzc2lvbnMiukgiciBSAFILcGVybWlzc2lvbnNSD3Blcm1pc3Npb25zOmFsbEgAiAEBOtoBkkHWAQqwASoXTGlzdCBvcmdhbml6YXRpb24gcm9sZXMyiwFSZXRyaWV2ZXMgYSBwYWdpbmF0ZWQgbGlzdCBvZiBhbGwgcm9sZXMgd2l0aGluIHRoZSBvcmdhbml6YXRpb24uIFVzZSB0aGUgcGFnZV90b2tlbiBmcm9tIHRoZSByZXNwb25zZSB0byBhY2Nlc3Mgc3Vic2VxdWVudCBwYWdlcyBvZiByZXN1bHRz0gEGb3JnX2lkMiF7Im9yZ19pZCIgOiAib3JnXzg3NTY4NjU2ODU3NjIiIH1CCgoIX2luY2x1ZGUiYwodTGlzdE9yZ2FuaXphdGlvblJvbGVzUmVzcG9uc2USQgoFcm9sZXMYASADKAsyFy5zY2FsZWtpdC52MS5yb2xlcy5Sb2xlQhqSQRcyFUxpc3Qgb2Ygcm9sZXMgb2JqZWN0cyK0AgodVXBkYXRlT3JnYW5pemF0aW9uUm9sZVJlcXVlc3QSXwoGb3JnX2lkGAEgASgJQk+SQT4yJVVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBvcmdhbml6YXRpb25KFSJvcmdfMTIxMzEyNDM0MTIzMzEyIrpIC3IJEAEYIDoDb3JnEl8KCXJvbGVfbmFtZRgCIAEoCUJMkkEnMhdVbmlxdWUgbmFtZSBvZiB0aGUgcm9sZUoMImFkbWluX3JvbGUiukgfyAEBchoQARhkMhReW2EtekEtWjAtOV9dezEsNjR9JBJRCgRyb2xlGAMgASgLMh0uc2NhbGVraXQudjEucm9sZXMuVXBkYXRlUm9sZUIkkkEbMhlPcmdhbml6YXRpb24gcm9sZSBkZXRhaWxzukgDyAEBIkcKHlVwZGF0ZU9yZ2FuaXphdGlvblJvbGVSZXNwb25zZRIlCgRyb2xlGAEgASgLMhcuc2NhbGVraXQudjEucm9sZXMuUm9sZSKFAwodRGVsZXRlT3JnYW5pemF0aW9uUm9sZVJlcXVlc3QSXwoGb3JnX2lkGAEgASgJQk+SQT4yJVVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBvcmdhbml6YXRpb25KFSJvcmdfMTIxMzEyNDM0MTIzMzEyIrpIC3IJEAEYIDoDb3JnEl8KCXJvbGVfbmFtZRgCIAEoCUJMkkEnMhdVbmlxdWUgbmFtZSBvZiB0aGUgcm9sZUoMImFkbWluX3JvbGUiukgfyAEBchoQARhkMhReW2EtekEtWjAtOV9dezEsNjR9JBKKAQoScmVhc3NpZ25fcm9sZV9uYW1lGAMgASgJQmmSQUcyNlJvbGUgbmFtZSB0byByZWFzc2lnbiB1c2VycyB0byB3aGVuIGRlbGV0aW5nIHRoaXMgcm9sZUoNIm1lbWJlcl9yb2xlIrpIHHIaEAEYZDIUXlthLXpBLVowLTlfXXsxLDY0fSRIAIgBAUIVChNfcmVhc3NpZ25fcm9sZV9uYW1lIoEBChhHZXRSb2xlVXNlcnNDb3VudFJlcXVlc3QSXwoJcm9sZV9uYW1lGAIgASgJQkySQScyF1VuaXF1ZSBuYW1lIG9mIHRoZSByb2xlSgwiYWRtaW5fcm9sZSK6SB/IAQFyGhABGGQyFF5bYS16QS1aMC05X117MSw2NH0kSgQIARACImQKGUdldFJvbGVVc2Vyc0NvdW50UmVzcG9uc2USRwoFY291bnQYASABKANCOJJBLjIoTnVtYmVyIG9mIHVzZXJzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcm9sZUoCMTC6SAQaAiAAIu4BCiRHZXRPcmdhbml6YXRpb25Sb2xlVXNlcnNDb3VudFJlcXVlc3QSWAoGb3JnX2lkGAEgASgJQkiSQTkyJVVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBvcmdhbml6YXRpb25KECJvcmdfMTIzNDU2Nzg5MCK6SAnIAQFyBBABGGQSbAoJcm9sZV9uYW1lGAIgASgJQlmSQTQyJFVuaXF1ZSBuYW1lIG9mIHRoZSBvcmdhbml6YXRpb24gcm9sZUoMImFkbWluX3JvbGUiukgfyAEBchoQARhkMhReW2EtekEtWjAtOV9dezEsNjR9JCJ8CiVHZXRPcmdhbml6YXRpb25Sb2xlVXNlcnNDb3VudFJlc3BvbnNlElMKBWNvdW50GAEgASgDQkSSQToyNU51bWJlciBvZiB1c2VycyBhc3NvY2lhdGVkIHdpdGggdGhlIG9yZ2FuaXphdGlvbiByb2xlSgE1ukgEGgIgACKqCQoZVXBkYXRlRGVmYXVsdFJvbGVzUmVxdWVzdBKOAgoPZGVmYXVsdF9jcmVhdG9yGAIgASgLMiQuc2NhbGVraXQudjEucm9sZXMuVXBkYXRlRGVmYXVsdFJvbGVCzgEYAZJByAEySkRlZmF1bHQgY3JlYXRvciByb2xlIChkZXByZWNhdGVkIC0gdXNlIGRlZmF1bHRfY3JlYXRvcl9yb2xlIGZpZWxkIGluc3RlYWQpSnp7ImlkIjogInJvbGVfMTIzNDU2Nzg5MCIsICJuYW1lIjogImNyZWF0b3IiLCAiZGlzcGxheV9uYW1lIjogIkNyZWF0b3IgUm9sZSIsICJkZXNjcmlwdGlvbiI6ICJSb2xlIGZvciBjcmVhdGluZyByZXNvdXJjZXMifRKGAgoOZGVmYXVsdF9tZW1iZXIYAyABKAsyJC5zY2FsZWtpdC52MS5yb2xlcy5VcGRhdGVEZWZhdWx0Um9sZULHARgBkkHBATJIRGVmYXVsdCBtZW1iZXIgcm9sZSAoZGVwcmVjYXRlZCAtIHVzZSBkZWZhdWx0X21lbWJlcl9yb2xlIGZpZWxkIGluc3RlYWQpSnV7ImlkIjogInJvbGVfMDk4NzY1NDMyMSIsICJuYW1lIjogIm1lbWJlciIsICJkaXNwbGF5X25hbWUiOiAiTWVtYmVyIFJvbGUiLCAiZGVzY3JpcHRpb24iOiAiUm9sZSBmb3IgcmVndWxhciBtZW1iZXJzIn0SogIKFGRlZmF1bHRfY3JlYXRvcl9yb2xlGAQgASgJQv4BkkHbATLNAU5hbWUgb2YgdGhlIHJvbGUgdG8gc2V0IGFzIHRoZSBkZWZhdWx0IGNyZWF0b3Igcm9sZS4gVGhpcyByb2xlIHdpbGwgYmUgYXV0b21hdGljYWxseSBhc3NpZ25lZCB0byB1c2VycyB3aG8gY3JlYXRlIG5ldyByZXNvdXJjZXMgaW4gdGhlIGVudmlyb25tZW50LiBNdXN0IGJlIGEgdmFsaWQgcm9sZSBuYW1lIHRoYXQgZXhpc3RzIGluIHRoZSBlbnZpcm9ubWVudC5KCSJjcmVhdG9yIrpIHHIaEAAYZDIUXlthLXpBLVowLTlfXXsxLDY0fSRIAIgBARKWAgoTZGVmYXVsdF9tZW1iZXJfcm9sZRgFIAEoCULzAZJB0AEywwFOYW1lIG9mIHRoZSByb2xlIHRvIHNldCBhcyB0aGUgZGVmYXVsdCBtZW1iZXIgcm9sZS4gVGhpcyByb2xlIHdpbGwgYmUgYXV0b21hdGljYWxseSBhc3NpZ25lZCB0byBuZXcgdXNlcnMgd2hlbiB0aGV5IGpvaW4gdGhlIGVudmlyb25tZW50LiBNdXN0IGJlIGEgdmFsaWQgcm9sZSBuYW1lIHRoYXQgZXhpc3RzIGluIHRoZSBlbnZpcm9ubWVudC5KCCJtZW1iZXIiukgcchoQABhkMhReW2EtekEtWjAtOV9dezEsNjR9JEgBiAEBQhcKFV9kZWZhdWx0X2NyZWF0b3Jfcm9sZUIWChRfZGVmYXVsdF9tZW1iZXJfcm9sZUoECAEQAiKBAgolVXBkYXRlRGVmYXVsdE9yZ2FuaXphdGlvblJvbGVzUmVxdWVzdBJiCgZvcmdfaWQYASABKAlCUpJBPjIlVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIG9yZ2FuaXphdGlvbkoVIm9yZ18xMjEzMTI0MzQxMjMzMTIiukgOyAEBcgkQARggOgNvcmcSdAoTZGVmYXVsdF9tZW1iZXJfcm9sZRgCIAEoCUJXkkEyMiZVbmlxdWUgbmFtZSBvZiB0aGUgZGVmYXVsdCBtZW1iZXIgcm9sZUoIIm1lbWJlciK6SB/IAQFyGhABGGQyFF5bYS16QS1aMC05X117MSw2NH0kIqcFChpVcGRhdGVEZWZhdWx0Um9sZXNSZXNwb25zZRLGAgoPZGVmYXVsdF9jcmVhdG9yGAEgASgLMhcuc2NhbGVraXQudjEucm9sZXMuUm9sZUKTApJBjwIykAFUaGUgcm9sZSB0aGF0IGlzIG5vdyBzZXQgYXMgdGhlIGRlZmF1bHQgY3JlYXRvciByb2xlIGZvciB0aGUgZW52aXJvbm1lbnQuIENvbnRhaW5zIGNvbXBsZXRlIHJvbGUgaW5mb3JtYXRpb24gaW5jbHVkaW5nIHBlcm1pc3Npb25zIGFuZCBtZXRhZGF0YS5KensiaWQiOiAicm9sZV8xMjM0NTY3ODkwIiwgIm5hbWUiOiAiY3JlYXRvciIsICJkaXNwbGF5X25hbWUiOiAiQ3JlYXRvciBSb2xlIiwgImRlc2NyaXB0aW9uIjogIlJvbGUgZm9yIGNyZWF0aW5nIHJlc291cmNlcyJ9Er8CCg5kZWZhdWx0X21lbWJlchgCIAEoCzIXLnNjYWxla2l0LnYxLnJvbGVzLlJvbGVCjQKSQYkCMo8BVGhlIHJvbGUgdGhhdCBpcyBub3cgc2V0IGFzIHRoZSBkZWZhdWx0IG1lbWJlciByb2xlIGZvciB0aGUgZW52aXJvbm1lbnQuIENvbnRhaW5zIGNvbXBsZXRlIHJvbGUgaW5mb3JtYXRpb24gaW5jbHVkaW5nIHBlcm1pc3Npb25zIGFuZCBtZXRhZGF0YS5KdXsiaWQiOiAicm9sZV8wOTg3NjU0MzIxIiwgIm5hbWUiOiAibWVtYmVyIiwgImRpc3BsYXlfbmFtZSI6ICJNZW1iZXIgUm9sZSIsICJkZXNjcmlwdGlvbiI6ICJSb2xlIGZvciByZWd1bGFyIG1lbWJlcnMifSL1AQomVXBkYXRlRGVmYXVsdE9yZ2FuaXphdGlvblJvbGVzUmVzcG9uc2USygEKDmRlZmF1bHRfbWVtYmVyGAIgASgLMhcuc2NhbGVraXQudjEucm9sZXMuUm9sZUKYAZJBlAEyG1VwZGF0ZWQgZGVmYXVsdCBtZW1iZXIgcm9sZUp1eyJpZCI6ICJyb2xlXzA5ODc2NTQzMjEiLCAibmFtZSI6ICJtZW1iZXIiLCAiZGlzcGxheV9uYW1lIjogIk1lbWJlciBSb2xlIiwgImRlc2NyaXB0aW9uIjogIlJvbGUgZm9yIHJlZ3VsYXIgbWVtYmVycyJ9IpQBChFVcGRhdGVEZWZhdWx0Um9sZRIbCgJpZBgBIAEoCUIPukgMcgoQARggOgRyb2xlElkKBG5hbWUYAiABKAlCRpJBJDIXVW5pcXVlIG5hbWUgb2YgdGhlIHJvbGVKCSJjcmVhdG9yIrpIHHIaEAAYZDIUXlthLXpBLVowLTlfXXsxLDY0fSRIAIgBAUIHCgVfbmFtZSLAAgoKUGVybWlzc2lvbhIbCgJpZBgBIAEoCUIPukgMcgoQARggOgRwZXJtEiwKBG5hbWUYAiABKAlCHrpIG8gBAXIWEAEYZDIQXlthLXpBLVowLTlfOl0rJBIdCgtkZXNjcmlwdGlvbhgDIAEoCUIIukgFcgMY0A8SLwoLY3JlYXRlX3RpbWUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi8KC3VwZGF0ZV90aW1lGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJmChZpc19zY2FsZWtpdF9wZXJtaXNzaW9uGAYgASgIQkaSQUMyO0luZGljYXRlcyB3aGV0aGVyIHRoaXMgcGVybWlzc2lvbiBpcyBwcmVkZWZpbmVkIGJ5IFNjYWxla2l0SgR0cnVlIt0CCg5Sb2xlUGVybWlzc2lvbhIbCgJpZBgBIAEoCUIPukgMcgoQARggOgRwZXJtEiwKBG5hbWUYAiABKAlCHrpIG8gBAXIWEAEYZDIQXlthLXpBLVowLTlfOl0rJBIdCgtkZXNjcmlwdGlvbhgDIAEoCUIIukgFcgMY0A8SLwoLY3JlYXRlX3RpbWUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi8KC3VwZGF0ZV90aW1lGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJ/Cglyb2xlX25hbWUYBiABKAlCbJJBRzI3TmFtZSBvZiB0aGUgcm9sZSBmcm9tIHdoaWNoIHRoaXMgcGVybWlzc2lvbiB3YXMgc291cmNlZEoMImFkbWluX3JvbGUiukgfyAEBchoQARhkMhReW2EtekEtWjAtOV9dezEsNjR9JCLuAQoQQ3JlYXRlUGVybWlzc2lvbhJoCgRuYW1lGAEgASgJQlqSQTQyIFVuaXF1ZSBuYW1lL0lEIG9mIHRoZSBwZXJtaXNzaW9uShAicmVhZDpkb2N1bWVudHMiukggyAEBchsQARhkMhVeW2EtekEtWjAtOV86XXsxLDY0fSQScAoLZGVzY3JpcHRpb24YAiABKAlCW5JBUDIdRGVzY3JpcHRpb24gb2YgdGhlIHBlcm1pc3Npb25KLyJBbGxvd3MgdXNlciB0byByZWFkIGRvY3VtZW50cyBmcm9tIHRoZSBzeXN0ZW0iukgFcgMY0A8iWgoXQ3JlYXRlUGVybWlzc2lvblJlcXVlc3QSPwoKcGVybWlzc2lvbhgBIAEoCzIjLnNjYWxla2l0LnYxLnJvbGVzLkNyZWF0ZVBlcm1pc3Npb25CBrpIA8gBASJNChhDcmVhdGVQZXJtaXNzaW9uUmVzcG9uc2USMQoKcGVybWlzc2lvbhgBIAEoCzIdLnNjYWxla2l0LnYxLnJvbGVzLlBlcm1pc3Npb24ieAoUR2V0UGVybWlzc2lvblJlcXVlc3QSYAoPcGVybWlzc2lvbl9uYW1lGAEgASgJQkeSQSYyFk5hbWUgb2YgdGhlIHBlcm1pc3Npb25KDCJyZWFkOnVzZXJzIrpIG8gBAXIWEAEYQDIQXlthLXpBLVowLTlfOl0rJCJKChVHZXRQZXJtaXNzaW9uUmVzcG9uc2USMQoKcGVybWlzc2lvbhgBIAEoCzIdLnNjYWxla2l0LnYxLnJvbGVzLlBlcm1pc3Npb24ivAEKF1VwZGF0ZVBlcm1pc3Npb25SZXF1ZXN0EmAKD3Blcm1pc3Npb25fbmFtZRgBIAEoCUJHkkEmMhZOYW1lIG9mIHRoZSBwZXJtaXNzaW9uSgwicmVhZF91c2VycyK6SBvIAQFyFhABGEAyEF5bYS16QS1aMC05XzpdKyQSPwoKcGVybWlzc2lvbhgDIAEoCzIjLnNjYWxla2l0LnYxLnJvbGVzLkNyZWF0ZVBlcm1pc3Npb25CBrpIA8gBASJNChhVcGRhdGVQZXJtaXNzaW9uUmVzcG9uc2USMQoKcGVybWlzc2lvbhgBIAEoCzIdLnNjYWxla2l0LnYxLnJvbGVzLlBlcm1pc3Npb24i7gMKFkxpc3RQZXJtaXNzaW9uc1JlcXVlc3QSWQoKcGFnZV90b2tlbhgBIAEoCUJAkkE9MitQYWdlIHRva2VuIHRvIHJldHJpZXZlIG5leHQgcGFnZSBvZiByZXN1bHRzSg4idG9rZW5fYWJjMTIzIkgAiAEBElwKCXBhZ2Vfc2l6ZRgCIAEoDUJEkkE4MjJOdW1iZXIgb2YgcGVybWlzc2lvbnMgdG8gcmV0dXJuIHBlciBwYWdlIChtYXggMTAwKUoCNTC6SAYqBBhkKAFIAYgBARL9AQoEdHlwZRgDIAEoDjIhLnNjYWxla2l0LnYxLnJvbGVzLlBlcm1pc3Npb25UeXBlQssBkkHHATK/AUZpbHRlciBwZXJtaXNzaW9ucyBieSB0eXBlOiBBTEwsIFNDQUxFS0lULCBvciBFTlZJUk9OTUVOVCwgd2hlcmUgU0NBTEVLSVQgYXJlIHByZWRlZmluZWQgU2NhbGVraXQgcGVybWlzc2lvbnMgYW5kIEVOVklST05NRU5UIGFyZSBjdXN0b20gcGVybWlzc2lvbnMgY3JlYXRlZCBpbiB0aGUgZW52aXJvbm1lbnQsIGRlZmF1bHQgaXMgQUxMSgNBTExCDQoLX3BhZ2VfdG9rZW5CDAoKX3BhZ2Vfc2l6ZSLCAgoXTGlzdFBlcm1pc3Npb25zUmVzcG9uc2USMgoLcGVybWlzc2lvbnMYASADKAsyHS5zY2FsZWtpdC52MS5yb2xlcy5QZXJtaXNzaW9uElgKD3ByZXZfcGFnZV90b2tlbhgCIAEoCUI/kkE8MipUb2tlbiB0byByZXRyaWV2ZSBwcmV2aW91cyBwYWdlIG9mIHJlc3VsdHNKDiJ0b2tlbl9kZWY0NTYiElQKD25leHRfcGFnZV90b2tlbhgDIAEoCUI7kkE4MiZUb2tlbiB0byByZXRyaWV2ZSBuZXh0IHBhZ2Ugb2YgcmVzdWx0c0oOInRva2VuX2RlZjQ1NiISQwoKdG90YWxfc2l6ZRgEIAEoDUIvkkEsMiVUb3RhbCBudW1iZXIgb2YgcGVybWlzc2lvbnMgYXZhaWxhYmxlSgMxNTAiewoXRGVsZXRlUGVybWlzc2lvblJlcXVlc3QSYAoPcGVybWlzc2lvbl9uYW1lGAEgASgJQkeSQSYyFk5hbWUgb2YgdGhlIHBlcm1pc3Npb25KDCJyZWFkX3VzZXJzIrpIG8gBAXIWEAEYQDIQXlthLXpBLVowLTlfOl0rJCJrChpMaXN0Um9sZVBlcm1pc3Npb25zUmVxdWVzdBJNCglyb2xlX25hbWUYASABKAlCOpJBGTIQTmFtZSBvZiB0aGUgcm9sZUoFYWRtaW66SBvIAQFyFhABGEAyEF5bYS16QS1aMC05Xy1dKyQiiQEKG0xpc3RSb2xlUGVybWlzc2lvbnNSZXNwb25zZRJqCgtwZXJtaXNzaW9ucxgBIAMoCzIdLnNjYWxla2l0LnYxLnJvbGVzLlBlcm1pc3Npb25CNpJBMzIxTGlzdCBvZiBwZXJtaXNzaW9ucyBkaXJlY3RseSBhc3NpZ25lZCB0byB0aGUgcm9sZSLfAQobQWRkUGVybWlzc2lvbnNUb1JvbGVSZXF1ZXN0Ek0KCXJvbGVfbmFtZRgBIAEoCUI6kkEZMhBOYW1lIG9mIHRoZSByb2xlSgVhZG1pbrpIG8gBAXIWEAEYQDIQXlthLXpBLVowLTlfOl0rJBJxChBwZXJtaXNzaW9uX25hbWVzGAIgAygJQleSQS0yK0xpc3Qgb2YgcGVybWlzc2lvbiBuYW1lcyB0byBhZGQgdG8gdGhlIHJvbGW6SCTIAQGSAR4IARBkIhhyFhABGEAyEF5bYS16QS1aMC05XzpdKyQilQEKHEFkZFBlcm1pc3Npb25zVG9Sb2xlUmVzcG9uc2USdQoLcGVybWlzc2lvbnMYASADKAsyHS5zY2FsZWtpdC52MS5yb2xlcy5QZXJtaXNzaW9uQkGSQT4yPExpc3Qgb2YgYWxsIHBlcm1pc3Npb25zIGJlbG9uZ2luZyB0byB0aGUgcm9sZSBhZnRlciBhZGRpdGlvbiLZAQofUmVtb3ZlUGVybWlzc2lvbkZyb21Sb2xlUmVxdWVzdBJMCglyb2xlX25hbWUYASABKAlCOZJBGTIQTmFtZSBvZiB0aGUgcm9sZUoFYWRtaW66SBrIAQFyFRABGEAyD15bYS16QS1aMC05X10rJBJoCg9wZXJtaXNzaW9uX25hbWUYAiABKAlCT5JBLjIgTmFtZSBvZiB0aGUgcGVybWlzc2lvbiB0byByZW1vdmVKCnJlYWRfdXNlcnO6SBvIAQFyFhABGEAyEF5bYS16QS1aMC05XzpdKyQicwojTGlzdEVmZmVjdGl2ZVJvbGVQZXJtaXNzaW9uc1JlcXVlc3QSTAoJcm9sZV9uYW1lGAEgASgJQjmSQRkyEE5hbWUgb2YgdGhlIHJvbGVKBWFkbWluukgayAEBchUQARhAMg9eW2EtekEtWjAtOV9dKyQirQEKJExpc3RFZmZlY3RpdmVSb2xlUGVybWlzc2lvbnNSZXNwb25zZRKEAQoLcGVybWlzc2lvbnMYASADKAsyHS5zY2FsZWtpdC52MS5yb2xlcy5QZXJtaXNzaW9uQlCSQU0yS0xpc3Qgb2YgYWxsIGVmZmVjdGl2ZSBwZXJtaXNzaW9ucyBpbmNsdWRpbmcgdGhvc2UgaW5oZXJpdGVkIGZyb20gYmFzZSByb2xlcyJuChlMaXN0RGVwZW5kZW50Um9sZXNSZXF1ZXN0ElEKCXJvbGVfbmFtZRgBIAEoCUI+kkEeMhVOYW1lIG9mIHRoZSBiYXNlIHJvbGVKBWFkbWluukgayAEBchUQARhAMg9eW2EtekEtWjAtOV9dKyQiYgoaTGlzdERlcGVuZGVudFJvbGVzUmVzcG9uc2USRAoFcm9sZXMYASADKAsyFy5zY2FsZWtpdC52MS5yb2xlcy5Sb2xlQhySQRkyF0xpc3Qgb2YgZGVwZW5kZW50IHJvbGVzIvMBChVEZWxldGVSb2xlQmFzZVJlcXVlc3QS2QEKCXJvbGVfbmFtZRgBIAEoCULFAZJBpAEykQFVbmlxdWUgbmFtZSBpZGVudGlmaWVyIG9mIHRoZSByb2xlIHdob3NlIGJhc2UgaW5oZXJpdGFuY2UgcmVsYXRpb25zaGlwIHNob3VsZCBiZSByZW1vdmVkLiBNdXN0IGJlIGFscGhhbnVtZXJpYyB3aXRoIHVuZGVyc2NvcmVzLCAxLTY0IGNoYXJhY3RlcnMuSg5jb250ZW50X2VkaXRvcrpIGsgBAXIVEAEYQDIPXlthLXpBLVowLTlfXSskIvcBCiFEZWxldGVPcmdhbml6YXRpb25Sb2xlQmFzZVJlcXVlc3QSXgoGb3JnX2lkGAEgASgJQk6SQT0yJFVuaXF1ZSBpZGVudGlmaWVyIHRvIGFuIE9yZ2FuaXphdGlvbkoVIm9yZ18xMjEzMTI0MzQxMjMzMTIiukgLcgkQARggOgNvcmcScgoJcm9sZV9uYW1lGAIgASgJQl+SQToyMU5hbWUgb2YgdGhlIG9yZ2FuaXphdGlvbiByb2xlIHRvIHJlbW92ZSBiYXNlIGZyb21KBWFkbWluukgfyAEBchoQARhkMhReW2EtekEtWjAtOV9dezEsNjR9JCo4Cg5QZXJtaXNzaW9uVHlwZRIHCgNBTEwQABIMCghTQ0FMRUtJVBABEg8KC0VOVklST05NRU5UEAIy67sBCgxSb2xlc1NlcnZpY2USzwUKCkNyZWF0ZVJvbGUSJC5zY2FsZWtpdC52MS5yb2xlcy5DcmVhdGVSb2xlUmVxdWVzdBolLnNjYWxla2l0LnYxLnJvbGVzLkNyZWF0ZVJvbGVSZXNwb25zZSLzBJJBzgQKBVJvbGVzEh5DcmVhdGUgbmV3IHJvbGUgaW4gZW52aXJvbm1lbnQaiANDcmVhdGVzIGEgbmV3IHJvbGUgd2l0aGluIHRoZSBlbnZpcm9ubWVudCB3aXRoIHNwZWNpZmllZCBwZXJtaXNzaW9ucyBhbmQgbWV0YWRhdGEuIFVzZSB0aGlzIGVuZHBvaW50IHRvIGRlZmluZSBjdXN0b20gcm9sZXMgdGhhdCBjYW4gYmUgYXNzaWduZWQgdG8gdXNlcnMgb3IgZ3JvdXBzLiBZb3UgY2FuIGNyZWF0ZSBoaWVyYXJjaGljYWwgcm9sZXMgYnkgZXh0ZW5kaW5nIGV4aXN0aW5nIHJvbGVzLCBhc3NpZ24gc3BlY2lmaWMgcGVybWlzc2lvbnMsIGFuZCBjb25maWd1cmUgZGlzcGxheSBpbmZvcm1hdGlvbi4gUm9sZXMgYXJlIHRoZSBmb3VuZGF0aW9uIG9mIHlvdXIgYWNjZXNzIGNvbnRyb2wgc3lzdGVtIGFuZCBkZXRlcm1pbmUgd2hhdCBhY3Rpb25zIHVzZXJzIGNhbiBwZXJmb3JtLkqZAQoDMjAxEpEBCmRSb2xlIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5LiBSZXR1cm5zIHRoZSBjb21wbGV0ZSByb2xlIG9iamVjdCB3aXRoIHN5c3RlbS1nZW5lcmF0ZWQgSUQgYW5kIHRpbWVzdGFtcHMuEikKJxolLnNjYWxla2l0LnYxLnJvbGVzLkNyZWF0ZVJvbGVSZXNwb25zZYK1GAIYRILT5JMCFToEcm9sZSINL2FwaS92MS9yb2xlcxKyBQoKVXBkYXRlUm9sZRIkLnNjYWxla2l0LnYxLnJvbGVzLlVwZGF0ZVJvbGVSZXF1ZXN0GiUuc2NhbGVraXQudjEucm9sZXMuVXBkYXRlUm9sZVJlc3BvbnNlItYEkkGlBAoFUm9sZXMSF1VwZGF0ZSByb2xlIGluZm9ybWF0aW9uGvYCTW9kaWZpZXMgYW4gZXhpc3Rpbmcgcm9sZSdzIHByb3BlcnRpZXMgaW5jbHVkaW5nIGRpc3BsYXkgbmFtZSwgZGVzY3JpcHRpb24sIHBlcm1pc3Npb25zLCBhbmQgaW5oZXJpdGFuY2UuIFVzZSB0aGlzIGVuZHBvaW50IHRvIHVwZGF0ZSByb2xlIG1ldGFkYXRhLCBjaGFuZ2UgcGVybWlzc2lvbiBhc3NpZ25tZW50cywgb3IgbW9kaWZ5IHJvbGUgaGllcmFyY2h5LiBPbmx5IHRoZSBmaWVsZHMgeW91IHNwZWNpZnkgd2lsbCBiZSB1cGRhdGVkLCBsZWF2aW5nIG90aGVyIHByb3BlcnRpZXMgdW5jaGFuZ2VkLiBXaGVuIHVwZGF0aW5nIHBlcm1pc3Npb25zLCB0aGUgbmV3IGxpc3QgcmVwbGFjZXMgYWxsIGV4aXN0aW5nIHBlcm1pc3Npb25zIGZvciB0aGUgcm9sZS5KiQEKAzIwMBKBAQpUUm9sZSB1cGRhdGVkIHN1Y2Nlc3NmdWxseS4gUmV0dXJucyB0aGUgbW9kaWZpZWQgcm9sZSBvYmplY3Qgd2l0aCB1cGRhdGVkIHRpbWVzdGFtcHMuEikKJxolLnNjYWxla2l0LnYxLnJvbGVzLlVwZGF0ZVJvbGVSZXNwb25zZYK1GAIYRILT5JMCIToEcm9sZRoZL2FwaS92MS9yb2xlcy97cm9sZV9uYW1lfRL/BAoHR2V0Um9sZRIhLnNjYWxla2l0LnYxLnJvbGVzLkdldFJvbGVSZXF1ZXN0GiIuc2NhbGVraXQudjEucm9sZXMuR2V0Um9sZVJlc3BvbnNlIqwEkkGBBAoFUm9sZXMSEEdldCByb2xlIGRldGFpbHMaqQJSZXRyaWV2ZXMgY29tcGxldGUgaW5mb3JtYXRpb24gZm9yIGEgc3BlY2lmaWMgcm9sZSBpbmNsdWRpbmcgbWV0YWRhdGEgYW5kIGluaGVyaXRhbmNlIGRldGFpbHMgKGJhc2Ugcm9sZSBhbmQgZGVwZW5kZW50IHJvbGUgY291bnQpLiBVc2UgdGhpcyBlbmRwb2ludCB0byBhdWRpdCByb2xlIGNvbmZpZ3VyYXRpb24gYW5kIHVuZGVyc3RhbmQgdGhlIHJvbGUncyBwbGFjZSBpbiB0aGUgaGllcmFyY2h5LiBUbyB2aWV3IHRoZSByb2xlJ3MgcGVybWlzc2lvbnMsIHVzZSB0aGUgTGlzdFJvbGVQZXJtaXNzaW9ucyBlbmRwb2ludC5KuQEKAzIwMBKxAQqGAVN1Y2Nlc3NmdWxseSByZXRyaWV2ZWQgcm9sZSBkZXRhaWxzLiBSZXR1cm5zIHRoZSByb2xlIG9iamVjdCBpbmNsdWRpbmcgbWV0YWRhdGEgYW5kIGluaGVyaXRhbmNlIGRldGFpbHMuIFBlcm1pc3Npb25zIGFyZSBub3QgaW5jbHVkZWQuEiYKJBoiLnNjYWxla2l0LnYxLnJvbGVzLkdldFJvbGVSZXNwb25zZYK1GAIYRILT5JMCGxIZL2FwaS92MS9yb2xlcy97cm9sZV9uYW1lfRKJBgoJTGlzdFJvbGVzEiMuc2NhbGVraXQudjEucm9sZXMuTGlzdFJvbGVzUmVxdWVzdBokLnNjYWxla2l0LnYxLnJvbGVzLkxpc3RSb2xlc1Jlc3BvbnNlIrAFkkGRBQoFUm9sZXMSHUxpc3QgYWxsIHJvbGVzIGluIGVudmlyb25tZW50GsQDUmV0cmlldmVzIGEgY29tcHJlaGVuc2l2ZSBsaXN0IG9mIGFsbCByb2xlcyBhdmFpbGFibGUgd2l0aGluIHRoZSBzcGVjaWZpZWQgZW52aXJvbm1lbnQgaW5jbHVkaW5nIG9yZ2FuaXphdGlvbiByb2xlcy4gVXNlIHRoaXMgZW5kcG9pbnQgdG8gdmlldyBhbGwgcm9sZSBkZWZpbml0aW9ucywgaW5jbHVkaW5nIGN1c3RvbSByb2xlcyBhbmQgdGhlaXIgY29uZmlndXJhdGlvbnMuIFlvdSBjYW4gb3B0aW9uYWxseSBpbmNsdWRlIHBlcm1pc3Npb24gZGV0YWlscyBmb3IgZWFjaCByb2xlIHRvIHVuZGVyc3RhbmQgdGhlaXIgY2FwYWJpbGl0aWVzLiBUaGlzIGlzIHVzZWZ1bCBmb3Igcm9sZSBtYW5hZ2VtZW50LCBhdWRpdGluZyBvcmdhbml6YXRpb24gYWNjZXNzIGNvbnRyb2xzLCBvciB1bmRlcnN0YW5kaW5nIHRoZSBhdmFpbGFibGUgYWNjZXNzIGxldmVscyB3aXRoaW4gdGhlIG9yZ2FuaXphdGlvbi5KoQEKAzIwMBKZAQptU3VjY2Vzc2Z1bGx5IHJldHJpZXZlZCBsaXN0IG9mIHJvbGVzLiBSZXR1cm5zIGFsbCByb2xlcyB3aXRoIHRoZWlyIG1ldGFkYXRhIGFuZCBvcHRpb25hbGx5IHRoZWlyIHBlcm1pc3Npb25zLhIoCiYaJC5zY2FsZWtpdC52MS5yb2xlcy5MaXN0Um9sZXNSZXNwb25zZYK1GAIYZILT5JMCDxINL2FwaS92MS9yb2xlcxKsBgoKRGVsZXRlUm9sZRIkLnNjYWxla2l0LnYxLnJvbGVzLkRlbGV0ZVJvbGVSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5It8FkkG0BQoFUm9sZXMSHkRlbGV0ZSByb2xlIGFuZCByZWFzc2lnbiB1c2Vycxq7BFBlcm1hbmVudGx5IHJlbW92ZXMgYSByb2xlIGZyb20gdGhlIGVudmlyb25tZW50IGFuZCByZWFzc2lnbnMgdXNlcnMgd2hvIGhhZCB0aGF0IHJvbGUgdG8gYSBkaWZmZXJlbnQgcm9sZS4gVXNlIHRoaXMgZW5kcG9pbnQgd2hlbiB5b3UgbmVlZCB0byBjbGVhbiB1cCB1bnVzZWQgcm9sZXMgb3IgcmVzdHJ1Y3R1cmUgeW91ciBhY2Nlc3MgY29udHJvbCBzeXN0ZW0uIFRoZSByb2xlIGNhbm5vdCBiZSBkZWxldGVkIGlmIGl0IGhhcyBkZXBlbmRlbnQgcm9sZXMgKHJvbGVzIHRoYXQgZXh0ZW5kIGl0KSB1bmxlc3MgeW91IHNwZWNpZnkgYSByZXBsYWNlbWVudCByb2xlLiBJZiB1c2VycyBhcmUgYXNzaWduZWQgdG8gdGhlIHJvbGUgYmVpbmcgZGVsZXRlZCwgeW91IG11c3QgcHJvdmlkZSBhIHJlYXNzaWduX3JvbGVfbmFtZSB0byBtb3ZlIHRob3NlIHVzZXJzIHRvIGEgZGlmZmVyZW50IHJvbGUgYmVmb3JlIGRlbGV0aW9uIGNhbiBwcm9jZWVkLiBUaGlzIGFjdGlvbiBjYW5ub3QgYmUgdW5kb25lLCBzbyBlbnN1cmUgbm8gY3JpdGljYWwgdXNlcnMgZGVwZW5kIG9uIHRoZSByb2xlIGJlZm9yZSBkZWxldGlvbi5KTQoDMjAwEkYKRFJvbGUgc3VjY2Vzc2Z1bGx5IGRlbGV0ZWQgYW5kIHVzZXJzIHJlYXNzaWduZWQuIE5vIGNvbnRlbnQgcmV0dXJuZWQugrUYAhhEgtPkkwIbKhkvYXBpL3YxL3JvbGVzL3tyb2xlX25hbWV9EtwGChZDcmVhdGVPcmdhbml6YXRpb25Sb2xlEjAuc2NhbGVraXQudjEucm9sZXMuQ3JlYXRlT3JnYW5pemF0aW9uUm9sZVJlcXVlc3QaMS5zY2FsZWtpdC52MS5yb2xlcy5DcmVhdGVPcmdhbml6YXRpb25Sb2xlUmVzcG9uc2Ui3AWSQaAFCgVSb2xlcxIYQ3JlYXRlIG9yZ2FuaXphdGlvbiByb2xlGscDQ3JlYXRlcyBhIG5ldyByb2xlIHdpdGhpbiB0aGUgc3BlY2lmaWVkIG9yZ2FuaXphdGlvbiB3aXRoIGJhc2ljIGNvbmZpZ3VyYXRpb24gaW5jbHVkaW5nIG5hbWUsIGRpc3BsYXkgbmFtZSwgZGVzY3JpcHRpb24sIGFuZCBwZXJtaXNzaW9ucy4gVXNlIHRoaXMgZW5kcG9pbnQgdG8gZGVmaW5lIGN1c3RvbSByb2xlcyB0aGF0IGNhbiBiZSBhc3NpZ25lZCB0byB1c2VycyB3aXRoaW4gdGhlIG9yZ2FuaXphdGlvbi4gWW91IGNhbiBjcmVhdGUgaGllcmFyY2hpY2FsIHJvbGVzIGJ5IGV4dGVuZGluZyBleGlzdGluZyByb2xlcyBhbmQgYXNzaWduIHNwZWNpZmljIHBlcm1pc3Npb25zIHRvIGNvbnRyb2wgYWNjZXNzIGxldmVscy4gVGhlIHJvbGUgd2lsbCBiZSBzY29wZWQgdG8gdGhlIG9yZ2FuaXphdGlvbiBhbmQgY2FuIGJlIHVzZWQgZm9yIG9yZ2FuaXphdGlvbi1zcGVjaWZpYyBhY2Nlc3MgY29udHJvbC5KsgEKAzIwMRKqAQpxT3JnYW5pemF0aW9uIHJvbGUgY3JlYXRlZCBzdWNjZXNzZnVsbHkuIFJldHVybnMgdGhlIGNvbXBsZXRlIHJvbGUgb2JqZWN0IHdpdGggc3lzdGVtLWdlbmVyYXRlZCBJRCBhbmQgdGltZXN0YW1wcy4SNQozGjEuc2NhbGVraXQudjEucm9sZXMuQ3JlYXRlT3JnYW5pemF0aW9uUm9sZVJlc3BvbnNlgrUYAhhEgtPkkwIsOgRyb2xlIiQvYXBpL3YxL29yZ2FuaXphdGlvbnMve29yZ19pZH0vcm9sZXMStQYKFlVwZGF0ZU9yZ2FuaXphdGlvblJvbGUSMC5zY2FsZWtpdC52MS5yb2xlcy5VcGRhdGVPcmdhbml6YXRpb25Sb2xlUmVxdWVzdBoxLnNjYWxla2l0LnYxLnJvbGVzLlVwZGF0ZU9yZ2FuaXphdGlvblJvbGVSZXNwb25zZSK1BZJB7QQKBVJvbGVzEhhVcGRhdGUgb3JnYW5pemF0aW9uIHJvbGUapANNb2RpZmllcyBhbiBleGlzdGluZyBvcmdhbml6YXRpb24gcm9sZSdzIHByb3BlcnRpZXMgaW5jbHVkaW5nIGRpc3BsYXkgbmFtZSwgZGVzY3JpcHRpb24sIHBlcm1pc3Npb25zLCBhbmQgaW5oZXJpdGFuY2Ugc2V0dGluZ3MuIFVzZSB0aGlzIGVuZHBvaW50IHRvIHVwZGF0ZSByb2xlIG1ldGFkYXRhLCBjaGFuZ2UgcGVybWlzc2lvbiBhc3NpZ25tZW50cywgb3IgbW9kaWZ5IHJvbGUgaGllcmFyY2h5IHdpdGhpbiB0aGUgb3JnYW5pemF0aW9uLiBPbmx5IHRoZSBmaWVsZHMgeW91IHNwZWNpZnkgd2lsbCBiZSB1cGRhdGVkLCBsZWF2aW5nIG90aGVyIHByb3BlcnRpZXMgdW5jaGFuZ2VkLiBXaGVuIHVwZGF0aW5nIHBlcm1pc3Npb25zLCB0aGUgbmV3IGxpc3QgcmVwbGFjZXMgYWxsIGV4aXN0aW5nIHBlcm1pc3Npb25zIGZvciB0aGUgcm9sZS5KogEKAzIwMBKaAQphT3JnYW5pemF0aW9uIHJvbGUgdXBkYXRlZCBzdWNjZXNzZnVsbHkuIFJldHVybnMgdGhlIG1vZGlmaWVkIHJvbGUgb2JqZWN0IHdpdGggdXBkYXRlZCB0aW1lc3RhbXBzLhI1CjMaMS5zY2FsZWtpdC52MS5yb2xlcy5VcGRhdGVPcmdhbml6YXRpb25Sb2xlUmVzcG9uc2WCtRgCGESC0+STAjg6BHJvbGUaMC9hcGkvdjEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9yb2xlcy97cm9sZV9uYW1lfRKgBwoTR2V0T3JnYW5pemF0aW9uUm9sZRItLnNjYWxla2l0LnYxLnJvbGVzLkdldE9yZ2FuaXphdGlvblJvbGVSZXF1ZXN0Gi4uc2NhbGVraXQudjEucm9sZXMuR2V0T3JnYW5pemF0aW9uUm9sZVJlc3BvbnNlIqkGkkHnBQoFUm9sZXMSHUdldCBvcmdhbml6YXRpb24gcm9sZSBkZXRhaWxzGr8DUmV0cmlldmVzIGNvbXBsZXRlIGluZm9ybWF0aW9uIGZvciBhIHNwZWNpZmljIG9yZ2FuaXphdGlvbiByb2xlIGluY2x1ZGluZyBtZXRhZGF0YSwgaW5oZXJpdGFuY2UgZGV0YWlscywgYW5kIG9wdGlvbmFsbHkgcGVybWlzc2lvbnMuIFVzZSB0aGlzIGVuZHBvaW50IHRvIGF1ZGl0IHJvbGUgY29uZmlndXJhdGlvbiBhbmQgdW5kZXJzdGFuZCB0aGUgcm9sZSdzIHBsYWNlIGluIHRoZSBvcmdhbml6YXRpb24ncyByb2xlIGhpZXJhcmNoeS4gWW91IGNhbiBpbmNsdWRlIHBlcm1pc3Npb24gZGV0YWlscyB0byBzZWUgd2hhdCBjYXBhYmlsaXRpZXMgdGhlIHJvbGUgcHJvdmlkZXMuIFRoaXMgb3BlcmF0aW9uIGlzIHVzZWZ1bCBmb3Igcm9sZSBtYW5hZ2VtZW50LCB1c2VyIGFzc2lnbm1lbnQgZGVjaXNpb25zLCBvciB1bmRlcnN0YW5kaW5nIG9yZ2FuaXphdGlvbiBhY2Nlc3MgY29udHJvbHMuSvwBCgMyMDAS9AEKvQFTdWNjZXNzZnVsbHkgcmV0cmlldmVkIG9yZ2FuaXphdGlvbiByb2xlIGRldGFpbHMuIFJldHVybnMgdGhlIHJvbGUgb2JqZWN0IGluY2x1ZGluZyBtZXRhZGF0YSBhbmQgaW5oZXJpdGFuY2UgZGV0YWlscy4gUGVybWlzc2lvbnMgYXJlIGluY2x1ZGVkIG9ubHkgd2hlbiByZXF1ZXN0ZWQgdmlhIHRoZSBpbmNsdWRlIHBhcmFtZXRlci4SMgowGi4uc2NhbGVraXQudjEucm9sZXMuR2V0T3JnYW5pemF0aW9uUm9sZVJlc3BvbnNlgrUYAhhkgtPkkwIyEjAvYXBpL3YxL29yZ2FuaXphdGlvbnMve29yZ19pZH0vcm9sZXMve3JvbGVfbmFtZX0SowYKFUxpc3RPcmdhbml6YXRpb25Sb2xlcxIvLnNjYWxla2l0LnYxLnJvbGVzLkxpc3RPcmdhbml6YXRpb25Sb2xlc1JlcXVlc3QaMC5zY2FsZWtpdC52MS5yb2xlcy5MaXN0T3JnYW5pemF0aW9uUm9sZXNSZXNwb25zZSKmBZJB8AQKBVJvbGVzEhdMaXN0IG9yZ2FuaXphdGlvbiByb2xlcxqQA1JldHJpZXZlcyBhbGwgZW52aXJvbm1lbnQgcm9sZXMgYW5kIG9yZ2FuaXphdGlvbiBzcGVjaWZpYyByb2xlcy4gVXNlIHRoaXMgZW5kcG9pbnQgdG8gdmlldyBhbGwgcm9sZSBkZWZpbml0aW9ucywgaW5jbHVkaW5nIGN1c3RvbSByb2xlcyBhbmQgdGhlaXIgY29uZmlndXJhdGlvbnMuIFlvdSBjYW4gb3B0aW9uYWxseSBpbmNsdWRlIHBlcm1pc3Npb24gZGV0YWlscyBmb3IgZWFjaCByb2xlIHRvIHVuZGVyc3RhbmQgdGhlaXIgY2FwYWJpbGl0aWVzLiBUaGlzIGlzIHVzZWZ1bCBmb3Igcm9sZSBtYW5hZ2VtZW50LCBhdWRpdGluZyBvcmdhbml6YXRpb24gYWNjZXNzIGNvbnRyb2xzLCBvciB1bmRlcnN0YW5kaW5nIHRoZSBhdmFpbGFibGUgYWNjZXNzIGxldmVscyB3aXRoaW4gdGhlIG9yZ2FuaXphdGlvbi5KugEKAzIwMBKyAQp6U3VjY2Vzc2Z1bGx5IHJldHJpZXZlZCBsaXN0IG9mIG9yZ2FuaXphdGlvbiByb2xlcy4gUmV0dXJucyBhbGwgcm9sZXMgd2l0aCB0aGVpciBtZXRhZGF0YSBhbmQgb3B0aW9uYWxseSB0aGVpciBwZXJtaXNzaW9ucy4SNAoyGjAuc2NhbGVraXQudjEucm9sZXMuTGlzdE9yZ2FuaXphdGlvblJvbGVzUmVzcG9uc2WCtRgCGGSC0+STAiYSJC9hcGkvdjEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9yb2xlcxKKBgoWRGVsZXRlT3JnYW5pemF0aW9uUm9sZRIwLnNjYWxla2l0LnYxLnJvbGVzLkRlbGV0ZU9yZ2FuaXphdGlvblJvbGVSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IqUFkkHjBAoFUm9sZXMSGERlbGV0ZSBvcmdhbml6YXRpb24gcm9sZRrWA1Blcm1hbmVudGx5IHJlbW92ZXMgYSByb2xlIGZyb20gdGhlIG9yZ2FuaXphdGlvbiBhbmQgb3B0aW9uYWxseSByZWFzc2lnbnMgdXNlcnMgd2hvIGhhZCB0aGF0IHJvbGUgdG8gYSBkaWZmZXJlbnQgcm9sZS4gVXNlIHRoaXMgZW5kcG9pbnQgd2hlbiB5b3UgbmVlZCB0byBjbGVhbiB1cCB1bnVzZWQgcm9sZXMgb3IgcmVzdHJ1Y3R1cmUgeW91ciBvcmdhbml6YXRpb24ncyBhY2Nlc3MgY29udHJvbCBzeXN0ZW0uIElmIHVzZXJzIGFyZSBhc3NpZ25lZCB0byB0aGUgcm9sZSBiZWluZyBkZWxldGVkLCB5b3UgY2FuIHByb3ZpZGUgYSByZWFzc2lnbl9yb2xlX25hbWUgdG8gbW92ZSB0aG9zZSB1c2VycyB0byBhIGRpZmZlcmVudCByb2xlIGJlZm9yZSBkZWxldGlvbi4gVGhpcyBhY3Rpb24gY2Fubm90IGJlIHVuZG9uZSwgc28gZW5zdXJlIG5vIGNyaXRpY2FsIHVzZXJzIGRlcGVuZCBvbiB0aGUgcm9sZSBiZWZvcmUgZGVsZXRpb24uSmcKAzIwMBJgCl5Pcmdhbml6YXRpb24gcm9sZSBzdWNjZXNzZnVsbHkgZGVsZXRlZCBhbmQgdXNlcnMgcmVhc3NpZ25lZCBpZiBzcGVjaWZpZWQuIE5vIGNvbnRlbnQgcmV0dXJuZWQugrUYAhhEgtPkkwIyKjAvYXBpL3YxL29yZ2FuaXphdGlvbnMve29yZ19pZH0vcm9sZXMve3JvbGVfbmFtZX0S2wgKEUdldFJvbGVVc2Vyc0NvdW50Eisuc2NhbGVraXQudjEucm9sZXMuR2V0Um9sZVVzZXJzQ291bnRSZXF1ZXN0Giwuc2NhbGVraXQudjEucm9sZXMuR2V0Um9sZVVzZXJzQ291bnRSZXNwb25zZSLqB5JBswcKBVJvbGVzEhxSZXRyaWV2ZSB1c2VyIGNvdW50IGZvciByb2xlGpMFUmV0cmlldmVzIHRoZSB0b3RhbCBudW1iZXIgb2YgdXNlcnMgY3VycmVudGx5IGFzc2lnbmVkIHRvIHRoZSBzcGVjaWZpZWQgcm9sZSB3aXRoaW4gdGhlIGVudmlyb25tZW50LiBVc2UgdGhpcyBlbmRwb2ludCB0byBtb25pdG9yIHJvbGUgdXNhZ2UsIGVuZm9yY2UgdXNlciBsaW1pdHMsIG9yIHVuZGVyc3RhbmQgdGhlIHNjb3BlIG9mIHJvbGUgYXNzaWdubWVudHMuIFByb3ZpZGUgdGhlIHJvbGUncyB1bmlxdWUgbmFtZSBhcyBhIHBhdGggcGFyYW1ldGVyLCBhbmQgdGhlIHJlc3BvbnNlIHdpbGwgaW5jbHVkZSB0aGUgY3VycmVudCB1c2VyIGNvdW50IGZvciB0aGF0IHJvbGUuIFRoaXMgb3BlcmF0aW9uIGlzIHJlYWQtb25seSBhbmQgZG9lcyBub3QgbW9kaWZ5IGFueSBkYXRhIG9yIHVzZXIgYXNzaWdubWVudHMuIFRoZSBjb3VudCByZWZsZWN0cyBhbGwgdXNlcnMgd2hvIGhhdmUgdGhlIHJvbGUgZWl0aGVyIGRpcmVjdGx5IGFzc2lnbmVkIG9yIGluaGVyaXRlZCB0aHJvdWdoIG9yZ2FuaXphdGlvbiBtZW1iZXJzaGlwLiBUaGlzIGluZm9ybWF0aW9uIGlzIHVzZWZ1bCBmb3IgY2FwYWNpdHkgcGxhbm5pbmcsIHNlY3VyaXR5IGF1ZGl0aW5nLCBvciB1bmRlcnN0YW5kaW5nIHRoZSBpbXBhY3Qgb2Ygcm9sZSBjaGFuZ2VzIGFjcm9zcyB5b3VyIHVzZXIgYmFzZS5K9QEKAzIwMBLtAQq4AVN1Y2Nlc3NmdWxseSByZXRyaWV2ZWQgdXNlciBjb3VudCBmb3IgdGhlIHNwZWNpZmllZCByb2xlLiBSZXR1cm5zIHRoZSB0b3RhbCBudW1iZXIgb2YgdXNlcnMgY3VycmVudGx5IGFzc2lnbmVkIHRvIHRoZSByb2xlLCBpbmNsdWRpbmcgYm90aCBkaXJlY3QgYXNzaWdubWVudHMgYW5kIGluaGVyaXRlZCBhc3NpZ25tZW50cy4SMAouGiwuc2NhbGVraXQudjEucm9sZXMuR2V0Um9sZVVzZXJzQ291bnRSZXNwb25zZYK1GAIYRILT5JMCJxIlL2FwaS92MS9yb2xlcy97cm9sZV9uYW1lfS91c2Vyczpjb3VudBKyBwodR2V0T3JnYW5pemF0aW9uUm9sZVVzZXJzQ291bnQSNy5zY2FsZWtpdC52MS5yb2xlcy5HZXRPcmdhbml6YXRpb25Sb2xlVXNlcnNDb3VudFJlcXVlc3QaOC5zY2FsZWtpdC52MS5yb2xlcy5HZXRPcmdhbml6YXRpb25Sb2xlVXNlcnNDb3VudFJlc3BvbnNlIp0GkkHABQoFUm9sZXMSIEdldCBvcmdhbml6YXRpb24gcm9sZSB1c2VyIGNvdW50GsADUmV0cmlldmVzIHRoZSB0b3RhbCBudW1iZXIgb2YgdXNlcnMgY3VycmVudGx5IGFzc2lnbmVkIHRvIHRoZSBzcGVjaWZpZWQgb3JnYW5pemF0aW9uIHJvbGUuIFVzZSB0aGlzIGVuZHBvaW50IHRvIG1vbml0b3Igb3JnYW5pemF0aW9uIHJvbGUgdXNhZ2UsIGVuZm9yY2UgdXNlciBsaW1pdHMsIG9yIHVuZGVyc3RhbmQgdGhlIHNjb3BlIG9mIHJvbGUgYXNzaWdubWVudHMgd2l0aGluIHRoZSBvcmdhbml6YXRpb24uIFByb3ZpZGUgdGhlIG9yZ2FuaXphdGlvbiBJRCBhbmQgcm9sZSBuYW1lIGFzIHBhdGggcGFyYW1ldGVycy4gVGhlIHJlc3BvbnNlIGluY2x1ZGVzIHRoZSB1c2VyIGNvdW50IGZvciB0aGUgcmVxdWVzdGVkIG9yZ2FuaXphdGlvbiByb2xlLiBUaGlzIG9wZXJhdGlvbiBpcyByZWFkLW9ubHkgYW5kIGRvZXMgbm90IG1vZGlmeSBhbnkgZGF0YSBvciB1c2VyIGFzc2lnbm1lbnRzLkrRAQoDMjAwEskBCogBU3VjY2Vzc2Z1bGx5IHJldHJpZXZlZCB1c2VyIGNvdW50IGZvciB0aGUgc3BlY2lmaWVkIG9yZ2FuaXphdGlvbiByb2xlLiBSZXR1cm5zIHRoZSB0b3RhbCBudW1iZXIgb2YgdXNlcnMgY3VycmVudGx5IGFzc2lnbmVkIHRvIHRoZSByb2xlLhI8CjoaOC5zY2FsZWtpdC52MS5yb2xlcy5HZXRPcmdhbml6YXRpb25Sb2xlVXNlcnNDb3VudFJlc3BvbnNlgrUYAhhk+tLkkwIJEgdQUkVWSUVXgtPkkwI+EjwvYXBpL3YxL29yZ2FuaXphdGlvbnMve29yZ19pZH0vcm9sZXMve3JvbGVfbmFtZX0vdXNlcnM6Y291bnQSngYKElVwZGF0ZURlZmF1bHRSb2xlcxIsLnNjYWxla2l0LnYxLnJvbGVzLlVwZGF0ZURlZmF1bHRSb2xlc1JlcXVlc3QaLS5zY2FsZWtpdC52MS5yb2xlcy5VcGRhdGVEZWZhdWx0Um9sZXNSZXNwb25zZSKqBZJB3wQKBVJvbGVzEiRTZXQgZGVmYXVsdCBjcmVhdG9yIGFuZCBtZW1iZXIgcm9sZXMazwNVcGRhdGVzIHRoZSBkZWZhdWx0IGNyZWF0b3IgYW5kIG1lbWJlciByb2xlcyBmb3IgdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQuIFVzZSB0aGlzIGVuZHBvaW50IHRvIGNvbmZpZ3VyZSB3aGljaCByb2xlcyBhcmUgYXV0b21hdGljYWxseSBhc3NpZ25lZCB0byBuZXcgdXNlcnMgd2hlbiB0aGV5IGpvaW4gdGhlIGVudmlyb25tZW50LiBZb3UgY2FuIHNwZWNpZnkgcm9sZSBuYW1lcyBmb3IgYm90aCBjcmVhdG9yIGFuZCBtZW1iZXIgZGVmYXVsdCByb2xlcy4gVGhlIHN5c3RlbSB3aWxsIHZhbGlkYXRlIHRoYXQgdGhlIHNwZWNpZmllZCByb2xlcyBleGlzdCBhbmQgdXBkYXRlIHRoZSBlbnZpcm9ubWVudCBzZXR0aW5ncyBhY2NvcmRpbmdseS4gUmV0dXJucyB0aGUgdXBkYXRlZCBkZWZhdWx0IHJvbGUgb2JqZWN0cyBpbmNsdWRpbmcgdGhlaXIgY29tcGxldGUgcm9sZSBpbmZvcm1hdGlvbiBhbmQgcGVybWlzc2lvbnMuSl4KAzIwMBJXCiJEZWZhdWx0IHJvbGVzIHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5EjEKLxotLnNjYWxla2l0LnYxLnJvbGVzLlVwZGF0ZURlZmF1bHRSb2xlc1Jlc3BvbnNlgrUYAhhEgtPkkwI7OgEqWho6ASoyFS9hcGkvdjEvcm9sZXMvZGVmYXVsdDIaL2FwaS92MS9yb2xlczpzZXRfZGVmYXVsdHMSywYKHlVwZGF0ZURlZmF1bHRPcmdhbml6YXRpb25Sb2xlcxI4LnNjYWxla2l0LnYxLnJvbGVzLlVwZGF0ZURlZmF1bHRPcmdhbml6YXRpb25Sb2xlc1JlcXVlc3QaOS5zY2FsZWtpdC52MS5yb2xlcy5VcGRhdGVEZWZhdWx0T3JnYW5pemF0aW9uUm9sZXNSZXNwb25zZSKzBZJB7QQKBVJvbGVzEh5TZXQgZGVmYXVsdCBvcmdhbml6YXRpb24gcm9sZXMa+AJVcGRhdGVzIHRoZSBkZWZhdWx0IG1lbWJlciByb2xlIGZvciB0aGUgc3BlY2lmaWVkIG9yZ2FuaXphdGlvbi4gVXNlIHRoaXMgZW5kcG9pbnQgdG8gY29uZmlndXJlIHdoaWNoIHJvbGUgaXMgYXV0b21hdGljYWxseSBhc3NpZ25lZCB0byBuZXcgdXNlcnMgd2hlbiB0aGV5IGpvaW4gdGhlIG9yZ2FuaXphdGlvbi4gVGhlIHN5c3RlbSB3aWxsIHZhbGlkYXRlIHRoYXQgdGhlIHNwZWNpZmllZCByb2xlIGV4aXN0cyBhbmQgdXBkYXRlIHRoZSBvcmdhbml6YXRpb24gc2V0dGluZ3MgYWNjb3JkaW5nbHkuIFRoaXMgY29uZmlndXJhdGlvbiBhZmZlY3RzIGFsbCBuZXcgdXNlciBpbnZpdGF0aW9ucyBhbmQgbWVtYmVyc2hpcHMgd2l0aGluIHRoZSBvcmdhbml6YXRpb24uSsgBCgMyMDASwAEKf0RlZmF1bHQgb3JnYW5pemF0aW9uIHJvbGVzIHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5LiBSZXR1cm5zIHRoZSB1cGRhdGVkIGRlZmF1bHQgbWVtYmVyIHJvbGUgb2JqZWN0IHdpdGggY29tcGxldGUgcm9sZSBpbmZvcm1hdGlvbi4SPQo7Gjkuc2NhbGVraXQudjEucm9sZXMuVXBkYXRlRGVmYXVsdE9yZ2FuaXphdGlvblJvbGVzUmVzcG9uc2WCtRgCGESC0+STAjY6ASoyMS9hcGkvdjEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9yb2xlczpzZXRfZGVmYXVsdHMSpAgKEkxpc3REZXBlbmRlbnRSb2xlcxIsLnNjYWxla2l0LnYxLnJvbGVzLkxpc3REZXBlbmRlbnRSb2xlc1JlcXVlc3QaLS5zY2FsZWtpdC52MS5yb2xlcy5MaXN0RGVwZW5kZW50Um9sZXNSZXNwb25zZSKwB5JB+gYKBVJvbGVzEhRMaXN0IGRlcGVuZGVudCByb2xlcxr8BFJldHJpZXZlcyBhbGwgcm9sZXMgdGhhdCBkaXJlY3RseSBleHRlbmQgdGhlIHNwZWNpZmllZCBiYXNlIHJvbGUgdGhyb3VnaCBpbmhlcml0YW5jZS4gVXNlIHRoaXMgZW5kcG9pbnQgdG8gdW5kZXJzdGFuZCB0aGUgcm9sZSBoaWVyYXJjaHkgYW5kIGlkZW50aWZ5IHdoaWNoIHJvbGVzIGluaGVyaXQgcGVybWlzc2lvbnMgZnJvbSBhIHBhcnRpY3VsYXIgYmFzZSByb2xlLiBQcm92aWRlIHRoZSBiYXNlIHJvbGUgbmFtZSBhcyBhIHBhdGggcGFyYW1ldGVyLCBhbmQgdGhlIHJlc3BvbnNlIHdpbGwgaW5jbHVkZSBhbGwgZGVwZW5kZW50IHJvbGVzIHdpdGggdGhlaXIgbWV0YWRhdGEgYW5kIHBlcm1pc3Npb24gaW5mb3JtYXRpb24uIFRoaXMgb3BlcmF0aW9uIGlzIHVzZWZ1bCBmb3IgYXVkaXRpbmcgcm9sZSBpbmhlcml0YW5jZSByZWxhdGlvbnNoaXBzLCB1bmRlcnN0YW5kaW5nIHRoZSBpbXBhY3Qgb2YgY2hhbmdlcyB0byBiYXNlIHJvbGVzLCBvciBtYW5hZ2luZyByb2xlIGhpZXJhcmNoaWVzIGVmZmVjdGl2ZWx5LiBSZXR1cm5zIGEgbGlzdCBvZiBkZXBlbmRlbnQgcm9sZSBvYmplY3RzIGluY2x1ZGluZyB0aGVpciBuYW1lcywgZGlzcGxheSBuYW1lcywgZGVzY3JpcHRpb25zLCBhbmQgcGVybWlzc2lvbiBkZXRhaWxzLkrbAQoDMjAwEtMBCp0BU3VjY2Vzc2Z1bGx5IHJldHJpZXZlZCBkZXBlbmRlbnQgcm9sZXMuIFJldHVybnMgYSBsaXN0IG9mIGFsbCByb2xlcyB0aGF0IGV4dGVuZCB0aGUgc3BlY2lmaWVkIGJhc2Ugcm9sZSwgaW5jbHVkaW5nIHRoZWlyIG1ldGFkYXRhIGFuZCBwZXJtaXNzaW9uIGluZm9ybWF0aW9uLhIxCi8aLS5zY2FsZWtpdC52MS5yb2xlcy5MaXN0RGVwZW5kZW50Um9sZXNSZXNwb25zZYK1GAIYZILT5JMCJhIkL2FwaS92MS9yb2xlcy97cm9sZV9uYW1lfS9kZXBlbmRlbnRzErcGCg5EZWxldGVSb2xlQmFzZRIoLnNjYWxla2l0LnYxLnJvbGVzLkRlbGV0ZVJvbGVCYXNlUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSLiBZJBsgUKBVJvbGVzEiREZWxldGUgcm9sZSBpbmhlcml0YW5jZSByZWxhdGlvbnNoaXAahgRSZW1vdmVzIHRoZSBiYXNlIHJvbGUgaW5oZXJpdGFuY2UgcmVsYXRpb25zaGlwIGZvciBhIHNwZWNpZmllZCByb2xlLCBlZmZlY3RpdmVseSBlbGltaW5hdGluZyBhbGwgaW5oZXJpdGVkIHBlcm1pc3Npb25zIGZyb20gdGhlIGJhc2Ugcm9sZS4gVXNlIHRoaXMgZW5kcG9pbnQgd2hlbiB5b3Ugd2FudCB0byBicmVhayB0aGUgaGllcmFyY2hpY2FsIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHJvbGVzIGFuZCByZW1vdmUgaW5oZXJpdGVkIHBlcm1pc3Npb25zLiBUaGUgcm9sZSB3aWxsIHJldGFpbiBvbmx5IGl0cyBkaXJlY3RseSBhc3NpZ25lZCBwZXJtaXNzaW9ucyBhZnRlciB0aGlzIG9wZXJhdGlvbi4gVGhpcyBhY3Rpb24gY2Fubm90IGJlIHVuZG9uZSwgc28gZW5zdXJlIHRoZSByb2xlIGhhcyBzdWZmaWNpZW50IGRpcmVjdCBwZXJtaXNzaW9ucyBiZWZvcmUgcmVtb3ZpbmcgaW5oZXJpdGFuY2UuIFJldHVybnMgbm8gY29udGVudCBvbiBzdWNjZXNzZnVsIHJlbW92YWwgb2YgdGhlIGJhc2UgcmVsYXRpb25zaGlwLkp6CgMyMDAScwpxQmFzZSByb2xlIGluaGVyaXRhbmNlIHJlbGF0aW9uc2hpcCBzdWNjZXNzZnVsbHkgcmVtb3ZlZC4gVGhlIHJvbGUgbm93IGhhcyBvbmx5IGl0cyBkaXJlY3RseSBhc3NpZ25lZCBwZXJtaXNzaW9ucy6CtRgCGESC0+STAiAqHi9hcGkvdjEvcm9sZXMve3JvbGVfbmFtZX0vYmFzZRLmBgoaRGVsZXRlT3JnYW5pemF0aW9uUm9sZUJhc2USNC5zY2FsZWtpdC52MS5yb2xlcy5EZWxldGVPcmdhbml6YXRpb25Sb2xlQmFzZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHki+QWSQaMFCgVSb2xlcxIkUmVtb3ZlIG9yZ2FuaXphdGlvbiByb2xlIGluaGVyaXRhbmNlGugDUmVtb3ZlcyB0aGUgYmFzZSByb2xlIGluaGVyaXRhbmNlIHJlbGF0aW9uc2hpcCBmb3IgYSBzcGVjaWZpZWQgb3JnYW5pemF0aW9uIHJvbGUsIGVmZmVjdGl2ZWx5IGVsaW1pbmF0aW5nIGFsbCBpbmhlcml0ZWQgcGVybWlzc2lvbnMgZnJvbSB0aGUgYmFzZSByb2xlLiBVc2UgdGhpcyBlbmRwb2ludCB3aGVuIHlvdSB3YW50IHRvIGJyZWFrIHRoZSBoaWVyYXJjaGljYWwgcmVsYXRpb25zaGlwIGJldHdlZW4gcm9sZXMgYW5kIHJlbW92ZSBpbmhlcml0ZWQgcGVybWlzc2lvbnMgd2l0aGluIHRoZSBvcmdhbml6YXRpb24uIFRoZSByb2xlIHdpbGwgcmV0YWluIG9ubHkgaXRzIGRpcmVjdGx5IGFzc2lnbmVkIHBlcm1pc3Npb25zIGFmdGVyIHRoaXMgb3BlcmF0aW9uLiBUaGlzIGFjdGlvbiBjYW5ub3QgYmUgdW5kb25lLCBzbyBlbnN1cmUgdGhlIHJvbGUgaGFzIHN1ZmZpY2llbnQgZGlyZWN0IHBlcm1pc3Npb25zIGJlZm9yZSByZW1vdmluZyBpbmhlcml0YW5jZS5KiAEKAzIwMBKAAQp+T3JnYW5pemF0aW9uIHJvbGUgYmFzZSBpbmhlcml0YW5jZSByZWxhdGlvbnNoaXAgc3VjY2Vzc2Z1bGx5IHJlbW92ZWQuIFRoZSByb2xlIG5vdyBoYXMgb25seSBpdHMgZGlyZWN0bHkgYXNzaWduZWQgcGVybWlzc2lvbnMugrUYAhhE+tLkkwIJEgdQUkVWSUVXgtPkkwI3KjUvYXBpL3YxL29yZ2FuaXphdGlvbnMve29yZ19pZH0vcm9sZXMve3JvbGVfbmFtZX0vYmFzZRLPBwoQQ3JlYXRlUGVybWlzc2lvbhIqLnNjYWxla2l0LnYxLnJvbGVzLkNyZWF0ZVBlcm1pc3Npb25SZXF1ZXN0Gisuc2NhbGVraXQudjEucm9sZXMuQ3JlYXRlUGVybWlzc2lvblJlc3BvbnNlIuEGkkGwBgoLUGVybWlzc2lvbnMSFUNyZWF0ZSBuZXcgcGVybWlzc2lvbhrGBENyZWF0ZXMgYSBuZXcgcGVybWlzc2lvbiB0aGF0IHJlcHJlc2VudHMgYSBzcGVjaWZpYyBhY3Rpb24gdXNlcnMgY2FuIHBlcmZvcm0gd2l0aGluIHRoZSBlbnZpcm9ubWVudC4gVXNlIHRoaXMgZW5kcG9pbnQgdG8gZGVmaW5lIGdyYW51bGFyIGFjY2VzcyBjb250cm9scyBmb3IgeW91ciBSQkFDIHN5c3RlbS4gWW91IGNhbiBwcm92aWRlIGEgdW5pcXVlIHBlcm1pc3Npb24gbmFtZSBmb2xsb3dpbmcgdGhlIGZvcm1hdCAnYWN0aW9uOnJlc291cmNlJyAoZm9yIGV4YW1wbGUsICdyZWFkOmRvY3VtZW50cycsICd3cml0ZTp1c2VycycpIGFuZCBhbiBvcHRpb25hbCBkZXNjcmlwdGlvbiBleHBsYWluaW5nIHRoZSBwZXJtaXNzaW9uJ3MgcHVycG9zZS4gVGhlIHBlcm1pc3Npb24gbmFtZSBtdXN0IGJlIHVuaXF1ZSBhY3Jvc3MgdGhlIGVudmlyb25tZW50IGFuZCBmb2xsb3dzIGFscGhhbnVtZXJpYyBuYW1pbmcgY29udmVudGlvbnMgd2l0aCBjb2xvbnMgYW5kIHVuZGVyc2NvcmVzLiBSZXR1cm5zIHRoZSBjcmVhdGVkIHBlcm1pc3Npb24gb2JqZWN0IGluY2x1ZGluZyBzeXN0ZW0tZ2VuZXJhdGVkIElEIGFuZCB0aW1lc3RhbXBzLkrAAQoDMjAxErgBCoQBUGVybWlzc2lvbiBjcmVhdGVkIHN1Y2Nlc3NmdWxseS4gUmV0dXJucyB0aGUgY29tcGxldGUgcGVybWlzc2lvbiBvYmplY3Qgd2l0aCBzeXN0ZW0tZ2VuZXJhdGVkIElELCBuYW1lLCBkZXNjcmlwdGlvbiwgYW5kIHRpbWVzdGFtcHMuEi8KLRorLnNjYWxla2l0LnYxLnJvbGVzLkNyZWF0ZVBlcm1pc3Npb25SZXNwb25zZYK1GAIYRILT5JMCIToKcGVybWlzc2lvbiITL2FwaS92MS9wZXJtaXNzaW9ucxK9BwoNR2V0UGVybWlzc2lvbhInLnNjYWxla2l0LnYxLnJvbGVzLkdldFBlcm1pc3Npb25SZXF1ZXN0Giguc2NhbGVraXQudjEucm9sZXMuR2V0UGVybWlzc2lvblJlc3BvbnNlItgGkkGhBgoLUGVybWlzc2lvbnMSG1JldHJpZXZlIHBlcm1pc3Npb24gZGV0YWlscxqqBFJldHJpZXZlcyBjb21wbGV0ZSBpbmZvcm1hdGlvbiBmb3IgYSBzcGVjaWZpYyBwZXJtaXNzaW9uIGJ5IGl0cyB1bmlxdWUgbmFtZSBpZGVudGlmaWVyLiBVc2UgdGhpcyBlbmRwb2ludCB0byB2aWV3IHBlcm1pc3Npb24gZGV0YWlscyBpbmNsdWRpbmcgZGVzY3JpcHRpb24sIGNyZWF0aW9uIHRpbWUsIGFuZCBsYXN0IHVwZGF0ZSB0aW1lLiBQcm92aWRlIHRoZSBwZXJtaXNzaW9uIG5hbWUgaW4gdGhlIHBhdGggcGFyYW1ldGVyIGZvbGxvd2luZyB0aGUgZm9ybWF0ICdhY3Rpb246cmVzb3VyY2UnIChmb3IgZXhhbXBsZSwgJ3JlYWQ6ZG9jdW1lbnRzJykuIFRoaXMgb3BlcmF0aW9uIGlzIHVzZWZ1bCBmb3IgYXVkaXRpbmcgcGVybWlzc2lvbiBkZWZpbml0aW9ucywgdW5kZXJzdGFuZGluZyBwZXJtaXNzaW9uIHB1cnBvc2VzLCBvciB2ZXJpZnlpbmcgcGVybWlzc2lvbiBleGlzdGVuY2UgYmVmb3JlIGFzc2lnbm1lbnQuIFJldHVybnMgdGhlIGNvbXBsZXRlIHBlcm1pc3Npb24gb2JqZWN0IHdpdGggYWxsIG1ldGFkYXRhIGFuZCBzeXN0ZW0tZ2VuZXJhdGVkIHRpbWVzdGFtcHMuSscBCgMyMDASvwEKjgFTdWNjZXNzZnVsbHkgcmV0cmlldmVkIHBlcm1pc3Npb24gZGV0YWlscy4gUmV0dXJucyB0aGUgY29tcGxldGUgcGVybWlzc2lvbiBvYmplY3QgaW5jbHVkaW5nIG5hbWUsIGRlc2NyaXB0aW9uLCBjcmVhdGlvbiB0aW1lLCBhbmQgdXBkYXRlIHRpbWUuEiwKKhooLnNjYWxla2l0LnYxLnJvbGVzLkdldFBlcm1pc3Npb25SZXNwb25zZYK1GAIYRILT5JMCJxIlL2FwaS92MS9wZXJtaXNzaW9ucy97cGVybWlzc2lvbl9uYW1lfRKDCAoQVXBkYXRlUGVybWlzc2lvbhIqLnNjYWxla2l0LnYxLnJvbGVzLlVwZGF0ZVBlcm1pc3Npb25SZXF1ZXN0Gisuc2NhbGVraXQudjEucm9sZXMuVXBkYXRlUGVybWlzc2lvblJlc3BvbnNlIpUHkkHSBgoLUGVybWlzc2lvbnMSGVVwZGF0ZSBwZXJtaXNzaW9uIGRldGFpbHMa+QRNb2RpZmllcyBhbiBleGlzdGluZyBwZXJtaXNzaW9uJ3MgYXR0cmlidXRlcyBpbmNsdWRpbmcgZGVzY3JpcHRpb24gYW5kIG1ldGFkYXRhLiBVc2UgdGhpcyBlbmRwb2ludCB0byB1cGRhdGUgcGVybWlzc2lvbiBkZXNjcmlwdGlvbnMgb3IgY2xhcmlmeSBwZXJtaXNzaW9uIHB1cnBvc2VzIGFmdGVyIGNyZWF0aW9uLiBUaGUgcGVybWlzc2lvbiBpcyBpZGVudGlmaWVkIGJ5IGl0cyB1bmlxdWUgbmFtZSBpbiB0aGUgcGF0aCBwYXJhbWV0ZXIsIGFuZCBvbmx5IHRoZSBmaWVsZHMgeW91IHNwZWNpZnkgaW4gdGhlIHJlcXVlc3QgYm9keSB3aWxsIGJlIHVwZGF0ZWQuIE5vdGUgdGhhdCB0aGUgcGVybWlzc2lvbiBuYW1lIGl0c2VsZiBjYW5ub3QgYmUgY2hhbmdlZCBhcyBpdCBzZXJ2ZXMgYXMgdGhlIGltbXV0YWJsZSBpZGVudGlmaWVyLiBUaGlzIG9wZXJhdGlvbiBpcyB1c2VmdWwgZm9yIG1haW50YWluaW5nIGNsZWFyIGRvY3VtZW50YXRpb24gb2YgcGVybWlzc2lvbiBwdXJwb3NlcyBvciB1cGRhdGluZyBkZXNjcmlwdGlvbnMgdG8gcmVmbGVjdCBjaGFuZ2VzIGluIHN5c3RlbSBmdW5jdGlvbmFsaXR5LiBSZXR1cm5zIHRoZSB1cGRhdGVkIHBlcm1pc3Npb24gb2JqZWN0IHdpdGggbW9kaWZpZWQgdGltZXN0YW1wcy5KqwEKAzIwMBKjAQpwUGVybWlzc2lvbiB1cGRhdGVkIHN1Y2Nlc3NmdWxseS4gUmV0dXJucyB0aGUgbW9kaWZpZWQgcGVybWlzc2lvbiBvYmplY3Qgd2l0aCB1cGRhdGVkIGRlc2NyaXB0aW9uIGFuZCB0aW1lc3RhbXBzLhIvCi0aKy5zY2FsZWtpdC52MS5yb2xlcy5VcGRhdGVQZXJtaXNzaW9uUmVzcG9uc2WCtRgCGESC0+STAjM6CnBlcm1pc3Npb24aJS9hcGkvdjEvcGVybWlzc2lvbnMve3Blcm1pc3Npb25fbmFtZX0S8QcKD0xpc3RQZXJtaXNzaW9ucxIpLnNjYWxla2l0LnYxLnJvbGVzLkxpc3RQZXJtaXNzaW9uc1JlcXVlc3QaKi5zY2FsZWtpdC52MS5yb2xlcy5MaXN0UGVybWlzc2lvbnNSZXNwb25zZSKGB5JB4QYKC1Blcm1pc3Npb25zEhRMaXN0IGFsbCBwZXJtaXNzaW9ucxrrBFJldHJpZXZlcyBhIGNvbXByZWhlbnNpdmUsIHBhZ2luYXRlZCBsaXN0IG9mIGFsbCBwZXJtaXNzaW9ucyBhdmFpbGFibGUgd2l0aGluIHRoZSBlbnZpcm9ubWVudC4gVXNlIHRoaXMgZW5kcG9pbnQgdG8gdmlldyBhbGwgcGVybWlzc2lvbiBkZWZpbml0aW9ucyBmb3IgYXVkaXRpbmcsIHJvbGUgbWFuYWdlbWVudCwgb3IgdW5kZXJzdGFuZGluZyB0aGUgY29tcGxldGUgc2V0IG9mIGF2YWlsYWJsZSBhY2Nlc3MgY29udHJvbHMuIFRoZSByZXNwb25zZSBpbmNsdWRlcyBwYWdpbmF0aW9uIHRva2VucyB0byBuYXZpZ2F0ZSB0aHJvdWdoIGxhcmdlIHNldHMgb2YgcGVybWlzc2lvbnMgZWZmaWNpZW50bHkuIEVhY2ggcGVybWlzc2lvbiBvYmplY3QgY29udGFpbnMgdGhlIHBlcm1pc3Npb24gbmFtZSwgZGVzY3JpcHRpb24sIGNyZWF0aW9uIHRpbWUsIGFuZCBsYXN0IHVwZGF0ZSB0aW1lLiBUaGlzIG9wZXJhdGlvbiBpcyB1c2VmdWwgZm9yIGJ1aWxkaW5nIHBlcm1pc3Npb24gc2VsZWN0aW9uIGludGVyZmFjZXMsIGF1ZGl0aW5nIHBlcm1pc3Npb24gdXNhZ2UsIG9yIHVuZGVyc3RhbmRpbmcgdGhlIHNjb3BlIG9mIGF2YWlsYWJsZSBhY2Nlc3MgY29udHJvbHMgaW4geW91ciBSQkFDIHN5c3RlbS5KzQEKAzIwMBLFAQqSAVN1Y2Nlc3NmdWxseSByZXRyaWV2ZWQgdGhlIGxpc3Qgb2YgcGVybWlzc2lvbnMuIFJldHVybnMgYSBwYWdpbmF0ZWQgbGlzdCBvZiBwZXJtaXNzaW9uIG9iamVjdHMgd2l0aCBtZXRhZGF0YSBhbmQgcGFnaW5hdGlvbiB0b2tlbnMgZm9yIG5hdmlnYXRpb24uEi4KLBoqLnNjYWxla2l0LnYxLnJvbGVzLkxpc3RQZXJtaXNzaW9uc1Jlc3BvbnNlgrUYAhhEgtPkkwIVEhMvYXBpL3YxL3Blcm1pc3Npb25zEtAGChBEZWxldGVQZXJtaXNzaW9uEiouc2NhbGVraXQudjEucm9sZXMuRGVsZXRlUGVybWlzc2lvblJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHki9wWSQcAFCgtQZXJtaXNzaW9ucxIRRGVsZXRlIHBlcm1pc3Npb24a3QRQZXJtYW5lbnRseSByZW1vdmVzIGEgcGVybWlzc2lvbiBmcm9tIHRoZSBlbnZpcm9ubWVudCB1c2luZyBpdHMgdW5pcXVlIG5hbWUgaWRlbnRpZmllci4gVXNlIHRoaXMgZW5kcG9pbnQgd2hlbiB5b3UgbmVlZCB0byBjbGVhbiB1cCB1bnVzZWQgcGVybWlzc2lvbnMgb3IgcmVtb3ZlIGFjY2VzcyBjb250cm9scyB0aGF0IGFyZSBubyBsb25nZXIgcmVsZXZhbnQuIFRoZSBwZXJtaXNzaW9uIGlzIGlkZW50aWZpZWQgYnkgaXRzIG5hbWUgaW4gdGhlIHBhdGggcGFyYW1ldGVyIGZvbGxvd2luZyB0aGUgZm9ybWF0ICdhY3Rpb246cmVzb3VyY2UnLiBUaGlzIG9wZXJhdGlvbiBjYW5ub3QgYmUgdW5kb25lLCBzbyBlbnN1cmUgbm8gYWN0aXZlIHJvbGVzIGRlcGVuZCBvbiB0aGUgcGVybWlzc2lvbiBiZWZvcmUgZGVsZXRpb24uIElmIHRoZSBwZXJtaXNzaW9uIGlzIGN1cnJlbnRseSBhc3NpZ25lZCB0byBhbnkgcm9sZXMsIHlvdSBtYXkgbmVlZCB0byByZW1vdmUgdGhvc2UgYXNzaWdubWVudHMgZmlyc3Qgb3IgdXBkYXRlIHRoZSByb2xlcyB0byB1c2UgYWx0ZXJuYXRpdmUgcGVybWlzc2lvbnMuIFJldHVybnMgbm8gY29udGVudCBvbiBzdWNjZXNzZnVsIGRlbGV0aW9uLko+CgMyMDASNwo1UGVybWlzc2lvbiBzdWNjZXNzZnVsbHkgZGVsZXRlZC4gTm8gY29udGVudCByZXR1cm5lZC6CtRgCGESC0+STAicqJS9hcGkvdjEvcGVybWlzc2lvbnMve3Blcm1pc3Npb25fbmFtZX0SgAkKE0xpc3RSb2xlUGVybWlzc2lvbnMSLS5zY2FsZWtpdC52MS5yb2xlcy5MaXN0Um9sZVBlcm1pc3Npb25zUmVxdWVzdBouLnNjYWxla2l0LnYxLnJvbGVzLkxpc3RSb2xlUGVybWlzc2lvbnNSZXNwb25zZSKJCJJB0gcKBVJvbGVzEhlMaXN0IHBlcm1pc3Npb25zIGZvciByb2xlGtcFUmV0cmlldmVzIGFsbCBwZXJtaXNzaW9ucyBkaXJlY3RseSBhc3NpZ25lZCB0byB0aGUgc3BlY2lmaWVkIHJvbGUsIGV4Y2x1ZGluZyBwZXJtaXNzaW9ucyBpbmhlcml0ZWQgZnJvbSBiYXNlIHJvbGVzLiBVc2UgdGhpcyBlbmRwb2ludCB0byB2aWV3IHRoZSBleHBsaWNpdCBwZXJtaXNzaW9uIGFzc2lnbm1lbnRzIGZvciBhIHJvbGUsIHdoaWNoIGlzIHVzZWZ1bCBmb3IgdW5kZXJzdGFuZGluZyBkaXJlY3Qgcm9sZSBjYXBhYmlsaXRpZXMsIGF1ZGl0aW5nIHBlcm1pc3Npb24gYXNzaWdubWVudHMsIG9yIG1hbmFnaW5nIHJvbGUtcGVybWlzc2lvbiByZWxhdGlvbnNoaXBzLiBQcm92aWRlIHRoZSByb2xlIG5hbWUgYXMgYSBwYXRoIHBhcmFtZXRlciwgYW5kIHRoZSByZXNwb25zZSB3aWxsIGluY2x1ZGUgb25seSB0aGUgcGVybWlzc2lvbnMgdGhhdCBhcmUgZGlyZWN0bHkgYXNzaWduZWQgdG8gdGhhdCByb2xlLiBUaGlzIG9wZXJhdGlvbiBkb2VzIG5vdCBpbmNsdWRlIGluaGVyaXRlZCBwZXJtaXNzaW9ucyBmcm9tIHJvbGUgaGllcmFyY2hpZXMgLSB1c2UgTGlzdEVmZmVjdGl2ZVJvbGVQZXJtaXNzaW9ucyB0byBzZWUgdGhlIGNvbXBsZXRlIHNldCBvZiBwZXJtaXNzaW9ucyBpbmNsdWRpbmcgaW5oZXJpdGFuY2UuIFJldHVybnMgYSBsaXN0IG9mIHBlcm1pc3Npb24gb2JqZWN0cyB3aXRoIHRoZWlyIG5hbWVzLCBkZXNjcmlwdGlvbnMsIGFuZCBhc3NpZ25tZW50IG1ldGFkYXRhLkrTAQoDMjAwEssBCpQBU3VjY2Vzc2Z1bGx5IHJldHJpZXZlZCByb2xlIHBlcm1pc3Npb25zLiBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgcGVybWlzc2lvbnMgZGlyZWN0bHkgYXNzaWduZWQgdG8gdGhlIHNwZWNpZmllZCByb2xlLCBleGNsdWRpbmcgaW5oZXJpdGVkIHBlcm1pc3Npb25zLhIyCjAaLi5zY2FsZWtpdC52MS5yb2xlcy5MaXN0Um9sZVBlcm1pc3Npb25zUmVzcG9uc2WCtRgCGESC0+STAicSJS9hcGkvdjEvcm9sZXMve3JvbGVfbmFtZX0vcGVybWlzc2lvbnMS+ggKFEFkZFBlcm1pc3Npb25zVG9Sb2xlEi4uc2NhbGVraXQudjEucm9sZXMuQWRkUGVybWlzc2lvbnNUb1JvbGVSZXF1ZXN0Gi8uc2NhbGVraXQudjEucm9sZXMuQWRkUGVybWlzc2lvbnNUb1JvbGVSZXNwb25zZSKACJJBxgcKBVJvbGVzEhdBZGQgcGVybWlzc2lvbnMgdG8gcm9sZRq9BUFkZHMgb25lIG9yIG1vcmUgcGVybWlzc2lvbnMgdG8gdGhlIHNwZWNpZmllZCByb2xlIHdoaWxlIHByZXNlcnZpbmcgZXhpc3RpbmcgcGVybWlzc2lvbiBhc3NpZ25tZW50cy4gVXNlIHRoaXMgZW5kcG9pbnQgdG8gZ3JhbnQgYWRkaXRpb25hbCBjYXBhYmlsaXRpZXMgdG8gYSByb2xlIHdpdGhvdXQgYWZmZWN0aW5nIGl0cyBjdXJyZW50IHBlcm1pc3Npb24gc2V0LiBQcm92aWRlIHRoZSByb2xlIG5hbWUgYXMgYSBwYXRoIHBhcmFtZXRlciBhbmQgYSBsaXN0IG9mIHBlcm1pc3Npb24gbmFtZXMgaW4gdGhlIHJlcXVlc3QgYm9keS4gVGhlIHN5c3RlbSB3aWxsIHZhbGlkYXRlIHRoYXQgYWxsIHNwZWNpZmllZCBwZXJtaXNzaW9ucyBleGlzdCBpbiB0aGUgZW52aXJvbm1lbnQgYW5kIGFkZCB0aGVtIHRvIHRoZSByb2xlLiBFeGlzdGluZyBwZXJtaXNzaW9uIGFzc2lnbm1lbnRzIHJlbWFpbiB1bmNoYW5nZWQsIG1ha2luZyB0aGlzIG9wZXJhdGlvbiBzYWZlIGZvciBpbmNyZW1lbnRhbCBwZXJtaXNzaW9uIG1hbmFnZW1lbnQuIFRoaXMgaXMgdXNlZnVsIGZvciBncmFkdWFsbHkgZXhwYW5kaW5nIHJvbGUgY2FwYWJpbGl0aWVzIG9yIGFkZGluZyBuZXcgcGVybWlzc2lvbnMgYXMgeW91ciBzeXN0ZW0gZXZvbHZlcy4gUmV0dXJucyB0aGUgdXBkYXRlZCBsaXN0IG9mIGFsbCBwZXJtaXNzaW9ucyBub3cgYXNzaWduZWQgdG8gdGhlIHJvbGUuSuMBCgMyMDAS2wEKowFQZXJtaXNzaW9ucyBhZGRlZCB0byByb2xlIHN1Y2Nlc3NmdWxseS4gUmV0dXJucyB0aGUgY29tcGxldGUgbGlzdCBvZiBhbGwgcGVybWlzc2lvbnMgbm93IGFzc2lnbmVkIHRvIHRoZSByb2xlLCBpbmNsdWRpbmcgYm90aCBleGlzdGluZyBhbmQgbmV3bHkgYWRkZWQgcGVybWlzc2lvbnMuEjMKMRovLnNjYWxla2l0LnYxLnJvbGVzLkFkZFBlcm1pc3Npb25zVG9Sb2xlUmVzcG9uc2WCtRgCGESC0+STAio6ASoiJS9hcGkvdjEvcm9sZXMve3JvbGVfbmFtZX0vcGVybWlzc2lvbnMStwcKGFJlbW92ZVBlcm1pc3Npb25Gcm9tUm9sZRIyLnNjYWxla2l0LnYxLnJvbGVzLlJlbW92ZVBlcm1pc3Npb25Gcm9tUm9sZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkizgaSQYUGCgVSb2xlcxIbUmVtb3ZlIHBlcm1pc3Npb24gZnJvbSByb2xlGpQFUmVtb3ZlcyBhIHNwZWNpZmljIHBlcm1pc3Npb24gZnJvbSB0aGUgc3BlY2lmaWVkIHJvbGUsIHJldm9raW5nIHRoYXQgY2FwYWJpbGl0eSBmcm9tIGFsbCB1c2VycyBhc3NpZ25lZCB0byB0aGUgcm9sZS4gVXNlIHRoaXMgZW5kcG9pbnQgdG8gcmVzdHJpY3Qgcm9sZSBjYXBhYmlsaXRpZXMgb3IgcmVtb3ZlIHVubmVjZXNzYXJ5IHBlcm1pc3Npb25zLiBQcm92aWRlIGJvdGggdGhlIHJvbGUgbmFtZSBhbmQgcGVybWlzc2lvbiBuYW1lIGFzIHBhdGggcGFyYW1ldGVycy4gVGhpcyBvcGVyYXRpb24gb25seSBhZmZlY3RzIHRoZSBkaXJlY3QgcGVybWlzc2lvbiBhc3NpZ25tZW50IGFuZCBkb2VzIG5vdCBpbXBhY3QgcGVybWlzc2lvbnMgaW5oZXJpdGVkIGZyb20gYmFzZSByb2xlcy4gSWYgdGhlIHBlcm1pc3Npb24gaXMgaW5oZXJpdGVkIHRocm91Z2ggcm9sZSBoaWVyYXJjaHksIHlvdSBtYXkgbmVlZCB0byBtb2RpZnkgdGhlIGJhc2Ugcm9sZSBpbnN0ZWFkLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZmluZS10dW5pbmcgcm9sZSBwZXJtaXNzaW9ucywgaW1wbGVtZW50aW5nIGxlYXN0LXByaXZpbGVnZSBhY2Nlc3MgY29udHJvbHMsIG9yIHJlbW92aW5nIGRlcHJlY2F0ZWQgcGVybWlzc2lvbnMuIFJldHVybnMgbm8gY29udGVudCBvbiBzdWNjZXNzZnVsIHJlbW92YWwuSkgKAzIwMBJBCj9QZXJtaXNzaW9uIHJlbW92ZWQgZnJvbSByb2xlIHN1Y2Nlc3NmdWxseS4gTm8gY29udGVudCByZXR1cm5lZC6CtRgCGESC0+STAjkqNy9hcGkvdjEvcm9sZXMve3JvbGVfbmFtZX0vcGVybWlzc2lvbnMve3Blcm1pc3Npb25fbmFtZX0S3wkKHExpc3RFZmZlY3RpdmVSb2xlUGVybWlzc2lvbnMSNi5zY2FsZWtpdC52MS5yb2xlcy5MaXN0RWZmZWN0aXZlUm9sZVBlcm1pc3Npb25zUmVxdWVzdBo3LnNjYWxla2l0LnYxLnJvbGVzLkxpc3RFZmZlY3RpdmVSb2xlUGVybWlzc2lvbnNSZXNwb25zZSLNCJJBkggKBVJvbGVzEiNMaXN0IGVmZmVjdGl2ZSBwZXJtaXNzaW9ucyBmb3Igcm9sZRrZBVJldHJpZXZlcyB0aGUgY29tcGxldGUgc2V0IG9mIGVmZmVjdGl2ZSBwZXJtaXNzaW9ucyBmb3IgYSByb2xlLCBpbmNsdWRpbmcgYm90aCBkaXJlY3RseSBhc3NpZ25lZCBwZXJtaXNzaW9ucyBhbmQgcGVybWlzc2lvbnMgaW5oZXJpdGVkIGZyb20gYmFzZSByb2xlcyB0aHJvdWdoIHRoZSByb2xlIGhpZXJhcmNoeS4gVXNlIHRoaXMgZW5kcG9pbnQgdG8gdW5kZXJzdGFuZCB0aGUgZnVsbCBzY29wZSBvZiBjYXBhYmlsaXRpZXMgYXZhaWxhYmxlIHRvIHVzZXJzIGFzc2lnbmVkIHRvIGEgc3BlY2lmaWMgcm9sZS4gUHJvdmlkZSB0aGUgcm9sZSBuYW1lIGFzIGEgcGF0aCBwYXJhbWV0ZXIsIGFuZCB0aGUgcmVzcG9uc2Ugd2lsbCBpbmNsdWRlIGFsbCBwZXJtaXNzaW9ucyB0aGF0IGFwcGx5IHRvIHRoZSByb2xlLCBhY2NvdW50aW5nIGZvciBpbmhlcml0YW5jZSByZWxhdGlvbnNoaXBzLiBUaGlzIG9wZXJhdGlvbiBpcyBlc3NlbnRpYWwgZm9yIGF1ZGl0aW5nIHJvbGUgY2FwYWJpbGl0aWVzLCB1bmRlcnN0YW5kaW5nIHBlcm1pc3Npb24gaW5oZXJpdGFuY2UsIG9yIHZlcmlmeWluZyB0aGUgY29tcGxldGUgYWNjZXNzIHNjb3BlIGJlZm9yZSByb2xlIGFzc2lnbm1lbnQuIFJldHVybnMgYSBjb21wcmVoZW5zaXZlIGxpc3Qgb2YgcGVybWlzc2lvbiBuYW1lcyByZXByZXNlbnRpbmcgdGhlIGZ1bGwgc2V0IG9mIGVmZmVjdGl2ZSBwZXJtaXNzaW9ucyBmb3IgdGhlIHNwZWNpZmllZCByb2xlLkqHAgoDMjAwEv8BCr8BU3VjY2Vzc2Z1bGx5IHJldHJpZXZlZCBlZmZlY3RpdmUgcGVybWlzc2lvbnMuIFJldHVybnMgdGhlIGNvbXBsZXRlIGxpc3Qgb2YgYWxsIHBlcm1pc3Npb25zIHRoYXQgYXBwbHkgdG8gdGhlIHJvbGUsIGluY2x1ZGluZyBib3RoIGRpcmVjdCBhc3NpZ25tZW50cyBhbmQgaW5oZXJpdGVkIHBlcm1pc3Npb25zIGZyb20gYmFzZSByb2xlcy4SOwo5Gjcuc2NhbGVraXQudjEucm9sZXMuTGlzdEVmZmVjdGl2ZVJvbGVQZXJtaXNzaW9uc1Jlc3BvbnNlgrUYAhhEgtPkkwIrEikvYXBpL3YxL3JvbGVzL3tyb2xlX25hbWV9L3Blcm1pc3Npb25zOmFsbBriApJB3gIKBVJvbGVzEtQCUm9sZS1iYXNlZCBhY2Nlc3MgY29udHJvbCAoUkJBQykgZm9yIGRlZmluaW5nIGFuZCBtYW5hZ2luZyBwZXJtaXNzaW9ucyBpbiBhbiBlbnZpcm9ubWVudC4gQ3JlYXRlIGFuZCB1cGRhdGUgY3VzdG9tIHJvbGVzIHdpdGggZXhwbGljaXQgcGVybWlzc2lvbnMsIG1vZGVsIHJvbGUgaGllcmFyY2hpZXMgdGhyb3VnaCBpbmhlcml0YW5jZSwgdmlldyBkZXBlbmRlbnQgcm9sZXMsIG1hbmFnZSByb2xlLXBlcm1pc3Npb24gYXNzaWdubWVudHMsIGFuZCBsaXN0IHJvbGVzIGFuZCBwZXJtaXNzaW9ucy4gQWxzbyBwcm92aWRlcyBhIHV0aWxpdHkgdG8gY291bnQgdXNlcnMgYXNzaWduZWQgdG8gYSByb2xlLkIxWi9naXRodWIuY29tL3NjYWxla2l0LWluYy9zY2FsZWtpdC9wa2cvZ3JwYy9yb2xlc2IGcHJvdG8z", [file_buf_validate_validate, file_google_api_annotations, file_google_api_field_behavior, file_google_api_visibility, file_google_protobuf_empty, file_google_protobuf_timestamp, file_protoc_gen_openapiv2_options_annotations, file_scalekit_v1_options_options]);
34
22
 
35
23
  /**
36
24
  * @generated from message scalekit.v1.roles.Role
37
25
  */
38
- export class Role extends Message<Role> {
26
+ export type Role = Message<"scalekit.v1.roles.Role"> & {
39
27
  /**
40
28
  * @generated from field: string id = 1;
41
29
  */
42
- id = "";
30
+ id: string;
43
31
 
44
32
  /**
45
33
  * @generated from field: string name = 2;
46
34
  */
47
- name = "";
35
+ name: string;
48
36
 
49
37
  /**
50
38
  * @generated from field: string display_name = 3;
51
39
  */
52
- displayName = "";
40
+ displayName: string;
53
41
 
54
42
  /**
55
43
  * @generated from field: string description = 4;
56
44
  */
57
- description = "";
45
+ description: string;
58
46
 
59
47
  /**
60
48
  * @generated from field: bool default_creator = 6;
61
49
  */
62
- defaultCreator = false;
50
+ defaultCreator: boolean;
63
51
 
64
52
  /**
65
53
  * @generated from field: bool default_member = 7;
66
54
  */
67
- defaultMember = false;
55
+ defaultMember: boolean;
68
56
 
69
57
  /**
70
58
  * @generated from field: optional string extends = 8;
@@ -74,68 +62,39 @@ export class Role extends Message<Role> {
74
62
  /**
75
63
  * @generated from field: repeated scalekit.v1.roles.RolePermission permissions = 9;
76
64
  */
77
- permissions: RolePermission[] = [];
65
+ permissions: RolePermission[];
78
66
 
79
67
  /**
80
68
  * @generated from field: int32 dependent_roles_count = 10;
81
69
  */
82
- dependentRolesCount = 0;
70
+ dependentRolesCount: number;
83
71
 
84
72
  /**
85
73
  * @generated from field: bool is_org_role = 11;
86
74
  */
87
- isOrgRole = false;
88
-
89
- constructor(data?: PartialMessage<Role>) {
90
- super();
91
- proto3.util.initPartial(data, this);
92
- }
93
-
94
- static readonly runtime: typeof proto3 = proto3;
95
- static readonly typeName = "scalekit.v1.roles.Role";
96
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
97
- { no: 1, name: "id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
98
- { no: 2, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
99
- { no: 3, name: "display_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
100
- { no: 4, name: "description", kind: "scalar", T: 9 /* ScalarType.STRING */ },
101
- { no: 6, name: "default_creator", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
102
- { no: 7, name: "default_member", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
103
- { no: 8, name: "extends", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
104
- { no: 9, name: "permissions", kind: "message", T: RolePermission, repeated: true },
105
- { no: 10, name: "dependent_roles_count", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
106
- { no: 11, name: "is_org_role", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
107
- ]);
108
-
109
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): Role {
110
- return new Role().fromBinary(bytes, options);
111
- }
112
-
113
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): Role {
114
- return new Role().fromJson(jsonValue, options);
115
- }
116
-
117
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): Role {
118
- return new Role().fromJsonString(jsonString, options);
119
- }
120
-
121
- static equals(a: Role | PlainMessage<Role> | undefined, b: Role | PlainMessage<Role> | undefined): boolean {
122
- return proto3.util.equals(Role, a, b);
123
- }
124
- }
75
+ isOrgRole: boolean;
76
+ };
77
+
78
+ /**
79
+ * Describes the message scalekit.v1.roles.Role.
80
+ * Use `create(RoleSchema)` to create a new message.
81
+ */
82
+ export const RoleSchema: GenMessage<Role> = /*@__PURE__*/
83
+ messageDesc(file_scalekit_v1_roles_roles, 0);
125
84
 
126
85
  /**
127
86
  * @generated from message scalekit.v1.roles.CreateRole
128
87
  */
129
- export class CreateRole extends Message<CreateRole> {
88
+ export type CreateRole = Message<"scalekit.v1.roles.CreateRole"> & {
130
89
  /**
131
90
  * @generated from field: string name = 2;
132
91
  */
133
- name = "";
92
+ name: string;
134
93
 
135
94
  /**
136
95
  * @generated from field: string display_name = 3;
137
96
  */
138
- displayName = "";
97
+ displayName: string;
139
98
 
140
99
  /**
141
100
  * @generated from field: optional string description = 4;
@@ -150,53 +109,29 @@ export class CreateRole extends Message<CreateRole> {
150
109
  /**
151
110
  * @generated from field: repeated string permissions = 9;
152
111
  */
153
- permissions: string[] = [];
154
-
155
- constructor(data?: PartialMessage<CreateRole>) {
156
- super();
157
- proto3.util.initPartial(data, this);
158
- }
159
-
160
- static readonly runtime: typeof proto3 = proto3;
161
- static readonly typeName = "scalekit.v1.roles.CreateRole";
162
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
163
- { no: 2, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
164
- { no: 3, name: "display_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
165
- { no: 4, name: "description", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
166
- { no: 8, name: "extends", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
167
- { no: 9, name: "permissions", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
168
- ]);
169
-
170
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateRole {
171
- return new CreateRole().fromBinary(bytes, options);
172
- }
173
-
174
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateRole {
175
- return new CreateRole().fromJson(jsonValue, options);
176
- }
177
-
178
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateRole {
179
- return new CreateRole().fromJsonString(jsonString, options);
180
- }
181
-
182
- static equals(a: CreateRole | PlainMessage<CreateRole> | undefined, b: CreateRole | PlainMessage<CreateRole> | undefined): boolean {
183
- return proto3.util.equals(CreateRole, a, b);
184
- }
185
- }
112
+ permissions: string[];
113
+ };
114
+
115
+ /**
116
+ * Describes the message scalekit.v1.roles.CreateRole.
117
+ * Use `create(CreateRoleSchema)` to create a new message.
118
+ */
119
+ export const CreateRoleSchema: GenMessage<CreateRole> = /*@__PURE__*/
120
+ messageDesc(file_scalekit_v1_roles_roles, 1);
186
121
 
187
122
  /**
188
123
  * @generated from message scalekit.v1.roles.CreateOrganizationRole
189
124
  */
190
- export class CreateOrganizationRole extends Message<CreateOrganizationRole> {
125
+ export type CreateOrganizationRole = Message<"scalekit.v1.roles.CreateOrganizationRole"> & {
191
126
  /**
192
127
  * @generated from field: string name = 2;
193
128
  */
194
- name = "";
129
+ name: string;
195
130
 
196
131
  /**
197
132
  * @generated from field: string display_name = 3;
198
133
  */
199
- displayName = "";
134
+ displayName: string;
200
135
 
201
136
  /**
202
137
  * @generated from field: optional string description = 4;
@@ -211,272 +146,127 @@ export class CreateOrganizationRole extends Message<CreateOrganizationRole> {
211
146
  /**
212
147
  * @generated from field: repeated string permissions = 9;
213
148
  */
214
- permissions: string[] = [];
215
-
216
- constructor(data?: PartialMessage<CreateOrganizationRole>) {
217
- super();
218
- proto3.util.initPartial(data, this);
219
- }
220
-
221
- static readonly runtime: typeof proto3 = proto3;
222
- static readonly typeName = "scalekit.v1.roles.CreateOrganizationRole";
223
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
224
- { no: 2, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
225
- { no: 3, name: "display_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
226
- { no: 4, name: "description", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
227
- { no: 8, name: "extends", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
228
- { no: 9, name: "permissions", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
229
- ]);
230
-
231
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateOrganizationRole {
232
- return new CreateOrganizationRole().fromBinary(bytes, options);
233
- }
234
-
235
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateOrganizationRole {
236
- return new CreateOrganizationRole().fromJson(jsonValue, options);
237
- }
238
-
239
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateOrganizationRole {
240
- return new CreateOrganizationRole().fromJsonString(jsonString, options);
241
- }
242
-
243
- static equals(a: CreateOrganizationRole | PlainMessage<CreateOrganizationRole> | undefined, b: CreateOrganizationRole | PlainMessage<CreateOrganizationRole> | undefined): boolean {
244
- return proto3.util.equals(CreateOrganizationRole, a, b);
245
- }
246
- }
149
+ permissions: string[];
150
+ };
151
+
152
+ /**
153
+ * Describes the message scalekit.v1.roles.CreateOrganizationRole.
154
+ * Use `create(CreateOrganizationRoleSchema)` to create a new message.
155
+ */
156
+ export const CreateOrganizationRoleSchema: GenMessage<CreateOrganizationRole> = /*@__PURE__*/
157
+ messageDesc(file_scalekit_v1_roles_roles, 2);
247
158
 
248
159
  /**
249
160
  * @generated from message scalekit.v1.roles.CreateRoleRequest
250
161
  */
251
- export class CreateRoleRequest extends Message<CreateRoleRequest> {
162
+ export type CreateRoleRequest = Message<"scalekit.v1.roles.CreateRoleRequest"> & {
252
163
  /**
253
164
  * @generated from field: scalekit.v1.roles.CreateRole role = 2;
254
165
  */
255
166
  role?: CreateRole;
167
+ };
256
168
 
257
- constructor(data?: PartialMessage<CreateRoleRequest>) {
258
- super();
259
- proto3.util.initPartial(data, this);
260
- }
261
-
262
- static readonly runtime: typeof proto3 = proto3;
263
- static readonly typeName = "scalekit.v1.roles.CreateRoleRequest";
264
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
265
- { no: 2, name: "role", kind: "message", T: CreateRole },
266
- ]);
267
-
268
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateRoleRequest {
269
- return new CreateRoleRequest().fromBinary(bytes, options);
270
- }
271
-
272
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateRoleRequest {
273
- return new CreateRoleRequest().fromJson(jsonValue, options);
274
- }
275
-
276
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateRoleRequest {
277
- return new CreateRoleRequest().fromJsonString(jsonString, options);
278
- }
279
-
280
- static equals(a: CreateRoleRequest | PlainMessage<CreateRoleRequest> | undefined, b: CreateRoleRequest | PlainMessage<CreateRoleRequest> | undefined): boolean {
281
- return proto3.util.equals(CreateRoleRequest, a, b);
282
- }
283
- }
169
+ /**
170
+ * Describes the message scalekit.v1.roles.CreateRoleRequest.
171
+ * Use `create(CreateRoleRequestSchema)` to create a new message.
172
+ */
173
+ export const CreateRoleRequestSchema: GenMessage<CreateRoleRequest> = /*@__PURE__*/
174
+ messageDesc(file_scalekit_v1_roles_roles, 3);
284
175
 
285
176
  /**
286
177
  * @generated from message scalekit.v1.roles.CreateRoleResponse
287
178
  */
288
- export class CreateRoleResponse extends Message<CreateRoleResponse> {
179
+ export type CreateRoleResponse = Message<"scalekit.v1.roles.CreateRoleResponse"> & {
289
180
  /**
290
181
  * @generated from field: scalekit.v1.roles.Role role = 1;
291
182
  */
292
183
  role?: Role;
184
+ };
293
185
 
294
- constructor(data?: PartialMessage<CreateRoleResponse>) {
295
- super();
296
- proto3.util.initPartial(data, this);
297
- }
298
-
299
- static readonly runtime: typeof proto3 = proto3;
300
- static readonly typeName = "scalekit.v1.roles.CreateRoleResponse";
301
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
302
- { no: 1, name: "role", kind: "message", T: Role },
303
- ]);
304
-
305
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateRoleResponse {
306
- return new CreateRoleResponse().fromBinary(bytes, options);
307
- }
308
-
309
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateRoleResponse {
310
- return new CreateRoleResponse().fromJson(jsonValue, options);
311
- }
312
-
313
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateRoleResponse {
314
- return new CreateRoleResponse().fromJsonString(jsonString, options);
315
- }
316
-
317
- static equals(a: CreateRoleResponse | PlainMessage<CreateRoleResponse> | undefined, b: CreateRoleResponse | PlainMessage<CreateRoleResponse> | undefined): boolean {
318
- return proto3.util.equals(CreateRoleResponse, a, b);
319
- }
320
- }
186
+ /**
187
+ * Describes the message scalekit.v1.roles.CreateRoleResponse.
188
+ * Use `create(CreateRoleResponseSchema)` to create a new message.
189
+ */
190
+ export const CreateRoleResponseSchema: GenMessage<CreateRoleResponse> = /*@__PURE__*/
191
+ messageDesc(file_scalekit_v1_roles_roles, 4);
321
192
 
322
193
  /**
323
194
  * @generated from message scalekit.v1.roles.GetRoleRequest
324
195
  */
325
- export class GetRoleRequest extends Message<GetRoleRequest> {
196
+ export type GetRoleRequest = Message<"scalekit.v1.roles.GetRoleRequest"> & {
326
197
  /**
327
198
  * @generated from field: string role_name = 2;
328
199
  */
329
- roleName = "";
200
+ roleName: string;
330
201
 
331
202
  /**
332
203
  * @generated from field: optional string include = 3;
333
204
  */
334
205
  include?: string;
206
+ };
335
207
 
336
- constructor(data?: PartialMessage<GetRoleRequest>) {
337
- super();
338
- proto3.util.initPartial(data, this);
339
- }
340
-
341
- static readonly runtime: typeof proto3 = proto3;
342
- static readonly typeName = "scalekit.v1.roles.GetRoleRequest";
343
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
344
- { no: 2, name: "role_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
345
- { no: 3, name: "include", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
346
- ]);
347
-
348
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetRoleRequest {
349
- return new GetRoleRequest().fromBinary(bytes, options);
350
- }
351
-
352
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetRoleRequest {
353
- return new GetRoleRequest().fromJson(jsonValue, options);
354
- }
355
-
356
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetRoleRequest {
357
- return new GetRoleRequest().fromJsonString(jsonString, options);
358
- }
359
-
360
- static equals(a: GetRoleRequest | PlainMessage<GetRoleRequest> | undefined, b: GetRoleRequest | PlainMessage<GetRoleRequest> | undefined): boolean {
361
- return proto3.util.equals(GetRoleRequest, a, b);
362
- }
363
- }
208
+ /**
209
+ * Describes the message scalekit.v1.roles.GetRoleRequest.
210
+ * Use `create(GetRoleRequestSchema)` to create a new message.
211
+ */
212
+ export const GetRoleRequestSchema: GenMessage<GetRoleRequest> = /*@__PURE__*/
213
+ messageDesc(file_scalekit_v1_roles_roles, 5);
364
214
 
365
215
  /**
366
216
  * @generated from message scalekit.v1.roles.GetRoleResponse
367
217
  */
368
- export class GetRoleResponse extends Message<GetRoleResponse> {
218
+ export type GetRoleResponse = Message<"scalekit.v1.roles.GetRoleResponse"> & {
369
219
  /**
370
220
  * @generated from field: scalekit.v1.roles.Role role = 1;
371
221
  */
372
222
  role?: Role;
223
+ };
373
224
 
374
- constructor(data?: PartialMessage<GetRoleResponse>) {
375
- super();
376
- proto3.util.initPartial(data, this);
377
- }
378
-
379
- static readonly runtime: typeof proto3 = proto3;
380
- static readonly typeName = "scalekit.v1.roles.GetRoleResponse";
381
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
382
- { no: 1, name: "role", kind: "message", T: Role },
383
- ]);
384
-
385
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetRoleResponse {
386
- return new GetRoleResponse().fromBinary(bytes, options);
387
- }
388
-
389
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetRoleResponse {
390
- return new GetRoleResponse().fromJson(jsonValue, options);
391
- }
392
-
393
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetRoleResponse {
394
- return new GetRoleResponse().fromJsonString(jsonString, options);
395
- }
396
-
397
- static equals(a: GetRoleResponse | PlainMessage<GetRoleResponse> | undefined, b: GetRoleResponse | PlainMessage<GetRoleResponse> | undefined): boolean {
398
- return proto3.util.equals(GetRoleResponse, a, b);
399
- }
400
- }
225
+ /**
226
+ * Describes the message scalekit.v1.roles.GetRoleResponse.
227
+ * Use `create(GetRoleResponseSchema)` to create a new message.
228
+ */
229
+ export const GetRoleResponseSchema: GenMessage<GetRoleResponse> = /*@__PURE__*/
230
+ messageDesc(file_scalekit_v1_roles_roles, 6);
401
231
 
402
232
  /**
403
233
  * @generated from message scalekit.v1.roles.ListRolesRequest
404
234
  */
405
- export class ListRolesRequest extends Message<ListRolesRequest> {
235
+ export type ListRolesRequest = Message<"scalekit.v1.roles.ListRolesRequest"> & {
406
236
  /**
407
237
  * @generated from field: optional string include = 2;
408
238
  */
409
239
  include?: string;
240
+ };
410
241
 
411
- constructor(data?: PartialMessage<ListRolesRequest>) {
412
- super();
413
- proto3.util.initPartial(data, this);
414
- }
415
-
416
- static readonly runtime: typeof proto3 = proto3;
417
- static readonly typeName = "scalekit.v1.roles.ListRolesRequest";
418
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
419
- { no: 2, name: "include", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
420
- ]);
421
-
422
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListRolesRequest {
423
- return new ListRolesRequest().fromBinary(bytes, options);
424
- }
425
-
426
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListRolesRequest {
427
- return new ListRolesRequest().fromJson(jsonValue, options);
428
- }
429
-
430
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListRolesRequest {
431
- return new ListRolesRequest().fromJsonString(jsonString, options);
432
- }
433
-
434
- static equals(a: ListRolesRequest | PlainMessage<ListRolesRequest> | undefined, b: ListRolesRequest | PlainMessage<ListRolesRequest> | undefined): boolean {
435
- return proto3.util.equals(ListRolesRequest, a, b);
436
- }
437
- }
242
+ /**
243
+ * Describes the message scalekit.v1.roles.ListRolesRequest.
244
+ * Use `create(ListRolesRequestSchema)` to create a new message.
245
+ */
246
+ export const ListRolesRequestSchema: GenMessage<ListRolesRequest> = /*@__PURE__*/
247
+ messageDesc(file_scalekit_v1_roles_roles, 7);
438
248
 
439
249
  /**
440
250
  * @generated from message scalekit.v1.roles.ListRolesResponse
441
251
  */
442
- export class ListRolesResponse extends Message<ListRolesResponse> {
252
+ export type ListRolesResponse = Message<"scalekit.v1.roles.ListRolesResponse"> & {
443
253
  /**
444
254
  * @generated from field: repeated scalekit.v1.roles.Role roles = 1;
445
255
  */
446
- roles: Role[] = [];
447
-
448
- constructor(data?: PartialMessage<ListRolesResponse>) {
449
- super();
450
- proto3.util.initPartial(data, this);
451
- }
452
-
453
- static readonly runtime: typeof proto3 = proto3;
454
- static readonly typeName = "scalekit.v1.roles.ListRolesResponse";
455
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
456
- { no: 1, name: "roles", kind: "message", T: Role, repeated: true },
457
- ]);
458
-
459
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListRolesResponse {
460
- return new ListRolesResponse().fromBinary(bytes, options);
461
- }
462
-
463
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListRolesResponse {
464
- return new ListRolesResponse().fromJson(jsonValue, options);
465
- }
466
-
467
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListRolesResponse {
468
- return new ListRolesResponse().fromJsonString(jsonString, options);
469
- }
256
+ roles: Role[];
257
+ };
470
258
 
471
- static equals(a: ListRolesResponse | PlainMessage<ListRolesResponse> | undefined, b: ListRolesResponse | PlainMessage<ListRolesResponse> | undefined): boolean {
472
- return proto3.util.equals(ListRolesResponse, a, b);
473
- }
474
- }
259
+ /**
260
+ * Describes the message scalekit.v1.roles.ListRolesResponse.
261
+ * Use `create(ListRolesResponseSchema)` to create a new message.
262
+ */
263
+ export const ListRolesResponseSchema: GenMessage<ListRolesResponse> = /*@__PURE__*/
264
+ messageDesc(file_scalekit_v1_roles_roles, 8);
475
265
 
476
266
  /**
477
267
  * @generated from message scalekit.v1.roles.UpdateRole
478
268
  */
479
- export class UpdateRole extends Message<UpdateRole> {
269
+ export type UpdateRole = Message<"scalekit.v1.roles.UpdateRole"> & {
480
270
  /**
481
271
  * @generated from field: optional string display_name = 1;
482
272
  */
@@ -495,127 +285,63 @@ export class UpdateRole extends Message<UpdateRole> {
495
285
  /**
496
286
  * @generated from field: repeated string permissions = 7;
497
287
  */
498
- permissions: string[] = [];
499
-
500
- constructor(data?: PartialMessage<UpdateRole>) {
501
- super();
502
- proto3.util.initPartial(data, this);
503
- }
504
-
505
- static readonly runtime: typeof proto3 = proto3;
506
- static readonly typeName = "scalekit.v1.roles.UpdateRole";
507
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
508
- { no: 1, name: "display_name", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
509
- { no: 2, name: "description", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
510
- { no: 6, name: "extends", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
511
- { no: 7, name: "permissions", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
512
- ]);
513
-
514
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateRole {
515
- return new UpdateRole().fromBinary(bytes, options);
516
- }
517
-
518
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateRole {
519
- return new UpdateRole().fromJson(jsonValue, options);
520
- }
521
-
522
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateRole {
523
- return new UpdateRole().fromJsonString(jsonString, options);
524
- }
525
-
526
- static equals(a: UpdateRole | PlainMessage<UpdateRole> | undefined, b: UpdateRole | PlainMessage<UpdateRole> | undefined): boolean {
527
- return proto3.util.equals(UpdateRole, a, b);
528
- }
529
- }
288
+ permissions: string[];
289
+ };
290
+
291
+ /**
292
+ * Describes the message scalekit.v1.roles.UpdateRole.
293
+ * Use `create(UpdateRoleSchema)` to create a new message.
294
+ */
295
+ export const UpdateRoleSchema: GenMessage<UpdateRole> = /*@__PURE__*/
296
+ messageDesc(file_scalekit_v1_roles_roles, 9);
530
297
 
531
298
  /**
532
299
  * @generated from message scalekit.v1.roles.UpdateRoleRequest
533
300
  */
534
- export class UpdateRoleRequest extends Message<UpdateRoleRequest> {
301
+ export type UpdateRoleRequest = Message<"scalekit.v1.roles.UpdateRoleRequest"> & {
535
302
  /**
536
303
  * @generated from field: string role_name = 2;
537
304
  */
538
- roleName = "";
305
+ roleName: string;
539
306
 
540
307
  /**
541
308
  * @generated from field: scalekit.v1.roles.UpdateRole role = 3;
542
309
  */
543
310
  role?: UpdateRole;
311
+ };
544
312
 
545
- constructor(data?: PartialMessage<UpdateRoleRequest>) {
546
- super();
547
- proto3.util.initPartial(data, this);
548
- }
549
-
550
- static readonly runtime: typeof proto3 = proto3;
551
- static readonly typeName = "scalekit.v1.roles.UpdateRoleRequest";
552
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
553
- { no: 2, name: "role_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
554
- { no: 3, name: "role", kind: "message", T: UpdateRole },
555
- ]);
556
-
557
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateRoleRequest {
558
- return new UpdateRoleRequest().fromBinary(bytes, options);
559
- }
560
-
561
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateRoleRequest {
562
- return new UpdateRoleRequest().fromJson(jsonValue, options);
563
- }
564
-
565
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateRoleRequest {
566
- return new UpdateRoleRequest().fromJsonString(jsonString, options);
567
- }
568
-
569
- static equals(a: UpdateRoleRequest | PlainMessage<UpdateRoleRequest> | undefined, b: UpdateRoleRequest | PlainMessage<UpdateRoleRequest> | undefined): boolean {
570
- return proto3.util.equals(UpdateRoleRequest, a, b);
571
- }
572
- }
313
+ /**
314
+ * Describes the message scalekit.v1.roles.UpdateRoleRequest.
315
+ * Use `create(UpdateRoleRequestSchema)` to create a new message.
316
+ */
317
+ export const UpdateRoleRequestSchema: GenMessage<UpdateRoleRequest> = /*@__PURE__*/
318
+ messageDesc(file_scalekit_v1_roles_roles, 10);
573
319
 
574
320
  /**
575
321
  * @generated from message scalekit.v1.roles.UpdateRoleResponse
576
322
  */
577
- export class UpdateRoleResponse extends Message<UpdateRoleResponse> {
323
+ export type UpdateRoleResponse = Message<"scalekit.v1.roles.UpdateRoleResponse"> & {
578
324
  /**
579
325
  * @generated from field: scalekit.v1.roles.Role role = 1;
580
326
  */
581
327
  role?: Role;
328
+ };
582
329
 
583
- constructor(data?: PartialMessage<UpdateRoleResponse>) {
584
- super();
585
- proto3.util.initPartial(data, this);
586
- }
587
-
588
- static readonly runtime: typeof proto3 = proto3;
589
- static readonly typeName = "scalekit.v1.roles.UpdateRoleResponse";
590
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
591
- { no: 1, name: "role", kind: "message", T: Role },
592
- ]);
593
-
594
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateRoleResponse {
595
- return new UpdateRoleResponse().fromBinary(bytes, options);
596
- }
597
-
598
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateRoleResponse {
599
- return new UpdateRoleResponse().fromJson(jsonValue, options);
600
- }
601
-
602
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateRoleResponse {
603
- return new UpdateRoleResponse().fromJsonString(jsonString, options);
604
- }
605
-
606
- static equals(a: UpdateRoleResponse | PlainMessage<UpdateRoleResponse> | undefined, b: UpdateRoleResponse | PlainMessage<UpdateRoleResponse> | undefined): boolean {
607
- return proto3.util.equals(UpdateRoleResponse, a, b);
608
- }
609
- }
330
+ /**
331
+ * Describes the message scalekit.v1.roles.UpdateRoleResponse.
332
+ * Use `create(UpdateRoleResponseSchema)` to create a new message.
333
+ */
334
+ export const UpdateRoleResponseSchema: GenMessage<UpdateRoleResponse> = /*@__PURE__*/
335
+ messageDesc(file_scalekit_v1_roles_roles, 11);
610
336
 
611
337
  /**
612
338
  * @generated from message scalekit.v1.roles.DeleteRoleRequest
613
339
  */
614
- export class DeleteRoleRequest extends Message<DeleteRoleRequest> {
340
+ export type DeleteRoleRequest = Message<"scalekit.v1.roles.DeleteRoleRequest"> & {
615
341
  /**
616
342
  * @generated from field: string role_name = 2;
617
343
  */
618
- roleName = "";
344
+ roleName: string;
619
345
 
620
346
  /**
621
347
  * @generated from field: optional string reassign_role_id = 3 [deprecated = true];
@@ -627,576 +353,285 @@ export class DeleteRoleRequest extends Message<DeleteRoleRequest> {
627
353
  * @generated from field: optional string reassign_role_name = 4;
628
354
  */
629
355
  reassignRoleName?: string;
356
+ };
630
357
 
631
- constructor(data?: PartialMessage<DeleteRoleRequest>) {
632
- super();
633
- proto3.util.initPartial(data, this);
634
- }
635
-
636
- static readonly runtime: typeof proto3 = proto3;
637
- static readonly typeName = "scalekit.v1.roles.DeleteRoleRequest";
638
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
639
- { no: 2, name: "role_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
640
- { no: 3, name: "reassign_role_id", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
641
- { no: 4, name: "reassign_role_name", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
642
- ]);
643
-
644
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DeleteRoleRequest {
645
- return new DeleteRoleRequest().fromBinary(bytes, options);
646
- }
647
-
648
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DeleteRoleRequest {
649
- return new DeleteRoleRequest().fromJson(jsonValue, options);
650
- }
651
-
652
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DeleteRoleRequest {
653
- return new DeleteRoleRequest().fromJsonString(jsonString, options);
654
- }
655
-
656
- static equals(a: DeleteRoleRequest | PlainMessage<DeleteRoleRequest> | undefined, b: DeleteRoleRequest | PlainMessage<DeleteRoleRequest> | undefined): boolean {
657
- return proto3.util.equals(DeleteRoleRequest, a, b);
658
- }
659
- }
358
+ /**
359
+ * Describes the message scalekit.v1.roles.DeleteRoleRequest.
360
+ * Use `create(DeleteRoleRequestSchema)` to create a new message.
361
+ */
362
+ export const DeleteRoleRequestSchema: GenMessage<DeleteRoleRequest> = /*@__PURE__*/
363
+ messageDesc(file_scalekit_v1_roles_roles, 12);
660
364
 
661
365
  /**
662
366
  * @generated from message scalekit.v1.roles.CreateOrganizationRoleRequest
663
367
  */
664
- export class CreateOrganizationRoleRequest extends Message<CreateOrganizationRoleRequest> {
368
+ export type CreateOrganizationRoleRequest = Message<"scalekit.v1.roles.CreateOrganizationRoleRequest"> & {
665
369
  /**
666
370
  * @generated from field: string org_id = 1;
667
371
  */
668
- orgId = "";
372
+ orgId: string;
669
373
 
670
374
  /**
671
375
  * @generated from field: scalekit.v1.roles.CreateOrganizationRole role = 2;
672
376
  */
673
377
  role?: CreateOrganizationRole;
378
+ };
674
379
 
675
- constructor(data?: PartialMessage<CreateOrganizationRoleRequest>) {
676
- super();
677
- proto3.util.initPartial(data, this);
678
- }
679
-
680
- static readonly runtime: typeof proto3 = proto3;
681
- static readonly typeName = "scalekit.v1.roles.CreateOrganizationRoleRequest";
682
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
683
- { no: 1, name: "org_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
684
- { no: 2, name: "role", kind: "message", T: CreateOrganizationRole },
685
- ]);
686
-
687
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateOrganizationRoleRequest {
688
- return new CreateOrganizationRoleRequest().fromBinary(bytes, options);
689
- }
690
-
691
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateOrganizationRoleRequest {
692
- return new CreateOrganizationRoleRequest().fromJson(jsonValue, options);
693
- }
694
-
695
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateOrganizationRoleRequest {
696
- return new CreateOrganizationRoleRequest().fromJsonString(jsonString, options);
697
- }
698
-
699
- static equals(a: CreateOrganizationRoleRequest | PlainMessage<CreateOrganizationRoleRequest> | undefined, b: CreateOrganizationRoleRequest | PlainMessage<CreateOrganizationRoleRequest> | undefined): boolean {
700
- return proto3.util.equals(CreateOrganizationRoleRequest, a, b);
701
- }
702
- }
380
+ /**
381
+ * Describes the message scalekit.v1.roles.CreateOrganizationRoleRequest.
382
+ * Use `create(CreateOrganizationRoleRequestSchema)` to create a new message.
383
+ */
384
+ export const CreateOrganizationRoleRequestSchema: GenMessage<CreateOrganizationRoleRequest> = /*@__PURE__*/
385
+ messageDesc(file_scalekit_v1_roles_roles, 13);
703
386
 
704
387
  /**
705
388
  * @generated from message scalekit.v1.roles.CreateOrganizationRoleResponse
706
389
  */
707
- export class CreateOrganizationRoleResponse extends Message<CreateOrganizationRoleResponse> {
390
+ export type CreateOrganizationRoleResponse = Message<"scalekit.v1.roles.CreateOrganizationRoleResponse"> & {
708
391
  /**
709
392
  * @generated from field: scalekit.v1.roles.Role role = 1;
710
393
  */
711
394
  role?: Role;
395
+ };
712
396
 
713
- constructor(data?: PartialMessage<CreateOrganizationRoleResponse>) {
714
- super();
715
- proto3.util.initPartial(data, this);
716
- }
717
-
718
- static readonly runtime: typeof proto3 = proto3;
719
- static readonly typeName = "scalekit.v1.roles.CreateOrganizationRoleResponse";
720
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
721
- { no: 1, name: "role", kind: "message", T: Role },
722
- ]);
723
-
724
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateOrganizationRoleResponse {
725
- return new CreateOrganizationRoleResponse().fromBinary(bytes, options);
726
- }
727
-
728
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateOrganizationRoleResponse {
729
- return new CreateOrganizationRoleResponse().fromJson(jsonValue, options);
730
- }
731
-
732
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateOrganizationRoleResponse {
733
- return new CreateOrganizationRoleResponse().fromJsonString(jsonString, options);
734
- }
735
-
736
- static equals(a: CreateOrganizationRoleResponse | PlainMessage<CreateOrganizationRoleResponse> | undefined, b: CreateOrganizationRoleResponse | PlainMessage<CreateOrganizationRoleResponse> | undefined): boolean {
737
- return proto3.util.equals(CreateOrganizationRoleResponse, a, b);
738
- }
739
- }
397
+ /**
398
+ * Describes the message scalekit.v1.roles.CreateOrganizationRoleResponse.
399
+ * Use `create(CreateOrganizationRoleResponseSchema)` to create a new message.
400
+ */
401
+ export const CreateOrganizationRoleResponseSchema: GenMessage<CreateOrganizationRoleResponse> = /*@__PURE__*/
402
+ messageDesc(file_scalekit_v1_roles_roles, 14);
740
403
 
741
404
  /**
742
405
  * @generated from message scalekit.v1.roles.GetOrganizationRoleRequest
743
406
  */
744
- export class GetOrganizationRoleRequest extends Message<GetOrganizationRoleRequest> {
407
+ export type GetOrganizationRoleRequest = Message<"scalekit.v1.roles.GetOrganizationRoleRequest"> & {
745
408
  /**
746
409
  * @generated from field: string org_id = 1;
747
410
  */
748
- orgId = "";
411
+ orgId: string;
749
412
 
750
413
  /**
751
414
  * @generated from field: string role_name = 2;
752
415
  */
753
- roleName = "";
416
+ roleName: string;
754
417
 
755
418
  /**
756
419
  * @generated from field: optional string include = 3;
757
420
  */
758
421
  include?: string;
422
+ };
759
423
 
760
- constructor(data?: PartialMessage<GetOrganizationRoleRequest>) {
761
- super();
762
- proto3.util.initPartial(data, this);
763
- }
764
-
765
- static readonly runtime: typeof proto3 = proto3;
766
- static readonly typeName = "scalekit.v1.roles.GetOrganizationRoleRequest";
767
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
768
- { no: 1, name: "org_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
769
- { no: 2, name: "role_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
770
- { no: 3, name: "include", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
771
- ]);
772
-
773
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetOrganizationRoleRequest {
774
- return new GetOrganizationRoleRequest().fromBinary(bytes, options);
775
- }
776
-
777
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetOrganizationRoleRequest {
778
- return new GetOrganizationRoleRequest().fromJson(jsonValue, options);
779
- }
780
-
781
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetOrganizationRoleRequest {
782
- return new GetOrganizationRoleRequest().fromJsonString(jsonString, options);
783
- }
784
-
785
- static equals(a: GetOrganizationRoleRequest | PlainMessage<GetOrganizationRoleRequest> | undefined, b: GetOrganizationRoleRequest | PlainMessage<GetOrganizationRoleRequest> | undefined): boolean {
786
- return proto3.util.equals(GetOrganizationRoleRequest, a, b);
787
- }
788
- }
424
+ /**
425
+ * Describes the message scalekit.v1.roles.GetOrganizationRoleRequest.
426
+ * Use `create(GetOrganizationRoleRequestSchema)` to create a new message.
427
+ */
428
+ export const GetOrganizationRoleRequestSchema: GenMessage<GetOrganizationRoleRequest> = /*@__PURE__*/
429
+ messageDesc(file_scalekit_v1_roles_roles, 15);
789
430
 
790
431
  /**
791
432
  * @generated from message scalekit.v1.roles.GetOrganizationRoleResponse
792
433
  */
793
- export class GetOrganizationRoleResponse extends Message<GetOrganizationRoleResponse> {
434
+ export type GetOrganizationRoleResponse = Message<"scalekit.v1.roles.GetOrganizationRoleResponse"> & {
794
435
  /**
795
436
  * @generated from field: scalekit.v1.roles.Role role = 1;
796
437
  */
797
438
  role?: Role;
439
+ };
798
440
 
799
- constructor(data?: PartialMessage<GetOrganizationRoleResponse>) {
800
- super();
801
- proto3.util.initPartial(data, this);
802
- }
803
-
804
- static readonly runtime: typeof proto3 = proto3;
805
- static readonly typeName = "scalekit.v1.roles.GetOrganizationRoleResponse";
806
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
807
- { no: 1, name: "role", kind: "message", T: Role },
808
- ]);
809
-
810
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetOrganizationRoleResponse {
811
- return new GetOrganizationRoleResponse().fromBinary(bytes, options);
812
- }
813
-
814
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetOrganizationRoleResponse {
815
- return new GetOrganizationRoleResponse().fromJson(jsonValue, options);
816
- }
817
-
818
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetOrganizationRoleResponse {
819
- return new GetOrganizationRoleResponse().fromJsonString(jsonString, options);
820
- }
821
-
822
- static equals(a: GetOrganizationRoleResponse | PlainMessage<GetOrganizationRoleResponse> | undefined, b: GetOrganizationRoleResponse | PlainMessage<GetOrganizationRoleResponse> | undefined): boolean {
823
- return proto3.util.equals(GetOrganizationRoleResponse, a, b);
824
- }
825
- }
441
+ /**
442
+ * Describes the message scalekit.v1.roles.GetOrganizationRoleResponse.
443
+ * Use `create(GetOrganizationRoleResponseSchema)` to create a new message.
444
+ */
445
+ export const GetOrganizationRoleResponseSchema: GenMessage<GetOrganizationRoleResponse> = /*@__PURE__*/
446
+ messageDesc(file_scalekit_v1_roles_roles, 16);
826
447
 
827
448
  /**
828
449
  * @generated from message scalekit.v1.roles.ListOrganizationRolesRequest
829
450
  */
830
- export class ListOrganizationRolesRequest extends Message<ListOrganizationRolesRequest> {
451
+ export type ListOrganizationRolesRequest = Message<"scalekit.v1.roles.ListOrganizationRolesRequest"> & {
831
452
  /**
832
453
  * @generated from field: string org_id = 1;
833
454
  */
834
- orgId = "";
455
+ orgId: string;
835
456
 
836
457
  /**
837
458
  * @generated from field: optional string include = 2;
838
459
  */
839
460
  include?: string;
461
+ };
840
462
 
841
- constructor(data?: PartialMessage<ListOrganizationRolesRequest>) {
842
- super();
843
- proto3.util.initPartial(data, this);
844
- }
845
-
846
- static readonly runtime: typeof proto3 = proto3;
847
- static readonly typeName = "scalekit.v1.roles.ListOrganizationRolesRequest";
848
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
849
- { no: 1, name: "org_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
850
- { no: 2, name: "include", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
851
- ]);
852
-
853
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListOrganizationRolesRequest {
854
- return new ListOrganizationRolesRequest().fromBinary(bytes, options);
855
- }
856
-
857
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListOrganizationRolesRequest {
858
- return new ListOrganizationRolesRequest().fromJson(jsonValue, options);
859
- }
860
-
861
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListOrganizationRolesRequest {
862
- return new ListOrganizationRolesRequest().fromJsonString(jsonString, options);
863
- }
864
-
865
- static equals(a: ListOrganizationRolesRequest | PlainMessage<ListOrganizationRolesRequest> | undefined, b: ListOrganizationRolesRequest | PlainMessage<ListOrganizationRolesRequest> | undefined): boolean {
866
- return proto3.util.equals(ListOrganizationRolesRequest, a, b);
867
- }
868
- }
463
+ /**
464
+ * Describes the message scalekit.v1.roles.ListOrganizationRolesRequest.
465
+ * Use `create(ListOrganizationRolesRequestSchema)` to create a new message.
466
+ */
467
+ export const ListOrganizationRolesRequestSchema: GenMessage<ListOrganizationRolesRequest> = /*@__PURE__*/
468
+ messageDesc(file_scalekit_v1_roles_roles, 17);
869
469
 
870
470
  /**
871
471
  * @generated from message scalekit.v1.roles.ListOrganizationRolesResponse
872
472
  */
873
- export class ListOrganizationRolesResponse extends Message<ListOrganizationRolesResponse> {
473
+ export type ListOrganizationRolesResponse = Message<"scalekit.v1.roles.ListOrganizationRolesResponse"> & {
874
474
  /**
875
475
  * @generated from field: repeated scalekit.v1.roles.Role roles = 1;
876
476
  */
877
- roles: Role[] = [];
878
-
879
- constructor(data?: PartialMessage<ListOrganizationRolesResponse>) {
880
- super();
881
- proto3.util.initPartial(data, this);
882
- }
883
-
884
- static readonly runtime: typeof proto3 = proto3;
885
- static readonly typeName = "scalekit.v1.roles.ListOrganizationRolesResponse";
886
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
887
- { no: 1, name: "roles", kind: "message", T: Role, repeated: true },
888
- ]);
889
-
890
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListOrganizationRolesResponse {
891
- return new ListOrganizationRolesResponse().fromBinary(bytes, options);
892
- }
893
-
894
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListOrganizationRolesResponse {
895
- return new ListOrganizationRolesResponse().fromJson(jsonValue, options);
896
- }
477
+ roles: Role[];
478
+ };
897
479
 
898
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListOrganizationRolesResponse {
899
- return new ListOrganizationRolesResponse().fromJsonString(jsonString, options);
900
- }
901
-
902
- static equals(a: ListOrganizationRolesResponse | PlainMessage<ListOrganizationRolesResponse> | undefined, b: ListOrganizationRolesResponse | PlainMessage<ListOrganizationRolesResponse> | undefined): boolean {
903
- return proto3.util.equals(ListOrganizationRolesResponse, a, b);
904
- }
905
- }
480
+ /**
481
+ * Describes the message scalekit.v1.roles.ListOrganizationRolesResponse.
482
+ * Use `create(ListOrganizationRolesResponseSchema)` to create a new message.
483
+ */
484
+ export const ListOrganizationRolesResponseSchema: GenMessage<ListOrganizationRolesResponse> = /*@__PURE__*/
485
+ messageDesc(file_scalekit_v1_roles_roles, 18);
906
486
 
907
487
  /**
908
488
  * @generated from message scalekit.v1.roles.UpdateOrganizationRoleRequest
909
489
  */
910
- export class UpdateOrganizationRoleRequest extends Message<UpdateOrganizationRoleRequest> {
490
+ export type UpdateOrganizationRoleRequest = Message<"scalekit.v1.roles.UpdateOrganizationRoleRequest"> & {
911
491
  /**
912
492
  * @generated from field: string org_id = 1;
913
493
  */
914
- orgId = "";
494
+ orgId: string;
915
495
 
916
496
  /**
917
497
  * @generated from field: string role_name = 2;
918
498
  */
919
- roleName = "";
499
+ roleName: string;
920
500
 
921
501
  /**
922
502
  * @generated from field: scalekit.v1.roles.UpdateRole role = 3;
923
503
  */
924
504
  role?: UpdateRole;
505
+ };
925
506
 
926
- constructor(data?: PartialMessage<UpdateOrganizationRoleRequest>) {
927
- super();
928
- proto3.util.initPartial(data, this);
929
- }
930
-
931
- static readonly runtime: typeof proto3 = proto3;
932
- static readonly typeName = "scalekit.v1.roles.UpdateOrganizationRoleRequest";
933
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
934
- { no: 1, name: "org_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
935
- { no: 2, name: "role_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
936
- { no: 3, name: "role", kind: "message", T: UpdateRole },
937
- ]);
938
-
939
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateOrganizationRoleRequest {
940
- return new UpdateOrganizationRoleRequest().fromBinary(bytes, options);
941
- }
942
-
943
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateOrganizationRoleRequest {
944
- return new UpdateOrganizationRoleRequest().fromJson(jsonValue, options);
945
- }
946
-
947
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateOrganizationRoleRequest {
948
- return new UpdateOrganizationRoleRequest().fromJsonString(jsonString, options);
949
- }
950
-
951
- static equals(a: UpdateOrganizationRoleRequest | PlainMessage<UpdateOrganizationRoleRequest> | undefined, b: UpdateOrganizationRoleRequest | PlainMessage<UpdateOrganizationRoleRequest> | undefined): boolean {
952
- return proto3.util.equals(UpdateOrganizationRoleRequest, a, b);
953
- }
954
- }
507
+ /**
508
+ * Describes the message scalekit.v1.roles.UpdateOrganizationRoleRequest.
509
+ * Use `create(UpdateOrganizationRoleRequestSchema)` to create a new message.
510
+ */
511
+ export const UpdateOrganizationRoleRequestSchema: GenMessage<UpdateOrganizationRoleRequest> = /*@__PURE__*/
512
+ messageDesc(file_scalekit_v1_roles_roles, 19);
955
513
 
956
514
  /**
957
515
  * @generated from message scalekit.v1.roles.UpdateOrganizationRoleResponse
958
516
  */
959
- export class UpdateOrganizationRoleResponse extends Message<UpdateOrganizationRoleResponse> {
517
+ export type UpdateOrganizationRoleResponse = Message<"scalekit.v1.roles.UpdateOrganizationRoleResponse"> & {
960
518
  /**
961
519
  * @generated from field: scalekit.v1.roles.Role role = 1;
962
520
  */
963
521
  role?: Role;
522
+ };
964
523
 
965
- constructor(data?: PartialMessage<UpdateOrganizationRoleResponse>) {
966
- super();
967
- proto3.util.initPartial(data, this);
968
- }
969
-
970
- static readonly runtime: typeof proto3 = proto3;
971
- static readonly typeName = "scalekit.v1.roles.UpdateOrganizationRoleResponse";
972
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
973
- { no: 1, name: "role", kind: "message", T: Role },
974
- ]);
975
-
976
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateOrganizationRoleResponse {
977
- return new UpdateOrganizationRoleResponse().fromBinary(bytes, options);
978
- }
979
-
980
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateOrganizationRoleResponse {
981
- return new UpdateOrganizationRoleResponse().fromJson(jsonValue, options);
982
- }
983
-
984
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateOrganizationRoleResponse {
985
- return new UpdateOrganizationRoleResponse().fromJsonString(jsonString, options);
986
- }
987
-
988
- static equals(a: UpdateOrganizationRoleResponse | PlainMessage<UpdateOrganizationRoleResponse> | undefined, b: UpdateOrganizationRoleResponse | PlainMessage<UpdateOrganizationRoleResponse> | undefined): boolean {
989
- return proto3.util.equals(UpdateOrganizationRoleResponse, a, b);
990
- }
991
- }
524
+ /**
525
+ * Describes the message scalekit.v1.roles.UpdateOrganizationRoleResponse.
526
+ * Use `create(UpdateOrganizationRoleResponseSchema)` to create a new message.
527
+ */
528
+ export const UpdateOrganizationRoleResponseSchema: GenMessage<UpdateOrganizationRoleResponse> = /*@__PURE__*/
529
+ messageDesc(file_scalekit_v1_roles_roles, 20);
992
530
 
993
531
  /**
994
532
  * @generated from message scalekit.v1.roles.DeleteOrganizationRoleRequest
995
533
  */
996
- export class DeleteOrganizationRoleRequest extends Message<DeleteOrganizationRoleRequest> {
534
+ export type DeleteOrganizationRoleRequest = Message<"scalekit.v1.roles.DeleteOrganizationRoleRequest"> & {
997
535
  /**
998
536
  * @generated from field: string org_id = 1;
999
537
  */
1000
- orgId = "";
538
+ orgId: string;
1001
539
 
1002
540
  /**
1003
541
  * @generated from field: string role_name = 2;
1004
542
  */
1005
- roleName = "";
543
+ roleName: string;
1006
544
 
1007
545
  /**
1008
546
  * @generated from field: optional string reassign_role_name = 3;
1009
547
  */
1010
548
  reassignRoleName?: string;
549
+ };
1011
550
 
1012
- constructor(data?: PartialMessage<DeleteOrganizationRoleRequest>) {
1013
- super();
1014
- proto3.util.initPartial(data, this);
1015
- }
1016
-
1017
- static readonly runtime: typeof proto3 = proto3;
1018
- static readonly typeName = "scalekit.v1.roles.DeleteOrganizationRoleRequest";
1019
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1020
- { no: 1, name: "org_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1021
- { no: 2, name: "role_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1022
- { no: 3, name: "reassign_role_name", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1023
- ]);
1024
-
1025
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DeleteOrganizationRoleRequest {
1026
- return new DeleteOrganizationRoleRequest().fromBinary(bytes, options);
1027
- }
1028
-
1029
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DeleteOrganizationRoleRequest {
1030
- return new DeleteOrganizationRoleRequest().fromJson(jsonValue, options);
1031
- }
1032
-
1033
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DeleteOrganizationRoleRequest {
1034
- return new DeleteOrganizationRoleRequest().fromJsonString(jsonString, options);
1035
- }
1036
-
1037
- static equals(a: DeleteOrganizationRoleRequest | PlainMessage<DeleteOrganizationRoleRequest> | undefined, b: DeleteOrganizationRoleRequest | PlainMessage<DeleteOrganizationRoleRequest> | undefined): boolean {
1038
- return proto3.util.equals(DeleteOrganizationRoleRequest, a, b);
1039
- }
1040
- }
551
+ /**
552
+ * Describes the message scalekit.v1.roles.DeleteOrganizationRoleRequest.
553
+ * Use `create(DeleteOrganizationRoleRequestSchema)` to create a new message.
554
+ */
555
+ export const DeleteOrganizationRoleRequestSchema: GenMessage<DeleteOrganizationRoleRequest> = /*@__PURE__*/
556
+ messageDesc(file_scalekit_v1_roles_roles, 21);
1041
557
 
1042
558
  /**
1043
559
  * @generated from message scalekit.v1.roles.GetRoleUsersCountRequest
1044
560
  */
1045
- export class GetRoleUsersCountRequest extends Message<GetRoleUsersCountRequest> {
561
+ export type GetRoleUsersCountRequest = Message<"scalekit.v1.roles.GetRoleUsersCountRequest"> & {
1046
562
  /**
1047
563
  * @generated from field: string role_name = 2;
1048
564
  */
1049
- roleName = "";
1050
-
1051
- constructor(data?: PartialMessage<GetRoleUsersCountRequest>) {
1052
- super();
1053
- proto3.util.initPartial(data, this);
1054
- }
565
+ roleName: string;
566
+ };
1055
567
 
1056
- static readonly runtime: typeof proto3 = proto3;
1057
- static readonly typeName = "scalekit.v1.roles.GetRoleUsersCountRequest";
1058
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1059
- { no: 2, name: "role_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1060
- ]);
1061
-
1062
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetRoleUsersCountRequest {
1063
- return new GetRoleUsersCountRequest().fromBinary(bytes, options);
1064
- }
1065
-
1066
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetRoleUsersCountRequest {
1067
- return new GetRoleUsersCountRequest().fromJson(jsonValue, options);
1068
- }
1069
-
1070
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetRoleUsersCountRequest {
1071
- return new GetRoleUsersCountRequest().fromJsonString(jsonString, options);
1072
- }
1073
-
1074
- static equals(a: GetRoleUsersCountRequest | PlainMessage<GetRoleUsersCountRequest> | undefined, b: GetRoleUsersCountRequest | PlainMessage<GetRoleUsersCountRequest> | undefined): boolean {
1075
- return proto3.util.equals(GetRoleUsersCountRequest, a, b);
1076
- }
1077
- }
568
+ /**
569
+ * Describes the message scalekit.v1.roles.GetRoleUsersCountRequest.
570
+ * Use `create(GetRoleUsersCountRequestSchema)` to create a new message.
571
+ */
572
+ export const GetRoleUsersCountRequestSchema: GenMessage<GetRoleUsersCountRequest> = /*@__PURE__*/
573
+ messageDesc(file_scalekit_v1_roles_roles, 22);
1078
574
 
1079
575
  /**
1080
576
  * @generated from message scalekit.v1.roles.GetRoleUsersCountResponse
1081
577
  */
1082
- export class GetRoleUsersCountResponse extends Message<GetRoleUsersCountResponse> {
578
+ export type GetRoleUsersCountResponse = Message<"scalekit.v1.roles.GetRoleUsersCountResponse"> & {
1083
579
  /**
1084
580
  * @generated from field: int64 count = 1;
1085
581
  */
1086
- count = protoInt64.zero;
1087
-
1088
- constructor(data?: PartialMessage<GetRoleUsersCountResponse>) {
1089
- super();
1090
- proto3.util.initPartial(data, this);
1091
- }
1092
-
1093
- static readonly runtime: typeof proto3 = proto3;
1094
- static readonly typeName = "scalekit.v1.roles.GetRoleUsersCountResponse";
1095
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1096
- { no: 1, name: "count", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
1097
- ]);
1098
-
1099
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetRoleUsersCountResponse {
1100
- return new GetRoleUsersCountResponse().fromBinary(bytes, options);
1101
- }
1102
-
1103
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetRoleUsersCountResponse {
1104
- return new GetRoleUsersCountResponse().fromJson(jsonValue, options);
1105
- }
1106
-
1107
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetRoleUsersCountResponse {
1108
- return new GetRoleUsersCountResponse().fromJsonString(jsonString, options);
1109
- }
582
+ count: bigint;
583
+ };
1110
584
 
1111
- static equals(a: GetRoleUsersCountResponse | PlainMessage<GetRoleUsersCountResponse> | undefined, b: GetRoleUsersCountResponse | PlainMessage<GetRoleUsersCountResponse> | undefined): boolean {
1112
- return proto3.util.equals(GetRoleUsersCountResponse, a, b);
1113
- }
1114
- }
585
+ /**
586
+ * Describes the message scalekit.v1.roles.GetRoleUsersCountResponse.
587
+ * Use `create(GetRoleUsersCountResponseSchema)` to create a new message.
588
+ */
589
+ export const GetRoleUsersCountResponseSchema: GenMessage<GetRoleUsersCountResponse> = /*@__PURE__*/
590
+ messageDesc(file_scalekit_v1_roles_roles, 23);
1115
591
 
1116
592
  /**
1117
593
  * @generated from message scalekit.v1.roles.GetOrganizationRoleUsersCountRequest
1118
594
  */
1119
- export class GetOrganizationRoleUsersCountRequest extends Message<GetOrganizationRoleUsersCountRequest> {
595
+ export type GetOrganizationRoleUsersCountRequest = Message<"scalekit.v1.roles.GetOrganizationRoleUsersCountRequest"> & {
1120
596
  /**
1121
597
  * @generated from field: string org_id = 1;
1122
598
  */
1123
- orgId = "";
599
+ orgId: string;
1124
600
 
1125
601
  /**
1126
602
  * @generated from field: string role_name = 2;
1127
603
  */
1128
- roleName = "";
1129
-
1130
- constructor(data?: PartialMessage<GetOrganizationRoleUsersCountRequest>) {
1131
- super();
1132
- proto3.util.initPartial(data, this);
1133
- }
1134
-
1135
- static readonly runtime: typeof proto3 = proto3;
1136
- static readonly typeName = "scalekit.v1.roles.GetOrganizationRoleUsersCountRequest";
1137
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1138
- { no: 1, name: "org_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1139
- { no: 2, name: "role_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1140
- ]);
1141
-
1142
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetOrganizationRoleUsersCountRequest {
1143
- return new GetOrganizationRoleUsersCountRequest().fromBinary(bytes, options);
1144
- }
1145
-
1146
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetOrganizationRoleUsersCountRequest {
1147
- return new GetOrganizationRoleUsersCountRequest().fromJson(jsonValue, options);
1148
- }
604
+ roleName: string;
605
+ };
1149
606
 
1150
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetOrganizationRoleUsersCountRequest {
1151
- return new GetOrganizationRoleUsersCountRequest().fromJsonString(jsonString, options);
1152
- }
1153
-
1154
- static equals(a: GetOrganizationRoleUsersCountRequest | PlainMessage<GetOrganizationRoleUsersCountRequest> | undefined, b: GetOrganizationRoleUsersCountRequest | PlainMessage<GetOrganizationRoleUsersCountRequest> | undefined): boolean {
1155
- return proto3.util.equals(GetOrganizationRoleUsersCountRequest, a, b);
1156
- }
1157
- }
607
+ /**
608
+ * Describes the message scalekit.v1.roles.GetOrganizationRoleUsersCountRequest.
609
+ * Use `create(GetOrganizationRoleUsersCountRequestSchema)` to create a new message.
610
+ */
611
+ export const GetOrganizationRoleUsersCountRequestSchema: GenMessage<GetOrganizationRoleUsersCountRequest> = /*@__PURE__*/
612
+ messageDesc(file_scalekit_v1_roles_roles, 24);
1158
613
 
1159
614
  /**
1160
615
  * @generated from message scalekit.v1.roles.GetOrganizationRoleUsersCountResponse
1161
616
  */
1162
- export class GetOrganizationRoleUsersCountResponse extends Message<GetOrganizationRoleUsersCountResponse> {
617
+ export type GetOrganizationRoleUsersCountResponse = Message<"scalekit.v1.roles.GetOrganizationRoleUsersCountResponse"> & {
1163
618
  /**
1164
619
  * @generated from field: int64 count = 1;
1165
620
  */
1166
- count = protoInt64.zero;
1167
-
1168
- constructor(data?: PartialMessage<GetOrganizationRoleUsersCountResponse>) {
1169
- super();
1170
- proto3.util.initPartial(data, this);
1171
- }
1172
-
1173
- static readonly runtime: typeof proto3 = proto3;
1174
- static readonly typeName = "scalekit.v1.roles.GetOrganizationRoleUsersCountResponse";
1175
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1176
- { no: 1, name: "count", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
1177
- ]);
621
+ count: bigint;
622
+ };
1178
623
 
1179
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetOrganizationRoleUsersCountResponse {
1180
- return new GetOrganizationRoleUsersCountResponse().fromBinary(bytes, options);
1181
- }
1182
-
1183
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetOrganizationRoleUsersCountResponse {
1184
- return new GetOrganizationRoleUsersCountResponse().fromJson(jsonValue, options);
1185
- }
1186
-
1187
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetOrganizationRoleUsersCountResponse {
1188
- return new GetOrganizationRoleUsersCountResponse().fromJsonString(jsonString, options);
1189
- }
1190
-
1191
- static equals(a: GetOrganizationRoleUsersCountResponse | PlainMessage<GetOrganizationRoleUsersCountResponse> | undefined, b: GetOrganizationRoleUsersCountResponse | PlainMessage<GetOrganizationRoleUsersCountResponse> | undefined): boolean {
1192
- return proto3.util.equals(GetOrganizationRoleUsersCountResponse, a, b);
1193
- }
1194
- }
624
+ /**
625
+ * Describes the message scalekit.v1.roles.GetOrganizationRoleUsersCountResponse.
626
+ * Use `create(GetOrganizationRoleUsersCountResponseSchema)` to create a new message.
627
+ */
628
+ export const GetOrganizationRoleUsersCountResponseSchema: GenMessage<GetOrganizationRoleUsersCountResponse> = /*@__PURE__*/
629
+ messageDesc(file_scalekit_v1_roles_roles, 25);
1195
630
 
1196
631
  /**
1197
632
  * @generated from message scalekit.v1.roles.UpdateDefaultRolesRequest
1198
633
  */
1199
- export class UpdateDefaultRolesRequest extends Message<UpdateDefaultRolesRequest> {
634
+ export type UpdateDefaultRolesRequest = Message<"scalekit.v1.roles.UpdateDefaultRolesRequest"> & {
1200
635
  /**
1201
636
  * @generated from field: scalekit.v1.roles.UpdateDefaultRole default_creator = 2 [deprecated = true];
1202
637
  * @deprecated
@@ -1218,85 +653,41 @@ export class UpdateDefaultRolesRequest extends Message<UpdateDefaultRolesRequest
1218
653
  * @generated from field: optional string default_member_role = 5;
1219
654
  */
1220
655
  defaultMemberRole?: string;
656
+ };
1221
657
 
1222
- constructor(data?: PartialMessage<UpdateDefaultRolesRequest>) {
1223
- super();
1224
- proto3.util.initPartial(data, this);
1225
- }
1226
-
1227
- static readonly runtime: typeof proto3 = proto3;
1228
- static readonly typeName = "scalekit.v1.roles.UpdateDefaultRolesRequest";
1229
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1230
- { no: 2, name: "default_creator", kind: "message", T: UpdateDefaultRole },
1231
- { no: 3, name: "default_member", kind: "message", T: UpdateDefaultRole },
1232
- { no: 4, name: "default_creator_role", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1233
- { no: 5, name: "default_member_role", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1234
- ]);
1235
-
1236
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateDefaultRolesRequest {
1237
- return new UpdateDefaultRolesRequest().fromBinary(bytes, options);
1238
- }
1239
-
1240
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateDefaultRolesRequest {
1241
- return new UpdateDefaultRolesRequest().fromJson(jsonValue, options);
1242
- }
1243
-
1244
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateDefaultRolesRequest {
1245
- return new UpdateDefaultRolesRequest().fromJsonString(jsonString, options);
1246
- }
1247
-
1248
- static equals(a: UpdateDefaultRolesRequest | PlainMessage<UpdateDefaultRolesRequest> | undefined, b: UpdateDefaultRolesRequest | PlainMessage<UpdateDefaultRolesRequest> | undefined): boolean {
1249
- return proto3.util.equals(UpdateDefaultRolesRequest, a, b);
1250
- }
1251
- }
658
+ /**
659
+ * Describes the message scalekit.v1.roles.UpdateDefaultRolesRequest.
660
+ * Use `create(UpdateDefaultRolesRequestSchema)` to create a new message.
661
+ */
662
+ export const UpdateDefaultRolesRequestSchema: GenMessage<UpdateDefaultRolesRequest> = /*@__PURE__*/
663
+ messageDesc(file_scalekit_v1_roles_roles, 26);
1252
664
 
1253
665
  /**
1254
666
  * @generated from message scalekit.v1.roles.UpdateDefaultOrganizationRolesRequest
1255
667
  */
1256
- export class UpdateDefaultOrganizationRolesRequest extends Message<UpdateDefaultOrganizationRolesRequest> {
668
+ export type UpdateDefaultOrganizationRolesRequest = Message<"scalekit.v1.roles.UpdateDefaultOrganizationRolesRequest"> & {
1257
669
  /**
1258
670
  * @generated from field: string org_id = 1;
1259
671
  */
1260
- orgId = "";
672
+ orgId: string;
1261
673
 
1262
674
  /**
1263
675
  * @generated from field: string default_member_role = 2;
1264
676
  */
1265
- defaultMemberRole = "";
1266
-
1267
- constructor(data?: PartialMessage<UpdateDefaultOrganizationRolesRequest>) {
1268
- super();
1269
- proto3.util.initPartial(data, this);
1270
- }
1271
-
1272
- static readonly runtime: typeof proto3 = proto3;
1273
- static readonly typeName = "scalekit.v1.roles.UpdateDefaultOrganizationRolesRequest";
1274
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1275
- { no: 1, name: "org_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1276
- { no: 2, name: "default_member_role", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1277
- ]);
1278
-
1279
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateDefaultOrganizationRolesRequest {
1280
- return new UpdateDefaultOrganizationRolesRequest().fromBinary(bytes, options);
1281
- }
677
+ defaultMemberRole: string;
678
+ };
1282
679
 
1283
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateDefaultOrganizationRolesRequest {
1284
- return new UpdateDefaultOrganizationRolesRequest().fromJson(jsonValue, options);
1285
- }
1286
-
1287
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateDefaultOrganizationRolesRequest {
1288
- return new UpdateDefaultOrganizationRolesRequest().fromJsonString(jsonString, options);
1289
- }
1290
-
1291
- static equals(a: UpdateDefaultOrganizationRolesRequest | PlainMessage<UpdateDefaultOrganizationRolesRequest> | undefined, b: UpdateDefaultOrganizationRolesRequest | PlainMessage<UpdateDefaultOrganizationRolesRequest> | undefined): boolean {
1292
- return proto3.util.equals(UpdateDefaultOrganizationRolesRequest, a, b);
1293
- }
1294
- }
680
+ /**
681
+ * Describes the message scalekit.v1.roles.UpdateDefaultOrganizationRolesRequest.
682
+ * Use `create(UpdateDefaultOrganizationRolesRequestSchema)` to create a new message.
683
+ */
684
+ export const UpdateDefaultOrganizationRolesRequestSchema: GenMessage<UpdateDefaultOrganizationRolesRequest> = /*@__PURE__*/
685
+ messageDesc(file_scalekit_v1_roles_roles, 27);
1295
686
 
1296
687
  /**
1297
688
  * @generated from message scalekit.v1.roles.UpdateDefaultRolesResponse
1298
689
  */
1299
- export class UpdateDefaultRolesResponse extends Message<UpdateDefaultRolesResponse> {
690
+ export type UpdateDefaultRolesResponse = Message<"scalekit.v1.roles.UpdateDefaultRolesResponse"> & {
1300
691
  /**
1301
692
  * @generated from field: scalekit.v1.roles.Role default_creator = 1;
1302
693
  */
@@ -1306,136 +697,74 @@ export class UpdateDefaultRolesResponse extends Message<UpdateDefaultRolesRespon
1306
697
  * @generated from field: scalekit.v1.roles.Role default_member = 2;
1307
698
  */
1308
699
  defaultMember?: Role;
700
+ };
1309
701
 
1310
- constructor(data?: PartialMessage<UpdateDefaultRolesResponse>) {
1311
- super();
1312
- proto3.util.initPartial(data, this);
1313
- }
1314
-
1315
- static readonly runtime: typeof proto3 = proto3;
1316
- static readonly typeName = "scalekit.v1.roles.UpdateDefaultRolesResponse";
1317
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1318
- { no: 1, name: "default_creator", kind: "message", T: Role },
1319
- { no: 2, name: "default_member", kind: "message", T: Role },
1320
- ]);
1321
-
1322
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateDefaultRolesResponse {
1323
- return new UpdateDefaultRolesResponse().fromBinary(bytes, options);
1324
- }
1325
-
1326
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateDefaultRolesResponse {
1327
- return new UpdateDefaultRolesResponse().fromJson(jsonValue, options);
1328
- }
1329
-
1330
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateDefaultRolesResponse {
1331
- return new UpdateDefaultRolesResponse().fromJsonString(jsonString, options);
1332
- }
1333
-
1334
- static equals(a: UpdateDefaultRolesResponse | PlainMessage<UpdateDefaultRolesResponse> | undefined, b: UpdateDefaultRolesResponse | PlainMessage<UpdateDefaultRolesResponse> | undefined): boolean {
1335
- return proto3.util.equals(UpdateDefaultRolesResponse, a, b);
1336
- }
1337
- }
702
+ /**
703
+ * Describes the message scalekit.v1.roles.UpdateDefaultRolesResponse.
704
+ * Use `create(UpdateDefaultRolesResponseSchema)` to create a new message.
705
+ */
706
+ export const UpdateDefaultRolesResponseSchema: GenMessage<UpdateDefaultRolesResponse> = /*@__PURE__*/
707
+ messageDesc(file_scalekit_v1_roles_roles, 28);
1338
708
 
1339
709
  /**
1340
710
  * @generated from message scalekit.v1.roles.UpdateDefaultOrganizationRolesResponse
1341
711
  */
1342
- export class UpdateDefaultOrganizationRolesResponse extends Message<UpdateDefaultOrganizationRolesResponse> {
712
+ export type UpdateDefaultOrganizationRolesResponse = Message<"scalekit.v1.roles.UpdateDefaultOrganizationRolesResponse"> & {
1343
713
  /**
1344
714
  * @generated from field: scalekit.v1.roles.Role default_member = 2;
1345
715
  */
1346
716
  defaultMember?: Role;
717
+ };
1347
718
 
1348
- constructor(data?: PartialMessage<UpdateDefaultOrganizationRolesResponse>) {
1349
- super();
1350
- proto3.util.initPartial(data, this);
1351
- }
1352
-
1353
- static readonly runtime: typeof proto3 = proto3;
1354
- static readonly typeName = "scalekit.v1.roles.UpdateDefaultOrganizationRolesResponse";
1355
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1356
- { no: 2, name: "default_member", kind: "message", T: Role },
1357
- ]);
1358
-
1359
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateDefaultOrganizationRolesResponse {
1360
- return new UpdateDefaultOrganizationRolesResponse().fromBinary(bytes, options);
1361
- }
1362
-
1363
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateDefaultOrganizationRolesResponse {
1364
- return new UpdateDefaultOrganizationRolesResponse().fromJson(jsonValue, options);
1365
- }
1366
-
1367
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateDefaultOrganizationRolesResponse {
1368
- return new UpdateDefaultOrganizationRolesResponse().fromJsonString(jsonString, options);
1369
- }
1370
-
1371
- static equals(a: UpdateDefaultOrganizationRolesResponse | PlainMessage<UpdateDefaultOrganizationRolesResponse> | undefined, b: UpdateDefaultOrganizationRolesResponse | PlainMessage<UpdateDefaultOrganizationRolesResponse> | undefined): boolean {
1372
- return proto3.util.equals(UpdateDefaultOrganizationRolesResponse, a, b);
1373
- }
1374
- }
719
+ /**
720
+ * Describes the message scalekit.v1.roles.UpdateDefaultOrganizationRolesResponse.
721
+ * Use `create(UpdateDefaultOrganizationRolesResponseSchema)` to create a new message.
722
+ */
723
+ export const UpdateDefaultOrganizationRolesResponseSchema: GenMessage<UpdateDefaultOrganizationRolesResponse> = /*@__PURE__*/
724
+ messageDesc(file_scalekit_v1_roles_roles, 29);
1375
725
 
1376
726
  /**
1377
727
  * @generated from message scalekit.v1.roles.UpdateDefaultRole
1378
728
  */
1379
- export class UpdateDefaultRole extends Message<UpdateDefaultRole> {
729
+ export type UpdateDefaultRole = Message<"scalekit.v1.roles.UpdateDefaultRole"> & {
1380
730
  /**
1381
731
  * @generated from field: string id = 1;
1382
732
  */
1383
- id = "";
733
+ id: string;
1384
734
 
1385
735
  /**
1386
736
  * @generated from field: optional string name = 2;
1387
737
  */
1388
738
  name?: string;
739
+ };
1389
740
 
1390
- constructor(data?: PartialMessage<UpdateDefaultRole>) {
1391
- super();
1392
- proto3.util.initPartial(data, this);
1393
- }
1394
-
1395
- static readonly runtime: typeof proto3 = proto3;
1396
- static readonly typeName = "scalekit.v1.roles.UpdateDefaultRole";
1397
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1398
- { no: 1, name: "id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1399
- { no: 2, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1400
- ]);
1401
-
1402
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateDefaultRole {
1403
- return new UpdateDefaultRole().fromBinary(bytes, options);
1404
- }
1405
-
1406
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateDefaultRole {
1407
- return new UpdateDefaultRole().fromJson(jsonValue, options);
1408
- }
1409
-
1410
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateDefaultRole {
1411
- return new UpdateDefaultRole().fromJsonString(jsonString, options);
1412
- }
1413
-
1414
- static equals(a: UpdateDefaultRole | PlainMessage<UpdateDefaultRole> | undefined, b: UpdateDefaultRole | PlainMessage<UpdateDefaultRole> | undefined): boolean {
1415
- return proto3.util.equals(UpdateDefaultRole, a, b);
1416
- }
1417
- }
741
+ /**
742
+ * Describes the message scalekit.v1.roles.UpdateDefaultRole.
743
+ * Use `create(UpdateDefaultRoleSchema)` to create a new message.
744
+ */
745
+ export const UpdateDefaultRoleSchema: GenMessage<UpdateDefaultRole> = /*@__PURE__*/
746
+ messageDesc(file_scalekit_v1_roles_roles, 30);
1418
747
 
1419
748
  /**
1420
749
  * Permission Entity
1421
750
  *
1422
751
  * @generated from message scalekit.v1.roles.Permission
1423
752
  */
1424
- export class Permission extends Message<Permission> {
753
+ export type Permission = Message<"scalekit.v1.roles.Permission"> & {
1425
754
  /**
1426
755
  * @generated from field: string id = 1;
1427
756
  */
1428
- id = "";
757
+ id: string;
1429
758
 
1430
759
  /**
1431
760
  * @generated from field: string name = 2;
1432
761
  */
1433
- name = "";
762
+ name: string;
1434
763
 
1435
764
  /**
1436
765
  * @generated from field: string description = 3;
1437
766
  */
1438
- description = "";
767
+ description: string;
1439
768
 
1440
769
  /**
1441
770
  * @generated from field: google.protobuf.Timestamp create_time = 4;
@@ -1450,61 +779,36 @@ export class Permission extends Message<Permission> {
1450
779
  /**
1451
780
  * @generated from field: bool is_scalekit_permission = 6;
1452
781
  */
1453
- isScalekitPermission = false;
1454
-
1455
- constructor(data?: PartialMessage<Permission>) {
1456
- super();
1457
- proto3.util.initPartial(data, this);
1458
- }
1459
-
1460
- static readonly runtime: typeof proto3 = proto3;
1461
- static readonly typeName = "scalekit.v1.roles.Permission";
1462
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1463
- { no: 1, name: "id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1464
- { no: 2, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1465
- { no: 3, name: "description", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1466
- { no: 4, name: "create_time", kind: "message", T: Timestamp },
1467
- { no: 5, name: "update_time", kind: "message", T: Timestamp },
1468
- { no: 6, name: "is_scalekit_permission", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
1469
- ]);
1470
-
1471
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): Permission {
1472
- return new Permission().fromBinary(bytes, options);
1473
- }
1474
-
1475
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): Permission {
1476
- return new Permission().fromJson(jsonValue, options);
1477
- }
1478
-
1479
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): Permission {
1480
- return new Permission().fromJsonString(jsonString, options);
1481
- }
1482
-
1483
- static equals(a: Permission | PlainMessage<Permission> | undefined, b: Permission | PlainMessage<Permission> | undefined): boolean {
1484
- return proto3.util.equals(Permission, a, b);
1485
- }
1486
- }
782
+ isScalekitPermission: boolean;
783
+ };
784
+
785
+ /**
786
+ * Describes the message scalekit.v1.roles.Permission.
787
+ * Use `create(PermissionSchema)` to create a new message.
788
+ */
789
+ export const PermissionSchema: GenMessage<Permission> = /*@__PURE__*/
790
+ messageDesc(file_scalekit_v1_roles_roles, 31);
1487
791
 
1488
792
  /**
1489
793
  * RolePermissions represents a permission with role source information
1490
794
  *
1491
795
  * @generated from message scalekit.v1.roles.RolePermission
1492
796
  */
1493
- export class RolePermission extends Message<RolePermission> {
797
+ export type RolePermission = Message<"scalekit.v1.roles.RolePermission"> & {
1494
798
  /**
1495
799
  * @generated from field: string id = 1;
1496
800
  */
1497
- id = "";
801
+ id: string;
1498
802
 
1499
803
  /**
1500
804
  * @generated from field: string name = 2;
1501
805
  */
1502
- name = "";
806
+ name: string;
1503
807
 
1504
808
  /**
1505
809
  * @generated from field: string description = 3;
1506
810
  */
1507
- description = "";
811
+ description: string;
1508
812
 
1509
813
  /**
1510
814
  * @generated from field: google.protobuf.Timestamp create_time = 4;
@@ -1519,318 +823,151 @@ export class RolePermission extends Message<RolePermission> {
1519
823
  /**
1520
824
  * @generated from field: string role_name = 6;
1521
825
  */
1522
- roleName = "";
1523
-
1524
- constructor(data?: PartialMessage<RolePermission>) {
1525
- super();
1526
- proto3.util.initPartial(data, this);
1527
- }
1528
-
1529
- static readonly runtime: typeof proto3 = proto3;
1530
- static readonly typeName = "scalekit.v1.roles.RolePermission";
1531
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1532
- { no: 1, name: "id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1533
- { no: 2, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1534
- { no: 3, name: "description", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1535
- { no: 4, name: "create_time", kind: "message", T: Timestamp },
1536
- { no: 5, name: "update_time", kind: "message", T: Timestamp },
1537
- { no: 6, name: "role_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1538
- ]);
1539
-
1540
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): RolePermission {
1541
- return new RolePermission().fromBinary(bytes, options);
1542
- }
1543
-
1544
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): RolePermission {
1545
- return new RolePermission().fromJson(jsonValue, options);
1546
- }
1547
-
1548
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): RolePermission {
1549
- return new RolePermission().fromJsonString(jsonString, options);
1550
- }
1551
-
1552
- static equals(a: RolePermission | PlainMessage<RolePermission> | undefined, b: RolePermission | PlainMessage<RolePermission> | undefined): boolean {
1553
- return proto3.util.equals(RolePermission, a, b);
1554
- }
1555
- }
826
+ roleName: string;
827
+ };
828
+
829
+ /**
830
+ * Describes the message scalekit.v1.roles.RolePermission.
831
+ * Use `create(RolePermissionSchema)` to create a new message.
832
+ */
833
+ export const RolePermissionSchema: GenMessage<RolePermission> = /*@__PURE__*/
834
+ messageDesc(file_scalekit_v1_roles_roles, 32);
1556
835
 
1557
836
  /**
1558
837
  * @generated from message scalekit.v1.roles.CreatePermission
1559
838
  */
1560
- export class CreatePermission extends Message<CreatePermission> {
839
+ export type CreatePermission = Message<"scalekit.v1.roles.CreatePermission"> & {
1561
840
  /**
1562
841
  * @generated from field: string name = 1;
1563
842
  */
1564
- name = "";
843
+ name: string;
1565
844
 
1566
845
  /**
1567
846
  * @generated from field: string description = 2;
1568
847
  */
1569
- description = "";
1570
-
1571
- constructor(data?: PartialMessage<CreatePermission>) {
1572
- super();
1573
- proto3.util.initPartial(data, this);
1574
- }
1575
-
1576
- static readonly runtime: typeof proto3 = proto3;
1577
- static readonly typeName = "scalekit.v1.roles.CreatePermission";
1578
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1579
- { no: 1, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1580
- { no: 2, name: "description", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1581
- ]);
1582
-
1583
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreatePermission {
1584
- return new CreatePermission().fromBinary(bytes, options);
1585
- }
1586
-
1587
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreatePermission {
1588
- return new CreatePermission().fromJson(jsonValue, options);
1589
- }
848
+ description: string;
849
+ };
1590
850
 
1591
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreatePermission {
1592
- return new CreatePermission().fromJsonString(jsonString, options);
1593
- }
1594
-
1595
- static equals(a: CreatePermission | PlainMessage<CreatePermission> | undefined, b: CreatePermission | PlainMessage<CreatePermission> | undefined): boolean {
1596
- return proto3.util.equals(CreatePermission, a, b);
1597
- }
1598
- }
851
+ /**
852
+ * Describes the message scalekit.v1.roles.CreatePermission.
853
+ * Use `create(CreatePermissionSchema)` to create a new message.
854
+ */
855
+ export const CreatePermissionSchema: GenMessage<CreatePermission> = /*@__PURE__*/
856
+ messageDesc(file_scalekit_v1_roles_roles, 33);
1599
857
 
1600
858
  /**
1601
859
  * Permission Request/Response Messages
1602
860
  *
1603
861
  * @generated from message scalekit.v1.roles.CreatePermissionRequest
1604
862
  */
1605
- export class CreatePermissionRequest extends Message<CreatePermissionRequest> {
863
+ export type CreatePermissionRequest = Message<"scalekit.v1.roles.CreatePermissionRequest"> & {
1606
864
  /**
1607
865
  * @generated from field: scalekit.v1.roles.CreatePermission permission = 1;
1608
866
  */
1609
867
  permission?: CreatePermission;
868
+ };
1610
869
 
1611
- constructor(data?: PartialMessage<CreatePermissionRequest>) {
1612
- super();
1613
- proto3.util.initPartial(data, this);
1614
- }
1615
-
1616
- static readonly runtime: typeof proto3 = proto3;
1617
- static readonly typeName = "scalekit.v1.roles.CreatePermissionRequest";
1618
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1619
- { no: 1, name: "permission", kind: "message", T: CreatePermission },
1620
- ]);
1621
-
1622
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreatePermissionRequest {
1623
- return new CreatePermissionRequest().fromBinary(bytes, options);
1624
- }
1625
-
1626
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreatePermissionRequest {
1627
- return new CreatePermissionRequest().fromJson(jsonValue, options);
1628
- }
1629
-
1630
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreatePermissionRequest {
1631
- return new CreatePermissionRequest().fromJsonString(jsonString, options);
1632
- }
1633
-
1634
- static equals(a: CreatePermissionRequest | PlainMessage<CreatePermissionRequest> | undefined, b: CreatePermissionRequest | PlainMessage<CreatePermissionRequest> | undefined): boolean {
1635
- return proto3.util.equals(CreatePermissionRequest, a, b);
1636
- }
1637
- }
870
+ /**
871
+ * Describes the message scalekit.v1.roles.CreatePermissionRequest.
872
+ * Use `create(CreatePermissionRequestSchema)` to create a new message.
873
+ */
874
+ export const CreatePermissionRequestSchema: GenMessage<CreatePermissionRequest> = /*@__PURE__*/
875
+ messageDesc(file_scalekit_v1_roles_roles, 34);
1638
876
 
1639
877
  /**
1640
878
  * @generated from message scalekit.v1.roles.CreatePermissionResponse
1641
879
  */
1642
- export class CreatePermissionResponse extends Message<CreatePermissionResponse> {
880
+ export type CreatePermissionResponse = Message<"scalekit.v1.roles.CreatePermissionResponse"> & {
1643
881
  /**
1644
882
  * @generated from field: scalekit.v1.roles.Permission permission = 1;
1645
883
  */
1646
884
  permission?: Permission;
885
+ };
1647
886
 
1648
- constructor(data?: PartialMessage<CreatePermissionResponse>) {
1649
- super();
1650
- proto3.util.initPartial(data, this);
1651
- }
1652
-
1653
- static readonly runtime: typeof proto3 = proto3;
1654
- static readonly typeName = "scalekit.v1.roles.CreatePermissionResponse";
1655
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1656
- { no: 1, name: "permission", kind: "message", T: Permission },
1657
- ]);
1658
-
1659
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreatePermissionResponse {
1660
- return new CreatePermissionResponse().fromBinary(bytes, options);
1661
- }
1662
-
1663
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreatePermissionResponse {
1664
- return new CreatePermissionResponse().fromJson(jsonValue, options);
1665
- }
1666
-
1667
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreatePermissionResponse {
1668
- return new CreatePermissionResponse().fromJsonString(jsonString, options);
1669
- }
1670
-
1671
- static equals(a: CreatePermissionResponse | PlainMessage<CreatePermissionResponse> | undefined, b: CreatePermissionResponse | PlainMessage<CreatePermissionResponse> | undefined): boolean {
1672
- return proto3.util.equals(CreatePermissionResponse, a, b);
1673
- }
1674
- }
887
+ /**
888
+ * Describes the message scalekit.v1.roles.CreatePermissionResponse.
889
+ * Use `create(CreatePermissionResponseSchema)` to create a new message.
890
+ */
891
+ export const CreatePermissionResponseSchema: GenMessage<CreatePermissionResponse> = /*@__PURE__*/
892
+ messageDesc(file_scalekit_v1_roles_roles, 35);
1675
893
 
1676
894
  /**
1677
895
  * @generated from message scalekit.v1.roles.GetPermissionRequest
1678
896
  */
1679
- export class GetPermissionRequest extends Message<GetPermissionRequest> {
897
+ export type GetPermissionRequest = Message<"scalekit.v1.roles.GetPermissionRequest"> & {
1680
898
  /**
1681
899
  * @generated from field: string permission_name = 1;
1682
900
  */
1683
- permissionName = "";
1684
-
1685
- constructor(data?: PartialMessage<GetPermissionRequest>) {
1686
- super();
1687
- proto3.util.initPartial(data, this);
1688
- }
1689
-
1690
- static readonly runtime: typeof proto3 = proto3;
1691
- static readonly typeName = "scalekit.v1.roles.GetPermissionRequest";
1692
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1693
- { no: 1, name: "permission_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1694
- ]);
1695
-
1696
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetPermissionRequest {
1697
- return new GetPermissionRequest().fromBinary(bytes, options);
1698
- }
1699
-
1700
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetPermissionRequest {
1701
- return new GetPermissionRequest().fromJson(jsonValue, options);
1702
- }
1703
-
1704
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetPermissionRequest {
1705
- return new GetPermissionRequest().fromJsonString(jsonString, options);
1706
- }
901
+ permissionName: string;
902
+ };
1707
903
 
1708
- static equals(a: GetPermissionRequest | PlainMessage<GetPermissionRequest> | undefined, b: GetPermissionRequest | PlainMessage<GetPermissionRequest> | undefined): boolean {
1709
- return proto3.util.equals(GetPermissionRequest, a, b);
1710
- }
1711
- }
904
+ /**
905
+ * Describes the message scalekit.v1.roles.GetPermissionRequest.
906
+ * Use `create(GetPermissionRequestSchema)` to create a new message.
907
+ */
908
+ export const GetPermissionRequestSchema: GenMessage<GetPermissionRequest> = /*@__PURE__*/
909
+ messageDesc(file_scalekit_v1_roles_roles, 36);
1712
910
 
1713
911
  /**
1714
912
  * @generated from message scalekit.v1.roles.GetPermissionResponse
1715
913
  */
1716
- export class GetPermissionResponse extends Message<GetPermissionResponse> {
914
+ export type GetPermissionResponse = Message<"scalekit.v1.roles.GetPermissionResponse"> & {
1717
915
  /**
1718
916
  * @generated from field: scalekit.v1.roles.Permission permission = 1;
1719
917
  */
1720
918
  permission?: Permission;
919
+ };
1721
920
 
1722
- constructor(data?: PartialMessage<GetPermissionResponse>) {
1723
- super();
1724
- proto3.util.initPartial(data, this);
1725
- }
1726
-
1727
- static readonly runtime: typeof proto3 = proto3;
1728
- static readonly typeName = "scalekit.v1.roles.GetPermissionResponse";
1729
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1730
- { no: 1, name: "permission", kind: "message", T: Permission },
1731
- ]);
1732
-
1733
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetPermissionResponse {
1734
- return new GetPermissionResponse().fromBinary(bytes, options);
1735
- }
1736
-
1737
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetPermissionResponse {
1738
- return new GetPermissionResponse().fromJson(jsonValue, options);
1739
- }
1740
-
1741
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetPermissionResponse {
1742
- return new GetPermissionResponse().fromJsonString(jsonString, options);
1743
- }
1744
-
1745
- static equals(a: GetPermissionResponse | PlainMessage<GetPermissionResponse> | undefined, b: GetPermissionResponse | PlainMessage<GetPermissionResponse> | undefined): boolean {
1746
- return proto3.util.equals(GetPermissionResponse, a, b);
1747
- }
1748
- }
921
+ /**
922
+ * Describes the message scalekit.v1.roles.GetPermissionResponse.
923
+ * Use `create(GetPermissionResponseSchema)` to create a new message.
924
+ */
925
+ export const GetPermissionResponseSchema: GenMessage<GetPermissionResponse> = /*@__PURE__*/
926
+ messageDesc(file_scalekit_v1_roles_roles, 37);
1749
927
 
1750
928
  /**
1751
929
  * @generated from message scalekit.v1.roles.UpdatePermissionRequest
1752
930
  */
1753
- export class UpdatePermissionRequest extends Message<UpdatePermissionRequest> {
931
+ export type UpdatePermissionRequest = Message<"scalekit.v1.roles.UpdatePermissionRequest"> & {
1754
932
  /**
1755
933
  * @generated from field: string permission_name = 1;
1756
934
  */
1757
- permissionName = "";
935
+ permissionName: string;
1758
936
 
1759
937
  /**
1760
938
  * @generated from field: scalekit.v1.roles.CreatePermission permission = 3;
1761
939
  */
1762
940
  permission?: CreatePermission;
941
+ };
1763
942
 
1764
- constructor(data?: PartialMessage<UpdatePermissionRequest>) {
1765
- super();
1766
- proto3.util.initPartial(data, this);
1767
- }
1768
-
1769
- static readonly runtime: typeof proto3 = proto3;
1770
- static readonly typeName = "scalekit.v1.roles.UpdatePermissionRequest";
1771
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1772
- { no: 1, name: "permission_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1773
- { no: 3, name: "permission", kind: "message", T: CreatePermission },
1774
- ]);
1775
-
1776
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdatePermissionRequest {
1777
- return new UpdatePermissionRequest().fromBinary(bytes, options);
1778
- }
1779
-
1780
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdatePermissionRequest {
1781
- return new UpdatePermissionRequest().fromJson(jsonValue, options);
1782
- }
1783
-
1784
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdatePermissionRequest {
1785
- return new UpdatePermissionRequest().fromJsonString(jsonString, options);
1786
- }
1787
-
1788
- static equals(a: UpdatePermissionRequest | PlainMessage<UpdatePermissionRequest> | undefined, b: UpdatePermissionRequest | PlainMessage<UpdatePermissionRequest> | undefined): boolean {
1789
- return proto3.util.equals(UpdatePermissionRequest, a, b);
1790
- }
1791
- }
943
+ /**
944
+ * Describes the message scalekit.v1.roles.UpdatePermissionRequest.
945
+ * Use `create(UpdatePermissionRequestSchema)` to create a new message.
946
+ */
947
+ export const UpdatePermissionRequestSchema: GenMessage<UpdatePermissionRequest> = /*@__PURE__*/
948
+ messageDesc(file_scalekit_v1_roles_roles, 38);
1792
949
 
1793
950
  /**
1794
951
  * @generated from message scalekit.v1.roles.UpdatePermissionResponse
1795
952
  */
1796
- export class UpdatePermissionResponse extends Message<UpdatePermissionResponse> {
953
+ export type UpdatePermissionResponse = Message<"scalekit.v1.roles.UpdatePermissionResponse"> & {
1797
954
  /**
1798
955
  * @generated from field: scalekit.v1.roles.Permission permission = 1;
1799
956
  */
1800
957
  permission?: Permission;
958
+ };
1801
959
 
1802
- constructor(data?: PartialMessage<UpdatePermissionResponse>) {
1803
- super();
1804
- proto3.util.initPartial(data, this);
1805
- }
1806
-
1807
- static readonly runtime: typeof proto3 = proto3;
1808
- static readonly typeName = "scalekit.v1.roles.UpdatePermissionResponse";
1809
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1810
- { no: 1, name: "permission", kind: "message", T: Permission },
1811
- ]);
1812
-
1813
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdatePermissionResponse {
1814
- return new UpdatePermissionResponse().fromBinary(bytes, options);
1815
- }
1816
-
1817
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdatePermissionResponse {
1818
- return new UpdatePermissionResponse().fromJson(jsonValue, options);
1819
- }
1820
-
1821
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdatePermissionResponse {
1822
- return new UpdatePermissionResponse().fromJsonString(jsonString, options);
1823
- }
1824
-
1825
- static equals(a: UpdatePermissionResponse | PlainMessage<UpdatePermissionResponse> | undefined, b: UpdatePermissionResponse | PlainMessage<UpdatePermissionResponse> | undefined): boolean {
1826
- return proto3.util.equals(UpdatePermissionResponse, a, b);
1827
- }
1828
- }
960
+ /**
961
+ * Describes the message scalekit.v1.roles.UpdatePermissionResponse.
962
+ * Use `create(UpdatePermissionResponseSchema)` to create a new message.
963
+ */
964
+ export const UpdatePermissionResponseSchema: GenMessage<UpdatePermissionResponse> = /*@__PURE__*/
965
+ messageDesc(file_scalekit_v1_roles_roles, 39);
1829
966
 
1830
967
  /**
1831
968
  * @generated from message scalekit.v1.roles.ListPermissionsRequest
1832
969
  */
1833
- export class ListPermissionsRequest extends Message<ListPermissionsRequest> {
970
+ export type ListPermissionsRequest = Message<"scalekit.v1.roles.ListPermissionsRequest"> & {
1834
971
  /**
1835
972
  * @generated from field: optional string page_token = 1;
1836
973
  */
@@ -1844,552 +981,511 @@ export class ListPermissionsRequest extends Message<ListPermissionsRequest> {
1844
981
  /**
1845
982
  * @generated from field: scalekit.v1.roles.PermissionType type = 3;
1846
983
  */
1847
- type = PermissionType.ALL;
1848
-
1849
- constructor(data?: PartialMessage<ListPermissionsRequest>) {
1850
- super();
1851
- proto3.util.initPartial(data, this);
1852
- }
1853
-
1854
- static readonly runtime: typeof proto3 = proto3;
1855
- static readonly typeName = "scalekit.v1.roles.ListPermissionsRequest";
1856
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1857
- { no: 1, name: "page_token", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1858
- { no: 2, name: "page_size", kind: "scalar", T: 13 /* ScalarType.UINT32 */, opt: true },
1859
- { no: 3, name: "type", kind: "enum", T: proto3.getEnumType(PermissionType) },
1860
- ]);
1861
-
1862
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListPermissionsRequest {
1863
- return new ListPermissionsRequest().fromBinary(bytes, options);
1864
- }
984
+ type: PermissionType;
985
+ };
1865
986
 
1866
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListPermissionsRequest {
1867
- return new ListPermissionsRequest().fromJson(jsonValue, options);
1868
- }
1869
-
1870
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListPermissionsRequest {
1871
- return new ListPermissionsRequest().fromJsonString(jsonString, options);
1872
- }
1873
-
1874
- static equals(a: ListPermissionsRequest | PlainMessage<ListPermissionsRequest> | undefined, b: ListPermissionsRequest | PlainMessage<ListPermissionsRequest> | undefined): boolean {
1875
- return proto3.util.equals(ListPermissionsRequest, a, b);
1876
- }
1877
- }
987
+ /**
988
+ * Describes the message scalekit.v1.roles.ListPermissionsRequest.
989
+ * Use `create(ListPermissionsRequestSchema)` to create a new message.
990
+ */
991
+ export const ListPermissionsRequestSchema: GenMessage<ListPermissionsRequest> = /*@__PURE__*/
992
+ messageDesc(file_scalekit_v1_roles_roles, 40);
1878
993
 
1879
994
  /**
1880
995
  * @generated from message scalekit.v1.roles.ListPermissionsResponse
1881
996
  */
1882
- export class ListPermissionsResponse extends Message<ListPermissionsResponse> {
997
+ export type ListPermissionsResponse = Message<"scalekit.v1.roles.ListPermissionsResponse"> & {
1883
998
  /**
1884
999
  * @generated from field: repeated scalekit.v1.roles.Permission permissions = 1;
1885
1000
  */
1886
- permissions: Permission[] = [];
1001
+ permissions: Permission[];
1887
1002
 
1888
1003
  /**
1889
1004
  * @generated from field: string prev_page_token = 2;
1890
1005
  */
1891
- prevPageToken = "";
1006
+ prevPageToken: string;
1892
1007
 
1893
1008
  /**
1894
1009
  * @generated from field: string next_page_token = 3;
1895
1010
  */
1896
- nextPageToken = "";
1011
+ nextPageToken: string;
1897
1012
 
1898
1013
  /**
1899
1014
  * @generated from field: uint32 total_size = 4;
1900
1015
  */
1901
- totalSize = 0;
1902
-
1903
- constructor(data?: PartialMessage<ListPermissionsResponse>) {
1904
- super();
1905
- proto3.util.initPartial(data, this);
1906
- }
1907
-
1908
- static readonly runtime: typeof proto3 = proto3;
1909
- static readonly typeName = "scalekit.v1.roles.ListPermissionsResponse";
1910
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1911
- { no: 1, name: "permissions", kind: "message", T: Permission, repeated: true },
1912
- { no: 2, name: "prev_page_token", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1913
- { no: 3, name: "next_page_token", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1914
- { no: 4, name: "total_size", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
1915
- ]);
1916
-
1917
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListPermissionsResponse {
1918
- return new ListPermissionsResponse().fromBinary(bytes, options);
1919
- }
1920
-
1921
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListPermissionsResponse {
1922
- return new ListPermissionsResponse().fromJson(jsonValue, options);
1923
- }
1924
-
1925
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListPermissionsResponse {
1926
- return new ListPermissionsResponse().fromJsonString(jsonString, options);
1927
- }
1928
-
1929
- static equals(a: ListPermissionsResponse | PlainMessage<ListPermissionsResponse> | undefined, b: ListPermissionsResponse | PlainMessage<ListPermissionsResponse> | undefined): boolean {
1930
- return proto3.util.equals(ListPermissionsResponse, a, b);
1931
- }
1932
- }
1016
+ totalSize: number;
1017
+ };
1018
+
1019
+ /**
1020
+ * Describes the message scalekit.v1.roles.ListPermissionsResponse.
1021
+ * Use `create(ListPermissionsResponseSchema)` to create a new message.
1022
+ */
1023
+ export const ListPermissionsResponseSchema: GenMessage<ListPermissionsResponse> = /*@__PURE__*/
1024
+ messageDesc(file_scalekit_v1_roles_roles, 41);
1933
1025
 
1934
1026
  /**
1935
1027
  * @generated from message scalekit.v1.roles.DeletePermissionRequest
1936
1028
  */
1937
- export class DeletePermissionRequest extends Message<DeletePermissionRequest> {
1029
+ export type DeletePermissionRequest = Message<"scalekit.v1.roles.DeletePermissionRequest"> & {
1938
1030
  /**
1939
1031
  * @generated from field: string permission_name = 1;
1940
1032
  */
1941
- permissionName = "";
1942
-
1943
- constructor(data?: PartialMessage<DeletePermissionRequest>) {
1944
- super();
1945
- proto3.util.initPartial(data, this);
1946
- }
1947
-
1948
- static readonly runtime: typeof proto3 = proto3;
1949
- static readonly typeName = "scalekit.v1.roles.DeletePermissionRequest";
1950
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1951
- { no: 1, name: "permission_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1952
- ]);
1953
-
1954
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DeletePermissionRequest {
1955
- return new DeletePermissionRequest().fromBinary(bytes, options);
1956
- }
1033
+ permissionName: string;
1034
+ };
1957
1035
 
1958
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DeletePermissionRequest {
1959
- return new DeletePermissionRequest().fromJson(jsonValue, options);
1960
- }
1961
-
1962
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DeletePermissionRequest {
1963
- return new DeletePermissionRequest().fromJsonString(jsonString, options);
1964
- }
1965
-
1966
- static equals(a: DeletePermissionRequest | PlainMessage<DeletePermissionRequest> | undefined, b: DeletePermissionRequest | PlainMessage<DeletePermissionRequest> | undefined): boolean {
1967
- return proto3.util.equals(DeletePermissionRequest, a, b);
1968
- }
1969
- }
1036
+ /**
1037
+ * Describes the message scalekit.v1.roles.DeletePermissionRequest.
1038
+ * Use `create(DeletePermissionRequestSchema)` to create a new message.
1039
+ */
1040
+ export const DeletePermissionRequestSchema: GenMessage<DeletePermissionRequest> = /*@__PURE__*/
1041
+ messageDesc(file_scalekit_v1_roles_roles, 42);
1970
1042
 
1971
1043
  /**
1972
1044
  * @generated from message scalekit.v1.roles.ListRolePermissionsRequest
1973
1045
  */
1974
- export class ListRolePermissionsRequest extends Message<ListRolePermissionsRequest> {
1046
+ export type ListRolePermissionsRequest = Message<"scalekit.v1.roles.ListRolePermissionsRequest"> & {
1975
1047
  /**
1976
1048
  * @generated from field: string role_name = 1;
1977
1049
  */
1978
- roleName = "";
1979
-
1980
- constructor(data?: PartialMessage<ListRolePermissionsRequest>) {
1981
- super();
1982
- proto3.util.initPartial(data, this);
1983
- }
1050
+ roleName: string;
1051
+ };
1984
1052
 
1985
- static readonly runtime: typeof proto3 = proto3;
1986
- static readonly typeName = "scalekit.v1.roles.ListRolePermissionsRequest";
1987
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1988
- { no: 1, name: "role_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1989
- ]);
1990
-
1991
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListRolePermissionsRequest {
1992
- return new ListRolePermissionsRequest().fromBinary(bytes, options);
1993
- }
1994
-
1995
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListRolePermissionsRequest {
1996
- return new ListRolePermissionsRequest().fromJson(jsonValue, options);
1997
- }
1998
-
1999
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListRolePermissionsRequest {
2000
- return new ListRolePermissionsRequest().fromJsonString(jsonString, options);
2001
- }
2002
-
2003
- static equals(a: ListRolePermissionsRequest | PlainMessage<ListRolePermissionsRequest> | undefined, b: ListRolePermissionsRequest | PlainMessage<ListRolePermissionsRequest> | undefined): boolean {
2004
- return proto3.util.equals(ListRolePermissionsRequest, a, b);
2005
- }
2006
- }
1053
+ /**
1054
+ * Describes the message scalekit.v1.roles.ListRolePermissionsRequest.
1055
+ * Use `create(ListRolePermissionsRequestSchema)` to create a new message.
1056
+ */
1057
+ export const ListRolePermissionsRequestSchema: GenMessage<ListRolePermissionsRequest> = /*@__PURE__*/
1058
+ messageDesc(file_scalekit_v1_roles_roles, 43);
2007
1059
 
2008
1060
  /**
2009
1061
  * @generated from message scalekit.v1.roles.ListRolePermissionsResponse
2010
1062
  */
2011
- export class ListRolePermissionsResponse extends Message<ListRolePermissionsResponse> {
1063
+ export type ListRolePermissionsResponse = Message<"scalekit.v1.roles.ListRolePermissionsResponse"> & {
2012
1064
  /**
2013
1065
  * @generated from field: repeated scalekit.v1.roles.Permission permissions = 1;
2014
1066
  */
2015
- permissions: Permission[] = [];
1067
+ permissions: Permission[];
1068
+ };
2016
1069
 
2017
- constructor(data?: PartialMessage<ListRolePermissionsResponse>) {
2018
- super();
2019
- proto3.util.initPartial(data, this);
2020
- }
2021
-
2022
- static readonly runtime: typeof proto3 = proto3;
2023
- static readonly typeName = "scalekit.v1.roles.ListRolePermissionsResponse";
2024
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
2025
- { no: 1, name: "permissions", kind: "message", T: Permission, repeated: true },
2026
- ]);
2027
-
2028
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListRolePermissionsResponse {
2029
- return new ListRolePermissionsResponse().fromBinary(bytes, options);
2030
- }
2031
-
2032
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListRolePermissionsResponse {
2033
- return new ListRolePermissionsResponse().fromJson(jsonValue, options);
2034
- }
2035
-
2036
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListRolePermissionsResponse {
2037
- return new ListRolePermissionsResponse().fromJsonString(jsonString, options);
2038
- }
2039
-
2040
- static equals(a: ListRolePermissionsResponse | PlainMessage<ListRolePermissionsResponse> | undefined, b: ListRolePermissionsResponse | PlainMessage<ListRolePermissionsResponse> | undefined): boolean {
2041
- return proto3.util.equals(ListRolePermissionsResponse, a, b);
2042
- }
2043
- }
1070
+ /**
1071
+ * Describes the message scalekit.v1.roles.ListRolePermissionsResponse.
1072
+ * Use `create(ListRolePermissionsResponseSchema)` to create a new message.
1073
+ */
1074
+ export const ListRolePermissionsResponseSchema: GenMessage<ListRolePermissionsResponse> = /*@__PURE__*/
1075
+ messageDesc(file_scalekit_v1_roles_roles, 44);
2044
1076
 
2045
1077
  /**
2046
1078
  * @generated from message scalekit.v1.roles.AddPermissionsToRoleRequest
2047
1079
  */
2048
- export class AddPermissionsToRoleRequest extends Message<AddPermissionsToRoleRequest> {
1080
+ export type AddPermissionsToRoleRequest = Message<"scalekit.v1.roles.AddPermissionsToRoleRequest"> & {
2049
1081
  /**
2050
1082
  * @generated from field: string role_name = 1;
2051
1083
  */
2052
- roleName = "";
1084
+ roleName: string;
2053
1085
 
2054
1086
  /**
2055
1087
  * @generated from field: repeated string permission_names = 2;
2056
1088
  */
2057
- permissionNames: string[] = [];
2058
-
2059
- constructor(data?: PartialMessage<AddPermissionsToRoleRequest>) {
2060
- super();
2061
- proto3.util.initPartial(data, this);
2062
- }
2063
-
2064
- static readonly runtime: typeof proto3 = proto3;
2065
- static readonly typeName = "scalekit.v1.roles.AddPermissionsToRoleRequest";
2066
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
2067
- { no: 1, name: "role_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
2068
- { no: 2, name: "permission_names", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
2069
- ]);
2070
-
2071
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): AddPermissionsToRoleRequest {
2072
- return new AddPermissionsToRoleRequest().fromBinary(bytes, options);
2073
- }
2074
-
2075
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): AddPermissionsToRoleRequest {
2076
- return new AddPermissionsToRoleRequest().fromJson(jsonValue, options);
2077
- }
1089
+ permissionNames: string[];
1090
+ };
2078
1091
 
2079
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): AddPermissionsToRoleRequest {
2080
- return new AddPermissionsToRoleRequest().fromJsonString(jsonString, options);
2081
- }
2082
-
2083
- static equals(a: AddPermissionsToRoleRequest | PlainMessage<AddPermissionsToRoleRequest> | undefined, b: AddPermissionsToRoleRequest | PlainMessage<AddPermissionsToRoleRequest> | undefined): boolean {
2084
- return proto3.util.equals(AddPermissionsToRoleRequest, a, b);
2085
- }
2086
- }
1092
+ /**
1093
+ * Describes the message scalekit.v1.roles.AddPermissionsToRoleRequest.
1094
+ * Use `create(AddPermissionsToRoleRequestSchema)` to create a new message.
1095
+ */
1096
+ export const AddPermissionsToRoleRequestSchema: GenMessage<AddPermissionsToRoleRequest> = /*@__PURE__*/
1097
+ messageDesc(file_scalekit_v1_roles_roles, 45);
2087
1098
 
2088
1099
  /**
2089
1100
  * @generated from message scalekit.v1.roles.AddPermissionsToRoleResponse
2090
1101
  */
2091
- export class AddPermissionsToRoleResponse extends Message<AddPermissionsToRoleResponse> {
1102
+ export type AddPermissionsToRoleResponse = Message<"scalekit.v1.roles.AddPermissionsToRoleResponse"> & {
2092
1103
  /**
2093
1104
  * @generated from field: repeated scalekit.v1.roles.Permission permissions = 1;
2094
1105
  */
2095
- permissions: Permission[] = [];
2096
-
2097
- constructor(data?: PartialMessage<AddPermissionsToRoleResponse>) {
2098
- super();
2099
- proto3.util.initPartial(data, this);
2100
- }
2101
-
2102
- static readonly runtime: typeof proto3 = proto3;
2103
- static readonly typeName = "scalekit.v1.roles.AddPermissionsToRoleResponse";
2104
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
2105
- { no: 1, name: "permissions", kind: "message", T: Permission, repeated: true },
2106
- ]);
1106
+ permissions: Permission[];
1107
+ };
2107
1108
 
2108
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): AddPermissionsToRoleResponse {
2109
- return new AddPermissionsToRoleResponse().fromBinary(bytes, options);
2110
- }
2111
-
2112
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): AddPermissionsToRoleResponse {
2113
- return new AddPermissionsToRoleResponse().fromJson(jsonValue, options);
2114
- }
2115
-
2116
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): AddPermissionsToRoleResponse {
2117
- return new AddPermissionsToRoleResponse().fromJsonString(jsonString, options);
2118
- }
2119
-
2120
- static equals(a: AddPermissionsToRoleResponse | PlainMessage<AddPermissionsToRoleResponse> | undefined, b: AddPermissionsToRoleResponse | PlainMessage<AddPermissionsToRoleResponse> | undefined): boolean {
2121
- return proto3.util.equals(AddPermissionsToRoleResponse, a, b);
2122
- }
2123
- }
1109
+ /**
1110
+ * Describes the message scalekit.v1.roles.AddPermissionsToRoleResponse.
1111
+ * Use `create(AddPermissionsToRoleResponseSchema)` to create a new message.
1112
+ */
1113
+ export const AddPermissionsToRoleResponseSchema: GenMessage<AddPermissionsToRoleResponse> = /*@__PURE__*/
1114
+ messageDesc(file_scalekit_v1_roles_roles, 46);
2124
1115
 
2125
1116
  /**
2126
1117
  * @generated from message scalekit.v1.roles.RemovePermissionFromRoleRequest
2127
1118
  */
2128
- export class RemovePermissionFromRoleRequest extends Message<RemovePermissionFromRoleRequest> {
1119
+ export type RemovePermissionFromRoleRequest = Message<"scalekit.v1.roles.RemovePermissionFromRoleRequest"> & {
2129
1120
  /**
2130
1121
  * @generated from field: string role_name = 1;
2131
1122
  */
2132
- roleName = "";
1123
+ roleName: string;
2133
1124
 
2134
1125
  /**
2135
1126
  * @generated from field: string permission_name = 2;
2136
1127
  */
2137
- permissionName = "";
2138
-
2139
- constructor(data?: PartialMessage<RemovePermissionFromRoleRequest>) {
2140
- super();
2141
- proto3.util.initPartial(data, this);
2142
- }
1128
+ permissionName: string;
1129
+ };
2143
1130
 
2144
- static readonly runtime: typeof proto3 = proto3;
2145
- static readonly typeName = "scalekit.v1.roles.RemovePermissionFromRoleRequest";
2146
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
2147
- { no: 1, name: "role_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
2148
- { no: 2, name: "permission_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
2149
- ]);
2150
-
2151
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): RemovePermissionFromRoleRequest {
2152
- return new RemovePermissionFromRoleRequest().fromBinary(bytes, options);
2153
- }
2154
-
2155
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): RemovePermissionFromRoleRequest {
2156
- return new RemovePermissionFromRoleRequest().fromJson(jsonValue, options);
2157
- }
2158
-
2159
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): RemovePermissionFromRoleRequest {
2160
- return new RemovePermissionFromRoleRequest().fromJsonString(jsonString, options);
2161
- }
2162
-
2163
- static equals(a: RemovePermissionFromRoleRequest | PlainMessage<RemovePermissionFromRoleRequest> | undefined, b: RemovePermissionFromRoleRequest | PlainMessage<RemovePermissionFromRoleRequest> | undefined): boolean {
2164
- return proto3.util.equals(RemovePermissionFromRoleRequest, a, b);
2165
- }
2166
- }
1131
+ /**
1132
+ * Describes the message scalekit.v1.roles.RemovePermissionFromRoleRequest.
1133
+ * Use `create(RemovePermissionFromRoleRequestSchema)` to create a new message.
1134
+ */
1135
+ export const RemovePermissionFromRoleRequestSchema: GenMessage<RemovePermissionFromRoleRequest> = /*@__PURE__*/
1136
+ messageDesc(file_scalekit_v1_roles_roles, 47);
2167
1137
 
2168
1138
  /**
2169
1139
  * @generated from message scalekit.v1.roles.ListEffectiveRolePermissionsRequest
2170
1140
  */
2171
- export class ListEffectiveRolePermissionsRequest extends Message<ListEffectiveRolePermissionsRequest> {
1141
+ export type ListEffectiveRolePermissionsRequest = Message<"scalekit.v1.roles.ListEffectiveRolePermissionsRequest"> & {
2172
1142
  /**
2173
1143
  * @generated from field: string role_name = 1;
2174
1144
  */
2175
- roleName = "";
2176
-
2177
- constructor(data?: PartialMessage<ListEffectiveRolePermissionsRequest>) {
2178
- super();
2179
- proto3.util.initPartial(data, this);
2180
- }
2181
-
2182
- static readonly runtime: typeof proto3 = proto3;
2183
- static readonly typeName = "scalekit.v1.roles.ListEffectiveRolePermissionsRequest";
2184
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
2185
- { no: 1, name: "role_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
2186
- ]);
2187
-
2188
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListEffectiveRolePermissionsRequest {
2189
- return new ListEffectiveRolePermissionsRequest().fromBinary(bytes, options);
2190
- }
2191
-
2192
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListEffectiveRolePermissionsRequest {
2193
- return new ListEffectiveRolePermissionsRequest().fromJson(jsonValue, options);
2194
- }
2195
-
2196
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListEffectiveRolePermissionsRequest {
2197
- return new ListEffectiveRolePermissionsRequest().fromJsonString(jsonString, options);
2198
- }
1145
+ roleName: string;
1146
+ };
2199
1147
 
2200
- static equals(a: ListEffectiveRolePermissionsRequest | PlainMessage<ListEffectiveRolePermissionsRequest> | undefined, b: ListEffectiveRolePermissionsRequest | PlainMessage<ListEffectiveRolePermissionsRequest> | undefined): boolean {
2201
- return proto3.util.equals(ListEffectiveRolePermissionsRequest, a, b);
2202
- }
2203
- }
1148
+ /**
1149
+ * Describes the message scalekit.v1.roles.ListEffectiveRolePermissionsRequest.
1150
+ * Use `create(ListEffectiveRolePermissionsRequestSchema)` to create a new message.
1151
+ */
1152
+ export const ListEffectiveRolePermissionsRequestSchema: GenMessage<ListEffectiveRolePermissionsRequest> = /*@__PURE__*/
1153
+ messageDesc(file_scalekit_v1_roles_roles, 48);
2204
1154
 
2205
1155
  /**
2206
1156
  * @generated from message scalekit.v1.roles.ListEffectiveRolePermissionsResponse
2207
1157
  */
2208
- export class ListEffectiveRolePermissionsResponse extends Message<ListEffectiveRolePermissionsResponse> {
1158
+ export type ListEffectiveRolePermissionsResponse = Message<"scalekit.v1.roles.ListEffectiveRolePermissionsResponse"> & {
2209
1159
  /**
2210
1160
  * @generated from field: repeated scalekit.v1.roles.Permission permissions = 1;
2211
1161
  */
2212
- permissions: Permission[] = [];
2213
-
2214
- constructor(data?: PartialMessage<ListEffectiveRolePermissionsResponse>) {
2215
- super();
2216
- proto3.util.initPartial(data, this);
2217
- }
2218
-
2219
- static readonly runtime: typeof proto3 = proto3;
2220
- static readonly typeName = "scalekit.v1.roles.ListEffectiveRolePermissionsResponse";
2221
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
2222
- { no: 1, name: "permissions", kind: "message", T: Permission, repeated: true },
2223
- ]);
2224
-
2225
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListEffectiveRolePermissionsResponse {
2226
- return new ListEffectiveRolePermissionsResponse().fromBinary(bytes, options);
2227
- }
1162
+ permissions: Permission[];
1163
+ };
2228
1164
 
2229
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListEffectiveRolePermissionsResponse {
2230
- return new ListEffectiveRolePermissionsResponse().fromJson(jsonValue, options);
2231
- }
2232
-
2233
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListEffectiveRolePermissionsResponse {
2234
- return new ListEffectiveRolePermissionsResponse().fromJsonString(jsonString, options);
2235
- }
2236
-
2237
- static equals(a: ListEffectiveRolePermissionsResponse | PlainMessage<ListEffectiveRolePermissionsResponse> | undefined, b: ListEffectiveRolePermissionsResponse | PlainMessage<ListEffectiveRolePermissionsResponse> | undefined): boolean {
2238
- return proto3.util.equals(ListEffectiveRolePermissionsResponse, a, b);
2239
- }
2240
- }
1165
+ /**
1166
+ * Describes the message scalekit.v1.roles.ListEffectiveRolePermissionsResponse.
1167
+ * Use `create(ListEffectiveRolePermissionsResponseSchema)` to create a new message.
1168
+ */
1169
+ export const ListEffectiveRolePermissionsResponseSchema: GenMessage<ListEffectiveRolePermissionsResponse> = /*@__PURE__*/
1170
+ messageDesc(file_scalekit_v1_roles_roles, 49);
2241
1171
 
2242
1172
  /**
2243
1173
  * @generated from message scalekit.v1.roles.ListDependentRolesRequest
2244
1174
  */
2245
- export class ListDependentRolesRequest extends Message<ListDependentRolesRequest> {
1175
+ export type ListDependentRolesRequest = Message<"scalekit.v1.roles.ListDependentRolesRequest"> & {
2246
1176
  /**
2247
1177
  * @generated from field: string role_name = 1;
2248
1178
  */
2249
- roleName = "";
2250
-
2251
- constructor(data?: PartialMessage<ListDependentRolesRequest>) {
2252
- super();
2253
- proto3.util.initPartial(data, this);
2254
- }
2255
-
2256
- static readonly runtime: typeof proto3 = proto3;
2257
- static readonly typeName = "scalekit.v1.roles.ListDependentRolesRequest";
2258
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
2259
- { no: 1, name: "role_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
2260
- ]);
1179
+ roleName: string;
1180
+ };
2261
1181
 
2262
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListDependentRolesRequest {
2263
- return new ListDependentRolesRequest().fromBinary(bytes, options);
2264
- }
2265
-
2266
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListDependentRolesRequest {
2267
- return new ListDependentRolesRequest().fromJson(jsonValue, options);
2268
- }
2269
-
2270
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListDependentRolesRequest {
2271
- return new ListDependentRolesRequest().fromJsonString(jsonString, options);
2272
- }
2273
-
2274
- static equals(a: ListDependentRolesRequest | PlainMessage<ListDependentRolesRequest> | undefined, b: ListDependentRolesRequest | PlainMessage<ListDependentRolesRequest> | undefined): boolean {
2275
- return proto3.util.equals(ListDependentRolesRequest, a, b);
2276
- }
2277
- }
1182
+ /**
1183
+ * Describes the message scalekit.v1.roles.ListDependentRolesRequest.
1184
+ * Use `create(ListDependentRolesRequestSchema)` to create a new message.
1185
+ */
1186
+ export const ListDependentRolesRequestSchema: GenMessage<ListDependentRolesRequest> = /*@__PURE__*/
1187
+ messageDesc(file_scalekit_v1_roles_roles, 50);
2278
1188
 
2279
1189
  /**
2280
1190
  * @generated from message scalekit.v1.roles.ListDependentRolesResponse
2281
1191
  */
2282
- export class ListDependentRolesResponse extends Message<ListDependentRolesResponse> {
1192
+ export type ListDependentRolesResponse = Message<"scalekit.v1.roles.ListDependentRolesResponse"> & {
2283
1193
  /**
2284
1194
  * @generated from field: repeated scalekit.v1.roles.Role roles = 1;
2285
1195
  */
2286
- roles: Role[] = [];
1196
+ roles: Role[];
1197
+ };
2287
1198
 
2288
- constructor(data?: PartialMessage<ListDependentRolesResponse>) {
2289
- super();
2290
- proto3.util.initPartial(data, this);
2291
- }
2292
-
2293
- static readonly runtime: typeof proto3 = proto3;
2294
- static readonly typeName = "scalekit.v1.roles.ListDependentRolesResponse";
2295
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
2296
- { no: 1, name: "roles", kind: "message", T: Role, repeated: true },
2297
- ]);
2298
-
2299
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListDependentRolesResponse {
2300
- return new ListDependentRolesResponse().fromBinary(bytes, options);
2301
- }
2302
-
2303
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListDependentRolesResponse {
2304
- return new ListDependentRolesResponse().fromJson(jsonValue, options);
2305
- }
2306
-
2307
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListDependentRolesResponse {
2308
- return new ListDependentRolesResponse().fromJsonString(jsonString, options);
2309
- }
2310
-
2311
- static equals(a: ListDependentRolesResponse | PlainMessage<ListDependentRolesResponse> | undefined, b: ListDependentRolesResponse | PlainMessage<ListDependentRolesResponse> | undefined): boolean {
2312
- return proto3.util.equals(ListDependentRolesResponse, a, b);
2313
- }
2314
- }
1199
+ /**
1200
+ * Describes the message scalekit.v1.roles.ListDependentRolesResponse.
1201
+ * Use `create(ListDependentRolesResponseSchema)` to create a new message.
1202
+ */
1203
+ export const ListDependentRolesResponseSchema: GenMessage<ListDependentRolesResponse> = /*@__PURE__*/
1204
+ messageDesc(file_scalekit_v1_roles_roles, 51);
2315
1205
 
2316
1206
  /**
2317
1207
  * @generated from message scalekit.v1.roles.DeleteRoleBaseRequest
2318
1208
  */
2319
- export class DeleteRoleBaseRequest extends Message<DeleteRoleBaseRequest> {
1209
+ export type DeleteRoleBaseRequest = Message<"scalekit.v1.roles.DeleteRoleBaseRequest"> & {
2320
1210
  /**
2321
1211
  * @generated from field: string role_name = 1;
2322
1212
  */
2323
- roleName = "";
2324
-
2325
- constructor(data?: PartialMessage<DeleteRoleBaseRequest>) {
2326
- super();
2327
- proto3.util.initPartial(data, this);
2328
- }
2329
-
2330
- static readonly runtime: typeof proto3 = proto3;
2331
- static readonly typeName = "scalekit.v1.roles.DeleteRoleBaseRequest";
2332
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
2333
- { no: 1, name: "role_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
2334
- ]);
2335
-
2336
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DeleteRoleBaseRequest {
2337
- return new DeleteRoleBaseRequest().fromBinary(bytes, options);
2338
- }
2339
-
2340
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DeleteRoleBaseRequest {
2341
- return new DeleteRoleBaseRequest().fromJson(jsonValue, options);
2342
- }
1213
+ roleName: string;
1214
+ };
2343
1215
 
2344
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DeleteRoleBaseRequest {
2345
- return new DeleteRoleBaseRequest().fromJsonString(jsonString, options);
2346
- }
2347
-
2348
- static equals(a: DeleteRoleBaseRequest | PlainMessage<DeleteRoleBaseRequest> | undefined, b: DeleteRoleBaseRequest | PlainMessage<DeleteRoleBaseRequest> | undefined): boolean {
2349
- return proto3.util.equals(DeleteRoleBaseRequest, a, b);
2350
- }
2351
- }
1216
+ /**
1217
+ * Describes the message scalekit.v1.roles.DeleteRoleBaseRequest.
1218
+ * Use `create(DeleteRoleBaseRequestSchema)` to create a new message.
1219
+ */
1220
+ export const DeleteRoleBaseRequestSchema: GenMessage<DeleteRoleBaseRequest> = /*@__PURE__*/
1221
+ messageDesc(file_scalekit_v1_roles_roles, 52);
2352
1222
 
2353
1223
  /**
2354
1224
  * @generated from message scalekit.v1.roles.DeleteOrganizationRoleBaseRequest
2355
1225
  */
2356
- export class DeleteOrganizationRoleBaseRequest extends Message<DeleteOrganizationRoleBaseRequest> {
1226
+ export type DeleteOrganizationRoleBaseRequest = Message<"scalekit.v1.roles.DeleteOrganizationRoleBaseRequest"> & {
2357
1227
  /**
2358
1228
  * @generated from field: string org_id = 1;
2359
1229
  */
2360
- orgId = "";
1230
+ orgId: string;
2361
1231
 
2362
1232
  /**
2363
1233
  * @generated from field: string role_name = 2;
2364
1234
  */
2365
- roleName = "";
1235
+ roleName: string;
1236
+ };
2366
1237
 
2367
- constructor(data?: PartialMessage<DeleteOrganizationRoleBaseRequest>) {
2368
- super();
2369
- proto3.util.initPartial(data, this);
2370
- }
1238
+ /**
1239
+ * Describes the message scalekit.v1.roles.DeleteOrganizationRoleBaseRequest.
1240
+ * Use `create(DeleteOrganizationRoleBaseRequestSchema)` to create a new message.
1241
+ */
1242
+ export const DeleteOrganizationRoleBaseRequestSchema: GenMessage<DeleteOrganizationRoleBaseRequest> = /*@__PURE__*/
1243
+ messageDesc(file_scalekit_v1_roles_roles, 53);
2371
1244
 
2372
- static readonly runtime: typeof proto3 = proto3;
2373
- static readonly typeName = "scalekit.v1.roles.DeleteOrganizationRoleBaseRequest";
2374
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
2375
- { no: 1, name: "org_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
2376
- { no: 2, name: "role_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
2377
- ]);
1245
+ /**
1246
+ * @generated from enum scalekit.v1.roles.PermissionType
1247
+ */
1248
+ export enum PermissionType {
1249
+ /**
1250
+ * @generated from enum value: ALL = 0;
1251
+ */
1252
+ ALL = 0,
2378
1253
 
2379
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DeleteOrganizationRoleBaseRequest {
2380
- return new DeleteOrganizationRoleBaseRequest().fromBinary(bytes, options);
2381
- }
1254
+ /**
1255
+ * @generated from enum value: SCALEKIT = 1;
1256
+ */
1257
+ SCALEKIT = 1,
2382
1258
 
2383
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DeleteOrganizationRoleBaseRequest {
2384
- return new DeleteOrganizationRoleBaseRequest().fromJson(jsonValue, options);
2385
- }
1259
+ /**
1260
+ * @generated from enum value: ENVIRONMENT = 2;
1261
+ */
1262
+ ENVIRONMENT = 2,
1263
+ }
2386
1264
 
2387
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DeleteOrganizationRoleBaseRequest {
2388
- return new DeleteOrganizationRoleBaseRequest().fromJsonString(jsonString, options);
2389
- }
1265
+ /**
1266
+ * Describes the enum scalekit.v1.roles.PermissionType.
1267
+ */
1268
+ export const PermissionTypeSchema: GenEnum<PermissionType> = /*@__PURE__*/
1269
+ enumDesc(file_scalekit_v1_roles_roles, 0);
2390
1270
 
2391
- static equals(a: DeleteOrganizationRoleBaseRequest | PlainMessage<DeleteOrganizationRoleBaseRequest> | undefined, b: DeleteOrganizationRoleBaseRequest | PlainMessage<DeleteOrganizationRoleBaseRequest> | undefined): boolean {
2392
- return proto3.util.equals(DeleteOrganizationRoleBaseRequest, a, b);
2393
- }
2394
- }
1271
+ /**
1272
+ * @generated from service scalekit.v1.roles.RolesService
1273
+ */
1274
+ export const RolesService: GenService<{
1275
+ /**
1276
+ * @generated from rpc scalekit.v1.roles.RolesService.CreateRole
1277
+ */
1278
+ createRole: {
1279
+ methodKind: "unary";
1280
+ input: typeof CreateRoleRequestSchema;
1281
+ output: typeof CreateRoleResponseSchema;
1282
+ },
1283
+ /**
1284
+ * @generated from rpc scalekit.v1.roles.RolesService.UpdateRole
1285
+ */
1286
+ updateRole: {
1287
+ methodKind: "unary";
1288
+ input: typeof UpdateRoleRequestSchema;
1289
+ output: typeof UpdateRoleResponseSchema;
1290
+ },
1291
+ /**
1292
+ * @generated from rpc scalekit.v1.roles.RolesService.GetRole
1293
+ */
1294
+ getRole: {
1295
+ methodKind: "unary";
1296
+ input: typeof GetRoleRequestSchema;
1297
+ output: typeof GetRoleResponseSchema;
1298
+ },
1299
+ /**
1300
+ * @generated from rpc scalekit.v1.roles.RolesService.ListRoles
1301
+ */
1302
+ listRoles: {
1303
+ methodKind: "unary";
1304
+ input: typeof ListRolesRequestSchema;
1305
+ output: typeof ListRolesResponseSchema;
1306
+ },
1307
+ /**
1308
+ * @generated from rpc scalekit.v1.roles.RolesService.DeleteRole
1309
+ */
1310
+ deleteRole: {
1311
+ methodKind: "unary";
1312
+ input: typeof DeleteRoleRequestSchema;
1313
+ output: typeof EmptySchema;
1314
+ },
1315
+ /**
1316
+ * @generated from rpc scalekit.v1.roles.RolesService.CreateOrganizationRole
1317
+ */
1318
+ createOrganizationRole: {
1319
+ methodKind: "unary";
1320
+ input: typeof CreateOrganizationRoleRequestSchema;
1321
+ output: typeof CreateOrganizationRoleResponseSchema;
1322
+ },
1323
+ /**
1324
+ * @generated from rpc scalekit.v1.roles.RolesService.UpdateOrganizationRole
1325
+ */
1326
+ updateOrganizationRole: {
1327
+ methodKind: "unary";
1328
+ input: typeof UpdateOrganizationRoleRequestSchema;
1329
+ output: typeof UpdateOrganizationRoleResponseSchema;
1330
+ },
1331
+ /**
1332
+ * @generated from rpc scalekit.v1.roles.RolesService.GetOrganizationRole
1333
+ */
1334
+ getOrganizationRole: {
1335
+ methodKind: "unary";
1336
+ input: typeof GetOrganizationRoleRequestSchema;
1337
+ output: typeof GetOrganizationRoleResponseSchema;
1338
+ },
1339
+ /**
1340
+ * @generated from rpc scalekit.v1.roles.RolesService.ListOrganizationRoles
1341
+ */
1342
+ listOrganizationRoles: {
1343
+ methodKind: "unary";
1344
+ input: typeof ListOrganizationRolesRequestSchema;
1345
+ output: typeof ListOrganizationRolesResponseSchema;
1346
+ },
1347
+ /**
1348
+ * @generated from rpc scalekit.v1.roles.RolesService.DeleteOrganizationRole
1349
+ */
1350
+ deleteOrganizationRole: {
1351
+ methodKind: "unary";
1352
+ input: typeof DeleteOrganizationRoleRequestSchema;
1353
+ output: typeof EmptySchema;
1354
+ },
1355
+ /**
1356
+ * @generated from rpc scalekit.v1.roles.RolesService.GetRoleUsersCount
1357
+ */
1358
+ getRoleUsersCount: {
1359
+ methodKind: "unary";
1360
+ input: typeof GetRoleUsersCountRequestSchema;
1361
+ output: typeof GetRoleUsersCountResponseSchema;
1362
+ },
1363
+ /**
1364
+ * @generated from rpc scalekit.v1.roles.RolesService.GetOrganizationRoleUsersCount
1365
+ */
1366
+ getOrganizationRoleUsersCount: {
1367
+ methodKind: "unary";
1368
+ input: typeof GetOrganizationRoleUsersCountRequestSchema;
1369
+ output: typeof GetOrganizationRoleUsersCountResponseSchema;
1370
+ },
1371
+ /**
1372
+ * @generated from rpc scalekit.v1.roles.RolesService.UpdateDefaultRoles
1373
+ */
1374
+ updateDefaultRoles: {
1375
+ methodKind: "unary";
1376
+ input: typeof UpdateDefaultRolesRequestSchema;
1377
+ output: typeof UpdateDefaultRolesResponseSchema;
1378
+ },
1379
+ /**
1380
+ * @generated from rpc scalekit.v1.roles.RolesService.UpdateDefaultOrganizationRoles
1381
+ */
1382
+ updateDefaultOrganizationRoles: {
1383
+ methodKind: "unary";
1384
+ input: typeof UpdateDefaultOrganizationRolesRequestSchema;
1385
+ output: typeof UpdateDefaultOrganizationRolesResponseSchema;
1386
+ },
1387
+ /**
1388
+ * Role Hierarchy Management RPCs
1389
+ *
1390
+ * @generated from rpc scalekit.v1.roles.RolesService.ListDependentRoles
1391
+ */
1392
+ listDependentRoles: {
1393
+ methodKind: "unary";
1394
+ input: typeof ListDependentRolesRequestSchema;
1395
+ output: typeof ListDependentRolesResponseSchema;
1396
+ },
1397
+ /**
1398
+ * @generated from rpc scalekit.v1.roles.RolesService.DeleteRoleBase
1399
+ */
1400
+ deleteRoleBase: {
1401
+ methodKind: "unary";
1402
+ input: typeof DeleteRoleBaseRequestSchema;
1403
+ output: typeof EmptySchema;
1404
+ },
1405
+ /**
1406
+ * @generated from rpc scalekit.v1.roles.RolesService.DeleteOrganizationRoleBase
1407
+ */
1408
+ deleteOrganizationRoleBase: {
1409
+ methodKind: "unary";
1410
+ input: typeof DeleteOrganizationRoleBaseRequestSchema;
1411
+ output: typeof EmptySchema;
1412
+ },
1413
+ /**
1414
+ * Permission Management RPCs
1415
+ *
1416
+ * @generated from rpc scalekit.v1.roles.RolesService.CreatePermission
1417
+ */
1418
+ createPermission: {
1419
+ methodKind: "unary";
1420
+ input: typeof CreatePermissionRequestSchema;
1421
+ output: typeof CreatePermissionResponseSchema;
1422
+ },
1423
+ /**
1424
+ * @generated from rpc scalekit.v1.roles.RolesService.GetPermission
1425
+ */
1426
+ getPermission: {
1427
+ methodKind: "unary";
1428
+ input: typeof GetPermissionRequestSchema;
1429
+ output: typeof GetPermissionResponseSchema;
1430
+ },
1431
+ /**
1432
+ * @generated from rpc scalekit.v1.roles.RolesService.UpdatePermission
1433
+ */
1434
+ updatePermission: {
1435
+ methodKind: "unary";
1436
+ input: typeof UpdatePermissionRequestSchema;
1437
+ output: typeof UpdatePermissionResponseSchema;
1438
+ },
1439
+ /**
1440
+ * @generated from rpc scalekit.v1.roles.RolesService.ListPermissions
1441
+ */
1442
+ listPermissions: {
1443
+ methodKind: "unary";
1444
+ input: typeof ListPermissionsRequestSchema;
1445
+ output: typeof ListPermissionsResponseSchema;
1446
+ },
1447
+ /**
1448
+ * @generated from rpc scalekit.v1.roles.RolesService.DeletePermission
1449
+ */
1450
+ deletePermission: {
1451
+ methodKind: "unary";
1452
+ input: typeof DeletePermissionRequestSchema;
1453
+ output: typeof EmptySchema;
1454
+ },
1455
+ /**
1456
+ * Role-Permission Management RPCs
1457
+ *
1458
+ * @generated from rpc scalekit.v1.roles.RolesService.ListRolePermissions
1459
+ */
1460
+ listRolePermissions: {
1461
+ methodKind: "unary";
1462
+ input: typeof ListRolePermissionsRequestSchema;
1463
+ output: typeof ListRolePermissionsResponseSchema;
1464
+ },
1465
+ /**
1466
+ * @generated from rpc scalekit.v1.roles.RolesService.AddPermissionsToRole
1467
+ */
1468
+ addPermissionsToRole: {
1469
+ methodKind: "unary";
1470
+ input: typeof AddPermissionsToRoleRequestSchema;
1471
+ output: typeof AddPermissionsToRoleResponseSchema;
1472
+ },
1473
+ /**
1474
+ * @generated from rpc scalekit.v1.roles.RolesService.RemovePermissionFromRole
1475
+ */
1476
+ removePermissionFromRole: {
1477
+ methodKind: "unary";
1478
+ input: typeof RemovePermissionFromRoleRequestSchema;
1479
+ output: typeof EmptySchema;
1480
+ },
1481
+ /**
1482
+ * @generated from rpc scalekit.v1.roles.RolesService.ListEffectiveRolePermissions
1483
+ */
1484
+ listEffectiveRolePermissions: {
1485
+ methodKind: "unary";
1486
+ input: typeof ListEffectiveRolePermissionsRequestSchema;
1487
+ output: typeof ListEffectiveRolePermissionsResponseSchema;
1488
+ },
1489
+ }> = /*@__PURE__*/
1490
+ serviceDesc(file_scalekit_v1_roles_roles, 0);
2395
1491