angular-three 2.13.0 → 3.0.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 (57) hide show
  1. package/fesm2022/angular-three-nativescript.mjs +3 -3
  2. package/fesm2022/angular-three-nativescript.mjs.map +1 -1
  3. package/fesm2022/angular-three-testing.mjs +12 -14
  4. package/fesm2022/angular-three-testing.mjs.map +1 -1
  5. package/fesm2022/angular-three.mjs +123 -106
  6. package/fesm2022/angular-three.mjs.map +1 -1
  7. package/lib/canvas.d.ts +7 -7
  8. package/lib/html.d.ts +2 -2
  9. package/lib/portal.d.ts +2 -2
  10. package/lib/routed-scene.d.ts +8 -2
  11. package/lib/utils/object-events.d.ts +0 -19
  12. package/package.json +4 -10
  13. package/plugin/src/generators/init/schema.json +8 -8
  14. package/testing/lib/utils/web-gl-rendering-context.d.ts +1 -1
  15. package/esm2022/angular-three.mjs +0 -5
  16. package/esm2022/index.mjs +0 -25
  17. package/esm2022/lib/canvas.mjs +0 -188
  18. package/esm2022/lib/directives/args.mjs +0 -53
  19. package/esm2022/lib/directives/selection.mjs +0 -69
  20. package/esm2022/lib/dom/events.mjs +0 -73
  21. package/esm2022/lib/events.mjs +0 -361
  22. package/esm2022/lib/html.mjs +0 -44
  23. package/esm2022/lib/instance.mjs +0 -83
  24. package/esm2022/lib/loader.mjs +0 -93
  25. package/esm2022/lib/loop.mjs +0 -141
  26. package/esm2022/lib/pipes/hexify.mjs +0 -86
  27. package/esm2022/lib/portal.mjs +0 -220
  28. package/esm2022/lib/renderer/catalogue.mjs +0 -7
  29. package/esm2022/lib/renderer/constants.mjs +0 -23
  30. package/esm2022/lib/renderer/index.mjs +0 -544
  31. package/esm2022/lib/renderer/state.mjs +0 -54
  32. package/esm2022/lib/renderer/utils.mjs +0 -223
  33. package/esm2022/lib/roots.mjs +0 -275
  34. package/esm2022/lib/routed-scene.mjs +0 -33
  35. package/esm2022/lib/store.mjs +0 -176
  36. package/esm2022/lib/three-types.mjs +0 -2
  37. package/esm2022/lib/types.mjs +0 -2
  38. package/esm2022/lib/utils/apply-props.mjs +0 -130
  39. package/esm2022/lib/utils/attach.mjs +0 -46
  40. package/esm2022/lib/utils/before-render.mjs +0 -41
  41. package/esm2022/lib/utils/is.mjs +0 -52
  42. package/esm2022/lib/utils/make.mjs +0 -52
  43. package/esm2022/lib/utils/object-events.mjs +0 -137
  44. package/esm2022/lib/utils/output-ref.mjs +0 -9
  45. package/esm2022/lib/utils/parameters.mjs +0 -70
  46. package/esm2022/lib/utils/resolve-ref.mjs +0 -8
  47. package/esm2022/lib/utils/signal-store.mjs +0 -90
  48. package/esm2022/lib/utils/update.mjs +0 -37
  49. package/esm2022/nativescript/angular-three-nativescript.mjs +0 -5
  50. package/esm2022/nativescript/index.mjs +0 -2
  51. package/esm2022/nativescript/lib/canvas.mjs +0 -127
  52. package/esm2022/testing/angular-three-testing.mjs +0 -5
  53. package/esm2022/testing/index.mjs +0 -3
  54. package/esm2022/testing/lib/test-bed.mjs +0 -130
  55. package/esm2022/testing/lib/test-canvas.mjs +0 -45
  56. package/esm2022/testing/lib/utils/mock-canvas.mjs +0 -37
  57. package/esm2022/testing/lib/utils/web-gl-rendering-context.mjs +0 -752
