@regulaforensics/facesdk-webclient 3.1.0 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (217) hide show
  1. package/.github/workflows/run-smoke-test.yml +8 -2
  2. package/dist/cjs-es5/api/group-api.js +695 -0
  3. package/dist/cjs-es5/api/matching-api.js +101 -127
  4. package/dist/cjs-es5/api/person-api.js +952 -0
  5. package/dist/cjs-es5/api/search-api.js +200 -0
  6. package/dist/cjs-es5/api.js +5 -2
  7. package/dist/cjs-es5/base.js +2 -2
  8. package/dist/cjs-es5/common.js +235 -0
  9. package/dist/cjs-es5/configuration.js +17 -2
  10. package/dist/cjs-es5/ext/face-sdk.js +7 -1
  11. package/dist/cjs-es5/ext/group-api.js +47 -0
  12. package/dist/cjs-es5/ext/index.js +1 -2
  13. package/dist/cjs-es5/ext/matching-api.js +7 -11
  14. package/dist/cjs-es5/ext/person-api.js +61 -0
  15. package/dist/cjs-es5/ext/search-api.js +33 -0
  16. package/dist/cjs-es5/index.js +1 -2
  17. package/dist/cjs-es5/models/crop.js +16 -0
  18. package/dist/cjs-es5/models/detect-request.js +1 -1
  19. package/dist/cjs-es5/models/detect-response-all-of.js +1 -1
  20. package/dist/cjs-es5/models/detect-response.js +1 -1
  21. package/dist/cjs-es5/models/detect-result.js +1 -1
  22. package/dist/cjs-es5/models/detection-face.js +1 -1
  23. package/dist/cjs-es5/models/detection-quality.js +16 -0
  24. package/dist/cjs-es5/models/detection.js +1 -1
  25. package/dist/cjs-es5/models/face-align-type-quality.js +29 -0
  26. package/dist/cjs-es5/models/face-image-quality-groups.js +31 -0
  27. package/dist/cjs-es5/models/face-quality-config-name.js +66 -0
  28. package/dist/cjs-es5/models/face-quality-scenarios.js +31 -0
  29. package/dist/cjs-es5/models/face-quality-status.js +27 -0
  30. package/dist/cjs-es5/models/face-recognition-result-code.js +1 -6
  31. package/dist/cjs-es5/models/face-sdkresult-code.js +35 -36
  32. package/dist/cjs-es5/models/face-sdkresult.js +1 -1
  33. package/dist/cjs-es5/models/group-all-of.js +16 -0
  34. package/dist/cjs-es5/models/group-page-all-of.js +16 -0
  35. package/dist/cjs-es5/models/group-page.js +16 -0
  36. package/dist/cjs-es5/models/group-to-create.js +16 -0
  37. package/dist/cjs-es5/models/group.js +16 -0
  38. package/dist/cjs-es5/models/image-fields-image.js +16 -0
  39. package/dist/cjs-es5/models/image-fields.js +16 -0
  40. package/dist/cjs-es5/models/image-page-all-of.js +16 -0
  41. package/dist/cjs-es5/models/image-page.js +16 -0
  42. package/dist/cjs-es5/models/image-source.js +10 -11
  43. package/dist/cjs-es5/models/image.js +16 -0
  44. package/dist/cjs-es5/models/index.js +55 -16
  45. package/dist/cjs-es5/models/match-image-detection.js +1 -1
  46. package/dist/cjs-es5/models/match-image-result.js +1 -1
  47. package/dist/cjs-es5/models/match-image.js +1 -1
  48. package/dist/cjs-es5/models/match-request.js +1 -1
  49. package/dist/cjs-es5/models/match-response-all-of.js +1 -1
  50. package/dist/cjs-es5/models/match-response.js +1 -1
  51. package/dist/cjs-es5/models/operation-log.js +16 -0
  52. package/dist/cjs-es5/models/output-image-params.js +16 -0
  53. package/dist/cjs-es5/models/page.js +16 -0
  54. package/dist/cjs-es5/models/person-all-of.js +16 -0
  55. package/dist/cjs-es5/models/person-fields.js +16 -0
  56. package/dist/cjs-es5/models/person.js +16 -0
  57. package/dist/cjs-es5/models/persons-page-all-of.js +16 -0
  58. package/dist/cjs-es5/models/persons-page.js +16 -0
  59. package/dist/cjs-es5/models/process-param.js +16 -0
  60. package/dist/cjs-es5/models/quality-config.js +16 -0
  61. package/dist/cjs-es5/models/quality-detail.js +16 -0
  62. package/dist/cjs-es5/models/quality-details-groups.js +16 -0
  63. package/dist/cjs-es5/models/quality-request.js +16 -0
  64. package/dist/cjs-es5/models/recognize-image-all-of.js +16 -0
  65. package/dist/cjs-es5/models/recognize-image.js +16 -0
  66. package/dist/cjs-es5/models/search-person-all-of.js +16 -0
  67. package/dist/cjs-es5/models/search-person.js +16 -0
  68. package/dist/cjs-es5/models/search-request-all-of.js +16 -0
  69. package/dist/cjs-es5/models/search-request.js +16 -0
  70. package/dist/cjs-es5/models/search-result-all-of.js +16 -0
  71. package/dist/cjs-es5/models/search-result.js +16 -0
  72. package/dist/cjs-es5/models/update-group.js +16 -0
  73. package/dist/esm-es5/api/group-api.js +692 -0
  74. package/dist/esm-es5/api/matching-api.js +100 -126
  75. package/dist/esm-es5/api/person-api.js +949 -0
  76. package/dist/esm-es5/api/search-api.js +197 -0
  77. package/dist/esm-es5/api.js +5 -2
  78. package/dist/esm-es5/base.js +2 -2
  79. package/dist/esm-es5/common.js +232 -0
  80. package/dist/esm-es5/configuration.js +17 -2
  81. package/dist/esm-es5/ext/face-sdk.js +7 -1
  82. package/dist/esm-es5/ext/group-api.js +44 -0
  83. package/dist/esm-es5/ext/index.js +1 -2
  84. package/dist/esm-es5/ext/matching-api.js +5 -9
  85. package/dist/esm-es5/ext/person-api.js +58 -0
  86. package/dist/esm-es5/ext/search-api.js +30 -0
  87. package/dist/esm-es5/index.js +1 -2
  88. package/dist/esm-es5/models/crop.js +14 -0
  89. package/dist/esm-es5/models/detect-request.js +1 -1
  90. package/dist/esm-es5/models/detect-response-all-of.js +1 -1
  91. package/dist/esm-es5/models/detect-response.js +1 -1
  92. package/dist/esm-es5/models/detect-result.js +1 -1
  93. package/dist/esm-es5/models/detection-face.js +1 -1
  94. package/dist/esm-es5/models/detection-quality.js +14 -0
  95. package/dist/esm-es5/models/detection.js +1 -1
  96. package/dist/esm-es5/models/face-align-type-quality.js +26 -0
  97. package/dist/esm-es5/models/face-image-quality-groups.js +28 -0
  98. package/dist/esm-es5/models/face-quality-config-name.js +63 -0
  99. package/dist/esm-es5/models/face-quality-scenarios.js +28 -0
  100. package/dist/esm-es5/models/face-quality-status.js +24 -0
  101. package/dist/esm-es5/models/face-recognition-result-code.js +1 -3
  102. package/dist/esm-es5/models/face-sdkresult-code.js +35 -36
  103. package/dist/esm-es5/models/face-sdkresult.js +1 -1
  104. package/dist/esm-es5/models/group-all-of.js +14 -0
  105. package/dist/esm-es5/models/group-page-all-of.js +14 -0
  106. package/dist/esm-es5/models/group-page.js +14 -0
  107. package/dist/esm-es5/models/group-to-create.js +14 -0
  108. package/dist/esm-es5/models/group.js +14 -0
  109. package/dist/esm-es5/models/image-fields-image.js +14 -0
  110. package/dist/esm-es5/models/image-fields.js +14 -0
  111. package/dist/esm-es5/models/image-page-all-of.js +14 -0
  112. package/dist/esm-es5/models/image-page.js +14 -0
  113. package/dist/esm-es5/models/image-source.js +10 -11
  114. package/dist/esm-es5/models/image.js +14 -0
  115. package/dist/esm-es5/models/index.js +55 -16
  116. package/dist/esm-es5/models/match-image-detection.js +1 -1
  117. package/dist/esm-es5/models/match-image-result.js +1 -1
  118. package/dist/esm-es5/models/match-image.js +1 -1
  119. package/dist/esm-es5/models/match-request.js +1 -1
  120. package/dist/esm-es5/models/match-response-all-of.js +1 -1
  121. package/dist/esm-es5/models/match-response.js +1 -1
  122. package/dist/esm-es5/models/operation-log.js +14 -0
  123. package/dist/esm-es5/models/output-image-params.js +14 -0
  124. package/dist/esm-es5/models/page.js +14 -0
  125. package/dist/esm-es5/models/person-all-of.js +14 -0
  126. package/dist/esm-es5/models/person-fields.js +14 -0
  127. package/dist/esm-es5/models/person.js +14 -0
  128. package/dist/esm-es5/models/persons-page-all-of.js +14 -0
  129. package/dist/esm-es5/models/persons-page.js +14 -0
  130. package/dist/esm-es5/models/process-param.js +14 -0
  131. package/dist/esm-es5/models/quality-config.js +14 -0
  132. package/dist/esm-es5/models/quality-detail.js +14 -0
  133. package/dist/esm-es5/models/quality-details-groups.js +14 -0
  134. package/dist/esm-es5/models/quality-request.js +14 -0
  135. package/dist/esm-es5/models/recognize-image-all-of.js +14 -0
  136. package/dist/esm-es5/models/recognize-image.js +14 -0
  137. package/dist/esm-es5/models/search-person-all-of.js +14 -0
  138. package/dist/esm-es5/models/search-person.js +14 -0
  139. package/dist/esm-es5/models/search-request-all-of.js +14 -0
  140. package/dist/esm-es5/models/search-request.js +14 -0
  141. package/dist/esm-es5/models/search-result-all-of.js +14 -0
  142. package/dist/esm-es5/models/search-result.js +14 -0
  143. package/dist/esm-es5/models/update-group.js +14 -0
  144. package/package.json +1 -1
  145. package/setup.sh +7 -0
  146. package/src/api/group-api.ts +592 -0
  147. package/src/api/matching-api.ts +151 -171
  148. package/src/api/person-api.ts +831 -0
  149. package/src/api/search-api.ts +133 -0
  150. package/src/api.ts +4 -1
  151. package/src/base.ts +3 -3
  152. package/src/common.ts +138 -0
  153. package/src/configuration.ts +26 -1
  154. package/src/ext/face-sdk.ts +10 -0
  155. package/src/ext/group-api.ts +34 -0
  156. package/src/ext/index.ts +0 -1
  157. package/src/ext/matching-api.ts +7 -11
  158. package/src/ext/person-api.ts +51 -0
  159. package/src/ext/search-api.ts +14 -0
  160. package/src/index.ts +0 -1
  161. package/src/models/crop.ts +49 -0
  162. package/src/models/detect-request.ts +21 -9
  163. package/src/models/detect-response-all-of.ts +2 -3
  164. package/src/models/detect-response.ts +1 -2
  165. package/src/models/detect-result.ts +17 -5
  166. package/src/models/detection-face.ts +7 -8
  167. package/src/models/detection-quality.ts +57 -0
  168. package/src/models/detection.ts +21 -8
  169. package/src/models/face-align-type-quality.ts +34 -0
  170. package/src/models/face-image-quality-groups.ts +36 -0
  171. package/src/models/face-quality-config-name.ts +71 -0
  172. package/src/models/face-quality-scenarios.ts +36 -0
  173. package/src/models/face-quality-status.ts +32 -0
  174. package/src/models/face-recognition-result-code.ts +0 -4
  175. package/src/models/face-sdkresult-code.ts +37 -34
  176. package/src/models/face-sdkresult.ts +2 -3
  177. package/src/models/group-all-of.ts +36 -0
  178. package/src/models/group-page-all-of.ts +31 -0
  179. package/src/models/group-page.ts +26 -0
  180. package/src/models/group-to-create.ts +36 -0
  181. package/src/models/group.ts +25 -0
  182. package/src/models/image-fields-image.ts +37 -0
  183. package/src/models/image-fields.ts +31 -0
  184. package/src/models/image-page-all-of.ts +31 -0
  185. package/src/models/image-page.ts +26 -0
  186. package/src/models/image-source.ts +12 -9
  187. package/src/models/image.ts +54 -0
  188. package/src/models/index.ts +54 -15
  189. package/src/models/match-image-detection.ts +5 -6
  190. package/src/models/match-image-result.ts +11 -12
  191. package/src/models/match-image.ts +5 -6
  192. package/src/models/match-request.ts +9 -4
  193. package/src/models/match-response-all-of.ts +3 -4
  194. package/src/models/match-response.ts +1 -2
  195. package/src/models/operation-log.ts +42 -0
  196. package/src/models/output-image-params.ts +37 -0
  197. package/src/models/page.ts +36 -0
  198. package/src/models/person-all-of.ts +42 -0
  199. package/src/models/person-fields.ts +36 -0
  200. package/src/models/person.ts +26 -0
  201. package/src/models/persons-page-all-of.ts +31 -0
  202. package/src/models/persons-page.ts +26 -0
  203. package/src/models/process-param.ts +51 -0
  204. package/src/models/quality-config.ts +37 -0
  205. package/src/models/quality-detail.ts +57 -0
  206. package/src/models/quality-details-groups.ts +50 -0
  207. package/src/models/quality-request.ts +37 -0
  208. package/src/models/recognize-image-all-of.ts +30 -0
  209. package/src/models/recognize-image.ts +25 -0
  210. package/src/models/search-person-all-of.ts +31 -0
  211. package/src/models/search-person.ts +26 -0
  212. package/src/models/search-request-all-of.ts +42 -0
  213. package/src/models/search-request.ts +26 -0
  214. package/src/models/search-result-all-of.ts +30 -0
  215. package/src/models/search-result.ts +26 -0
  216. package/src/models/update-group.ts +36 -0
  217. package/update-models.sh +1 -1
