scanoss 0.21.0 → 0.22.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 (100) hide show
  1. package/CHANGELOG.md +21 -4
  2. package/build/main/cli/bin/cli-bin.js +37 -1
  3. package/build/main/cli/commands/components.d.ts +1 -0
  4. package/build/main/cli/commands/components.js +98 -0
  5. package/build/main/cli/commands/crypto.js +1 -1
  6. package/build/main/cli/commands/scan.js +9 -4
  7. package/build/main/index.d.ts +6 -0
  8. package/build/main/index.js +9 -1
  9. package/build/main/sdk/BaseConfig.d.ts +8 -4
  10. package/build/main/sdk/BaseConfig.js +12 -8
  11. package/build/main/sdk/Clients/Components/ComponentsGRPCClient.d.ts +13 -0
  12. package/build/main/sdk/Clients/Components/ComponentsGRPCClient.js +33 -0
  13. package/build/main/sdk/Clients/Components/ComponentsHttpClient.d.ts +37 -0
  14. package/build/main/sdk/Clients/Components/ComponentsHttpClient.js +122 -0
  15. package/build/main/sdk/Clients/Components/IComponentsClient.d.ts +71 -0
  16. package/build/main/sdk/Clients/Components/IComponentsClient.js +3 -0
  17. package/build/main/sdk/Clients/Cryptography/CryptographyGRPCClient.d.ts +3 -0
  18. package/build/main/sdk/Clients/Cryptography/CryptographyGRPCClient.js +4 -1
  19. package/build/main/sdk/Clients/Cryptography/CryptographyHttpClient.d.ts +22 -3
  20. package/build/main/sdk/Clients/Cryptography/CryptographyHttpClient.js +28 -12
  21. package/build/main/sdk/Clients/Dependency/DependencyGRPCClient.d.ts +3 -0
  22. package/build/main/sdk/Clients/Dependency/DependencyGRPCClient.js +4 -1
  23. package/build/main/sdk/Clients/Dependency/DependencyHttpClient.d.ts +22 -3
  24. package/build/main/sdk/Clients/Dependency/DependencyHttpClient.js +27 -13
  25. package/build/main/sdk/Clients/Grpc/scanoss/api/components/v2/scanoss-components_grpc_pb.d.ts +81 -0
  26. package/build/main/sdk/Clients/Grpc/scanoss/api/components/v2/scanoss-components_grpc_pb.js +160 -0
  27. package/build/main/sdk/Clients/Grpc/scanoss/api/components/v2/scanoss-components_pb.d.ts +1 -0
  28. package/build/main/sdk/Clients/Grpc/scanoss/api/components/v2/scanoss-components_pb.js +2313 -0
  29. package/build/main/sdk/Clients/Transport/Transport.d.ts +4 -4
  30. package/build/main/sdk/Clients/Vulnerability/VulnerabilityHttpClient.d.ts +2 -3
  31. package/build/main/sdk/Clients/Vulnerability/VulnerabilityHttpClient.js +7 -12
  32. package/build/main/sdk/Clients/http/HttpClient.d.ts +8 -16
  33. package/build/main/sdk/Clients/http/HttpClient.js +4 -1
  34. package/build/main/sdk/Clients/interfaces/ClientConfig.d.ts +8 -9
  35. package/build/main/sdk/Clients/interfaces/ClientConfig.js +1 -7
  36. package/build/main/sdk/Components/ComponentsScanner.d.ts +34 -0
  37. package/build/main/sdk/Components/ComponentsScanner.js +123 -0
  38. package/build/main/sdk/Components/ComponentsScannerCfg.d.ts +21 -0
  39. package/build/main/sdk/Components/ComponentsScannerCfg.js +54 -0
  40. package/build/main/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.js +12 -6
  41. package/build/main/sdk/Cryptography/CryptoCfg.js +8 -11
  42. package/build/main/sdk/Cryptography/Hint/Components/ComponentHintScanner.js +12 -6
  43. package/build/main/sdk/Dependencies/DependencyScanner.js +13 -4
  44. package/build/main/sdk/Dependencies/DependencyScannerCfg.d.ts +0 -3
  45. package/build/main/sdk/Dependencies/DependencyScannerCfg.js +8 -19
  46. package/build/main/sdk/Vulnerability/VulnerabilityCfg.js +8 -11
  47. package/build/main/sdk/Vulnerability/VulnerabilityScanner.js +11 -2
  48. package/build/main/sdk/scanner/ScannerCfg.d.ts +0 -1
  49. package/build/main/sdk/scanner/ScannerCfg.js +10 -13
  50. package/build/main/tsconfig.tsbuildinfo +1 -1
  51. package/build/module/cli/bin/cli-bin.js +37 -1
  52. package/build/module/cli/commands/components.d.ts +1 -0
  53. package/build/module/cli/commands/components.js +92 -0
  54. package/build/module/cli/commands/crypto.js +1 -1
  55. package/build/module/cli/commands/scan.js +9 -4
  56. package/build/module/index.d.ts +6 -0
  57. package/build/module/index.js +9 -1
  58. package/build/module/sdk/BaseConfig.d.ts +8 -4
  59. package/build/module/sdk/BaseConfig.js +12 -8
  60. package/build/module/sdk/Clients/Components/ComponentsGRPCClient.d.ts +13 -0
  61. package/build/module/sdk/Clients/Components/ComponentsGRPCClient.js +29 -0
  62. package/build/module/sdk/Clients/Components/ComponentsHttpClient.d.ts +37 -0
  63. package/build/module/sdk/Clients/Components/ComponentsHttpClient.js +118 -0
  64. package/build/module/sdk/Clients/Components/IComponentsClient.d.ts +71 -0
  65. package/build/module/sdk/Clients/Components/IComponentsClient.js +2 -0
  66. package/build/module/sdk/Clients/Cryptography/CryptographyGRPCClient.d.ts +3 -0
  67. package/build/module/sdk/Clients/Cryptography/CryptographyGRPCClient.js +4 -1
  68. package/build/module/sdk/Clients/Cryptography/CryptographyHttpClient.d.ts +22 -3
  69. package/build/module/sdk/Clients/Cryptography/CryptographyHttpClient.js +28 -14
  70. package/build/module/sdk/Clients/Dependency/DependencyGRPCClient.d.ts +3 -0
  71. package/build/module/sdk/Clients/Dependency/DependencyGRPCClient.js +4 -1
  72. package/build/module/sdk/Clients/Dependency/DependencyHttpClient.d.ts +22 -3
  73. package/build/module/sdk/Clients/Dependency/DependencyHttpClient.js +27 -15
  74. package/build/module/sdk/Clients/Grpc/scanoss/api/components/v2/scanoss-components_grpc_pb.d.ts +81 -0
  75. package/build/module/sdk/Clients/Grpc/scanoss/api/components/v2/scanoss-components_grpc_pb.js +160 -0
  76. package/build/module/sdk/Clients/Grpc/scanoss/api/components/v2/scanoss-components_pb.d.ts +1 -0
  77. package/build/module/sdk/Clients/Grpc/scanoss/api/components/v2/scanoss-components_pb.js +2313 -0
  78. package/build/module/sdk/Clients/Transport/Transport.d.ts +4 -4
  79. package/build/module/sdk/Clients/Vulnerability/VulnerabilityHttpClient.d.ts +2 -3
  80. package/build/module/sdk/Clients/Vulnerability/VulnerabilityHttpClient.js +7 -14
  81. package/build/module/sdk/Clients/http/HttpClient.d.ts +8 -16
  82. package/build/module/sdk/Clients/http/HttpClient.js +4 -1
  83. package/build/module/sdk/Clients/interfaces/ClientConfig.d.ts +8 -9
  84. package/build/module/sdk/Clients/interfaces/ClientConfig.js +2 -6
  85. package/build/module/sdk/Components/ComponentsScanner.d.ts +34 -0
  86. package/build/module/sdk/Components/ComponentsScanner.js +119 -0
  87. package/build/module/sdk/Components/ComponentsScannerCfg.d.ts +21 -0
  88. package/build/module/sdk/Components/ComponentsScannerCfg.js +50 -0
  89. package/build/module/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.js +12 -6
  90. package/build/module/sdk/Cryptography/CryptoCfg.js +8 -11
  91. package/build/module/sdk/Cryptography/Hint/Components/ComponentHintScanner.js +12 -6
  92. package/build/module/sdk/Dependencies/DependencyScanner.js +13 -4
  93. package/build/module/sdk/Dependencies/DependencyScannerCfg.d.ts +0 -3
  94. package/build/module/sdk/Dependencies/DependencyScannerCfg.js +8 -19
  95. package/build/module/sdk/Vulnerability/VulnerabilityCfg.js +8 -11
  96. package/build/module/sdk/Vulnerability/VulnerabilityScanner.js +11 -2
  97. package/build/module/sdk/scanner/ScannerCfg.d.ts +0 -1
  98. package/build/module/sdk/scanner/ScannerCfg.js +10 -13
  99. package/build/module/tsconfig.module.tsbuildinfo +1 -1
  100. package/package.json +1 -1