@@ -1,752 +0,0 @@
1
- const functions = [
2
- 'activeTexture',
3
- 'attachShader',
4
- 'beginQuery',
5
- 'beginTransformFeedback',
6
- 'bindAttribLocation',
7
- 'bindBufferBase',
8
- 'bindBufferRange',
9
- 'bindRenderbuffer',
10
- 'bindSampler',
11
- 'bindTransformFeedback',
12
- 'bindVertexArray',
13
- 'blendColor',
14
- 'blendEquation',
15
- 'blendEquationSeparate',
16
- 'blendFunc',
17
- 'blendFuncSeparate',
18
- 'blitFramebuffer',
19
- 'bufferData',
20
- 'bufferSubData',
21
- 'checkFramebufferStatus',
22
- 'clientWaitSync',
23
- 'compileShader',
24
- 'compressedTexImage2D',
25
- 'compressedTexImage3D',
26
- 'compressedTexSubImage2D',
27
- 'compressedTexSubImage3D',
28
- 'copyBufferSubData',
29
- 'copyTexImage2D',
30
- 'copyTexSubImage2D',
31
- 'copyTexSubImage3D',
32
- 'createBuffer',
33
- 'createFramebuffer',
34
- 'createProgram',
35
- 'createQuery',
36
- 'createRenderbuffer',
37
- 'createSampler',
38
- 'createShader',
39
- 'createTexture',
40
- 'createTransformFeedback',
41
- 'createVertexArray',
42
- 'cullFace',
43
- 'deleteBuffer',
44
- 'deleteFramebuffer',
45
- 'deleteProgram',
46
- 'deleteQuery',
47
- 'deleteRenderbuffer',
48
- 'deleteSampler',
49
- 'deleteShader',
50
- 'deleteSync',
51
- 'deleteTexture',
52
- 'deleteTransformFeedback',
53
- 'deleteVertexArray',
54
- 'depthFunc',
55
- 'depthMask',
56
- 'depthRange',
57
- 'detachShader',
58
- 'disable',
59
- 'drawArraysInstanced',
60
- 'drawElementsInstanced',
61
- 'drawRangeElements',
62
- 'enable',
63
- 'endQuery',
64
- 'endTransformFeedback',
65
- 'fenceSync',
66
- 'finish',
67
- 'flush',
68
- 'framebufferRenderbuffer',
69
- 'framebufferTexture2D',
70
- 'framebufferTextureLayer',
71
- 'frontFace',
72
- 'generateMipmap',
73
- 'getActiveAttrib',
74
- 'getActiveUniform',
75
- 'getActiveUniformBlockName',
76
- 'getActiveUniformBlockParameter',
77
- 'getActiveUniforms',
78
- 'getAttachedShaders',
79
- 'getAttribLocation',
80
- 'getBufferParameter',
81
- 'getBufferSubData',
82
- 'getContextAttributes',
83
- 'getError',
84
- 'getExtension',
85
- 'getFragDataLocation',
86
- 'getFramebufferAttachmentParameter',
87
- 'getIndexedParameter',
88
- 'getInternalformatParameter',
89
- 'getParameter',
90
- 'getProgramInfoLog',
91
- 'getProgramParameter',
92
- 'getQuery',
93
- 'getQueryParameter',
94
- 'getRenderbufferParameter',
95
- 'getSamplerParameter',
96
- 'getShaderInfoLog',
97
- 'getShaderParameter',
98
- 'getShaderPrecisionFormat',
99
- 'getShaderSource',
100
- 'getSupportedExtensions',
101
- 'getSyncParameter',
102
- 'getTexParameter',
103
- 'getTransformFeedbackVarying',
104
- 'getUniform',
105
- 'getUniformBlockIndex',
106
- 'getUniformIndices',
107
- 'getUniformLocation',
108
- 'getVertexAttrib',
109
- 'getVertexAttribOffset',
110
- 'hint',
111
- 'invalidateFramebuffer',
112
- 'invalidateSubFramebuffer',
113
- 'isBuffer',
114
- 'isContextLost',
115
- 'isEnabled',
116
- 'isFramebuffer',
117
- 'isProgram',
118
- 'isQuery',
119
- 'isRenderbuffer',
120
- 'isSampler',
121
- 'isShader',
122
- 'isSync',
123
- 'isTexture',
124
- 'isTransformFeedback',
125
- 'isVertexArray',
126
- 'lineWidth',
127
- 'linkProgram',
128
- 'pauseTransformFeedback',
129
- 'pixelStorei',
130
- 'polygonOffset',
131
- 'readBuffer',
132
- 'readPixels',
133
- 'renderbufferStorage',
134
- 'renderbufferStorageMultisample',
135
- 'resumeTransformFeedback',
136
- 'sampleCoverage',
137
- 'samplerParameterf',
138
- 'samplerParameteri',
139
- 'shaderSource',
140
- 'stencilFunc',
141
- 'stencilFuncSeparate',
142
- 'stencilMask',
143
- 'stencilMaskSeparate',
144
- 'stencilOp',
145
- 'stencilOpSeparate',
146
- 'texImage2D',
147
- 'texImage3D',
148
- 'texParameterf',
149
- 'texParameteri',
150
- 'texStorage2D',
151
- 'texStorage3D',
152
- 'texSubImage2D',
153
- 'texSubImage3D',
154
- 'transformFeedbackVaryings',
155
- 'uniform1ui',
156
- 'uniform2ui',
157
- 'uniform3ui',
158
- 'uniform4ui',
159
- 'uniformBlockBinding',
160
- 'useProgram',
161
- 'validateProgram',
162
- 'vertexAttribDivisor',
163
- 'vertexAttribI4i',
164
- 'vertexAttribI4ui',
165
- 'vertexAttribIPointer',
166
- 'waitSync',
167
- 'bindBuffer',
168
- 'bindFramebuffer',
169
- 'bindTexture',
170
- 'clear',
171
- 'clearBufferfi',
172
- 'clearBufferfv',
173
- 'clearBufferiv',
174
- 'clearBufferuiv',
175
- 'clearColor',
176
- 'clearDepth',
177
- 'clearStencil',
178
- 'colorMask',
179
- 'disableVertexAttribArray',
180
- 'drawArrays',
181
- 'drawBuffers',
182
- 'drawElements',
183
- 'enableVertexAttribArray',
184
- 'scissor',
185
- 'uniform1f',
186
- 'uniform1fv',
187
- 'uniform1i',
188
- 'uniform1iv',
189
- 'uniform1uiv',
190
- 'uniform2f',
191
- 'uniform2fv',
192
- 'uniform2i',
193
- 'uniform2iv',
194
- 'uniform2uiv',
195
- 'uniform3f',
196
- 'uniform3fv',
197
- 'uniform3i',
198
- 'uniform3iv',
199
- 'uniform3uiv',
200
- 'uniform4f',
201
- 'uniform4fv',
202
- 'uniform4i',
203
- 'uniform4iv',
204
- 'uniform4uiv',
205
- 'uniformMatrix2fv',
206
- 'uniformMatrix2x3fv',
207
- 'uniformMatrix2x4fv',
208
- 'uniformMatrix3fv',
209
- 'uniformMatrix3x2fv',
210
- 'uniformMatrix3x4fv',
211
- 'uniformMatrix4fv',
212
- 'uniformMatrix4x2fv',
213
- 'uniformMatrix4x3fv',
214
- 'vertexAttrib1f',
215
- 'vertexAttrib1fv',
216
- 'vertexAttrib2f',
217
- 'vertexAttrib2fv',
218
- 'vertexAttrib3f',
219
- 'vertexAttrib3fv',
220
- 'vertexAttrib4f',
221
- 'vertexAttrib4fv',
222
- 'vertexAttribI4iv',
223
- 'vertexAttribI4uiv',
224
- 'vertexAttribPointer',
225
- 'viewport',
226
- 'makeXRCompatible',
227
- ];
228
- const enums = {
229
- DEPTH_BUFFER_BIT: 256,
230
- STENCIL_BUFFER_BIT: 1024,
231
- COLOR_BUFFER_BIT: 16384,
232
- POINTS: 0,
233
- LINES: 1,
234
- LINE_LOOP: 2,
235
- LINE_STRIP: 3,
236
- TRIANGLES: 4,
237
- TRIANGLE_STRIP: 5,
238
- TRIANGLE_FAN: 6,
239
- ZERO: 0,
240
- ONE: 1,
241
- SRC_COLOR: 768,
242
- ONE_MINUS_SRC_COLOR: 769,
243
- SRC_ALPHA: 770,
244
- ONE_MINUS_SRC_ALPHA: 771,
245
- DST_ALPHA: 772,
246
- ONE_MINUS_DST_ALPHA: 773,
247
- DST_COLOR: 774,
248
- ONE_MINUS_DST_COLOR: 775,
249
- SRC_ALPHA_SATURATE: 776,
250
- FUNC_ADD: 32774,
251
- BLEND_EQUATION: 32777,
252
- BLEND_EQUATION_RGB: 32777,
253
- BLEND_EQUATION_ALPHA: 34877,
254
- FUNC_SUBTRACT: 32778,
255
- FUNC_REVERSE_SUBTRACT: 32779,
256
- BLEND_DST_RGB: 32968,
257
- BLEND_SRC_RGB: 32969,
258
- BLEND_DST_ALPHA: 32970,
259
- BLEND_SRC_ALPHA: 32971,
260
- CONSTANT_COLOR: 32769,
261
- ONE_MINUS_CONSTANT_COLOR: 32770,
262
- CONSTANT_ALPHA: 32771,
263
- ONE_MINUS_CONSTANT_ALPHA: 32772,
264
- BLEND_COLOR: 32773,
265
- ARRAY_BUFFER: 34962,
266
- ELEMENT_ARRAY_BUFFER: 34963,
267
- ARRAY_BUFFER_BINDING: 34964,
268
- ELEMENT_ARRAY_BUFFER_BINDING: 34965,
269
- STREAM_DRAW: 35040,
270
- STATIC_DRAW: 35044,
271
- DYNAMIC_DRAW: 35048,
272
- BUFFER_SIZE: 34660,
273
- BUFFER_USAGE: 34661,
274
- CURRENT_VERTEX_ATTRIB: 34342,
275
- FRONT: 1028,
276
- BACK: 1029,
277
- FRONT_AND_BACK: 1032,
278
- TEXTURE_2D: 3553,
279
- CULL_FACE: 2884,
280
- BLEND: 3042,
281
- DITHER: 3024,
282
- STENCIL_TEST: 2960,
283
- DEPTH_TEST: 2929,
284
- SCISSOR_TEST: 3089,
285
- POLYGON_OFFSET_FILL: 32823,
286
- SAMPLE_ALPHA_TO_COVERAGE: 32926,
287
- SAMPLE_COVERAGE: 32928,
288
- NO_ERROR: 0,
289
- INVALID_ENUM: 1280,
290
- INVALID_VALUE: 1281,
291
- INVALID_OPERATION: 1282,
292
- OUT_OF_MEMORY: 1285,
293
- CW: 2304,
294
- CCW: 2305,
295
- LINE_WIDTH: 2849,
296
- ALIASED_POINT_SIZE_RANGE: 33901,
297
- ALIASED_LINE_WIDTH_RANGE: 33902,
298
- CULL_FACE_MODE: 2885,
299
- FRONT_FACE: 2886,
300
- DEPTH_RANGE: 2928,
301
- DEPTH_WRITEMASK: 2930,
302
- DEPTH_CLEAR_VALUE: 2931,
303
- DEPTH_FUNC: 2932,
304
- STENCIL_CLEAR_VALUE: 2961,
305
- STENCIL_FUNC: 2962,
306
- STENCIL_FAIL: 2964,
307
- STENCIL_PASS_DEPTH_FAIL: 2965,
308
- STENCIL_PASS_DEPTH_PASS: 2966,
309
- STENCIL_REF: 2967,
310
- STENCIL_VALUE_MASK: 2963,
311
- STENCIL_WRITEMASK: 2968,
312
- STENCIL_BACK_FUNC: 34816,
313
- STENCIL_BACK_FAIL: 34817,
314
- STENCIL_BACK_PASS_DEPTH_FAIL: 34818,
315
- STENCIL_BACK_PASS_DEPTH_PASS: 34819,
316
- STENCIL_BACK_REF: 36003,
317
- STENCIL_BACK_VALUE_MASK: 36004,
318
- STENCIL_BACK_WRITEMASK: 36005,
319
- VIEWPORT: 2978,
320
- SCISSOR_BOX: 3088,
321
- COLOR_CLEAR_VALUE: 3106,
322
- COLOR_WRITEMASK: 3107,
323
- UNPACK_ALIGNMENT: 3317,
324
- PACK_ALIGNMENT: 3333,
325
- MAX_TEXTURE_SIZE: 3379,
326
- MAX_VIEWPORT_DIMS: 3386,
327
- SUBPIXEL_BITS: 3408,
328
- RED_BITS: 3410,
329
- GREEN_BITS: 3411,
330
- BLUE_BITS: 3412,
331
- ALPHA_BITS: 3413,
332
- DEPTH_BITS: 3414,
333
- STENCIL_BITS: 3415,
334
- POLYGON_OFFSET_UNITS: 10752,
335
- POLYGON_OFFSET_FACTOR: 32824,
336
- TEXTURE_BINDING_2D: 32873,
337
- SAMPLE_BUFFERS: 32936,
338
- SAMPLES: 32937,
339
- SAMPLE_COVERAGE_VALUE: 32938,
340
- SAMPLE_COVERAGE_INVERT: 32939,
341
- COMPRESSED_TEXTURE_FORMATS: 34467,
342
- DONT_CARE: 4352,
343
- FASTEST: 4353,
344
- NICEST: 4354,
345
- GENERATE_MIPMAP_HINT: 33170,
346
- BYTE: 5120,
347
- UNSIGNED_BYTE: 5121,
348
- SHORT: 5122,
349
- UNSIGNED_SHORT: 5123,
350
- INT: 5124,
351
- UNSIGNED_INT: 5125,
352
- FLOAT: 5126,
353
- DEPTH_COMPONENT: 6402,
354
- ALPHA: 6406,
355
- RGB: 6407,
356
- RGBA: 6408,
357
- LUMINANCE: 6409,
358
- LUMINANCE_ALPHA: 6410,
359
- UNSIGNED_SHORT_4_4_4_4: 32819,
360
- UNSIGNED_SHORT_5_5_5_1: 32820,
361
- UNSIGNED_SHORT_5_6_5: 33635,
362
- FRAGMENT_SHADER: 35632,
363
- VERTEX_SHADER: 35633,
364
- MAX_VERTEX_ATTRIBS: 34921,
365
- MAX_VERTEX_UNIFORM_VECTORS: 36347,
366
- MAX_VARYING_VECTORS: 36348,
367
- MAX_COMBINED_TEXTURE_IMAGE_UNITS: 35661,
368
- MAX_VERTEX_TEXTURE_IMAGE_UNITS: 35660,
369
- MAX_TEXTURE_IMAGE_UNITS: 34930,
370
- MAX_FRAGMENT_UNIFORM_VECTORS: 36349,
371
- SHADER_TYPE: 35663,
372
- DELETE_STATUS: 35712,
373
- LINK_STATUS: 35714,
374
- VALIDATE_STATUS: 35715,
375
- ATTACHED_SHADERS: 35717,
376
- ACTIVE_UNIFORMS: 35718,
377
- ACTIVE_ATTRIBUTES: 35721,
378
- SHADING_LANGUAGE_VERSION: 35724,
379
- CURRENT_PROGRAM: 35725,
380
- NEVER: 512,
381
- LESS: 513,
382
- EQUAL: 514,
383
- LEQUAL: 515,
384
- GREATER: 516,
385
- NOTEQUAL: 517,
386
- GEQUAL: 518,
387
- ALWAYS: 519,
388
- KEEP: 7680,
389
- REPLACE: 7681,
390
- INCR: 7682,
391
- DECR: 7683,
392
- INVERT: 5386,
393
- INCR_WRAP: 34055,
394
- DECR_WRAP: 34056,
395
- VENDOR: 7936,
396
- RENDERER: 7937,
397
- VERSION: 7938,
398
- NEAREST: 9728,
399
- LINEAR: 9729,
400
- NEAREST_MIPMAP_NEAREST: 9984,
401
- LINEAR_MIPMAP_NEAREST: 9985,
402
- NEAREST_MIPMAP_LINEAR: 9986,
403
- LINEAR_MIPMAP_LINEAR: 9987,
404
- TEXTURE_MAG_FILTER: 10240,
405
- TEXTURE_MIN_FILTER: 10241,
406
- TEXTURE_WRAP_S: 10242,
407
- TEXTURE_WRAP_T: 10243,
408
- TEXTURE: 5890,
409
- TEXTURE_CUBE_MAP: 34067,
410
- TEXTURE_BINDING_CUBE_MAP: 34068,
411
- TEXTURE_CUBE_MAP_POSITIVE_X: 34069,
412
- TEXTURE_CUBE_MAP_NEGATIVE_X: 34070,
413
- TEXTURE_CUBE_MAP_POSITIVE_Y: 34071,
414
- TEXTURE_CUBE_MAP_NEGATIVE_Y: 34072,
415
- TEXTURE_CUBE_MAP_POSITIVE_Z: 34073,
416
- TEXTURE_CUBE_MAP_NEGATIVE_Z: 34074,
417
- MAX_CUBE_MAP_TEXTURE_SIZE: 34076,
418
- TEXTURE0: 33984,
419
- TEXTURE1: 33985,
420
- TEXTURE2: 33986,
421
- TEXTURE3: 33987,
422
- TEXTURE4: 33988,
423
- TEXTURE5: 33989,
424
- TEXTURE6: 33990,
425
- TEXTURE7: 33991,
426
- TEXTURE8: 33992,
427
- TEXTURE9: 33993,
428
- TEXTURE10: 33994,
429
- TEXTURE11: 33995,
430
- TEXTURE12: 33996,
431
- TEXTURE13: 33997,
432
- TEXTURE14: 33998,
433
- TEXTURE15: 33999,
434
- TEXTURE16: 34000,
435
- TEXTURE17: 34001,
436
- TEXTURE18: 34002,
437
- TEXTURE19: 34003,
438
- TEXTURE20: 34004,
439
- TEXTURE21: 34005,
440
- TEXTURE22: 34006,
441
- TEXTURE23: 34007,
442
- TEXTURE24: 34008,
443
- TEXTURE25: 34009,
444
- TEXTURE26: 34010,
445
- TEXTURE27: 34011,
446
- TEXTURE28: 34012,
447
- TEXTURE29: 34013,
448
- TEXTURE30: 34014,
449
- TEXTURE31: 34015,
450
- ACTIVE_TEXTURE: 34016,
451
- REPEAT: 10497,
452
- CLAMP_TO_EDGE: 33071,
453
- MIRRORED_REPEAT: 33648,
454
- FLOAT_VEC2: 35664,
455
- FLOAT_VEC3: 35665,
456
- FLOAT_VEC4: 35666,
457
- INT_VEC2: 35667,
458
- INT_VEC3: 35668,
459
- INT_VEC4: 35669,
460
- BOOL: 35670,
461
- BOOL_VEC2: 35671,
462
- BOOL_VEC3: 35672,
463
- BOOL_VEC4: 35673,
464
- FLOAT_MAT2: 35674,
465
- FLOAT_MAT3: 35675,
466
- FLOAT_MAT4: 35676,
467
- SAMPLER_2D: 35678,
468
- SAMPLER_CUBE: 35680,
469
- VERTEX_ATTRIB_ARRAY_ENABLED: 34338,
470
- VERTEX_ATTRIB_ARRAY_SIZE: 34339,
471
- VERTEX_ATTRIB_ARRAY_STRIDE: 34340,
472
- VERTEX_ATTRIB_ARRAY_TYPE: 34341,
473
- VERTEX_ATTRIB_ARRAY_NORMALIZED: 34922,
474
- VERTEX_ATTRIB_ARRAY_POINTER: 34373,
475
- VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 34975,
476
- IMPLEMENTATION_COLOR_READ_TYPE: 35738,
477
- IMPLEMENTATION_COLOR_READ_FORMAT: 35739,
478
- COMPILE_STATUS: 35713,
479
- LOW_FLOAT: 36336,
480
- MEDIUM_FLOAT: 36337,
481
- HIGH_FLOAT: 36338,
482
- LOW_INT: 36339,
483
- MEDIUM_INT: 36340,
484
- HIGH_INT: 36341,
485
- FRAMEBUFFER: 36160,
486
- RENDERBUFFER: 36161,
487
- RGBA4: 32854,
488
- RGB5_A1: 32855,
489
- RGB565: 36194,
490
- DEPTH_COMPONENT16: 33189,
491
- STENCIL_INDEX: 6401,
492
- STENCIL_INDEX8: 36168,
493
- DEPTH_STENCIL: 34041,
494
- RENDERBUFFER_WIDTH: 36162,
495
- RENDERBUFFER_HEIGHT: 36163,
496
- RENDERBUFFER_INTERNAL_FORMAT: 36164,
497
- RENDERBUFFER_RED_SIZE: 36176,
498
- RENDERBUFFER_GREEN_SIZE: 36177,
499
- RENDERBUFFER_BLUE_SIZE: 36178,
500
- RENDERBUFFER_ALPHA_SIZE: 36179,
501
- RENDERBUFFER_DEPTH_SIZE: 36180,
502
- RENDERBUFFER_STENCIL_SIZE: 36181,
503
- FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 36048,
504
- FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 36049,
505
- FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 36050,
506
- FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 36051,
507
- COLOR_ATTACHMENT0: 36064,
508
- DEPTH_ATTACHMENT: 36096,
509
- STENCIL_ATTACHMENT: 36128,
510
- DEPTH_STENCIL_ATTACHMENT: 33306,
511
- NONE: 0,
512
- FRAMEBUFFER_COMPLETE: 36053,
513
- FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 36054,
514
- FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 36055,
515
- FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 36057,
516
- FRAMEBUFFER_UNSUPPORTED: 36061,
517
- FRAMEBUFFER_BINDING: 36006,
518
- RENDERBUFFER_BINDING: 36007,
519
- MAX_RENDERBUFFER_SIZE: 34024,
520
- INVALID_FRAMEBUFFER_OPERATION: 1286,
521
- UNPACK_FLIP_Y_WEBGL: 37440,
522
- UNPACK_PREMULTIPLY_ALPHA_WEBGL: 37441,
523
- CONTEXT_LOST_WEBGL: 37442,
524
- UNPACK_COLORSPACE_CONVERSION_WEBGL: 37443,
525
- BROWSER_DEFAULT_WEBGL: 37444,
526
- READ_BUFFER: 3074,
527
- UNPACK_ROW_LENGTH: 3314,
528
- UNPACK_SKIP_ROWS: 3315,
529
- UNPACK_SKIP_PIXELS: 3316,
530
- PACK_ROW_LENGTH: 3330,
531
- PACK_SKIP_ROWS: 3331,
532
- PACK_SKIP_PIXELS: 3332,
533
- COLOR: 6144,
534
- DEPTH: 6145,
535
- STENCIL: 6146,
536
- RED: 6403,
537
- UNPACK_SKIP_IMAGES: 32877,
538
- UNPACK_IMAGE_HEIGHT: 32878,
539
- TEXTURE_WRAP_R: 32882,
540
- MAX_ELEMENTS_VERTICES: 33000,
541
- MAX_ELEMENTS_INDICES: 33001,
542
- TEXTURE_MIN_LOD: 33082,
543
- TEXTURE_MAX_LOD: 33083,
544
- TEXTURE_BASE_LEVEL: 33084,
545
- TEXTURE_MAX_LEVEL: 33085,
546
- MIN: 32775,
547
- MAX: 32776,
548
- MAX_TEXTURE_LOD_BIAS: 34045,
549
- TEXTURE_COMPARE_MODE: 34892,
550
- TEXTURE_COMPARE_FUNC: 34893,
551
- CURRENT_QUERY: 34917,
552
- QUERY_RESULT: 34918,
553
- QUERY_RESULT_AVAILABLE: 34919,
554
- STREAM_READ: 35041,
555
- STREAM_COPY: 35042,
556
- STATIC_READ: 35045,
557
- STATIC_COPY: 35046,
558
- DYNAMIC_READ: 35049,
559
- DYNAMIC_COPY: 35050,
560
- MAX_DRAW_BUFFERS: 34852,
561
- MAX_FRAGMENT_UNIFORM_COMPONENTS: 35657,
562
- MAX_VERTEX_UNIFORM_COMPONENTS: 35658,
563
- FRAGMENT_SHADER_DERIVATIVE_HINT: 35723,
564
- PIXEL_PACK_BUFFER: 35051,
565
- PIXEL_UNPACK_BUFFER: 35052,
566
- PIXEL_PACK_BUFFER_BINDING: 35053,
567
- PIXEL_UNPACK_BUFFER_BINDING: 35055,
568
- SRGB: 35904,
569
- COMPARE_REF_TO_TEXTURE: 34894,
570
- VERTEX_ATTRIB_ARRAY_INTEGER: 35069,
571
- MAX_ARRAY_TEXTURE_LAYERS: 35071,
572
- MIN_PROGRAM_TEXEL_OFFSET: 35076,
573
- MAX_PROGRAM_TEXEL_OFFSET: 35077,
574
- MAX_VARYING_COMPONENTS: 35659,
575
- TRANSFORM_FEEDBACK_BUFFER_MODE: 35967,
576
- MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: 35968,
577
- TRANSFORM_FEEDBACK_VARYINGS: 35971,
578
- TRANSFORM_FEEDBACK_BUFFER_START: 35972,
579
- TRANSFORM_FEEDBACK_BUFFER_SIZE: 35973,
580
- TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: 35976,
581
- RASTERIZER_DISCARD: 35977,
582
- MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: 35978,
583
- MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: 35979,
584
- INTERLEAVED_ATTRIBS: 35980,
585
- SEPARATE_ATTRIBS: 35981,
586
- TRANSFORM_FEEDBACK_BUFFER: 35982,
587
- TRANSFORM_FEEDBACK_BUFFER_BINDING: 35983,
588
- RED_INTEGER: 36244,
589
- RGB_INTEGER: 36248,
590
- RGBA_INTEGER: 36249,
591
- SAMPLER_CUBE_SHADOW: 36293,
592
- INT_SAMPLER_CUBE: 36300,
593
- UNSIGNED_INT_SAMPLER_CUBE: 36308,
594
- FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: 33296,
595
- FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: 33297,
596
- FRAMEBUFFER_ATTACHMENT_RED_SIZE: 33298,
597
- FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: 33299,
598
- FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: 33300,
599
- FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: 33301,
600
- FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: 33302,
601
- FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: 33303,
602
- FRAMEBUFFER_DEFAULT: 33304,
603
- UNSIGNED_NORMALIZED: 35863,
604
- DRAW_FRAMEBUFFER_BINDING: 36006,
605
- READ_FRAMEBUFFER: 36008,
606
- DRAW_FRAMEBUFFER: 36009,
607
- READ_FRAMEBUFFER_BINDING: 36010,
608
- RENDERBUFFER_SAMPLES: 36011,
609
- FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: 36052,
610
- MAX_COLOR_ATTACHMENTS: 36063,
611
- FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: 36182,
612
- MAX_SAMPLES: 36183,
613
- HALF_FLOAT: 5131,
614
- RG: 33319,
615
- RG_INTEGER: 33320,
616
- VERTEX_ARRAY_BINDING: 34229,
617
- SIGNED_NORMALIZED: 36764,
618
- COPY_READ_BUFFER: 36662,
619
- COPY_WRITE_BUFFER: 36663,
620
- COPY_READ_BUFFER_BINDING: 36662,
621
- COPY_WRITE_BUFFER_BINDING: 36663,
622
- UNIFORM_BUFFER: 35345,
623
- UNIFORM_BUFFER_BINDING: 35368,
624
- UNIFORM_BUFFER_START: 35369,
625
- UNIFORM_BUFFER_SIZE: 35370,
626
- MAX_VERTEX_UNIFORM_BLOCKS: 35371,
627
- MAX_FRAGMENT_UNIFORM_BLOCKS: 35373,
628
- MAX_COMBINED_UNIFORM_BLOCKS: 35374,
629
- MAX_UNIFORM_BUFFER_BINDINGS: 35375,
630
- MAX_UNIFORM_BLOCK_SIZE: 35376,
631
- MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: 35377,
632
- MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: 35379,
633
- UNIFORM_BUFFER_OFFSET_ALIGNMENT: 35380,
634
- ACTIVE_UNIFORM_BLOCKS: 35382,
635
- UNIFORM_TYPE: 35383,
636
- UNIFORM_SIZE: 35384,
637
- UNIFORM_BLOCK_INDEX: 35386,
638
- UNIFORM_OFFSET: 35387,
639
- UNIFORM_ARRAY_STRIDE: 35388,
640
- UNIFORM_MATRIX_STRIDE: 35389,
641
- UNIFORM_IS_ROW_MAJOR: 35390,
642
- UNIFORM_BLOCK_BINDING: 35391,
643
- UNIFORM_BLOCK_DATA_SIZE: 35392,
644
- UNIFORM_BLOCK_ACTIVE_UNIFORMS: 35394,
645
- UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: 35395,
646
- UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: 35396,
647
- UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: 35398,
648
- INVALID_INDEX: 4294967295,
649
- MAX_VERTEX_OUTPUT_COMPONENTS: 37154,
650
- MAX_FRAGMENT_INPUT_COMPONENTS: 37157,
651
- MAX_SERVER_WAIT_TIMEOUT: 37137,
652
- OBJECT_TYPE: 37138,
653
- SYNC_CONDITION: 37139,
654
- SYNC_STATUS: 37140,
655
- SYNC_FLAGS: 37141,
656
- SYNC_FENCE: 37142,
657
- SYNC_GPU_COMMANDS_COMPLETE: 37143,
658
- UNSIGNALED: 37144,
659
- SIGNALED: 37145,
660
- ALREADY_SIGNALED: 37146,
661
- TIMEOUT_EXPIRED: 37147,
662
- CONDITION_SATISFIED: 37148,
663
- WAIT_FAILED: 37149,
664
- SYNC_FLUSH_COMMANDS_BIT: 1,
665
- VERTEX_ATTRIB_ARRAY_DIVISOR: 35070,
666
- ANY_SAMPLES_PASSED: 35887,
667
- ANY_SAMPLES_PASSED_CONSERVATIVE: 36202,
668
- SAMPLER_BINDING: 35097,
669
- TRANSFORM_FEEDBACK: 36386,
670
- TRANSFORM_FEEDBACK_PAUSED: 36387,
671
- TRANSFORM_FEEDBACK_ACTIVE: 36388,
672
- TRANSFORM_FEEDBACK_BINDING: 36389,
673
- TEXTURE_IMMUTABLE_FORMAT: 37167,
674
- MAX_ELEMENT_INDEX: 36203,
675
- TEXTURE_IMMUTABLE_LEVELS: 33503,
676
- TIMEOUT_IGNORED: -1,
677
- MAX_CLIENT_WAIT_TIMEOUT_WEBGL: 37447,
678
- };
679
- const extensions = {
680
- // ratified
681
- OES_texture_float: {},
682
- OES_texture_half_float: {},
683
- WEBGL_lose_context: {
684
- loseContext: () => { },
685
- },
686
- OES_standard_derivatives: {},
687
- OES_vertex_array_object: {
688
- createVertexArrayOES: () => { },
689
- bindVertexArrayOES: () => { },
690
- deleteVertexArrayOES: () => { },
691
- },
692
- WEBGL_debug_renderer_info: null,
693
- WEBGL_debug_shaders: null,
694
- WEBGL_compressed_texture_s3tc: null,
695
- WEBGL_depth_texture: {},
696
- OES_element_index_uint: {},
697
- EXT_texture_filter_anisotropic: null,
698
- EXT_frag_depth: {},
699
- WEBGL_draw_buffers: {},
700
- ANGLE_instanced_arrays: null,
701
- OES_texture_float_linear: null,
702
- OES_texture_half_float_linear: null,
703
- EXT_blend_minmax: { MIN_EXT: 0, MAX_EXT: 0 },
704
- EXT_shader_texture_lod: null,
705
- // community
706
- WEBGL_compressed_texture_atc: null,
707
- WEBGL_compressed_texture_pvrtc: null,
708
- EXT_color_buffer_half_float: null,
709
- WEBGL_color_buffer_float: null,
710
- EXT_sRGB: null,
711
- WEBGL_compressed_texture_etc1: null,
712
- };
713
- export class WebGL2RenderingContext {
714
- constructor(canvas) {
715
- this.getShaderPrecisionFormat = () => {
716
- return {
717
- rangeMin: 127,
718
- rangeMax: 127,
719
- precision: 23,
720
- };
721
- };
722
- this.GL_VERSION = 7938;
723
- this.SCISSOR_BOX = 3088;
724
- this.VIEWPORT = 2978;
725
- this.getProgramInfoLog = () => '';
726
- this.getShaderInfoLog = () => '';
727
- // @ts-ignore
728
- this.canvas = canvas;
729
- // @ts-ignore
730
- this.drawingBufferWidth = canvas.width;
731
- // @ts-ignore
732
- this.drawingBufferHeight = canvas.height;
733
- for (const method of functions) {
734
- this[method] ??= () => { };
735
- }
736
- Object.assign(this, enums);
737
- }
738
- // @ts-ignore
739
- getParameter(paramId) {
740
- switch (paramId) {
741
- case this.GL_VERSION:
742
- return ['WebGL2'];
743
- case this.SCISSOR_BOX:
744
- case this.VIEWPORT:
745
- return [0, 0, 1, 1];
746
- }
747
- }
748
- getExtension(ext) {
749
- return extensions[ext];
750
- }
751
- }
752
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLWdsLXJlbmRlcmluZy1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3Rlc3Rpbmcvc3JjL2xpYi91dGlscy93ZWItZ2wtcmVuZGVyaW5nLWNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxTQUFTLEdBQUc7SUFDakIsZUFBZTtJQUNmLGNBQWM7SUFDZCxZQUFZO0lBQ1osd0JBQXdCO0lBQ3hCLG9CQUFvQjtJQUNwQixnQkFBZ0I7SUFDaEIsaUJBQWlCO0lBQ2pCLGtCQUFrQjtJQUNsQixhQUFhO0lBQ2IsdUJBQXVCO0lBQ3ZCLGlCQUFpQjtJQUNqQixZQUFZO0lBQ1osZUFBZTtJQUNmLHVCQUF1QjtJQUN2QixXQUFXO0lBQ1gsbUJBQW1CO0lBQ25CLGlCQUFpQjtJQUNqQixZQUFZO0lBQ1osZUFBZTtJQUNmLHdCQUF3QjtJQUN4QixnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLHNCQUFzQjtJQUN0QixzQkFBc0I7SUFDdEIseUJBQXlCO0lBQ3pCLHlCQUF5QjtJQUN6QixtQkFBbUI7SUFDbkIsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtJQUNuQixtQkFBbUI7SUFDbkIsY0FBYztJQUNkLG1CQUFtQjtJQUNuQixlQUFlO0lBQ2YsYUFBYTtJQUNiLG9CQUFvQjtJQUNwQixlQUFlO0lBQ2YsY0FBYztJQUNkLGVBQWU7SUFDZix5QkFBeUI7SUFDekIsbUJBQW1CO0lBQ25CLFVBQVU7SUFDVixjQUFjO0lBQ2QsbUJBQW1CO0lBQ25CLGVBQWU7SUFDZixhQUFhO0lBQ2Isb0JBQW9CO0lBQ3BCLGVBQWU7SUFDZixjQUFjO0lBQ2QsWUFBWTtJQUNaLGVBQWU7SUFDZix5QkFBeUI7SUFDekIsbUJBQW1CO0lBQ25CLFdBQVc7SUFDWCxXQUFXO0lBQ1gsWUFBWTtJQUNaLGNBQWM7SUFDZCxTQUFTO0lBQ1QscUJBQXFCO0lBQ3JCLHVCQUF1QjtJQUN2QixtQkFBbUI7SUFD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QixDQUFDO0NBS0QiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBmdW5jdGlvbnMgPSBbXG5cdCdhY3RpdmVUZXh0dXJlJyxcblx0J2F0dGFjaFNoYWRlcicsXG5cdCdiZWdpblF1ZXJ5Jyxcblx0J2JlZ2luVHJhbnNmb3JtRmVlZGJhY2snLFxuXHQnYmluZEF0dHJpYkxvY2F0aW9uJyxcblx0J2JpbmRCdWZmZXJCYXNlJyxcblx0J2JpbmRCdWZmZXJSYW5nZScsXG5cdCdiaW5kUmVuZGVyYnVmZmVyJyxcblx0J2JpbmRTYW1wbGVyJyxcblx0J2JpbmRUcmFuc2Zvcm1GZWVkYmFjaycsXG5cdCdiaW5kVmVydGV4QXJyYXknLFxuXHQnYmxlbmRDb2xvcicsXG5cdCdibGVuZEVxdWF0aW9uJyxcblx0J2JsZW5kRXF1YXRpb25TZXBhcmF0ZScsXG5cdCdibGVuZEZ1bmMnLFxuXHQnYmxlbmRGdW5jU2VwYXJhdGUnLFxuXHQnYmxpdEZyYW1lYnVmZmVyJyxcblx0J2J1ZmZlckRhdGEnLFxuXHQnYnVmZmVyU3ViRGF0YScsXG5cdCdjaGVja0ZyYW1lYnVmZmVyU3RhdHVzJyxcblx0J2NsaWVudFdhaXRTeW5jJyxcblx0J2NvbXBpbGVTaGFkZXInLFxuXHQnY29tcHJlc3NlZFRleEltYWdlMkQnLFxuXHQnY29tcHJlc3NlZFRleEltYWdlM0QnLFxuXHQnY29tcHJlc3NlZFRleFN1YkltYWdlMkQnLFxuXHQnY29tcHJlc3NlZFRleFN1YkltYWdlM0QnLFxuXHQnY29weUJ1ZmZlclN1YkRhdGEnLFxuXHQnY29weVRleEltYWdlMkQnLFxuXHQnY29weVRleFN1YkltYWdlMkQnLFxuXHQnY29weVRleFN1YkltYWdlM0QnLFxuXHQnY3JlYXRlQnVmZmVyJyxcblx0J2NyZWF0ZUZyYW1lYnVmZmVyJyxcblx0J2NyZWF0ZVByb2dyYW0nLFxuXHQnY3JlYXRlUXVlcnknLFxuXHQnY3JlYXRlUmVuZGVyYnVmZmVyJyxcblx0J2NyZWF0ZVNhbXBsZXInLFxuXHQnY3JlYXRlU2hhZGVyJyxcblx0J2NyZWF0ZVRleHR1cmUnLFxuXHQnY3JlYXRlVHJhbnNmb3JtRmVlZGJhY2snLFxuXHQnY3JlYXRlVmVydGV4QXJyYXknLFxuXHQnY3VsbEZhY2UnLFxuXHQnZGVsZXRlQnVmZmVyJyxcblx0J2RlbGV0ZUZyYW1lYnVmZmVyJyxcblx0J2RlbGV0ZVByb2dyYW0nLFxuXHQnZGVsZXRlUXVlcnknLFxuXHQnZGVsZXRlUmVuZGVyYnVmZmVyJyxcblx0J2RlbGV0ZVNhbXBsZXInLFxuXHQnZGVsZXRlU2hhZGVyJyxcblx0J2RlbGV0ZVN5bmMnLFxuXHQnZGVsZXRlVGV4dHVyZScsXG5cdCdkZWxldGVUcmFuc2Zvcm1GZWVkYmFjaycsXG5cdCdkZWxldGVWZXJ0ZXhBcnJheScsXG5cdCdkZXB0aEZ1bmMnLFxuXHQnZGVwdGhNYXNrJyxcblx0J2RlcHRoUmFuZ2UnLFxuXHQnZGV0YWNoU2hhZGVyJyxcblx0J2Rpc2FibGUnLFxuXHQnZHJhd0FycmF5c0luc3RhbmNlZCcsXG5cdCdkcmF3RWxlbWVudHNJbnN0YW5jZWQnLFxuXHQnZHJhd1JhbmdlRWxlbWVudHMnLFxuXHQnZW5hYmxlJyxcblx0J2VuZFF1ZXJ5Jyxcblx0J2VuZFRyYW5zZm9ybUZlZWRiYWNrJyxcblx0J2ZlbmNlU3luYycsXG5cdCdmaW5pc2gnLFxuXHQnZmx1c2gnLFxuXHQnZnJhbWVidWZmZXJSZW5kZXJidWZmZXInLFxuXHQnZnJhbWVidWZmZXJUZXh0dXJlMkQnLFxuXHQnZnJhbWVidWZmZXJUZXh0dXJlTGF5ZXInLFxuXHQnZnJvbnRGYWNlJyxcblx0J2dlbmVyYXRlTWlwbWFwJyxcblx0J2dldEFjdGl2ZUF0dHJpYicsXG5cdCdnZXRBY3RpdmVVbmlmb3JtJyxcblx0J2dldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUnLFxuXHQnZ2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVyJyxcblx0J2dldEFjdGl2ZVVuaWZvcm1zJyxcblx0J2dldEF0dGFjaGVkU2hhZGVycycsXG5cdCdnZXRBdHRyaWJMb2NhdGlvbicsXG5cdCdnZXRCdWZmZXJQYXJhbWV0ZXInLFxuXHQnZ2V0QnVmZmVyU3ViRGF0YScsXG5cdCdnZXRDb250ZXh0QXR0cmlidXRlcycsXG5cdCdnZXRFcnJvcicsXG5cdCdnZXRFeHRlbnNpb24nLFxuXHQnZ2V0RnJhZ0RhdGFMb2NhdGlvbicsXG5cdCdnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXInLFxuXHQnZ2V0SW5kZXhlZFBhcmFtZXRlcicsXG5cdCdnZXRJbnRlcm5hbGZvcm1hdFBhcmFtZXRlcicsXG5cdCdnZXRQYXJhbWV0ZXInLFxuXHQnZ2V0UHJvZ3JhbUluZm9Mb2cnLFxuXHQnZ2V0UHJvZ3JhbVBhcmFtZXRlcicsXG5cdCdnZXRRdWVyeScsXG5cdCdnZXRRdWVyeVBhcmFtZXRlcicsXG5cdCdnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXInLFxuXHQnZ2V0U2FtcGxlclBhcmFtZXRlcicsXG5cdCdnZXRTaGFkZXJJbmZvTG9nJyxcblx0J2dldFNoYWRlclBhcmFtZXRlcicsXG5cdCdnZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQnLFxuXHQnZ2V0U2hhZGVyU291cmNlJyxcblx0J2dldFN1cHBvcnRlZEV4dGVuc2lvbnMnLFxuXHQnZ2V0U3luY1BhcmFtZXRlcicsXG5cdCdnZXRUZXhQYXJhbWV0ZXInLFxuXHQnZ2V0VHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5nJyxcblx0J2dldFVuaWZvcm0nLFxuXHQnZ2V0VW5pZm9ybUJsb2NrSW5kZXgnLFxuXHQnZ2V0VW5pZm9ybUluZGljZXMnLFxuXHQnZ2V0VW5pZm9ybUxvY2F0aW9uJyxcblx0J2dldFZlcnRleEF0dHJpYicsXG5cdCdnZXRWZXJ0ZXhBdHRyaWJPZmZzZXQnLFxuXHQnaGludCcsXG5cdCdpbnZhbGlkYXRlRnJhbWVidWZmZXInLFxuXHQnaW52YWxpZGF0ZVN1YkZyYW1lYnVmZmVyJyxcblx0J2lzQnVmZmVyJyxcblx0J2lzQ29udGV4dExvc3QnLFxuXHQnaXNFbmFibGVkJyxcblx0J2lzRnJhbWVidWZmZXInLFxuXHQnaXNQcm9ncmFtJyxcblx0J2lzUXVlcnknLFxuXHQnaXNSZW5kZXJidWZmZXInLFxuXHQnaXNTYW1wbGVyJyxcblx0J2lzU2hhZGVyJyxcblx0J2lzU3luYycsXG5cdCdpc1RleHR1cmUnLFxuXHQnaXNUcmFuc2Zvcm1GZWVkYmFjaycsXG5cdCdpc1ZlcnRleEFycmF5Jyxcblx0J2xpbmVXaWR0aCcsXG5cdCdsaW5rUHJvZ3JhbScsXG5cdCdwYXVzZVRyYW5zZm9ybUZlZWRiYWNrJyxcblx0J3BpeGVsU3RvcmVpJyxcblx0J3BvbHlnb25PZmZzZXQnLFxuXHQncmVhZEJ1ZmZlcicsXG5cdCdyZWFkUGl4ZWxzJyxcblx0J3JlbmRlcmJ1ZmZlclN0b3JhZ2UnLFxuXHQncmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlJyxcblx0J3Jlc3VtZVRyYW5zZm9ybUZlZWRiYWNrJyxcblx0J3NhbXBsZUNvdmVyYWdlJyxcblx0J3NhbXBsZXJQYXJhbWV0ZXJmJyxcblx0J3NhbXBsZXJQYXJhbWV0ZXJpJyxcblx0J3NoYWRlclNvdXJjZScsXG5cdCdzdGVuY2lsRnVuYycsXG5cdCdzdGVuY2lsRnVuY1NlcGFyYXRlJyxcblx0J3N0ZW5jaWxNYXNrJyxcblx0J3N0ZW5jaWxNYXNrU2VwYXJhdGUnLFxuXHQnc3RlbmNpbE9wJyxcblx0J3N0ZW5jaWxPcFNlcGFyYXRlJyxcblx0J3RleEltYWdlMkQnLFxuXHQndGV4SW1hZ2UzRCcsXG5cdCd0ZXhQYXJhbWV0ZXJmJyxcblx0J3RleFBhcmFtZXRlcmknLFxuXHQndGV4U3RvcmFnZTJEJyxcblx0J3RleFN0b3JhZ2UzRCcsXG5cdCd0ZXhTdWJJbWFnZTJEJyxcblx0J3RleFN1YkltYWdlM0QnLFxuXHQndHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5ncycsXG5cdCd1bmlmb3JtMXVpJyxcblx0J3VuaWZvcm0ydWknLFxuXHQndW5pZm9ybTN1aScsXG5cdCd1bmlmb3JtNHVpJyxcblx0J3VuaWZvcm1CbG9ja0JpbmRpbmcnLFxuXHQndXNlUHJvZ3JhbScsXG5cdCd2YWxpZGF0ZVByb2dyYW0nLFxuXHQndmVydGV4QXR0cmliRGl2aXNvcicsXG5cdCd2ZXJ0ZXhBdHRyaWJJNGknLFxuXHQndmVydGV4QXR0cmliSTR1aScsXG5cdCd2ZXJ0ZXhBdHRyaWJJUG9pbnRlcicsXG5cdCd3YWl0U3luYycsXG5cdCdiaW5kQnVmZmVyJyxcblx0J2JpbmRGcmFtZWJ1ZmZlcicsXG5cdCdiaW5kVGV4dHVyZScsXG5cdCdjbGVhcicsXG5cdCdjbGVhckJ1ZmZlcmZpJyxcblx0J2NsZWFyQnVmZmVyZnYnLFxuXHQnY2xlYXJCdWZmZXJpdicsXG5cdCdjbGVhckJ1ZmZlcnVpdicsXG5cdCdjbGVhckNvbG9yJyxcblx0J2NsZWFyRGVwdGgnLFxuXHQnY2xlYXJTdGVuY2lsJyxcblx0J2NvbG9yTWFzaycsXG5cdCdkaXNhYmxlVmVydGV4QXR0cmliQXJyYXknLFxuXHQnZHJhd0FycmF5cycsXG5cdCdkcmF3QnVmZmVycycsXG5cdCdkcmF3RWxlbWVudHMnLFxuXHQnZW5hYmxlVmVydGV4QXR0cmliQXJyYXknLFxuXHQnc2Npc3NvcicsXG5cdCd1bmlmb3JtMWYnLFxuXHQndW5pZm9ybTFmdicsXG5cdCd1bmlmb3JtMWknLFxuXHQndW5pZm9ybTFpdicsXG5cdCd1bmlmb3JtMXVpdicsXG5cdCd1bmlmb3JtMmYnLFxuXHQndW5pZm9ybTJmdicsXG5cdCd1bmlmb3JtMmknLFxuXHQndW5pZm9ybTJpdicsXG5cdCd1bmlmb3JtMnVpdicsXG5cdCd1bmlmb3JtM2YnLFxuXHQndW5pZm9ybTNmdicsXG5cdCd1bmlmb3JtM2knLFxuXHQndW5pZm9ybTNpdicsXG5cdCd1bmlmb3JtM3VpdicsXG5cdCd1bmlmb3JtNGYnLFxuXHQndW5pZm9ybTRmdicsXG5cdCd1bmlmb3JtNGknLFxuXHQndW5pZm9ybTRpdicsXG5cdCd1bmlmb3JtNHVpdicsXG5cdCd1bmlmb3JtTWF0cml4MmZ2Jyxcblx0J3VuaWZvcm1NYXRyaXgyeDNmdicsXG5cdCd1bmlmb3JtTWF0cml4Mng0ZnYnLFxuXHQndW5pZm9ybU1hdHJpeDNmdicsXG5cdCd1bmlmb3JtTWF0cml4M3gyZnYnLFxuXHQndW5pZm9ybU1hdHJpeDN4NGZ2Jyxcblx0J3VuaWZvcm1NYXRyaXg0ZnYnLFxuXHQndW5pZm9ybU1hdHJpeDR4MmZ2Jyxcblx0J3VuaWZvcm1NYXRyaXg0eDNmdicsXG5cdCd2ZXJ0ZXhBdHRyaWIxZicsXG5cdCd2ZXJ0ZXhBdHRyaWIxZnYnLFxuXHQndmVydGV4QXR0cmliMmYnLFxuXHQndmVydGV4QXR0cmliMmZ2Jyxcblx0J3ZlcnRleEF0dHJpYjNmJyxcblx0J3ZlcnRleEF0dHJpYjNmdicsXG5cdCd2ZXJ0ZXhBdHRyaWI0ZicsXG5cdCd2ZXJ0ZXhBdHRyaWI0ZnYnLFxuXHQndmVydGV4QXR0cmliSTRpdicsXG5cdCd2ZXJ0ZXhBdHRyaWJJNHVpdicsXG5cdCd2ZXJ0ZXhBdHRyaWJQb2ludGVyJyxcblx0J3ZpZXdwb3J0Jyxcblx0J21ha2VYUkNvbXBhdGlibGUnLFxuXTtcblxuY29uc3QgZW51bXM6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4gPSB7XG5cdERFUFRIX0JVRkZFUl9CSVQ6IDI1Nixcblx0U1RFTkNJTF9CVUZGRVJfQklUOiAxMDI0LFxuXHRDT0xPUl9CVUZGRVJfQklUOiAxNjM4NCxcblx0UE9JTlRTOiAwLFxuXHRMSU5FUzogMSxcblx0TElORV9MT09QOiAyLFxuXHRMSU5FX1NUUklQOiAzLFxuXHRUUklBTkdMRVM6IDQsXG5cdFRSSUFOR0xFX1NUUklQOiA1LFxuXHRUUklBTkdMRV9GQU46IDYsXG5cdFpFUk86IDAsXG5cdE9ORTogMSxcblx0U1JDX0NPTE9SOiA3NjgsXG5cdE9ORV9NSU5VU19TUkNfQ09MT1I6IDc2OSxcblx0U1JDX0FMUEhBOiA3NzAsXG5cdE9ORV9NSU5VU19TUkNfQUxQSEE6IDc3MSxcblx0RFNUX0FMUEhBOiA3NzIsXG5cdE9ORV9NSU5VU19EU1RfQUxQSEE6IDc3Myxcblx0RFNUX0NPTE9SOiA3NzQsXG5cdE9ORV9NSU5VU19EU1RfQ09MT1I6IDc3NSxcblx0U1JDX0FMUEhBX1NBVFVSQVRFOiA3NzYsXG5cdEZVTkNfQUREOiAzMjc3NCxcblx0QkxFTkRfRVFVQVRJT046IDMyNzc3LFxuXHRCTEVORF9FUVVBVElPTl9SR0I6IDMyNzc3LFxuXHRCTEVORF9FUVVBVElPTl9BTFBIQTogMzQ4NzcsXG5cdEZVTkNfU1VCVFJBQ1Q6IDMyNzc4LFxuXHRGVU5DX1JFVkVSU0VfU1VCVFJBQ1Q6IDMyNzc5LFxuXHRCTEVORF9EU1RfUkdCOiAzMjk2OCxcblx0QkxFTkRfU1JDX1JHQjogMzI5NjksXG5cdEJMRU5EX0RTVF9BTFBIQTogMzI5NzAsXG5cdEJMRU5EX1NSQ19BTFBIQTogMzI5NzEsXG5cdENPTlNUQU5UX0NPTE9SOiAzMjc2OSxcblx0T05FX01JTlVTX0NPTlNUQU5UX0NPTE9SOiAzMjc3MCxcblx0Q09OU1RBTlRfQUxQSEE6IDMyNzcxLFxuXHRPTkVfTUlOVVNfQ09OU1RBTlRfQUxQSEE6IDMyNzcyLFxuXHRCTEVORF9DT0xPUjogMzI3NzMsXG5cdEFSUkFZX0JVRkZFUjogMzQ5NjIsXG5cdEVMRU1FTlRfQVJSQVlfQlVGRkVSOiAzNDk2Myxcblx0QVJSQVlfQlVGRkVSX0JJTkRJTkc6IDM0OTY0LFxuXHRFTEVNRU5UX0FSUkFZX0JVRkZFUl9CSU5ESU5HOiAzNDk2NSxcblx0U1RSRUFNX0RSQVc6IDM1MDQwLFxuXHRTVEFUSUNfRFJBVzogMzUwNDQsXG5cdERZTkFNSUNfRFJBVzogMzUwNDgsXG5cdEJVRkZFUl9TSVpFOiAzNDY2MCxcblx0QlVGRkVSX1VTQUdFOiAzNDY2MSxcblx0Q1VSUkVOVF9WRVJURVhfQVRUUklCOiAzNDM0Mixcblx0RlJPTlQ6IDEwMjgsXG5cdEJBQ0s6IDEwMjksXG5cdEZST05UX0FORF9CQUNLOiAxMDMyLFxuXHRURVhUVVJFXzJEOiAzNTUzLFxuXHRDVUxMX0ZBQ0U6IDI4ODQsXG5cdEJMRU5EOiAzMDQyLFxuXHRESVRIRVI6IDMwMjQsXG5cdFNURU5DSUxfVEVTVDogMjk2MCxcblx0REVQVEhfVEVTVDogMjkyOSxcblx0U0NJU1NPUl9URVNUOiAzMDg5LFxuXHRQT0xZR09OX09GRlNFVF9GSUxMOiAzMjgyMyxcblx0U0FNUExFX0FMUEhBX1RPX0NPVkVSQUdFOiAzMjkyNixcblx0U0FNUExFX0NPVkVSQUdFOiAzMjkyOCxcblx0Tk9fRVJST1I6IDAsXG5cdElOVkFMSURfRU5VTTogMTI4MCxcblx0SU5WQUxJRF9WQUxVRTogMTI4MSxcblx0SU5WQUxJRF9PUEVSQVRJT046IDEyODIsXG5cdE9VVF9PRl9NRU1PUlk6IDEyODUsXG5cdENXOiAyMzA0LFxuXHRDQ1c6IDIzMDUsXG5cdExJTkVfV0lEVEg6IDI4NDksXG5cdEFMSUFTRURfUE9JTlRfU0laRV9SQU5HRTogMzM5MDEsXG5cdEFMSUFTRURfTElORV9XSURUSF9SQU5HRTogMzM5MDIsXG5cdENVTExfRkFDRV9NT0RFOiAyODg1LFxuXHRGUk9OVF9GQUNFOiAyODg2LFxuXHRERVBUSF9SQU5HRTogMjkyOCxcblx0REVQVEhfV1JJVEVNQVNLOiAyOTMwLFxuXHRERVBUSF9DTEVBUl9WQUxVRTogMjkzMSxcblx0REVQVEhfRlVOQzogMjkzMixcblx0U1RFTkNJTF9DTEVBUl9WQUxVRTogMjk2MSxcblx0U1RFTkNJTF9GVU5DOiAyOTYyLFxuXHRTVEVOQ0lMX0ZBSUw6IDI5NjQsXG5cdFNURU5DSUxfUEFTU19ERVBUSF9GQUlMOiAyOTY1LFxuXHRTVEVOQ0lMX1BBU1NfREVQVEhfUEFTUzogMjk2Nixcblx0U1RFTkNJTF9SRUY6IDI5NjcsXG5cdFNURU5DSUxfVkFMVUVfTUFTSzogMjk2Myxcblx0U1RFTkNJTF9XUklURU1BU0s6IDI5NjgsXG5cdFNURU5DSUxfQkFDS19GVU5DOiAzNDgxNixcblx0U1RFTkNJTF9CQUNLX0ZBSUw6IDM0ODE3LFxuXHRTVEVOQ0lMX0JBQ0tfUEFTU19ERVBUSF9GQUlMOiAzNDgxOCxcblx0U1RFTkNJTF9CQUNLX1BBU1NfREVQVEhfUEFTUzogMzQ4MTksXG5cdFNURU5DSUxfQkFDS19SRUY6IDM2MDAzLFxuXHRTVEVOQ0lMX0JBQ0tfVkFMVUVfTUFTSzogMzYwMDQsXG5cdFNURU5DSUxfQkFDS19XUklURU1BU0s6IDM2MDA1LFxuXHRWSUVXUE9SVDogMjk3OCxcblx0U0NJU1NPUl9CT1g6IDMwODgsXG5cdENPTE9SX0NMRUFSX1ZBTFVFOiAzMTA2LFxuXHRDT0xPUl9XUklURU1BU0s6IDMxMDcsXG5cdFVOUEFDS19BTElHTk1FTlQ6IDMzMTcsXG5cdFBBQ0tfQUxJR05NRU5UOiAzMzMzLFxuXHRNQVhfVEVYVFVSRV9TSVpFOiAzMzc5LFxuXHRNQVhfVklFV1BPUlRfRElNUzogMzM4Nixcblx0U1VCUElYRUxfQklUUzogMzQwOCxcblx0UkVEX0JJVFM6IDM0MTAsXG5cdEdSRUVOX0JJVFM6IDM0MTEsXG5cdEJMVUVfQklUUzogMzQxMixcblx0QUxQSEFfQklUUzogMzQxMyxcblx0REVQVEhfQklUUzogMzQxNCxcblx0U1RFTkNJTF9CSVRTOiAzNDE1LFxuXHRQT0xZR09OX09GRlNFVF9VTklUUzogMTA3NTIsXG5cdFBPTFlHT05fT0ZGU0VUX0ZBQ1RPUjogMzI4MjQsXG5cdFRFWFRVUkVfQklORElOR18yRDogMzI4NzMsXG5cdFNBTVBMRV9CVUZGRVJTOiAzMjkzNixcblx0U0FNUExFUzogMzI5MzcsXG5cdFNBTVBMRV9DT1ZFUkFHRV9WQUxVRTogMzI5MzgsXG5cdFNBTVBMRV9DT1ZFUkFHRV9JTlZFUlQ6IDMyOTM5LFxuXHRDT01QUkVTU0VEX1RFWFRVUkVfRk9STUFUUzogMzQ0NjcsXG5cdERPTlRfQ0FSRTogNDM1Mixcblx0RkFTVEVTVDogNDM1Myxcblx0TklDRVNUOiA0MzU0LFxuXHRHRU5FUkFURV9NSVBNQVBfSElOVDogMzMxNzAsXG5cdEJZVEU6IDUxMjAsXG5cdFVOU0lHTkVEX0JZVEU6IDUxMjEsXG5cdFNIT1JUOiA1MTIyLFxuXHRVTlNJR05FRF9TSE9SVDogNTEyMyxcblx0SU5UOiA1MTI0LFxuXHRVTlNJR05FRF9JTlQ6IDUxMjUsXG5cdEZMT0FUOiA1MTI2LFxuXHRERVBUSF9DT01QT05FTlQ6IDY0MDIsXG5cdEFMUEhBOiA2NDA2LFxuXHRSR0I6IDY0MDcsXG5cdFJHQkE6IDY0MDgsXG5cdExVTUlOQU5DRTogNjQwOSxcblx0TFVNSU5BTkNFX0FMUEhBOiA2NDEwLFxuXHRVTlNJR05FRF9TSE9SVF80XzRfNF80OiAzMjgxOSxcblx0VU5TSUdORURfU0hPUlRfNV81XzVfMTogMzI4MjAsXG5cdFVOU0lHTkVEX1NIT1JUXzVfNl81OiAzMzYzNSxcblx0RlJBR01FTlRfU0hBREVSOiAzNTYzMixcblx0VkVSVEVYX1NIQURFUjogMzU2MzMsXG5cdE1BWF9WRVJURVhfQVRUUklCUzogMzQ5MjEsXG5cdE1BWF9WRVJURVhfVU5JRk9STV9WRUNUT1JTOiAzNjM0Nyxcblx0TUFYX1ZBUllJTkdfVkVDVE9SUzogMzYzNDgsXG5cdE1BWF9DT01CSU5FRF9URVhUVVJFX0lNQUdFX1VOSVRTOiAzNTY2MSxcblx0TUFYX1ZFUlRFWF9URVhUVVJFX0lNQUdFX1VOSVRTOiAzNTY2MCxcblx0TUFYX1RFWFRVUkVfSU1BR0VfVU5JVFM6IDM0OTMwLFxuXHRNQVhfRlJBR01FTlRfVU5JRk9STV9WRUNUT1JTOiAzNjM0OSxcblx0U0hBREVSX1RZUEU6IDM1NjYzLFxuXHRERUxFVEVfU1RBVFVTOiAzNTcxMixcblx0TElOS19TVEFUVVM6IDM1NzE0LFxuXHRWQUxJREFURV9TVEFUVVM6IDM1NzE1LFxuXHRBVFRBQ0hFRF9TSEFERVJTOiAzNTcxNyxcblx0QUNUSVZFX1VOSUZPUk1TOiAzNTcxOCxcblx0QUNUSVZFX0FUVFJJQlVURVM6IDM1NzIxLFxuXHRTSEFESU5HX0xBTkdVQUdFX1ZFUlNJT046IDM1NzI0LFxuXHRDVVJSRU5UX1BST0dSQU06IDM1NzI1LFxuXHRORVZFUjogNTEyLFxuXHRMRVNTOiA1MTMsXG5cdEVRVUFMOiA1MTQsXG5cdExFUVVBTDogNTE1LFxuXHRHUkVBVEVSOiA1MTYsXG5cdE5PVEVRVUFMOiA1MTcsXG5cdEdFUVVBTDogNTE4LFxuXHRBTFdBWVM6IDUxOSxcblx0S0VFUDogNzY4MCxcblx0UkVQTEFDRTogNzY4MSxcblx0SU5DUjogNzY4Mixcblx0REVDUjogNzY4Myxcblx0SU5WRVJUOiA1Mzg2LFxuXHRJTkNSX1dSQVA6IDM0MDU1LFxuXHRERUNSX1dSQVA6IDM0MDU2LFxuXHRWRU5ET1I6IDc5MzYsXG5cdFJFTkRFUkVSOiA3OTM3LFxuXHRWRVJTSU9OOiA3OTM4LFxuXHRORUFSRVNUOiA5NzI4LFxuXHRMSU5FQVI6IDk3MjksXG5cdE5FQVJFU1RfTUlQTUFQX05FQVJFU1Q6IDk5ODQsXG5cdExJTkVBUl9NSVBNQVBfTkVBUkVTVDogOTk4NSxcblx0TkVBUkVTVF9NSVBNQVBfTElORUFSOiA5OTg2LFxuXHRMSU5FQVJfTUlQTUFQX0xJTkVBUjogOTk4Nyxcblx0VEVYVFVSRV9NQUdfRklMVEVSOiAxMDI0MCxcblx0VEVYVFVSRV9NSU5fRklMVEVSOiAxMDI0MSxcblx0VEVYVFVSRV9XUkFQX1M6IDEwMjQyLFxuXHRURVhUVVJFX1dSQVBfVDogMTAyNDMsXG5cdFRFWFRVUkU6IDU4OTAsXG5cdFRFWFRVUkVfQ1VCRV9NQVA6IDM0MDY3LFxuXHRURVhUVVJFX0JJTkRJTkdfQ1VCRV9NQVA6IDM0MDY4LFxuXHRURVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1g6IDM0MDY5LFxuXHRURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1g6IDM0MDcwLFxuXHRURVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1k6IDM0MDcxLFxuXHRURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1k6IDM0MDcyLFxuXHRURVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1o6IDM0MDczLFxuXHRURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1o6IDM0MDc0LFxuXHRNQVhfQ1VCRV9NQVBfVEVYVFVSRV9TSVpFOiAzNDA3Nixcblx0VEVYVFVSRTA6IDMzOTg0LFxuXHRURVhUVVJFMTogMzM5ODUsXG5cdFRFWFRVUkUyOiAzMzk4Nixcblx0VEVYVFVSRTM6IDMzOTg3LFxuXHRURVhUVVJFNDogMzM5ODgsXG5cdFRFWFRVUkU1OiAzMzk4OSxcblx0VEVYVFVSRTY6IDMzOTkwLFxuXHRURVhUVVJFNzogMzM5OTEsXG5cdFRFWFRVUkU4OiAzMzk5Mixcblx0VEVYVFVSRTk6IDMzOTkzLFxuXHRURVhUVVJFMTA6IDMzOTk0LFxuXHRURVhUVVJFMTE6IDMzOTk1LFxuXHRURVhUVVJFMTI6IDMzOTk2LFxuXHRURVhUVVJFMTM6IDMzOTk3LFxuXHRURVhUVVJFMTQ6IDMzOTk4LFxuXHRURVhUVVJFMTU6IDMzOTk5LFxuXHRURVhUVVJFMTY6IDM0MDAwLFxuXHRURVhUVVJFMTc6IDM0MDAxLFxuXHRURVhUVVJFMTg6IDM0MDAyLFxuXHRURVhUVVJFMTk6IDM0MDAzLFxuXHRURVhUVVJFMjA6IDM0MDA0LFxuXHRURVhUVVJFMjE6IDM0MDA1LFxuXHRURVhUVVJFMjI6IDM0MDA2LFxuXHRURVhUVVJFMjM6IDM0MDA3LFxuXHRURVhUVVJFMjQ6IDM0MDA4LFxuXHRURVhUVVJFMjU6IDM0MDA5LFxuXHRURVhUVVJFMjY6IDM0MDEwLFxuXHRURVhUVVJFMjc6IDM0MDExLFxuXHRURVhUVVJFMjg6IDM0MDEyLFxuXHRURVhUVVJFMjk6IDM0MDEzLFxuXHRURVhUVVJFMzA6IDM0MDE0LFxuXHRURVhUVVJFMzE6IDM0MDE1LFxuXHRBQ1RJVkVfVEVYVFVSRTogMzQwMTYsXG5cdFJFUEVBVDogMTA0OTcsXG5cdENMQU1QX1RPX0VER0U6IDMzMDcxLFxuXHRNSVJST1JFRF9SRVBFQVQ6IDMzNjQ4LFxuXHRGTE9BVF9WRUMyOiAzNTY2NCxcblx0RkxPQVRfVkVDMzogMzU2NjUsXG5cdEZMT0FUX1ZFQzQ6IDM1NjY2LFxuXHRJTlRfVkVDMjogMzU2NjcsXG5cdElOVF9WRUMzOiAzNTY2OCxcblx0SU5UX1ZFQzQ6IDM1NjY5LFxuXHRCT09MOiAzNTY3MCxcblx0Qk9PTF9WRUMyOiAzNTY3MSxcblx0Qk9PTF9WRUMzOiAzNTY3Mixcblx0Qk9PTF9WRUM0OiAzNTY3Myxcblx0RkxPQVRfTUFUMjogMzU2NzQsXG5cdEZMT0FUX01BVDM6IDM1Njc1LFxuXHRGTE9BVF9NQVQ0OiAzNTY3Nixcblx0U0FNUExFUl8yRDogMzU2NzgsXG5cdFNBTVBMRVJfQ1VCRTogMzU2ODAsXG5cdFZFUlRFWF9BVFRSSUJfQVJSQVlfRU5BQkxFRDogMzQzMzgsXG5cdFZFUlRFWF9BVFRSSUJfQVJSQVlfU0laRTogMzQzMzksXG5cdFZFUlRFWF9BVFRSSUJfQVJSQVlfU1RSSURFOiAzNDM0MCxcblx0VkVSVEVYX0FUVFJJQl9BUlJBWV9UWVBFOiAzNDM0MSxcblx0VkVSVEVYX0FUVFJJQl9BUlJBWV9OT1JNQUxJWkVEOiAzNDkyMixcblx0VkVSVEVYX0FUVFJJQl9BUlJBWV9QT0lOVEVSOiAzNDM3Myxcblx0VkVSVEVYX0FUVFJJQl9BUlJBWV9CVUZGRVJfQklORElORzogMzQ5NzUsXG5cdElNUExFTUVOVEFUSU9OX0NPTE9SX1JFQURfVFlQRTogMzU3MzgsXG5cdElNUExFTUVOVEFUSU9OX0NPTE9SX1JFQURfRk9STUFUOiAzNTczOSxcblx0Q09NUElMRV9TVEFUVVM6IDM1NzEzLFxuXHRMT1dfRkxPQVQ6IDM2MzM2LFxuXHRNRURJVU1fRkxPQVQ6IDM2MzM3LFxuXHRISUdIX0ZMT0FUOiAzNjMzOCxcblx0TE9XX0lOVDogMzYzMzksXG5cdE1FRElVTV9JTlQ6IDM2MzQwLFxuXHRISUdIX0lOVDogMzYzNDEsXG5cdEZSQU1FQlVGRkVSOiAzNjE2MCxcblx0UkVOREVSQlVGRkVSOiAzNjE2MSxcblx0UkdCQTQ6IDMyODU0LFxuXHRSR0I1X0ExOiAzMjg1NSxcblx0UkdCNTY1OiAzNjE5NCxcblx0REVQVEhfQ09NUE9ORU5UMTY6IDMzMTg5LFxuXHRTVEVOQ0lMX0lOREVYOiA2NDAxLFxuXHRTVEVOQ0lMX0lOREVYODogMzYxNjgsXG5cdERFUFRIX1NURU5DSUw6IDM0MDQxLFxuXHRSRU5ERVJCVUZGRVJfV0lEVEg6IDM2MTYyLFxuXHRSRU5ERVJCVUZGRVJfSEVJR0hUOiAzNjE2Myxcblx0UkVOREVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1BVDogMzYxNjQsXG5cdFJFTkRFUkJVRkZFUl9SRURfU0laRTogMzYxNzYsXG5cdFJFTkRFUkJVRkZFUl9HUkVFTl9TSVpFOiAzNjE3Nyxcblx0UkVOREVSQlVGRkVSX0JMVUVfU0laRTogMzYxNzgsXG5cdFJFTkRFUkJVRkZFUl9BTFBIQV9TSVpFOiAzNjE3OSxcblx0UkVOREVSQlVGRkVSX0RFUFRIX1NJWkU6IDM2MTgwLFxuXHRSRU5ERVJCVUZGRVJfU1RFTkNJTF9TSVpFOiAzNjE4MSxcblx0RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRTogMzYwNDgsXG5cdEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUU6IDM2MDQ5LFxuXHRGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfTEVWRUw6IDM2MDUwLFxuXHRGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfQ1VCRV9NQVBfRkFDRTogMzYwNTEsXG5cdENPTE9SX0FUVEFDSE1FTlQwOiAzNjA2NCxcblx0REVQVEhfQVRUQUNITUVOVDogMzYwOTYsXG5cdFNURU5DSUxfQVRUQUNITUVOVDogMzYxMjgsXG5cdERFUFRIX1NURU5DSUxfQVRUQUNITUVOVDogMzMzMDYsXG5cdE5PTkU6IDAsXG5cdEZSQU1FQlVGRkVSX0NPTVBMRVRFOiAzNjA1Myxcblx0RlJBTUVCVUZGRVJfSU5DT01QTEVURV9BVFRBQ0hNRU5UOiAzNjA1NCxcblx0RlJBTUVCVUZGRVJfSU5DT01QTEVURV9NSVNTSU5HX0FUVEFDSE1FTlQ6IDM2MDU1LFxuXHRGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lPTlM6IDM2MDU3LFxuXHRGUkFNRUJVRkZFUl9VTlNVUFBPUlRFRDogMzYwNjEsXG5cdEZSQU1FQlVGRkVSX0JJTkRJTkc6IDM2MDA2LFxuXHRSRU5ERVJCVUZGRVJfQklORElORzogMzYwMDcsXG5cdE1BWF9SRU5ERVJCVUZGRVJfU0laRTogMzQwMjQsXG5cdElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OOiAxMjg2LFxuXHRVTlBBQ0tfRkxJUF9ZX1dFQkdMOiAzNzQ0MCxcblx0VU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMOiAzNzQ0MSxcblx0Q09OVEVYVF9MT1NUX1dFQkdMOiAzNzQ0Mixcblx0VU5QQUNLX0NPTE9SU1BBQ0VfQ09OVkVSU0lPTl9XRUJHTDogMzc0NDMsXG5cdEJST1dTRVJfREVGQVVMVF9XRUJHTDogMzc0NDQsXG5cdFJFQURfQlVGRkVSOiAzMDc0LFxuXHRVTlBBQ0tfUk9XX0xFTkdUSDogMzMxNCxcblx0VU5QQUNLX1NLSVBfUk9XUzogMzMxNSxcblx0VU5QQUNLX1NLSVBfUElYRUxTOiAzMzE2LFxuXHRQQUNLX1JPV19MRU5HVEg6IDMzMzAsXG5cdFBBQ0tfU0tJUF9ST1dTOiAzMzMxLFxuXHRQQUNLX1NLSVBfUElYRUxTOiAzMzMyLFxuXHRDT0xPUjogNjE0NCxcblx0REVQVEg6IDYxNDUsXG5cdFNURU5DSUw6IDYxNDYsXG5cdFJFRDogNjQwMyxcblx0VU5QQUNLX1NLSVBfSU1BR0VTOiAzMjg3Nyxcblx0VU5QQUNLX0lNQUdFX0hFSUdIVDogMzI4NzgsXG5cdFRFWFRVUkVfV1JBUF9SOiAzMjg4Mixcblx0TUFYX0VMRU1FTlRTX1ZFUlRJQ0VTOiAzMzAwMCxcblx0TUFYX0VMRU1FTlRTX0lORElDRVM6IDMzMDAxLFxuXHRURVhUVVJFX01JTl9MT0Q6IDMzMDgyLFxuXHRURVhUVVJFX01BWF9MT0Q6IDMzMDgzLFxuXHRURVhUVVJFX0JBU0VfTEVWRUw6IDMzMDg0LFxuXHRURVhUVVJFX01BWF9MRVZFTDogMzMwODUsXG5cdE1JTjogMzI3NzUsXG5cdE1BWDogMzI3NzYsXG5cdE1BWF9URVhUVVJFX0xPRF9CSUFTOiAzNDA0NSxcblx0VEVYVFVSRV9DT01QQVJFX01PREU6IDM0ODkyLFxuXHRURVhUVVJFX0NPTVBBUkVfRlVOQzogMzQ4OTMsXG5cdENVUlJFTlRfUVVFUlk6IDM0OTE3LFxuXHRRVUVSWV9SRVNVTFQ6IDM0OTE4LFxuXHRRVUVSWV9SRVNVTFRfQVZBSUxBQkxFOiAzNDkxOSxcblx0U1RSRUFNX1JFQUQ6IDM1MDQxLFxuXHRTVFJFQU1fQ09QWTogMzUwNDIsXG5cdFNUQVRJQ19SRUFEOiAzNTA0NSxcblx0U1RBVElDX0NPUFk6IDM1MDQ2LFxuXHREWU5BTUlDX1JFQUQ6IDM1MDQ5LFxuXHREWU5BTUlDX0NPUFk6IDM1MDUwLFxuXHRNQVhfRFJBV19CVUZGRVJTOiAzNDg1Mixcblx0TUFYX0ZSQUdNRU5UX1VOSUZPUk1fQ09NUE9ORU5UUzogMzU2NTcsXG5cdE1BWF9WRVJURVhfVU5JRk9STV9DT01QT05FTlRTOiAzNTY1OCxcblx0RlJBR01FTlRfU0hBREVSX0RFUklWQVRJVkVfSElOVDogMzU3MjMsXG5cdFBJWEVMX1BBQ0tfQlVGRkVSOiAzNTA1MSxcblx0UElYRUxfVU5QQUNLX0JVRkZFUjogMzUwNTIsXG5cdFBJWEVMX1BBQ0tfQlVGRkVSX0JJTkRJTkc6IDM1MDUzLFxuXHRQSVhFTF9VTlBBQ0tfQlVGRkVSX0JJTkRJTkc6IDM1MDU1LFxuXHRTUkdCOiAzNTkwNCxcblx0Q09NUEFSRV9SRUZfVE9fVEVYVFVSRTogMzQ4OTQsXG5cdFZFUlRFWF9BVFRSSUJfQVJSQVlfSU5URUdFUjogMzUwNjksXG5cdE1BWF9BUlJBWV9URVhUVVJFX0xBWUVSUzogMzUwNzEsXG5cdE1JTl9QUk9HUkFNX1RFWEVMX09GRlNFVDogMzUwNzYsXG5cdE1BWF9QUk9HUkFNX1RFWEVMX09GRlNFVDogMzUwNzcsXG5cdE1BWF9WQVJZSU5HX0NPTVBPTkVOVFM6IDM1NjU5LFxuXHRUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX01PREU6IDM1OTY3LFxuXHRNQVhfVFJBTlNGT1JNX0ZFRURCQUNLX1NFUEFSQVRFX0NPTVBPTkVOVFM6IDM1OTY4LFxuXHRUUkFOU0ZPUk1fRkVFREJBQ0tfVkFSWUlOR1M6IDM1OTcxLFxuXHRUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX1NUQVJUOiAzNTk3Mixcblx0VFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9TSVpFOiAzNTk3Myxcblx0VFJBTlNGT1JNX0ZFRURCQUNLX1BSSU1JVElWRVNfV1JJVFRFTjogMzU5NzYsXG5cdFJBU1RFUklaRVJfRElTQ0FSRDogMzU5NzcsXG5cdE1BWF9UUkFOU0ZPUk1fRkVFREJBQ0tfSU5URVJMRUFWRURfQ09NUE9ORU5UUzogMzU5NzgsXG5cdE1BWF9UUkFOU0ZPUk1fRkVFREJBQ0tfU0VQQVJBVEVfQVRUUklCUzogMzU5NzksXG5cdElOVEVSTEVBVkVEX0FUVFJJQlM6IDM1OTgwLFxuXHRTRVBBUkFURV9BVFRSSUJTOiAzNTk4MSxcblx0VFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUjogMzU5ODIsXG5cdFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORzogMzU5ODMsXG5cdFJFRF9JTlRFR0VSOiAzNjI0NCxcblx0UkdCX0lOVEVHRVI6IDM2MjQ4LFxuXHRSR0JBX0lOVEVHRVI6IDM2MjQ5LFxuXHRTQU1QTEVSX0NVQkVfU0hBRE9XOiAzNjI5Myxcblx0SU5UX1NBTVBMRVJfQ1VCRTogMzYzMDAsXG5cdFVOU0lHTkVEX0lOVF9TQU1QTEVSX0NVQkU6IDM2MzA4LFxuXHRGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HOiAzMzI5Nixcblx0RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT01QT05FTlRfVFlQRTogMzMyOTcsXG5cdEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfUkVEX1NJWkU6IDMzMjk4LFxuXHRGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0dSRUVOX1NJWkU6IDMzMjk5LFxuXHRGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0JMVUVfU0laRTogMzMzMDAsXG5cdEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQUxQSEFfU0laRTogMzMzMDEsXG5cdEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfREVQVEhfU0laRTogMzMzMDIsXG5cdEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfU1RFTkNJTF9TSVpFOiAzMzMwMyxcblx0RlJBTUVCVUZGRVJfREVGQVVMVDogMzMzMDQsXG5cdFVOU0lHTkVEX05PUk1BTElaRUQ6IDM1ODYzLFxuXHREUkFXX0ZSQU1FQlVGRkVSX0JJTkRJTkc6IDM2MDA2LFxuXHRSRUFEX0ZSQU1FQlVGRkVSOiAzNjAwOCxcblx0RFJBV19GUkFNRUJVRkZFUjogMzYwMDksXG5cdFJFQURfRlJBTUVCVUZGRVJfQklORElORzogMzYwMTAsXG5cdFJFTkRFUkJVRkZFUl9TQU1QTEVTOiAzNjAxMSxcblx0RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0xBWUVSOiAzNjA1Mixcblx0TUFYX0NPTE9SX0FUVEFDSE1FTlRTOiAzNjA2Myxcblx0RlJBTUVCVUZGRVJfSU5DT01QTEVURV9NVUxUSVNBTVBMRTogMzYxODIsXG5cdE1BWF9TQU1QTEVTOiAzNjE4Myxcblx0SEFMRl9GTE9BVDogNTEzMSxcblx0Ukc6IDMzMzE5LFxuXHRSR19JTlRFR0VSOiAzMzMyMCxcblx0VkVSVEVYX0FSUkFZX0JJTkRJTkc6IDM0MjI5LFxuXHRTSUdORURfTk9STUFMSVpFRDogMzY3NjQsXG5cdENPUFlfUkVBRF9CVUZGRVI6IDM2NjYyLFxuXHRDT1BZX1dSSVRFX0JVRkZFUjogMzY2NjMsXG5cdENPUFlfUkVBRF9CVUZGRVJfQklORElORzogMzY2NjIsXG5cdENPUFlfV1JJVEVfQlVGRkVSX0JJTkRJTkc6IDM2NjYzLFxuXHRVTklGT1JNX0JVRkZFUjogMzUzNDUsXG5cdFVOSUZPUk1fQlVGRkVSX0JJTkRJTkc6IDM1MzY4LFxuXHRVTklGT1JNX0JVRkZFUl9TVEFSVDogMzUzNjksXG5cdFVOSUZPUk1fQlVGRkVSX1NJWkU6IDM1MzcwLFxuXHRNQVhfVkVSVEVYX1VOSUZPUk1fQkxPQ0tTOiAzNTM3MSxcblx0TUFYX0ZSQUdNRU5UX1VOSUZPUk1fQkxPQ0tTOiAzNTM3Myxcblx0TUFYX0NPTUJJTkVEX1VOSUZPUk1fQkxPQ0tTOiAzNTM3NCxcblx0TUFYX1VOSUZPUk1fQlVGRkVSX0JJTkRJTkdTOiAzNTM3NSxcblx0TUFYX1VOSUZPUk1fQkxPQ0tfU0laRTogMzUzNzYsXG5cdE1BWF9DT01CSU5FRF9WRVJURVhfVU5JRk9STV9DT01QT05FTlRTOiAzNTM3Nyxcblx0TUFYX0NPTUJJTkVEX0ZSQUdNRU5UX1VOSUZPUk1fQ09NUE9ORU5UUzogMzUzNzksXG5cdFVOSUZPUk1fQlVGRkVSX09GRlNFVF9BTElHTk1FTlQ6IDM1MzgwLFxuXHRBQ1RJVkVfVU5JRk9STV9CTE9DS1M6IDM1MzgyLFxuXHRVTklGT1JNX1RZUEU6IDM1MzgzLFxuXHRVTklGT1JNX1NJWkU6IDM1Mzg0LFxuXHRVTklGT1JNX0JMT0NLX0lOREVYOiAzNTM4Nixcblx0VU5JRk9STV9PRkZTRVQ6IDM1Mzg3LFxuXHRVTklGT1JNX0FSUkFZX1NUUklERTogMzUzODgsXG5cdFVOSUZPUk1fTUFUUklYX1NUUklERTogMzUzODksXG5cdFVOSUZPUk1fSVNfUk9XX01BSk9SOiAzNTM5MCxcblx0VU5JRk9STV9CTE9DS19CSU5ESU5HOiAzNTM5MSxcblx0VU5JRk9STV9CTE9DS19EQVRBX1NJWkU6IDM1MzkyLFxuXHRVTklGT1JNX0JMT0NLX0FDVElWRV9VTklGT1JNUzogMzUzOTQsXG5cdFVOSUZPUk1fQkxPQ0tfQUNUSVZFX1VOSUZPUk1fSU5ESUNFUzogMzUzOTUsXG5cdFVOSUZPUk1fQkxPQ0tfUkVGRVJFTkNFRF9CWV9WRVJURVhfU0hBREVSOiAzNTM5Nixcblx0VU5JRk9STV9CTE9DS19SRUZFUkVOQ0VEX0JZX0ZSQUdNRU5UX1NIQURFUjogMzUzOTgsXG5cdElOVkFMSURfSU5ERVg6IDQyOTQ5NjcyOTUsXG5cdE1BWF9WRVJURVhfT1VUUFVUX0NPTVBPTkVOVFM6IDM3MTU0LFxuXHRNQVhfRlJBR01FTlRfSU5QVVRfQ09NUE9ORU5UUzogMzcxNTcsXG5cdE1BWF9TRVJWRVJfV0FJVF9USU1FT1VUOiAzNzEzNyxcblx0T0JKRUNUX1RZUEU6IDM3MTM4LFxuXHRTWU5DX0NPTkRJVElPTjogMzcxMzksXG5cdFNZTkNfU1RBVFVTOiAzNzE0MCxcblx0U1lOQ19GTEFHUzogMzcxNDEsXG5cdFNZTkNfRkVOQ0U6IDM3MTQyLFxuXHRTWU5DX0dQVV9DT01NQU5EU19DT01QTEVURTogMzcxNDMsXG5cdFVOU0lHTkFMRUQ6IDM3MTQ0LFxuXHRTSUdOQUxFRDogMzcxNDUsXG5cdEFMUkVBRFlfU0lHTkFMRUQ6IDM3MTQ2LFxuXHRUSU1FT1VUX0VYUElSRUQ6IDM3MTQ3LFxuXHRDT05ESVRJT05fU0FUSVNGSUVEOiAzNzE0OCxcblx0V0FJVF9GQUlMRUQ6IDM3MTQ5LFxuXHRTWU5DX0ZMVVNIX0NPTU1BTkRTX0JJVDogMSxcblx0VkVSVEVYX0FUVFJJQl9BUlJBWV9ESVZJU09SOiAzNTA3MCxcblx0QU5ZX1NBTVBMRVNfUEFTU0VEOiAzNTg4Nyxcblx0QU5ZX1NBTVBMRVNfUEFTU0VEX0NPTlNFUlZBVElWRTogMzYyMDIsXG5cdFNBTVBMRVJfQklORElORzogMzUwOTcsXG5cdFRSQU5TRk9STV9GRUVEQkFDSzogMzYzODYsXG5cdFRSQU5TRk9STV9GRUVEQkFDS19QQVVTRUQ6IDM2Mzg3LFxuXHRUUkFOU0ZPUk1fRkVFREJBQ0tfQUNUSVZFOiAzNjM4OCxcblx0VFJBTlNGT1JNX0ZFRURCQUNLX0JJTkRJTkc6IDM2Mzg5LFxuXHRURVhUVVJFX0lNTVVUQUJMRV9GT1JNQVQ6IDM3MTY3LFxuXHRNQVhfRUxFTUVOVF9JTkRFWDogMzYyMDMsXG5cdFRFWFRVUkVfSU1NVVRBQkxFX0xFVkVMUzogMzM1MDMsXG5cdFRJTUVPVVRfSUdOT1JFRDogLTEsXG5cdE1BWF9DTElFTlRfV0FJVF9USU1FT1VUX1dFQkdMOiAzNzQ0Nyxcbn07XG5cbmNvbnN0IGV4dGVuc2lvbnM6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7XG5cdC8vIHJhdGlmaWVkXG5cdE9FU190ZXh0dXJlX2Zsb2F0OiB7fSxcblx0T0VTX3RleHR1cmVfaGFsZl9mbG9hdDoge30sXG5cdFdFQkdMX2xvc2VfY29udGV4dDoge1xuXHRcdGxvc2VDb250ZXh0OiAoKSA9PiB7fSxcblx0fSxcblx0T0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzOiB7fSxcblx0T0VTX3ZlcnRleF9hcnJheV9vYmplY3Q6IHtcblx0XHRjcmVhdGVWZXJ0ZXhBcnJheU9FUzogKCkgPT4ge30sXG5cdFx0YmluZFZlcnRleEFycmF5T0VTOiAoKSA9PiB7fSxcblx0XHRkZWxldGVWZXJ0ZXhBcnJheU9FUzogKCkgPT4ge30sXG5cdH0sXG5cdFdFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm86IG51bGwsXG5cdFdFQkdMX2RlYnVnX3NoYWRlcnM6IG51bGwsXG5cdFdFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjOiBudWxsLFxuXHRXRUJHTF9kZXB0aF90ZXh0dXJlOiB7fSxcblx0T0VTX2VsZW1lbnRfaW5kZXhfdWludDoge30sXG5cdEVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYzogbnVsbCxcblx0RVhUX2ZyYWdfZGVwdGg6IHt9LFxuXHRXRUJHTF9kcmF3X2J1ZmZlcnM6IHt9LFxuXHRBTkdMRV9pbnN0YW5jZWRfYXJyYXlzOiBudWxsLFxuXHRPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXI6IG51bGwsXG5cdE9FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyOiBudWxsLFxuXHRFWFRfYmxlbmRfbWlubWF4OiB7IE1JTl9FWFQ6IDAsIE1BWF9FWFQ6IDAgfSxcblx0RVhUX3NoYWRlcl90ZXh0dXJlX2xvZDogbnVsbCxcblx0Ly8gY29tbXVuaXR5XG5cdFdFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9hdGM6IG51bGwsXG5cdFdFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YzogbnVsbCxcblx0RVhUX2NvbG9yX2J1ZmZlcl9oYWxmX2Zsb2F0OiBudWxsLFxuXHRXRUJHTF9jb2xvcl9idWZmZXJfZmxvYXQ6IG51bGwsXG5cdEVYVF9zUkdCOiBudWxsLFxuXHRXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfZXRjMTogbnVsbCxcbn07XG5cbmV4cG9ydCBjbGFzcyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0IHtcblx0W2tleTogc3RyaW5nXTogYW55O1xuXG5cdGNvbnN0cnVjdG9yKGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQpIHtcblx0XHQvLyBAdHMtaWdub3JlXG5cdFx0dGhpcy5jYW52YXMgPSBjYW52YXM7XG5cdFx0Ly8gQHRzLWlnbm9yZVxuXHRcdHRoaXMuZHJhd2luZ0J1ZmZlcldpZHRoID0gY2FudmFzLndpZHRoO1xuXHRcdC8vIEB0cy1pZ25vcmVcblx0XHR0aGlzLmRyYXdpbmdCdWZmZXJIZWlnaHQgPSBjYW52YXMuaGVpZ2h0O1xuXG5cdFx0Zm9yIChjb25zdCBtZXRob2Qgb2YgZnVuY3Rpb25zKSB7XG5cdFx0XHR0aGlzW21ldGhvZF0gPz89ICgpID0+IHt9O1xuXHRcdH1cblxuXHRcdE9iamVjdC5hc3NpZ24odGhpcywgZW51bXMpO1xuXHR9XG5cblx0Z2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0ID0gKCkgPT4ge1xuXHRcdHJldHVybiB7XG5cdFx0XHRyYW5nZU1pbjogMTI3LFxuXHRcdFx0cmFuZ2VNYXg6IDEyNyxcblx0XHRcdHByZWNpc2lvbjogMjMsXG5cdFx0fTtcblx0fTtcblxuXHRwcml2YXRlIEdMX1ZFUlNJT04gPSA3OTM4O1xuXHRwcml2YXRlIFNDSVNTT1JfQk9YID0gMzA4ODtcblx0cHJpdmF0ZSBWSUVXUE9SVCA9IDI5Nzg7XG5cblx0Ly8gQHRzLWlnbm9yZVxuXHRnZXRQYXJhbWV0ZXIocGFyYW1JZDogbnVtYmVyKSB7XG5cdFx0c3dpdGNoIChwYXJhbUlkKSB7XG5cdFx0XHRjYXNlIHRoaXMuR0xfVkVSU0lPTjpcblx0XHRcdFx0cmV0dXJuIFsnV2ViR0wyJ107XG5cdFx0XHRjYXNlIHRoaXMuU0NJU1NPUl9CT1g6XG5cdFx0XHRjYXNlIHRoaXMuVklFV1BPUlQ6XG5cdFx0XHRcdHJldHVybiBbMCwgMCwgMSwgMV07XG5cdFx0fVxuXHR9XG5cblx0Z2V0RXh0ZW5zaW9uKGV4dDogc3RyaW5nKSB7XG5cdFx0cmV0dXJuIGV4dGVuc2lvbnNbZXh0XTtcblx0fVxuXG5cdGdldFByb2dyYW1JbmZvTG9nID0gKCkgPT4gJyc7XG5cblx0Z2V0U2hhZGVySW5mb0xvZyA9ICgpID0+ICcnO1xufVxuIl19