@@ -0,0 +1,695 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * Regula FaceSDK Web API
6
+ * Regula FaceSDK Web API
7
+ *
8
+ * The version of the OpenAPI document: 3.2.0
9
+ *
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ var __extends = (this && this.__extends) || (function () {
16
+ var extendStatics = function (d, b) {
17
+ extendStatics = Object.setPrototypeOf ||
18
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
19
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
20
+ return extendStatics(d, b);
21
+ };
22
+ return function (d, b) {
23
+ extendStatics(d, b);
24
+ function __() { this.constructor = d; }
25
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
26
+ };
27
+ })();
28
+ var __assign = (this && this.__assign) || function () {
29
+ __assign = Object.assign || function(t) {
30
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
31
+ s = arguments[i];
32
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33
+ t[p] = s[p];
34
+ }
35
+ return t;
36
+ };
37
+ return __assign.apply(this, arguments);
38
+ };
39
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
40
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
41
+ return new (P || (P = Promise))(function (resolve, reject) {
42
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
43
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
44
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
45
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
46
+ });
47
+ };
48
+ var __generator = (this && this.__generator) || function (thisArg, body) {
49
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
50
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
51
+ function verb(n) { return function (v) { return step([n, v]); }; }
52
+ function step(op) {
53
+ if (f) throw new TypeError("Generator is already executing.");
54
+ while (_) try {
55
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
56
+ if (y = 0, t) op = [op[0] & 2, t.value];
57
+ switch (op[0]) {
58
+ case 0: case 1: t = op; break;
59
+ case 4: _.label++; return { value: op[1], done: false };
60
+ case 5: _.label++; y = op[1]; op = [0]; continue;
61
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
62
+ default:
63
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
64
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
65
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
66
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
67
+ if (t[2]) _.ops.pop();
68
+ _.trys.pop(); continue;
69
+ }
70
+ op = body.call(thisArg, _);
71
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
72
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
73
+ }
74
+ };
75
+ Object.defineProperty(exports, "__esModule", { value: true });
76
+ exports.GroupApi = exports.GroupApiFactory = exports.GroupApiFp = exports.GroupApiAxiosParamCreator = void 0;
77
+ var axios_1 = require("axios");
78
+ // Some imports not used depending on template conditions
79
+ // @ts-ignore
80
+ var common_1 = require("../common");
81
+ // @ts-ignore
82
+ var base_1 = require("../base");
83
+ /**
84
+ * GroupApi - axios parameter creator
85
+ * @export
86
+ */
87
+ exports.GroupApiAxiosParamCreator = function (configuration) {
88
+ var _this = this;
89
+ return {
90
+ /**
91
+ *
92
+ * @summary Create group
93
+ * @param {GroupToCreate} groupToCreate Request body for the group to create.
94
+ * @param {*} [options] Override http request option.
95
+ * @throws {RequiredError}
96
+ */
97
+ createGroup: function (groupToCreate, options) {
98
+ if (options === void 0) { options = {}; }
99
+ return __awaiter(_this, void 0, void 0, function () {
100
+ var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
101
+ return __generator(this, function (_a) {
102
+ // verify required parameter 'groupToCreate' is not null or undefined
103
+ common_1.assertParamExists('createGroup', 'groupToCreate', groupToCreate);
104
+ localVarPath = "/api/groups";
105
+ localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
106
+ if (configuration) {
107
+ baseOptions = configuration.baseOptions;
108
+ }
109
+ localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), options);
110
+ localVarHeaderParameter = {};
111
+ localVarQueryParameter = {};
112
+ localVarHeaderParameter['Content-Type'] = 'application/json';
113
+ common_1.setSearchParams(localVarUrlObj, localVarQueryParameter);
114
+ headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
115
+ localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
116
+ localVarRequestOptions.data = common_1.serializeDataIfNeeded(groupToCreate, localVarRequestOptions, configuration);
117
+ return [2 /*return*/, {
118
+ url: common_1.toPathString(localVarUrlObj),
119
+ options: localVarRequestOptions,
120
+ }];
121
+ });
122
+ });
123
+ },
124
+ /**
125
+ *
126
+ * @summary Delete group
127
+ * @param {number} groupId Group ID.
128
+ * @param {*} [options] Override http request option.
129
+ * @throws {RequiredError}
130
+ */
131
+ deleteGroup: function (groupId, options) {
132
+ if (options === void 0) { options = {}; }
133
+ return __awaiter(_this, void 0, void 0, function () {
134
+ var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
135
+ return __generator(this, function (_a) {
136
+ // verify required parameter 'groupId' is not null or undefined
137
+ common_1.assertParamExists('deleteGroup', 'groupId', groupId);
138
+ localVarPath = "/api/groups/{group_id}"
139
+ .replace("{" + "group_id" + "}", encodeURIComponent(String(groupId)));
140
+ localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
141
+ if (configuration) {
142
+ baseOptions = configuration.baseOptions;
143
+ }
144
+ localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), options);
145
+ localVarHeaderParameter = {};
146
+ localVarQueryParameter = {};
147
+ common_1.setSearchParams(localVarUrlObj, localVarQueryParameter);
148
+ headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
149
+ localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
150
+ return [2 /*return*/, {
151
+ url: common_1.toPathString(localVarUrlObj),
152
+ options: localVarRequestOptions,
153
+ }];
154
+ });
155
+ });
156
+ },
157
+ /**
158
+ *
159
+ * @summary Get groups
160
+ * @param {number} page The page number to get a list of persons or groups.
161
+ * @param {number} size The page size with a list of persons or groups, items.
162
+ * @param {*} [options] Override http request option.
163
+ * @throws {RequiredError}
164
+ */
165
+ getAllGroups: function (page, size, options) {
166
+ if (options === void 0) { options = {}; }
167
+ return __awaiter(_this, void 0, void 0, function () {
168
+ var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
169
+ return __generator(this, function (_a) {
170
+ // verify required parameter 'page' is not null or undefined
171
+ common_1.assertParamExists('getAllGroups', 'page', page);
172
+ // verify required parameter 'size' is not null or undefined
173
+ common_1.assertParamExists('getAllGroups', 'size', size);
174
+ localVarPath = "/api/groups";
175
+ localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
176
+ if (configuration) {
177
+ baseOptions = configuration.baseOptions;
178
+ }
179
+ localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), options);
180
+ localVarHeaderParameter = {};
181
+ localVarQueryParameter = {};
182
+ if (page !== undefined) {
183
+ localVarQueryParameter['page'] = page;
184
+ }
185
+ if (size !== undefined) {
186
+ localVarQueryParameter['size'] = size;
187
+ }
188
+ common_1.setSearchParams(localVarUrlObj, localVarQueryParameter);
189
+ headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
190
+ localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
191
+ return [2 /*return*/, {
192
+ url: common_1.toPathString(localVarUrlObj),
193
+ options: localVarRequestOptions,
194
+ }];
195
+ });
196
+ });
197
+ },
198
+ /**
199
+ *
200
+ * @summary Get group persons
201
+ * @param {number} page The page number to get a list of persons or groups.
202
+ * @param {number} size The page size with a list of persons or groups, items.
203
+ * @param {number} groupId Group ID.
204
+ * @param {*} [options] Override http request option.
205
+ * @throws {RequiredError}
206
+ */
207
+ getAllPersonsByGroupId: function (page, size, groupId, options) {
208
+ if (options === void 0) { options = {}; }
209
+ return __awaiter(_this, void 0, void 0, function () {
210
+ var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
211
+ return __generator(this, function (_a) {
212
+ // verify required parameter 'page' is not null or undefined
213
+ common_1.assertParamExists('getAllPersonsByGroupId', 'page', page);
214
+ // verify required parameter 'size' is not null or undefined
215
+ common_1.assertParamExists('getAllPersonsByGroupId', 'size', size);
216
+ // verify required parameter 'groupId' is not null or undefined
217
+ common_1.assertParamExists('getAllPersonsByGroupId', 'groupId', groupId);
218
+ localVarPath = "/api/groups/{group_id}/persons"
219
+ .replace("{" + "group_id" + "}", encodeURIComponent(String(groupId)));
220
+ localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
221
+ if (configuration) {
222
+ baseOptions = configuration.baseOptions;
223
+ }
224
+ localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), options);
225
+ localVarHeaderParameter = {};
226
+ localVarQueryParameter = {};
227
+ if (page !== undefined) {
228
+ localVarQueryParameter['page'] = page;
229
+ }
230
+ if (size !== undefined) {
231
+ localVarQueryParameter['size'] = size;
232
+ }
233
+ common_1.setSearchParams(localVarUrlObj, localVarQueryParameter);
234
+ headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
235
+ localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
236
+ return [2 /*return*/, {
237
+ url: common_1.toPathString(localVarUrlObj),
238
+ options: localVarRequestOptions,
239
+ }];
240
+ });
241
+ });
242
+ },
243
+ /**
244
+ *
245
+ * @summary Get group
246
+ * @param {number} groupId Group ID.
247
+ * @param {*} [options] Override http request option.
248
+ * @throws {RequiredError}
249
+ */
250
+ getGroup: function (groupId, options) {
251
+ if (options === void 0) { options = {}; }
252
+ return __awaiter(_this, void 0, void 0, function () {
253
+ var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
254
+ return __generator(this, function (_a) {
255
+ // verify required parameter 'groupId' is not null or undefined
256
+ common_1.assertParamExists('getGroup', 'groupId', groupId);
257
+ localVarPath = "/api/groups/{group_id}"
258
+ .replace("{" + "group_id" + "}", encodeURIComponent(String(groupId)));
259
+ localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
260
+ if (configuration) {
261
+ baseOptions = configuration.baseOptions;
262
+ }
263
+ localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), options);
264
+ localVarHeaderParameter = {};
265
+ localVarQueryParameter = {};
266
+ common_1.setSearchParams(localVarUrlObj, localVarQueryParameter);
267
+ headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
268
+ localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
269
+ return [2 /*return*/, {
270
+ url: common_1.toPathString(localVarUrlObj),
271
+ options: localVarRequestOptions,
272
+ }];
273
+ });
274
+ });
275
+ },
276
+ /**
277
+ *
278
+ * @summary Update group
279
+ * @param {number} groupId Group ID.
280
+ * @param {GroupToCreate} groupToCreate Request body for the group to update.
281
+ * @param {*} [options] Override http request option.
282
+ * @throws {RequiredError}
283
+ */
284
+ updateGroup: function (groupId, groupToCreate, options) {
285
+ if (options === void 0) { options = {}; }
286
+ return __awaiter(_this, void 0, void 0, function () {
287
+ var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
288
+ return __generator(this, function (_a) {
289
+ // verify required parameter 'groupId' is not null or undefined
290
+ common_1.assertParamExists('updateGroup', 'groupId', groupId);
291
+ // verify required parameter 'groupToCreate' is not null or undefined
292
+ common_1.assertParamExists('updateGroup', 'groupToCreate', groupToCreate);
293
+ localVarPath = "/api/groups/{group_id}"
294
+ .replace("{" + "group_id" + "}", encodeURIComponent(String(groupId)));
295
+ localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
296
+ if (configuration) {
297
+ baseOptions = configuration.baseOptions;
298
+ }
299
+ localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), options);
300
+ localVarHeaderParameter = {};
301
+ localVarQueryParameter = {};
302
+ localVarHeaderParameter['Content-Type'] = 'application/json';
303
+ common_1.setSearchParams(localVarUrlObj, localVarQueryParameter);
304
+ headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
305
+ localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
306
+ localVarRequestOptions.data = common_1.serializeDataIfNeeded(groupToCreate, localVarRequestOptions, configuration);
307
+ return [2 /*return*/, {
308
+ url: common_1.toPathString(localVarUrlObj),
309
+ options: localVarRequestOptions,
310
+ }];
311
+ });
312
+ });
313
+ },
314
+ /**
315
+ *
316
+ * @summary Add/remove persons to group
317
+ * @param {number} groupId Group ID.
318
+ * @param {UpdateGroup} updateGroup Request body for person IDs to add or remove.
319
+ * @param {*} [options] Override http request option.
320
+ * @throws {RequiredError}
321
+ */
322
+ updatePersonsInGroup: function (groupId, updateGroup, options) {
323
+ if (options === void 0) { options = {}; }
324
+ return __awaiter(_this, void 0, void 0, function () {
325
+ var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
326
+ return __generator(this, function (_a) {
327
+ // verify required parameter 'groupId' is not null or undefined
328
+ common_1.assertParamExists('updatePersonsInGroup', 'groupId', groupId);
329
+ // verify required parameter 'updateGroup' is not null or undefined
330
+ common_1.assertParamExists('updatePersonsInGroup', 'updateGroup', updateGroup);
331
+ localVarPath = "/api/groups/{group_id}/persons"
332
+ .replace("{" + "group_id" + "}", encodeURIComponent(String(groupId)));
333
+ localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
334
+ if (configuration) {
335
+ baseOptions = configuration.baseOptions;
336
+ }
337
+ localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), options);
338
+ localVarHeaderParameter = {};
339
+ localVarQueryParameter = {};
340
+ localVarHeaderParameter['Content-Type'] = 'application/json';
341
+ common_1.setSearchParams(localVarUrlObj, localVarQueryParameter);
342
+ headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
343
+ localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
344
+ localVarRequestOptions.data = common_1.serializeDataIfNeeded(updateGroup, localVarRequestOptions, configuration);
345
+ return [2 /*return*/, {
346
+ url: common_1.toPathString(localVarUrlObj),
347
+ options: localVarRequestOptions,
348
+ }];
349
+ });
350
+ });
351
+ },
352
+ };
353
+ };
354
+ /**
355
+ * GroupApi - functional programming interface
356
+ * @export
357
+ */
358
+ exports.GroupApiFp = function (configuration) {
359
+ var localVarAxiosParamCreator = exports.GroupApiAxiosParamCreator(configuration);
360
+ return {
361
+ /**
362
+ *
363
+ * @summary Create group
364
+ * @param {GroupToCreate} groupToCreate Request body for the group to create.
365
+ * @param {*} [options] Override http request option.
366
+ * @throws {RequiredError}
367
+ */
368
+ createGroup: function (groupToCreate, options) {
369
+ return __awaiter(this, void 0, void 0, function () {
370
+ var localVarAxiosArgs;
371
+ return __generator(this, function (_a) {
372
+ switch (_a.label) {
373
+ case 0: return [4 /*yield*/, localVarAxiosParamCreator.createGroup(groupToCreate, options)];
374
+ case 1:
375
+ localVarAxiosArgs = _a.sent();
376
+ return [2 /*return*/, common_1.createRequestFunction(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];
377
+ }
378
+ });
379
+ });
380
+ },
381
+ /**
382
+ *
383
+ * @summary Delete group
384
+ * @param {number} groupId Group ID.
385
+ * @param {*} [options] Override http request option.
386
+ * @throws {RequiredError}
387
+ */
388
+ deleteGroup: function (groupId, options) {
389
+ return __awaiter(this, void 0, void 0, function () {
390
+ var localVarAxiosArgs;
391
+ return __generator(this, function (_a) {
392
+ switch (_a.label) {
393
+ case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteGroup(groupId, options)];
394
+ case 1:
395
+ localVarAxiosArgs = _a.sent();
396
+ return [2 /*return*/, common_1.createRequestFunction(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];
397
+ }
398
+ });
399
+ });
400
+ },
401
+ /**
402
+ *
403
+ * @summary Get groups
404
+ * @param {number} page The page number to get a list of persons or groups.
405
+ * @param {number} size The page size with a list of persons or groups, items.
406
+ * @param {*} [options] Override http request option.
407
+ * @throws {RequiredError}
408
+ */
409
+ getAllGroups: function (page, size, options) {
410
+ return __awaiter(this, void 0, void 0, function () {
411
+ var localVarAxiosArgs;
412
+ return __generator(this, function (_a) {
413
+ switch (_a.label) {
414
+ case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAllGroups(page, size, options)];
415
+ case 1:
416
+ localVarAxiosArgs = _a.sent();
417
+ return [2 /*return*/, common_1.createRequestFunction(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];
418
+ }
419
+ });
420
+ });
421
+ },
422
+ /**
423
+ *
424
+ * @summary Get group persons
425
+ * @param {number} page The page number to get a list of persons or groups.
426
+ * @param {number} size The page size with a list of persons or groups, items.
427
+ * @param {number} groupId Group ID.
428
+ * @param {*} [options] Override http request option.
429
+ * @throws {RequiredError}
430
+ */
431
+ getAllPersonsByGroupId: function (page, size, groupId, options) {
432
+ return __awaiter(this, void 0, void 0, function () {
433
+ var localVarAxiosArgs;
434
+ return __generator(this, function (_a) {
435
+ switch (_a.label) {
436
+ case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAllPersonsByGroupId(page, size, groupId, options)];
437
+ case 1:
438
+ localVarAxiosArgs = _a.sent();
439
+ return [2 /*return*/, common_1.createRequestFunction(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];
440
+ }
441
+ });
442
+ });
443
+ },
444
+ /**
445
+ *
446
+ * @summary Get group
447
+ * @param {number} groupId Group ID.
448
+ * @param {*} [options] Override http request option.
449
+ * @throws {RequiredError}
450
+ */
451
+ getGroup: function (groupId, options) {
452
+ return __awaiter(this, void 0, void 0, function () {
453
+ var localVarAxiosArgs;
454
+ return __generator(this, function (_a) {
455
+ switch (_a.label) {
456
+ case 0: return [4 /*yield*/, localVarAxiosParamCreator.getGroup(groupId, options)];
457
+ case 1:
458
+ localVarAxiosArgs = _a.sent();
459
+ return [2 /*return*/, common_1.createRequestFunction(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];
460
+ }
461
+ });
462
+ });
463
+ },
464
+ /**
465
+ *
466
+ * @summary Update group
467
+ * @param {number} groupId Group ID.
468
+ * @param {GroupToCreate} groupToCreate Request body for the group to update.
469
+ * @param {*} [options] Override http request option.
470
+ * @throws {RequiredError}
471
+ */
472
+ updateGroup: function (groupId, groupToCreate, options) {
473
+ return __awaiter(this, void 0, void 0, function () {
474
+ var localVarAxiosArgs;
475
+ return __generator(this, function (_a) {
476
+ switch (_a.label) {
477
+ case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateGroup(groupId, groupToCreate, options)];
478
+ case 1:
479
+ localVarAxiosArgs = _a.sent();
480
+ return [2 /*return*/, common_1.createRequestFunction(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];
481
+ }
482
+ });
483
+ });
484
+ },
485
+ /**
486
+ *
487
+ * @summary Add/remove persons to group
488
+ * @param {number} groupId Group ID.
489
+ * @param {UpdateGroup} updateGroup Request body for person IDs to add or remove.
490
+ * @param {*} [options] Override http request option.
491
+ * @throws {RequiredError}
492
+ */
493
+ updatePersonsInGroup: function (groupId, updateGroup, options) {
494
+ return __awaiter(this, void 0, void 0, function () {
495
+ var localVarAxiosArgs;
496
+ return __generator(this, function (_a) {
497
+ switch (_a.label) {
498
+ case 0: return [4 /*yield*/, localVarAxiosParamCreator.updatePersonsInGroup(groupId, updateGroup, options)];
499
+ case 1:
500
+ localVarAxiosArgs = _a.sent();
501
+ return [2 /*return*/, common_1.createRequestFunction(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];
502
+ }
503
+ });
504
+ });
505
+ },
506
+ };
507
+ };
508
+ /**
509
+ * GroupApi - factory interface
510
+ * @export
511
+ */
512
+ exports.GroupApiFactory = function (configuration, basePath, axios) {
513
+ var localVarFp = exports.GroupApiFp(configuration);
514
+ return {
515
+ /**
516
+ *
517
+ * @summary Create group
518
+ * @param {GroupToCreate} groupToCreate Request body for the group to create.
519
+ * @param {*} [options] Override http request option.
520
+ * @throws {RequiredError}
521
+ */
522
+ createGroup: function (groupToCreate, options) {
523
+ return localVarFp.createGroup(groupToCreate, options).then(function (request) { return request(axios, basePath); });
524
+ },
525
+ /**
526
+ *
527
+ * @summary Delete group
528
+ * @param {number} groupId Group ID.
529
+ * @param {*} [options] Override http request option.
530
+ * @throws {RequiredError}
531
+ */
532
+ deleteGroup: function (groupId, options) {
533
+ return localVarFp.deleteGroup(groupId, options).then(function (request) { return request(axios, basePath); });
534
+ },
535
+ /**
536
+ *
537
+ * @summary Get groups
538
+ * @param {number} page The page number to get a list of persons or groups.
539
+ * @param {number} size The page size with a list of persons or groups, items.
540
+ * @param {*} [options] Override http request option.
541
+ * @throws {RequiredError}
542
+ */
543
+ getAllGroups: function (page, size, options) {
544
+ return localVarFp.getAllGroups(page, size, options).then(function (request) { return request(axios, basePath); });
545
+ },
546
+ /**
547
+ *
548
+ * @summary Get group persons
549
+ * @param {number} page The page number to get a list of persons or groups.
550
+ * @param {number} size The page size with a list of persons or groups, items.
551
+ * @param {number} groupId Group ID.
552
+ * @param {*} [options] Override http request option.
553
+ * @throws {RequiredError}
554
+ */
555
+ getAllPersonsByGroupId: function (page, size, groupId, options) {
556
+ return localVarFp.getAllPersonsByGroupId(page, size, groupId, options).then(function (request) { return request(axios, basePath); });
557
+ },
558
+ /**
559
+ *
560
+ * @summary Get group
561
+ * @param {number} groupId Group ID.
562
+ * @param {*} [options] Override http request option.
563
+ * @throws {RequiredError}
564
+ */
565
+ getGroup: function (groupId, options) {
566
+ return localVarFp.getGroup(groupId, options).then(function (request) { return request(axios, basePath); });
567
+ },
568
+ /**
569
+ *
570
+ * @summary Update group
571
+ * @param {number} groupId Group ID.
572
+ * @param {GroupToCreate} groupToCreate Request body for the group to update.
573
+ * @param {*} [options] Override http request option.
574
+ * @throws {RequiredError}
575
+ */
576
+ updateGroup: function (groupId, groupToCreate, options) {
577
+ return localVarFp.updateGroup(groupId, groupToCreate, options).then(function (request) { return request(axios, basePath); });
578
+ },
579
+ /**
580
+ *
581
+ * @summary Add/remove persons to group
582
+ * @param {number} groupId Group ID.
583
+ * @param {UpdateGroup} updateGroup Request body for person IDs to add or remove.
584
+ * @param {*} [options] Override http request option.
585
+ * @throws {RequiredError}
586
+ */
587
+ updatePersonsInGroup: function (groupId, updateGroup, options) {
588
+ return localVarFp.updatePersonsInGroup(groupId, updateGroup, options).then(function (request) { return request(axios, basePath); });
589
+ },
590
+ };
591
+ };
592
+ /**
593
+ * GroupApi - object-oriented interface
594
+ * @export
595
+ * @class GroupApi
596
+ * @extends {BaseAPI}
597
+ */
598
+ var GroupApi = /** @class */ (function (_super) {
599
+ __extends(GroupApi, _super);
600
+ function GroupApi() {
601
+ return _super !== null && _super.apply(this, arguments) || this;
602
+ }
603
+ /**
604
+ *
605
+ * @summary Create group
606
+ * @param {GroupToCreate} groupToCreate Request body for the group to create.
607
+ * @param {*} [options] Override http request option.
608
+ * @throws {RequiredError}
609
+ * @memberof GroupApi
610
+ */
611
+ GroupApi.prototype.createGroup = function (groupToCreate, options) {
612
+ var _this = this;
613
+ return exports.GroupApiFp(this.configuration).createGroup(groupToCreate, options).then(function (request) { return request(_this.axios, _this.basePath); });
614
+ };
615
+ /**
616
+ *
617
+ * @summary Delete group
618
+ * @param {number} groupId Group ID.
619
+ * @param {*} [options] Override http request option.
620
+ * @throws {RequiredError}
621
+ * @memberof GroupApi
622
+ */
623
+ GroupApi.prototype.deleteGroup = function (groupId, options) {
624
+ var _this = this;
625
+ return exports.GroupApiFp(this.configuration).deleteGroup(groupId, options).then(function (request) { return request(_this.axios, _this.basePath); });
626
+ };
627
+ /**
628
+ *
629
+ * @summary Get groups
630
+ * @param {number} page The page number to get a list of persons or groups.
631
+ * @param {number} size The page size with a list of persons or groups, items.
632
+ * @param {*} [options] Override http request option.
633
+ * @throws {RequiredError}
634
+ * @memberof GroupApi
635
+ */
636
+ GroupApi.prototype.getAllGroups = function (page, size, options) {
637
+ var _this = this;
638
+ return exports.GroupApiFp(this.configuration).getAllGroups(page, size, options).then(function (request) { return request(_this.axios, _this.basePath); });
639
+ };
640
+ /**
641
+ *
642
+ * @summary Get group persons
643
+ * @param {number} page The page number to get a list of persons or groups.
644
+ * @param {number} size The page size with a list of persons or groups, items.
645
+ * @param {number} groupId Group ID.
646
+ * @param {*} [options] Override http request option.
647
+ * @throws {RequiredError}
648
+ * @memberof GroupApi
649
+ */
650
+ GroupApi.prototype.getAllPersonsByGroupId = function (page, size, groupId, options) {
651
+ var _this = this;
652
+ return exports.GroupApiFp(this.configuration).getAllPersonsByGroupId(page, size, groupId, options).then(function (request) { return request(_this.axios, _this.basePath); });
653
+ };
654
+ /**
655
+ *
656
+ * @summary Get group
657
+ * @param {number} groupId Group ID.
658
+ * @param {*} [options] Override http request option.
659
+ * @throws {RequiredError}
660
+ * @memberof GroupApi
661
+ */
662
+ GroupApi.prototype.getGroup = function (groupId, options) {
663
+ var _this = this;
664
+ return exports.GroupApiFp(this.configuration).getGroup(groupId, options).then(function (request) { return request(_this.axios, _this.basePath); });
665
+ };
666
+ /**
667
+ *
668
+ * @summary Update group
669
+ * @param {number} groupId Group ID.
670
+ * @param {GroupToCreate} groupToCreate Request body for the group to update.
671
+ * @param {*} [options] Override http request option.
672
+ * @throws {RequiredError}
673
+ * @memberof GroupApi
674
+ */
675
+ GroupApi.prototype.updateGroup = function (groupId, groupToCreate, options) {
676
+ var _this = this;
677
+ return exports.GroupApiFp(this.configuration).updateGroup(groupId, groupToCreate, options).then(function (request) { return request(_this.axios, _this.basePath); });
678
+ };
679
+ /**
680
+ *
681
+ * @summary Add/remove persons to group
682
+ * @param {number} groupId Group ID.
683
+ * @param {UpdateGroup} updateGroup Request body for person IDs to add or remove.
684
+ * @param {*} [options] Override http request option.
685
+ * @throws {RequiredError}
686
+ * @memberof GroupApi
687
+ */
688
+ GroupApi.prototype.updatePersonsInGroup = function (groupId, updateGroup, options) {
689
+ var _this = this;
690
+ return exports.GroupApiFp(this.configuration).updatePersonsInGroup(groupId, updateGroup, options).then(function (request) { return request(_this.axios, _this.basePath); });
691
+ };
692
+ return GroupApi;
693
+ }(base_1.BaseAPI));
694
+ exports.GroupApi = GroupApi;
695
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9ncm91cC1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG9CQUFvQjtBQUNwQixvQkFBb0I7QUFDcEI7Ozs7Ozs7Ozs7R0FVRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0gsK0JBQXFGO0FBRXJGLHlEQUF5RDtBQUN6RCxhQUFhO0FBQ2Isb0NBQTZOO0FBQzdOLGFBQWE7QUFDYixnQ0FBNkY7QUFhN0Y7OztHQUdHO0FBQ1UsUUFBQSx5QkFBeUIsR0FBRyxVQUFVLGFBQTZCO0lBQXZDLGlCQXVSeEM7SUF0UkcsT0FBTztRQUNIOzs7Ozs7V0FNRztRQUNILFdBQVcsRUFBRSxVQUFPLGFBQTRCLEVBQUUsT0FBZ0M7WUFBaEMsd0JBQUEsRUFBQSxZQUFnQzs7OztvQkFDOUUscUVBQXFFO29CQUNyRSwwQkFBaUIsQ0FBQyxhQUFhLEVBQUUsZUFBZSxFQUFFLGFBQWEsQ0FBQyxDQUFBO29CQUMxRCxZQUFZLEdBQUcsYUFBYSxDQUFDO29CQUU3QixjQUFjLEdBQUcsSUFBSSxHQUFHLENBQUMsWUFBWSxFQUFFLHVCQUFjLENBQUMsQ0FBQztvQkFFN0QsSUFBSSxhQUFhLEVBQUU7d0JBQ2YsV0FBVyxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUM7cUJBQzNDO29CQUVLLHNCQUFzQix1QkFBSyxNQUFNLEVBQUUsTUFBTSxJQUFLLFdBQVcsR0FBSyxPQUFPLENBQUMsQ0FBQztvQkFDdkUsdUJBQXVCLEdBQUcsRUFBUyxDQUFDO29CQUNwQyxzQkFBc0IsR0FBRyxFQUFTLENBQUM7b0JBSXpDLHVCQUF1QixDQUFDLGNBQWMsQ0FBQyxHQUFHLGtCQUFrQixDQUFDO29CQUU3RCx3QkFBZSxDQUFDLGNBQWMsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO29CQUNwRCxzQkFBc0IsR0FBRyxXQUFX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