@@ -0,0 +1,2313 @@
1
+ // source: scanoss/api/components/v2/scanoss-components.proto
2
+ /**
3
+ * @fileoverview
4
+ * @enhanceable
5
+ * @suppress {missingRequire} reports error on implicit type usages.
6
+ * @suppress {messageConventions} JS Compiler reports an error if a variable or
7
+ * field starts with 'MSG_' and isn't a translatable message.
8
+ * @public
9
+ */
10
+ // GENERATED CODE -- DO NOT EDIT!
11
+ /* eslint-disable */
12
+ // @ts-nocheck
13
+ var jspb = require('google-protobuf');
14
+ var goog = jspb;
15
+ var global = (typeof globalThis !== 'undefined' && globalThis) ||
16
+ (typeof window !== 'undefined' && window) ||
17
+ (typeof global !== 'undefined' && global) ||
18
+ (typeof self !== 'undefined' && self) ||
19
+ (function () { return this; }).call(null) ||
20
+ Function('return this')();
21
+ var scanoss_api_common_v2_scanoss$common_pb = require('../../../../scanoss/api/common/v2/scanoss-common_pb.js');
22
+ goog.object.extend(proto, scanoss_api_common_v2_scanoss$common_pb);
23
+ var google_api_annotations_pb = require('../../../../google/api/annotations_pb.js');
24
+ goog.object.extend(proto, google_api_annotations_pb);
25
+ var protoc$gen$openapiv2_options_annotations_pb = require('../../../../protoc-gen-openapiv2/options/annotations_pb.js');
26
+ goog.object.extend(proto, protoc$gen$openapiv2_options_annotations_pb);
27
+ goog.exportSymbol('proto.scanoss.api.components.v2.CompSearchRequest', null, global);
28
+ goog.exportSymbol('proto.scanoss.api.components.v2.CompSearchResponse', null, global);
29
+ goog.exportSymbol('proto.scanoss.api.components.v2.CompSearchResponse.Component', null, global);
30
+ goog.exportSymbol('proto.scanoss.api.components.v2.CompStatistic', null, global);
31
+ goog.exportSymbol('proto.scanoss.api.components.v2.CompStatistic.Language', null, global);
32
+ goog.exportSymbol('proto.scanoss.api.components.v2.CompStatisticResponse', null, global);
33
+ goog.exportSymbol('proto.scanoss.api.components.v2.CompStatisticResponse.Purls', null, global);
34
+ goog.exportSymbol('proto.scanoss.api.components.v2.CompVersionRequest', null, global);
35
+ goog.exportSymbol('proto.scanoss.api.components.v2.CompVersionResponse', null, global);
36
+ goog.exportSymbol('proto.scanoss.api.components.v2.CompVersionResponse.Component', null, global);
37
+ goog.exportSymbol('proto.scanoss.api.components.v2.CompVersionResponse.License', null, global);
38
+ goog.exportSymbol('proto.scanoss.api.components.v2.CompVersionResponse.Version', null, global);
39
+ /**
40
+ * Generated by JsPbCodeGenerator.
41
+ * @param {Array=} opt_data Optional initial data array, typically from a
42
+ * server response, or constructed directly in Javascript. The array is used
43
+ * in place and becomes part of the constructed object. It is not cloned.
44
+ * If no data is provided, the constructed object will be empty, but still
45
+ * valid.
46
+ * @extends {jspb.Message}
47
+ * @constructor
48
+ */
49
+ proto.scanoss.api.components.v2.CompSearchRequest = function (opt_data) {
50
+ jspb.Message.initialize(this, opt_data, 0, -1, null, null);
51
+ };
52
+ goog.inherits(proto.scanoss.api.components.v2.CompSearchRequest, jspb.Message);
53
+ if (goog.DEBUG && !COMPILED) {
54
+ /**
55
+ * @public
56
+ * @override
57
+ */
58
+ proto.scanoss.api.components.v2.CompSearchRequest.displayName = 'proto.scanoss.api.components.v2.CompSearchRequest';
59
+ }
60
+ /**
61
+ * Generated by JsPbCodeGenerator.
62
+ * @param {Array=} opt_data Optional initial data array, typically from a
63
+ * server response, or constructed directly in Javascript. The array is used
64
+ * in place and becomes part of the constructed object. It is not cloned.
65
+ * If no data is provided, the constructed object will be empty, but still
66
+ * valid.
67
+ * @extends {jspb.Message}
68
+ * @constructor
69
+ */
70
+ proto.scanoss.api.components.v2.CompStatistic = function (opt_data) {
71
+ jspb.Message.initialize(this, opt_data, 0, -1, proto.scanoss.api.components.v2.CompStatistic.repeatedFields_, null);
72
+ };
73
+ goog.inherits(proto.scanoss.api.components.v2.CompStatistic, jspb.Message);
74
+ if (goog.DEBUG && !COMPILED) {
75
+ /**
76
+ * @public
77
+ * @override
78
+ */
79
+ proto.scanoss.api.components.v2.CompStatistic.displayName = 'proto.scanoss.api.components.v2.CompStatistic';
80
+ }
81
+ /**
82
+ * Generated by JsPbCodeGenerator.
83
+ * @param {Array=} opt_data Optional initial data array, typically from a
84
+ * server response, or constructed directly in Javascript. The array is used
85
+ * in place and becomes part of the constructed object. It is not cloned.
86
+ * If no data is provided, the constructed object will be empty, but still
87
+ * valid.
88
+ * @extends {jspb.Message}
89
+ * @constructor
90
+ */
91
+ proto.scanoss.api.components.v2.CompStatistic.Language = function (opt_data) {
92
+ jspb.Message.initialize(this, opt_data, 0, -1, null, null);
93
+ };
94
+ goog.inherits(proto.scanoss.api.components.v2.CompStatistic.Language, jspb.Message);
95
+ if (goog.DEBUG && !COMPILED) {
96
+ /**
97
+ * @public
98
+ * @override
99
+ */
100
+ proto.scanoss.api.components.v2.CompStatistic.Language.displayName = 'proto.scanoss.api.components.v2.CompStatistic.Language';
101
+ }
102
+ /**
103
+ * Generated by JsPbCodeGenerator.
104
+ * @param {Array=} opt_data Optional initial data array, typically from a
105
+ * server response, or constructed directly in Javascript. The array is used
106
+ * in place and becomes part of the constructed object. It is not cloned.
107
+ * If no data is provided, the constructed object will be empty, but still
108
+ * valid.
109
+ * @extends {jspb.Message}
110
+ * @constructor
111
+ */
112
+ proto.scanoss.api.components.v2.CompStatisticResponse = function (opt_data) {
113
+ jspb.Message.initialize(this, opt_data, 0, -1, proto.scanoss.api.components.v2.CompStatisticResponse.repeatedFields_, null);
114
+ };
115
+ goog.inherits(proto.scanoss.api.components.v2.CompStatisticResponse, jspb.Message);
116
+ if (goog.DEBUG && !COMPILED) {
117
+ /**
118
+ * @public
119
+ * @override
120
+ */
121
+ proto.scanoss.api.components.v2.CompStatisticResponse.displayName = 'proto.scanoss.api.components.v2.CompStatisticResponse';
122
+ }
123
+ /**
124
+ * Generated by JsPbCodeGenerator.
125
+ * @param {Array=} opt_data Optional initial data array, typically from a
126
+ * server response, or constructed directly in Javascript. The array is used
127
+ * in place and becomes part of the constructed object. It is not cloned.
128
+ * If no data is provided, the constructed object will be empty, but still
129
+ * valid.
130
+ * @extends {jspb.Message}
131
+ * @constructor
132
+ */
133
+ proto.scanoss.api.components.v2.CompStatisticResponse.Purls = function (opt_data) {
134
+ jspb.Message.initialize(this, opt_data, 0, -1, null, null);
135
+ };
136
+ goog.inherits(proto.scanoss.api.components.v2.CompStatisticResponse.Purls, jspb.Message);
137
+ if (goog.DEBUG && !COMPILED) {
138
+ /**
139
+ * @public
140
+ * @override
141
+ */
142
+ proto.scanoss.api.components.v2.CompStatisticResponse.Purls.displayName = 'proto.scanoss.api.components.v2.CompStatisticResponse.Purls';
143
+ }
144
+ /**
145
+ * Generated by JsPbCodeGenerator.
146
+ * @param {Array=} opt_data Optional initial data array, typically from a
147
+ * server response, or constructed directly in Javascript. The array is used
148
+ * in place and becomes part of the constructed object. It is not cloned.
149
+ * If no data is provided, the constructed object will be empty, but still
150
+ * valid.
151
+ * @extends {jspb.Message}
152
+ * @constructor
153
+ */
154
+ proto.scanoss.api.components.v2.CompSearchResponse = function (opt_data) {
155
+ jspb.Message.initialize(this, opt_data, 0, -1, proto.scanoss.api.components.v2.CompSearchResponse.repeatedFields_, null);
156
+ };
157
+ goog.inherits(proto.scanoss.api.components.v2.CompSearchResponse, jspb.Message);
158
+ if (goog.DEBUG && !COMPILED) {
159
+ /**
160
+ * @public
161
+ * @override
162
+ */
163
+ proto.scanoss.api.components.v2.CompSearchResponse.displayName = 'proto.scanoss.api.components.v2.CompSearchResponse';
164
+ }
165
+ /**
166
+ * Generated by JsPbCodeGenerator.
167
+ * @param {Array=} opt_data Optional initial data array, typically from a
168
+ * server response, or constructed directly in Javascript. The array is used
169
+ * in place and becomes part of the constructed object. It is not cloned.
170
+ * If no data is provided, the constructed object will be empty, but still
171
+ * valid.
172
+ * @extends {jspb.Message}
173
+ * @constructor
174
+ */
175
+ proto.scanoss.api.components.v2.CompSearchResponse.Component = function (opt_data) {
176
+ jspb.Message.initialize(this, opt_data, 0, -1, null, null);
177
+ };
178
+ goog.inherits(proto.scanoss.api.components.v2.CompSearchResponse.Component, jspb.Message);
179
+ if (goog.DEBUG && !COMPILED) {
180
+ /**
181
+ * @public
182
+ * @override
183
+ */
184
+ proto.scanoss.api.components.v2.CompSearchResponse.Component.displayName = 'proto.scanoss.api.components.v2.CompSearchResponse.Component';
185
+ }
186
+ /**
187
+ * Generated by JsPbCodeGenerator.
188
+ * @param {Array=} opt_data Optional initial data array, typically from a
189
+ * server response, or constructed directly in Javascript. The array is used
190
+ * in place and becomes part of the constructed object. It is not cloned.
191
+ * If no data is provided, the constructed object will be empty, but still
192
+ * valid.
193
+ * @extends {jspb.Message}
194
+ * @constructor
195
+ */
196
+ proto.scanoss.api.components.v2.CompVersionRequest = function (opt_data) {
197
+ jspb.Message.initialize(this, opt_data, 0, -1, null, null);
198
+ };
199
+ goog.inherits(proto.scanoss.api.components.v2.CompVersionRequest, jspb.Message);
200
+ if (goog.DEBUG && !COMPILED) {
201
+ /**
202
+ * @public
203
+ * @override
204
+ */
205
+ proto.scanoss.api.components.v2.CompVersionRequest.displayName = 'proto.scanoss.api.components.v2.CompVersionRequest';
206
+ }
207
+ /**
208
+ * Generated by JsPbCodeGenerator.
209
+ * @param {Array=} opt_data Optional initial data array, typically from a
210
+ * server response, or constructed directly in Javascript. The array is used
211
+ * in place and becomes part of the constructed object. It is not cloned.
212
+ * If no data is provided, the constructed object will be empty, but still
213
+ * valid.
214
+ * @extends {jspb.Message}
215
+ * @constructor
216
+ */
217
+ proto.scanoss.api.components.v2.CompVersionResponse = function (opt_data) {
218
+ jspb.Message.initialize(this, opt_data, 0, -1, null, null);
219
+ };
220
+ goog.inherits(proto.scanoss.api.components.v2.CompVersionResponse, jspb.Message);
221
+ if (goog.DEBUG && !COMPILED) {
222
+ /**
223
+ * @public
224
+ * @override
225
+ */
226
+ proto.scanoss.api.components.v2.CompVersionResponse.displayName = 'proto.scanoss.api.components.v2.CompVersionResponse';
227
+ }
228
+ /**
229
+ * Generated by JsPbCodeGenerator.
230
+ * @param {Array=} opt_data Optional initial data array, typically from a
231
+ * server response, or constructed directly in Javascript. The array is used
232
+ * in place and becomes part of the constructed object. It is not cloned.
233
+ * If no data is provided, the constructed object will be empty, but still
234
+ * valid.
235
+ * @extends {jspb.Message}
236
+ * @constructor
237
+ */
238
+ proto.scanoss.api.components.v2.CompVersionResponse.License = function (opt_data) {
239
+ jspb.Message.initialize(this, opt_data, 0, -1, null, null);
240
+ };
241
+ goog.inherits(proto.scanoss.api.components.v2.CompVersionResponse.License, jspb.Message);
242
+ if (goog.DEBUG && !COMPILED) {
243
+ /**
244
+ * @public
245
+ * @override
246
+ */
247
+ proto.scanoss.api.components.v2.CompVersionResponse.License.displayName = 'proto.scanoss.api.components.v2.CompVersionResponse.License';
248
+ }
249
+ /**
250
+ * Generated by JsPbCodeGenerator.
251
+ * @param {Array=} opt_data Optional initial data array, typically from a
252
+ * server response, or constructed directly in Javascript. The array is used
253
+ * in place and becomes part of the constructed object. It is not cloned.
254
+ * If no data is provided, the constructed object will be empty, but still
255
+ * valid.
256
+ * @extends {jspb.Message}
257
+ * @constructor
258
+ */
259
+ proto.scanoss.api.components.v2.CompVersionResponse.Version = function (opt_data) {
260
+ jspb.Message.initialize(this, opt_data, 0, -1, proto.scanoss.api.components.v2.CompVersionResponse.Version.repeatedFields_, null);
261
+ };
262
+ goog.inherits(proto.scanoss.api.components.v2.CompVersionResponse.Version, jspb.Message);
263
+ if (goog.DEBUG && !COMPILED) {
264
+ /**
265
+ * @public
266
+ * @override
267
+ */
268
+ proto.scanoss.api.components.v2.CompVersionResponse.Version.displayName = 'proto.scanoss.api.components.v2.CompVersionResponse.Version';
269
+ }
270
+ /**
271
+ * Generated by JsPbCodeGenerator.
272
+ * @param {Array=} opt_data Optional initial data array, typically from a
273
+ * server response, or constructed directly in Javascript. The array is used
274
+ * in place and becomes part of the constructed object. It is not cloned.
275
+ * If no data is provided, the constructed object will be empty, but still
276
+ * valid.
277
+ * @extends {jspb.Message}
278
+ * @constructor
279
+ */
280
+ proto.scanoss.api.components.v2.CompVersionResponse.Component = function (opt_data) {
281
+ jspb.Message.initialize(this, opt_data, 0, -1, proto.scanoss.api.components.v2.CompVersionResponse.Component.repeatedFields_, null);
282
+ };
283
+ goog.inherits(proto.scanoss.api.components.v2.CompVersionResponse.Component, jspb.Message);
284
+ if (goog.DEBUG && !COMPILED) {
285
+ /**
286
+ * @public
287
+ * @override
288
+ */
289
+ proto.scanoss.api.components.v2.CompVersionResponse.Component.displayName = 'proto.scanoss.api.components.v2.CompVersionResponse.Component';
290
+ }
291
+ if (jspb.Message.GENERATE_TO_OBJECT) {
292
+ /**
293
+ * Creates an object representation of this proto.
294
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
295
+ * Optional fields that are not set will be set to undefined.
296
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
297
+ * For the list of reserved names please see:
298
+ * net/proto2/compiler/js/internal/generator.cc#kKeyword.
299
+ * @param {boolean=} opt_includeInstance Deprecated. whether to include the
300
+ * JSPB instance for transitional soy proto support:
301
+ * http://goto/soy-param-migration
302
+ * @return {!Object}
303
+ */
304
+ proto.scanoss.api.components.v2.CompSearchRequest.prototype.toObject = function (opt_includeInstance) {
305
+ return proto.scanoss.api.components.v2.CompSearchRequest.toObject(opt_includeInstance, this);
306
+ };
307
+ /**
308
+ * Static version of the {@see toObject} method.
309
+ * @param {boolean|undefined} includeInstance Deprecated. Whether to include
310
+ * the JSPB instance for transitional soy proto support:
311
+ * http://goto/soy-param-migration
312
+ * @param {!proto.scanoss.api.components.v2.CompSearchRequest} msg The msg instance to transform.
313
+ * @return {!Object}
314
+ * @suppress {unusedLocalVariables} f is only used for nested messages
315
+ */
316
+ proto.scanoss.api.components.v2.CompSearchRequest.toObject = function (includeInstance, msg) {
317
+ var f, obj = {
318
+ search: jspb.Message.getFieldWithDefault(msg, 1, ""),
319
+ vendor: jspb.Message.getFieldWithDefault(msg, 2, ""),
320
+ component: jspb.Message.getFieldWithDefault(msg, 3, ""),
321
+ pb_package: jspb.Message.getFieldWithDefault(msg, 4, ""),
322
+ limit: jspb.Message.getFieldWithDefault(msg, 6, 0),
323
+ offset: jspb.Message.getFieldWithDefault(msg, 7, 0)
324
+ };
325
+ if (includeInstance) {
326
+ obj.$jspbMessageInstance = msg;
327
+ }
328
+ return obj;
329
+ };
330
+ }
331
+ /**
332
+ * Deserializes binary data (in protobuf wire format).
333
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
334
+ * @return {!proto.scanoss.api.components.v2.CompSearchRequest}
335
+ */
336
+ proto.scanoss.api.components.v2.CompSearchRequest.deserializeBinary = function (bytes) {
337
+ var reader = new jspb.BinaryReader(bytes);
338
+ var msg = new proto.scanoss.api.components.v2.CompSearchRequest;
339
+ return proto.scanoss.api.components.v2.CompSearchRequest.deserializeBinaryFromReader(msg, reader);
340
+ };
341
+ /**
342
+ * Deserializes binary data (in protobuf wire format) from the
343
+ * given reader into the given message object.
344
+ * @param {!proto.scanoss.api.components.v2.CompSearchRequest} msg The message object to deserialize into.
345
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
346
+ * @return {!proto.scanoss.api.components.v2.CompSearchRequest}
347
+ */
348
+ proto.scanoss.api.components.v2.CompSearchRequest.deserializeBinaryFromReader = function (msg, reader) {
349
+ while (reader.nextField()) {
350
+ if (reader.isEndGroup()) {
351
+ break;
352
+ }
353
+ var field = reader.getFieldNumber();
354
+ switch (field) {
355
+ case 1:
356
+ var value = /** @type {string} */ (reader.readString());
357
+ msg.setSearch(value);
358
+ break;
359
+ case 2:
360
+ var value = /** @type {string} */ (reader.readString());
361
+ msg.setVendor(value);
362
+ break;
363
+ case 3:
364
+ var value = /** @type {string} */ (reader.readString());
365
+ msg.setComponent(value);
366
+ break;
367
+ case 4:
368
+ var value = /** @type {string} */ (reader.readString());
369
+ msg.setPackage(value);
370
+ break;
371
+ case 6:
372
+ var value = /** @type {number} */ (reader.readInt32());
373
+ msg.setLimit(value);
374
+ break;
375
+ case 7:
376
+ var value = /** @type {number} */ (reader.readInt32());
377
+ msg.setOffset(value);
378
+ break;
379
+ default:
380
+ reader.skipField();
381
+ break;
382
+ }
383
+ }
384
+ return msg;
385
+ };
386
+ /**
387
+ * Serializes the message to binary data (in protobuf wire format).
388
+ * @return {!Uint8Array}
389
+ */
390
+ proto.scanoss.api.components.v2.CompSearchRequest.prototype.serializeBinary = function () {
391
+ var writer = new jspb.BinaryWriter();
392
+ proto.scanoss.api.components.v2.CompSearchRequest.serializeBinaryToWriter(this, writer);
393
+ return writer.getResultBuffer();
394
+ };
395
+ /**
396
+ * Serializes the given message to binary data (in protobuf wire
397
+ * format), writing to the given BinaryWriter.
398
+ * @param {!proto.scanoss.api.components.v2.CompSearchRequest} message
399
+ * @param {!jspb.BinaryWriter} writer
400
+ * @suppress {unusedLocalVariables} f is only used for nested messages
401
+ */
402
+ proto.scanoss.api.components.v2.CompSearchRequest.serializeBinaryToWriter = function (message, writer) {
403
+ var f = undefined;
404
+ f = message.getSearch();
405
+ if (f.length > 0) {
406
+ writer.writeString(1, f);
407
+ }
408
+ f = message.getVendor();
409
+ if (f.length > 0) {
410
+ writer.writeString(2, f);
411
+ }
412
+ f = message.getComponent();
413
+ if (f.length > 0) {
414
+ writer.writeString(3, f);
415
+ }
416
+ f = message.getPackage();
417
+ if (f.length > 0) {
418
+ writer.writeString(4, f);
419
+ }
420
+ f = message.getLimit();
421
+ if (f !== 0) {
422
+ writer.writeInt32(6, f);
423
+ }
424
+ f = message.getOffset();
425
+ if (f !== 0) {
426
+ writer.writeInt32(7, f);
427
+ }
428
+ };
429
+ /**
430
+ * optional string search = 1;
431
+ * @return {string}
432
+ */
433
+ proto.scanoss.api.components.v2.CompSearchRequest.prototype.getSearch = function () {
434
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
435
+ };
436
+ /**
437
+ * @param {string} value
438
+ * @return {!proto.scanoss.api.components.v2.CompSearchRequest} returns this
439
+ */
440
+ proto.scanoss.api.components.v2.CompSearchRequest.prototype.setSearch = function (value) {
441
+ return jspb.Message.setProto3StringField(this, 1, value);
442
+ };
443
+ /**
444
+ * optional string vendor = 2;
445
+ * @return {string}
446
+ */
447
+ proto.scanoss.api.components.v2.CompSearchRequest.prototype.getVendor = function () {
448
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
449
+ };
450
+ /**
451
+ * @param {string} value
452
+ * @return {!proto.scanoss.api.components.v2.CompSearchRequest} returns this
453
+ */
454
+ proto.scanoss.api.components.v2.CompSearchRequest.prototype.setVendor = function (value) {
455
+ return jspb.Message.setProto3StringField(this, 2, value);
456
+ };
457
+ /**
458
+ * optional string component = 3;
459
+ * @return {string}
460
+ */
461
+ proto.scanoss.api.components.v2.CompSearchRequest.prototype.getComponent = function () {
462
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
463
+ };
464
+ /**
465
+ * @param {string} value
466
+ * @return {!proto.scanoss.api.components.v2.CompSearchRequest} returns this
467
+ */
468
+ proto.scanoss.api.components.v2.CompSearchRequest.prototype.setComponent = function (value) {
469
+ return jspb.Message.setProto3StringField(this, 3, value);
470
+ };
471
+ /**
472
+ * optional string package = 4;
473
+ * @return {string}
474
+ */
475
+ proto.scanoss.api.components.v2.CompSearchRequest.prototype.getPackage = function () {
476
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
477
+ };
478
+ /**
479
+ * @param {string} value
480
+ * @return {!proto.scanoss.api.components.v2.CompSearchRequest} returns this
481
+ */
482
+ proto.scanoss.api.components.v2.CompSearchRequest.prototype.setPackage = function (value) {
483
+ return jspb.Message.setProto3StringField(this, 4, value);
484
+ };
485
+ /**
486
+ * optional int32 limit = 6;
487
+ * @return {number}
488
+ */
489
+ proto.scanoss.api.components.v2.CompSearchRequest.prototype.getLimit = function () {
490
+ return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));
491
+ };
492
+ /**
493
+ * @param {number} value
494
+ * @return {!proto.scanoss.api.components.v2.CompSearchRequest} returns this
495
+ */
496
+ proto.scanoss.api.components.v2.CompSearchRequest.prototype.setLimit = function (value) {
497
+ return jspb.Message.setProto3IntField(this, 6, value);
498
+ };
499
+ /**
500
+ * optional int32 offset = 7;
501
+ * @return {number}
502
+ */
503
+ proto.scanoss.api.components.v2.CompSearchRequest.prototype.getOffset = function () {
504
+ return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0));
505
+ };
506
+ /**
507
+ * @param {number} value
508
+ * @return {!proto.scanoss.api.components.v2.CompSearchRequest} returns this
509
+ */
510
+ proto.scanoss.api.components.v2.CompSearchRequest.prototype.setOffset = function (value) {
511
+ return jspb.Message.setProto3IntField(this, 7, value);
512
+ };
513
+ /**
514
+ * List of repeated fields within this message type.
515
+ * @private {!Array<number>}
516
+ * @const
517
+ */
518
+ proto.scanoss.api.components.v2.CompStatistic.repeatedFields_ = [4];
519
+ if (jspb.Message.GENERATE_TO_OBJECT) {
520
+ /**
521
+ * Creates an object representation of this proto.
522
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
523
+ * Optional fields that are not set will be set to undefined.
524
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
525
+ * For the list of reserved names please see:
526
+ * net/proto2/compiler/js/internal/generator.cc#kKeyword.
527
+ * @param {boolean=} opt_includeInstance Deprecated. whether to include the
528
+ * JSPB instance for transitional soy proto support:
529
+ * http://goto/soy-param-migration
530
+ * @return {!Object}
531
+ */
532
+ proto.scanoss.api.components.v2.CompStatistic.prototype.toObject = function (opt_includeInstance) {
533
+ return proto.scanoss.api.components.v2.CompStatistic.toObject(opt_includeInstance, this);
534
+ };
535
+ /**
536
+ * Static version of the {@see toObject} method.
537
+ * @param {boolean|undefined} includeInstance Deprecated. Whether to include
538
+ * the JSPB instance for transitional soy proto support:
539
+ * http://goto/soy-param-migration
540
+ * @param {!proto.scanoss.api.components.v2.CompStatistic} msg The msg instance to transform.
541
+ * @return {!Object}
542
+ * @suppress {unusedLocalVariables} f is only used for nested messages
543
+ */
544
+ proto.scanoss.api.components.v2.CompStatistic.toObject = function (includeInstance, msg) {
545
+ var f, obj = {
546
+ totalSourceFiles: jspb.Message.getFieldWithDefault(msg, 1, 0),
547
+ totalLines: jspb.Message.getFieldWithDefault(msg, 2, 0),
548
+ totalBlankLines: jspb.Message.getFieldWithDefault(msg, 3, 0),
549
+ languagesList: jspb.Message.toObjectList(msg.getLanguagesList(), proto.scanoss.api.components.v2.CompStatistic.Language.toObject, includeInstance)
550
+ };
551
+ if (includeInstance) {
552
+ obj.$jspbMessageInstance = msg;
553
+ }
554
+ return obj;
555
+ };
556
+ }
557
+ /**
558
+ * Deserializes binary data (in protobuf wire format).
559
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
560
+ * @return {!proto.scanoss.api.components.v2.CompStatistic}
561
+ */
562
+ proto.scanoss.api.components.v2.CompStatistic.deserializeBinary = function (bytes) {
563
+ var reader = new jspb.BinaryReader(bytes);
564
+ var msg = new proto.scanoss.api.components.v2.CompStatistic;
565
+ return proto.scanoss.api.components.v2.CompStatistic.deserializeBinaryFromReader(msg, reader);
566
+ };
567
+ /**
568
+ * Deserializes binary data (in protobuf wire format) from the
569
+ * given reader into the given message object.
570
+ * @param {!proto.scanoss.api.components.v2.CompStatistic} msg The message object to deserialize into.
571
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
572
+ * @return {!proto.scanoss.api.components.v2.CompStatistic}
573
+ */
574
+ proto.scanoss.api.components.v2.CompStatistic.deserializeBinaryFromReader = function (msg, reader) {
575
+ while (reader.nextField()) {
576
+ if (reader.isEndGroup()) {
577
+ break;
578
+ }
579
+ var field = reader.getFieldNumber();
580
+ switch (field) {
581
+ case 1:
582
+ var value = /** @type {number} */ (reader.readInt32());
583
+ msg.setTotalSourceFiles(value);
584
+ break;
585
+ case 2:
586
+ var value = /** @type {number} */ (reader.readInt32());
587
+ msg.setTotalLines(value);
588
+ break;
589
+ case 3:
590
+ var value = /** @type {number} */ (reader.readInt32());
591
+ msg.setTotalBlankLines(value);
592
+ break;
593
+ case 4:
594
+ var value = new proto.scanoss.api.components.v2.CompStatistic.Language;
595
+ reader.readMessage(value, proto.scanoss.api.components.v2.CompStatistic.Language.deserializeBinaryFromReader);
596
+ msg.addLanguages(value);
597
+ break;
598
+ default:
599
+ reader.skipField();
600
+ break;
601
+ }
602
+ }
603
+ return msg;
604
+ };
605
+ /**
606
+ * Serializes the message to binary data (in protobuf wire format).
607
+ * @return {!Uint8Array}
608
+ */
609
+ proto.scanoss.api.components.v2.CompStatistic.prototype.serializeBinary = function () {
610
+ var writer = new jspb.BinaryWriter();
611
+ proto.scanoss.api.components.v2.CompStatistic.serializeBinaryToWriter(this, writer);
612
+ return writer.getResultBuffer();
613
+ };
614
+ /**
615
+ * Serializes the given message to binary data (in protobuf wire
616
+ * format), writing to the given BinaryWriter.
617
+ * @param {!proto.scanoss.api.components.v2.CompStatistic} message
618
+ * @param {!jspb.BinaryWriter} writer
619
+ * @suppress {unusedLocalVariables} f is only used for nested messages
620
+ */
621
+ proto.scanoss.api.components.v2.CompStatistic.serializeBinaryToWriter = function (message, writer) {
622
+ var f = undefined;
623
+ f = message.getTotalSourceFiles();
624
+ if (f !== 0) {
625
+ writer.writeInt32(1, f);
626
+ }
627
+ f = message.getTotalLines();
628
+ if (f !== 0) {
629
+ writer.writeInt32(2, f);
630
+ }
631
+ f = message.getTotalBlankLines();
632
+ if (f !== 0) {
633
+ writer.writeInt32(3, f);
634
+ }
635
+ f = message.getLanguagesList();
636
+ if (f.length > 0) {
637
+ writer.writeRepeatedMessage(4, f, proto.scanoss.api.components.v2.CompStatistic.Language.serializeBinaryToWriter);
638
+ }
639
+ };
640
+ if (jspb.Message.GENERATE_TO_OBJECT) {
641
+ /**
642
+ * Creates an object representation of this proto.
643
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
644
+ * Optional fields that are not set will be set to undefined.
645
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
646
+ * For the list of reserved names please see:
647
+ * net/proto2/compiler/js/internal/generator.cc#kKeyword.
648
+ * @param {boolean=} opt_includeInstance Deprecated. whether to include the
649
+ * JSPB instance for transitional soy proto support:
650
+ * http://goto/soy-param-migration
651
+ * @return {!Object}
652
+ */
653
+ proto.scanoss.api.components.v2.CompStatistic.Language.prototype.toObject = function (opt_includeInstance) {
654
+ return proto.scanoss.api.components.v2.CompStatistic.Language.toObject(opt_includeInstance, this);
655
+ };
656
+ /**
657
+ * Static version of the {@see toObject} method.
658
+ * @param {boolean|undefined} includeInstance Deprecated. Whether to include
659
+ * the JSPB instance for transitional soy proto support:
660
+ * http://goto/soy-param-migration
661
+ * @param {!proto.scanoss.api.components.v2.CompStatistic.Language} msg The msg instance to transform.
662
+ * @return {!Object}
663
+ * @suppress {unusedLocalVariables} f is only used for nested messages
664
+ */
665
+ proto.scanoss.api.components.v2.CompStatistic.Language.toObject = function (includeInstance, msg) {
666
+ var f, obj = {
667
+ name: jspb.Message.getFieldWithDefault(msg, 1, ""),
668
+ files: jspb.Message.getFieldWithDefault(msg, 2, 0)
669
+ };
670
+ if (includeInstance) {
671
+ obj.$jspbMessageInstance = msg;
672
+ }
673
+ return obj;
674
+ };
675
+ }
676
+ /**
677
+ * Deserializes binary data (in protobuf wire format).
678
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
679
+ * @return {!proto.scanoss.api.components.v2.CompStatistic.Language}
680
+ */
681
+ proto.scanoss.api.components.v2.CompStatistic.Language.deserializeBinary = function (bytes) {
682
+ var reader = new jspb.BinaryReader(bytes);
683
+ var msg = new proto.scanoss.api.components.v2.CompStatistic.Language;
684
+ return proto.scanoss.api.components.v2.CompStatistic.Language.deserializeBinaryFromReader(msg, reader);
685
+ };
686
+ /**
687
+ * Deserializes binary data (in protobuf wire format) from the
688
+ * given reader into the given message object.
689
+ * @param {!proto.scanoss.api.components.v2.CompStatistic.Language} msg The message object to deserialize into.
690
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
691
+ * @return {!proto.scanoss.api.components.v2.CompStatistic.Language}
692
+ */
693
+ proto.scanoss.api.components.v2.CompStatistic.Language.deserializeBinaryFromReader = function (msg, reader) {
694
+ while (reader.nextField()) {
695
+ if (reader.isEndGroup()) {
696
+ break;
697
+ }
698
+ var field = reader.getFieldNumber();
699
+ switch (field) {
700
+ case 1:
701
+ var value = /** @type {string} */ (reader.readString());
702
+ msg.setName(value);
703
+ break;
704
+ case 2:
705
+ var value = /** @type {number} */ (reader.readInt32());
706
+ msg.setFiles(value);
707
+ break;
708
+ default:
709
+ reader.skipField();
710
+ break;
711
+ }
712
+ }
713
+ return msg;
714
+ };
715
+ /**
716
+ * Serializes the message to binary data (in protobuf wire format).
717
+ * @return {!Uint8Array}
718
+ */
719
+ proto.scanoss.api.components.v2.CompStatistic.Language.prototype.serializeBinary = function () {
720
+ var writer = new jspb.BinaryWriter();
721
+ proto.scanoss.api.components.v2.CompStatistic.Language.serializeBinaryToWriter(this, writer);
722
+ return writer.getResultBuffer();
723
+ };
724
+ /**
725
+ * Serializes the given message to binary data (in protobuf wire
726
+ * format), writing to the given BinaryWriter.
727
+ * @param {!proto.scanoss.api.components.v2.CompStatistic.Language} message
728
+ * @param {!jspb.BinaryWriter} writer
729
+ * @suppress {unusedLocalVariables} f is only used for nested messages
730
+ */
731
+ proto.scanoss.api.components.v2.CompStatistic.Language.serializeBinaryToWriter = function (message, writer) {
732
+ var f = undefined;
733
+ f = message.getName();
734
+ if (f.length > 0) {
735
+ writer.writeString(1, f);
736
+ }
737
+ f = message.getFiles();
738
+ if (f !== 0) {
739
+ writer.writeInt32(2, f);
740
+ }
741
+ };
742
+ /**
743
+ * optional string name = 1;
744
+ * @return {string}
745
+ */
746
+ proto.scanoss.api.components.v2.CompStatistic.Language.prototype.getName = function () {
747
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
748
+ };
749
+ /**
750
+ * @param {string} value
751
+ * @return {!proto.scanoss.api.components.v2.CompStatistic.Language} returns this
752
+ */
753
+ proto.scanoss.api.components.v2.CompStatistic.Language.prototype.setName = function (value) {
754
+ return jspb.Message.setProto3StringField(this, 1, value);
755
+ };
756
+ /**
757
+ * optional int32 files = 2;
758
+ * @return {number}
759
+ */
760
+ proto.scanoss.api.components.v2.CompStatistic.Language.prototype.getFiles = function () {
761
+ return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
762
+ };
763
+ /**
764
+ * @param {number} value
765
+ * @return {!proto.scanoss.api.components.v2.CompStatistic.Language} returns this
766
+ */
767
+ proto.scanoss.api.components.v2.CompStatistic.Language.prototype.setFiles = function (value) {
768
+ return jspb.Message.setProto3IntField(this, 2, value);
769
+ };
770
+ /**
771
+ * optional int32 total_source_files = 1;
772
+ * @return {number}
773
+ */
774
+ proto.scanoss.api.components.v2.CompStatistic.prototype.getTotalSourceFiles = function () {
775
+ return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
776
+ };
777
+ /**
778
+ * @param {number} value
779
+ * @return {!proto.scanoss.api.components.v2.CompStatistic} returns this
780
+ */
781
+ proto.scanoss.api.components.v2.CompStatistic.prototype.setTotalSourceFiles = function (value) {
782
+ return jspb.Message.setProto3IntField(this, 1, value);
783
+ };
784
+ /**
785
+ * optional int32 total_lines = 2;
786
+ * @return {number}
787
+ */
788
+ proto.scanoss.api.components.v2.CompStatistic.prototype.getTotalLines = function () {
789
+ return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
790
+ };
791
+ /**
792
+ * @param {number} value
793
+ * @return {!proto.scanoss.api.components.v2.CompStatistic} returns this
794
+ */
795
+ proto.scanoss.api.components.v2.CompStatistic.prototype.setTotalLines = function (value) {
796
+ return jspb.Message.setProto3IntField(this, 2, value);
797
+ };
798
+ /**
799
+ * optional int32 total_blank_lines = 3;
800
+ * @return {number}
801
+ */
802
+ proto.scanoss.api.components.v2.CompStatistic.prototype.getTotalBlankLines = function () {
803
+ return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
804
+ };
805
+ /**
806
+ * @param {number} value
807
+ * @return {!proto.scanoss.api.components.v2.CompStatistic} returns this
808
+ */
809
+ proto.scanoss.api.components.v2.CompStatistic.prototype.setTotalBlankLines = function (value) {
810
+ return jspb.Message.setProto3IntField(this, 3, value);
811
+ };
812
+ /**
813
+ * repeated Language languages = 4;
814
+ * @return {!Array<!proto.scanoss.api.components.v2.CompStatistic.Language>}
815
+ */
816
+ proto.scanoss.api.components.v2.CompStatistic.prototype.getLanguagesList = function () {
817
+ return /** @type{!Array<!proto.scanoss.api.components.v2.CompStatistic.Language>} */ (jspb.Message.getRepeatedWrapperField(this, proto.scanoss.api.components.v2.CompStatistic.Language, 4));
818
+ };
819
+ /**
820
+ * @param {!Array<!proto.scanoss.api.components.v2.CompStatistic.Language>} value
821
+ * @return {!proto.scanoss.api.components.v2.CompStatistic} returns this
822
+ */
823
+ proto.scanoss.api.components.v2.CompStatistic.prototype.setLanguagesList = function (value) {
824
+ return jspb.Message.setRepeatedWrapperField(this, 4, value);
825
+ };
826
+ /**
827
+ * @param {!proto.scanoss.api.components.v2.CompStatistic.Language=} opt_value
828
+ * @param {number=} opt_index
829
+ * @return {!proto.scanoss.api.components.v2.CompStatistic.Language}
830
+ */
831
+ proto.scanoss.api.components.v2.CompStatistic.prototype.addLanguages = function (opt_value, opt_index) {
832
+ return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.scanoss.api.components.v2.CompStatistic.Language, opt_index);
833
+ };
834
+ /**
835
+ * Clears the list making it empty but non-null.
836
+ * @return {!proto.scanoss.api.components.v2.CompStatistic} returns this
837
+ */
838
+ proto.scanoss.api.components.v2.CompStatistic.prototype.clearLanguagesList = function () {
839
+ return this.setLanguagesList([]);
840
+ };
841
+ /**
842
+ * List of repeated fields within this message type.
843
+ * @private {!Array<number>}
844
+ * @const
845
+ */
846
+ proto.scanoss.api.components.v2.CompStatisticResponse.repeatedFields_ = [1];
847
+ if (jspb.Message.GENERATE_TO_OBJECT) {
848
+ /**
849
+ * Creates an object representation of this proto.
850
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
851
+ * Optional fields that are not set will be set to undefined.
852
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
853
+ * For the list of reserved names please see:
854
+ * net/proto2/compiler/js/internal/generator.cc#kKeyword.
855
+ * @param {boolean=} opt_includeInstance Deprecated. whether to include the
856
+ * JSPB instance for transitional soy proto support:
857
+ * http://goto/soy-param-migration
858
+ * @return {!Object}
859
+ */
860
+ proto.scanoss.api.components.v2.CompStatisticResponse.prototype.toObject = function (opt_includeInstance) {
861
+ return proto.scanoss.api.components.v2.CompStatisticResponse.toObject(opt_includeInstance, this);
862
+ };
863
+ /**
864
+ * Static version of the {@see toObject} method.
865
+ * @param {boolean|undefined} includeInstance Deprecated. Whether to include
866
+ * the JSPB instance for transitional soy proto support:
867
+ * http://goto/soy-param-migration
868
+ * @param {!proto.scanoss.api.components.v2.CompStatisticResponse} msg The msg instance to transform.
869
+ * @return {!Object}
870
+ * @suppress {unusedLocalVariables} f is only used for nested messages
871
+ */
872
+ proto.scanoss.api.components.v2.CompStatisticResponse.toObject = function (includeInstance, msg) {
873
+ var f, obj = {
874
+ purlsList: jspb.Message.toObjectList(msg.getPurlsList(), proto.scanoss.api.components.v2.CompStatisticResponse.Purls.toObject, includeInstance),
875
+ status: (f = msg.getStatus()) && scanoss_api_common_v2_scanoss$common_pb.StatusResponse.toObject(includeInstance, f)
876
+ };
877
+ if (includeInstance) {
878
+ obj.$jspbMessageInstance = msg;
879
+ }
880
+ return obj;
881
+ };
882
+ }
883
+ /**
884
+ * Deserializes binary data (in protobuf wire format).
885
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
886
+ * @return {!proto.scanoss.api.components.v2.CompStatisticResponse}
887
+ */
888
+ proto.scanoss.api.components.v2.CompStatisticResponse.deserializeBinary = function (bytes) {
889
+ var reader = new jspb.BinaryReader(bytes);
890
+ var msg = new proto.scanoss.api.components.v2.CompStatisticResponse;
891
+ return proto.scanoss.api.components.v2.CompStatisticResponse.deserializeBinaryFromReader(msg, reader);
892
+ };
893
+ /**
894
+ * Deserializes binary data (in protobuf wire format) from the
895
+ * given reader into the given message object.
896
+ * @param {!proto.scanoss.api.components.v2.CompStatisticResponse} msg The message object to deserialize into.
897
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
898
+ * @return {!proto.scanoss.api.components.v2.CompStatisticResponse}
899
+ */
900
+ proto.scanoss.api.components.v2.CompStatisticResponse.deserializeBinaryFromReader = function (msg, reader) {
901
+ while (reader.nextField()) {
902
+ if (reader.isEndGroup()) {
903
+ break;
904
+ }
905
+ var field = reader.getFieldNumber();
906
+ switch (field) {
907
+ case 1:
908
+ var value = new proto.scanoss.api.components.v2.CompStatisticResponse.Purls;
909
+ reader.readMessage(value, proto.scanoss.api.components.v2.CompStatisticResponse.Purls.deserializeBinaryFromReader);
910
+ msg.addPurls(value);
911
+ break;
912
+ case 2:
913
+ var value = new scanoss_api_common_v2_scanoss$common_pb.StatusResponse;
914
+ reader.readMessage(value, scanoss_api_common_v2_scanoss$common_pb.StatusResponse.deserializeBinaryFromReader);
915
+ msg.setStatus(value);
916
+ break;
917
+ default:
918
+ reader.skipField();
919
+ break;
920
+ }
921
+ }
922
+ return msg;
923
+ };
924
+ /**
925
+ * Serializes the message to binary data (in protobuf wire format).
926
+ * @return {!Uint8Array}
927
+ */
928
+ proto.scanoss.api.components.v2.CompStatisticResponse.prototype.serializeBinary = function () {
929
+ var writer = new jspb.BinaryWriter();
930
+ proto.scanoss.api.components.v2.CompStatisticResponse.serializeBinaryToWriter(this, writer);
931
+ return writer.getResultBuffer();
932
+ };
933
+ /**
934
+ * Serializes the given message to binary data (in protobuf wire
935
+ * format), writing to the given BinaryWriter.
936
+ * @param {!proto.scanoss.api.components.v2.CompStatisticResponse} message
937
+ * @param {!jspb.BinaryWriter} writer
938
+ * @suppress {unusedLocalVariables} f is only used for nested messages
939
+ */
940
+ proto.scanoss.api.components.v2.CompStatisticResponse.serializeBinaryToWriter = function (message, writer) {
941
+ var f = undefined;
942
+ f = message.getPurlsList();
943
+ if (f.length > 0) {
944
+ writer.writeRepeatedMessage(1, f, proto.scanoss.api.components.v2.CompStatisticResponse.Purls.serializeBinaryToWriter);
945
+ }
946
+ f = message.getStatus();
947
+ if (f != null) {
948
+ writer.writeMessage(2, f, scanoss_api_common_v2_scanoss$common_pb.StatusResponse.serializeBinaryToWriter);
949
+ }
950
+ };
951
+ if (jspb.Message.GENERATE_TO_OBJECT) {
952
+ /**
953
+ * Creates an object representation of this proto.
954
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
955
+ * Optional fields that are not set will be set to undefined.
956
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
957
+ * For the list of reserved names please see:
958
+ * net/proto2/compiler/js/internal/generator.cc#kKeyword.
959
+ * @param {boolean=} opt_includeInstance Deprecated. whether to include the
960
+ * JSPB instance for transitional soy proto support:
961
+ * http://goto/soy-param-migration
962
+ * @return {!Object}
963
+ */
964
+ proto.scanoss.api.components.v2.CompStatisticResponse.Purls.prototype.toObject = function (opt_includeInstance) {
965
+ return proto.scanoss.api.components.v2.CompStatisticResponse.Purls.toObject(opt_includeInstance, this);
966
+ };
967
+ /**
968
+ * Static version of the {@see toObject} method.
969
+ * @param {boolean|undefined} includeInstance Deprecated. Whether to include
970
+ * the JSPB instance for transitional soy proto support:
971
+ * http://goto/soy-param-migration
972
+ * @param {!proto.scanoss.api.components.v2.CompStatisticResponse.Purls} msg The msg instance to transform.
973
+ * @return {!Object}
974
+ * @suppress {unusedLocalVariables} f is only used for nested messages
975
+ */
976
+ proto.scanoss.api.components.v2.CompStatisticResponse.Purls.toObject = function (includeInstance, msg) {
977
+ var f, obj = {
978
+ purl: jspb.Message.getFieldWithDefault(msg, 1, ""),
979
+ version: jspb.Message.getFieldWithDefault(msg, 2, ""),
980
+ statistics: (f = msg.getStatistics()) && proto.scanoss.api.components.v2.CompStatistic.toObject(includeInstance, f)
981
+ };
982
+ if (includeInstance) {
983
+ obj.$jspbMessageInstance = msg;
984
+ }
985
+ return obj;
986
+ };
987
+ }
988
+ /**
989
+ * Deserializes binary data (in protobuf wire format).
990
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
991
+ * @return {!proto.scanoss.api.components.v2.CompStatisticResponse.Purls}
992
+ */
993
+ proto.scanoss.api.components.v2.CompStatisticResponse.Purls.deserializeBinary = function (bytes) {
994
+ var reader = new jspb.BinaryReader(bytes);
995
+ var msg = new proto.scanoss.api.components.v2.CompStatisticResponse.Purls;
996
+ return proto.scanoss.api.components.v2.CompStatisticResponse.Purls.deserializeBinaryFromReader(msg, reader);
997
+ };
998
+ /**
999
+ * Deserializes binary data (in protobuf wire format) from the
1000
+ * given reader into the given message object.
1001
+ * @param {!proto.scanoss.api.components.v2.CompStatisticResponse.Purls} msg The message object to deserialize into.
1002
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
1003
+ * @return {!proto.scanoss.api.components.v2.CompStatisticResponse.Purls}
1004
+ */
1005
+ proto.scanoss.api.components.v2.CompStatisticResponse.Purls.deserializeBinaryFromReader = function (msg, reader) {
1006
+ while (reader.nextField()) {
1007
+ if (reader.isEndGroup()) {
1008
+ break;
1009
+ }
1010
+ var field = reader.getFieldNumber();
1011
+ switch (field) {
1012
+ case 1:
1013
+ var value = /** @type {string} */ (reader.readString());
1014
+ msg.setPurl(value);
1015
+ break;
1016
+ case 2:
1017
+ var value = /** @type {string} */ (reader.readString());
1018
+ msg.setVersion(value);
1019
+ break;
1020
+ case 3:
1021
+ var value = new proto.scanoss.api.components.v2.CompStatistic;
1022
+ reader.readMessage(value, proto.scanoss.api.components.v2.CompStatistic.deserializeBinaryFromReader);
1023
+ msg.setStatistics(value);
1024
+ break;
1025
+ default:
1026
+ reader.skipField();
1027
+ break;
1028
+ }
1029
+ }
1030
+ return msg;
1031
+ };
1032
+ /**
1033
+ * Serializes the message to binary data (in protobuf wire format).
1034
+ * @return {!Uint8Array}
1035
+ */
1036
+ proto.scanoss.api.components.v2.CompStatisticResponse.Purls.prototype.serializeBinary = function () {
1037
+ var writer = new jspb.BinaryWriter();
1038
+ proto.scanoss.api.components.v2.CompStatisticResponse.Purls.serializeBinaryToWriter(this, writer);
1039
+ return writer.getResultBuffer();
1040
+ };
1041
+ /**
1042
+ * Serializes the given message to binary data (in protobuf wire
1043
+ * format), writing to the given BinaryWriter.
1044
+ * @param {!proto.scanoss.api.components.v2.CompStatisticResponse.Purls} message
1045
+ * @param {!jspb.BinaryWriter} writer
1046
+ * @suppress {unusedLocalVariables} f is only used for nested messages
1047
+ */
1048
+ proto.scanoss.api.components.v2.CompStatisticResponse.Purls.serializeBinaryToWriter = function (message, writer) {
1049
+ var f = undefined;
1050
+ f = message.getPurl();
1051
+ if (f.length > 0) {
1052
+ writer.writeString(1, f);
1053
+ }
1054
+ f = message.getVersion();
1055
+ if (f.length > 0) {
1056
+ writer.writeString(2, f);
1057
+ }
1058
+ f = message.getStatistics();
1059
+ if (f != null) {
1060
+ writer.writeMessage(3, f, proto.scanoss.api.components.v2.CompStatistic.serializeBinaryToWriter);
1061
+ }
1062
+ };
1063
+ /**
1064
+ * optional string purl = 1;
1065
+ * @return {string}
1066
+ */
1067
+ proto.scanoss.api.components.v2.CompStatisticResponse.Purls.prototype.getPurl = function () {
1068
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
1069
+ };
1070
+ /**
1071
+ * @param {string} value
1072
+ * @return {!proto.scanoss.api.components.v2.CompStatisticResponse.Purls} returns this
1073
+ */
1074
+ proto.scanoss.api.components.v2.CompStatisticResponse.Purls.prototype.setPurl = function (value) {
1075
+ return jspb.Message.setProto3StringField(this, 1, value);
1076
+ };
1077
+ /**
1078
+ * optional string version = 2;
1079
+ * @return {string}
1080
+ */
1081
+ proto.scanoss.api.components.v2.CompStatisticResponse.Purls.prototype.getVersion = function () {
1082
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
1083
+ };
1084
+ /**
1085
+ * @param {string} value
1086
+ * @return {!proto.scanoss.api.components.v2.CompStatisticResponse.Purls} returns this
1087
+ */
1088
+ proto.scanoss.api.components.v2.CompStatisticResponse.Purls.prototype.setVersion = function (value) {
1089
+ return jspb.Message.setProto3StringField(this, 2, value);
1090
+ };
1091
+ /**
1092
+ * optional CompStatistic statistics = 3;
1093
+ * @return {?proto.scanoss.api.components.v2.CompStatistic}
1094
+ */
1095
+ proto.scanoss.api.components.v2.CompStatisticResponse.Purls.prototype.getStatistics = function () {
1096
+ return /** @type{?proto.scanoss.api.components.v2.CompStatistic} */ (jspb.Message.getWrapperField(this, proto.scanoss.api.components.v2.CompStatistic, 3));
1097
+ };
1098
+ /**
1099
+ * @param {?proto.scanoss.api.components.v2.CompStatistic|undefined} value
1100
+ * @return {!proto.scanoss.api.components.v2.CompStatisticResponse.Purls} returns this
1101
+ */
1102
+ proto.scanoss.api.components.v2.CompStatisticResponse.Purls.prototype.setStatistics = function (value) {
1103
+ return jspb.Message.setWrapperField(this, 3, value);
1104
+ };
1105
+ /**
1106
+ * Clears the message field making it undefined.
1107
+ * @return {!proto.scanoss.api.components.v2.CompStatisticResponse.Purls} returns this
1108
+ */
1109
+ proto.scanoss.api.components.v2.CompStatisticResponse.Purls.prototype.clearStatistics = function () {
1110
+ return this.setStatistics(undefined);
1111
+ };
1112
+ /**
1113
+ * Returns whether this field is set.
1114
+ * @return {boolean}
1115
+ */
1116
+ proto.scanoss.api.components.v2.CompStatisticResponse.Purls.prototype.hasStatistics = function () {
1117
+ return jspb.Message.getField(this, 3) != null;
1118
+ };
1119
+ /**
1120
+ * repeated Purls purls = 1;
1121
+ * @return {!Array<!proto.scanoss.api.components.v2.CompStatisticResponse.Purls>}
1122
+ */
1123
+ proto.scanoss.api.components.v2.CompStatisticResponse.prototype.getPurlsList = function () {
1124
+ return /** @type{!Array<!proto.scanoss.api.components.v2.CompStatisticResponse.Purls>} */ (jspb.Message.getRepeatedWrapperField(this, proto.scanoss.api.components.v2.CompStatisticResponse.Purls, 1));
1125
+ };
1126
+ /**
1127
+ * @param {!Array<!proto.scanoss.api.components.v2.CompStatisticResponse.Purls>} value
1128
+ * @return {!proto.scanoss.api.components.v2.CompStatisticResponse} returns this
1129
+ */
1130
+ proto.scanoss.api.components.v2.CompStatisticResponse.prototype.setPurlsList = function (value) {
1131
+ return jspb.Message.setRepeatedWrapperField(this, 1, value);
1132
+ };
1133
+ /**
1134
+ * @param {!proto.scanoss.api.components.v2.CompStatisticResponse.Purls=} opt_value
1135
+ * @param {number=} opt_index
1136
+ * @return {!proto.scanoss.api.components.v2.CompStatisticResponse.Purls}
1137
+ */
1138
+ proto.scanoss.api.components.v2.CompStatisticResponse.prototype.addPurls = function (opt_value, opt_index) {
1139
+ return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.scanoss.api.components.v2.CompStatisticResponse.Purls, opt_index);
1140
+ };
1141
+ /**
1142
+ * Clears the list making it empty but non-null.
1143
+ * @return {!proto.scanoss.api.components.v2.CompStatisticResponse} returns this
1144
+ */
1145
+ proto.scanoss.api.components.v2.CompStatisticResponse.prototype.clearPurlsList = function () {
1146
+ return this.setPurlsList([]);
1147
+ };
1148
+ /**
1149
+ * optional scanoss.api.common.v2.StatusResponse status = 2;
1150
+ * @return {?proto.scanoss.api.common.v2.StatusResponse}
1151
+ */
1152
+ proto.scanoss.api.components.v2.CompStatisticResponse.prototype.getStatus = function () {
1153
+ return /** @type{?proto.scanoss.api.common.v2.StatusResponse} */ (jspb.Message.getWrapperField(this, scanoss_api_common_v2_scanoss$common_pb.StatusResponse, 2));
1154
+ };
1155
+ /**
1156
+ * @param {?proto.scanoss.api.common.v2.StatusResponse|undefined} value
1157
+ * @return {!proto.scanoss.api.components.v2.CompStatisticResponse} returns this
1158
+ */
1159
+ proto.scanoss.api.components.v2.CompStatisticResponse.prototype.setStatus = function (value) {
1160
+ return jspb.Message.setWrapperField(this, 2, value);
1161
+ };
1162
+ /**
1163
+ * Clears the message field making it undefined.
1164
+ * @return {!proto.scanoss.api.components.v2.CompStatisticResponse} returns this
1165
+ */
1166
+ proto.scanoss.api.components.v2.CompStatisticResponse.prototype.clearStatus = function () {
1167
+ return this.setStatus(undefined);
1168
+ };
1169
+ /**
1170
+ * Returns whether this field is set.
1171
+ * @return {boolean}
1172
+ */
1173
+ proto.scanoss.api.components.v2.CompStatisticResponse.prototype.hasStatus = function () {
1174
+ return jspb.Message.getField(this, 2) != null;
1175
+ };
1176
+ /**
1177
+ * List of repeated fields within this message type.
1178
+ * @private {!Array<number>}
1179
+ * @const
1180
+ */
1181
+ proto.scanoss.api.components.v2.CompSearchResponse.repeatedFields_ = [1];
1182
+ if (jspb.Message.GENERATE_TO_OBJECT) {
1183
+ /**
1184
+ * Creates an object representation of this proto.
1185
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
1186
+ * Optional fields that are not set will be set to undefined.
1187
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
1188
+ * For the list of reserved names please see:
1189
+ * net/proto2/compiler/js/internal/generator.cc#kKeyword.
1190
+ * @param {boolean=} opt_includeInstance Deprecated. whether to include the
1191
+ * JSPB instance for transitional soy proto support:
1192
+ * http://goto/soy-param-migration
1193
+ * @return {!Object}
1194
+ */
1195
+ proto.scanoss.api.components.v2.CompSearchResponse.prototype.toObject = function (opt_includeInstance) {
1196
+ return proto.scanoss.api.components.v2.CompSearchResponse.toObject(opt_includeInstance, this);
1197
+ };
1198
+ /**
1199
+ * Static version of the {@see toObject} method.
1200
+ * @param {boolean|undefined} includeInstance Deprecated. Whether to include
1201
+ * the JSPB instance for transitional soy proto support:
1202
+ * http://goto/soy-param-migration
1203
+ * @param {!proto.scanoss.api.components.v2.CompSearchResponse} msg The msg instance to transform.
1204
+ * @return {!Object}
1205
+ * @suppress {unusedLocalVariables} f is only used for nested messages
1206
+ */
1207
+ proto.scanoss.api.components.v2.CompSearchResponse.toObject = function (includeInstance, msg) {
1208
+ var f, obj = {
1209
+ componentsList: jspb.Message.toObjectList(msg.getComponentsList(), proto.scanoss.api.components.v2.CompSearchResponse.Component.toObject, includeInstance),
1210
+ status: (f = msg.getStatus()) && scanoss_api_common_v2_scanoss$common_pb.StatusResponse.toObject(includeInstance, f)
1211
+ };
1212
+ if (includeInstance) {
1213
+ obj.$jspbMessageInstance = msg;
1214
+ }
1215
+ return obj;
1216
+ };
1217
+ }
1218
+ /**
1219
+ * Deserializes binary data (in protobuf wire format).
1220
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
1221
+ * @return {!proto.scanoss.api.components.v2.CompSearchResponse}
1222
+ */
1223
+ proto.scanoss.api.components.v2.CompSearchResponse.deserializeBinary = function (bytes) {
1224
+ var reader = new jspb.BinaryReader(bytes);
1225
+ var msg = new proto.scanoss.api.components.v2.CompSearchResponse;
1226
+ return proto.scanoss.api.components.v2.CompSearchResponse.deserializeBinaryFromReader(msg, reader);
1227
+ };
1228
+ /**
1229
+ * Deserializes binary data (in protobuf wire format) from the
1230
+ * given reader into the given message object.
1231
+ * @param {!proto.scanoss.api.components.v2.CompSearchResponse} msg The message object to deserialize into.
1232
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
1233
+ * @return {!proto.scanoss.api.components.v2.CompSearchResponse}
1234
+ */
1235
+ proto.scanoss.api.components.v2.CompSearchResponse.deserializeBinaryFromReader = function (msg, reader) {
1236
+ while (reader.nextField()) {
1237
+ if (reader.isEndGroup()) {
1238
+ break;
1239
+ }
1240
+ var field = reader.getFieldNumber();
1241
+ switch (field) {
1242
+ case 1:
1243
+ var value = new proto.scanoss.api.components.v2.CompSearchResponse.Component;
1244
+ reader.readMessage(value, proto.scanoss.api.components.v2.CompSearchResponse.Component.deserializeBinaryFromReader);
1245
+ msg.addComponents(value);
1246
+ break;
1247
+ case 2:
1248
+ var value = new scanoss_api_common_v2_scanoss$common_pb.StatusResponse;
1249
+ reader.readMessage(value, scanoss_api_common_v2_scanoss$common_pb.StatusResponse.deserializeBinaryFromReader);
1250
+ msg.setStatus(value);
1251
+ break;
1252
+ default:
1253
+ reader.skipField();
1254
+ break;
1255
+ }
1256
+ }
1257
+ return msg;
1258
+ };
1259
+ /**
1260
+ * Serializes the message to binary data (in protobuf wire format).
1261
+ * @return {!Uint8Array}
1262
+ */
1263
+ proto.scanoss.api.components.v2.CompSearchResponse.prototype.serializeBinary = function () {
1264
+ var writer = new jspb.BinaryWriter();
1265
+ proto.scanoss.api.components.v2.CompSearchResponse.serializeBinaryToWriter(this, writer);
1266
+ return writer.getResultBuffer();
1267
+ };
1268
+ /**
1269
+ * Serializes the given message to binary data (in protobuf wire
1270
+ * format), writing to the given BinaryWriter.
1271
+ * @param {!proto.scanoss.api.components.v2.CompSearchResponse} message
1272
+ * @param {!jspb.BinaryWriter} writer
1273
+ * @suppress {unusedLocalVariables} f is only used for nested messages
1274
+ */
1275
+ proto.scanoss.api.components.v2.CompSearchResponse.serializeBinaryToWriter = function (message, writer) {
1276
+ var f = undefined;
1277
+ f = message.getComponentsList();
1278
+ if (f.length > 0) {
1279
+ writer.writeRepeatedMessage(1, f, proto.scanoss.api.components.v2.CompSearchResponse.Component.serializeBinaryToWriter);
1280
+ }
1281
+ f = message.getStatus();
1282
+ if (f != null) {
1283
+ writer.writeMessage(2, f, scanoss_api_common_v2_scanoss$common_pb.StatusResponse.serializeBinaryToWriter);
1284
+ }
1285
+ };
1286
+ if (jspb.Message.GENERATE_TO_OBJECT) {
1287
+ /**
1288
+ * Creates an object representation of this proto.
1289
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
1290
+ * Optional fields that are not set will be set to undefined.
1291
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
1292
+ * For the list of reserved names please see:
1293
+ * net/proto2/compiler/js/internal/generator.cc#kKeyword.
1294
+ * @param {boolean=} opt_includeInstance Deprecated. whether to include the
1295
+ * JSPB instance for transitional soy proto support:
1296
+ * http://goto/soy-param-migration
1297
+ * @return {!Object}
1298
+ */
1299
+ proto.scanoss.api.components.v2.CompSearchResponse.Component.prototype.toObject = function (opt_includeInstance) {
1300
+ return proto.scanoss.api.components.v2.CompSearchResponse.Component.toObject(opt_includeInstance, this);
1301
+ };
1302
+ /**
1303
+ * Static version of the {@see toObject} method.
1304
+ * @param {boolean|undefined} includeInstance Deprecated. Whether to include
1305
+ * the JSPB instance for transitional soy proto support:
1306
+ * http://goto/soy-param-migration
1307
+ * @param {!proto.scanoss.api.components.v2.CompSearchResponse.Component} msg The msg instance to transform.
1308
+ * @return {!Object}
1309
+ * @suppress {unusedLocalVariables} f is only used for nested messages
1310
+ */
1311
+ proto.scanoss.api.components.v2.CompSearchResponse.Component.toObject = function (includeInstance, msg) {
1312
+ var f, obj = {
1313
+ component: jspb.Message.getFieldWithDefault(msg, 1, ""),
1314
+ purl: jspb.Message.getFieldWithDefault(msg, 2, ""),
1315
+ url: jspb.Message.getFieldWithDefault(msg, 3, "")
1316
+ };
1317
+ if (includeInstance) {
1318
+ obj.$jspbMessageInstance = msg;
1319
+ }
1320
+ return obj;
1321
+ };
1322
+ }
1323
+ /**
1324
+ * Deserializes binary data (in protobuf wire format).
1325
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
1326
+ * @return {!proto.scanoss.api.components.v2.CompSearchResponse.Component}
1327
+ */
1328
+ proto.scanoss.api.components.v2.CompSearchResponse.Component.deserializeBinary = function (bytes) {
1329
+ var reader = new jspb.BinaryReader(bytes);
1330
+ var msg = new proto.scanoss.api.components.v2.CompSearchResponse.Component;
1331
+ return proto.scanoss.api.components.v2.CompSearchResponse.Component.deserializeBinaryFromReader(msg, reader);
1332
+ };
1333
+ /**
1334
+ * Deserializes binary data (in protobuf wire format) from the
1335
+ * given reader into the given message object.
1336
+ * @param {!proto.scanoss.api.components.v2.CompSearchResponse.Component} msg The message object to deserialize into.
1337
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
1338
+ * @return {!proto.scanoss.api.components.v2.CompSearchResponse.Component}
1339
+ */
1340
+ proto.scanoss.api.components.v2.CompSearchResponse.Component.deserializeBinaryFromReader = function (msg, reader) {
1341
+ while (reader.nextField()) {
1342
+ if (reader.isEndGroup()) {
1343
+ break;
1344
+ }
1345
+ var field = reader.getFieldNumber();
1346
+ switch (field) {
1347
+ case 1:
1348
+ var value = /** @type {string} */ (reader.readString());
1349
+ msg.setComponent(value);
1350
+ break;
1351
+ case 2:
1352
+ var value = /** @type {string} */ (reader.readString());
1353
+ msg.setPurl(value);
1354
+ break;
1355
+ case 3:
1356
+ var value = /** @type {string} */ (reader.readString());
1357
+ msg.setUrl(value);
1358
+ break;
1359
+ default:
1360
+ reader.skipField();
1361
+ break;
1362
+ }
1363
+ }
1364
+ return msg;
1365
+ };
1366
+ /**
1367
+ * Serializes the message to binary data (in protobuf wire format).
1368
+ * @return {!Uint8Array}
1369
+ */
1370
+ proto.scanoss.api.components.v2.CompSearchResponse.Component.prototype.serializeBinary = function () {
1371
+ var writer = new jspb.BinaryWriter();
1372
+ proto.scanoss.api.components.v2.CompSearchResponse.Component.serializeBinaryToWriter(this, writer);
1373
+ return writer.getResultBuffer();
1374
+ };
1375
+ /**
1376
+ * Serializes the given message to binary data (in protobuf wire
1377
+ * format), writing to the given BinaryWriter.
1378
+ * @param {!proto.scanoss.api.components.v2.CompSearchResponse.Component} message
1379
+ * @param {!jspb.BinaryWriter} writer
1380
+ * @suppress {unusedLocalVariables} f is only used for nested messages
1381
+ */
1382
+ proto.scanoss.api.components.v2.CompSearchResponse.Component.serializeBinaryToWriter = function (message, writer) {
1383
+ var f = undefined;
1384
+ f = message.getComponent();
1385
+ if (f.length > 0) {
1386
+ writer.writeString(1, f);
1387
+ }
1388
+ f = message.getPurl();
1389
+ if (f.length > 0) {
1390
+ writer.writeString(2, f);
1391
+ }
1392
+ f = message.getUrl();
1393
+ if (f.length > 0) {
1394
+ writer.writeString(3, f);
1395
+ }
1396
+ };
1397
+ /**
1398
+ * optional string component = 1;
1399
+ * @return {string}
1400
+ */
1401
+ proto.scanoss.api.components.v2.CompSearchResponse.Component.prototype.getComponent = function () {
1402
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
1403
+ };
1404
+ /**
1405
+ * @param {string} value
1406
+ * @return {!proto.scanoss.api.components.v2.CompSearchResponse.Component} returns this
1407
+ */
1408
+ proto.scanoss.api.components.v2.CompSearchResponse.Component.prototype.setComponent = function (value) {
1409
+ return jspb.Message.setProto3StringField(this, 1, value);
1410
+ };
1411
+ /**
1412
+ * optional string purl = 2;
1413
+ * @return {string}
1414
+ */
1415
+ proto.scanoss.api.components.v2.CompSearchResponse.Component.prototype.getPurl = function () {
1416
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
1417
+ };
1418
+ /**
1419
+ * @param {string} value
1420
+ * @return {!proto.scanoss.api.components.v2.CompSearchResponse.Component} returns this
1421
+ */
1422
+ proto.scanoss.api.components.v2.CompSearchResponse.Component.prototype.setPurl = function (value) {
1423
+ return jspb.Message.setProto3StringField(this, 2, value);
1424
+ };
1425
+ /**
1426
+ * optional string url = 3;
1427
+ * @return {string}
1428
+ */
1429
+ proto.scanoss.api.components.v2.CompSearchResponse.Component.prototype.getUrl = function () {
1430
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
1431
+ };
1432
+ /**
1433
+ * @param {string} value
1434
+ * @return {!proto.scanoss.api.components.v2.CompSearchResponse.Component} returns this
1435
+ */
1436
+ proto.scanoss.api.components.v2.CompSearchResponse.Component.prototype.setUrl = function (value) {
1437
+ return jspb.Message.setProto3StringField(this, 3, value);
1438
+ };
1439
+ /**
1440
+ * repeated Component components = 1;
1441
+ * @return {!Array<!proto.scanoss.api.components.v2.CompSearchResponse.Component>}
1442
+ */
1443
+ proto.scanoss.api.components.v2.CompSearchResponse.prototype.getComponentsList = function () {
1444
+ return /** @type{!Array<!proto.scanoss.api.components.v2.CompSearchResponse.Component>} */ (jspb.Message.getRepeatedWrapperField(this, proto.scanoss.api.components.v2.CompSearchResponse.Component, 1));
1445
+ };
1446
+ /**
1447
+ * @param {!Array<!proto.scanoss.api.components.v2.CompSearchResponse.Component>} value
1448
+ * @return {!proto.scanoss.api.components.v2.CompSearchResponse} returns this
1449
+ */
1450
+ proto.scanoss.api.components.v2.CompSearchResponse.prototype.setComponentsList = function (value) {
1451
+ return jspb.Message.setRepeatedWrapperField(this, 1, value);
1452
+ };
1453
+ /**
1454
+ * @param {!proto.scanoss.api.components.v2.CompSearchResponse.Component=} opt_value
1455
+ * @param {number=} opt_index
1456
+ * @return {!proto.scanoss.api.components.v2.CompSearchResponse.Component}
1457
+ */
1458
+ proto.scanoss.api.components.v2.CompSearchResponse.prototype.addComponents = function (opt_value, opt_index) {
1459
+ return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.scanoss.api.components.v2.CompSearchResponse.Component, opt_index);
1460
+ };
1461
+ /**
1462
+ * Clears the list making it empty but non-null.
1463
+ * @return {!proto.scanoss.api.components.v2.CompSearchResponse} returns this
1464
+ */
1465
+ proto.scanoss.api.components.v2.CompSearchResponse.prototype.clearComponentsList = function () {
1466
+ return this.setComponentsList([]);
1467
+ };
1468
+ /**
1469
+ * optional scanoss.api.common.v2.StatusResponse status = 2;
1470
+ * @return {?proto.scanoss.api.common.v2.StatusResponse}
1471
+ */
1472
+ proto.scanoss.api.components.v2.CompSearchResponse.prototype.getStatus = function () {
1473
+ return /** @type{?proto.scanoss.api.common.v2.StatusResponse} */ (jspb.Message.getWrapperField(this, scanoss_api_common_v2_scanoss$common_pb.StatusResponse, 2));
1474
+ };
1475
+ /**
1476
+ * @param {?proto.scanoss.api.common.v2.StatusResponse|undefined} value
1477
+ * @return {!proto.scanoss.api.components.v2.CompSearchResponse} returns this
1478
+ */
1479
+ proto.scanoss.api.components.v2.CompSearchResponse.prototype.setStatus = function (value) {
1480
+ return jspb.Message.setWrapperField(this, 2, value);
1481
+ };
1482
+ /**
1483
+ * Clears the message field making it undefined.
1484
+ * @return {!proto.scanoss.api.components.v2.CompSearchResponse} returns this
1485
+ */
1486
+ proto.scanoss.api.components.v2.CompSearchResponse.prototype.clearStatus = function () {
1487
+ return this.setStatus(undefined);
1488
+ };
1489
+ /**
1490
+ * Returns whether this field is set.
1491
+ * @return {boolean}
1492
+ */
1493
+ proto.scanoss.api.components.v2.CompSearchResponse.prototype.hasStatus = function () {
1494
+ return jspb.Message.getField(this, 2) != null;
1495
+ };
1496
+ if (jspb.Message.GENERATE_TO_OBJECT) {
1497
+ /**
1498
+ * Creates an object representation of this proto.
1499
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
1500
+ * Optional fields that are not set will be set to undefined.
1501
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
1502
+ * For the list of reserved names please see:
1503
+ * net/proto2/compiler/js/internal/generator.cc#kKeyword.
1504
+ * @param {boolean=} opt_includeInstance Deprecated. whether to include the
1505
+ * JSPB instance for transitional soy proto support:
1506
+ * http://goto/soy-param-migration
1507
+ * @return {!Object}
1508
+ */
1509
+ proto.scanoss.api.components.v2.CompVersionRequest.prototype.toObject = function (opt_includeInstance) {
1510
+ return proto.scanoss.api.components.v2.CompVersionRequest.toObject(opt_includeInstance, this);
1511
+ };
1512
+ /**
1513
+ * Static version of the {@see toObject} method.
1514
+ * @param {boolean|undefined} includeInstance Deprecated. Whether to include
1515
+ * the JSPB instance for transitional soy proto support:
1516
+ * http://goto/soy-param-migration
1517
+ * @param {!proto.scanoss.api.components.v2.CompVersionRequest} msg The msg instance to transform.
1518
+ * @return {!Object}
1519
+ * @suppress {unusedLocalVariables} f is only used for nested messages
1520
+ */
1521
+ proto.scanoss.api.components.v2.CompVersionRequest.toObject = function (includeInstance, msg) {
1522
+ var f, obj = {
1523
+ purl: jspb.Message.getFieldWithDefault(msg, 1, ""),
1524
+ limit: jspb.Message.getFieldWithDefault(msg, 2, 0)
1525
+ };
1526
+ if (includeInstance) {
1527
+ obj.$jspbMessageInstance = msg;
1528
+ }
1529
+ return obj;
1530
+ };
1531
+ }
1532
+ /**
1533
+ * Deserializes binary data (in protobuf wire format).
1534
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
1535
+ * @return {!proto.scanoss.api.components.v2.CompVersionRequest}
1536
+ */
1537
+ proto.scanoss.api.components.v2.CompVersionRequest.deserializeBinary = function (bytes) {
1538
+ var reader = new jspb.BinaryReader(bytes);
1539
+ var msg = new proto.scanoss.api.components.v2.CompVersionRequest;
1540
+ return proto.scanoss.api.components.v2.CompVersionRequest.deserializeBinaryFromReader(msg, reader);
1541
+ };
1542
+ /**
1543
+ * Deserializes binary data (in protobuf wire format) from the
1544
+ * given reader into the given message object.
1545
+ * @param {!proto.scanoss.api.components.v2.CompVersionRequest} msg The message object to deserialize into.
1546
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
1547
+ * @return {!proto.scanoss.api.components.v2.CompVersionRequest}
1548
+ */
1549
+ proto.scanoss.api.components.v2.CompVersionRequest.deserializeBinaryFromReader = function (msg, reader) {
1550
+ while (reader.nextField()) {
1551
+ if (reader.isEndGroup()) {
1552
+ break;
1553
+ }
1554
+ var field = reader.getFieldNumber();
1555
+ switch (field) {
1556
+ case 1:
1557
+ var value = /** @type {string} */ (reader.readString());
1558
+ msg.setPurl(value);
1559
+ break;
1560
+ case 2:
1561
+ var value = /** @type {number} */ (reader.readInt32());
1562
+ msg.setLimit(value);
1563
+ break;
1564
+ default:
1565
+ reader.skipField();
1566
+ break;
1567
+ }
1568
+ }
1569
+ return msg;
1570
+ };
1571
+ /**
1572
+ * Serializes the message to binary data (in protobuf wire format).
1573
+ * @return {!Uint8Array}
1574
+ */
1575
+ proto.scanoss.api.components.v2.CompVersionRequest.prototype.serializeBinary = function () {
1576
+ var writer = new jspb.BinaryWriter();
1577
+ proto.scanoss.api.components.v2.CompVersionRequest.serializeBinaryToWriter(this, writer);
1578
+ return writer.getResultBuffer();
1579
+ };
1580
+ /**
1581
+ * Serializes the given message to binary data (in protobuf wire
1582
+ * format), writing to the given BinaryWriter.
1583
+ * @param {!proto.scanoss.api.components.v2.CompVersionRequest} message
1584
+ * @param {!jspb.BinaryWriter} writer
1585
+ * @suppress {unusedLocalVariables} f is only used for nested messages
1586
+ */
1587
+ proto.scanoss.api.components.v2.CompVersionRequest.serializeBinaryToWriter = function (message, writer) {
1588
+ var f = undefined;
1589
+ f = message.getPurl();
1590
+ if (f.length > 0) {
1591
+ writer.writeString(1, f);
1592
+ }
1593
+ f = message.getLimit();
1594
+ if (f !== 0) {
1595
+ writer.writeInt32(2, f);
1596
+ }
1597
+ };
1598
+ /**
1599
+ * optional string purl = 1;
1600
+ * @return {string}
1601
+ */
1602
+ proto.scanoss.api.components.v2.CompVersionRequest.prototype.getPurl = function () {
1603
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
1604
+ };
1605
+ /**
1606
+ * @param {string} value
1607
+ * @return {!proto.scanoss.api.components.v2.CompVersionRequest} returns this
1608
+ */
1609
+ proto.scanoss.api.components.v2.CompVersionRequest.prototype.setPurl = function (value) {
1610
+ return jspb.Message.setProto3StringField(this, 1, value);
1611
+ };
1612
+ /**
1613
+ * optional int32 limit = 2;
1614
+ * @return {number}
1615
+ */
1616
+ proto.scanoss.api.components.v2.CompVersionRequest.prototype.getLimit = function () {
1617
+ return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
1618
+ };
1619
+ /**
1620
+ * @param {number} value
1621
+ * @return {!proto.scanoss.api.components.v2.CompVersionRequest} returns this
1622
+ */
1623
+ proto.scanoss.api.components.v2.CompVersionRequest.prototype.setLimit = function (value) {
1624
+ return jspb.Message.setProto3IntField(this, 2, value);
1625
+ };
1626
+ if (jspb.Message.GENERATE_TO_OBJECT) {
1627
+ /**
1628
+ * Creates an object representation of this proto.
1629
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
1630
+ * Optional fields that are not set will be set to undefined.
1631
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
1632
+ * For the list of reserved names please see:
1633
+ * net/proto2/compiler/js/internal/generator.cc#kKeyword.
1634
+ * @param {boolean=} opt_includeInstance Deprecated. whether to include the
1635
+ * JSPB instance for transitional soy proto support:
1636
+ * http://goto/soy-param-migration
1637
+ * @return {!Object}
1638
+ */
1639
+ proto.scanoss.api.components.v2.CompVersionResponse.prototype.toObject = function (opt_includeInstance) {
1640
+ return proto.scanoss.api.components.v2.CompVersionResponse.toObject(opt_includeInstance, this);
1641
+ };
1642
+ /**
1643
+ * Static version of the {@see toObject} method.
1644
+ * @param {boolean|undefined} includeInstance Deprecated. Whether to include
1645
+ * the JSPB instance for transitional soy proto support:
1646
+ * http://goto/soy-param-migration
1647
+ * @param {!proto.scanoss.api.components.v2.CompVersionResponse} msg The msg instance to transform.
1648
+ * @return {!Object}
1649
+ * @suppress {unusedLocalVariables} f is only used for nested messages
1650
+ */
1651
+ proto.scanoss.api.components.v2.CompVersionResponse.toObject = function (includeInstance, msg) {
1652
+ var f, obj = {
1653
+ component: (f = msg.getComponent()) && proto.scanoss.api.components.v2.CompVersionResponse.Component.toObject(includeInstance, f),
1654
+ status: (f = msg.getStatus()) && scanoss_api_common_v2_scanoss$common_pb.StatusResponse.toObject(includeInstance, f)
1655
+ };
1656
+ if (includeInstance) {
1657
+ obj.$jspbMessageInstance = msg;
1658
+ }
1659
+ return obj;
1660
+ };
1661
+ }
1662
+ /**
1663
+ * Deserializes binary data (in protobuf wire format).
1664
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
1665
+ * @return {!proto.scanoss.api.components.v2.CompVersionResponse}
1666
+ */
1667
+ proto.scanoss.api.components.v2.CompVersionResponse.deserializeBinary = function (bytes) {
1668
+ var reader = new jspb.BinaryReader(bytes);
1669
+ var msg = new proto.scanoss.api.components.v2.CompVersionResponse;
1670
+ return proto.scanoss.api.components.v2.CompVersionResponse.deserializeBinaryFromReader(msg, reader);
1671
+ };
1672
+ /**
1673
+ * Deserializes binary data (in protobuf wire format) from the
1674
+ * given reader into the given message object.
1675
+ * @param {!proto.scanoss.api.components.v2.CompVersionResponse} msg The message object to deserialize into.
1676
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
1677
+ * @return {!proto.scanoss.api.components.v2.CompVersionResponse}
1678
+ */
1679
+ proto.scanoss.api.components.v2.CompVersionResponse.deserializeBinaryFromReader = function (msg, reader) {
1680
+ while (reader.nextField()) {
1681
+ if (reader.isEndGroup()) {
1682
+ break;
1683
+ }
1684
+ var field = reader.getFieldNumber();
1685
+ switch (field) {
1686
+ case 1:
1687
+ var value = new proto.scanoss.api.components.v2.CompVersionResponse.Component;
1688
+ reader.readMessage(value, proto.scanoss.api.components.v2.CompVersionResponse.Component.deserializeBinaryFromReader);
1689
+ msg.setComponent(value);
1690
+ break;
1691
+ case 2:
1692
+ var value = new scanoss_api_common_v2_scanoss$common_pb.StatusResponse;
1693
+ reader.readMessage(value, scanoss_api_common_v2_scanoss$common_pb.StatusResponse.deserializeBinaryFromReader);
1694
+ msg.setStatus(value);
1695
+ break;
1696
+ default:
1697
+ reader.skipField();
1698
+ break;
1699
+ }
1700
+ }
1701
+ return msg;
1702
+ };
1703
+ /**
1704
+ * Serializes the message to binary data (in protobuf wire format).
1705
+ * @return {!Uint8Array}
1706
+ */
1707
+ proto.scanoss.api.components.v2.CompVersionResponse.prototype.serializeBinary = function () {
1708
+ var writer = new jspb.BinaryWriter();
1709
+ proto.scanoss.api.components.v2.CompVersionResponse.serializeBinaryToWriter(this, writer);
1710
+ return writer.getResultBuffer();
1711
+ };
1712
+ /**
1713
+ * Serializes the given message to binary data (in protobuf wire
1714
+ * format), writing to the given BinaryWriter.
1715
+ * @param {!proto.scanoss.api.components.v2.CompVersionResponse} message
1716
+ * @param {!jspb.BinaryWriter} writer
1717
+ * @suppress {unusedLocalVariables} f is only used for nested messages
1718
+ */
1719
+ proto.scanoss.api.components.v2.CompVersionResponse.serializeBinaryToWriter = function (message, writer) {
1720
+ var f = undefined;
1721
+ f = message.getComponent();
1722
+ if (f != null) {
1723
+ writer.writeMessage(1, f, proto.scanoss.api.components.v2.CompVersionResponse.Component.serializeBinaryToWriter);
1724
+ }
1725
+ f = message.getStatus();
1726
+ if (f != null) {
1727
+ writer.writeMessage(2, f, scanoss_api_common_v2_scanoss$common_pb.StatusResponse.serializeBinaryToWriter);
1728
+ }
1729
+ };
1730
+ if (jspb.Message.GENERATE_TO_OBJECT) {
1731
+ /**
1732
+ * Creates an object representation of this proto.
1733
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
1734
+ * Optional fields that are not set will be set to undefined.
1735
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
1736
+ * For the list of reserved names please see:
1737
+ * net/proto2/compiler/js/internal/generator.cc#kKeyword.
1738
+ * @param {boolean=} opt_includeInstance Deprecated. whether to include the
1739
+ * JSPB instance for transitional soy proto support:
1740
+ * http://goto/soy-param-migration
1741
+ * @return {!Object}
1742
+ */
1743
+ proto.scanoss.api.components.v2.CompVersionResponse.License.prototype.toObject = function (opt_includeInstance) {
1744
+ return proto.scanoss.api.components.v2.CompVersionResponse.License.toObject(opt_includeInstance, this);
1745
+ };
1746
+ /**
1747
+ * Static version of the {@see toObject} method.
1748
+ * @param {boolean|undefined} includeInstance Deprecated. Whether to include
1749
+ * the JSPB instance for transitional soy proto support:
1750
+ * http://goto/soy-param-migration
1751
+ * @param {!proto.scanoss.api.components.v2.CompVersionResponse.License} msg The msg instance to transform.
1752
+ * @return {!Object}
1753
+ * @suppress {unusedLocalVariables} f is only used for nested messages
1754
+ */
1755
+ proto.scanoss.api.components.v2.CompVersionResponse.License.toObject = function (includeInstance, msg) {
1756
+ var f, obj = {
1757
+ name: jspb.Message.getFieldWithDefault(msg, 1, ""),
1758
+ spdxId: jspb.Message.getFieldWithDefault(msg, 2, ""),
1759
+ isSpdxApproved: jspb.Message.getBooleanFieldWithDefault(msg, 3, false),
1760
+ url: jspb.Message.getFieldWithDefault(msg, 4, "")
1761
+ };
1762
+ if (includeInstance) {
1763
+ obj.$jspbMessageInstance = msg;
1764
+ }
1765
+ return obj;
1766
+ };
1767
+ }
1768
+ /**
1769
+ * Deserializes binary data (in protobuf wire format).
1770
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
1771
+ * @return {!proto.scanoss.api.components.v2.CompVersionResponse.License}
1772
+ */
1773
+ proto.scanoss.api.components.v2.CompVersionResponse.License.deserializeBinary = function (bytes) {
1774
+ var reader = new jspb.BinaryReader(bytes);
1775
+ var msg = new proto.scanoss.api.components.v2.CompVersionResponse.License;
1776
+ return proto.scanoss.api.components.v2.CompVersionResponse.License.deserializeBinaryFromReader(msg, reader);
1777
+ };
1778
+ /**
1779
+ * Deserializes binary data (in protobuf wire format) from the
1780
+ * given reader into the given message object.
1781
+ * @param {!proto.scanoss.api.components.v2.CompVersionResponse.License} msg The message object to deserialize into.
1782
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
1783
+ * @return {!proto.scanoss.api.components.v2.CompVersionResponse.License}
1784
+ */
1785
+ proto.scanoss.api.components.v2.CompVersionResponse.License.deserializeBinaryFromReader = function (msg, reader) {
1786
+ while (reader.nextField()) {
1787
+ if (reader.isEndGroup()) {
1788
+ break;
1789
+ }
1790
+ var field = reader.getFieldNumber();
1791
+ switch (field) {
1792
+ case 1:
1793
+ var value = /** @type {string} */ (reader.readString());
1794
+ msg.setName(value);
1795
+ break;
1796
+ case 2:
1797
+ var value = /** @type {string} */ (reader.readString());
1798
+ msg.setSpdxId(value);
1799
+ break;
1800
+ case 3:
1801
+ var value = /** @type {boolean} */ (reader.readBool());
1802
+ msg.setIsSpdxApproved(value);
1803
+ break;
1804
+ case 4:
1805
+ var value = /** @type {string} */ (reader.readString());
1806
+ msg.setUrl(value);
1807
+ break;
1808
+ default:
1809
+ reader.skipField();
1810
+ break;
1811
+ }
1812
+ }
1813
+ return msg;
1814
+ };
1815
+ /**
1816
+ * Serializes the message to binary data (in protobuf wire format).
1817
+ * @return {!Uint8Array}
1818
+ */
1819
+ proto.scanoss.api.components.v2.CompVersionResponse.License.prototype.serializeBinary = function () {
1820
+ var writer = new jspb.BinaryWriter();
1821
+ proto.scanoss.api.components.v2.CompVersionResponse.License.serializeBinaryToWriter(this, writer);
1822
+ return writer.getResultBuffer();
1823
+ };
1824
+ /**
1825
+ * Serializes the given message to binary data (in protobuf wire
1826
+ * format), writing to the given BinaryWriter.
1827
+ * @param {!proto.scanoss.api.components.v2.CompVersionResponse.License} message
1828
+ * @param {!jspb.BinaryWriter} writer
1829
+ * @suppress {unusedLocalVariables} f is only used for nested messages
1830
+ */
1831
+ proto.scanoss.api.components.v2.CompVersionResponse.License.serializeBinaryToWriter = function (message, writer) {
1832
+ var f = undefined;
1833
+ f = message.getName();
1834
+ if (f.length > 0) {
1835
+ writer.writeString(1, f);
1836
+ }
1837
+ f = message.getSpdxId();
1838
+ if (f.length > 0) {
1839
+ writer.writeString(2, f);
1840
+ }
1841
+ f = message.getIsSpdxApproved();
1842
+ if (f) {
1843
+ writer.writeBool(3, f);
1844
+ }
1845
+ f = message.getUrl();
1846
+ if (f.length > 0) {
1847
+ writer.writeString(4, f);
1848
+ }
1849
+ };
1850
+ /**
1851
+ * optional string name = 1;
1852
+ * @return {string}
1853
+ */
1854
+ proto.scanoss.api.components.v2.CompVersionResponse.License.prototype.getName = function () {
1855
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
1856
+ };
1857
+ /**
1858
+ * @param {string} value
1859
+ * @return {!proto.scanoss.api.components.v2.CompVersionResponse.License} returns this
1860
+ */
1861
+ proto.scanoss.api.components.v2.CompVersionResponse.License.prototype.setName = function (value) {
1862
+ return jspb.Message.setProto3StringField(this, 1, value);
1863
+ };
1864
+ /**
1865
+ * optional string spdx_id = 2;
1866
+ * @return {string}
1867
+ */
1868
+ proto.scanoss.api.components.v2.CompVersionResponse.License.prototype.getSpdxId = function () {
1869
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
1870
+ };
1871
+ /**
1872
+ * @param {string} value
1873
+ * @return {!proto.scanoss.api.components.v2.CompVersionResponse.License} returns this
1874
+ */
1875
+ proto.scanoss.api.components.v2.CompVersionResponse.License.prototype.setSpdxId = function (value) {
1876
+ return jspb.Message.setProto3StringField(this, 2, value);
1877
+ };
1878
+ /**
1879
+ * optional bool is_spdx_approved = 3;
1880
+ * @return {boolean}
1881
+ */
1882
+ proto.scanoss.api.components.v2.CompVersionResponse.License.prototype.getIsSpdxApproved = function () {
1883
+ return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false));
1884
+ };
1885
+ /**
1886
+ * @param {boolean} value
1887
+ * @return {!proto.scanoss.api.components.v2.CompVersionResponse.License} returns this
1888
+ */
1889
+ proto.scanoss.api.components.v2.CompVersionResponse.License.prototype.setIsSpdxApproved = function (value) {
1890
+ return jspb.Message.setProto3BooleanField(this, 3, value);
1891
+ };
1892
+ /**
1893
+ * optional string url = 4;
1894
+ * @return {string}
1895
+ */
1896
+ proto.scanoss.api.components.v2.CompVersionResponse.License.prototype.getUrl = function () {
1897
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
1898
+ };
1899
+ /**
1900
+ * @param {string} value
1901
+ * @return {!proto.scanoss.api.components.v2.CompVersionResponse.License} returns this
1902
+ */
1903
+ proto.scanoss.api.components.v2.CompVersionResponse.License.prototype.setUrl = function (value) {
1904
+ return jspb.Message.setProto3StringField(this, 4, value);
1905
+ };
1906
+ /**
1907
+ * List of repeated fields within this message type.
1908
+ * @private {!Array<number>}
1909
+ * @const
1910
+ */
1911
+ proto.scanoss.api.components.v2.CompVersionResponse.Version.repeatedFields_ = [4];
1912
+ if (jspb.Message.GENERATE_TO_OBJECT) {
1913
+ /**
1914
+ * Creates an object representation of this proto.
1915
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
1916
+ * Optional fields that are not set will be set to undefined.
1917
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
1918
+ * For the list of reserved names please see:
1919
+ * net/proto2/compiler/js/internal/generator.cc#kKeyword.
1920
+ * @param {boolean=} opt_includeInstance Deprecated. whether to include the
1921
+ * JSPB instance for transitional soy proto support:
1922
+ * http://goto/soy-param-migration
1923
+ * @return {!Object}
1924
+ */
1925
+ proto.scanoss.api.components.v2.CompVersionResponse.Version.prototype.toObject = function (opt_includeInstance) {
1926
+ return proto.scanoss.api.components.v2.CompVersionResponse.Version.toObject(opt_includeInstance, this);
1927
+ };
1928
+ /**
1929
+ * Static version of the {@see toObject} method.
1930
+ * @param {boolean|undefined} includeInstance Deprecated. Whether to include
1931
+ * the JSPB instance for transitional soy proto support:
1932
+ * http://goto/soy-param-migration
1933
+ * @param {!proto.scanoss.api.components.v2.CompVersionResponse.Version} msg The msg instance to transform.
1934
+ * @return {!Object}
1935
+ * @suppress {unusedLocalVariables} f is only used for nested messages
1936
+ */
1937
+ proto.scanoss.api.components.v2.CompVersionResponse.Version.toObject = function (includeInstance, msg) {
1938
+ var f, obj = {
1939
+ version: jspb.Message.getFieldWithDefault(msg, 1, ""),
1940
+ licensesList: jspb.Message.toObjectList(msg.getLicensesList(), proto.scanoss.api.components.v2.CompVersionResponse.License.toObject, includeInstance)
1941
+ };
1942
+ if (includeInstance) {
1943
+ obj.$jspbMessageInstance = msg;
1944
+ }
1945
+ return obj;
1946
+ };
1947
+ }
1948
+ /**
1949
+ * Deserializes binary data (in protobuf wire format).
1950
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
1951
+ * @return {!proto.scanoss.api.components.v2.CompVersionResponse.Version}
1952
+ */
1953
+ proto.scanoss.api.components.v2.CompVersionResponse.Version.deserializeBinary = function (bytes) {
1954
+ var reader = new jspb.BinaryReader(bytes);
1955
+ var msg = new proto.scanoss.api.components.v2.CompVersionResponse.Version;
1956
+ return proto.scanoss.api.components.v2.CompVersionResponse.Version.deserializeBinaryFromReader(msg, reader);
1957
+ };
1958
+ /**
1959
+ * Deserializes binary data (in protobuf wire format) from the
1960
+ * given reader into the given message object.
1961
+ * @param {!proto.scanoss.api.components.v2.CompVersionResponse.Version} msg The message object to deserialize into.
1962
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
1963
+ * @return {!proto.scanoss.api.components.v2.CompVersionResponse.Version}
1964
+ */
1965
+ proto.scanoss.api.components.v2.CompVersionResponse.Version.deserializeBinaryFromReader = function (msg, reader) {
1966
+ while (reader.nextField()) {
1967
+ if (reader.isEndGroup()) {
1968
+ break;
1969
+ }
1970
+ var field = reader.getFieldNumber();
1971
+ switch (field) {
1972
+ case 1:
1973
+ var value = /** @type {string} */ (reader.readString());
1974
+ msg.setVersion(value);
1975
+ break;
1976
+ case 4:
1977
+ var value = new proto.scanoss.api.components.v2.CompVersionResponse.License;
1978
+ reader.readMessage(value, proto.scanoss.api.components.v2.CompVersionResponse.License.deserializeBinaryFromReader);
1979
+ msg.addLicenses(value);
1980
+ break;
1981
+ default:
1982
+ reader.skipField();
1983
+ break;
1984
+ }
1985
+ }
1986
+ return msg;
1987
+ };
1988
+ /**
1989
+ * Serializes the message to binary data (in protobuf wire format).
1990
+ * @return {!Uint8Array}
1991
+ */
1992
+ proto.scanoss.api.components.v2.CompVersionResponse.Version.prototype.serializeBinary = function () {
1993
+ var writer = new jspb.BinaryWriter();
1994
+ proto.scanoss.api.components.v2.CompVersionResponse.Version.serializeBinaryToWriter(this, writer);
1995
+ return writer.getResultBuffer();
1996
+ };
1997
+ /**
1998
+ * Serializes the given message to binary data (in protobuf wire
1999
+ * format), writing to the given BinaryWriter.
2000
+ * @param {!proto.scanoss.api.components.v2.CompVersionResponse.Version} message
2001
+ * @param {!jspb.BinaryWriter} writer
2002
+ * @suppress {unusedLocalVariables} f is only used for nested messages
2003
+ */
2004
+ proto.scanoss.api.components.v2.CompVersionResponse.Version.serializeBinaryToWriter = function (message, writer) {
2005
+ var f = undefined;
2006
+ f = message.getVersion();
2007
+ if (f.length > 0) {
2008
+ writer.writeString(1, f);
2009
+ }
2010
+ f = message.getLicensesList();
2011
+ if (f.length > 0) {
2012
+ writer.writeRepeatedMessage(4, f, proto.scanoss.api.components.v2.CompVersionResponse.License.serializeBinaryToWriter);
2013
+ }
2014
+ };
2015
+ /**
2016
+ * optional string version = 1;
2017
+ * @return {string}
2018
+ */
2019
+ proto.scanoss.api.components.v2.CompVersionResponse.Version.prototype.getVersion = function () {
2020
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
2021
+ };
2022
+ /**
2023
+ * @param {string} value
2024
+ * @return {!proto.scanoss.api.components.v2.CompVersionResponse.Version} returns this
2025
+ */
2026
+ proto.scanoss.api.components.v2.CompVersionResponse.Version.prototype.setVersion = function (value) {
2027
+ return jspb.Message.setProto3StringField(this, 1, value);
2028
+ };
2029
+ /**
2030
+ * repeated License licenses = 4;
2031
+ * @return {!Array<!proto.scanoss.api.components.v2.CompVersionResponse.License>}
2032
+ */
2033
+ proto.scanoss.api.components.v2.CompVersionResponse.Version.prototype.getLicensesList = function () {
2034
+ return /** @type{!Array<!proto.scanoss.api.components.v2.CompVersionResponse.License>} */ (jspb.Message.getRepeatedWrapperField(this, proto.scanoss.api.components.v2.CompVersionResponse.License, 4));
2035
+ };
2036
+ /**
2037
+ * @param {!Array<!proto.scanoss.api.components.v2.CompVersionResponse.License>} value
2038
+ * @return {!proto.scanoss.api.components.v2.CompVersionResponse.Version} returns this
2039
+ */
2040
+ proto.scanoss.api.components.v2.CompVersionResponse.Version.prototype.setLicensesList = function (value) {
2041
+ return jspb.Message.setRepeatedWrapperField(this, 4, value);
2042
+ };
2043
+ /**
2044
+ * @param {!proto.scanoss.api.components.v2.CompVersionResponse.License=} opt_value
2045
+ * @param {number=} opt_index
2046
+ * @return {!proto.scanoss.api.components.v2.CompVersionResponse.License}
2047
+ */
2048
+ proto.scanoss.api.components.v2.CompVersionResponse.Version.prototype.addLicenses = function (opt_value, opt_index) {
2049
+ return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.scanoss.api.components.v2.CompVersionResponse.License, opt_index);
2050
+ };
2051
+ /**
2052
+ * Clears the list making it empty but non-null.
2053
+ * @return {!proto.scanoss.api.components.v2.CompVersionResponse.Version} returns this
2054
+ */
2055
+ proto.scanoss.api.components.v2.CompVersionResponse.Version.prototype.clearLicensesList = function () {
2056
+ return this.setLicensesList([]);
2057
+ };
2058
+ /**
2059
+ * List of repeated fields within this message type.
2060
+ * @private {!Array<number>}
2061
+ * @const
2062
+ */
2063
+ proto.scanoss.api.components.v2.CompVersionResponse.Component.repeatedFields_ = [4];
2064
+ if (jspb.Message.GENERATE_TO_OBJECT) {
2065
+ /**
2066
+ * Creates an object representation of this proto.
2067
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
2068
+ * Optional fields that are not set will be set to undefined.
2069
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
2070
+ * For the list of reserved names please see:
2071
+ * net/proto2/compiler/js/internal/generator.cc#kKeyword.
2072
+ * @param {boolean=} opt_includeInstance Deprecated. whether to include the
2073
+ * JSPB instance for transitional soy proto support:
2074
+ * http://goto/soy-param-migration
2075
+ * @return {!Object}
2076
+ */
2077
+ proto.scanoss.api.components.v2.CompVersionResponse.Component.prototype.toObject = function (opt_includeInstance) {
2078
+ return proto.scanoss.api.components.v2.CompVersionResponse.Component.toObject(opt_includeInstance, this);
2079
+ };
2080
+ /**
2081
+ * Static version of the {@see toObject} method.
2082
+ * @param {boolean|undefined} includeInstance Deprecated. Whether to include
2083
+ * the JSPB instance for transitional soy proto support:
2084
+ * http://goto/soy-param-migration
2085
+ * @param {!proto.scanoss.api.components.v2.CompVersionResponse.Component} msg The msg instance to transform.
2086
+ * @return {!Object}
2087
+ * @suppress {unusedLocalVariables} f is only used for nested messages
2088
+ */
2089
+ proto.scanoss.api.components.v2.CompVersionResponse.Component.toObject = function (includeInstance, msg) {
2090
+ var f, obj = {
2091
+ component: jspb.Message.getFieldWithDefault(msg, 1, ""),
2092
+ purl: jspb.Message.getFieldWithDefault(msg, 2, ""),
2093
+ url: jspb.Message.getFieldWithDefault(msg, 3, ""),
2094
+ versionsList: jspb.Message.toObjectList(msg.getVersionsList(), proto.scanoss.api.components.v2.CompVersionResponse.Version.toObject, includeInstance)
2095
+ };
2096
+ if (includeInstance) {
2097
+ obj.$jspbMessageInstance = msg;
2098
+ }
2099
+ return obj;
2100
+ };
2101
+ }
2102
+ /**
2103
+ * Deserializes binary data (in protobuf wire format).
2104
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
2105
+ * @return {!proto.scanoss.api.components.v2.CompVersionResponse.Component}
2106
+ */
2107
+ proto.scanoss.api.components.v2.CompVersionResponse.Component.deserializeBinary = function (bytes) {
2108
+ var reader = new jspb.BinaryReader(bytes);
2109
+ var msg = new proto.scanoss.api.components.v2.CompVersionResponse.Component;
2110
+ return proto.scanoss.api.components.v2.CompVersionResponse.Component.deserializeBinaryFromReader(msg, reader);
2111
+ };
2112
+ /**
2113
+ * Deserializes binary data (in protobuf wire format) from the
2114
+ * given reader into the given message object.
2115
+ * @param {!proto.scanoss.api.components.v2.CompVersionResponse.Component} msg The message object to deserialize into.
2116
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
2117
+ * @return {!proto.scanoss.api.components.v2.CompVersionResponse.Component}
2118
+ */
2119
+ proto.scanoss.api.components.v2.CompVersionResponse.Component.deserializeBinaryFromReader = function (msg, reader) {
2120
+ while (reader.nextField()) {
2121
+ if (reader.isEndGroup()) {
2122
+ break;
2123
+ }
2124
+ var field = reader.getFieldNumber();
2125
+ switch (field) {
2126
+ case 1:
2127
+ var value = /** @type {string} */ (reader.readString());
2128
+ msg.setComponent(value);
2129
+ break;
2130
+ case 2:
2131
+ var value = /** @type {string} */ (reader.readString());
2132
+ msg.setPurl(value);
2133
+ break;
2134
+ case 3:
2135
+ var value = /** @type {string} */ (reader.readString());
2136
+ msg.setUrl(value);
2137
+ break;
2138
+ case 4:
2139
+ var value = new proto.scanoss.api.components.v2.CompVersionResponse.Version;
2140
+ reader.readMessage(value, proto.scanoss.api.components.v2.CompVersionResponse.Version.deserializeBinaryFromReader);
2141
+ msg.addVersions(value);
2142
+ break;
2143
+ default:
2144
+ reader.skipField();
2145
+ break;
2146
+ }
2147
+ }
2148
+ return msg;
2149
+ };
2150
+ /**
2151
+ * Serializes the message to binary data (in protobuf wire format).
2152
+ * @return {!Uint8Array}
2153
+ */
2154
+ proto.scanoss.api.components.v2.CompVersionResponse.Component.prototype.serializeBinary = function () {
2155
+ var writer = new jspb.BinaryWriter();
2156
+ proto.scanoss.api.components.v2.CompVersionResponse.Component.serializeBinaryToWriter(this, writer);
2157
+ return writer.getResultBuffer();
2158
+ };
2159
+ /**
2160
+ * Serializes the given message to binary data (in protobuf wire
2161
+ * format), writing to the given BinaryWriter.
2162
+ * @param {!proto.scanoss.api.components.v2.CompVersionResponse.Component} message
2163
+ * @param {!jspb.BinaryWriter} writer
2164
+ * @suppress {unusedLocalVariables} f is only used for nested messages
2165
+ */
2166
+ proto.scanoss.api.components.v2.CompVersionResponse.Component.serializeBinaryToWriter = function (message, writer) {
2167
+ var f = undefined;
2168
+ f = message.getComponent();
2169
+ if (f.length > 0) {
2170
+ writer.writeString(1, f);
2171
+ }
2172
+ f = message.getPurl();
2173
+ if (f.length > 0) {
2174
+ writer.writeString(2, f);
2175
+ }
2176
+ f = message.getUrl();
2177
+ if (f.length > 0) {
2178
+ writer.writeString(3, f);
2179
+ }
2180
+ f = message.getVersionsList();
2181
+ if (f.length > 0) {
2182
+ writer.writeRepeatedMessage(4, f, proto.scanoss.api.components.v2.CompVersionResponse.Version.serializeBinaryToWriter);
2183
+ }
2184
+ };
2185
+ /**
2186
+ * optional string component = 1;
2187
+ * @return {string}
2188
+ */
2189
+ proto.scanoss.api.components.v2.CompVersionResponse.Component.prototype.getComponent = function () {
2190
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
2191
+ };
2192
+ /**
2193
+ * @param {string} value
2194
+ * @return {!proto.scanoss.api.components.v2.CompVersionResponse.Component} returns this
2195
+ */
2196
+ proto.scanoss.api.components.v2.CompVersionResponse.Component.prototype.setComponent = function (value) {
2197
+ return jspb.Message.setProto3StringField(this, 1, value);
2198
+ };
2199
+ /**
2200
+ * optional string purl = 2;
2201
+ * @return {string}
2202
+ */
2203
+ proto.scanoss.api.components.v2.CompVersionResponse.Component.prototype.getPurl = function () {
2204
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
2205
+ };
2206
+ /**
2207
+ * @param {string} value
2208
+ * @return {!proto.scanoss.api.components.v2.CompVersionResponse.Component} returns this
2209
+ */
2210
+ proto.scanoss.api.components.v2.CompVersionResponse.Component.prototype.setPurl = function (value) {
2211
+ return jspb.Message.setProto3StringField(this, 2, value);
2212
+ };
2213
+ /**
2214
+ * optional string url = 3;
2215
+ * @return {string}
2216
+ */
2217
+ proto.scanoss.api.components.v2.CompVersionResponse.Component.prototype.getUrl = function () {
2218
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
2219
+ };
2220
+ /**
2221
+ * @param {string} value
2222
+ * @return {!proto.scanoss.api.components.v2.CompVersionResponse.Component} returns this
2223
+ */
2224
+ proto.scanoss.api.components.v2.CompVersionResponse.Component.prototype.setUrl = function (value) {
2225
+ return jspb.Message.setProto3StringField(this, 3, value);
2226
+ };
2227
+ /**
2228
+ * repeated Version versions = 4;
2229
+ * @return {!Array<!proto.scanoss.api.components.v2.CompVersionResponse.Version>}
2230
+ */
2231
+ proto.scanoss.api.components.v2.CompVersionResponse.Component.prototype.getVersionsList = function () {
2232
+ return /** @type{!Array<!proto.scanoss.api.components.v2.CompVersionResponse.Version>} */ (jspb.Message.getRepeatedWrapperField(this, proto.scanoss.api.components.v2.CompVersionResponse.Version, 4));
2233
+ };
2234
+ /**
2235
+ * @param {!Array<!proto.scanoss.api.components.v2.CompVersionResponse.Version>} value
2236
+ * @return {!proto.scanoss.api.components.v2.CompVersionResponse.Component} returns this
2237
+ */
2238
+ proto.scanoss.api.components.v2.CompVersionResponse.Component.prototype.setVersionsList = function (value) {
2239
+ return jspb.Message.setRepeatedWrapperField(this, 4, value);
2240
+ };
2241
+ /**
2242
+ * @param {!proto.scanoss.api.components.v2.CompVersionResponse.Version=} opt_value
2243
+ * @param {number=} opt_index
2244
+ * @return {!proto.scanoss.api.components.v2.CompVersionResponse.Version}
2245
+ */
2246
+ proto.scanoss.api.components.v2.CompVersionResponse.Component.prototype.addVersions = function (opt_value, opt_index) {
2247
+ return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.scanoss.api.components.v2.CompVersionResponse.Version, opt_index);
2248
+ };
2249
+ /**
2250
+ * Clears the list making it empty but non-null.
2251
+ * @return {!proto.scanoss.api.components.v2.CompVersionResponse.Component} returns this
2252
+ */
2253
+ proto.scanoss.api.components.v2.CompVersionResponse.Component.prototype.clearVersionsList = function () {
2254
+ return this.setVersionsList([]);
2255
+ };
2256
+ /**
2257
+ * optional Component component = 1;
2258
+ * @return {?proto.scanoss.api.components.v2.CompVersionResponse.Component}
2259
+ */
2260
+ proto.scanoss.api.components.v2.CompVersionResponse.prototype.getComponent = function () {
2261
+ return /** @type{?proto.scanoss.api.components.v2.CompVersionResponse.Component} */ (jspb.Message.getWrapperField(this, proto.scanoss.api.components.v2.CompVersionResponse.Component, 1));
2262
+ };
2263
+ /**
2264
+ * @param {?proto.scanoss.api.components.v2.CompVersionResponse.Component|undefined} value
2265
+ * @return {!proto.scanoss.api.components.v2.CompVersionResponse} returns this
2266
+ */
2267
+ proto.scanoss.api.components.v2.CompVersionResponse.prototype.setComponent = function (value) {
2268
+ return jspb.Message.setWrapperField(this, 1, value);
2269
+ };
2270
+ /**
2271
+ * Clears the message field making it undefined.
2272
+ * @return {!proto.scanoss.api.components.v2.CompVersionResponse} returns this
2273
+ */
2274
+ proto.scanoss.api.components.v2.CompVersionResponse.prototype.clearComponent = function () {
2275
+ return this.setComponent(undefined);
2276
+ };
2277
+ /**
2278
+ * Returns whether this field is set.
2279
+ * @return {boolean}
2280
+ */
2281
+ proto.scanoss.api.components.v2.CompVersionResponse.prototype.hasComponent = function () {
2282
+ return jspb.Message.getField(this, 1) != null;
2283
+ };
2284
+ /**
2285
+ * optional scanoss.api.common.v2.StatusResponse status = 2;
2286
+ * @return {?proto.scanoss.api.common.v2.StatusResponse}
2287
+ */
2288
+ proto.scanoss.api.components.v2.CompVersionResponse.prototype.getStatus = function () {
2289
+ return /** @type{?proto.scanoss.api.common.v2.StatusResponse} */ (jspb.Message.getWrapperField(this, scanoss_api_common_v2_scanoss$common_pb.StatusResponse, 2));
2290
+ };
2291
+ /**
2292
+ * @param {?proto.scanoss.api.common.v2.StatusResponse|undefined} value
2293
+ * @return {!proto.scanoss.api.components.v2.CompVersionResponse} returns this
2294
+ */
2295
+ proto.scanoss.api.components.v2.CompVersionResponse.prototype.setStatus = function (value) {
2296
+ return jspb.Message.setWrapperField(this, 2, value);
2297
+ };
2298
+ /**
2299
+ * Clears the message field making it undefined.
2300
+ * @return {!proto.scanoss.api.components.v2.CompVersionResponse} returns this
2301
+ */
2302
+ proto.scanoss.api.components.v2.CompVersionResponse.prototype.clearStatus = function () {
2303
+ return this.setStatus(undefined);
2304
+ };
2305
+ /**
2306
+ * Returns whether this field is set.
2307
+ * @return {boolean}
2308
+ */
2309
+ proto.scanoss.api.components.v2.CompVersionResponse.prototype.hasStatus = function () {
2310
+ return jspb.Message.getField(this, 2) != null;
2311
+ };
2312
+ goog.object.extend(exports, proto.scanoss.api.components.v2);
2313
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbm9zcy1jb21wb25lbnRzX3BiLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay9DbGllbnRzL0dycGMvc2Nhbm9zcy9hcGkvY29tcG9uZW50cy92Mi9zY2Fub3NzLWNvbXBvbmVudHNfcGIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNkRBQTZEO0FBQzdEOzs7Ozs7O0dBT0c7QUFDSCxpQ0FBaUM7QUFDakMsb0JBQW9CO0FBQ3BCLGNBQWM7QUFFZCxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUN0QyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUM7QUFDaEIsSUFBSSxNQUFNLEdBQ04sQ0FBQyxPQUFPLFVBQVUsS0FBSyxXQUFXLElBQUksVUFBVSxDQUFDO0lBQ2pELENBQUMsT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE1BQU0sQ0FBQztJQUN6QyxDQUFDLE9BQU8sTUFBTSxLQUFLLFdBQVcsSUFBSSxNQUFNLENBQUM7SUFDekMsQ0FBQyxPQUFPLElBQUksS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDO0lBQ3JDLENBQUMsY0FBYyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDekMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7QUFFOUIsSUFBSSx1Q0FBdUMsR0FBRyxPQUFPLENBQUMsd0RBQXdELENBQUMsQ0FBQztBQUNoSCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsdUNBQXVDLENBQUMsQ0FBQztBQUNuRSxJQUFJLHlCQUF5QixHQUFHLE9BQU8sQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0FBQ3BGLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO0FBQ3JELElBQUksMkNBQTJDLEdBQUcsT0FBTyxDQUFDLDREQUE0RCxDQUFDLENBQUM7QUFDeEgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLDJDQUEyQyxDQUFDLENBQUM7QUFDdkUsSUFBSSxDQUFDLFlBQVksQ0FBQyxtREFBbUQsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDckYsSUFBSSxDQUFDLFlBQVksQ0FBQyxvREFBb0QsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdEYsSUFBSSxDQUFDLFlBQVksQ0FBQyw4REFBOEQsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaEcsSUFBSSxDQUFDLFlBQVksQ0FBQywrQ0FBK0MsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDakYsSUFBSSxDQUFDLFlBQVksQ0FBQyx3REFBd0QsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDMUYsSUFBSSxDQUFDLFlBQVksQ0FBQyx1REFBdUQsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDekYsSUFBSSxDQUFDLFlBQVksQ0FBQyw2REFBNkQsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDL0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxvREFBb0QsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdEYsSUFBSSxDQUFDLFlBQVksQ0FBQyxxREFBcUQsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdkYsSUFBSSxDQUFDLFlBQVksQ0FBQywrREFBK0QsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDakcsSUFBSSxDQUFDLFlBQVksQ0FBQyw2REFBNkQsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDL0YsSUFBSSxDQUFDLFlBQVksQ0FBQyw2REFBNkQsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDL0Y7Ozs7Ozs7OztHQVNHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsR0FBRyxVQUFTLFFBQVE7SUFDbkUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzdELENBQUMsQ0FBQztBQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDL0UsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUI7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEdBQUcsbURBQW1ELENBQUM7QUFDdEgsQ0FBQztBQUNEOzs7Ozs7Ozs7R0FTRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsYUFBYSxHQUFHLFVBQVMsUUFBUTtJQUMvRCxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDdEgsQ0FBQyxDQUFDO0FBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDM0UsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUI7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLCtDQUErQyxDQUFDO0FBQzlHLENBQUM7QUFDRDs7Ozs7Ozs7O0dBU0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsVUFBUyxRQUFRO0lBQ3hFLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUM3RCxDQUFDLENBQUM7QUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDcEYsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUI7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFdBQVcsR0FBRyx3REFBd0QsQ0FBQztBQUNoSSxDQUFDO0FBQ0Q7Ozs7Ozs7OztHQVNHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsR0FBRyxVQUFTLFFBQVE7SUFDdkUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDOUgsQ0FBQyxDQUFDO0FBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNuRixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1Qjs7O09BR0c7SUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsR0FBRyx1REFBdUQsQ0FBQztBQUM5SCxDQUFDO0FBQ0Q7Ozs7Ozs7OztHQVNHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEdBQUcsVUFBUyxRQUFRO0lBQzdFLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUM3RCxDQUFDLENBQUM7QUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN6RixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1Qjs7O09BR0c7SUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsNkRBQTZELENBQUM7QUFDMUksQ0FBQztBQUNEOzs7Ozs7Ozs7R0FTRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLEdBQUcsVUFBUyxRQUFRO0lBQ3BFLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzNILENBQUMsQ0FBQztBQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDaEYsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUI7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEdBQUcsb0RBQW9ELENBQUM7QUFDeEgsQ0FBQztBQUNEOzs7Ozs7Ozs7R0FTRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsU0FBUyxHQUFHLFVBQVMsUUFBUTtJQUM5RSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDN0QsQ0FBQyxDQUFDO0FBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDMUYsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUI7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsV0FBVyxHQUFHLDhEQUE4RCxDQUFDO0FBQzVJLENBQUM7QUFDRDs7Ozs7Ozs7O0dBU0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGtCQUFrQixHQUFHLFVBQVMsUUFBUTtJQUNwRSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDN0QsQ0FBQyxDQUFDO0FBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNoRixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1Qjs7O09BR0c7SUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsR0FBRyxvREFBb0QsQ0FBQztBQUN4SCxDQUFDO0FBQ0Q7Ozs7Ozs7OztHQVNHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsR0FBRyxVQUFTLFFBQVE7SUFDckUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzdELENBQUMsQ0FBQztBQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDakYsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUI7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEdBQUcscURBQXFELENBQUM7QUFDMUgsQ0FBQztBQUNEOzs7Ozs7Ozs7R0FTRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsT0FBTyxHQUFHLFVBQVMsUUFBUTtJQUM3RSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDN0QsQ0FBQyxDQUFDO0FBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDekYsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUI7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLDZEQUE2RCxDQUFDO0FBQzFJLENBQUM7QUFDRDs7Ozs7Ozs7O0dBU0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sR0FBRyxVQUFTLFFBQVE7SUFDN0UsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3BJLENBQUMsQ0FBQztBQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3pGLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCOzs7T0FHRztJQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyw2REFBNkQsQ0FBQztBQUMxSSxDQUFDO0FBQ0Q7Ozs7Ozs7OztHQVNHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEdBQUcsVUFBUyxRQUFRO0lBQy9FLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN0SSxDQUFDLENBQUM7QUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUMzRixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1Qjs7O09BR0c7SUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsK0RBQStELENBQUM7QUFDOUksQ0FBQztBQUlELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQ3RDOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLFVBQVMsbUJBQW1CO1FBQ2pHLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDL0YsQ0FBQyxDQUFDO0lBR0Y7Ozs7Ozs7O09BUUc7SUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsR0FBRyxVQUFTLGVBQWUsRUFBRSxHQUFHO1FBQ3hGLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRztZQUNmLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3BELE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3BELFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3ZELFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3hELEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2xELE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ2hELENBQUM7UUFFRixJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ3BCLEdBQUcsQ0FBQyxvQkFBb0IsR0FBRyxHQUFHLENBQUM7UUFDakMsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQyxDQUFDO0FBQ0YsQ0FBQztBQUdEOzs7O0dBSUc7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixHQUFHLFVBQVMsS0FBSztJQUNsRixJQUFJLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsSUFBSSxHQUFHLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hFLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQywyQkFBMkIsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDcEcsQ0FBQyxDQUFDO0FBR0Y7Ozs7OztHQU1HO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQywyQkFBMkIsR0FBRyxVQUFTLEdBQUcsRUFBRSxNQUFNO0lBQ2xHLE9BQU8sTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7UUFDMUIsSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUN4QixNQUFNO1FBQ1IsQ0FBQztRQUNELElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNwQyxRQUFRLEtBQUssRUFBRSxDQUFDO1lBQ2hCLEtBQUssQ0FBQztnQkFDSixJQUFJLEtBQUssR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO2dCQUN4RCxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNyQixNQUFNO1lBQ1IsS0FBSyxDQUFDO2dCQUNKLElBQUksS0FBSyxHQUFHLHFCQUFxQixDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7Z0JBQ3hELEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3JCLE1BQU07WUFDUixLQUFLLENBQUM7Z0JBQ0osSUFBSSxLQUFLLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztnQkFDeEQsR0FBRyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDeEIsTUFBTTtZQUNSLEtBQUssQ0FBQztnQkFDSixJQUFJLEtBQUssR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO2dCQUN4RCxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN0QixNQUFNO1lBQ1IsS0FBSyxDQUFDO2dCQUNKLElBQUksS0FBSyxHQUFHLHFCQUFxQixDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7Z0JBQ3ZELEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3BCLE1BQU07WUFDUixLQUFLLENBQUM7Z0JBQ0osSUFBSSxLQUFLLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztnQkFDdkQsR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDckIsTUFBTTtZQUNSO2dCQUNFLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDbkIsTUFBTTtRQUNSLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUM7QUFHRjs7O0dBR0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxlQUFlLEdBQUc7SUFDNUUsSUFBSSxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDeEYsT0FBTyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7QUFDbEMsQ0FBQyxDQUFDO0FBR0Y7Ozs7OztHQU1HO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyx1QkFBdUIsR0FBRyxVQUFTLE9BQU8sRUFBRSxNQUFNO0lBQ2xHLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUNsQixDQUFDLEdBQUcsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3hCLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNqQixNQUFNLENBQUMsV0FBVyxDQUNoQixDQUFDLEVBQ0QsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBQ0QsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN4QixJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDakIsTUFBTSxDQUFDLFdBQVcsQ0FDaEIsQ0FBQyxFQUNELENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELENBQUMsR0FBRyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0IsSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sQ0FBQyxXQUFXLENBQ2hCLENBQUMsRUFDRCxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxDQUFDLEdBQUcsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3pCLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNqQixNQUFNLENBQUMsV0FBVyxDQUNoQixDQUFDLEVBQ0QsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBQ0QsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNaLE1BQU0sQ0FBQyxVQUFVLENBQ2YsQ0FBQyxFQUNELENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELENBQUMsR0FBRyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDWixNQUFNLENBQUMsVUFBVSxDQUNmLENBQUMsRUFDRCxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDLENBQUM7QUFHRjs7O0dBR0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxTQUFTLEdBQUc7SUFDdEUsT0FBTyxxQkFBcUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQy9FLENBQUMsQ0FBQztBQUdGOzs7R0FHRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLFNBQVMsR0FBRyxVQUFTLEtBQUs7SUFDcEYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDM0QsQ0FBQyxDQUFDO0FBR0Y7OztHQUdHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsU0FBUyxHQUFHO0lBQ3RFLE9BQU8scUJBQXFCLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMvRSxDQUFDLENBQUM7QUFHRjs7O0dBR0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsVUFBUyxLQUFLO0lBQ3BGLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzNELENBQUMsQ0FBQztBQUdGOzs7R0FHRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLFlBQVksR0FBRztJQUN6RSxPQUFPLHFCQUFxQixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDL0UsQ0FBQyxDQUFDO0FBR0Y7OztHQUdHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsWUFBWSxHQUFHLFVBQVMsS0FBSztJQUN2RixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMzRCxDQUFDLENBQUM7QUFHRjs7O0dBR0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxVQUFVLEdBQUc7SUFDdkUsT0FBTyxxQkFBcUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQy9FLENBQUMsQ0FBQztBQUdGOzs7R0FHRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLFVBQVUsR0FBRyxVQUFTLEtBQUs7SUFDckYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDM0QsQ0FBQyxDQUFDO0FBR0Y7OztHQUdHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHO0lBQ3JFLE9BQU8scUJBQXFCLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5RSxDQUFDLENBQUM7QUFHRjs7O0dBR0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsVUFBUyxLQUFLO0lBQ25GLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3hELENBQUMsQ0FBQztBQUdGOzs7R0FHRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLFNBQVMsR0FBRztJQUN0RSxPQUFPLHFCQUFxQixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUUsQ0FBQyxDQUFDO0FBR0Y7OztHQUdHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsU0FBUyxHQUFHLFVBQVMsS0FBSztJQUNwRixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN4RCxDQUFDLENBQUM7QUFJRjs7OztHQUlHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFJcEUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDdEM7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLFVBQVMsbUJBQW1CO1FBQzdGLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzNGLENBQUMsQ0FBQztJQUdGOzs7Ozs7OztPQVFHO0lBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxHQUFHLFVBQVMsZUFBZSxFQUFFLEdBQUc7UUFDcEYsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHO1lBQ2YsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM3RCxVQUFVLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN2RCxlQUFlLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM1RCxhQUFhLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLEVBQzNELEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDO1NBQ2xGLENBQUM7UUFFRixJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ3BCLEdBQUcsQ0FBQyxvQkFBb0IsR0FBRyxHQUFHLENBQUM7UUFDakMsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQyxDQUFDO0FBQ0YsQ0FBQztBQUdEOzs7O0dBSUc7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsR0FBRyxVQUFTLEtBQUs7SUFDOUUsSUFBSSxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLElBQUksR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUM7SUFDNUQsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQywyQkFBMkIsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaEcsQ0FBQyxDQUFDO0FBR0Y7Ozs7OztHQU1HO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsMkJBQTJCLEdBQUcsVUFBUyxHQUFHLEVBQUUsTUFBTTtJQUM5RixPQUFPLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1FBQzFCLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDeEIsTUFBTTtRQUNSLENBQUM7UUFDRCxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDcEMsUUFBUSxLQUFLLEVBQUUsQ0FBQztZQUNoQixLQUFLLENBQUM7Z0JBQ0osSUFBSSxLQUFLLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztnQkFDdkQsR0FBRyxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMvQixNQUFNO1lBQ1IsS0FBSyxDQUFDO2dCQUNKLElBQUksS0FBSyxHQUFHLHFCQUFxQixDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7Z0JBQ3ZELEdBQUcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pCLE1BQU07WUFDUixLQUFLLENBQUM7Z0JBQ0osSUFBSSxLQUFLLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztnQkFDdkQsR0FBRyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM5QixNQUFNO1lBQ1IsS0FBSyxDQUFDO2dCQUNKLElBQUksS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO2dCQUN2RSxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsMkJBQTJCLENBQUMsQ0FBQztnQkFDN0csR0FBRyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDeEIsTUFBTTtZQUNSO2dCQUNFLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDbkIsTUFBTTtRQUNSLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUM7QUFHRjs7O0dBR0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsZUFBZSxHQUFHO0lBQ3hFLElBQUksTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNwRixPQUFPLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQztBQUNsQyxDQUFDLENBQUM7QUFHRjs7Ozs7O0dBTUc7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsR0FBRyxVQUFTLE9BQU8sRUFBRSxNQUFNO0lBQzlGLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUNsQixDQUFDLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDbEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDWixNQUFNLENBQUMsVUFBVSxDQUNmLENBQUMsRUFDRCxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxDQUFDLEdBQUcsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ1osTUFBTSxDQUFDLFVBQVUsQ0FDZixDQUFDLEVBQ0QsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBQ0QsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ1osTUFBTSxDQUFDLFVBQVUsQ0FDZixDQUFDLEVBQ0QsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBQ0QsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQy9CLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNqQixNQUFNLENBQUMsb0JBQW9CLENBQ3pCLENBQUMsRUFDRCxDQUFDLEVBQ0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLHVCQUF1QixDQUMvRSxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMsQ0FBQztBQU1GLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQ3RDOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsVUFBUyxtQkFBbUI7UUFDdEcsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3BHLENBQUMsQ0FBQztJQUdGOzs7Ozs7OztPQVFHO0lBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxVQUFTLGVBQWUsRUFBRSxHQUFHO1FBQzdGLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRztZQUNmLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2xELEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQy9DLENBQUM7UUFFRixJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ3BCLEdBQUcsQ0FBQyxvQkFBb0IsR0FBRyxHQUFHLENBQUM7UUFDakMsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQyxDQUFDO0FBQ0YsQ0FBQztBQUdEOzs7O0dBSUc7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEdBQUcsVUFBUyxLQUFLO0lBQ3ZGLElBQUksTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxJQUFJLEdBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQztJQUNyRSxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQywyQkFBMkIsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDekcsQ0FBQyxDQUFDO0FBR0Y7Ozs7OztHQU1HO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLDJCQUEyQixHQUFHLFVBQVMsR0FBRyxFQUFFLE1BQU07SUFDdkcsT0FBTyxNQUFNLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztRQUMxQixJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLE1BQU07UUFDUixDQUFDO1FBQ0QsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3BDLFFBQVEsS0FBSyxFQUFFLENBQUM7WUFDaEIsS0FBSyxDQUFDO2dCQUNKLElBQUksS0FBSyxHQUFHLHFCQUFxQixDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7Z0JBQ3hELEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25CLE1BQU07WUFDUixLQUFLLENBQUM7Z0JBQ0osSUFBSSxLQUFLLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztnQkFDdkQsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDcEIsTUFBTTtZQUNSO2dCQUNFLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDbkIsTUFBTTtRQUNSLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUM7QUFHRjs7O0dBR0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLGVBQWUsR0FBRztJQUNqRixJQUFJLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzdGLE9BQU8sTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO0FBQ2xDLENBQUMsQ0FBQztBQUdGOzs7Ozs7R0FNRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsR0FBRyxVQUFTLE9BQU8sRUFBRSxNQUFNO0lBQ3ZHLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUNsQixDQUFDLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3RCLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNqQixNQUFNLENBQUMsV0FBVyxDQUNoQixDQUFDLEVBQ0QsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBQ0QsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNaLE1BQU0sQ0FBQyxVQUFVLENBQ2YsQ0FBQyxFQUNELENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMsQ0FBQztBQUdGOzs7R0FHRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxHQUFHO0lBQ3pFLE9BQU8scUJBQXFCLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMvRSxDQUFDLENBQUM7QUFHRjs7O0dBR0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sR0FBRyxVQUFTLEtBQUs7SUFDdkYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDM0QsQ0FBQyxDQUFDO0FBR0Y7OztHQUdHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUc7SUFDMUUsT0FBTyxxQkFBcUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlFLENBQUMsQ0FBQztBQUdGOzs7R0FHRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLFVBQVMsS0FBSztJQUN4RixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN4RCxDQUFDLENBQUM7QUFHRjs7O0dBR0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLEdBQUc7SUFDNUUsT0FBTyxxQkFBcUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlFLENBQUMsQ0FBQztBQUdGOzs7R0FHRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsR0FBRyxVQUFTLEtBQUs7SUFDMUYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDeEQsQ0FBQyxDQUFDO0FBR0Y7OztHQUdHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRztJQUN0RSxPQUFPLHFCQUFxQixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUUsQ0FBQyxDQUFDO0FBR0Y7OztHQUdHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxVQUFTLEtBQUs7SUFDcEYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDeEQsQ0FBQyxDQUFDO0FBR0Y7OztHQUdHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLGtCQUFrQixHQUFHO0lBQzNFLE9BQU8scUJBQXFCLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5RSxDQUFDLENBQUM7QUFHRjs7O0dBR0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEdBQUcsVUFBUyxLQUFLO0lBQ3pGLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3hELENBQUMsQ0FBQztBQUdGOzs7R0FHRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsR0FBRztJQUN6RSxPQUFPLDZFQUE2RSxDQUFDLENBQ25GLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNHLENBQUMsQ0FBQztBQUdGOzs7RUFHRTtBQUNGLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsR0FBRyxVQUFTLEtBQUs7SUFDdkYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDOUQsQ0FBQyxDQUFDO0FBR0Y7Ozs7R0FJRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEdBQUcsVUFBUyxTQUFTLEVBQUUsU0FBUztJQUNsRyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3ZJLENBQUMsQ0FBQztBQUdGOzs7R0FHRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsR0FBRztJQUMzRSxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNuQyxDQUFDLENBQUM7QUFJRjs7OztHQUlHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUk1RSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUN0Qzs7Ozs7Ozs7Ozs7T0FXRztJQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxVQUFTLG1CQUFtQjtRQUNyRyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25HLENBQUMsQ0FBQztJQUdGOzs7Ozs7OztPQVFHO0lBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLEdBQUcsVUFBUyxlQUFlLEVBQUUsR0FBRztRQUM1RixJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUc7WUFDZixTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxFQUNuRCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDO1lBQzFGLE1BQU0sRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSx1Q0FBdUMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7U0FDakgsQ0FBQztRQUVGLElBQUksZUFBZSxFQUFFLENBQUM7WUFDcEIsR0FBRyxDQUFDLG9CQUFvQixHQUFHLEdBQUcsQ0FBQztRQUNqQyxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLENBQUM7QUFDRixDQUFDO0FBR0Q7Ozs7R0FJRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsaUJBQWlCLEdBQUcsVUFBUyxLQUFLO0lBQ3RGLElBQUksTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxJQUFJLEdBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUM7SUFDcEUsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLDJCQUEyQixDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN4RyxDQUFDLENBQUM7QUFHRjs7Ozs7O0dBTUc7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLDJCQUEyQixHQUFHLFVBQVMsR0FBRyxFQUFFLE1BQU07SUFDdEcsT0FBTyxNQUFNLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztRQUMxQixJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLE1BQU07UUFDUixDQUFDO1FBQ0QsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3BDLFFBQVEsS0FBSyxFQUFFLENBQUM7WUFDaEIsS0FBSyxDQUFDO2dCQUNKLElBQUksS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUM7Z0JBQzVFLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7Z0JBQ2xILEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3BCLE1BQU07WUFDUixLQUFLLENBQUM7Z0JBQ0osSUFBSSxLQUFLLEdBQUcsSUFBSSx1Q0FBdUMsQ0FBQyxjQUFjLENBQUM7Z0JBQ3ZFLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFDLHVDQUF1QyxDQUFDLGNBQWMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO2dCQUM3RyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNyQixNQUFNO1lBQ1I7Z0JBQ0UsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNuQixNQUFNO1FBQ1IsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsQ0FBQztBQUdGOzs7R0FHRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLGVBQWUsR0FBRztJQUNoRixJQUFJLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLHVCQUF1QixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM1RixPQUFPLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQztBQUNsQyxDQUFDLENBQUM7QUFHRjs7Ozs7O0dBTUc7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLHVCQUF1QixHQUFHLFVBQVMsT0FBTyxFQUFFLE1BQU07SUFDdEcsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBQ2xCLENBQUMsR0FBRyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0IsSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sQ0FBQyxvQkFBb0IsQ0FDekIsQ0FBQyxFQUNELENBQUMsRUFDRCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyx1QkFBdUIsQ0FDcEYsQ0FBQztJQUNKLENBQUM7SUFDRCxDQUFDLEdBQUcsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3hCLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2QsTUFBTSxDQUFDLFlBQVksQ0FDakIsQ0FBQyxFQUNELENBQUMsRUFDRCx1Q0FBdUMsQ0FBQyxjQUFjLENBQUMsdUJBQXVCLENBQy9FLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBTUYsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDdEM7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLFVBQVMsbUJBQW1CO1FBQzNHLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3pHLENBQUMsQ0FBQztJQUdGOzs7Ozs7OztPQVFHO0lBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFVBQVMsZUFBZSxFQUFFLEdBQUc7UUFDbEcsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHO1lBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDbEQsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDckQsVUFBVSxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1NBQ2hILENBQUM7UUFFRixJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ3BCLEdBQUcsQ0FBQyxvQkFBb0IsR0FBRyxHQUFHLENBQUM7UUFDakMsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQyxDQUFDO0FBQ0YsQ0FBQztBQUdEOzs7O0dBSUc7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxpQkFBaUIsR0FBRyxVQUFTLEtBQUs7SUFDNUYsSUFBSSxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLElBQUksR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUM7SUFDMUUsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDOUcsQ0FBQyxDQUFDO0FBR0Y7Ozs7OztHQU1HO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsMkJBQTJCLEdBQUcsVUFBUyxHQUFHLEVBQUUsTUFBTTtJQUM1RyxPQUFPLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1FBQzFCLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDeEIsTUFBTTtRQUNSLENBQUM7UUFDRCxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDcEMsUUFBUSxLQUFLLEVBQUUsQ0FBQztZQUNoQixLQUFLLENBQUM7Z0JBQ0osSUFBSSxLQUFLLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztnQkFDeEQsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbkIsTUFBTTtZQUNSLEtBQUssQ0FBQztnQkFDSixJQUFJLEtBQUssR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO2dCQUN4RCxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN0QixNQUFNO1lBQ1IsS0FBSyxDQUFDO2dCQUNKLElBQUksS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUM7Z0JBQzlELE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLDJCQUEyQixDQUFDLENBQUM7Z0JBQ3BHLEdBQUcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pCLE1BQU07WUFDUjtnQkFDRSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ25CLE1BQU07UUFDUixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxDQUFDO0FBR0Y7OztHQUdHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLGVBQWUsR0FBRztJQUN0RixJQUFJLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEcsT0FBTyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7QUFDbEMsQ0FBQyxDQUFDO0FBR0Y7Ozs7OztHQU1HO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsdUJBQXVCLEdBQUcsVUFBUyxPQUFPLEVBQUUsTUFBTTtJQUM1RyxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUM7SUFDbEIsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN0QixJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDakIsTUFBTSxDQUFDLFdBQVcsQ0FDaEIsQ0FBQyxFQUNELENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELENBQUMsR0FBRyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDekIsSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sQ0FBQyxXQUFXLENBQ2hCLENBQUMsRUFDRCxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxDQUFDLEdBQUcsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzVCLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2QsTUFBTSxDQUFDLFlBQVksQ0FDakIsQ0FBQyxFQUNELENBQUMsRUFDRCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsQ0FDdEUsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDLENBQUM7QUFHRjs7O0dBR0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxHQUFHO0lBQzlFLE9BQU8scUJBQXFCLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMvRSxDQUFDLENBQUM7QUFHRjs7O0dBR0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxHQUFHLFVBQVMsS0FBSztJQUM1RixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMzRCxDQUFDLENBQUM7QUFHRjs7O0dBR0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBVSxHQUFHO0lBQ2pGLE9BQU8scUJBQXFCLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMvRSxDQUFDLENBQUM7QUFHRjs7O0dBR0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBVSxHQUFHLFVBQVMsS0FBSztJQUMvRixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMzRCxDQUFDLENBQUM7QUFHRjs7O0dBR0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsYUFBYSxHQUFHO0lBQ3BGLE9BQU8sNERBQTRELENBQUMsQ0FDbEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUYsQ0FBQyxDQUFDO0FBR0Y7OztFQUdFO0FBQ0YsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxVQUFTLEtBQUs7SUFDbEcsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3RELENBQUMsQ0FBQztBQUdGOzs7R0FHRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxlQUFlLEdBQUc7SUFDdEYsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3ZDLENBQUMsQ0FBQztBQUdGOzs7R0FHRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxhQUFhLEdBQUc7SUFDcEYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO0FBQ2hELENBQUMsQ0FBQztBQUdGOzs7R0FHRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLFlBQVksR0FBRztJQUM3RSxPQUFPLGtGQUFrRixDQUFDLENBQ3hGLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEgsQ0FBQyxDQUFDO0FBR0Y7OztFQUdFO0FBQ0YsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsWUFBWSxHQUFHLFVBQVMsS0FBSztJQUMzRixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUM5RCxDQUFDLENBQUM7QUFHRjs7OztHQUlHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLFVBQVMsU0FBUyxFQUFFLFNBQVM7SUFDdEcsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLHlCQUF5QixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQzVJLENBQUMsQ0FBQztBQUdGOzs7R0FHRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLGNBQWMsR0FBRztJQUMvRSxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDL0IsQ0FBQyxDQUFDO0FBR0Y7OztHQUdHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsU0FBUyxHQUFHO0lBQzFFLE9BQU8seURBQXlELENBQUMsQ0FDL0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLHVDQUF1QyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25HLENBQUMsQ0FBQztBQUdGOzs7RUFHRTtBQUNGLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLFNBQVMsR0FBRyxVQUFTLEtBQUs7SUFDeEYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3RELENBQUMsQ0FBQztBQUdGOzs7R0FHRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRztJQUM1RSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDbkMsQ0FBQyxDQUFDO0FBR0Y7OztHQUdHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsU0FBUyxHQUFHO0lBQzFFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQztBQUNoRCxDQUFDLENBQUM7QUFJRjs7OztHQUlHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUl6RSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUN0Qzs7Ozs7Ozs7Ozs7T0FXRztJQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxVQUFTLG1CQUFtQjtRQUNsRyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hHLENBQUMsQ0FBQztJQUdGOzs7Ozs7OztPQVFHO0lBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEdBQUcsVUFBUyxlQUFlLEVBQUUsR0FBRztRQUN6RixJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUc7WUFDZixjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLEVBQzdELEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxlQUFlLENBQUM7WUFDM0YsTUFBTSxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLHVDQUF1QyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztTQUNqSCxDQUFDO1FBRUYsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNwQixHQUFHLENBQUMsb0JBQW9CLEdBQUcsR0FBRyxDQUFDO1FBQ2pDLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsQ0FBQztBQUNGLENBQUM7QUFHRDs7OztHQUlHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsR0FBRyxVQUFTLEtBQUs7SUFDbkYsSUFBSSxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLElBQUksR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztJQUNqRSxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsMkJBQTJCLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3JHLENBQUMsQ0FBQztBQUdGOzs7Ozs7R0FNRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsMkJBQTJCLEdBQUcsVUFBUyxHQUFHLEVBQUUsTUFBTTtJQUNuRyxPQUFPLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1FBQzFCLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDeEIsTUFBTTtRQUNSLENBQUM7UUFDRCxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDcEMsUUFBUSxLQUFLLEVBQUUsQ0FBQztZQUNoQixLQUFLLENBQUM7Z0JBQ0osSUFBSSxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQztnQkFDN0UsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsMkJBQTJCLENBQUMsQ0FBQztnQkFDbkgsR0FBRyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDekIsTUFBTTtZQUNSLEtBQUssQ0FBQztnQkFDSixJQUFJLEtBQUssR0FBRyxJQUFJLHVDQUF1QyxDQUFDLGNBQWMsQ0FBQztnQkFDdkUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUMsdUNBQXVDLENBQUMsY0FBYyxDQUFDLDJCQUEyQixDQUFDLENBQUM7Z0JBQzdHLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3JCLE1BQU07WUFDUjtnQkFDRSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ25CLE1BQU07UUFDUixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxDQUFDO0FBR0Y7OztHQUdHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsZUFBZSxHQUFHO0lBQzdFLElBQUksTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3pGLE9BQU8sTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO0FBQ2xDLENBQUMsQ0FBQztBQUdGOzs7Ozs7R0FNRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsdUJBQXVCLEdBQUcsVUFBUyxPQUFPLEVBQUUsTUFBTTtJQUNuRyxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUM7SUFDbEIsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ2hDLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNqQixNQUFNLENBQUMsb0JBQW9CLENBQ3pCLENBQUMsRUFDRCxDQUFDLEVBQ0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQ3JGLENBQUM7SUFDSixDQUFDO0lBQ0QsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN4QixJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNkLE1BQU0sQ0FBQyxZQUFZLENBQ2pCLENBQUMsRUFDRCxDQUFDLEVBQ0QsdUNBQXVDLENBQUMsY0FBYyxDQUFDLHVCQUF1QixDQUMvRSxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMsQ0FBQztBQU1GLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQ3RDOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxVQUFTLG1CQUFtQjtRQUM1RyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMxRyxDQUFDLENBQUM7SUFHRjs7Ozs7Ozs7T0FRRztJQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxVQUFTLGVBQWUsRUFBRSxHQUFHO1FBQ25HLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRztZQUNmLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3ZELElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2xELEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1NBQzlDLENBQUM7UUFFRixJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ3BCLEdBQUcsQ0FBQyxvQkFBb0IsR0FBRyxHQUFHLENBQUM7UUFDakMsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQyxDQUFDO0FBQ0YsQ0FBQztBQUdEOzs7O0dBSUc7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsR0FBRyxVQUFTLEtBQUs7SUFDN0YsSUFBSSxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLElBQUksR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUM7SUFDM0UsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQywyQkFBMkIsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDL0csQ0FBQyxDQUFDO0FBR0Y7Ozs7OztHQU1HO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsMkJBQTJCLEdBQUcsVUFBUyxHQUFHLEVBQUUsTUFBTTtJQUM3RyxPQUFPLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1FBQzFCLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDeEIsTUFBTTtRQUNSLENBQUM7UUFDRCxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDcEMsUUFBUSxLQUFLLEVBQUUsQ0FBQztZQUNoQixLQUFLLENBQUM7Z0JBQ0osSUFBSSxLQUFLLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztnQkFDeEQsR0FBRyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDeEIsTUFBTTtZQUNSLEtBQUssQ0FBQztnQkFDSixJQUFJLEtBQUssR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO2dCQUN4RCxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNuQixNQUFNO1lBQ1IsS0FBSyxDQUFDO2dCQUNKLElBQUksS0FBSyxHQUFHLHFCQUFxQixDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7Z0JBQ3hELEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2xCLE1BQU07WUFDUjtnQkFDRSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ25CLE1BQU07UUFDUixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxDQUFDO0FBR0Y7OztHQUdHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLGVBQWUsR0FBRztJQUN2RixJQUFJLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbkcsT0FBTyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7QUFDbEMsQ0FBQyxDQUFDO0FBR0Y7Ozs7OztHQU1HO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsdUJBQXVCLEdBQUcsVUFBUyxPQUFPLEVBQUUsTUFBTTtJQUM3RyxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUM7SUFDbEIsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzQixJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDakIsTUFBTSxDQUFDLFdBQVcsQ0FDaEIsQ0FBQyxFQUNELENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELENBQUMsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdEIsSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sQ0FBQyxXQUFXLENBQ2hCLENBQUMsRUFDRCxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3JCLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNqQixNQUFNLENBQUMsV0FBVyxDQUNoQixDQUFDLEVBQ0QsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBR0Y7OztHQUdHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFlBQVksR0FBRztJQUNwRixPQUFPLHFCQUFxQixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDL0UsQ0FBQyxDQUFDO0FBR0Y7OztHQUdHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFlBQVksR0FBRyxVQUFTLEtBQUs7SUFDbEcsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDM0QsQ0FBQyxDQUFDO0FBR0Y7OztHQUdHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE9BQU8sR0FBRztJQUMvRSxPQUFPLHFCQUFxQixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDL0UsQ0FBQyxDQUFDO0FBR0Y7OztHQUdHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE9BQU8sR0FBRyxVQUFTLEtBQUs7SUFDN0YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDM0QsQ0FBQyxDQUFDO0FBR0Y7OztHQUdHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRztJQUM5RSxPQUFPLHFCQUFxQixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDL0UsQ0FBQyxDQUFDO0FBR0Y7OztHQUdHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxVQUFTLEtBQUs7SUFDNUYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDM0QsQ0FBQyxDQUFDO0FBR0Y7OztHQUdHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLEdBQUc7SUFDL0UsT0FBTyxtRkFBbUYsQ0FBQyxDQUN6RixJQUFJLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pILENBQUMsQ0FBQztBQUdGOzs7RUFHRTtBQUNGLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLGlCQUFpQixHQUFHLFVBQVMsS0FBSztJQUM3RixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUM5RCxDQUFDLENBQUM7QUFHRjs7OztHQUlHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsYUFBYSxHQUFHLFVBQVMsU0FBUyxFQUFFLFNBQVM7SUFDeEcsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLHlCQUF5QixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQzdJLENBQUMsQ0FBQztBQUdGOzs7R0FHRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLG1CQUFtQixHQUFHO0lBQ2pGLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3BDLENBQUMsQ0FBQztBQUdGOzs7R0FHRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFNBQVMsR0FBRztJQUN2RSxPQUFPLHlEQUF5RCxDQUFDLENBQy9ELElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSx1Q0FBdUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuRyxDQUFDLENBQUM7QUFHRjs7O0VBR0U7QUFDRixLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsVUFBUyxLQUFLO0lBQ3JGLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN0RCxDQUFDLENBQUM7QUFHRjs7O0dBR0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUc7SUFDekUsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ25DLENBQUMsQ0FBQztBQUdGOzs7R0FHRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFNBQVMsR0FBRztJQUN2RSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUM7QUFDaEQsQ0FBQyxDQUFDO0FBTUYsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDdEM7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsVUFBUyxtQkFBbUI7UUFDbEcsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNoRyxDQUFDLENBQUM7SUFHRjs7Ozs7Ozs7T0FRRztJQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsUUFBUSxHQUFHLFVBQVMsZUFBZSxFQUFFLEdBQUc7UUFDekYsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHO1lBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDbEQsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDL0MsQ0FBQztRQUVGLElBQUksZUFBZSxFQUFFLENBQUM7WUFDcEIsR0FBRyxDQUFDLG9CQUFvQixHQUFHLEdBQUcsQ0FBQztRQUNqQyxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLENBQUM7QUFDRixDQUFDO0FBR0Q7Ozs7R0FJRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLEdBQUcsVUFBUyxLQUFLO0lBQ25GLElBQUksTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxJQUFJLEdBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUM7SUFDakUsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLDJCQUEyQixDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNyRyxDQUFDLENBQUM7QUFHRjs7Ozs7O0dBTUc7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLDJCQUEyQixHQUFHLFVBQVMsR0FBRyxFQUFFLE1BQU07SUFDbkcsT0FBTyxNQUFNLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztRQUMxQixJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLE1BQU07UUFDUixDQUFDO1FBQ0QsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3BDLFFBQVEsS0FBSyxFQUFFLENBQUM7WUFDaEIsS0FBSyxDQUFDO2dCQUNKLElBQUksS0FBSyxHQUFHLHFCQUFxQixDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7Z0JBQ3hELEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25CLE1BQU07WUFDUixLQUFLLENBQUM7Z0JBQ0osSUFBSSxLQUFLLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztnQkFDdkQsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDcEIsTUFBTTtZQUNSO2dCQUNFLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDbkIsTUFBTTtRQUNSLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUM7QUFHRjs7O0dBR0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxlQUFlLEdBQUc7SUFDN0UsSUFBSSxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDekYsT0FBTyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7QUFDbEMsQ0FBQyxDQUFDO0FBR0Y7Ozs7OztHQU1HO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyx1QkFBdUIsR0FBRyxVQUFTLE9BQU8sRUFBRSxNQUFNO0lBQ25HLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUNsQixDQUFDLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3RCLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNqQixNQUFNLENBQUMsV0FBVyxDQUNoQixDQUFDLEVBQ0QsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBQ0QsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNaLE1BQU0sQ0FBQyxVQUFVLENBQ2YsQ0FBQyxFQUNELENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMsQ0FBQztBQUdGOzs7R0FHRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLE9BQU8sR0FBRztJQUNyRSxPQUFPLHFCQUFxQixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDL0UsQ0FBQyxDQUFDO0FBR0Y7OztHQUdHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsT0FBTyxHQUFHLFVBQVMsS0FBSztJQUNuRixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMzRCxDQUFDLENBQUM7QUFHRjs7O0dBR0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUc7SUFDdEUsT0FBTyxxQkFBcUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlFLENBQUMsQ0FBQztBQUdGOzs7R0FHRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxVQUFTLEtBQUs7SUFDcEYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDeEQsQ0FBQyxDQUFDO0FBTUYsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDdEM7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsVUFBUyxtQkFBbUI7UUFDbkcsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNqRyxDQUFDLENBQUM7SUFHRjs7Ozs7Ozs7T0FRRztJQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsUUFBUSxHQUFHLFVBQVMsZUFBZSxFQUFFLEdBQUc7UUFDMUYsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHO1lBQ2YsU0FBUyxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1lBQ2pJLE1BQU0sRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSx1Q0FBdUMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7U0FDakgsQ0FBQztRQUVGLElBQUksZUFBZSxFQUFFLENBQUM7WUFDcEIsR0FBRyxDQUFDLG9CQUFvQixHQUFHLEdBQUcsQ0FBQztRQUNqQyxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLENBQUM7QUFDRixDQUFDO0FBR0Q7Ozs7R0FJRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLEdBQUcsVUFBUyxLQUFLO0lBQ3BGLElBQUksTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxJQUFJLEdBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUM7SUFDbEUsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLDJCQUEyQixDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN0RyxDQUFDLENBQUM7QUFHRjs7Ozs7O0dBTUc7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLDJCQUEyQixHQUFHLFVBQVMsR0FBRyxFQUFFLE1BQU07SUFDcEcsT0FBTyxNQUFNLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztRQUMxQixJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLE1BQU07UUFDUixDQUFDO1FBQ0QsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3BDLFFBQVEsS0FBSyxFQUFFLENBQUM7WUFDaEIsS0FBSyxDQUFDO2dCQUNKLElBQUksS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUM7Z0JBQzlFLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLDJCQUEyQixDQUFDLENBQUM7Z0JBQ3BILEdBQUcsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3hCLE1BQU07WUFDUixLQUFLLENBQUM7Z0JBQ0osSUFBSSxLQUFLLEdBQUcsSUFBSSx1Q0FBdUMsQ0FBQyxjQUFjLENBQUM7Z0JBQ3ZFLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFDLHVDQUF1QyxDQUFDLGNBQWMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO2dCQUM3RyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNyQixNQUFNO1lBQ1I7Z0JBQ0UsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNuQixNQUFNO1FBQ1IsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsQ0FBQztBQUdGOzs7R0FHRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLGVBQWUsR0FBRztJQUM5RSxJQUFJLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLHVCQUF1QixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMxRixPQUFPLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQztBQUNsQyxDQUFDLENBQUM7QUFHRjs7Ozs7O0dBTUc7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLHVCQUF1QixHQUFHLFVBQVMsT0FBTyxFQUFFLE1BQU07SUFDcEcsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBQ2xCLENBQUMsR0FBRyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0IsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDZCxNQUFNLENBQUMsWUFBWSxDQUNqQixDQUFDLEVBQ0QsQ0FBQyxFQUNELEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUN0RixDQUFDO0lBQ0osQ0FBQztJQUNELENBQUMsR0FBRyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDeEIsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDZCxNQUFNLENBQUMsWUFBWSxDQUNqQixDQUFDLEVBQ0QsQ0FBQyxFQUNELHVDQUF1QyxDQUFDLGNBQWMsQ0FBQyx1QkFBdUIsQ0FDL0UsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDLENBQUM7QUFNRixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUN0Qzs7Ozs7Ozs7Ozs7T0FXRztJQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsVUFBUyxtQkFBbUI7UUFDM0csT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDekcsQ0FBQyxDQUFDO0lBR0Y7Ozs7Ozs7O09BUUc7SUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsVUFBUyxlQUFlLEVBQUUsR0FBRztRQUNsRyxJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUc7WUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNsRCxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNwRCxjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQztZQUN0RSxHQUFHLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztTQUM5QyxDQUFDO1FBRUYsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNwQixHQUFHLENBQUMsb0JBQW9CLEdBQUcsR0FBRyxDQUFDO1FBQ2pDLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsQ0FBQztBQUNGLENBQUM7QUFHRDs7OztHQUlHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEdBQUcsVUFBUyxLQUFLO0lBQzVGLElBQUksTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxJQUFJLEdBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDO0lBQzFFLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzlHLENBQUMsQ0FBQztBQUdGOzs7Ozs7R0FNRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLDJCQUEyQixHQUFHLFVBQVMsR0FBRyxFQUFFLE1BQU07SUFDNUcsT0FBTyxNQUFNLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztRQUMxQixJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLE1BQU07UUFDUixDQUFDO1FBQ0QsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3BDLFFBQVEsS0FBSyxFQUFFLENBQUM7WUFDaEIsS0FBSyxDQUFDO2dCQUNKLElBQUksS0FBSyxHQUFHLHFCQUFxQixDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7Z0JBQ3hELEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25CLE1BQU07WUFDUixLQUFLLENBQUM7Z0JBQ0osSUFBSSxLQUFLLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztnQkFDeEQsR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDckIsTUFBTTtZQUNSLEtBQUssQ0FBQztnQkFDSixJQUFJLEtBQUssR0FBRyxzQkFBc0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUN2RCxHQUFHLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzdCLE1BQU07WUFDUixLQUFLLENBQUM7Z0JBQ0osSUFBSSxLQUFLLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztnQkFDeEQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbEIsTUFBTTtZQUNSO2dCQUNFLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDbkIsTUFBTTtRQUNSLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUM7QUFHRjs7O0dBR0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsZUFBZSxHQUFHO0lBQ3RGLElBQUksTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNsRyxPQUFPLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQztBQUNsQyxDQUFDLENBQUM7QUFHRjs7Ozs7O0dBTUc7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsR0FBRyxVQUFTLE9BQU8sRUFBRSxNQUFNO0lBQzVHLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUNsQixDQUFDLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3RCLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNqQixNQUFNLENBQUMsV0FBVyxDQUNoQixDQUFDLEVBQ0QsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBQ0QsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN4QixJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDakIsTUFBTSxDQUFDLFdBQVcsQ0FDaEIsQ0FBQyxFQUNELENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELENBQUMsR0FBRyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUNoQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ04sTUFBTSxDQUFDLFNBQVMsQ0FDZCxDQUFDLEVBQ0QsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBQ0QsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNyQixJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDakIsTUFBTSxDQUFDLFdBQVcsQ0FDaEIsQ0FBQyxFQUNELENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMsQ0FBQztBQUdGOzs7R0FHRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEdBQUc7SUFDOUUsT0FBTyxxQkFBcUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQy9FLENBQUMsQ0FBQztBQUdGOzs7R0FHRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEdBQUcsVUFBUyxLQUFLO0lBQzVGLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzNELENBQUMsQ0FBQztBQUdGOzs7R0FHRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEdBQUc7SUFDaEYsT0FBTyxxQkFBcUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQy9FLENBQUMsQ0FBQztBQUdGOzs7R0FHRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsVUFBUyxLQUFLO0lBQzlGLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzNELENBQUMsQ0FBQztBQUdGOzs7R0FHRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsR0FBRztJQUN4RixPQUFPLHNCQUFzQixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDMUYsQ0FBQyxDQUFDO0FBR0Y7OztHQUdHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLGlCQUFpQixHQUFHLFVBQVMsS0FBSztJQUN0RyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUM1RCxDQUFDLENBQUM7QUFHRjs7O0dBR0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHO0lBQzdFLE9BQU8scUJBQXFCLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMvRSxDQUFDLENBQUM7QUFHRjs7O0dBR0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLFVBQVMsS0FBSztJQUMzRixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMzRCxDQUFDLENBQUM7QUFJRjs7OztHQUlHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFJbEYsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDdEM7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLFVBQVMsbUJBQW1CO1FBQzNHLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3pHLENBQUMsQ0FBQztJQUdGOzs7Ozs7OztPQVFHO0lBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLFVBQVMsZUFBZSxFQUFFLEdBQUc7UUFDbEcsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHO1lBQ2YsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDckQsWUFBWSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsRUFDekQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLGVBQWUsQ0FBQztTQUN2RixDQUFDO1FBRUYsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNwQixHQUFHLENBQUMsb0JBQW9CLEdBQUcsR0FBRyxDQUFDO1FBQ2pDLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsQ0FBQztBQUNGLENBQUM7QUFHRDs7OztHQUlHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEdBQUcsVUFBUyxLQUFLO0lBQzVGLElBQUksTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxJQUFJLEdBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDO0lBQzFFLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzlHLENBQUMsQ0FBQztBQUdGOzs7Ozs7R0FNRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLDJCQUEyQixHQUFHLFVBQVMsR0FBRyxFQUFFLE1BQU07SUFDNUcsT0FBTyxNQUFNLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztRQUMxQixJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLE1BQU07UUFDUixDQUFDO1FBQ0QsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3BDLFFBQVEsS0FBSyxFQUFFLENBQUM7WUFDaEIsS0FBSyxDQUFDO2dCQUNKLElBQUksS0FBSyxHQUFHLHFCQUFxQixDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7Z0JBQ3hELEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3RCLE1BQU07WUFDUixLQUFLLENBQUM7Z0JBQ0osSUFBSSxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQztnQkFDNUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FBQztnQkFDbEgsR0FBRyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdkIsTUFBTTtZQUNSO2dCQUNFLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDbkIsTUFBTTtRQUNSLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUM7QUFHRjs7O0dBR0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsZUFBZSxHQUFHO0lBQ3RGLElBQUksTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNsRyxPQUFPLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQztBQUNsQyxDQUFDLENBQUM7QUFHRjs7Ozs7O0dBTUc7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsR0FBRyxVQUFTLE9BQU8sRUFBRSxNQUFNO0lBQzVHLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUNsQixDQUFDLEdBQUcsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3pCLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNqQixNQUFNLENBQUMsV0FBVyxDQUNoQixDQUFDLEVBQ0QsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBQ0QsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUM5QixJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDakIsTUFBTSxDQUFDLG9CQUFvQixDQUN6QixDQUFDLEVBQ0QsQ0FBQyxFQUNELEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUNwRixDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMsQ0FBQztBQUdGOzs7R0FHRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxVQUFVLEdBQUc7SUFDakYsT0FBTyxxQkFBcUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQy9FLENBQUMsQ0FBQztBQUdGOzs7R0FHRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxVQUFVLEdBQUcsVUFBUyxLQUFLO0lBQy9GLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzNELENBQUMsQ0FBQztBQUdGOzs7R0FHRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxlQUFlLEdBQUc7SUFDdEYsT0FBTyxrRkFBa0YsQ0FBQyxDQUN4RixJQUFJLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hILENBQUMsQ0FBQztBQUdGOzs7RUFHRTtBQUNGLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxlQUFlLEdBQUcsVUFBUyxLQUFLO0lBQ3BHLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzlELENBQUMsQ0FBQztBQUdGOzs7O0dBSUc7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsV0FBVyxHQUFHLFVBQVMsU0FBUyxFQUFFLFNBQVM7SUFDL0csT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLHlCQUF5QixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQzVJLENBQUMsQ0FBQztBQUdGOzs7R0FHRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsR0FBRztJQUN4RixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDbEMsQ0FBQyxDQUFDO0FBSUY7Ozs7R0FJRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBSXBGLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQ3RDOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxVQUFTLG1CQUFtQjtRQUM3RyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMzRyxDQUFDLENBQUM7SUFHRjs7Ozs7Ozs7T0FRRztJQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxVQUFTLGVBQWUsRUFBRSxHQUFHO1FBQ3BHLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRztZQUNmLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3ZELElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2xELEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2pELFlBQVksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLEVBQ3pELEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxlQUFlLENBQUM7U0FDdkYsQ0FBQztRQUVGLElBQUksZUFBZSxFQUFFLENBQUM7WUFDcEIsR0FBRyxDQUFDLG9CQUFvQixHQUFHLEdBQUcsQ0FBQztRQUNqQyxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLENBQUM7QUFDRixDQUFDO0FBR0Q7Ozs7R0FJRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLGlCQUFpQixHQUFHLFVBQVMsS0FBSztJQUM5RixJQUFJLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsSUFBSSxHQUFHLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQztJQUM1RSxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLDJCQUEyQixDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNoSCxDQUFDLENBQUM7QUFHRjs7Ozs7O0dBTUc7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQywyQkFBMkIsR0FBRyxVQUFTLEdBQUcsRUFBRSxNQUFNO0lBQzlHLE9BQU8sTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7UUFDMUIsSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUN4QixNQUFNO1FBQ1IsQ0FBQztRQUNELElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNwQyxRQUFRLEtBQUssRUFBRSxDQUFDO1lBQ2hCLEtBQUssQ0FBQztnQkFDSixJQUFJLEtBQUssR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO2dCQUN4RCxHQUFHLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN4QixNQUFNO1lBQ1IsS0FBSyxDQUFDO2dCQUNKLElBQUksS0FBSyxHQUFHLHFCQUFxQixDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7Z0JBQ3hELEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25CLE1BQU07WUFDUixLQUFLLENBQUM7Z0JBQ0osSUFBSSxLQUFLLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztnQkFDeEQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbEIsTUFBTTtZQUNSLEtBQUssQ0FBQztnQkFDSixJQUFJLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDO2dCQUM1RSxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO2dCQUNsSCxHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN2QixNQUFNO1lBQ1I7Z0JBQ0UsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNuQixNQUFNO1FBQ1IsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsQ0FBQztBQUdGOzs7R0FHRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxlQUFlLEdBQUc7SUFDeEYsSUFBSSxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3BHLE9BQU8sTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO0FBQ2xDLENBQUMsQ0FBQztBQUdGOzs7Ozs7R0FNRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLHVCQUF1QixHQUFHLFVBQVMsT0FBTyxFQUFFLE1BQU07SUFDOUcsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBQ2xCLENBQUMsR0FBRyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0IsSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sQ0FBQyxXQUFXLENBQ2hCLENBQUMsRUFDRCxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxDQUFDLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3RCLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNqQixNQUFNLENBQUMsV0FBVyxDQUNoQixDQUFDLEVBQ0QsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBQ0QsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNyQixJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDakIsTUFBTSxDQUFDLFdBQVcsQ0FDaEIsQ0FBQyxFQUNELENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELENBQUMsR0FBRyxPQUFPLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDOUIsSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sQ0FBQyxvQkFBb0IsQ0FDekIsQ0FBQyxFQUNELENBQUMsRUFDRCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FDcEYsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDLENBQUM7QUFHRjs7O0dBR0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsWUFBWSxHQUFHO0lBQ3JGLE9BQU8scUJBQXFCLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMvRSxDQUFDLENBQUM7QUFHRjs7O0dBR0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsWUFBWSxHQUFHLFVBQVMsS0FBSztJQUNuRyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMzRCxDQUFDLENBQUM7QUFHRjs7O0dBR0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsT0FBTyxHQUFHO0lBQ2hGLE9BQU8scUJBQXFCLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMvRSxDQUFDLENBQUM7QUFHRjs7O0dBR0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsT0FBTyxHQUFHLFVBQVMsS0FBSztJQUM5RixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMzRCxDQUFDLENBQUM7QUFHRjs7O0dBR0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHO0lBQy9FLE9BQU8scUJBQXFCLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMvRSxDQUFDLENBQUM7QUFHRjs7O0dBR0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLFVBQVMsS0FBSztJQUM3RixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMzRCxDQUFDLENBQUM7QUFHRjs7O0dBR0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsZUFBZSxHQUFHO0lBQ3hGLE9BQU8sa0ZBQWtGLENBQUMsQ0FDeEYsSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoSCxDQUFDLENBQUM7QUFHRjs7O0VBR0U7QUFDRixLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsZUFBZSxHQUFHLFVBQVMsS0FBSztJQUN0RyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUM5RCxDQUFDLENBQUM7QUFHRjs7OztHQUlHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRyxVQUFTLFNBQVMsRUFBRSxTQUFTO0lBQ2pILE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztBQUM1SSxDQUFDLENBQUM7QUFHRjs7O0dBR0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLEdBQUc7SUFDMUYsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2xDLENBQUMsQ0FBQztBQUdGOzs7R0FHRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLFlBQVksR0FBRztJQUMzRSxPQUFPLDRFQUE0RSxDQUFDLENBQ2xGLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFHLENBQUMsQ0FBQztBQUdGOzs7RUFHRTtBQUNGLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLFlBQVksR0FBRyxVQUFTLEtBQUs7SUFDekYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3RELENBQUMsQ0FBQztBQUdGOzs7R0FHRztBQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLGNBQWMsR0FBRztJQUM3RSxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDdEMsQ0FBQyxDQUFDO0FBR0Y7OztHQUdHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsWUFBWSxHQUFHO0lBQzNFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQztBQUNoRCxDQUFDLENBQUM7QUFHRjs7O0dBR0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxTQUFTLEdBQUc7SUFDeEUsT0FBTyx5REFBeUQsQ0FBQyxDQUMvRCxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsdUNBQXVDLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkcsQ0FBQyxDQUFDO0FBR0Y7OztFQUdFO0FBQ0YsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsU0FBUyxHQUFHLFVBQVMsS0FBSztJQUN0RixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDdEQsQ0FBQyxDQUFDO0FBR0Y7OztHQUdHO0FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsV0FBVyxHQUFHO0lBQzFFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNuQyxDQUFDLENBQUM7QUFHRjs7O0dBR0c7QUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxTQUFTLEdBQUc7SUFDeEUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO0FBQ2hELENBQUMsQ0FBQztBQUdGLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMifQ==