angular-three 2.0.0-beta.270 → 2.0.0-beta.272

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.
package/esm2022/index.mjs CHANGED
@@ -6,6 +6,7 @@ export * from './lib/loader';
6
6
  export { addAfterEffect, addEffect, addTail } from './lib/loop';
7
7
  export { NgtPortal, NgtPortalContent } from './lib/portal';
8
8
  export * from './lib/renderer';
9
+ export { injectCanvasRootInitializer } from './lib/roots';
9
10
  export * from './lib/routed-scene';
10
11
  export * from './lib/store';
11
12
  export * from './lib/utils/apply-props';
@@ -18,4 +19,4 @@ export * from './lib/utils/parameters';
18
19
  export * from './lib/utils/resolve-ref';
19
20
  export * from './lib/utils/signal-store';
20
21
  export * from './lib/utils/update';
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsdUJBQXVCLENBQUM7QUFFdEMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGNBQWMsQ0FBQztBQUM3QixPQUFPLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMzRCxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9jYW52YXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9hcmdzJztcbmV4cG9ydCB7IE5ndENhbWVyYSwgTmd0Q29tcHV0ZUZ1bmN0aW9uLCBOZ3REb21FdmVudCwgTmd0VGhyZWVFdmVudCB9IGZyb20gJy4vbGliL2V2ZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9odG1sJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2luc3RhbmNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xvYWRlcic7XG5leHBvcnQgeyBhZGRBZnRlckVmZmVjdCwgYWRkRWZmZWN0LCBhZGRUYWlsIH0gZnJvbSAnLi9saWIvbG9vcCc7XG5leHBvcnQgeyBOZ3RQb3J0YWwsIE5ndFBvcnRhbENvbnRlbnQgfSBmcm9tICcuL2xpYi9wb3J0YWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVuZGVyZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcm91dGVkLXNjZW5lJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0b3JlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL2FwcGx5LXByb3BzJztcbmV4cG9ydCB7IGNyZWF0ZUF0dGFjaEZ1bmN0aW9uIH0gZnJvbSAnLi9saWIvdXRpbHMvYXR0YWNoJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL2JlZm9yZS1yZW5kZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvaXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvbWFrZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9vYmplY3QtZXZlbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL3BhcmFtZXRlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvcmVzb2x2ZS1yZWYnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvc2lnbmFsLXN0b3JlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL3VwZGF0ZSc7XG5cbmV4cG9ydCB0eXBlICogZnJvbSAnLi9saWIvdGhyZWUtdHlwZXMnO1xuZXhwb3J0IHR5cGUgKiBmcm9tICcuL2xpYi90eXBlcyc7XG4iXX0=
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsdUJBQXVCLENBQUM7QUFFdEMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGNBQWMsQ0FBQztBQUM3QixPQUFPLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMzRCxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxRCxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvY2FudmFzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvYXJncyc7XG5leHBvcnQgeyBOZ3RDYW1lcmEsIE5ndENvbXB1dGVGdW5jdGlvbiwgTmd0RG9tRXZlbnQsIE5ndEV2ZW50SGFuZGxlcnMsIE5ndFRocmVlRXZlbnQgfSBmcm9tICcuL2xpYi9ldmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaHRtbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnN0YW5jZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9sb2FkZXInO1xuZXhwb3J0IHsgYWRkQWZ0ZXJFZmZlY3QsIGFkZEVmZmVjdCwgYWRkVGFpbCB9IGZyb20gJy4vbGliL2xvb3AnO1xuZXhwb3J0IHsgTmd0UG9ydGFsLCBOZ3RQb3J0YWxDb250ZW50IH0gZnJvbSAnLi9saWIvcG9ydGFsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JlbmRlcmVyJztcbmV4cG9ydCB7IGluamVjdENhbnZhc1Jvb3RJbml0aWFsaXplciB9IGZyb20gJy4vbGliL3Jvb3RzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JvdXRlZC1zY2VuZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdG9yZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9hcHBseS1wcm9wcyc7XG5leHBvcnQgeyBjcmVhdGVBdHRhY2hGdW5jdGlvbiB9IGZyb20gJy4vbGliL3V0aWxzL2F0dGFjaCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9iZWZvcmUtcmVuZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL2lzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL21ha2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvb2JqZWN0LWV2ZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9wYXJhbWV0ZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL3Jlc29sdmUtcmVmJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL3NpZ25hbC1zdG9yZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy91cGRhdGUnO1xuXG5leHBvcnQgdHlwZSAqIGZyb20gJy4vbGliL3RocmVlLXR5cGVzJztcbmV4cG9ydCB0eXBlICogZnJvbSAnLi9saWIvdHlwZXMnO1xuIl19
@@ -1,4 +1,4 @@
1
- import { ChangeDetectionStrategy, Component, DestroyRef, ElementRef, EnvironmentInjector, Injector, NgZone, ViewContainerRef, afterNextRender, booleanAttribute, computed, createEnvironmentInjector, inject, input, output, signal, untracked, viewChild, } from '@angular/core';
1
+ import { afterNextRender, booleanAttribute, ChangeDetectionStrategy, Component, computed, createEnvironmentInjector, DestroyRef, ElementRef, EnvironmentInjector, inject, Injector, input, NgZone, output, signal, untracked, viewChild, ViewContainerRef, } from '@angular/core';
2
2
  import { outputFromObservable } from '@angular/core/rxjs-interop';
3
3
  import { injectAutoEffect } from 'ngxtension/auto-effect';
4
4
  import { NgxResize, provideResizeOptions } from 'ngxtension/resize';
@@ -53,9 +53,9 @@ export class NgtCanvas {
53
53
  this.pointerMissed = outputFromObservable(this.store.get('pointerMissed$'));
54
54
  this.glCanvas = viewChild.required('glCanvas');
55
55
  this.glCanvasViewContainerRef = viewChild.required('glCanvas', { read: ViewContainerRef });
56
+ this.hbPointerEvents = computed(() => (this.eventSource() ? 'none' : 'auto'));
56
57
  // NOTE: this signal is updated outside of Zone
57
58
  this.resizeResult = signal({}, { equal: Object.is });
58
- this.hbPointerEvents = computed(() => (this.eventSource() ? 'none' : 'auto'));
59
59
  afterNextRender(() => {
60
60
  this.zone.runOutsideAngular(() => {
61
61
  this.configurator = this.initRoot(this.glCanvas().nativeElement);
@@ -183,4 +183,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
183
183
  changeDetection: ChangeDetectionStrategy.OnPush,
184
184
  }]
185
185
  }], ctorParameters: () => [] });
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudmFzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2FudmFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTix1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFVBQVUsRUFDVixVQUFVLEVBQ1YsbUJBQW1CLEVBQ25CLFFBQVEsRUFDUixNQUFNLEVBRU4sZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLHlCQUF5QixFQUN6QixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUErQixvQkFBb0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBWWpHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEQsT0FBTyxFQUEyQywyQkFBMkIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMvRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUE4RCxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBR2hILE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7O0FBNEZoQyxNQUFNLE9BQU8sU0FBUztJQXFEckI7UUFwRFEsVUFBSyxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBQ3RCLGFBQVEsR0FBRywyQkFBMkIsRUFBRSxDQUFDO1FBQ3pDLGVBQVUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBRWhDLFNB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RSxJQUFJO2dCQUN2QixRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUU7YUFDbEIsQ0FBQztZQUNuQixZQUFZLEVBQUU7U0FDZCxrT0FrRGlFLGdCQUFnQiw2Q0EvRHhFOzs7O0VBSVQsNERBQ1MsU0FBUzs7MkZBZVAsU0FBUztrQkF2QnJCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7RUFJVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUM7b0JBQ3BCLFNBQVMsRUFBRTt3QkFDVixvQkFBb0IsQ0FBQzs0QkFDcEIsVUFBVSxFQUFFLEtBQUs7NEJBQ2pCLGlCQUFpQixFQUFFLElBQUk7NEJBQ3ZCLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRTt5QkFDbEIsQ0FBQzt3QkFDbkIsWUFBWSxFQUFFO3FCQUNkO29CQUNELElBQUksRUFBRTt3QkFDTCxLQUFLLEVBQUUsOEVBQThFO3dCQUNyRix1QkFBdUIsRUFBRSxtQkFBbUI7cUJBQzVDO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUMvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdENvbXBvbmVudFJlZixcblx0RGVzdHJveVJlZixcblx0RWxlbWVudFJlZixcblx0RW52aXJvbm1lbnRJbmplY3Rvcixcblx0SW5qZWN0b3IsXG5cdE5nWm9uZSxcblx0VHlwZSxcblx0Vmlld0NvbnRhaW5lclJlZixcblx0YWZ0ZXJOZXh0UmVuZGVyLFxuXHRib29sZWFuQXR0cmlidXRlLFxuXHRjb21wdXRlZCxcblx0Y3JlYXRlRW52aXJvbm1lbnRJbmplY3Rvcixcblx0aW5qZWN0LFxuXHRpbnB1dCxcblx0b3V0cHV0LFxuXHRzaWduYWwsXG5cdHVudHJhY2tlZCxcblx0dmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG91dHB1dEZyb21PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgaW5qZWN0QXV0b0VmZmVjdCB9IGZyb20gJ25neHRlbnNpb24vYXV0by1lZmZlY3QnO1xuaW1wb3J0IHsgTmd4UmVzaXplLCBSZXNpemVPcHRpb25zLCBSZXNpemVSZXN1bHQsIHByb3ZpZGVSZXNpemVPcHRpb25zIH0gZnJvbSAnbmd4dGVuc2lvbi9yZXNpemUnO1xuaW1wb3J0IHtcblx0Q2FtZXJhLFxuXHRPcnRob2dyYXBoaWNDYW1lcmEsXG5cdFBlcnNwZWN0aXZlQ2FtZXJhLFxuXHRSYXljYXN0ZXIsXG5cdFNjZW5lLFxuXHRWZWN0b3IzLFxuXHRXZWJHTFJlbmRlcmVyLFxuXHRXZWJHTFJlbmRlcmVyUGFyYW1ldGVycyxcblx0V2ViR0xTaGFkb3dNYXAsXG59IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IGNyZWF0ZVBvaW50ZXJFdmVudHMgfSBmcm9tICcuL2RvbS9ldmVudHMnO1xuaW1wb3J0IHsgTmd0Q2FtZXJhLCBOZ3REb21FdmVudCwgTmd0RXZlbnRNYW5hZ2VyIH0gZnJvbSAnLi9ldmVudHMnO1xuaW1wb3J0IHsgcHJvdmlkZU5ndFJlbmRlcmVyIH0gZnJvbSAnLi9yZW5kZXJlcic7XG5pbXBvcnQgeyBOZ3RDYW52YXNDb25maWd1cmF0b3IsIE5ndENhbnZhc0VsZW1lbnQsIGluamVjdENhbnZhc1Jvb3RJbml0aWFsaXplciB9IGZyb20gJy4vcm9vdHMnO1xuaW1wb3J0IHsgTmd0Um91dGVkU2NlbmUgfSBmcm9tICcuL3JvdXRlZC1zY2VuZSc7XG5pbXBvcnQgeyBOZ3REcHIsIE5ndFBlcmZvcm1hbmNlLCBOZ3RSZW5kZXJlckxpa2UsIE5ndFNpemUsIE5ndFN0YXRlLCBpbmplY3RTdG9yZSwgcHJvdmlkZVN0b3JlIH0gZnJvbSAnLi9zdG9yZSc7XG5pbXBvcnQgeyBOZ3RPYmplY3QzRE5vZGUgfSBmcm9tICcuL3RocmVlLXR5cGVzJztcbmltcG9ydCB7IE5ndFByb3BlcnRpZXMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi91dGlscy9pcyc7XG5pbXBvcnQgeyBOZ3RTaWduYWxTdG9yZSB9IGZyb20gJy4vdXRpbHMvc2lnbmFsLXN0b3JlJztcblxuZXhwb3J0IHR5cGUgTmd0R0xPcHRpb25zID1cblx0fCBOZ3RSZW5kZXJlckxpa2Vcblx0fCAoKGNhbnZhczogTmd0Q2FudmFzRWxlbWVudCkgPT4gTmd0UmVuZGVyZXJMaWtlKVxuXHR8IFBhcnRpYWw8Tmd0UHJvcGVydGllczxXZWJHTFJlbmRlcmVyPiB8IFdlYkdMUmVuZGVyZXJQYXJhbWV0ZXJzPlxuXHR8IHVuZGVmaW5lZDtcblxuZXhwb3J0IGludGVyZmFjZSBOZ3RDYW52YXNPcHRpb25zIHtcblx0LyoqIEEgdGhyZWVqcyByZW5kZXJlciBpbnN0YW5jZSBvciBwcm9wcyB0aGF0IGdvIGludG8gdGhlIGRlZmF1bHQgcmVuZGVyZXIgKi9cblx0Z2w/OiBOZ3RHTE9wdGlvbnM7XG5cdC8qKiBEaW1lbnNpb25zIHRvIGZpdCB0aGUgcmVuZGVyZXIgdG8uIFdpbGwgbWVhc3VyZSBjYW52YXMgZGltZW5zaW9ucyBpZiBvbWl0dGVkICovXG5cdHNpemU/OiBOZ3RTaXplO1xuXHQvKipcblx0ICogRW5hYmxlcyBzaGFkb3dzIChieSBkZWZhdWx0IFBDRnNvZnQpLiBDYW4gYWNjZXB0IGBnbC5zaGFkb3dNYXBgIG9wdGlvbnMgZm9yIGZpbmUtdHVuaW5nLFxuXHQgKiBidXQgYWxzbyBzdHJpbmdzOiAnYmFzaWMnIHwgJ3BlcmNlbnRhZ2UnIHwgJ3NvZnQnIHwgJ3ZhcmlhbmNlJy5cblx0ICogQHNlZSBodHRwczovL3RocmVlanMub3JnL2RvY3MvI2FwaS9lbi9yZW5kZXJlcnMvV2ViR0xSZW5kZXJlci5zaGFkb3dNYXBcblx0ICovXG5cdHNoYWRvd3M/OiBib29sZWFuIHwgJ2Jhc2ljJyB8ICdwZXJjZW50YWdlJyB8ICdzb2Z0JyB8ICd2YXJpYW5jZScgfCBQYXJ0aWFsPFdlYkdMU2hhZG93TWFwPjtcblx0LyoqXG5cdCAqIERpc2FibGVzIHRocmVlIHIxMzkgY29sb3IgbWFuYWdlbWVudC5cblx0ICogQHNlZSBodHRwczovL3RocmVlanMub3JnL2RvY3MvI21hbnVhbC9lbi9pbnRyb2R1Y3Rpb24vQ29sb3ItbWFuYWdlbWVudFxuXHQgKi9cblx0bGVnYWN5PzogYm9vbGVhbjtcblx0LyoqIFN3aXRjaCBvZmYgYXV0b21hdGljIHNSR0IgY29sb3Igc3BhY2UgYW5kIGdhbW1hIGNvcnJlY3Rpb24gKi9cblx0bGluZWFyPzogYm9vbGVhbjtcblx0LyoqIFVzZSBgVEhSRUUuTm9Ub25lTWFwcGluZ2AgaW5zdGVhZCBvZiBgVEhSRUUuQUNFU0ZpbG1pY1RvbmVNYXBwaW5nYCAqL1xuXHRmbGF0PzogYm9vbGVhbjtcblx0LyoqIENyZWF0ZXMgYW4gb3J0aG9ncmFwaGljIGNhbWVyYSAqL1xuXHRvcnRob2dyYXBoaWM/OiBib29sZWFuO1xuXHQvKipcblx0ICogUjNGJ3MgcmVuZGVyIG1vZGUuIFNldCB0byBgZGVtYW5kYCB0byBvbmx5IHJlbmRlciBvbiBzdGF0ZSBjaGFuZ2Ugb3IgYG5ldmVyYCB0byB0YWtlIGNvbnRyb2wuXG5cdCAqIEBzZWUgaHR0cHM6Ly9kb2NzLnBtbmQucnMvcmVhY3QtdGhyZWUtZmliZXIvYWR2YW5jZWQvc2NhbGluZy1wZXJmb3JtYW5jZSNvbi1kZW1hbmQtcmVuZGVyaW5nXG5cdCAqL1xuXHRmcmFtZWxvb3A/OiAnYWx3YXlzJyB8ICdkZW1hbmQnIHwgJ25ldmVyJztcblx0LyoqXG5cdCAqIFIzRiBwZXJmb3JtYW5jZSBvcHRpb25zIGZvciBhZGFwdGl2ZSBwZXJmb3JtYW5jZS5cblx0ICogQHNlZSBodHRwczovL2RvY3MucG1uZC5ycy9yZWFjdC10aHJlZS1maWJlci9hZHZhbmNlZC9zY2FsaW5nLXBlcmZvcm1hbmNlI21vdmVtZW50LXJlZ3Jlc3Npb25cblx0ICovXG5cdHBlcmZvcm1hbmNlPzogUGFydGlhbDxPbWl0PE5ndFBlcmZvcm1hbmNlLCAncmVncmVzcyc+Pjtcblx0LyoqIFRhcmdldCBwaXhlbCByYXRpby4gQ2FuIGNsYW1wIGJldHdlZW4gYSByYW5nZTogYFttaW4sIG1heF1gICovXG5cdGRwcj86IE5ndERwcjtcblx0LyoqIFByb3BzIHRoYXQgZ28gaW50byB0aGUgZGVmYXVsdCByYXljYXN0ZXIgKi9cblx0cmF5Y2FzdGVyPzogUGFydGlhbDxSYXljYXN0ZXI+O1xuXHQvKiogQSBgU2NlbmVgIGluc3RhbmNlIG9yIHByb3BzIHRoYXQgZ28gaW50byB0aGUgZGVmYXVsdCBzY2VuZSAqL1xuXHRzY2VuZT86IFNjZW5lIHwgUGFydGlhbDxTY2VuZT47XG5cdC8qKiBBIGBDYW1lcmFgIGluc3RhbmNlIG9yIHByb3BzIHRoYXQgZ28gaW50byB0aGUgZGVmYXVsdCBjYW1lcmEgKi9cblx0Y2FtZXJhPzogKFxuXHRcdHwgTmd0Q2FtZXJhXG5cdFx0fCBQYXJ0aWFsPFxuXHRcdFx0XHROZ3RPYmplY3QzRE5vZGU8Q2FtZXJhLCB0eXBlb2YgQ2FtZXJhPiAmXG5cdFx0XHRcdFx0Tmd0T2JqZWN0M0ROb2RlPFBlcnNwZWN0aXZlQ2FtZXJhLCB0eXBlb2YgUGVyc3BlY3RpdmVDYW1lcmE+ICZcblx0XHRcdFx0XHROZ3RPYmplY3QzRE5vZGU8T3J0aG9ncmFwaGljQ2FtZXJhLCB0eXBlb2YgT3J0aG9ncmFwaGljQ2FtZXJhPlxuXHRcdCAgPlxuXHQpICYge1xuXHRcdC8qKiBGbGFncyB0aGUgY2FtZXJhIGFzIG1hbnVhbCwgcHV0dGluZyBwcm9qZWN0aW9uIGludG8geW91ciBvd24gaGFuZHMgKi9cblx0XHRtYW51YWw/OiBib29sZWFuO1xuXHR9O1xuXHQvKiogQW4gUjNGIGV2ZW50IG1hbmFnZXIgdG8gbWFuYWdlIGVsZW1lbnRzJyBwb2ludGVyIGV2ZW50cyAqL1xuXHRldmVudHM/OiAoc3RvcmU6IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPikgPT4gTmd0RXZlbnRNYW5hZ2VyPEhUTUxFbGVtZW50Pjtcblx0LyoqIFRoZSB0YXJnZXQgd2hlcmUgZXZlbnRzIGFyZSBiZWluZyBzdWJzY3JpYmVkIHRvLCBkZWZhdWx0OiB0aGUgZGl2IHRoYXQgd3JhcHMgY2FudmFzICovXG5cdGV2ZW50U291cmNlPzogSFRNTEVsZW1lbnQgfCBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pjtcblx0LyoqIFRoZSBldmVudCBwcmVmaXggdGhhdCBpcyBjYXN0IGludG8gY2FudmFzIHBvaW50ZXIgeC95IGV2ZW50cywgZGVmYXVsdDogXCJvZmZzZXRcIiAqL1xuXHRldmVudFByZWZpeD86ICdvZmZzZXQnIHwgJ2NsaWVudCcgfCAncGFnZScgfCAnbGF5ZXInIHwgJ3NjcmVlbic7XG5cdC8qKiBEZWZhdWx0IGNvb3JkaW5hdGUgZm9yIHRoZSBjYW1lcmEgdG8gbG9vayBhdCAqL1xuXHRsb29rQXQ/OiBWZWN0b3IzIHwgUGFyYW1ldGVyczxWZWN0b3IzWydzZXQnXT47XG59XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndC1jYW52YXMnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxkaXYgKG5neFJlc2l6ZSk9XCJyZXNpemVSZXN1bHQuc2V0KCRldmVudClcIiBzdHlsZT1cImhlaWdodDogMTAwJTsgd2lkdGg6IDEwMCU7XCI+XG5cdFx0XHQ8Y2FudmFzICNnbENhbnZhcyBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO1wiPjwvY2FudmFzPlxuXHRcdDwvZGl2PlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd4UmVzaXplXSxcblx0cHJvdmlkZXJzOiBbXG5cdFx0cHJvdmlkZVJlc2l6ZU9wdGlvbnMoe1xuXHRcdFx0ZW1pdEluWm9uZTogZmFsc2UsXG5cdFx0XHRlbWl0SW5pdGlhbFJlc3VsdDogdHJ1ZSxcblx0XHRcdGRlYm91bmNlOiB7IHNjcm9sbDogNTAsIHJlc2l6ZTogMCB9LFxuXHRcdH0gYXMgUmVzaXplT3B0aW9ucyksXG5cdFx0cHJvdmlkZVN0b3JlKCksXG5cdF0sXG5cdGhvc3Q6IHtcblx0XHRzdHlsZTogJ2Rpc3BsYXk6IGJsb2NrO3Bvc2l0aW9uOiByZWxhdGl2ZTt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7b3ZlcmZsb3c6IGhpZGRlbjsnLFxuXHRcdCdbc3R5bGUucG9pbnRlckV2ZW50c10nOiAnaGJQb2ludGVyRXZlbnRzKCknLFxuXHR9LFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0Q2FudmFzIHtcblx0cHJpdmF0ZSBzdG9yZSA9IGluamVjdFN0b3JlKCk7XG5cdHByaXZhdGUgaW5pdFJvb3QgPSBpbmplY3RDYW52YXNSb290SW5pdGlhbGl6ZXIoKTtcblx0cHJpdmF0ZSBhdXRvRWZmZWN0ID0gaW5qZWN0QXV0b0VmZmVjdCgpO1xuXG5cdHByaXZhdGUgaG9zdCA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG5cdHByaXZhdGUgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcblx0cHJpdmF0ZSB6b25lID0gaW5qZWN0KE5nWm9uZSk7XG5cdHByaXZhdGUgZW52aXJvbm1lbnRJbmplY3RvciA9IGluamVjdChFbnZpcm9ubWVudEluamVjdG9yKTtcblx0cHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cblx0c2NlbmVHcmFwaCA9IGlucHV0LnJlcXVpcmVkPFR5cGU8YW55PiwgVHlwZTxhbnk+IHwgJ3JvdXRlZCc+KHtcblx0XHR0cmFuc2Zvcm06ICh2YWx1ZSkgPT4ge1xuXHRcdFx0aWYgKHZhbHVlID09PSAncm91dGVkJykgcmV0dXJuIE5ndFJvdXRlZFNjZW5lO1xuXHRcdFx0cmV0dXJuIHZhbHVlO1xuXHRcdH0sXG5cdH0pO1xuXHRnbCA9IGlucHV0PE5ndEdMT3B0aW9ucz4oKTtcblx0c2l6ZSA9IGlucHV0PE5ndFNpemU+KCk7XG5cdHNoYWRvd3MgPSBpbnB1dChmYWxzZSwge1xuXHRcdHRyYW5zZm9ybTogKHZhbHVlKSA9PiB7XG5cdFx0XHRpZiAodmFsdWUgPT09ICcnKSByZXR1cm4gYm9vbGVhbkF0dHJpYnV0ZSh2YWx1ZSk7XG5cdFx0XHRyZXR1cm4gdmFsdWUgYXMgTm9uTnVsbGFibGU8Tmd0Q2FudmFzT3B0aW9uc1snc2hhZG93cyddPjtcblx0XHR9LFxuXHR9KTtcblx0bGVnYWN5ID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXHRsaW5lYXIgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cdGZsYXQgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cdG9ydGhvZ3JhcGhpYyA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblx0ZnJhbWVsb29wID0gaW5wdXQ8Tm9uTnVsbGFibGU8Tmd0Q2FudmFzT3B0aW9uc1snZnJhbWVsb29wJ10+PignYWx3YXlzJyk7XG5cdHBlcmZvcm1hbmNlID0gaW5wdXQ8UGFydGlhbDxPbWl0PE5ndFBlcmZvcm1hbmNlLCAncmVncmVzcyc+Pj4oKTtcblx0ZHByID0gaW5wdXQ8Tmd0RHByPihbMSwgMl0pO1xuXHRyYXljYXN0ZXIgPSBpbnB1dDxQYXJ0aWFsPFJheWNhc3Rlcj4+KCk7XG5cdHNjZW5lID0gaW5wdXQ8U2NlbmUgfCBQYXJ0aWFsPFNjZW5lPj4oKTtcblx0Y2FtZXJhID0gaW5wdXQ8Tm9uTnVsbGFibGU8Tmd0Q2FudmFzT3B0aW9uc1snY2FtZXJhJ10+PigpO1xuXHRldmVudHMgPSBpbnB1dChjcmVhdGVQb2ludGVyRXZlbnRzKTtcblx0ZXZlbnRTb3VyY2UgPSBpbnB1dDxIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PigpO1xuXHRldmVudFByZWZpeCA9IGlucHV0PE5vbk51bGxhYmxlPE5ndENhbnZhc09wdGlvbnNbJ2V2ZW50UHJlZml4J10+Pignb2Zmc2V0Jyk7XG5cdGxvb2tBdCA9IGlucHV0PFZlY3RvcjMgfCBQYXJhbWV0ZXJzPFZlY3RvcjNbJ3NldCddPj4oKTtcblx0Y3JlYXRlZCA9IG91dHB1dDxOZ3RTdGF0ZT4oKTtcblx0cG9pbnRlck1pc3NlZCA9IG91dHB1dEZyb21PYnNlcnZhYmxlKHRoaXMuc3RvcmUuZ2V0KCdwb2ludGVyTWlzc2VkJCcpKTtcblxuXHRnbENhbnZhcyA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEhUTUxDYW52YXNFbGVtZW50Pj4oJ2dsQ2FudmFzJyk7XG5cdGdsQ2FudmFzVmlld0NvbnRhaW5lclJlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZCgnZ2xDYW52YXMnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSk7XG5cblx0Ly8gTk9URTogdGhpcyBzaWduYWwgaXMgdXBkYXRlZCBvdXRzaWRlIG9mIFpvbmVcblx0cHJvdGVjdGVkIHJlc2l6ZVJlc3VsdCA9IHNpZ25hbDxSZXNpemVSZXN1bHQ+KHt9IGFzIFJlc2l6ZVJlc3VsdCwgeyBlcXVhbDogT2JqZWN0LmlzIH0pO1xuXHRwcm90ZWN0ZWQgaGJQb2ludGVyRXZlbnRzID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMuZXZlbnRTb3VyY2UoKSA/ICdub25lJyA6ICdhdXRvJykpO1xuXG5cdHByaXZhdGUgY29uZmlndXJhdG9yPzogTmd0Q2FudmFzQ29uZmlndXJhdG9yO1xuXHRwcml2YXRlIGdsRW52aXJvbm1lbnRJbmplY3Rvcj86IEVudmlyb25tZW50SW5qZWN0b3I7XG5cdHByaXZhdGUgZ2xSZWY/OiBDb21wb25lbnRSZWY8dW5rbm93bj47XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcblx0XHRcdHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG5cdFx0XHRcdHRoaXMuY29uZmlndXJhdG9yID0gdGhpcy5pbml0Um9vdCh0aGlzLmdsQ2FudmFzKCkubmF0aXZlRWxlbWVudCk7XG5cdFx0XHRcdHRoaXMubm9ab25lUmVzaXplRWZmZWN0KCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdGluamVjdChEZXN0cm95UmVmKS5vbkRlc3Ryb3koKCkgPT4ge1xuXHRcdFx0dGhpcy5nbFJlZj8uZGVzdHJveSgpO1xuXHRcdFx0dGhpcy5nbEVudmlyb25tZW50SW5qZWN0b3I/LmRlc3Ryb3koKTtcblx0XHRcdHRoaXMuY29uZmlndXJhdG9yPy5kZXN0cm95KCk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIG5vWm9uZVJlc2l6ZUVmZmVjdCgpIHtcblx0XHR0aGlzLmF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgcmVzaXplUmVzdWx0ID0gdGhpcy5yZXNpemVSZXN1bHQoKTtcblx0XHRcdGlmIChyZXNpemVSZXN1bHQud2lkdGggPiAwICYmIHJlc2l6ZVJlc3VsdC5oZWlnaHQgPiAwKSB7XG5cdFx0XHRcdGlmICghdGhpcy5jb25maWd1cmF0b3IpIHRoaXMuY29uZmlndXJhdG9yID0gdGhpcy5pbml0Um9vdCh0aGlzLmdsQ2FudmFzKCkubmF0aXZlRWxlbWVudCk7XG5cdFx0XHRcdHRoaXMuY29uZmlndXJhdG9yLmNvbmZpZ3VyZSh7XG5cdFx0XHRcdFx0Z2w6IHRoaXMuZ2woKSxcblx0XHRcdFx0XHRzaGFkb3dzOiB0aGlzLnNoYWRvd3MoKSxcblx0XHRcdFx0XHRsZWdhY3k6IHRoaXMubGVnYWN5KCksXG5cdFx0XHRcdFx0bGluZWFyOiB0aGlzLmxpbmVhcigpLFxuXHRcdFx0XHRcdGZsYXQ6IHRoaXMuZmxhdCgpLFxuXHRcdFx0XHRcdG9ydGhvZ3JhcGhpYzogdGhpcy5vcnRob2dyYXBoaWMoKSxcblx0XHRcdFx0XHRmcmFtZWxvb3A6IHRoaXMuZnJhbWVsb29wKCksXG5cdFx0XHRcdFx0cGVyZm9ybWFuY2U6IHRoaXMucGVyZm9ybWFuY2UoKSxcblx0XHRcdFx0XHRkcHI6IHRoaXMuZHByKCksXG5cdFx0XHRcdFx0cmF5Y2FzdGVyOiB0aGlzLnJheWNhc3RlcigpLFxuXHRcdFx0XHRcdHNjZW5lOiB0aGlzLnNjZW5lKCksXG5cdFx0XHRcdFx0Y2FtZXJhOiB0aGlzLmNhbWVyYSgpLFxuXHRcdFx0XHRcdGV2ZW50czogdGhpcy5ldmVudHMoKSxcblx0XHRcdFx0XHRldmVudFNvdXJjZTogdGhpcy5ldmVudFNvdXJjZSgpLFxuXHRcdFx0XHRcdGV2ZW50UHJlZml4OiB0aGlzLmV2ZW50UHJlZml4KCksXG5cdFx0XHRcdFx0bG9va0F0OiB0aGlzLmxvb2tBdCgpLFxuXHRcdFx0XHRcdHNpemU6IHJlc2l6ZVJlc3VsdCxcblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0dW50cmFja2VkKCgpID0+IHtcblx0XHRcdFx0XHRpZiAodGhpcy5nbFJlZikge1xuXHRcdFx0XHRcdFx0dGhpcy5nbFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdHRoaXMubm9ab25lUmVuZGVyKCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgbm9ab25lUmVuZGVyKCkge1xuXHRcdC8vIE5PVEU6IGRlc3Ryb3kgcHJldmlvdXMgaW5zdGFuY2VzIGlmIGV4aXN0ZWRcblx0XHR0aGlzLmdsRW52aXJvbm1lbnRJbmplY3Rvcj8uZGVzdHJveSgpO1xuXHRcdHRoaXMuZ2xSZWY/LmRlc3Ryb3koKTtcblxuXHRcdC8vIE5PVEU6IEZsYWcgdGhlIGNhbnZhcyBhY3RpdmUsIHJlbmRlcmluZyB3aWxsIG5vdyBiZWdpblxuXHRcdHRoaXMuc3RvcmUudXBkYXRlKChzdGF0ZSkgPT4gKHsgaW50ZXJuYWw6IHsgLi4uc3RhdGUuaW50ZXJuYWwsIGFjdGl2ZTogdHJ1ZSB9IH0pKTtcblxuXHRcdGNvbnN0IFtzdGF0ZSwgZXZlbnRTb3VyY2UsIGV2ZW50UHJlZml4XSA9IFtcblx0XHRcdHRoaXMuc3RvcmUuc25hcHNob3QsXG5cdFx0XHR1bnRyYWNrZWQodGhpcy5ldmVudFNvdXJjZSksXG5cdFx0XHR1bnRyYWNrZWQodGhpcy5ldmVudFByZWZpeCksXG5cdFx0XTtcblxuXHRcdC8vIGNvbm5lY3QgdG8gZXZlbnQgc291cmNlXG5cdFx0c3RhdGUuZXZlbnRzLmNvbm5lY3Q/Lihcblx0XHRcdGV2ZW50U291cmNlID8gKGlzLnJlZihldmVudFNvdXJjZSkgPyBldmVudFNvdXJjZS5uYXRpdmVFbGVtZW50IDogZXZlbnRTb3VyY2UpIDogdGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQsXG5cdFx0KTtcblxuXHRcdC8vIHNldHVwIGNvbXB1dGUgZm9yIGV2ZW50UHJlZml4XG5cdFx0aWYgKGV2ZW50UHJlZml4KSB7XG5cdFx0XHRzdGF0ZS5zZXRFdmVudHMoe1xuXHRcdFx0XHRjb21wdXRlOiAoZXZlbnQsIHN0b3JlKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgeyBwb2ludGVyLCByYXljYXN0ZXIsIGNhbWVyYSwgc2l6ZSB9ID0gc3RvcmUuc25hcHNob3Q7XG5cdFx0XHRcdFx0Y29uc3QgeCA9IGV2ZW50WyhldmVudFByZWZpeCArICdYJykgYXMga2V5b2YgTmd0RG9tRXZlbnRdIGFzIG51bWJlcjtcblx0XHRcdFx0XHRjb25zdCB5ID0gZXZlbnRbKGV2ZW50UHJlZml4ICsgJ1knKSBhcyBrZXlvZiBOZ3REb21FdmVudF0gYXMgbnVtYmVyO1xuXHRcdFx0XHRcdHBvaW50ZXIuc2V0KCh4IC8gc2l6ZS53aWR0aCkgKiAyIC0gMSwgLSh5IC8gc2l6ZS5oZWlnaHQpICogMiArIDEpO1xuXHRcdFx0XHRcdHJheWNhc3Rlci5zZXRGcm9tQ2FtZXJhKHBvaW50ZXIsIGNhbWVyYSk7XG5cdFx0XHRcdH0sXG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHQvLyBlbWl0IGNyZWF0ZWQgZXZlbnQgaWYgb2JzZXJ2ZWRcblx0XHR0aGlzLmNyZWF0ZWQuZW1pdCh0aGlzLnN0b3JlLnNuYXBzaG90KTtcblxuXHRcdGlmICghdGhpcy5zdG9yZS5nZXQoJ2V2ZW50cycsICdjb25uZWN0ZWQnKSkge1xuXHRcdFx0dGhpcy5zdG9yZS5nZXQoJ2V2ZW50cycpLmNvbm5lY3Q/Lih1bnRyYWNrZWQodGhpcy5nbENhbnZhcykubmF0aXZlRWxlbWVudCk7XG5cdFx0fVxuXG5cdFx0dW50cmFja2VkKCgpID0+IHtcblx0XHRcdHRoaXMuZ2xFbnZpcm9ubWVudEluamVjdG9yID0gY3JlYXRlRW52aXJvbm1lbnRJbmplY3Rvcihcblx0XHRcdFx0W3Byb3ZpZGVOZ3RSZW5kZXJlcih0aGlzLnN0b3JlKV0sXG5cdFx0XHRcdHRoaXMuZW52aXJvbm1lbnRJbmplY3Rvcixcblx0XHRcdCk7XG5cdFx0XHR0aGlzLmdsUmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudCh1bnRyYWNrZWQodGhpcy5zY2VuZUdyYXBoKSwge1xuXHRcdFx0XHRlbnZpcm9ubWVudEluamVjdG9yOiB0aGlzLmdsRW52aXJvbm1lbnRJbmplY3Rvcixcblx0XHRcdFx0aW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IsXG5cdFx0XHR9KTtcblxuXHRcdFx0dGhpcy5nbFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudmFzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2FudmFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsUUFBUSxFQUNSLHlCQUF5QixFQUN6QixVQUFVLEVBQ1YsVUFBVSxFQUNWLG1CQUFtQixFQUNuQixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sRUFFTixTQUFTLEVBQ1QsU0FBUyxFQUNULGdCQUFnQixHQUNoQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUErQixNQUFNLG1CQUFtQixDQUFDO0FBWWpHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEQsT0FBTyxFQUFFLDJCQUEyQixFQUEyQyxNQUFNLFNBQVMsQ0FBQztBQUMvRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBOEQsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBR2hILE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7O0FBNEZoQyxNQUFNLE9BQU8sU0FBUztJQXNEckI7UUFyRFEsVUFBSyxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBQ3RCLGFBQVEsR0FBRywyQkFBMkIsRUFBRSxDQUFDO1FBQ3pDLGVBQVUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBRWhDLFNB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RSxJQUFJO2dCQUN2QixRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUU7YUFDbEIsQ0FBQztZQUNuQixZQUFZLEVBQUU7U0FDZCxrT0FrRGlFLGdCQUFnQiw2Q0EvRHhFOzs7O0VBSVQsNERBQ1MsU0FBUzs7MkZBZVAsU0FBUztrQkF2QnJCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7RUFJVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUM7b0JBQ3BCLFNBQVMsRUFBRTt3QkFDVixvQkFBb0IsQ0FBQzs0QkFDcEIsVUFBVSxFQUFFLEtBQUs7NEJBQ2pCLGlCQUFpQixFQUFFLElBQUk7NEJBQ3ZCLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRTt5QkFDbEIsQ0FBQzt3QkFDbkIsWUFBWSxFQUFFO3FCQUNkO29CQUNELElBQUksRUFBRTt3QkFDTCxLQUFLLEVBQUUsOEVBQThFO3dCQUNyRix1QkFBdUIsRUFBRSxtQkFBbUI7cUJBQzVDO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUMvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdGFmdGVyTmV4dFJlbmRlcixcblx0Ym9vbGVhbkF0dHJpYnV0ZSxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0Q29tcG9uZW50UmVmLFxuXHRjb21wdXRlZCxcblx0Y3JlYXRlRW52aXJvbm1lbnRJbmplY3Rvcixcblx0RGVzdHJveVJlZixcblx0RWxlbWVudFJlZixcblx0RW52aXJvbm1lbnRJbmplY3Rvcixcblx0aW5qZWN0LFxuXHRJbmplY3Rvcixcblx0aW5wdXQsXG5cdE5nWm9uZSxcblx0b3V0cHV0LFxuXHRzaWduYWwsXG5cdFR5cGUsXG5cdHVudHJhY2tlZCxcblx0dmlld0NoaWxkLFxuXHRWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG91dHB1dEZyb21PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgaW5qZWN0QXV0b0VmZmVjdCB9IGZyb20gJ25neHRlbnNpb24vYXV0by1lZmZlY3QnO1xuaW1wb3J0IHsgTmd4UmVzaXplLCBwcm92aWRlUmVzaXplT3B0aW9ucywgUmVzaXplT3B0aW9ucywgUmVzaXplUmVzdWx0IH0gZnJvbSAnbmd4dGVuc2lvbi9yZXNpemUnO1xuaW1wb3J0IHtcblx0Q2FtZXJhLFxuXHRPcnRob2dyYXBoaWNDYW1lcmEsXG5cdFBlcnNwZWN0aXZlQ2FtZXJhLFxuXHRSYXljYXN0ZXIsXG5cdFNjZW5lLFxuXHRWZWN0b3IzLFxuXHRXZWJHTFJlbmRlcmVyLFxuXHRXZWJHTFJlbmRlcmVyUGFyYW1ldGVycyxcblx0V2ViR0xTaGFkb3dNYXAsXG59IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IGNyZWF0ZVBvaW50ZXJFdmVudHMgfSBmcm9tICcuL2RvbS9ldmVudHMnO1xuaW1wb3J0IHsgTmd0Q2FtZXJhLCBOZ3REb21FdmVudCwgTmd0RXZlbnRNYW5hZ2VyIH0gZnJvbSAnLi9ldmVudHMnO1xuaW1wb3J0IHsgcHJvdmlkZU5ndFJlbmRlcmVyIH0gZnJvbSAnLi9yZW5kZXJlcic7XG5pbXBvcnQgeyBpbmplY3RDYW52YXNSb290SW5pdGlhbGl6ZXIsIE5ndENhbnZhc0NvbmZpZ3VyYXRvciwgTmd0Q2FudmFzRWxlbWVudCB9IGZyb20gJy4vcm9vdHMnO1xuaW1wb3J0IHsgTmd0Um91dGVkU2NlbmUgfSBmcm9tICcuL3JvdXRlZC1zY2VuZSc7XG5pbXBvcnQgeyBpbmplY3RTdG9yZSwgTmd0RHByLCBOZ3RQZXJmb3JtYW5jZSwgTmd0UmVuZGVyZXJMaWtlLCBOZ3RTaXplLCBOZ3RTdGF0ZSwgcHJvdmlkZVN0b3JlIH0gZnJvbSAnLi9zdG9yZSc7XG5pbXBvcnQgeyBOZ3RPYmplY3QzRE5vZGUgfSBmcm9tICcuL3RocmVlLXR5cGVzJztcbmltcG9ydCB7IE5ndFByb3BlcnRpZXMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi91dGlscy9pcyc7XG5pbXBvcnQgeyBOZ3RTaWduYWxTdG9yZSB9IGZyb20gJy4vdXRpbHMvc2lnbmFsLXN0b3JlJztcblxuZXhwb3J0IHR5cGUgTmd0R0xPcHRpb25zID1cblx0fCBOZ3RSZW5kZXJlckxpa2Vcblx0fCAoKGNhbnZhczogTmd0Q2FudmFzRWxlbWVudCkgPT4gTmd0UmVuZGVyZXJMaWtlKVxuXHR8IFBhcnRpYWw8Tmd0UHJvcGVydGllczxXZWJHTFJlbmRlcmVyPiB8IFdlYkdMUmVuZGVyZXJQYXJhbWV0ZXJzPlxuXHR8IHVuZGVmaW5lZDtcblxuZXhwb3J0IGludGVyZmFjZSBOZ3RDYW52YXNPcHRpb25zIHtcblx0LyoqIEEgdGhyZWVqcyByZW5kZXJlciBpbnN0YW5jZSBvciBwcm9wcyB0aGF0IGdvIGludG8gdGhlIGRlZmF1bHQgcmVuZGVyZXIgKi9cblx0Z2w/OiBOZ3RHTE9wdGlvbnM7XG5cdC8qKiBEaW1lbnNpb25zIHRvIGZpdCB0aGUgcmVuZGVyZXIgdG8uIFdpbGwgbWVhc3VyZSBjYW52YXMgZGltZW5zaW9ucyBpZiBvbWl0dGVkICovXG5cdHNpemU/OiBOZ3RTaXplO1xuXHQvKipcblx0ICogRW5hYmxlcyBzaGFkb3dzIChieSBkZWZhdWx0IFBDRnNvZnQpLiBDYW4gYWNjZXB0IGBnbC5zaGFkb3dNYXBgIG9wdGlvbnMgZm9yIGZpbmUtdHVuaW5nLFxuXHQgKiBidXQgYWxzbyBzdHJpbmdzOiAnYmFzaWMnIHwgJ3BlcmNlbnRhZ2UnIHwgJ3NvZnQnIHwgJ3ZhcmlhbmNlJy5cblx0ICogQHNlZSBodHRwczovL3RocmVlanMub3JnL2RvY3MvI2FwaS9lbi9yZW5kZXJlcnMvV2ViR0xSZW5kZXJlci5zaGFkb3dNYXBcblx0ICovXG5cdHNoYWRvd3M/OiBib29sZWFuIHwgJ2Jhc2ljJyB8ICdwZXJjZW50YWdlJyB8ICdzb2Z0JyB8ICd2YXJpYW5jZScgfCBQYXJ0aWFsPFdlYkdMU2hhZG93TWFwPjtcblx0LyoqXG5cdCAqIERpc2FibGVzIHRocmVlIHIxMzkgY29sb3IgbWFuYWdlbWVudC5cblx0ICogQHNlZSBodHRwczovL3RocmVlanMub3JnL2RvY3MvI21hbnVhbC9lbi9pbnRyb2R1Y3Rpb24vQ29sb3ItbWFuYWdlbWVudFxuXHQgKi9cblx0bGVnYWN5PzogYm9vbGVhbjtcblx0LyoqIFN3aXRjaCBvZmYgYXV0b21hdGljIHNSR0IgY29sb3Igc3BhY2UgYW5kIGdhbW1hIGNvcnJlY3Rpb24gKi9cblx0bGluZWFyPzogYm9vbGVhbjtcblx0LyoqIFVzZSBgVEhSRUUuTm9Ub25lTWFwcGluZ2AgaW5zdGVhZCBvZiBgVEhSRUUuQUNFU0ZpbG1pY1RvbmVNYXBwaW5nYCAqL1xuXHRmbGF0PzogYm9vbGVhbjtcblx0LyoqIENyZWF0ZXMgYW4gb3J0aG9ncmFwaGljIGNhbWVyYSAqL1xuXHRvcnRob2dyYXBoaWM/OiBib29sZWFuO1xuXHQvKipcblx0ICogUjNGJ3MgcmVuZGVyIG1vZGUuIFNldCB0byBgZGVtYW5kYCB0byBvbmx5IHJlbmRlciBvbiBzdGF0ZSBjaGFuZ2Ugb3IgYG5ldmVyYCB0byB0YWtlIGNvbnRyb2wuXG5cdCAqIEBzZWUgaHR0cHM6Ly9kb2NzLnBtbmQucnMvcmVhY3QtdGhyZWUtZmliZXIvYWR2YW5jZWQvc2NhbGluZy1wZXJmb3JtYW5jZSNvbi1kZW1hbmQtcmVuZGVyaW5nXG5cdCAqL1xuXHRmcmFtZWxvb3A/OiAnYWx3YXlzJyB8ICdkZW1hbmQnIHwgJ25ldmVyJztcblx0LyoqXG5cdCAqIFIzRiBwZXJmb3JtYW5jZSBvcHRpb25zIGZvciBhZGFwdGl2ZSBwZXJmb3JtYW5jZS5cblx0ICogQHNlZSBodHRwczovL2RvY3MucG1uZC5ycy9yZWFjdC10aHJlZS1maWJlci9hZHZhbmNlZC9zY2FsaW5nLXBlcmZvcm1hbmNlI21vdmVtZW50LXJlZ3Jlc3Npb25cblx0ICovXG5cdHBlcmZvcm1hbmNlPzogUGFydGlhbDxPbWl0PE5ndFBlcmZvcm1hbmNlLCAncmVncmVzcyc+Pjtcblx0LyoqIFRhcmdldCBwaXhlbCByYXRpby4gQ2FuIGNsYW1wIGJldHdlZW4gYSByYW5nZTogYFttaW4sIG1heF1gICovXG5cdGRwcj86IE5ndERwcjtcblx0LyoqIFByb3BzIHRoYXQgZ28gaW50byB0aGUgZGVmYXVsdCByYXljYXN0ZXIgKi9cblx0cmF5Y2FzdGVyPzogUGFydGlhbDxSYXljYXN0ZXI+O1xuXHQvKiogQSBgU2NlbmVgIGluc3RhbmNlIG9yIHByb3BzIHRoYXQgZ28gaW50byB0aGUgZGVmYXVsdCBzY2VuZSAqL1xuXHRzY2VuZT86IFNjZW5lIHwgUGFydGlhbDxTY2VuZT47XG5cdC8qKiBBIGBDYW1lcmFgIGluc3RhbmNlIG9yIHByb3BzIHRoYXQgZ28gaW50byB0aGUgZGVmYXVsdCBjYW1lcmEgKi9cblx0Y2FtZXJhPzogKFxuXHRcdHwgTmd0Q2FtZXJhXG5cdFx0fCBQYXJ0aWFsPFxuXHRcdFx0XHROZ3RPYmplY3QzRE5vZGU8Q2FtZXJhLCB0eXBlb2YgQ2FtZXJhPiAmXG5cdFx0XHRcdFx0Tmd0T2JqZWN0M0ROb2RlPFBlcnNwZWN0aXZlQ2FtZXJhLCB0eXBlb2YgUGVyc3BlY3RpdmVDYW1lcmE+ICZcblx0XHRcdFx0XHROZ3RPYmplY3QzRE5vZGU8T3J0aG9ncmFwaGljQ2FtZXJhLCB0eXBlb2YgT3J0aG9ncmFwaGljQ2FtZXJhPlxuXHRcdCAgPlxuXHQpICYge1xuXHRcdC8qKiBGbGFncyB0aGUgY2FtZXJhIGFzIG1hbnVhbCwgcHV0dGluZyBwcm9qZWN0aW9uIGludG8geW91ciBvd24gaGFuZHMgKi9cblx0XHRtYW51YWw/OiBib29sZWFuO1xuXHR9O1xuXHQvKiogQW4gUjNGIGV2ZW50IG1hbmFnZXIgdG8gbWFuYWdlIGVsZW1lbnRzJyBwb2ludGVyIGV2ZW50cyAqL1xuXHRldmVudHM/OiAoc3RvcmU6IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPikgPT4gTmd0RXZlbnRNYW5hZ2VyPEhUTUxFbGVtZW50Pjtcblx0LyoqIFRoZSB0YXJnZXQgd2hlcmUgZXZlbnRzIGFyZSBiZWluZyBzdWJzY3JpYmVkIHRvLCBkZWZhdWx0OiB0aGUgZGl2IHRoYXQgd3JhcHMgY2FudmFzICovXG5cdGV2ZW50U291cmNlPzogSFRNTEVsZW1lbnQgfCBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pjtcblx0LyoqIFRoZSBldmVudCBwcmVmaXggdGhhdCBpcyBjYXN0IGludG8gY2FudmFzIHBvaW50ZXIgeC95IGV2ZW50cywgZGVmYXVsdDogXCJvZmZzZXRcIiAqL1xuXHRldmVudFByZWZpeD86ICdvZmZzZXQnIHwgJ2NsaWVudCcgfCAncGFnZScgfCAnbGF5ZXInIHwgJ3NjcmVlbic7XG5cdC8qKiBEZWZhdWx0IGNvb3JkaW5hdGUgZm9yIHRoZSBjYW1lcmEgdG8gbG9vayBhdCAqL1xuXHRsb29rQXQ/OiBWZWN0b3IzIHwgUGFyYW1ldGVyczxWZWN0b3IzWydzZXQnXT47XG59XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndC1jYW52YXMnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxkaXYgKG5neFJlc2l6ZSk9XCJyZXNpemVSZXN1bHQuc2V0KCRldmVudClcIiBzdHlsZT1cImhlaWdodDogMTAwJTsgd2lkdGg6IDEwMCU7XCI+XG5cdFx0XHQ8Y2FudmFzICNnbENhbnZhcyBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO1wiPjwvY2FudmFzPlxuXHRcdDwvZGl2PlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd4UmVzaXplXSxcblx0cHJvdmlkZXJzOiBbXG5cdFx0cHJvdmlkZVJlc2l6ZU9wdGlvbnMoe1xuXHRcdFx0ZW1pdEluWm9uZTogZmFsc2UsXG5cdFx0XHRlbWl0SW5pdGlhbFJlc3VsdDogdHJ1ZSxcblx0XHRcdGRlYm91bmNlOiB7IHNjcm9sbDogNTAsIHJlc2l6ZTogMCB9LFxuXHRcdH0gYXMgUmVzaXplT3B0aW9ucyksXG5cdFx0cHJvdmlkZVN0b3JlKCksXG5cdF0sXG5cdGhvc3Q6IHtcblx0XHRzdHlsZTogJ2Rpc3BsYXk6IGJsb2NrO3Bvc2l0aW9uOiByZWxhdGl2ZTt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7b3ZlcmZsb3c6IGhpZGRlbjsnLFxuXHRcdCdbc3R5bGUucG9pbnRlckV2ZW50c10nOiAnaGJQb2ludGVyRXZlbnRzKCknLFxuXHR9LFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0Q2FudmFzIHtcblx0cHJpdmF0ZSBzdG9yZSA9IGluamVjdFN0b3JlKCk7XG5cdHByaXZhdGUgaW5pdFJvb3QgPSBpbmplY3RDYW52YXNSb290SW5pdGlhbGl6ZXIoKTtcblx0cHJpdmF0ZSBhdXRvRWZmZWN0ID0gaW5qZWN0QXV0b0VmZmVjdCgpO1xuXG5cdHByaXZhdGUgaG9zdCA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG5cdHByaXZhdGUgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcblx0cHJpdmF0ZSB6b25lID0gaW5qZWN0KE5nWm9uZSk7XG5cdHByaXZhdGUgZW52aXJvbm1lbnRJbmplY3RvciA9IGluamVjdChFbnZpcm9ubWVudEluamVjdG9yKTtcblx0cHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cblx0c2NlbmVHcmFwaCA9IGlucHV0LnJlcXVpcmVkPFR5cGU8YW55PiwgVHlwZTxhbnk+IHwgJ3JvdXRlZCc+KHtcblx0XHR0cmFuc2Zvcm06ICh2YWx1ZSkgPT4ge1xuXHRcdFx0aWYgKHZhbHVlID09PSAncm91dGVkJykgcmV0dXJuIE5ndFJvdXRlZFNjZW5lO1xuXHRcdFx0cmV0dXJuIHZhbHVlO1xuXHRcdH0sXG5cdH0pO1xuXHRnbCA9IGlucHV0PE5ndEdMT3B0aW9ucz4oKTtcblx0c2l6ZSA9IGlucHV0PE5ndFNpemU+KCk7XG5cdHNoYWRvd3MgPSBpbnB1dChmYWxzZSwge1xuXHRcdHRyYW5zZm9ybTogKHZhbHVlKSA9PiB7XG5cdFx0XHRpZiAodmFsdWUgPT09ICcnKSByZXR1cm4gYm9vbGVhbkF0dHJpYnV0ZSh2YWx1ZSk7XG5cdFx0XHRyZXR1cm4gdmFsdWUgYXMgTm9uTnVsbGFibGU8Tmd0Q2FudmFzT3B0aW9uc1snc2hhZG93cyddPjtcblx0XHR9LFxuXHR9KTtcblx0bGVnYWN5ID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXHRsaW5lYXIgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cdGZsYXQgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cdG9ydGhvZ3JhcGhpYyA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblx0ZnJhbWVsb29wID0gaW5wdXQ8Tm9uTnVsbGFibGU8Tmd0Q2FudmFzT3B0aW9uc1snZnJhbWVsb29wJ10+PignYWx3YXlzJyk7XG5cdHBlcmZvcm1hbmNlID0gaW5wdXQ8UGFydGlhbDxPbWl0PE5ndFBlcmZvcm1hbmNlLCAncmVncmVzcyc+Pj4oKTtcblx0ZHByID0gaW5wdXQ8Tmd0RHByPihbMSwgMl0pO1xuXHRyYXljYXN0ZXIgPSBpbnB1dDxQYXJ0aWFsPFJheWNhc3Rlcj4+KCk7XG5cdHNjZW5lID0gaW5wdXQ8U2NlbmUgfCBQYXJ0aWFsPFNjZW5lPj4oKTtcblx0Y2FtZXJhID0gaW5wdXQ8Tm9uTnVsbGFibGU8Tmd0Q2FudmFzT3B0aW9uc1snY2FtZXJhJ10+PigpO1xuXHRldmVudHMgPSBpbnB1dChjcmVhdGVQb2ludGVyRXZlbnRzKTtcblx0ZXZlbnRTb3VyY2UgPSBpbnB1dDxIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PigpO1xuXHRldmVudFByZWZpeCA9IGlucHV0PE5vbk51bGxhYmxlPE5ndENhbnZhc09wdGlvbnNbJ2V2ZW50UHJlZml4J10+Pignb2Zmc2V0Jyk7XG5cdGxvb2tBdCA9IGlucHV0PFZlY3RvcjMgfCBQYXJhbWV0ZXJzPFZlY3RvcjNbJ3NldCddPj4oKTtcblx0Y3JlYXRlZCA9IG91dHB1dDxOZ3RTdGF0ZT4oKTtcblx0cG9pbnRlck1pc3NlZCA9IG91dHB1dEZyb21PYnNlcnZhYmxlKHRoaXMuc3RvcmUuZ2V0KCdwb2ludGVyTWlzc2VkJCcpKTtcblxuXHRnbENhbnZhcyA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEhUTUxDYW52YXNFbGVtZW50Pj4oJ2dsQ2FudmFzJyk7XG5cdGdsQ2FudmFzVmlld0NvbnRhaW5lclJlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZCgnZ2xDYW52YXMnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSk7XG5cblx0cHJvdGVjdGVkIGhiUG9pbnRlckV2ZW50cyA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLmV2ZW50U291cmNlKCkgPyAnbm9uZScgOiAnYXV0bycpKTtcblxuXHQvLyBOT1RFOiB0aGlzIHNpZ25hbCBpcyB1cGRhdGVkIG91dHNpZGUgb2YgWm9uZVxuXHRwcm90ZWN0ZWQgcmVzaXplUmVzdWx0ID0gc2lnbmFsPFJlc2l6ZVJlc3VsdD4oe30gYXMgUmVzaXplUmVzdWx0LCB7IGVxdWFsOiBPYmplY3QuaXMgfSk7XG5cblx0cHJpdmF0ZSBjb25maWd1cmF0b3I/OiBOZ3RDYW52YXNDb25maWd1cmF0b3I7XG5cdHByaXZhdGUgZ2xFbnZpcm9ubWVudEluamVjdG9yPzogRW52aXJvbm1lbnRJbmplY3Rvcjtcblx0cHJpdmF0ZSBnbFJlZj86IENvbXBvbmVudFJlZjx1bmtub3duPjtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0dGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcblx0XHRcdFx0dGhpcy5jb25maWd1cmF0b3IgPSB0aGlzLmluaXRSb290KHRoaXMuZ2xDYW52YXMoKS5uYXRpdmVFbGVtZW50KTtcblx0XHRcdFx0dGhpcy5ub1pvbmVSZXNpemVFZmZlY3QoKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0aW5qZWN0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSgoKSA9PiB7XG5cdFx0XHR0aGlzLmdsUmVmPy5kZXN0cm95KCk7XG5cdFx0XHR0aGlzLmdsRW52aXJvbm1lbnRJbmplY3Rvcj8uZGVzdHJveSgpO1xuXHRcdFx0dGhpcy5jb25maWd1cmF0b3I/LmRlc3Ryb3koKTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgbm9ab25lUmVzaXplRWZmZWN0KCkge1xuXHRcdHRoaXMuYXV0b0VmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCByZXNpemVSZXN1bHQgPSB0aGlzLnJlc2l6ZVJlc3VsdCgpO1xuXHRcdFx0aWYgKHJlc2l6ZVJlc3VsdC53aWR0aCA+IDAgJiYgcmVzaXplUmVzdWx0LmhlaWdodCA+IDApIHtcblx0XHRcdFx0aWYgKCF0aGlzLmNvbmZpZ3VyYXRvcikgdGhpcy5jb25maWd1cmF0b3IgPSB0aGlzLmluaXRSb290KHRoaXMuZ2xDYW52YXMoKS5uYXRpdmVFbGVtZW50KTtcblx0XHRcdFx0dGhpcy5jb25maWd1cmF0b3IuY29uZmlndXJlKHtcblx0XHRcdFx0XHRnbDogdGhpcy5nbCgpLFxuXHRcdFx0XHRcdHNoYWRvd3M6IHRoaXMuc2hhZG93cygpLFxuXHRcdFx0XHRcdGxlZ2FjeTogdGhpcy5sZWdhY3koKSxcblx0XHRcdFx0XHRsaW5lYXI6IHRoaXMubGluZWFyKCksXG5cdFx0XHRcdFx0ZmxhdDogdGhpcy5mbGF0KCksXG5cdFx0XHRcdFx0b3J0aG9ncmFwaGljOiB0aGlzLm9ydGhvZ3JhcGhpYygpLFxuXHRcdFx0XHRcdGZyYW1lbG9vcDogdGhpcy5mcmFtZWxvb3AoKSxcblx0XHRcdFx0XHRwZXJmb3JtYW5jZTogdGhpcy5wZXJmb3JtYW5jZSgpLFxuXHRcdFx0XHRcdGRwcjogdGhpcy5kcHIoKSxcblx0XHRcdFx0XHRyYXljYXN0ZXI6IHRoaXMucmF5Y2FzdGVyKCksXG5cdFx0XHRcdFx0c2NlbmU6IHRoaXMuc2NlbmUoKSxcblx0XHRcdFx0XHRjYW1lcmE6IHRoaXMuY2FtZXJhKCksXG5cdFx0XHRcdFx0ZXZlbnRzOiB0aGlzLmV2ZW50cygpLFxuXHRcdFx0XHRcdGV2ZW50U291cmNlOiB0aGlzLmV2ZW50U291cmNlKCksXG5cdFx0XHRcdFx0ZXZlbnRQcmVmaXg6IHRoaXMuZXZlbnRQcmVmaXgoKSxcblx0XHRcdFx0XHRsb29rQXQ6IHRoaXMubG9va0F0KCksXG5cdFx0XHRcdFx0c2l6ZTogcmVzaXplUmVzdWx0LFxuXHRcdFx0XHR9KTtcblxuXHRcdFx0XHR1bnRyYWNrZWQoKCkgPT4ge1xuXHRcdFx0XHRcdGlmICh0aGlzLmdsUmVmKSB7XG5cdFx0XHRcdFx0XHR0aGlzLmdsUmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dGhpcy5ub1pvbmVSZW5kZXIoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBub1pvbmVSZW5kZXIoKSB7XG5cdFx0Ly8gTk9URTogZGVzdHJveSBwcmV2aW91cyBpbnN0YW5jZXMgaWYgZXhpc3RlZFxuXHRcdHRoaXMuZ2xFbnZpcm9ubWVudEluamVjdG9yPy5kZXN0cm95KCk7XG5cdFx0dGhpcy5nbFJlZj8uZGVzdHJveSgpO1xuXG5cdFx0Ly8gTk9URTogRmxhZyB0aGUgY2FudmFzIGFjdGl2ZSwgcmVuZGVyaW5nIHdpbGwgbm93IGJlZ2luXG5cdFx0dGhpcy5zdG9yZS51cGRhdGUoKHN0YXRlKSA9PiAoeyBpbnRlcm5hbDogeyAuLi5zdGF0ZS5pbnRlcm5hbCwgYWN0aXZlOiB0cnVlIH0gfSkpO1xuXG5cdFx0Y29uc3QgW3N0YXRlLCBldmVudFNvdXJjZSwgZXZlbnRQcmVmaXhdID0gW1xuXHRcdFx0dGhpcy5zdG9yZS5zbmFwc2hvdCxcblx0XHRcdHVudHJhY2tlZCh0aGlzLmV2ZW50U291cmNlKSxcblx0XHRcdHVudHJhY2tlZCh0aGlzLmV2ZW50UHJlZml4KSxcblx0XHRdO1xuXG5cdFx0Ly8gY29ubmVjdCB0byBldmVudCBzb3VyY2Vcblx0XHRzdGF0ZS5ldmVudHMuY29ubmVjdD8uKFxuXHRcdFx0ZXZlbnRTb3VyY2UgPyAoaXMucmVmKGV2ZW50U291cmNlKSA/IGV2ZW50U291cmNlLm5hdGl2ZUVsZW1lbnQgOiBldmVudFNvdXJjZSkgOiB0aGlzLmhvc3QubmF0aXZlRWxlbWVudCxcblx0XHQpO1xuXG5cdFx0Ly8gc2V0dXAgY29tcHV0ZSBmb3IgZXZlbnRQcmVmaXhcblx0XHRpZiAoZXZlbnRQcmVmaXgpIHtcblx0XHRcdHN0YXRlLnNldEV2ZW50cyh7XG5cdFx0XHRcdGNvbXB1dGU6IChldmVudCwgc3RvcmUpID0+IHtcblx0XHRcdFx0XHRjb25zdCB7IHBvaW50ZXIsIHJheWNhc3RlciwgY2FtZXJhLCBzaXplIH0gPSBzdG9yZS5zbmFwc2hvdDtcblx0XHRcdFx0XHRjb25zdCB4ID0gZXZlbnRbKGV2ZW50UHJlZml4ICsgJ1gnKSBhcyBrZXlvZiBOZ3REb21FdmVudF0gYXMgbnVtYmVyO1xuXHRcdFx0XHRcdGNvbnN0IHkgPSBldmVudFsoZXZlbnRQcmVmaXggKyAnWScpIGFzIGtleW9mIE5ndERvbUV2ZW50XSBhcyBudW1iZXI7XG5cdFx0XHRcdFx0cG9pbnRlci5zZXQoKHggLyBzaXplLndpZHRoKSAqIDIgLSAxLCAtKHkgLyBzaXplLmhlaWdodCkgKiAyICsgMSk7XG5cdFx0XHRcdFx0cmF5Y2FzdGVyLnNldEZyb21DYW1lcmEocG9pbnRlciwgY2FtZXJhKTtcblx0XHRcdFx0fSxcblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdC8vIGVtaXQgY3JlYXRlZCBldmVudCBpZiBvYnNlcnZlZFxuXHRcdHRoaXMuY3JlYXRlZC5lbWl0KHRoaXMuc3RvcmUuc25hcHNob3QpO1xuXG5cdFx0aWYgKCF0aGlzLnN0b3JlLmdldCgnZXZlbnRzJywgJ2Nvbm5lY3RlZCcpKSB7XG5cdFx0XHR0aGlzLnN0b3JlLmdldCgnZXZlbnRzJykuY29ubmVjdD8uKHVudHJhY2tlZCh0aGlzLmdsQ2FudmFzKS5uYXRpdmVFbGVtZW50KTtcblx0XHR9XG5cblx0XHR1bnRyYWNrZWQoKCkgPT4ge1xuXHRcdFx0dGhpcy5nbEVudmlyb25tZW50SW5qZWN0b3IgPSBjcmVhdGVFbnZpcm9ubWVudEluamVjdG9yKFxuXHRcdFx0XHRbcHJvdmlkZU5ndFJlbmRlcmVyKHRoaXMuc3RvcmUpXSxcblx0XHRcdFx0dGhpcy5lbnZpcm9ubWVudEluamVjdG9yLFxuXHRcdFx0KTtcblx0XHRcdHRoaXMuZ2xSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KHVudHJhY2tlZCh0aGlzLnNjZW5lR3JhcGgpLCB7XG5cdFx0XHRcdGVudmlyb25tZW50SW5qZWN0b3I6IHRoaXMuZ2xFbnZpcm9ubWVudEluamVjdG9yLFxuXHRcdFx0XHRpbmplY3RvcjogdGhpcy5pbmplY3Rvcixcblx0XHRcdH0pO1xuXG5cdFx0XHR0aGlzLmdsUmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblx0XHR9KTtcblx0fVxufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWUtdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90aHJlZS10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0QW1iaWVudExpZ2h0LFxuXHRBcnJheUNhbWVyYSxcblx0QXJyb3dIZWxwZXIsXG5cdEF1ZGlvLFxuXHRBeGVzSGVscGVyLFxuXHRCb25lLFxuXHRCb3gzSGVscGVyLFxuXHRCb3hHZW9tZXRyeSxcblx0Qm94SGVscGVyLFxuXHRCdWZmZXJBdHRyaWJ1dGUsXG5cdEJ1ZmZlckdlb21ldHJ5LFxuXHRDYW1lcmEsXG5cdENhbWVyYUhlbHBlcixcblx0Q2FudmFzVGV4dHVyZSxcblx0Q2Fwc3VsZUdlb21ldHJ5LFxuXHRDaXJjbGVHZW9tZXRyeSxcblx0Q29sb3IsXG5cdENvbG9yUmVwcmVzZW50YXRpb24sXG5cdENvbXByZXNzZWRUZXh0dXJlLFxuXHRDb25lR2VvbWV0cnksXG5cdEN1YmVDYW1lcmEsXG5cdEN1YmVUZXh0dXJlLFxuXHRDeWxpbmRlckdlb21ldHJ5LFxuXHREYXRhM0RUZXh0dXJlLFxuXHREYXRhVGV4dHVyZSxcblx0RGVwdGhUZXh0dXJlLFxuXHREaXJlY3Rpb25hbExpZ2h0LFxuXHREaXJlY3Rpb25hbExpZ2h0SGVscGVyLFxuXHREaXJlY3Rpb25hbExpZ2h0U2hhZG93LFxuXHREb2RlY2FoZWRyb25HZW9tZXRyeSxcblx0RWRnZXNHZW9tZXRyeSxcblx0RXVsZXIsXG5cdEV4dHJ1ZGVHZW9tZXRyeSxcblx0RmxvYXQxNkJ1ZmZlckF0dHJpYnV0ZSxcblx0RmxvYXQzMkJ1ZmZlckF0dHJpYnV0ZSxcblx0Rm9nLFxuXHRGb2dFeHAyLFxuXHRHcmlkSGVscGVyLFxuXHRHcm91cCxcblx0SGVtaXNwaGVyZUxpZ2h0LFxuXHRIZW1pc3BoZXJlTGlnaHRIZWxwZXIsXG5cdEljb3NhaGVkcm9uR2VvbWV0cnksXG5cdEluc3RhbmNlZEJ1ZmZlckF0dHJpYnV0ZSxcblx0SW5zdGFuY2VkQnVmZmVyR2VvbWV0cnksXG5cdEluc3RhbmNlZE1lc2gsXG5cdEludDE2QnVmZmVyQXR0cmlidXRlLFxuXHRJbnQzMkJ1ZmZlckF0dHJpYnV0ZSxcblx0SW50OEJ1ZmZlckF0dHJpYnV0ZSxcblx0TE9ELFxuXHRMYXRoZUdlb21ldHJ5LFxuXHRMYXllcnMsXG5cdExpZ2h0LFxuXHRMaWdodFByb2JlLFxuXHRMaWdodFNoYWRvdyxcblx0TGluZSxcblx0TGluZUJhc2ljTWF0ZXJpYWwsXG5cdExpbmVCYXNpY01hdGVyaWFsUGFyYW1ldGVycyxcblx0TGluZURhc2hlZE1hdGVyaWFsLFxuXHRMaW5lRGFzaGVkTWF0ZXJpYWxQYXJhbWV0ZXJzLFxuXHRMaW5lTG9vcCxcblx0TGluZVNlZ21lbnRzLFxuXHRNYXRlcmlhbCxcblx0TWF0cml4Myxcblx0TWF0cml4NCxcblx0TWVzaCxcblx0TWVzaEJhc2ljTWF0ZXJpYWwsXG5cdE1lc2hCYXNpY01hdGVyaWFsUGFyYW1ldGVycyxcblx0TWVzaERlcHRoTWF0ZXJpYWwsXG5cdE1lc2hEZXB0aE1hdGVyaWFsUGFyYW1ldGVycyxcblx0TWVzaERpc3RhbmNlTWF0ZXJpYWwsXG5cdE1lc2hEaXN0YW5jZU1hdGVyaWFsUGFyYW1ldGVycyxcblx0TWVzaExhbWJlcnRNYXRlcmlhbCxcblx0TWVzaExhbWJlcnRNYXRlcmlhbFBhcmFtZXRlcnMsXG5cdE1lc2hNYXRjYXBNYXRlcmlhbCxcblx0TWVzaE1hdGNhcE1hdGVyaWFsUGFyYW1ldGVycyxcblx0TWVzaE5vcm1hbE1hdGVyaWFsLFxuXHRNZXNoTm9ybWFsTWF0ZXJpYWxQYXJhbWV0ZXJzLFxuXHRNZXNoUGhvbmdNYXRlcmlhbCxcblx0TWVzaFBob25nTWF0ZXJpYWxQYXJhbWV0ZXJzLFxuXHRNZXNoUGh5c2ljYWxNYXRlcmlhbCxcblx0TWVzaFBoeXNpY2FsTWF0ZXJpYWxQYXJhbWV0ZXJzLFxuXHRNZXNoU3RhbmRhcmRNYXRlcmlhbCxcblx0TWVzaFN0YW5kYXJkTWF0ZXJpYWxQYXJhbWV0ZXJzLFxuXHRNZXNoVG9vbk1hdGVyaWFsLFxuXHRNZXNoVG9vbk1hdGVyaWFsUGFyYW1ldGVycyxcblx0T2JqZWN0M0QsXG5cdE9jdGFoZWRyb25HZW9tZXRyeSxcblx0T3J0aG9ncmFwaGljQ2FtZXJhLFxuXHRQZXJzcGVjdGl2ZUNhbWVyYSxcblx0UGxhbmVHZW9tZXRyeSxcblx0UGxhbmVIZWxwZXIsXG5cdFBvaW50TGlnaHQsXG5cdFBvaW50TGlnaHRIZWxwZXIsXG5cdFBvaW50cyxcblx0UG9pbnRzTWF0ZXJpYWwsXG5cdFBvaW50c01hdGVyaWFsUGFyYW1ldGVycyxcblx0UG9sYXJHcmlkSGVscGVyLFxuXHRQb2x5aGVkcm9uR2VvbWV0cnksXG5cdFBvc2l0aW9uYWxBdWRpbyxcblx0UXVhdGVybmlvbixcblx0UmF3U2hhZGVyTWF0ZXJpYWwsXG5cdFJheWNhc3Rlcixcblx0UmVjdEFyZWFMaWdodCxcblx0UmluZ0dlb21ldHJ5LFxuXHRTY2VuZSxcblx0U2hhZGVyTWF0ZXJpYWwsXG5cdFNoYWRlck1hdGVyaWFsUGFyYW1ldGVycyxcblx0U2hhZG93TWF0ZXJpYWwsXG5cdFNoYXBlLFxuXHRTaGFwZUdlb21ldHJ5LFxuXHRTa2VsZXRvbixcblx0U2tlbGV0b25IZWxwZXIsXG5cdFNraW5uZWRNZXNoLFxuXHRTcGhlcmVHZW9tZXRyeSxcblx0U3BvdExpZ2h0LFxuXHRTcG90TGlnaHRIZWxwZXIsXG5cdFNwb3RMaWdodFNoYWRvdyxcblx0U3ByaXRlLFxuXHRTcHJpdGVNYXRlcmlhbCxcblx0U3ByaXRlTWF0ZXJpYWxQYXJhbWV0ZXJzLFxuXHRUZXRyYWhlZHJvbkdlb21ldHJ5LFxuXHRUZXh0dXJlLFxuXHRUb3J1c0dlb21ldHJ5LFxuXHRUb3J1c0tub3RHZW9tZXRyeSxcblx0VHViZUdlb21ldHJ5LFxuXHRVaW50MTZCdWZmZXJBdHRyaWJ1dGUsXG5cdFVpbnQzMkJ1ZmZlckF0dHJpYnV0ZSxcblx0VWludDhCdWZmZXJBdHRyaWJ1dGUsXG5cdFZlY3RvcjIsXG5cdFZlY3RvcjMsXG5cdFZlY3RvcjQsXG5cdFZpZGVvVGV4dHVyZSxcblx0V2lyZWZyYW1lR2VvbWV0cnksXG59IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE5ndEV2ZW50SGFuZGxlcnMgfSBmcm9tICcuL2V2ZW50cyc7XG5pbXBvcnQgeyBOZ3RBZnRlckF0dGFjaCwgTmd0QXR0YWNoRnVuY3Rpb24sIE5ndEluc3RhbmNlTm9kZSB9IGZyb20gJy4vaW5zdGFuY2UnO1xuaW1wb3J0IHsgTmd0QmVmb3JlUmVuZGVyRXZlbnQgfSBmcm9tICcuL3N0b3JlJztcblxudHlwZSBFeHBhbmQ8VD4gPSBUIGV4dGVuZHMgaW5mZXIgTyA/IHsgW0sgaW4ga2V5b2YgT106IE9bS10gfSA6IG5ldmVyO1xudHlwZSBOb0V2ZW50PFQ+ID0gT21pdDxULCAnYWRkRXZlbnRMaXN0ZW5lcicgfCAncmVtb3ZlRXZlbnRMaXN0ZW5lcic+O1xuXG5leHBvcnQgdHlwZSBOZ3ROb25GdW5jdGlvbktleXM8VD4gPSB7IFtLIGluIGtleW9mIFRdLT86IFRbS10gZXh0ZW5kcyBGdW5jdGlvbiA/IG5ldmVyIDogSyB9W2tleW9mIFRdO1xuZXhwb3J0IHR5cGUgTmd0T3ZlcndyaXRlPFQsIE8+ID0gT21pdDxULCBOZ3ROb25GdW5jdGlvbktleXM8Tz4+ICYgTztcblxuZXhwb3J0IHR5cGUgTmd0RXh0ZW5kZWRDb2xvcnM8VD4gPSB7XG5cdFtLIGluIGtleW9mIFRdOiBUW0tdIGV4dGVuZHMgQ29sb3IgfCB1bmRlZmluZWQgPyBDb2xvclJlcHJlc2VudGF0aW9uIDogVFtLXTtcbn07XG5cbi8qKlxuICogSWYgKipUKiogY29udGFpbnMgYSBjb25zdHJ1Y3RvciwgQHNlZSBDb25zdHJ1Y3RvclBhcmFtZXRlcnMgbXVzdCBiZSB1c2VkLCBvdGhlcndpc2UgKipUKiouXG4gKi9cbnR5cGUgTmd0QXJndW1lbnRzPFQ+ID0gVCBleHRlbmRzIG5ldyAoLi4uYXJnczogYW55KSA9PiBhbnkgPyBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8VD4gOiBUO1xuXG5leHBvcnQgdHlwZSBOZ3RFdWxlciA9IEV1bGVyIHwgUGFyYW1ldGVyczxFdWxlclsnc2V0J10+O1xuZXhwb3J0IHR5cGUgTmd0TWF0cml4NCA9IE1hdHJpeDQgfCBQYXJhbWV0ZXJzPE1hdHJpeDRbJ3NldCddPiB8IFJlYWRvbmx5PE1hdHJpeDRbJ3NldCddPjtcblxuLyoqXG4gKiBUdXJuIGFuIGltcGxlbWVudGF0aW9uIG9mIFZlY3RvciBpbiB0byB0aGUgdHlwZSB0aGF0IGFuIHIzZiBjb21wb25lbnQgd291bGQgYWNjZXB0IGFzIGEgcHJvcC5cbiAqL1xudHlwZSBOZ3RWZWN0b3JMaWtlPFZlY3RvckNsYXNzIGV4dGVuZHMgVmVjdG9yMiB8IFZlY3RvcjMgfCBWZWN0b3I0PiA9XG5cdHwgVmVjdG9yQ2xhc3Ncblx0fCBQYXJhbWV0ZXJzPFZlY3RvckNsYXNzWydzZXQnXT5cblx0fCBSZWFkb25seTxQYXJhbWV0ZXJzPFZlY3RvckNsYXNzWydzZXQnXT4+XG5cdHwgUGFyYW1ldGVyczxWZWN0b3JDbGFzc1snc2V0U2NhbGFyJ10+WzBdO1xuXG5leHBvcnQgdHlwZSBOZ3RWZWN0b3IyID0gTmd0VmVjdG9yTGlrZTxWZWN0b3IyPjtcbmV4cG9ydCB0eXBlIE5ndFZlY3RvcjMgPSBOZ3RWZWN0b3JMaWtlPFZlY3RvcjM+O1xuZXhwb3J0IHR5cGUgTmd0VmVjdG9yNCA9IE5ndFZlY3Rvckxpa2U8VmVjdG9yND47XG5leHBvcnQgdHlwZSBOZ3RMYXllcnMgPSBMYXllcnMgfCBQYXJhbWV0ZXJzPExheWVyc1snc2V0J10+WzBdO1xuZXhwb3J0IHR5cGUgTmd0UXVhdGVybmlvbiA9IFF1YXRlcm5pb24gfCBQYXJhbWV0ZXJzPFF1YXRlcm5pb25bJ3NldCddPjtcblxuZXhwb3J0IGludGVyZmFjZSBOZ3ROb2RlRXZlbnRNYXA8VE9yaWdpbmFsPiB7XG5cdGF0dGFjaGVkOiBOZ3RBZnRlckF0dGFjaDxOZ3RJbnN0YW5jZU5vZGUsIFRPcmlnaW5hbD47XG5cdHVwZGF0ZWQ6IFRPcmlnaW5hbDtcblx0YmVmb3JlUmVuZGVyOiBOZ3RCZWZvcmVSZW5kZXJFdmVudDxUT3JpZ2luYWw+O1xufVxuXG5leHBvcnQgdHlwZSBOZ3ROb2RlRWxlbWVudDxUT3JpZ2luYWwsIFRDb25zdHJ1Y3Rvcj4gPSB7XG5cdGF0dGFjaDogc3RyaW5nIHwgc3RyaW5nW10gfCBOZ3RBdHRhY2hGdW5jdGlvbjtcblx0Ly8gcmVmOiBOZ3RJbmplY3RlZFJlZjxUT3JpZ2luYWw+O1xuXHRhZGRFdmVudExpc3RlbmVyPFRFdmVudEtleSBleHRlbmRzIGtleW9mIE5ndE5vZGVFdmVudE1hcDxUT3JpZ2luYWw+Pihcblx0XHR0eXBlOiBURXZlbnRLZXksXG5cdFx0bGlzdGVuZXI6ICh0aGlzOiBOZ3ROb2RlRWxlbWVudDxUT3JpZ2luYWwsIFRDb25zdHJ1Y3Rvcj4sIGV2OiBOZ3ROb2RlRXZlbnRNYXA8VE9yaWdpbmFsPltURXZlbnRLZXldKSA9PiBhbnksXG5cdCk6IHZvaWQ7XG5cdHJlbW92ZUV2ZW50TGlzdGVuZXI8VEV2ZW50S2V5IGV4dGVuZHMga2V5b2YgTmd0Tm9kZUV2ZW50TWFwPFRPcmlnaW5hbD4+KFxuXHRcdHR5cGU6IFRFdmVudEtleSxcblx0XHRsaXN0ZW5lcjogKHRoaXM6IE5ndE5vZGVFbGVtZW50PFRPcmlnaW5hbCwgVENvbnN0cnVjdG9yPiwgZXY6IE5ndE5vZGVFdmVudE1hcDxUT3JpZ2luYWw+W1RFdmVudEtleV0pID0+IGFueSxcblx0KTogdm9pZDtcblx0X19uZ3RfYXJnc19fOiBOZ3RBcmd1bWVudHM8VENvbnN0cnVjdG9yPjtcbn07XG5cbmV4cG9ydCB0eXBlIE5ndE5vZGU8VE9yaWdpbmFsLCBUQ29uc3RydWN0b3IsIFROb0V2ZW50ID0gTm9FdmVudDxUT3JpZ2luYWw+PiA9IEV4cGFuZDxcblx0Tmd0RXh0ZW5kZWRDb2xvcnM8Tmd0T3ZlcndyaXRlPFBhcnRpYWw8VE5vRXZlbnQ+LCBOZ3ROb2RlRWxlbWVudDxUT3JpZ2luYWwsIFRDb25zdHJ1Y3Rvcj4+PlxuPjtcblxuZXhwb3J0IHR5cGUgTmd0T2JqZWN0M0RFdmVudHNNYXAgPSB7XG5cdFtURXZlbnQgaW4ga2V5b2YgTmd0RXZlbnRIYW5kbGVyc10tPzogUGFyYW1ldGVyczxOb25OdWxsYWJsZTxOZ3RFdmVudEhhbmRsZXJzW1RFdmVudF0+PlswXTtcbn07XG5cbmV4cG9ydCB0eXBlIE5ndE9iamVjdDNETm9kZTxUT3JpZ2luYWwsIFRDb25zdHJ1Y3RvciwgVE5vRXZlbnQgPSBOb0V2ZW50PFRPcmlnaW5hbD4+ID0gRXhwYW5kPFxuXHROZ3RPdmVyd3JpdGU8XG5cdFx0Tmd0Tm9kZTxUT3JpZ2luYWwsIFRDb25zdHJ1Y3RvciwgVE5vRXZlbnQ+LFxuXHRcdHtcblx0XHRcdHBvc2l0aW9uOiBOZ3RWZWN0b3IzO1xuXHRcdFx0dXA6IE5ndFZlY3RvcjM7XG5cdFx0XHRzY2FsZTogTmd0VmVjdG9yMztcblx0XHRcdHJvdGF0aW9uOiBOZ3RFdWxlcjtcblx0XHRcdG1hdHJpeDogTmd0TWF0cml4NDtcblx0XHRcdHF1YXRlcm5pb246IE5ndFF1YXRlcm5pb247XG5cdFx0XHRsYXllcnM6IE5ndExheWVycztcblx0XHRcdGRpc3Bvc2U6ICgoKSA9PiB2b2lkKSB8IG51bGw7XG5cdFx0XHRhZGRFdmVudExpc3RlbmVyPFRFdmVudEtleSBleHRlbmRzIGtleW9mIE5ndE9iamVjdDNERXZlbnRzTWFwPihcblx0XHRcdFx0dHlwZTogVEV2ZW50S2V5LFxuXHRcdFx0XHRsaXN0ZW5lcjogKHRoaXM6IE5ndE9iamVjdDNETm9kZTxUT3JpZ2luYWwsIFRDb25zdHJ1Y3Rvcj4sIGV2OiBOZ3RPYmplY3QzREV2ZW50c01hcFtURXZlbnRLZXldKSA9PiBhbnksXG5cdFx0XHQpOiB2b2lkO1xuXHRcdFx0cmVtb3ZlRXZlbnRMaXN0ZW5lcjxURXZlbnRLZXkgZXh0ZW5kcyBrZXlvZiBOZ3RPYmplY3QzREV2ZW50c01hcD4oXG5cdFx0XHRcdHR5cGU6IFRFdmVudEtleSxcblx0XHRcdFx0bGlzdGVuZXI6ICh0aGlzOiBOZ3RPYmplY3QzRE5vZGU8VE9yaWdpbmFsLCBUQ29uc3RydWN0b3I+LCBldjogTmd0T2JqZWN0M0RFdmVudHNNYXBbVEV2ZW50S2V5XSkgPT4gYW55LFxuXHRcdFx0KTogdm9pZDtcblx0XHR9XG5cdD5cbj47XG5cbmV4cG9ydCB0eXBlIE5ndEdlb21ldHJ5PFRHZW9tZXRyeSBleHRlbmRzIEJ1ZmZlckdlb21ldHJ5LCBUQ29uc3RydWN0b3I+ID0gTmd0Tm9kZTxUR2VvbWV0cnksIFRDb25zdHJ1Y3Rvcj47XG5leHBvcnQgdHlwZSBOZ3RNYXRlcmlhbDxUTWF0ZXJpYWwgZXh0ZW5kcyBNYXRlcmlhbCwgVENvbnN0cnVjdG9yPiA9IE5ndE5vZGU8VE1hdGVyaWFsLCBUQ29uc3RydWN0b3I+O1xuZXhwb3J0IHR5cGUgTmd0TGlnaHQ8VCBleHRlbmRzIExpZ2h0LCBQPiA9IE5ndE9iamVjdDNETm9kZTxULCBQPjtcblxuZXhwb3J0IHR5cGUgTmd0T2JqZWN0M0QgPSBOZ3RPYmplY3QzRE5vZGU8T2JqZWN0M0QsIHR5cGVvZiBPYmplY3QzRD47XG5leHBvcnQgdHlwZSBOZ3RBdWRpbyA9IE5ndE9iamVjdDNETm9kZTxBdWRpbywgdHlwZW9mIEF1ZGlvPjtcbmV4cG9ydCB0eXBlIE5ndEF1ZGlvTGlzdGVuZXIgPSBOZ3RPYmplY3QzRE5vZGU8QXVkaW9MaXN0ZW5lciwgdHlwZW9mIEF1ZGlvTGlzdGVuZXI+O1xuZXhwb3J0IHR5cGUgTmd0UG9zaXRpb25hbEF1ZGlvID0gTmd0T2JqZWN0M0ROb2RlPFBvc2l0aW9uYWxBdWRpbywgdHlwZW9mIFBvc2l0aW9uYWxBdWRpbz47XG5cbmV4cG9ydCB0eXBlIE5ndE1lc2ggPSBOZ3RPYmplY3QzRE5vZGU8TWVzaCwgdHlwZW9mIE1lc2g+O1xuZXhwb3J0IHR5cGUgTmd0SW5zdGFuY2VkTWVzaCA9IE5ndE9iamVjdDNETm9kZTxJbnN0YW5jZWRNZXNoLCB0eXBlb2YgSW5zdGFuY2VkTWVzaD47XG5leHBvcnQgdHlwZSBOZ3RTY2VuZSA9IE5ndE9iamVjdDNETm9kZTxTY2VuZSwgdHlwZW9mIFNjZW5lPjtcbmV4cG9ydCB0eXBlIE5ndFNwcml0ZSA9IE5ndE9iamVjdDNETm9kZTxTcHJpdGUsIHR5cGVvZiBTcHJpdGU+O1xuZXhwb3J0IHR5cGUgTmd0TE9EID0gTmd0T2JqZWN0M0ROb2RlPExPRCwgdHlwZW9mIExPRD47XG5leHBvcnQgdHlwZSBOZ3RTa2lubmVkTWVzaCA9IE5ndE9iamVjdDNETm9kZTxTa2lubmVkTWVzaCwgdHlwZW9mIFNraW5uZWRNZXNoPjtcblxuZXhwb3J0IHR5cGUgTmd0U2tlbGV0b24gPSBOZ3RPYmplY3QzRE5vZGU8U2tlbGV0b24sIHR5cGVvZiBTa2VsZXRvbj47XG5leHBvcnQgdHlwZSBOZ3RCb25lID0gTmd0T2JqZWN0M0ROb2RlPEJvbmUsIHR5cGVvZiBCb25lPjtcbmV4cG9ydCB0eXBlIE5ndExpbmUgPSBOZ3RPYmplY3QzRE5vZGU8TGluZSwgdHlwZW9mIExpbmU+O1xuZXhwb3J0IHR5cGUgTmd0TGluZVNlZ21lbnRzID0gTmd0T2JqZWN0M0ROb2RlPExpbmVTZWdtZW50cywgdHlwZW9mIExpbmVTZWdtZW50cz47XG5leHBvcnQgdHlwZSBOZ3RMaW5lTG9vcCA9IE5ndE9iamVjdDNETm9kZTxMaW5lTG9vcCwgdHlwZW9mIExpbmVMb29wPjtcbmV4cG9ydCB0eXBlIE5ndFBvaW50cyA9IE5ndE9iamVjdDNETm9kZTxQb2ludHMsIHR5cGVvZiBQb2ludHM+O1xuZXhwb3J0IHR5cGUgTmd0R3JvdXAgPSBOZ3RPYmplY3QzRE5vZGU8R3JvdXAsIHR5cGVvZiBHcm91cD47XG5cbmV4cG9ydCB0eXBlIE5ndENhbWVyYU5vZGUgPSBOZ3RPYmplY3QzRE5vZGU8Q2FtZXJhLCB0eXBlb2YgQ2FtZXJhPjtcbmV4cG9ydCB0eXBlIE5ndFBlcnNwZWN0aXZlQ2FtZXJhID0gTmd0T2JqZWN0M0ROb2RlPFBlcnNwZWN0aXZlQ2FtZXJhLCB0eXBlb2YgUGVyc3BlY3RpdmVDYW1lcmE+O1xuZXhwb3J0IHR5cGUgTmd0T3J0aG9ncmFwaGljQ2FtZXJhID0gTmd0T2JqZWN0M0ROb2RlPE9ydGhvZ3JhcGhpY0NhbWVyYSwgdHlwZW9mIE9ydGhvZ3JhcGhpY0NhbWVyYT47XG5leHBvcnQgdHlwZSBOZ3RDdWJlQ2FtZXJhID0gTmd0T2JqZWN0M0ROb2RlPEN1YmVDYW1lcmEsIHR5cGVvZiBDdWJlQ2FtZXJhPjtcbmV4cG9ydCB0eXBlIE5ndEFycmF5Q2FtZXJhID0gTmd0T2JqZWN0M0ROb2RlPEFycmF5Q2FtZXJhLCB0eXBlb2YgQXJyYXlDYW1lcmE+O1xuXG5leHBvcnQgdHlwZSBOZ3RJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PEluc3RhbmNlZEJ1ZmZlckdlb21ldHJ5LCB0eXBlb2YgSW5zdGFuY2VkQnVmZmVyR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0QnVmZmVyR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxCdWZmZXJHZW9tZXRyeSwgdHlwZW9mIEJ1ZmZlckdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndFdpcmVmcmFtZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8V2lyZWZyYW1lR2VvbWV0cnksIHR5cGVvZiBXaXJlZnJhbWVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RUZXRyYWhlZHJvbkdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VGV0cmFoZWRyb25HZW9tZXRyeSwgdHlwZW9mIFRldHJhaGVkcm9uR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0T2N0YWhlZHJvbkdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8T2N0YWhlZHJvbkdlb21ldHJ5LCB0eXBlb2YgT2N0YWhlZHJvbkdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndEljb3NhaGVkcm9uR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxJY29zYWhlZHJvbkdlb21ldHJ5LCB0eXBlb2YgSWNvc2FoZWRyb25HZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3REb2RlY2FoZWRyb25HZW9tZXRyeSA9IE5ndEdlb21ldHJ5PERvZGVjYWhlZHJvbkdlb21ldHJ5LCB0eXBlb2YgRG9kZWNhaGVkcm9uR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0UG9seWhlZHJvbkdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8UG9seWhlZHJvbkdlb21ldHJ5LCB0eXBlb2YgUG9seWhlZHJvbkdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndFR1YmVHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFR1YmVHZW9tZXRyeSwgdHlwZW9mIFR1YmVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RUb3J1c0tub3RHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRvcnVzS25vdEdlb21ldHJ5LCB0eXBlb2YgVG9ydXNLbm90R2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0VG9ydXNHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRvcnVzR2VvbWV0cnksIHR5cGVvZiBUb3J1c0dlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndFNwaGVyZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8U3BoZXJlR2VvbWV0cnksIHR5cGVvZiBTcGhlcmVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RSaW5nR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxSaW5nR2VvbWV0cnksIHR5cGVvZiBSaW5nR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0UGxhbmVHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFBsYW5lR2VvbWV0cnksIHR5cGVvZiBQbGFuZUdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndExhdGhlR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxMYXRoZUdlb21ldHJ5LCB0eXBlb2YgTGF0aGVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RTaGFwZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8U2hhcGVHZW9tZXRyeSwgdHlwZW9mIFNoYXBlR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0RXh0cnVkZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8RXh0cnVkZUdlb21ldHJ5LCB0eXBlb2YgRXh0cnVkZUdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndEVkZ2VzR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxFZGdlc0dlb21ldHJ5LCB0eXBlb2YgRWRnZXNHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RDb25lR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxDb25lR2VvbWV0cnksIHR5cGVvZiBDb25lR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0Q3lsaW5kZXJHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PEN5bGluZGVyR2VvbWV0cnksIHR5cGVvZiBDeWxpbmRlckdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndENpcmNsZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8Q2lyY2xlR2VvbWV0cnksIHR5cGVvZiBDaXJjbGVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RCb3hHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PEJveEdlb21ldHJ5LCB0eXBlb2YgQm94R2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0Q2Fwc3VsZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8Q2Fwc3VsZUdlb21ldHJ5LCB0eXBlb2YgQ2Fwc3VsZUdlb21ldHJ5PjtcblxuZXhwb3J0IHR5cGUgTmd0U2hhZG93TWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxTaGFkb3dNYXRlcmlhbCwgW1NoYWRlck1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0U3ByaXRlTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxTcHJpdGVNYXRlcmlhbCwgW1Nwcml0ZU1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0UmF3U2hhZGVyTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxSYXdTaGFkZXJNYXRlcmlhbCwgW1NoYWRlck1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0U2hhZGVyTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxTaGFkZXJNYXRlcmlhbCwgW1NoYWRlck1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0UG9pbnRzTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxQb2ludHNNYXRlcmlhbCwgW1BvaW50c01hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaFBoeXNpY2FsTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxNZXNoUGh5c2ljYWxNYXRlcmlhbCwgW01lc2hQaHlzaWNhbE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaFN0YW5kYXJkTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxNZXNoU3RhbmRhcmRNYXRlcmlhbCwgW01lc2hTdGFuZGFyZE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaFBob25nTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxNZXNoUGhvbmdNYXRlcmlhbCwgW01lc2hQaG9uZ01hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaFRvb25NYXRlcmlhbCA9IE5ndE1hdGVyaWFsPE1lc2hUb29uTWF0ZXJpYWwsIFtNZXNoVG9vbk1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaE5vcm1hbE1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8TWVzaE5vcm1hbE1hdGVyaWFsLCBbTWVzaE5vcm1hbE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaExhbWJlcnRNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPE1lc2hMYW1iZXJ0TWF0ZXJpYWwsIFtNZXNoTGFtYmVydE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaERlcHRoTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxNZXNoRGVwdGhNYXRlcmlhbCwgW01lc2hEZXB0aE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaERpc3RhbmNlTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxNZXNoRGlzdGFuY2VNYXRlcmlhbCwgW01lc2hEaXN0YW5jZU1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaEJhc2ljTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxNZXNoQmFzaWNNYXRlcmlhbCwgW01lc2hCYXNpY01hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaE1hdGNhcE1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8TWVzaE1hdGNhcE1hdGVyaWFsLCBbTWVzaE1hdGNhcE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TGluZURhc2hlZE1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8TGluZURhc2hlZE1hdGVyaWFsLCBbTGluZURhc2hlZE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TGluZUJhc2ljTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxMaW5lQmFzaWNNYXRlcmlhbCwgW0xpbmVCYXNpY01hdGVyaWFsUGFyYW1ldGVyc10+O1xuXG5leHBvcnQgdHlwZSBOZ3RQcmltaXRpdmUgPSBOZ3ROb2RlRWxlbWVudDxhbnksIGFueT47XG5leHBvcnQgdHlwZSBOZ3RWYWx1ZSA9IE5ndE5vZGU8eyByYXdWYWx1ZTogYW55IH0sIHt9PjtcblxuZXhwb3J0IHR5cGUgTmd0TGlnaHRTaGFkb3cgPSBOZ3ROb2RlPExpZ2h0U2hhZG93LCB0eXBlb2YgTGlnaHRTaGFkb3c+O1xuZXhwb3J0IHR5cGUgTmd0U3BvdExpZ2h0U2hhZG93ID0gTmd0Tm9kZTxTcG90TGlnaHRTaGFkb3csIHR5cGVvZiBTcG90TGlnaHRTaGFkb3c+O1xuZXhwb3J0IHR5cGUgTmd0RGlyZWN0aW9uYWxMaWdodFNoYWRvdyA9IE5ndE5vZGU8RGlyZWN0aW9uYWxMaWdodFNoYWRvdywgdHlwZW9mIERpcmVjdGlvbmFsTGlnaHRTaGFkb3c+O1xuXG5leHBvcnQgdHlwZSBOZ3RTcG90TGlnaHQgPSBOZ3RMaWdodDxTcG90TGlnaHQsIHR5cGVvZiBTcG90TGlnaHQ+O1xuZXhwb3J0IHR5cGUgTmd0UG9pbnRMaWdodCA9IE5ndExpZ2h0PFBvaW50TGlnaHQsIHR5cGVvZiBQb2ludExpZ2h0PjtcbmV4cG9ydCB0eXBlIE5ndFJlY3RBcmVhTGlnaHQgPSBOZ3RMaWdodDxSZWN0QXJlYUxpZ2h0LCB0eXBlb2YgUmVjdEFyZWFMaWdodD47XG5leHBvcnQgdHlwZSBOZ3RIZW1pc3BoZXJlTGlnaHQgPSBOZ3RMaWdodDxIZW1pc3BoZXJlTGlnaHQsIHR5cGVvZiBIZW1pc3BoZXJlTGlnaHQ+O1xuZXhwb3J0IHR5cGUgTmd0RGlyZWN0aW9uYWxMaWdodCA9IE5ndExpZ2h0PERpcmVjdGlvbmFsTGlnaHQsIHR5cGVvZiBEaXJlY3Rpb25hbExpZ2h0PjtcbmV4cG9ydCB0eXBlIE5ndEFtYmllbnRMaWdodCA9IE5ndExpZ2h0PEFtYmllbnRMaWdodCwgdHlwZW9mIEFtYmllbnRMaWdodD47XG5leHBvcnQgdHlwZSBOZ3RMaWdodFByb2JlID0gTmd0TGlnaHQ8TGlnaHRQcm9iZSwgdHlwZW9mIExpZ2h0UHJvYmU+O1xuXG5leHBvcnQgdHlwZSBOZ3RTcG90TGlnaHRIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8U3BvdExpZ2h0SGVscGVyLCB0eXBlb2YgU3BvdExpZ2h0SGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndFNrZWxldG9uSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFNrZWxldG9uSGVscGVyLCB0eXBlb2YgU2tlbGV0b25IZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0UG9pbnRMaWdodEhlbHBlciA9IE5ndE9iamVjdDNETm9kZTxQb2ludExpZ2h0SGVscGVyLCB0eXBlb2YgUG9pbnRMaWdodEhlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RIZW1pc3BoZXJlTGlnaHRIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8SGVtaXNwaGVyZUxpZ2h0SGVscGVyLCB0eXBlb2YgSGVtaXNwaGVyZUxpZ2h0SGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndEdyaWRIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8R3JpZEhlbHBlciwgdHlwZW9mIEdyaWRIZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0UG9sYXJHcmlkSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFBvbGFyR3JpZEhlbHBlciwgdHlwZW9mIFBvbGFyR3JpZEhlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3REaXJlY3Rpb25hbExpZ2h0SGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPERpcmVjdGlvbmFsTGlnaHRIZWxwZXIsIHR5cGVvZiBEaXJlY3Rpb25hbExpZ2h0SGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndENhbWVyYUhlbHBlciA9IE5ndE9iamVjdDNETm9kZTxDYW1lcmFIZWxwZXIsIHR5cGVvZiBDYW1lcmFIZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0Qm94SGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPEJveEhlbHBlciwgdHlwZW9mIEJveEhlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RCb3gzSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPEJveDNIZWxwZXIsIHR5cGVvZiBCb3gzSGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndFBsYW5lSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFBsYW5lSGVscGVyLCB0eXBlb2YgUGxhbmVIZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0QXJyb3dIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8QXJyb3dIZWxwZXIsIHR5cGVvZiBBcnJvd0hlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RBeGVzSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPEF4ZXNIZWxwZXIsIHR5cGVvZiBBeGVzSGVscGVyPjtcblxuZXhwb3J0IHR5cGUgTmd0VGV4dHVyZSA9IE5ndE5vZGU8VGV4dHVyZSwgdHlwZW9mIFRleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0VmlkZW9UZXh0dXJlID0gTmd0Tm9kZTxWaWRlb1RleHR1cmUsIHR5cGVvZiBWaWRlb1RleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0RGF0YVRleHR1cmUgPSBOZ3ROb2RlPERhdGFUZXh0dXJlLCB0eXBlb2YgRGF0YVRleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0RGF0YTNEVGV4dHVyZSA9IE5ndE5vZGU8RGF0YTNEVGV4dHVyZSwgdHlwZW9mIERhdGEzRFRleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0Q29tcHJlc3NlZFRleHR1cmUgPSBOZ3ROb2RlPENvbXByZXNzZWRUZXh0dXJlLCB0eXBlb2YgQ29tcHJlc3NlZFRleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0Q3ViZVRleHR1cmUgPSBOZ3ROb2RlPEN1YmVUZXh0dXJlLCB0eXBlb2YgQ3ViZVRleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0Q2FudmFzVGV4dHVyZSA9IE5ndE5vZGU8Q2FudmFzVGV4dHVyZSwgdHlwZW9mIENhbnZhc1RleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0RGVwdGhUZXh0dXJlID0gTmd0Tm9kZTxEZXB0aFRleHR1cmUsIHR5cGVvZiBEZXB0aFRleHR1cmU+O1xuXG5leHBvcnQgdHlwZSBOZ3RSYXljYXN0ZXIgPSBOZ3ROb2RlPFJheWNhc3RlciwgdHlwZW9mIFJheWNhc3Rlcj47XG5leHBvcnQgdHlwZSBOZ3RWZWN0b3IyTm9kZSA9IE5ndE5vZGU8VmVjdG9yMiwgdHlwZW9mIFZlY3RvcjI+O1xuZXhwb3J0IHR5cGUgTmd0VmVjdG9yM05vZGUgPSBOZ3ROb2RlPFZlY3RvcjMsIHR5cGVvZiBWZWN0b3IzPjtcbmV4cG9ydCB0eXBlIE5ndFZlY3RvcjROb2RlID0gTmd0Tm9kZTxWZWN0b3I0LCB0eXBlb2YgVmVjdG9yND47XG5leHBvcnQgdHlwZSBOZ3RFdWxlck5vZGUgPSBOZ3ROb2RlPEV1bGVyLCB0eXBlb2YgRXVsZXI+O1xuZXhwb3J0IHR5cGUgTmd0TWF0cml4M05vZGUgPSBOZ3ROb2RlPE1hdHJpeDMsIHR5cGVvZiBNYXRyaXgzPjtcbmV4cG9ydCB0eXBlIE5ndE1hdHJpeDROb2RlID0gTmd0Tm9kZTxNYXRyaXg0LCB0eXBlb2YgTWF0cml4ND47XG5leHBvcnQgdHlwZSBOZ3RRdWF0ZXJuaW9uTm9kZSA9IE5ndE5vZGU8UXVhdGVybmlvbiwgdHlwZW9mIFF1YXRlcm5pb24+O1xuZXhwb3J0IHR5cGUgTmd0QnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxCdWZmZXJBdHRyaWJ1dGUsIHR5cGVvZiBCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0RmxvYXQxNkJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8RmxvYXQxNkJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIEZsb2F0MTZCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0RmxvYXQzMkJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8RmxvYXQzMkJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIEZsb2F0MzJCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0SW50OEJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8SW50OEJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIEludDhCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0SW50MTZCdWZmZXJBdHRyaWJ1dGUgPSBOZ3ROb2RlPEludDE2QnVmZmVyQXR0cmlidXRlLCB0eXBlb2YgSW50MTZCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0SW50MzJCdWZmZXJBdHRyaWJ1dGUgPSBOZ3ROb2RlPEludDMyQnVmZmVyQXR0cmlidXRlLCB0eXBlb2YgSW50MzJCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0VWludDhCdWZmZXJBdHRyaWJ1dGUgPSBOZ3ROb2RlPFVpbnQ4QnVmZmVyQXR0cmlidXRlLCB0eXBlb2YgVWludDhCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0VWludDE2QnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxVaW50MTZCdWZmZXJBdHRyaWJ1dGUsIHR5cGVvZiBVaW50MTZCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0VWludDMyQnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxVaW50MzJCdWZmZXJBdHRyaWJ1dGUsIHR5cGVvZiBVaW50MzJCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0SW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxJbnN0YW5jZWRCdWZmZXJBdHRyaWJ1dGUsIHR5cGVvZiBJbnN0YW5jZWRCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0Q29sb3IgPSBOZ3ROb2RlPENvbG9yLCBDb2xvclJlcHJlc2VudGF0aW9uPjtcbmV4cG9ydCB0eXBlIE5ndEZvZyA9IE5ndE5vZGU8Rm9nLCB0eXBlb2YgRm9nPjtcbmV4cG9ydCB0eXBlIE5ndEZvZ0V4cDIgPSBOZ3ROb2RlPEZvZ0V4cDIsIHR5cGVvZiBGb2dFeHAyPjtcbmV4cG9ydCB0eXBlIE5ndFNoYXBlID0gTmd0Tm9kZTxTaGFwZSwgdHlwZW9mIFNoYXBlPjtcblxuZXhwb3J0IGludGVyZmFjZSBUaHJlZUVsZW1lbnRzIHtcblx0J25ndC1vYmplY3QzRCc6IE5ndE9iamVjdDNEO1xuXG5cdC8vIGBhdWRpb2Agd29ya3MgYnV0IGNvbmZsaWN0cyB3aXRoIEB0eXBlcy9yZWFjdC4gVHJ5IHVzaW5nIFBvc2l0aW9uYWxBdWRpbyBmcm9tIEByZWFjdC10aHJlZS9kcmVpIGluc3RlYWRcblx0J25ndC1hdWRpbyc6IE5ndEF1ZGlvO1xuXHQnbmd0LWF1ZGlvLWxpc3RlbmVyJzogTmd0QXVkaW9MaXN0ZW5lcjtcblx0J25ndC1wb3NpdGlvbmFsLWF1ZGlvJzogTmd0UG9zaXRpb25hbEF1ZGlvO1xuXG5cdCduZ3QtbWVzaCc6IE5ndE1lc2g7XG5cdCduZ3QtaW5zdGFuY2VkLW1lc2gnOiBOZ3RJbnN0YW5jZWRNZXNoO1xuXHQnbmd0LXNjZW5lJzogTmd0U2NlbmU7XG5cdCduZ3Qtc3ByaXRlJzogTmd0U3ByaXRlO1xuXHQnbmd0LWxPRCc6IE5ndExPRDtcblx0J25ndC1za2lubmVkLW1lc2gnOiBOZ3RTa2lubmVkTWVzaDtcblx0J25ndC1za2VsZXRvbic6IE5ndFNrZWxldG9uO1xuXHQnbmd0LWJvbmUnOiBOZ3RCb25lO1xuXG5cdCduZ3QtbGluZSc6IE5ndExpbmU7XG5cdCduZ3QtbGluZS1zZWdtZW50cyc6IE5ndExpbmVTZWdtZW50cztcblx0J25ndC1saW5lLWxvb3AnOiBOZ3RMaW5lTG9vcDtcblx0J25ndC1wb2ludHMnOiBOZ3RQb2ludHM7XG5cdCduZ3QtZ3JvdXAnOiBOZ3RHcm91cDtcblxuXHQvLyBjYW1lcmFzXG5cdCduZ3QtY2FtZXJhJzogTmd0Q2FtZXJhTm9kZTtcblx0J25ndC1wZXJzcGVjdGl2ZS1jYW1lcmEnOiBOZ3RQZXJzcGVjdGl2ZUNhbWVyYTtcblx0J25ndC1vcnRob2dyYXBoaWMtY2FtZXJhJzogTmd0T3J0aG9ncmFwaGljQ2FtZXJhO1xuXHQnbmd0LWN1YmUtY2FtZXJhJzogTmd0Q3ViZUNhbWVyYTtcblx0J25ndC1hcnJheS1jYW1lcmEnOiBOZ3RBcnJheUNhbWVyYTtcblxuXHQvLyBnZW9tZXRyeVxuXHQnbmd0LWluc3RhbmNlZC1idWZmZXItZ2VvbWV0cnknOiBOZ3RJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeTtcblx0J25ndC1idWZmZXItZ2VvbWV0cnknOiBOZ3RCdWZmZXJHZW9tZXRyeTtcblx0J25ndC13aXJlZnJhbWUtZ2VvbWV0cnknOiBOZ3RXaXJlZnJhbWVHZW9tZXRyeTtcblx0J25ndC10ZXRyYWhlZHJvbi1nZW9tZXRyeSc6IE5ndFRldHJhaGVkcm9uR2VvbWV0cnk7XG5cdCduZ3Qtb2N0YWhlZHJvbi1nZW9tZXRyeSc6IE5ndE9jdGFoZWRyb25HZW9tZXRyeTtcblx0J25ndC1pY29zYWhlZHJvbi1nZW9tZXRyeSc6IE5ndEljb3NhaGVkcm9uR2VvbWV0cnk7XG5cdCduZ3QtcG9seWhlZHJvbi1nZW9tZXRyeSc6IE5ndFBvbHloZWRyb25HZW9tZXRyeTtcblx0J25ndC1kb2RlY2FoZWRyb24tZ2VvbWV0cnknOiBOZ3REb2RlY2FoZWRyb25HZW9tZXRyeTtcblx0J25ndC10dWJlLWdlb21ldHJ5JzogTmd0VHViZUdlb21ldHJ5O1xuXHQnbmd0LXRvcnVzLWtub3QtZ2VvbWV0cnknOiBOZ3RUb3J1c0tub3RHZW9tZXRyeTtcblx0J25ndC10b3J1cy1nZW9tZXRyeSc6IE5ndFRvcnVzR2VvbWV0cnk7XG5cdCduZ3Qtc3BoZXJlLWdlb21ldHJ5JzogTmd0U3BoZXJlR2VvbWV0cnk7XG5cdCduZ3QtcmluZy1nZW9tZXRyeSc6IE5ndFJpbmdHZW9tZXRyeTtcblx0J25ndC1wbGFuZS1nZW9tZXRyeSc6IE5ndFBsYW5lR2VvbWV0cnk7XG5cdCduZ3QtbGF0aGUtZ2VvbWV0cnknOiBOZ3RMYXRoZUdlb21ldHJ5O1xuXHQnbmd0LXNoYXBlLWdlb21ldHJ5JzogTmd0U2hhcGVHZW9tZXRyeTtcblx0J25ndC1leHRydWRlLWdlb21ldHJ5JzogTmd0RXh0cnVkZUdlb21ldHJ5O1xuXHQnbmd0LWVkZ2VzLWdlb21ldHJ5JzogTmd0RWRnZXNHZW9tZXRyeTtcblx0J25ndC1jb25lLWdlb21ldHJ5JzogTmd0Q29uZUdlb21ldHJ5O1xuXHQnbmd0LWN5bGluZGVyLWdlb21ldHJ5JzogTmd0Q3lsaW5kZXJHZW9tZXRyeTtcblx0J25ndC1jaXJjbGUtZ2VvbWV0cnknOiBOZ3RDaXJjbGVHZW9tZXRyeTtcblx0J25ndC1ib3gtZ2VvbWV0cnknOiBOZ3RCb3hHZW9tZXRyeTtcblx0J25ndC1jYXBzdWxlLWdlb21ldHJ5JzogTmd0Q2Fwc3VsZUdlb21ldHJ5O1xuXG5cdC8vIG1hdGVyaWFsc1xuXHQnbmd0LXNoYWRvdy1tYXRlcmlhbCc6IE5ndFNoYWRvd01hdGVyaWFsO1xuXHQnbmd0LXNwcml0ZS1tYXRlcmlhbCc6IE5ndFNwcml0ZU1hdGVyaWFsO1xuXHQnbmd0LXJhdy1zaGFkZXItbWF0ZXJpYWwnOiBOZ3RSYXdTaGFkZXJNYXRlcmlhbDtcblx0J25ndC1zaGFkZXItbWF0ZXJpYWwnOiBOZ3RTaGFkZXJNYXRlcmlhbDtcblx0J25ndC1wb2ludHMtbWF0ZXJpYWwnOiBOZ3RQb2ludHNNYXRlcmlhbDtcblx0J25ndC1tZXNoLXBoeXNpY2FsLW1hdGVyaWFsJzogTmd0TWVzaFBoeXNpY2FsTWF0ZXJpYWw7XG5cdCduZ3QtbWVzaC1zdGFuZGFyZC1tYXRlcmlhbCc6IE5ndE1lc2hTdGFuZGFyZE1hdGVyaWFsO1xuXHQnbmd0LW1lc2gtcGhvbmctbWF0ZXJpYWwnOiBOZ3RNZXNoUGhvbmdNYXRlcmlhbDtcblx0J25ndC1tZXNoLXRvb24tbWF0ZXJpYWwnOiBOZ3RNZXNoVG9vbk1hdGVyaWFsO1xuXHQnbmd0LW1lc2gtbm9ybWFsLW1hdGVyaWFsJzogTmd0TWVzaE5vcm1hbE1hdGVyaWFsO1xuXHQnbmd0LW1lc2gtbGFtYmVydC1tYXRlcmlhbCc6IE5ndE1lc2hMYW1iZXJ0TWF0ZXJpYWw7XG5cdCduZ3QtbWVzaC1kZXB0aC1tYXRlcmlhbCc6IE5ndE1lc2hEZXB0aE1hdGVyaWFsO1xuXHQnbmd0LW1lc2gtZGlzdGFuY2UtbWF0ZXJpYWwnOiBOZ3RNZXNoRGlzdGFuY2VNYXRlcmlhbDtcblx0J25ndC1tZXNoLWJhc2ljLW1hdGVyaWFsJzogTmd0TWVzaEJhc2ljTWF0ZXJpYWw7XG5cdCduZ3QtbWVzaC1tYXRjYXAtbWF0ZXJpYWwnOiBOZ3RNZXNoTWF0Y2FwTWF0ZXJpYWw7XG5cdCduZ3QtbGluZS1kYXNoZWQtbWF0ZXJpYWwnOiBOZ3RMaW5lRGFzaGVkTWF0ZXJpYWw7XG5cdCduZ3QtbGluZS1iYXNpYy1tYXRlcmlhbCc6IE5ndExpbmVCYXNpY01hdGVyaWFsO1xuXG5cdC8vIHByaW1pdGl2ZVxuXHQnbmd0LXByaW1pdGl2ZSc6IE5ndFByaW1pdGl2ZTtcblxuXHQvLyByYXdWYWx1ZVxuXHQnbmd0LXZhbHVlJzogTmd0VmFsdWU7XG5cblx0Ly8gbGlnaHRzIGFuZCBvdGhlclxuXHQnbmd0LXNwb3QtbGlnaHQtc2hhZG93JzogTmd0U3BvdExpZ2h0U2hhZG93O1xuXHQnbmd0LXNwb3QtbGlnaHQnOiBOZ3RTcG90TGlnaHQ7XG5cdCduZ3QtcG9pbnQtbGlnaHQnOiBOZ3RQb2ludExpZ2h0O1xuXHQnbmd0LXJlY3QtYXJlYS1saWdodCc6IE5ndFJlY3RBcmVhTGlnaHQ7XG5cdCduZ3QtaGVtaXNwaGVyZS1saWdodCc6IE5ndEhlbWlzcGhlcmVMaWdodDtcblx0J25ndC1kaXJlY3Rpb25hbC1saWdodC1zaGFkb3cnOiBOZ3REaXJlY3Rpb25hbExpZ2h0U2hhZG93O1xuXHQnbmd0LWRpcmVjdGlvbmFsLWxpZ2h0JzogTmd0RGlyZWN0aW9uYWxMaWdodDtcblx0J25ndC1hbWJpZW50LWxpZ2h0JzogTmd0QW1iaWVudExpZ2h0O1xuXHQnbmd0LWxpZ2h0LXNoYWRvdyc6IE5ndExpZ2h0U2hhZG93O1xuXHQnbmd0LWxpZ2h0LXByb2JlJzogTmd0TGlnaHRQcm9iZTtcblxuXHQvLyBoZWxwZXJzXG5cdCduZ3Qtc3BvdC1saWdodC1oZWxwZXInOiBOZ3RTcG90TGlnaHRIZWxwZXI7XG5cdCduZ3Qtc2tlbGV0b24taGVscGVyJzogTmd0U2tlbGV0b25IZWxwZXI7XG5cdCduZ3QtcG9pbnQtbGlnaHQtaGVscGVyJzogTmd0UG9pbnRMaWdodEhlbHBlcjtcblx0J25ndC1oZW1pc3BoZXJlLWxpZ2h0LWhlbHBlcic6IE5ndEhlbWlzcGhlcmVMaWdodEhlbHBlcjtcblx0J25ndC1ncmlkLWhlbHBlcic6IE5ndEdyaWRIZWxwZXI7XG5cdCduZ3QtcG9sYXItZ3JpZC1oZWxwZXInOiBOZ3RQb2xhckdyaWRIZWxwZXI7XG5cdCduZ3QtZGlyZWN0aW9uYWwtbGlnaHQtaGVscGVyJzogTmd0RGlyZWN0aW9uYWxMaWdodEhlbHBlcjtcblx0J25ndC1jYW1lcmEtaGVscGVyJzogTmd0Q2FtZXJhSGVscGVyO1xuXHQnbmd0LWJveC1oZWxwZXInOiBOZ3RCb3hIZWxwZXI7XG5cdCduZ3QtYm94My1oZWxwZXInOiBOZ3RCb3gzSGVscGVyO1xuXHQnbmd0LXBsYW5lLWhlbHBlcic6IE5ndFBsYW5lSGVscGVyO1xuXHQnbmd0LWFycm93LWhlbHBlcic6IE5ndEFycm93SGVscGVyO1xuXHQnbmd0LWF4ZXMtaGVscGVyJzogTmd0QXhlc0hlbHBlcjtcblxuXHQvLyB0ZXh0dXJlc1xuXHQnbmd0LXRleHR1cmUnOiBOZ3RUZXh0dXJlO1xuXHQnbmd0LXZpZGVvLXRleHR1cmUnOiBOZ3RWaWRlb1RleHR1cmU7XG5cdCduZ3QtZGF0YS10ZXh0dXJlJzogTmd0RGF0YVRleHR1cmU7XG5cdCduZ3QtZGF0YTNELXRleHR1cmUnOiBOZ3REYXRhM0RUZXh0dXJlO1xuXHQnbmd0LWNvbXByZXNzZWQtdGV4dHVyZSc6IE5ndENvbXByZXNzZWRUZXh0dXJlO1xuXHQnbmd0LWN1YmUtdGV4dHVyZSc6IE5ndEN1YmVUZXh0dXJlO1xuXHQnbmd0LWNhbnZhcy10ZXh0dXJlJzogTmd0Q2FudmFzVGV4dHVyZTtcblx0J25ndC1kZXB0aC10ZXh0dXJlJzogTmd0RGVwdGhUZXh0dXJlO1xuXG5cdC8vIG1pc2Ncblx0J25ndC1yYXljYXN0ZXInOiBOZ3RSYXljYXN0ZXI7XG5cdCduZ3QtdmVjdG9yMic6IE5ndFZlY3RvcjJOb2RlO1xuXHQnbmd0LXZlY3RvcjMnOiBOZ3RWZWN0b3IzTm9kZTtcblx0J25ndC12ZWN0b3I0JzogTmd0VmVjdG9yNE5vZGU7XG5cdCduZ3QtZXVsZXInOiBOZ3RFdWxlck5vZGU7XG5cdCduZ3QtbWF0cml4Myc6IE5ndE1hdHJpeDNOb2RlO1xuXHQnbmd0LW1hdHJpeDQnOiBOZ3RNYXRyaXg0Tm9kZTtcblx0J25ndC1xdWF0ZXJuaW9uJzogTmd0UXVhdGVybmlvbk5vZGU7XG5cdCduZ3QtYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndEJ1ZmZlckF0dHJpYnV0ZTtcblx0J25ndC1mbG9hdDE2LWJ1ZmZlci1hdHRyaWJ1dGUnOiBOZ3RGbG9hdDE2QnVmZmVyQXR0cmlidXRlO1xuXHQnbmd0LWZsb2F0MzItYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndEZsb2F0MzJCdWZmZXJBdHRyaWJ1dGU7XG5cdCduZ3QtaW50OC1idWZmZXItYXR0cmlidXRlJzogTmd0SW50OEJ1ZmZlckF0dHJpYnV0ZTtcblx0J25ndC1pbnQxNi1idWZmZXItYXR0cmlidXRlJzogTmd0SW50MTZCdWZmZXJBdHRyaWJ1dGU7XG5cdCduZ3QtaW50MzItYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndEludDMyQnVmZmVyQXR0cmlidXRlO1xuXHQnbmd0LXVuaXQ4LWJ1ZmZlci1hdHRyaWJ1dGUnOiBOZ3RVaW50OEJ1ZmZlckF0dHJpYnV0ZTtcblx0J25ndC11bml0MTYtYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndFVpbnQxNkJ1ZmZlckF0dHJpYnV0ZTtcblx0J25ndC11bml0MzItYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndFVpbnQzMkJ1ZmZlckF0dHJpYnV0ZTtcblx0J25ndC1pbnN0YW5jZWQtYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndEluc3RhbmNlZEJ1ZmZlckF0dHJpYnV0ZTtcblx0J25ndC1jb2xvcic6IE5ndENvbG9yO1xuXHQnbmd0LWZvZyc6IE5ndEZvZztcblx0J25ndC1mb2ctZXhwMic6IE5ndEZvZ0V4cDI7XG5cdCduZ3Qtc2hhcGUnOiBOZ3RTaGFwZTtcbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuXHRpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIGV4dGVuZHMgVGhyZWVFbGVtZW50cyB7fVxufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWUtdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90aHJlZS10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0QW1iaWVudExpZ2h0LFxuXHRBcnJheUNhbWVyYSxcblx0QXJyb3dIZWxwZXIsXG5cdEF1ZGlvLFxuXHRBeGVzSGVscGVyLFxuXHRCYXRjaGVkTWVzaCxcblx0Qm9uZSxcblx0Qm94M0hlbHBlcixcblx0Qm94R2VvbWV0cnksXG5cdEJveEhlbHBlcixcblx0QnVmZmVyQXR0cmlidXRlLFxuXHRCdWZmZXJHZW9tZXRyeSxcblx0Q2FtZXJhLFxuXHRDYW1lcmFIZWxwZXIsXG5cdENhbnZhc1RleHR1cmUsXG5cdENhcHN1bGVHZW9tZXRyeSxcblx0Q2lyY2xlR2VvbWV0cnksXG5cdENvbG9yLFxuXHRDb2xvclJlcHJlc2VudGF0aW9uLFxuXHRDb21wcmVzc2VkVGV4dHVyZSxcblx0Q29uZUdlb21ldHJ5LFxuXHRDdWJlQ2FtZXJhLFxuXHRDdWJlVGV4dHVyZSxcblx0Q3lsaW5kZXJHZW9tZXRyeSxcblx0RGF0YTNEVGV4dHVyZSxcblx0RGF0YVRleHR1cmUsXG5cdERlcHRoVGV4dHVyZSxcblx0RGlyZWN0aW9uYWxMaWdodCxcblx0RGlyZWN0aW9uYWxMaWdodEhlbHBlcixcblx0RGlyZWN0aW9uYWxMaWdodFNoYWRvdyxcblx0RG9kZWNhaGVkcm9uR2VvbWV0cnksXG5cdEVkZ2VzR2VvbWV0cnksXG5cdEV1bGVyLFxuXHRFeHRydWRlR2VvbWV0cnksXG5cdEZsb2F0MTZCdWZmZXJBdHRyaWJ1dGUsXG5cdEZsb2F0MzJCdWZmZXJBdHRyaWJ1dGUsXG5cdEZvZyxcblx0Rm9nRXhwMixcblx0R3JpZEhlbHBlcixcblx0R3JvdXAsXG5cdEhlbWlzcGhlcmVMaWdodCxcblx0SGVtaXNwaGVyZUxpZ2h0SGVscGVyLFxuXHRJY29zYWhlZHJvbkdlb21ldHJ5LFxuXHRJbnN0YW5jZWRCdWZmZXJBdHRyaWJ1dGUsXG5cdEluc3RhbmNlZEJ1ZmZlckdlb21ldHJ5LFxuXHRJbnN0YW5jZWRNZXNoLFxuXHRJbnQxNkJ1ZmZlckF0dHJpYnV0ZSxcblx0SW50MzJCdWZmZXJBdHRyaWJ1dGUsXG5cdEludDhCdWZmZXJBdHRyaWJ1dGUsXG5cdExPRCxcblx0TGF0aGVHZW9tZXRyeSxcblx0TGF5ZXJzLFxuXHRMaWdodCxcblx0TGlnaHRQcm9iZSxcblx0TGlnaHRTaGFkb3csXG5cdExpbmUsXG5cdExpbmVCYXNpY01hdGVyaWFsLFxuXHRMaW5lQmFzaWNNYXRlcmlhbFBhcmFtZXRlcnMsXG5cdExpbmVEYXNoZWRNYXRlcmlhbCxcblx0TGluZURhc2hlZE1hdGVyaWFsUGFyYW1ldGVycyxcblx0TGluZUxvb3AsXG5cdExpbmVTZWdtZW50cyxcblx0TWF0ZXJpYWwsXG5cdE1hdHJpeDMsXG5cdE1hdHJpeDQsXG5cdE1lc2gsXG5cdE1lc2hCYXNpY01hdGVyaWFsLFxuXHRNZXNoQmFzaWNNYXRlcmlhbFBhcmFtZXRlcnMsXG5cdE1lc2hEZXB0aE1hdGVyaWFsLFxuXHRNZXNoRGVwdGhNYXRlcmlhbFBhcmFtZXRlcnMsXG5cdE1lc2hEaXN0YW5jZU1hdGVyaWFsLFxuXHRNZXNoRGlzdGFuY2VNYXRlcmlhbFBhcmFtZXRlcnMsXG5cdE1lc2hMYW1iZXJ0TWF0ZXJpYWwsXG5cdE1lc2hMYW1iZXJ0TWF0ZXJpYWxQYXJhbWV0ZXJzLFxuXHRNZXNoTWF0Y2FwTWF0ZXJpYWwsXG5cdE1lc2hNYXRjYXBNYXRlcmlhbFBhcmFtZXRlcnMsXG5cdE1lc2hOb3JtYWxNYXRlcmlhbCxcblx0TWVzaE5vcm1hbE1hdGVyaWFsUGFyYW1ldGVycyxcblx0TWVzaFBob25nTWF0ZXJpYWwsXG5cdE1lc2hQaG9uZ01hdGVyaWFsUGFyYW1ldGVycyxcblx0TWVzaFBoeXNpY2FsTWF0ZXJpYWwsXG5cdE1lc2hQaHlzaWNhbE1hdGVyaWFsUGFyYW1ldGVycyxcblx0TWVzaFN0YW5kYXJkTWF0ZXJpYWwsXG5cdE1lc2hTdGFuZGFyZE1hdGVyaWFsUGFyYW1ldGVycyxcblx0TWVzaFRvb25NYXRlcmlhbCxcblx0TWVzaFRvb25NYXRlcmlhbFBhcmFtZXRlcnMsXG5cdE9iamVjdDNELFxuXHRPY3RhaGVkcm9uR2VvbWV0cnksXG5cdE9ydGhvZ3JhcGhpY0NhbWVyYSxcblx0UGVyc3BlY3RpdmVDYW1lcmEsXG5cdFBsYW5lR2VvbWV0cnksXG5cdFBsYW5lSGVscGVyLFxuXHRQb2ludExpZ2h0LFxuXHRQb2ludExpZ2h0SGVscGVyLFxuXHRQb2ludHMsXG5cdFBvaW50c01hdGVyaWFsLFxuXHRQb2ludHNNYXRlcmlhbFBhcmFtZXRlcnMsXG5cdFBvbGFyR3JpZEhlbHBlcixcblx0UG9seWhlZHJvbkdlb21ldHJ5LFxuXHRQb3NpdGlvbmFsQXVkaW8sXG5cdFF1YXRlcm5pb24sXG5cdFJhd1NoYWRlck1hdGVyaWFsLFxuXHRSYXljYXN0ZXIsXG5cdFJlY3RBcmVhTGlnaHQsXG5cdFJpbmdHZW9tZXRyeSxcblx0U2NlbmUsXG5cdFNoYWRlck1hdGVyaWFsLFxuXHRTaGFkZXJNYXRlcmlhbFBhcmFtZXRlcnMsXG5cdFNoYWRvd01hdGVyaWFsLFxuXHRTaGFwZSxcblx0U2hhcGVHZW9tZXRyeSxcblx0U2tlbGV0b24sXG5cdFNrZWxldG9uSGVscGVyLFxuXHRTa2lubmVkTWVzaCxcblx0U3BoZXJlR2VvbWV0cnksXG5cdFNwb3RMaWdodCxcblx0U3BvdExpZ2h0SGVscGVyLFxuXHRTcG90TGlnaHRTaGFkb3csXG5cdFNwcml0ZSxcblx0U3ByaXRlTWF0ZXJpYWwsXG5cdFNwcml0ZU1hdGVyaWFsUGFyYW1ldGVycyxcblx0VGV0cmFoZWRyb25HZW9tZXRyeSxcblx0VGV4dHVyZSxcblx0VG9ydXNHZW9tZXRyeSxcblx0VG9ydXNLbm90R2VvbWV0cnksXG5cdFR1YmVHZW9tZXRyeSxcblx0VWludDE2QnVmZmVyQXR0cmlidXRlLFxuXHRVaW50MzJCdWZmZXJBdHRyaWJ1dGUsXG5cdFVpbnQ4QnVmZmVyQXR0cmlidXRlLFxuXHRWZWN0b3IyLFxuXHRWZWN0b3IzLFxuXHRWZWN0b3I0LFxuXHRWaWRlb1RleHR1cmUsXG5cdFdpcmVmcmFtZUdlb21ldHJ5LFxufSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBOZ3RFdmVudEhhbmRsZXJzIH0gZnJvbSAnLi9ldmVudHMnO1xuaW1wb3J0IHsgTmd0QWZ0ZXJBdHRhY2gsIE5ndEF0dGFjaEZ1bmN0aW9uLCBOZ3RJbnN0YW5jZU5vZGUgfSBmcm9tICcuL2luc3RhbmNlJztcbmltcG9ydCB7IE5ndEJlZm9yZVJlbmRlckV2ZW50IH0gZnJvbSAnLi9zdG9yZSc7XG5cbnR5cGUgRXhwYW5kPFQ+ID0gVCBleHRlbmRzIGluZmVyIE8gPyB7IFtLIGluIGtleW9mIE9dOiBPW0tdIH0gOiBuZXZlcjtcbnR5cGUgTm9FdmVudDxUPiA9IE9taXQ8VCwgJ2FkZEV2ZW50TGlzdGVuZXInIHwgJ3JlbW92ZUV2ZW50TGlzdGVuZXInPjtcblxuZXhwb3J0IHR5cGUgTmd0Tm9uRnVuY3Rpb25LZXlzPFQ+ID0geyBbSyBpbiBrZXlvZiBUXS0/OiBUW0tdIGV4dGVuZHMgRnVuY3Rpb24gPyBuZXZlciA6IEsgfVtrZXlvZiBUXTtcbmV4cG9ydCB0eXBlIE5ndE92ZXJ3cml0ZTxULCBPPiA9IE9taXQ8VCwgTmd0Tm9uRnVuY3Rpb25LZXlzPE8+PiAmIE87XG5cbmV4cG9ydCB0eXBlIE5ndEV4dGVuZGVkQ29sb3JzPFQ+ID0ge1xuXHRbSyBpbiBrZXlvZiBUXTogVFtLXSBleHRlbmRzIENvbG9yIHwgdW5kZWZpbmVkID8gQ29sb3JSZXByZXNlbnRhdGlvbiA6IFRbS107XG59O1xuXG4vKipcbiAqIElmICoqVCoqIGNvbnRhaW5zIGEgY29uc3RydWN0b3IsIEBzZWUgQ29uc3RydWN0b3JQYXJhbWV0ZXJzIG11c3QgYmUgdXNlZCwgb3RoZXJ3aXNlICoqVCoqLlxuICovXG50eXBlIE5ndEFyZ3VtZW50czxUPiA9IFQgZXh0ZW5kcyBuZXcgKC4uLmFyZ3M6IGFueSkgPT4gYW55ID8gQ29uc3RydWN0b3JQYXJhbWV0ZXJzPFQ+IDogVDtcblxuZXhwb3J0IHR5cGUgTmd0RXVsZXIgPSBFdWxlciB8IFBhcmFtZXRlcnM8RXVsZXJbJ3NldCddPjtcbmV4cG9ydCB0eXBlIE5ndE1hdHJpeDQgPSBNYXRyaXg0IHwgUGFyYW1ldGVyczxNYXRyaXg0WydzZXQnXT4gfCBSZWFkb25seTxNYXRyaXg0WydzZXQnXT47XG5cbi8qKlxuICogVHVybiBhbiBpbXBsZW1lbnRhdGlvbiBvZiBWZWN0b3IgaW4gdG8gdGhlIHR5cGUgdGhhdCBhbiByM2YgY29tcG9uZW50IHdvdWxkIGFjY2VwdCBhcyBhIHByb3AuXG4gKi9cbnR5cGUgTmd0VmVjdG9yTGlrZTxWZWN0b3JDbGFzcyBleHRlbmRzIFZlY3RvcjIgfCBWZWN0b3IzIHwgVmVjdG9yND4gPVxuXHR8IFZlY3RvckNsYXNzXG5cdHwgUGFyYW1ldGVyczxWZWN0b3JDbGFzc1snc2V0J10+XG5cdHwgUmVhZG9ubHk8UGFyYW1ldGVyczxWZWN0b3JDbGFzc1snc2V0J10+PlxuXHR8IFBhcmFtZXRlcnM8VmVjdG9yQ2xhc3NbJ3NldFNjYWxhciddPlswXTtcblxuZXhwb3J0IHR5cGUgTmd0VmVjdG9yMiA9IE5ndFZlY3Rvckxpa2U8VmVjdG9yMj47XG5leHBvcnQgdHlwZSBOZ3RWZWN0b3IzID0gTmd0VmVjdG9yTGlrZTxWZWN0b3IzPjtcbmV4cG9ydCB0eXBlIE5ndFZlY3RvcjQgPSBOZ3RWZWN0b3JMaWtlPFZlY3RvcjQ+O1xuZXhwb3J0IHR5cGUgTmd0TGF5ZXJzID0gTGF5ZXJzIHwgUGFyYW1ldGVyczxMYXllcnNbJ3NldCddPlswXTtcbmV4cG9ydCB0eXBlIE5ndFF1YXRlcm5pb24gPSBRdWF0ZXJuaW9uIHwgUGFyYW1ldGVyczxRdWF0ZXJuaW9uWydzZXQnXT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0Tm9kZUV2ZW50TWFwPFRPcmlnaW5hbD4ge1xuXHRhdHRhY2hlZDogTmd0QWZ0ZXJBdHRhY2g8Tmd0SW5zdGFuY2VOb2RlLCBUT3JpZ2luYWw+O1xuXHR1cGRhdGVkOiBUT3JpZ2luYWw7XG5cdGJlZm9yZVJlbmRlcjogTmd0QmVmb3JlUmVuZGVyRXZlbnQ8VE9yaWdpbmFsPjtcbn1cblxuZXhwb3J0IHR5cGUgTmd0Tm9kZUVsZW1lbnQ8VE9yaWdpbmFsLCBUQ29uc3RydWN0b3I+ID0ge1xuXHRhdHRhY2g6IHN0cmluZyB8IHN0cmluZ1tdIHwgTmd0QXR0YWNoRnVuY3Rpb247XG5cdGFkZEV2ZW50TGlzdGVuZXI8VEV2ZW50S2V5IGV4dGVuZHMga2V5b2YgTmd0Tm9kZUV2ZW50TWFwPFRPcmlnaW5hbD4+KFxuXHRcdHR5cGU6IFRFdmVudEtleSxcblx0XHRsaXN0ZW5lcjogKHRoaXM6IE5ndE5vZGVFbGVtZW50PFRPcmlnaW5hbCwgVENvbnN0cnVjdG9yPiwgZXY6IE5ndE5vZGVFdmVudE1hcDxUT3JpZ2luYWw+W1RFdmVudEtleV0pID0+IGFueSxcblx0KTogdm9pZDtcblx0cmVtb3ZlRXZlbnRMaXN0ZW5lcjxURXZlbnRLZXkgZXh0ZW5kcyBrZXlvZiBOZ3ROb2RlRXZlbnRNYXA8VE9yaWdpbmFsPj4oXG5cdFx0dHlwZTogVEV2ZW50S2V5LFxuXHRcdGxpc3RlbmVyOiAodGhpczogTmd0Tm9kZUVsZW1lbnQ8VE9yaWdpbmFsLCBUQ29uc3RydWN0b3I+LCBldjogTmd0Tm9kZUV2ZW50TWFwPFRPcmlnaW5hbD5bVEV2ZW50S2V5XSkgPT4gYW55LFxuXHQpOiB2b2lkO1xuXHRfX25ndF9hcmdzX186IE5ndEFyZ3VtZW50czxUQ29uc3RydWN0b3I+O1xufTtcblxuZXhwb3J0IHR5cGUgTmd0Tm9kZTxUT3JpZ2luYWwsIFRDb25zdHJ1Y3RvciwgVE5vRXZlbnQgPSBOb0V2ZW50PFRPcmlnaW5hbD4+ID0gRXhwYW5kPFxuXHROZ3RFeHRlbmRlZENvbG9yczxOZ3RPdmVyd3JpdGU8UGFydGlhbDxUTm9FdmVudD4sIE5ndE5vZGVFbGVtZW50PFRPcmlnaW5hbCwgVENvbnN0cnVjdG9yPj4+XG4+O1xuXG5leHBvcnQgdHlwZSBOZ3RPYmplY3QzREV2ZW50c01hcCA9IHtcblx0W1RFdmVudCBpbiBrZXlvZiBOZ3RFdmVudEhhbmRsZXJzXS0/OiBQYXJhbWV0ZXJzPE5vbk51bGxhYmxlPE5ndEV2ZW50SGFuZGxlcnNbVEV2ZW50XT4+WzBdO1xufTtcblxuZXhwb3J0IHR5cGUgTmd0QWxsT2JqZWN0M0RFdmVudHNNYXAgPSBOZ3RPYmplY3QzREV2ZW50c01hcCAmIE5ndE5vZGVFdmVudE1hcDxOZ3RJbnN0YW5jZU5vZGU+O1xuXG5leHBvcnQgdHlwZSBOZ3RPYmplY3QzRE5vZGU8VE9yaWdpbmFsLCBUQ29uc3RydWN0b3IsIFROb0V2ZW50ID0gTm9FdmVudDxUT3JpZ2luYWw+PiA9IEV4cGFuZDxcblx0Tmd0T3ZlcndyaXRlPFxuXHRcdE5ndE5vZGU8VE9yaWdpbmFsLCBUQ29uc3RydWN0b3IsIFROb0V2ZW50Pixcblx0XHR7XG5cdFx0XHRwb3NpdGlvbjogTmd0VmVjdG9yMztcblx0XHRcdHVwOiBOZ3RWZWN0b3IzO1xuXHRcdFx0c2NhbGU6IE5ndFZlY3RvcjM7XG5cdFx0XHRyb3RhdGlvbjogTmd0RXVsZXI7XG5cdFx0XHRtYXRyaXg6IE5ndE1hdHJpeDQ7XG5cdFx0XHRxdWF0ZXJuaW9uOiBOZ3RRdWF0ZXJuaW9uO1xuXHRcdFx0bGF5ZXJzOiBOZ3RMYXllcnM7XG5cdFx0XHRkaXNwb3NlOiAoKCkgPT4gdm9pZCkgfCBudWxsO1xuXHRcdFx0YWRkRXZlbnRMaXN0ZW5lcjxURXZlbnRLZXkgZXh0ZW5kcyBrZXlvZiBOZ3RBbGxPYmplY3QzREV2ZW50c01hcD4oXG5cdFx0XHRcdHR5cGU6IFRFdmVudEtleSxcblx0XHRcdFx0bGlzdGVuZXI6ICh0aGlzOiBOZ3RPYmplY3QzRE5vZGU8VE9yaWdpbmFsLCBUQ29uc3RydWN0b3I+LCBldjogTmd0QWxsT2JqZWN0M0RFdmVudHNNYXBbVEV2ZW50S2V5XSkgPT4gYW55LFxuXHRcdFx0KTogdm9pZDtcblx0XHRcdHJlbW92ZUV2ZW50TGlzdGVuZXI8VEV2ZW50S2V5IGV4dGVuZHMga2V5b2YgTmd0QWxsT2JqZWN0M0RFdmVudHNNYXA+KFxuXHRcdFx0XHR0eXBlOiBURXZlbnRLZXksXG5cdFx0XHRcdGxpc3RlbmVyOiAodGhpczogTmd0T2JqZWN0M0ROb2RlPFRPcmlnaW5hbCwgVENvbnN0cnVjdG9yPiwgZXY6IE5ndEFsbE9iamVjdDNERXZlbnRzTWFwW1RFdmVudEtleV0pID0+IGFueSxcblx0XHRcdCk6IHZvaWQ7XG5cdFx0fVxuXHQ+XG4+O1xuXG5leHBvcnQgdHlwZSBOZ3RHZW9tZXRyeTxUR2VvbWV0cnkgZXh0ZW5kcyBCdWZmZXJHZW9tZXRyeSwgVENvbnN0cnVjdG9yPiA9IE5ndE5vZGU8VEdlb21ldHJ5LCBUQ29uc3RydWN0b3I+O1xuZXhwb3J0IHR5cGUgTmd0TWF0ZXJpYWw8VE1hdGVyaWFsIGV4dGVuZHMgTWF0ZXJpYWwsIFRDb25zdHJ1Y3Rvcj4gPSBOZ3ROb2RlPFRNYXRlcmlhbCwgVENvbnN0cnVjdG9yPjtcbmV4cG9ydCB0eXBlIE5ndExpZ2h0PFQgZXh0ZW5kcyBMaWdodCwgUD4gPSBOZ3RPYmplY3QzRE5vZGU8VCwgUD47XG5cbmV4cG9ydCB0eXBlIE5ndE9iamVjdDNEID0gTmd0T2JqZWN0M0ROb2RlPE9iamVjdDNELCB0eXBlb2YgT2JqZWN0M0Q+O1xuZXhwb3J0IHR5cGUgTmd0QXVkaW8gPSBOZ3RPYmplY3QzRE5vZGU8QXVkaW8sIHR5cGVvZiBBdWRpbz47XG5leHBvcnQgdHlwZSBOZ3RBdWRpb0xpc3RlbmVyID0gTmd0T2JqZWN0M0ROb2RlPEF1ZGlvTGlzdGVuZXIsIHR5cGVvZiBBdWRpb0xpc3RlbmVyPjtcbmV4cG9ydCB0eXBlIE5ndFBvc2l0aW9uYWxBdWRpbyA9IE5ndE9iamVjdDNETm9kZTxQb3NpdGlvbmFsQXVkaW8sIHR5cGVvZiBQb3NpdGlvbmFsQXVkaW8+O1xuXG5leHBvcnQgdHlwZSBOZ3RNZXNoID0gTmd0T2JqZWN0M0ROb2RlPE1lc2gsIHR5cGVvZiBNZXNoPjtcbmV4cG9ydCB0eXBlIE5ndEluc3RhbmNlZE1lc2ggPSBOZ3RPYmplY3QzRE5vZGU8SW5zdGFuY2VkTWVzaCwgdHlwZW9mIEluc3RhbmNlZE1lc2g+O1xuZXhwb3J0IHR5cGUgTmd0QmF0Y2hlZE1lc2ggPSBOZ3RPYmplY3QzRE5vZGU8QmF0Y2hlZE1lc2gsIHR5cGVvZiBCYXRjaGVkTWVzaD47XG5leHBvcnQgdHlwZSBOZ3RTY2VuZSA9IE5ndE9iamVjdDNETm9kZTxTY2VuZSwgdHlwZW9mIFNjZW5lPjtcbmV4cG9ydCB0eXBlIE5ndFNwcml0ZSA9IE5ndE9iamVjdDNETm9kZTxTcHJpdGUsIHR5cGVvZiBTcHJpdGU+O1xuZXhwb3J0IHR5cGUgTmd0TE9EID0gTmd0T2JqZWN0M0ROb2RlPExPRCwgdHlwZW9mIExPRD47XG5leHBvcnQgdHlwZSBOZ3RTa2lubmVkTWVzaCA9IE5ndE9iamVjdDNETm9kZTxTa2lubmVkTWVzaCwgdHlwZW9mIFNraW5uZWRNZXNoPjtcblxuZXhwb3J0IHR5cGUgTmd0U2tlbGV0b24gPSBOZ3RPYmplY3QzRE5vZGU8U2tlbGV0b24sIHR5cGVvZiBTa2VsZXRvbj47XG5leHBvcnQgdHlwZSBOZ3RCb25lID0gTmd0T2JqZWN0M0ROb2RlPEJvbmUsIHR5cGVvZiBCb25lPjtcbmV4cG9ydCB0eXBlIE5ndExpbmUgPSBOZ3RPYmplY3QzRE5vZGU8TGluZSwgdHlwZW9mIExpbmU+O1xuZXhwb3J0IHR5cGUgTmd0TGluZVNlZ21lbnRzID0gTmd0T2JqZWN0M0ROb2RlPExpbmVTZWdtZW50cywgdHlwZW9mIExpbmVTZWdtZW50cz47XG5leHBvcnQgdHlwZSBOZ3RMaW5lTG9vcCA9IE5ndE9iamVjdDNETm9kZTxMaW5lTG9vcCwgdHlwZW9mIExpbmVMb29wPjtcbmV4cG9ydCB0eXBlIE5ndFBvaW50cyA9IE5ndE9iamVjdDNETm9kZTxQb2ludHMsIHR5cGVvZiBQb2ludHM+O1xuZXhwb3J0IHR5cGUgTmd0R3JvdXAgPSBOZ3RPYmplY3QzRE5vZGU8R3JvdXAsIHR5cGVvZiBHcm91cD47XG5cbmV4cG9ydCB0eXBlIE5ndENhbWVyYU5vZGUgPSBOZ3RPYmplY3QzRE5vZGU8Q2FtZXJhLCB0eXBlb2YgQ2FtZXJhPjtcbmV4cG9ydCB0eXBlIE5ndFBlcnNwZWN0aXZlQ2FtZXJhID0gTmd0T2JqZWN0M0ROb2RlPFBlcnNwZWN0aXZlQ2FtZXJhLCB0eXBlb2YgUGVyc3BlY3RpdmVDYW1lcmE+O1xuZXhwb3J0IHR5cGUgTmd0T3J0aG9ncmFwaGljQ2FtZXJhID0gTmd0T2JqZWN0M0ROb2RlPE9ydGhvZ3JhcGhpY0NhbWVyYSwgdHlwZW9mIE9ydGhvZ3JhcGhpY0NhbWVyYT47XG5leHBvcnQgdHlwZSBOZ3RDdWJlQ2FtZXJhID0gTmd0T2JqZWN0M0ROb2RlPEN1YmVDYW1lcmEsIHR5cGVvZiBDdWJlQ2FtZXJhPjtcbmV4cG9ydCB0eXBlIE5ndEFycmF5Q2FtZXJhID0gTmd0T2JqZWN0M0ROb2RlPEFycmF5Q2FtZXJhLCB0eXBlb2YgQXJyYXlDYW1lcmE+O1xuXG5leHBvcnQgdHlwZSBOZ3RJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PEluc3RhbmNlZEJ1ZmZlckdlb21ldHJ5LCB0eXBlb2YgSW5zdGFuY2VkQnVmZmVyR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0QnVmZmVyR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxCdWZmZXJHZW9tZXRyeSwgdHlwZW9mIEJ1ZmZlckdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndFdpcmVmcmFtZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8V2lyZWZyYW1lR2VvbWV0cnksIHR5cGVvZiBXaXJlZnJhbWVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RUZXRyYWhlZHJvbkdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VGV0cmFoZWRyb25HZW9tZXRyeSwgdHlwZW9mIFRldHJhaGVkcm9uR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0T2N0YWhlZHJvbkdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8T2N0YWhlZHJvbkdlb21ldHJ5LCB0eXBlb2YgT2N0YWhlZHJvbkdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndEljb3NhaGVkcm9uR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxJY29zYWhlZHJvbkdlb21ldHJ5LCB0eXBlb2YgSWNvc2FoZWRyb25HZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3REb2RlY2FoZWRyb25HZW9tZXRyeSA9IE5ndEdlb21ldHJ5PERvZGVjYWhlZHJvbkdlb21ldHJ5LCB0eXBlb2YgRG9kZWNhaGVkcm9uR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0UG9seWhlZHJvbkdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8UG9seWhlZHJvbkdlb21ldHJ5LCB0eXBlb2YgUG9seWhlZHJvbkdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndFR1YmVHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFR1YmVHZW9tZXRyeSwgdHlwZW9mIFR1YmVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RUb3J1c0tub3RHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRvcnVzS25vdEdlb21ldHJ5LCB0eXBlb2YgVG9ydXNLbm90R2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0VG9ydXNHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRvcnVzR2VvbWV0cnksIHR5cGVvZiBUb3J1c0dlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndFNwaGVyZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8U3BoZXJlR2VvbWV0cnksIHR5cGVvZiBTcGhlcmVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RSaW5nR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxSaW5nR2VvbWV0cnksIHR5cGVvZiBSaW5nR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0UGxhbmVHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFBsYW5lR2VvbWV0cnksIHR5cGVvZiBQbGFuZUdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndExhdGhlR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxMYXRoZUdlb21ldHJ5LCB0eXBlb2YgTGF0aGVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RTaGFwZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8U2hhcGVHZW9tZXRyeSwgdHlwZW9mIFNoYXBlR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0RXh0cnVkZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8RXh0cnVkZUdlb21ldHJ5LCB0eXBlb2YgRXh0cnVkZUdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndEVkZ2VzR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxFZGdlc0dlb21ldHJ5LCB0eXBlb2YgRWRnZXNHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RDb25lR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxDb25lR2VvbWV0cnksIHR5cGVvZiBDb25lR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0Q3lsaW5kZXJHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PEN5bGluZGVyR2VvbWV0cnksIHR5cGVvZiBDeWxpbmRlckdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndENpcmNsZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8Q2lyY2xlR2VvbWV0cnksIHR5cGVvZiBDaXJjbGVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RCb3hHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PEJveEdlb21ldHJ5LCB0eXBlb2YgQm94R2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0Q2Fwc3VsZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8Q2Fwc3VsZUdlb21ldHJ5LCB0eXBlb2YgQ2Fwc3VsZUdlb21ldHJ5PjtcblxuZXhwb3J0IHR5cGUgTmd0U2hhZG93TWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxTaGFkb3dNYXRlcmlhbCwgW1NoYWRlck1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0U3ByaXRlTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxTcHJpdGVNYXRlcmlhbCwgW1Nwcml0ZU1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0UmF3U2hhZGVyTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxSYXdTaGFkZXJNYXRlcmlhbCwgW1NoYWRlck1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0U2hhZGVyTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxTaGFkZXJNYXRlcmlhbCwgW1NoYWRlck1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0UG9pbnRzTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxQb2ludHNNYXRlcmlhbCwgW1BvaW50c01hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaFBoeXNpY2FsTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxNZXNoUGh5c2ljYWxNYXRlcmlhbCwgW01lc2hQaHlzaWNhbE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaFN0YW5kYXJkTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxNZXNoU3RhbmRhcmRNYXRlcmlhbCwgW01lc2hTdGFuZGFyZE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaFBob25nTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxNZXNoUGhvbmdNYXRlcmlhbCwgW01lc2hQaG9uZ01hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaFRvb25NYXRlcmlhbCA9IE5ndE1hdGVyaWFsPE1lc2hUb29uTWF0ZXJpYWwsIFtNZXNoVG9vbk1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaE5vcm1hbE1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8TWVzaE5vcm1hbE1hdGVyaWFsLCBbTWVzaE5vcm1hbE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaExhbWJlcnRNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPE1lc2hMYW1iZXJ0TWF0ZXJpYWwsIFtNZXNoTGFtYmVydE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaERlcHRoTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxNZXNoRGVwdGhNYXRlcmlhbCwgW01lc2hEZXB0aE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaERpc3RhbmNlTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxNZXNoRGlzdGFuY2VNYXRlcmlhbCwgW01lc2hEaXN0YW5jZU1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaEJhc2ljTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxNZXNoQmFzaWNNYXRlcmlhbCwgW01lc2hCYXNpY01hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaE1hdGNhcE1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8TWVzaE1hdGNhcE1hdGVyaWFsLCBbTWVzaE1hdGNhcE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TGluZURhc2hlZE1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8TGluZURhc2hlZE1hdGVyaWFsLCBbTGluZURhc2hlZE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TGluZUJhc2ljTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxMaW5lQmFzaWNNYXRlcmlhbCwgW0xpbmVCYXNpY01hdGVyaWFsUGFyYW1ldGVyc10+O1xuXG5leHBvcnQgdHlwZSBOZ3RQcmltaXRpdmUgPSBOZ3ROb2RlRWxlbWVudDxhbnksIGFueT47XG5leHBvcnQgdHlwZSBOZ3RWYWx1ZSA9IE5ndE5vZGU8eyByYXdWYWx1ZTogYW55IH0sIHt9PjtcblxuZXhwb3J0IHR5cGUgTmd0TGlnaHRTaGFkb3cgPSBOZ3ROb2RlPExpZ2h0U2hhZG93LCB0eXBlb2YgTGlnaHRTaGFkb3c+O1xuZXhwb3J0IHR5cGUgTmd0U3BvdExpZ2h0U2hhZG93ID0gTmd0Tm9kZTxTcG90TGlnaHRTaGFkb3csIHR5cGVvZiBTcG90TGlnaHRTaGFkb3c+O1xuZXhwb3J0IHR5cGUgTmd0RGlyZWN0aW9uYWxMaWdodFNoYWRvdyA9IE5ndE5vZGU8RGlyZWN0aW9uYWxMaWdodFNoYWRvdywgdHlwZW9mIERpcmVjdGlvbmFsTGlnaHRTaGFkb3c+O1xuXG5leHBvcnQgdHlwZSBOZ3RTcG90TGlnaHQgPSBOZ3RMaWdodDxTcG90TGlnaHQsIHR5cGVvZiBTcG90TGlnaHQ+O1xuZXhwb3J0IHR5cGUgTmd0UG9pbnRMaWdodCA9IE5ndExpZ2h0PFBvaW50TGlnaHQsIHR5cGVvZiBQb2ludExpZ2h0PjtcbmV4cG9ydCB0eXBlIE5ndFJlY3RBcmVhTGlnaHQgPSBOZ3RMaWdodDxSZWN0QXJlYUxpZ2h0LCB0eXBlb2YgUmVjdEFyZWFMaWdodD47XG5leHBvcnQgdHlwZSBOZ3RIZW1pc3BoZXJlTGlnaHQgPSBOZ3RMaWdodDxIZW1pc3BoZXJlTGlnaHQsIHR5cGVvZiBIZW1pc3BoZXJlTGlnaHQ+O1xuZXhwb3J0IHR5cGUgTmd0RGlyZWN0aW9uYWxMaWdodCA9IE5ndExpZ2h0PERpcmVjdGlvbmFsTGlnaHQsIHR5cGVvZiBEaXJlY3Rpb25hbExpZ2h0PjtcbmV4cG9ydCB0eXBlIE5ndEFtYmllbnRMaWdodCA9IE5ndExpZ2h0PEFtYmllbnRMaWdodCwgdHlwZW9mIEFtYmllbnRMaWdodD47XG5leHBvcnQgdHlwZSBOZ3RMaWdodFByb2JlID0gTmd0TGlnaHQ8TGlnaHRQcm9iZSwgdHlwZW9mIExpZ2h0UHJvYmU+O1xuXG5leHBvcnQgdHlwZSBOZ3RTcG90TGlnaHRIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8U3BvdExpZ2h0SGVscGVyLCB0eXBlb2YgU3BvdExpZ2h0SGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndFNrZWxldG9uSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFNrZWxldG9uSGVscGVyLCB0eXBlb2YgU2tlbGV0b25IZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0UG9pbnRMaWdodEhlbHBlciA9IE5ndE9iamVjdDNETm9kZTxQb2ludExpZ2h0SGVscGVyLCB0eXBlb2YgUG9pbnRMaWdodEhlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RIZW1pc3BoZXJlTGlnaHRIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8SGVtaXNwaGVyZUxpZ2h0SGVscGVyLCB0eXBlb2YgSGVtaXNwaGVyZUxpZ2h0SGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndEdyaWRIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8R3JpZEhlbHBlciwgdHlwZW9mIEdyaWRIZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0UG9sYXJHcmlkSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFBvbGFyR3JpZEhlbHBlciwgdHlwZW9mIFBvbGFyR3JpZEhlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3REaXJlY3Rpb25hbExpZ2h0SGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPERpcmVjdGlvbmFsTGlnaHRIZWxwZXIsIHR5cGVvZiBEaXJlY3Rpb25hbExpZ2h0SGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndENhbWVyYUhlbHBlciA9IE5ndE9iamVjdDNETm9kZTxDYW1lcmFIZWxwZXIsIHR5cGVvZiBDYW1lcmFIZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0Qm94SGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPEJveEhlbHBlciwgdHlwZW9mIEJveEhlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RCb3gzSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPEJveDNIZWxwZXIsIHR5cGVvZiBCb3gzSGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndFBsYW5lSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFBsYW5lSGVscGVyLCB0eXBlb2YgUGxhbmVIZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0QXJyb3dIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8QXJyb3dIZWxwZXIsIHR5cGVvZiBBcnJvd0hlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RBeGVzSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPEF4ZXNIZWxwZXIsIHR5cGVvZiBBeGVzSGVscGVyPjtcblxuZXhwb3J0IHR5cGUgTmd0VGV4dHVyZSA9IE5ndE5vZGU8VGV4dHVyZSwgdHlwZW9mIFRleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0VmlkZW9UZXh0dXJlID0gTmd0Tm9kZTxWaWRlb1RleHR1cmUsIHR5cGVvZiBWaWRlb1RleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0RGF0YVRleHR1cmUgPSBOZ3ROb2RlPERhdGFUZXh0dXJlLCB0eXBlb2YgRGF0YVRleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0RGF0YTNEVGV4dHVyZSA9IE5ndE5vZGU8RGF0YTNEVGV4dHVyZSwgdHlwZW9mIERhdGEzRFRleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0Q29tcHJlc3NlZFRleHR1cmUgPSBOZ3ROb2RlPENvbXByZXNzZWRUZXh0dXJlLCB0eXBlb2YgQ29tcHJlc3NlZFRleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0Q3ViZVRleHR1cmUgPSBOZ3ROb2RlPEN1YmVUZXh0dXJlLCB0eXBlb2YgQ3ViZVRleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0Q2FudmFzVGV4dHVyZSA9IE5ndE5vZGU8Q2FudmFzVGV4dHVyZSwgdHlwZW9mIENhbnZhc1RleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0RGVwdGhUZXh0dXJlID0gTmd0Tm9kZTxEZXB0aFRleHR1cmUsIHR5cGVvZiBEZXB0aFRleHR1cmU+O1xuXG5leHBvcnQgdHlwZSBOZ3RSYXljYXN0ZXIgPSBOZ3ROb2RlPFJheWNhc3RlciwgdHlwZW9mIFJheWNhc3Rlcj47XG5leHBvcnQgdHlwZSBOZ3RWZWN0b3IyTm9kZSA9IE5ndE5vZGU8VmVjdG9yMiwgdHlwZW9mIFZlY3RvcjI+O1xuZXhwb3J0IHR5cGUgTmd0VmVjdG9yM05vZGUgPSBOZ3ROb2RlPFZlY3RvcjMsIHR5cGVvZiBWZWN0b3IzPjtcbmV4cG9ydCB0eXBlIE5ndFZlY3RvcjROb2RlID0gTmd0Tm9kZTxWZWN0b3I0LCB0eXBlb2YgVmVjdG9yND47XG5leHBvcnQgdHlwZSBOZ3RFdWxlck5vZGUgPSBOZ3ROb2RlPEV1bGVyLCB0eXBlb2YgRXVsZXI+O1xuZXhwb3J0IHR5cGUgTmd0TWF0cml4M05vZGUgPSBOZ3ROb2RlPE1hdHJpeDMsIHR5cGVvZiBNYXRyaXgzPjtcbmV4cG9ydCB0eXBlIE5ndE1hdHJpeDROb2RlID0gTmd0Tm9kZTxNYXRyaXg0LCB0eXBlb2YgTWF0cml4ND47XG5leHBvcnQgdHlwZSBOZ3RRdWF0ZXJuaW9uTm9kZSA9IE5ndE5vZGU8UXVhdGVybmlvbiwgdHlwZW9mIFF1YXRlcm5pb24+O1xuZXhwb3J0IHR5cGUgTmd0QnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxCdWZmZXJBdHRyaWJ1dGUsIHR5cGVvZiBCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0RmxvYXQxNkJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8RmxvYXQxNkJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIEZsb2F0MTZCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0RmxvYXQzMkJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8RmxvYXQzMkJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIEZsb2F0MzJCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0SW50OEJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8SW50OEJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIEludDhCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0SW50MTZCdWZmZXJBdHRyaWJ1dGUgPSBOZ3ROb2RlPEludDE2QnVmZmVyQXR0cmlidXRlLCB0eXBlb2YgSW50MTZCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0SW50MzJCdWZmZXJBdHRyaWJ1dGUgPSBOZ3ROb2RlPEludDMyQnVmZmVyQXR0cmlidXRlLCB0eXBlb2YgSW50MzJCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0VWludDhCdWZmZXJBdHRyaWJ1dGUgPSBOZ3ROb2RlPFVpbnQ4QnVmZmVyQXR0cmlidXRlLCB0eXBlb2YgVWludDhCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0VWludDE2QnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxVaW50MTZCdWZmZXJBdHRyaWJ1dGUsIHR5cGVvZiBVaW50MTZCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0VWludDMyQnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxVaW50MzJCdWZmZXJBdHRyaWJ1dGUsIHR5cGVvZiBVaW50MzJCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0SW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxJbnN0YW5jZWRCdWZmZXJBdHRyaWJ1dGUsIHR5cGVvZiBJbnN0YW5jZWRCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0Q29sb3IgPSBOZ3ROb2RlPENvbG9yLCBDb2xvclJlcHJlc2VudGF0aW9uPjtcbmV4cG9ydCB0eXBlIE5ndEZvZyA9IE5ndE5vZGU8Rm9nLCB0eXBlb2YgRm9nPjtcbmV4cG9ydCB0eXBlIE5ndEZvZ0V4cDIgPSBOZ3ROb2RlPEZvZ0V4cDIsIHR5cGVvZiBGb2dFeHAyPjtcbmV4cG9ydCB0eXBlIE5ndFNoYXBlID0gTmd0Tm9kZTxTaGFwZSwgdHlwZW9mIFNoYXBlPjtcblxuZXhwb3J0IGludGVyZmFjZSBUaHJlZUVsZW1lbnRzIHtcblx0J25ndC1vYmplY3QzRCc6IE5ndE9iamVjdDNEO1xuXG5cdC8vIGBhdWRpb2Agd29ya3MgYnV0IGNvbmZsaWN0cyB3aXRoIEB0eXBlcy9yZWFjdC4gVHJ5IHVzaW5nIFBvc2l0aW9uYWxBdWRpbyBmcm9tIEByZWFjdC10aHJlZS9kcmVpIGluc3RlYWRcblx0J25ndC1hdWRpbyc6IE5ndEF1ZGlvO1xuXHQnbmd0LWF1ZGlvLWxpc3RlbmVyJzogTmd0QXVkaW9MaXN0ZW5lcjtcblx0J25ndC1wb3NpdGlvbmFsLWF1ZGlvJzogTmd0UG9zaXRpb25hbEF1ZGlvO1xuXG5cdCduZ3QtbWVzaCc6IE5ndE1lc2g7XG5cdCduZ3QtaW5zdGFuY2VkLW1lc2gnOiBOZ3RJbnN0YW5jZWRNZXNoO1xuXHQnbmd0LXNjZW5lJzogTmd0U2NlbmU7XG5cdCduZ3Qtc3ByaXRlJzogTmd0U3ByaXRlO1xuXHQnbmd0LWxPRCc6IE5ndExPRDtcblx0J25ndC1za2lubmVkLW1lc2gnOiBOZ3RTa2lubmVkTWVzaDtcblx0J25ndC1za2VsZXRvbic6IE5ndFNrZWxldG9uO1xuXHQnbmd0LWJvbmUnOiBOZ3RCb25lO1xuXG5cdCduZ3QtbGluZSc6IE5ndExpbmU7XG5cdCduZ3QtbGluZS1zZWdtZW50cyc6IE5ndExpbmVTZWdtZW50cztcblx0J25ndC1saW5lLWxvb3AnOiBOZ3RMaW5lTG9vcDtcblx0J25ndC1wb2ludHMnOiBOZ3RQb2ludHM7XG5cdCduZ3QtZ3JvdXAnOiBOZ3RHcm91cDtcblxuXHQvLyBjYW1lcmFzXG5cdCduZ3QtY2FtZXJhJzogTmd0Q2FtZXJhTm9kZTtcblx0J25ndC1wZXJzcGVjdGl2ZS1jYW1lcmEnOiBOZ3RQZXJzcGVjdGl2ZUNhbWVyYTtcblx0J25ndC1vcnRob2dyYXBoaWMtY2FtZXJhJzogTmd0T3J0aG9ncmFwaGljQ2FtZXJhO1xuXHQnbmd0LWN1YmUtY2FtZXJhJzogTmd0Q3ViZUNhbWVyYTtcblx0J25ndC1hcnJheS1jYW1lcmEnOiBOZ3RBcnJheUNhbWVyYTtcblxuXHQvLyBnZW9tZXRyeVxuXHQnbmd0LWluc3RhbmNlZC1idWZmZXItZ2VvbWV0cnknOiBOZ3RJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeTtcblx0J25ndC1idWZmZXItZ2VvbWV0cnknOiBOZ3RCdWZmZXJHZW9tZXRyeTtcblx0J25ndC13aXJlZnJhbWUtZ2VvbWV0cnknOiBOZ3RXaXJlZnJhbWVHZW9tZXRyeTtcblx0J25ndC10ZXRyYWhlZHJvbi1nZW9tZXRyeSc6IE5ndFRldHJhaGVkcm9uR2VvbWV0cnk7XG5cdCduZ3Qtb2N0YWhlZHJvbi1nZW9tZXRyeSc6IE5ndE9jdGFoZWRyb25HZW9tZXRyeTtcblx0J25ndC1pY29zYWhlZHJvbi1nZW9tZXRyeSc6IE5ndEljb3NhaGVkcm9uR2VvbWV0cnk7XG5cdCduZ3QtcG9seWhlZHJvbi1nZW9tZXRyeSc6IE5ndFBvbHloZWRyb25HZW9tZXRyeTtcblx0J25ndC1kb2RlY2FoZWRyb24tZ2VvbWV0cnknOiBOZ3REb2RlY2FoZWRyb25HZW9tZXRyeTtcblx0J25ndC10dWJlLWdlb21ldHJ5JzogTmd0VHViZUdlb21ldHJ5O1xuXHQnbmd0LXRvcnVzLWtub3QtZ2VvbWV0cnknOiBOZ3RUb3J1c0tub3RHZW9tZXRyeTtcblx0J25ndC10b3J1cy1nZW9tZXRyeSc6IE5ndFRvcnVzR2VvbWV0cnk7XG5cdCduZ3Qtc3BoZXJlLWdlb21ldHJ5JzogTmd0U3BoZXJlR2VvbWV0cnk7XG5cdCduZ3QtcmluZy1nZW9tZXRyeSc6IE5ndFJpbmdHZW9tZXRyeTtcblx0J25ndC1wbGFuZS1nZW9tZXRyeSc6IE5ndFBsYW5lR2VvbWV0cnk7XG5cdCduZ3QtbGF0aGUtZ2VvbWV0cnknOiBOZ3RMYXRoZUdlb21ldHJ5O1xuXHQnbmd0LXNoYXBlLWdlb21ldHJ5JzogTmd0U2hhcGVHZW9tZXRyeTtcblx0J25ndC1leHRydWRlLWdlb21ldHJ5JzogTmd0RXh0cnVkZUdlb21ldHJ5O1xuXHQnbmd0LWVkZ2VzLWdlb21ldHJ5JzogTmd0RWRnZXNHZW9tZXRyeTtcblx0J25ndC1jb25lLWdlb21ldHJ5JzogTmd0Q29uZUdlb21ldHJ5O1xuXHQnbmd0LWN5bGluZGVyLWdlb21ldHJ5JzogTmd0Q3lsaW5kZXJHZW9tZXRyeTtcblx0J25ndC1jaXJjbGUtZ2VvbWV0cnknOiBOZ3RDaXJjbGVHZW9tZXRyeTtcblx0J25ndC1ib3gtZ2VvbWV0cnknOiBOZ3RCb3hHZW9tZXRyeTtcblx0J25ndC1jYXBzdWxlLWdlb21ldHJ5JzogTmd0Q2Fwc3VsZUdlb21ldHJ5O1xuXG5cdC8vIG1hdGVyaWFsc1xuXHQnbmd0LXNoYWRvdy1tYXRlcmlhbCc6IE5ndFNoYWRvd01hdGVyaWFsO1xuXHQnbmd0LXNwcml0ZS1tYXRlcmlhbCc6IE5ndFNwcml0ZU1hdGVyaWFsO1xuXHQnbmd0LXJhdy1zaGFkZXItbWF0ZXJpYWwnOiBOZ3RSYXdTaGFkZXJNYXRlcmlhbDtcblx0J25ndC1zaGFkZXItbWF0ZXJpYWwnOiBOZ3RTaGFkZXJNYXRlcmlhbDtcblx0J25ndC1wb2ludHMtbWF0ZXJpYWwnOiBOZ3RQb2ludHNNYXRlcmlhbDtcblx0J25ndC1tZXNoLXBoeXNpY2FsLW1hdGVyaWFsJzogTmd0TWVzaFBoeXNpY2FsTWF0ZXJpYWw7XG5cdCduZ3QtbWVzaC1zdGFuZGFyZC1tYXRlcmlhbCc6IE5ndE1lc2hTdGFuZGFyZE1hdGVyaWFsO1xuXHQnbmd0LW1lc2gtcGhvbmctbWF0ZXJpYWwnOiBOZ3RNZXNoUGhvbmdNYXRlcmlhbDtcblx0J25ndC1tZXNoLXRvb24tbWF0ZXJpYWwnOiBOZ3RNZXNoVG9vbk1hdGVyaWFsO1xuXHQnbmd0LW1lc2gtbm9ybWFsLW1hdGVyaWFsJzogTmd0TWVzaE5vcm1hbE1hdGVyaWFsO1xuXHQnbmd0LW1lc2gtbGFtYmVydC1tYXRlcmlhbCc6IE5ndE1lc2hMYW1iZXJ0TWF0ZXJpYWw7XG5cdCduZ3QtbWVzaC1kZXB0aC1tYXRlcmlhbCc6IE5ndE1lc2hEZXB0aE1hdGVyaWFsO1xuXHQnbmd0LW1lc2gtZGlzdGFuY2UtbWF0ZXJpYWwnOiBOZ3RNZXNoRGlzdGFuY2VNYXRlcmlhbDtcblx0J25ndC1tZXNoLWJhc2ljLW1hdGVyaWFsJzogTmd0TWVzaEJhc2ljTWF0ZXJpYWw7XG5cdCduZ3QtbWVzaC1tYXRjYXAtbWF0ZXJpYWwnOiBOZ3RNZXNoTWF0Y2FwTWF0ZXJpYWw7XG5cdCduZ3QtbGluZS1kYXNoZWQtbWF0ZXJpYWwnOiBOZ3RMaW5lRGFzaGVkTWF0ZXJpYWw7XG5cdCduZ3QtbGluZS1iYXNpYy1tYXRlcmlhbCc6IE5ndExpbmVCYXNpY01hdGVyaWFsO1xuXG5cdC8vIHByaW1pdGl2ZVxuXHQnbmd0LXByaW1pdGl2ZSc6IE5ndFByaW1pdGl2ZTtcblxuXHQvLyByYXdWYWx1ZVxuXHQnbmd0LXZhbHVlJzogTmd0VmFsdWU7XG5cblx0Ly8gbGlnaHRzIGFuZCBvdGhlclxuXHQnbmd0LXNwb3QtbGlnaHQtc2hhZG93JzogTmd0U3BvdExpZ2h0U2hhZG93O1xuXHQnbmd0LXNwb3QtbGlnaHQnOiBOZ3RTcG90TGlnaHQ7XG5cdCduZ3QtcG9pbnQtbGlnaHQnOiBOZ3RQb2ludExpZ2h0O1xuXHQnbmd0LXJlY3QtYXJlYS1saWdodCc6IE5ndFJlY3RBcmVhTGlnaHQ7XG5cdCduZ3QtaGVtaXNwaGVyZS1saWdodCc6IE5ndEhlbWlzcGhlcmVMaWdodDtcblx0J25ndC1kaXJlY3Rpb25hbC1saWdodC1zaGFkb3cnOiBOZ3REaXJlY3Rpb25hbExpZ2h0U2hhZG93O1xuXHQnbmd0LWRpcmVjdGlvbmFsLWxpZ2h0JzogTmd0RGlyZWN0aW9uYWxMaWdodDtcblx0J25ndC1hbWJpZW50LWxpZ2h0JzogTmd0QW1iaWVudExpZ2h0O1xuXHQnbmd0LWxpZ2h0LXNoYWRvdyc6IE5ndExpZ2h0U2hhZG93O1xuXHQnbmd0LWxpZ2h0LXByb2JlJzogTmd0TGlnaHRQcm9iZTtcblxuXHQvLyBoZWxwZXJzXG5cdCduZ3Qtc3BvdC1saWdodC1oZWxwZXInOiBOZ3RTcG90TGlnaHRIZWxwZXI7XG5cdCduZ3Qtc2tlbGV0b24taGVscGVyJzogTmd0U2tlbGV0b25IZWxwZXI7XG5cdCduZ3QtcG9pbnQtbGlnaHQtaGVscGVyJzogTmd0UG9pbnRMaWdodEhlbHBlcjtcblx0J25ndC1oZW1pc3BoZXJlLWxpZ2h0LWhlbHBlcic6IE5ndEhlbWlzcGhlcmVMaWdodEhlbHBlcjtcblx0J25ndC1ncmlkLWhlbHBlcic6IE5ndEdyaWRIZWxwZXI7XG5cdCduZ3QtcG9sYXItZ3JpZC1oZWxwZXInOiBOZ3RQb2xhckdyaWRIZWxwZXI7XG5cdCduZ3QtZGlyZWN0aW9uYWwtbGlnaHQtaGVscGVyJzogTmd0RGlyZWN0aW9uYWxMaWdodEhlbHBlcjtcblx0J25ndC1jYW1lcmEtaGVscGVyJzogTmd0Q2FtZXJhSGVscGVyO1xuXHQnbmd0LWJveC1oZWxwZXInOiBOZ3RCb3hIZWxwZXI7XG5cdCduZ3QtYm94My1oZWxwZXInOiBOZ3RCb3gzSGVscGVyO1xuXHQnbmd0LXBsYW5lLWhlbHBlcic6IE5ndFBsYW5lSGVscGVyO1xuXHQnbmd0LWFycm93LWhlbHBlcic6IE5ndEFycm93SGVscGVyO1xuXHQnbmd0LWF4ZXMtaGVscGVyJzogTmd0QXhlc0hlbHBlcjtcblxuXHQvLyB0ZXh0dXJlc1xuXHQnbmd0LXRleHR1cmUnOiBOZ3RUZXh0dXJlO1xuXHQnbmd0LXZpZGVvLXRleHR1cmUnOiBOZ3RWaWRlb1RleHR1cmU7XG5cdCduZ3QtZGF0YS10ZXh0dXJlJzogTmd0RGF0YVRleHR1cmU7XG5cdCduZ3QtZGF0YTNELXRleHR1cmUnOiBOZ3REYXRhM0RUZXh0dXJlO1xuXHQnbmd0LWNvbXByZXNzZWQtdGV4dHVyZSc6IE5ndENvbXByZXNzZWRUZXh0dXJlO1xuXHQnbmd0LWN1YmUtdGV4dHVyZSc6IE5ndEN1YmVUZXh0dXJlO1xuXHQnbmd0LWNhbnZhcy10ZXh0dXJlJzogTmd0Q2FudmFzVGV4dHVyZTtcblx0J25ndC1kZXB0aC10ZXh0dXJlJzogTmd0RGVwdGhUZXh0dXJlO1xuXG5cdC8vIG1pc2Ncblx0J25ndC1yYXljYXN0ZXInOiBOZ3RSYXljYXN0ZXI7XG5cdCduZ3QtdmVjdG9yMic6IE5ndFZlY3RvcjJOb2RlO1xuXHQnbmd0LXZlY3RvcjMnOiBOZ3RWZWN0b3IzTm9kZTtcblx0J25ndC12ZWN0b3I0JzogTmd0VmVjdG9yNE5vZGU7XG5cdCduZ3QtZXVsZXInOiBOZ3RFdWxlck5vZGU7XG5cdCduZ3QtbWF0cml4Myc6IE5ndE1hdHJpeDNOb2RlO1xuXHQnbmd0LW1hdHJpeDQnOiBOZ3RNYXRyaXg0Tm9kZTtcblx0J25ndC1xdWF0ZXJuaW9uJzogTmd0UXVhdGVybmlvbk5vZGU7XG5cdCduZ3QtYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndEJ1ZmZlckF0dHJpYnV0ZTtcblx0J25ndC1mbG9hdDE2LWJ1ZmZlci1hdHRyaWJ1dGUnOiBOZ3RGbG9hdDE2QnVmZmVyQXR0cmlidXRlO1xuXHQnbmd0LWZsb2F0MzItYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndEZsb2F0MzJCdWZmZXJBdHRyaWJ1dGU7XG5cdCduZ3QtaW50OC1idWZmZXItYXR0cmlidXRlJzogTmd0SW50OEJ1ZmZlckF0dHJpYnV0ZTtcblx0J25ndC1pbnQxNi1idWZmZXItYXR0cmlidXRlJzogTmd0SW50MTZCdWZmZXJBdHRyaWJ1dGU7XG5cdCduZ3QtaW50MzItYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndEludDMyQnVmZmVyQXR0cmlidXRlO1xuXHQnbmd0LXVuaXQ4LWJ1ZmZlci1hdHRyaWJ1dGUnOiBOZ3RVaW50OEJ1ZmZlckF0dHJpYnV0ZTtcblx0J25ndC11bml0MTYtYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndFVpbnQxNkJ1ZmZlckF0dHJpYnV0ZTtcblx0J25ndC11bml0MzItYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndFVpbnQzMkJ1ZmZlckF0dHJpYnV0ZTtcblx0J25ndC1pbnN0YW5jZWQtYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndEluc3RhbmNlZEJ1ZmZlckF0dHJpYnV0ZTtcblx0J25ndC1jb2xvcic6IE5ndENvbG9yO1xuXHQnbmd0LWZvZyc6IE5ndEZvZztcblx0J25ndC1mb2ctZXhwMic6IE5ndEZvZ0V4cDI7XG5cdCduZ3Qtc2hhcGUnOiBOZ3RTaGFwZTtcbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuXHRpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIGV4dGVuZHMgVGhyZWVFbGVtZW50cyB7fVxuXHRpbnRlcmZhY2UgSFRNTEVsZW1lbnRFdmVudE1hcCBleHRlbmRzIE5ndE5vZGVFdmVudE1hcDxOZ3RJbnN0YW5jZU5vZGU+IHt9XG59XG4iXX0=
@@ -16,7 +16,7 @@ export function makeId(event) {
16
16
  export function makeDpr(dpr, window) {
17
17
  // Err on the side of progress by assuming 2x dpr if we can't detect it
18
18
  // This will happen in workers where window is defined but dpr isn't.
19
- const target = typeof window !== 'undefined' ? window.devicePixelRatio ?? 2 : 1;
19
+ const target = typeof window !== 'undefined' ? (window.devicePixelRatio ?? 2) : 1;
20
20
  return Array.isArray(dpr) ? Math.min(Math.max(dpr[0], target), dpr[1]) : dpr;
21
21
  }
22
22
  export function makeRendererInstance(glOptions, canvas) {
@@ -49,4 +49,4 @@ export function makeObjectGraph(object) {
49
49
  }
50
50
  return data;
51
51
  }
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL21ha2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFZLFNBQVMsRUFBa0Isa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBS2xILE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUIsTUFBTSxPQUFPLEdBQTBDLEVBQUUsQ0FBQztBQUMxRCxNQUFNLFVBQVUsTUFBTSxDQUFDLEtBQXVCO0lBQzdDLElBQUksS0FBSyxFQUFFLENBQUM7UUFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7SUFDeEYsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN2QywwQkFBMEI7SUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDdEIsT0FBTyxLQUFLLENBQUM7SUFDZCxDQUFDO0lBQ0QsT0FBTyxNQUFNLEVBQUUsQ0FBQztBQUNqQixDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBQyxHQUFXLEVBQUUsTUFBZTtJQUNuRCx1RUFBdUU7SUFDdkUscUVBQXFFO0lBQ3JFLE1BQU0sTUFBTSxHQUFHLE9BQU8sTUFBTSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGdCQUFnQixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0FBQzlFLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQ25DLFNBQXVCLEVBQ3ZCLE1BQWU7SUFFZixNQUFNLGNBQWMsR0FBRyxDQUFDLE9BQU8sU0FBUyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQWtCLENBQUM7SUFDMUcsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztRQUFFLE9BQU8sY0FBYyxDQUFDO0lBQ3ZELE9BQU8sSUFBSSxhQUFhLENBQUM7UUFDeEIsZUFBZSxFQUFFLGtCQUFrQjtRQUNuQyxNQUFNLEVBQUUsTUFBTTtRQUNkLFNBQVMsRUFBRSxJQUFJO1FBQ2YsS0FBSyxFQUFFLElBQUk7UUFDWCxHQUFHLFNBQVM7S0FDWixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLGNBQXVCLEVBQUUsSUFBYTtJQUN4RSxJQUFJLGNBQWM7UUFBRSxPQUFPLElBQUksa0JBQWtCLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6RSxPQUFPLElBQUksaUJBQWlCLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDdkUsQ0FBQztBQVFELE1BQU0sVUFBVSxlQUFlLENBQUMsTUFBZ0I7SUFDL0MsTUFBTSxJQUFJLEdBQWlCLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFFeEQsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNaLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFlLEVBQUUsRUFBRTtZQUNuQyxJQUFJLEtBQUssQ0FBQyxJQUFJO2dCQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUMvQyxJQUFJLFVBQVUsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFHLEtBQWMsQ0FBQyxRQUFxQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3pGLElBQUksQ0FBQyxTQUFTLENBQUcsS0FBYyxDQUFDLFFBQXFCLENBQUMsSUFBSSxDQUFDLEdBQUksS0FBYyxDQUFDLFFBQW9CLENBQUM7WUFDcEcsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hdGVyaWFsLCBNYXRoVXRpbHMsIE1lc2gsIE9iamVjdDNELCBPcnRob2dyYXBoaWNDYW1lcmEsIFBlcnNwZWN0aXZlQ2FtZXJhLCBXZWJHTFJlbmRlcmVyIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0R0xPcHRpb25zIH0gZnJvbSAnLi4vY2FudmFzJztcbmltcG9ydCB7IE5ndEludGVyc2VjdGlvbiB9IGZyb20gJy4uL2V2ZW50cyc7XG5pbXBvcnQgeyBOZ3RDYW52YXNFbGVtZW50IH0gZnJvbSAnLi4vcm9vdHMnO1xuaW1wb3J0IHsgTmd0RHByLCBOZ3RTaXplIH0gZnJvbSAnLi4vc3RvcmUnO1xuaW1wb3J0IHsgaXMgfSBmcm9tICcuL2lzJztcblxuY29uc3QgaWRDYWNoZTogeyBbaWQ6IHN0cmluZ106IGJvb2xlYW4gfCB1bmRlZmluZWQgfSA9IHt9O1xuZXhwb3J0IGZ1bmN0aW9uIG1ha2VJZChldmVudD86IE5ndEludGVyc2VjdGlvbik6IHN0cmluZyB7XG5cdGlmIChldmVudCkge1xuXHRcdHJldHVybiAoZXZlbnQuZXZlbnRPYmplY3QgfHwgZXZlbnQub2JqZWN0KS51dWlkICsgJy8nICsgZXZlbnQuaW5kZXggKyBldmVudC5pbnN0YW5jZUlkO1xuXHR9XG5cblx0Y29uc3QgbmV3SWQgPSBNYXRoVXRpbHMuZ2VuZXJhdGVVVUlEKCk7XG5cdC8vIGVuc3VyZSBub3QgYWxyZWFkeSB1c2VkXG5cdGlmICghaWRDYWNoZVtuZXdJZF0pIHtcblx0XHRpZENhY2hlW25ld0lkXSA9IHRydWU7XG5cdFx0cmV0dXJuIG5ld0lkO1xuXHR9XG5cdHJldHVybiBtYWtlSWQoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VEcHIoZHByOiBOZ3REcHIsIHdpbmRvdz86IFdpbmRvdykge1xuXHQvLyBFcnIgb24gdGhlIHNpZGUgb2YgcHJvZ3Jlc3MgYnkgYXNzdW1pbmcgMnggZHByIGlmIHdlIGNhbid0IGRldGVjdCBpdFxuXHQvLyBUaGlzIHdpbGwgaGFwcGVuIGluIHdvcmtlcnMgd2hlcmUgd2luZG93IGlzIGRlZmluZWQgYnV0IGRwciBpc24ndC5cblx0Y29uc3QgdGFyZ2V0ID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyA/PyAyIDogMTtcblx0cmV0dXJuIEFycmF5LmlzQXJyYXkoZHByKSA/IE1hdGgubWluKE1hdGgubWF4KGRwclswXSwgdGFyZ2V0KSwgZHByWzFdKSA6IGRwcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VSZW5kZXJlckluc3RhbmNlPFRDYW52YXMgZXh0ZW5kcyBOZ3RDYW52YXNFbGVtZW50Pihcblx0Z2xPcHRpb25zOiBOZ3RHTE9wdGlvbnMsXG5cdGNhbnZhczogVENhbnZhcyxcbik6IFdlYkdMUmVuZGVyZXIge1xuXHRjb25zdCBjdXN0b21SZW5kZXJlciA9ICh0eXBlb2YgZ2xPcHRpb25zID09PSAnZnVuY3Rpb24nID8gZ2xPcHRpb25zKGNhbnZhcykgOiBnbE9wdGlvbnMpIGFzIFdlYkdMUmVuZGVyZXI7XG5cdGlmIChpcy5yZW5kZXJlcihjdXN0b21SZW5kZXJlcikpIHJldHVybiBjdXN0b21SZW5kZXJlcjtcblx0cmV0dXJuIG5ldyBXZWJHTFJlbmRlcmVyKHtcblx0XHRwb3dlclByZWZlcmVuY2U6ICdoaWdoLXBlcmZvcm1hbmNlJyxcblx0XHRjYW52YXM6IGNhbnZhcyxcblx0XHRhbnRpYWxpYXM6IHRydWUsXG5cdFx0YWxwaGE6IHRydWUsXG5cdFx0Li4uZ2xPcHRpb25zLFxuXHR9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VDYW1lcmFJbnN0YW5jZShpc09ydGhvZ3JhcGhpYzogYm9vbGVhbiwgc2l6ZTogTmd0U2l6ZSkge1xuXHRpZiAoaXNPcnRob2dyYXBoaWMpIHJldHVybiBuZXcgT3J0aG9ncmFwaGljQ2FtZXJhKDAsIDAsIDAsIDAsIDAuMSwgMTAwMCk7XG5cdHJldHVybiBuZXcgUGVyc3BlY3RpdmVDYW1lcmEoNzUsIHNpemUud2lkdGggLyBzaXplLmhlaWdodCwgMC4xLCAxMDAwKTtcbn1cblxuZXhwb3J0IHR5cGUgTmd0T2JqZWN0TWFwID0ge1xuXHRub2RlczogeyBbbmFtZTogc3RyaW5nXTogT2JqZWN0M0QgfTtcblx0bWF0ZXJpYWxzOiB7IFtuYW1lOiBzdHJpbmddOiBNYXRlcmlhbCB9O1xuXHRba2V5OiBzdHJpbmddOiBhbnk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gbWFrZU9iamVjdEdyYXBoKG9iamVjdDogT2JqZWN0M0QpOiBOZ3RPYmplY3RNYXAge1xuXHRjb25zdCBkYXRhOiBOZ3RPYmplY3RNYXAgPSB7IG5vZGVzOiB7fSwgbWF0ZXJpYWxzOiB7fSB9O1xuXG5cdGlmIChvYmplY3QpIHtcblx0XHRvYmplY3QudHJhdmVyc2UoKGNoaWxkOiBPYmplY3QzRCkgPT4ge1xuXHRcdFx0aWYgKGNoaWxkLm5hbWUpIGRhdGEubm9kZXNbY2hpbGQubmFtZV0gPSBjaGlsZDtcblx0XHRcdGlmICgnbWF0ZXJpYWwnIGluIGNoaWxkICYmICFkYXRhLm1hdGVyaWFsc1soKGNoaWxkIGFzIE1lc2gpLm1hdGVyaWFsIGFzIE1hdGVyaWFsKS5uYW1lXSkge1xuXHRcdFx0XHRkYXRhLm1hdGVyaWFsc1soKGNoaWxkIGFzIE1lc2gpLm1hdGVyaWFsIGFzIE1hdGVyaWFsKS5uYW1lXSA9IChjaGlsZCBhcyBNZXNoKS5tYXRlcmlhbCBhcyBNYXRlcmlhbDtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXHRyZXR1cm4gZGF0YTtcbn1cbiJdfQ==
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL21ha2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFZLFNBQVMsRUFBa0Isa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBS2xILE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUIsTUFBTSxPQUFPLEdBQTBDLEVBQUUsQ0FBQztBQUMxRCxNQUFNLFVBQVUsTUFBTSxDQUFDLEtBQXVCO0lBQzdDLElBQUksS0FBSyxFQUFFLENBQUM7UUFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7SUFDeEYsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN2QywwQkFBMEI7SUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDdEIsT0FBTyxLQUFLLENBQUM7SUFDZCxDQUFDO0lBQ0QsT0FBTyxNQUFNLEVBQUUsQ0FBQztBQUNqQixDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBQyxHQUFXLEVBQUUsTUFBZTtJQUNuRCx1RUFBdUU7SUFDdkUscUVBQXFFO0lBQ3JFLE1BQU0sTUFBTSxHQUFHLE9BQU8sTUFBTSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztBQUM5RSxDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUNuQyxTQUF1QixFQUN2QixNQUFlO0lBRWYsTUFBTSxjQUFjLEdBQUcsQ0FBQyxPQUFPLFNBQVMsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFrQixDQUFDO0lBQzFHLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUM7UUFBRSxPQUFPLGNBQWMsQ0FBQztJQUN2RCxPQUFPLElBQUksYUFBYSxDQUFDO1FBQ3hCLGVBQWUsRUFBRSxrQkFBa0I7UUFDbkMsTUFBTSxFQUFFLE1BQU07UUFDZCxTQUFTLEVBQUUsSUFBSTtRQUNmLEtBQUssRUFBRSxJQUFJO1FBQ1gsR0FBRyxTQUFTO0tBQ1osQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxjQUF1QixFQUFFLElBQWE7SUFDeEUsSUFBSSxjQUFjO1FBQUUsT0FBTyxJQUFJLGtCQUFrQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDekUsT0FBTyxJQUFJLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3ZFLENBQUM7QUFRRCxNQUFNLFVBQVUsZUFBZSxDQUFDLE1BQWdCO0lBQy9DLE1BQU0sSUFBSSxHQUFpQixFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBRXhELElBQUksTUFBTSxFQUFFLENBQUM7UUFDWixNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBZSxFQUFFLEVBQUU7WUFDbkMsSUFBSSxLQUFLLENBQUMsSUFBSTtnQkFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDL0MsSUFBSSxVQUFVLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBRyxLQUFjLENBQUMsUUFBcUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUN6RixJQUFJLENBQUMsU0FBUyxDQUFHLEtBQWMsQ0FBQyxRQUFxQixDQUFDLElBQUksQ0FBQyxHQUFJLEtBQWMsQ0FBQyxRQUFvQixDQUFDO1lBQ3BHLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYXRlcmlhbCwgTWF0aFV0aWxzLCBNZXNoLCBPYmplY3QzRCwgT3J0aG9ncmFwaGljQ2FtZXJhLCBQZXJzcGVjdGl2ZUNhbWVyYSwgV2ViR0xSZW5kZXJlciB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE5ndEdMT3B0aW9ucyB9IGZyb20gJy4uL2NhbnZhcyc7XG5pbXBvcnQgeyBOZ3RJbnRlcnNlY3Rpb24gfSBmcm9tICcuLi9ldmVudHMnO1xuaW1wb3J0IHsgTmd0Q2FudmFzRWxlbWVudCB9IGZyb20gJy4uL3Jvb3RzJztcbmltcG9ydCB7IE5ndERwciwgTmd0U2l6ZSB9IGZyb20gJy4uL3N0b3JlJztcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi9pcyc7XG5cbmNvbnN0IGlkQ2FjaGU6IHsgW2lkOiBzdHJpbmddOiBib29sZWFuIHwgdW5kZWZpbmVkIH0gPSB7fTtcbmV4cG9ydCBmdW5jdGlvbiBtYWtlSWQoZXZlbnQ/OiBOZ3RJbnRlcnNlY3Rpb24pOiBzdHJpbmcge1xuXHRpZiAoZXZlbnQpIHtcblx0XHRyZXR1cm4gKGV2ZW50LmV2ZW50T2JqZWN0IHx8IGV2ZW50Lm9iamVjdCkudXVpZCArICcvJyArIGV2ZW50LmluZGV4ICsgZXZlbnQuaW5zdGFuY2VJZDtcblx0fVxuXG5cdGNvbnN0IG5ld0lkID0gTWF0aFV0aWxzLmdlbmVyYXRlVVVJRCgpO1xuXHQvLyBlbnN1cmUgbm90IGFscmVhZHkgdXNlZFxuXHRpZiAoIWlkQ2FjaGVbbmV3SWRdKSB7XG5cdFx0aWRDYWNoZVtuZXdJZF0gPSB0cnVlO1xuXHRcdHJldHVybiBuZXdJZDtcblx0fVxuXHRyZXR1cm4gbWFrZUlkKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYWtlRHByKGRwcjogTmd0RHByLCB3aW5kb3c/OiBXaW5kb3cpIHtcblx0Ly8gRXJyIG9uIHRoZSBzaWRlIG9mIHByb2dyZXNzIGJ5IGFzc3VtaW5nIDJ4IGRwciBpZiB3ZSBjYW4ndCBkZXRlY3QgaXRcblx0Ly8gVGhpcyB3aWxsIGhhcHBlbiBpbiB3b3JrZXJzIHdoZXJlIHdpbmRvdyBpcyBkZWZpbmVkIGJ1dCBkcHIgaXNuJ3QuXG5cdGNvbnN0IHRhcmdldCA9IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gKHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvID8/IDIpIDogMTtcblx0cmV0dXJuIEFycmF5LmlzQXJyYXkoZHByKSA/IE1hdGgubWluKE1hdGgubWF4KGRwclswXSwgdGFyZ2V0KSwgZHByWzFdKSA6IGRwcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VSZW5kZXJlckluc3RhbmNlPFRDYW52YXMgZXh0ZW5kcyBOZ3RDYW52YXNFbGVtZW50Pihcblx0Z2xPcHRpb25zOiBOZ3RHTE9wdGlvbnMsXG5cdGNhbnZhczogVENhbnZhcyxcbik6IFdlYkdMUmVuZGVyZXIge1xuXHRjb25zdCBjdXN0b21SZW5kZXJlciA9ICh0eXBlb2YgZ2xPcHRpb25zID09PSAnZnVuY3Rpb24nID8gZ2xPcHRpb25zKGNhbnZhcykgOiBnbE9wdGlvbnMpIGFzIFdlYkdMUmVuZGVyZXI7XG5cdGlmIChpcy5yZW5kZXJlcihjdXN0b21SZW5kZXJlcikpIHJldHVybiBjdXN0b21SZW5kZXJlcjtcblx0cmV0dXJuIG5ldyBXZWJHTFJlbmRlcmVyKHtcblx0XHRwb3dlclByZWZlcmVuY2U6ICdoaWdoLXBlcmZvcm1hbmNlJyxcblx0XHRjYW52YXM6IGNhbnZhcyxcblx0XHRhbnRpYWxpYXM6IHRydWUsXG5cdFx0YWxwaGE6IHRydWUsXG5cdFx0Li4uZ2xPcHRpb25zLFxuXHR9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VDYW1lcmFJbnN0YW5jZShpc09ydGhvZ3JhcGhpYzogYm9vbGVhbiwgc2l6ZTogTmd0U2l6ZSkge1xuXHRpZiAoaXNPcnRob2dyYXBoaWMpIHJldHVybiBuZXcgT3J0aG9ncmFwaGljQ2FtZXJhKDAsIDAsIDAsIDAsIDAuMSwgMTAwMCk7XG5cdHJldHVybiBuZXcgUGVyc3BlY3RpdmVDYW1lcmEoNzUsIHNpemUud2lkdGggLyBzaXplLmhlaWdodCwgMC4xLCAxMDAwKTtcbn1cblxuZXhwb3J0IHR5cGUgTmd0T2JqZWN0TWFwID0ge1xuXHRub2RlczogUmVjb3JkPHN0cmluZywgT2JqZWN0M0Q8YW55Pj47XG5cdG1hdGVyaWFsczogUmVjb3JkPHN0cmluZywgTWF0ZXJpYWw+O1xuXHRba2V5OiBzdHJpbmddOiBhbnk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gbWFrZU9iamVjdEdyYXBoKG9iamVjdDogT2JqZWN0M0QpOiBOZ3RPYmplY3RNYXAge1xuXHRjb25zdCBkYXRhOiBOZ3RPYmplY3RNYXAgPSB7IG5vZGVzOiB7fSwgbWF0ZXJpYWxzOiB7fSB9O1xuXG5cdGlmIChvYmplY3QpIHtcblx0XHRvYmplY3QudHJhdmVyc2UoKGNoaWxkOiBPYmplY3QzRCkgPT4ge1xuXHRcdFx0aWYgKGNoaWxkLm5hbWUpIGRhdGEubm9kZXNbY2hpbGQubmFtZV0gPSBjaGlsZDtcblx0XHRcdGlmICgnbWF0ZXJpYWwnIGluIGNoaWxkICYmICFkYXRhLm1hdGVyaWFsc1soKGNoaWxkIGFzIE1lc2gpLm1hdGVyaWFsIGFzIE1hdGVyaWFsKS5uYW1lXSkge1xuXHRcdFx0XHRkYXRhLm1hdGVyaWFsc1soKGNoaWxkIGFzIE1lc2gpLm1hdGVyaWFsIGFzIE1hdGVyaWFsKS5uYW1lXSA9IChjaGlsZCBhcyBNZXNoKS5tYXRlcmlhbCBhcyBNYXRlcmlhbDtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXHRyZXR1cm4gZGF0YTtcbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10aHJlZS10ZXN0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3Rlc3Rpbmcvc3JjL2FuZ3VsYXItdGhyZWUtdGVzdGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './lib/test-bed';
2
+ export * from './lib/test-canvas';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvdGVzdGluZy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvdGVzdC1iZWQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVzdC1jYW52YXMnO1xuIl19
@@ -0,0 +1,92 @@
1
+ import { CUSTOM_ELEMENTS_SCHEMA, ENVIRONMENT_INITIALIZER } from '@angular/core';
2
+ import { TestBed } from '@angular/core/testing';
3
+ import { getLocalState, injectCanvasRootInitializer, injectStore, NGT_STORE, provideStore, } from 'angular-three';
4
+ import { NgtTestCanvas } from './test-canvas';
5
+ import { createMockCanvas } from './utils/mock-canvas';
6
+ export class NgtTestBed {
7
+ static create(sceneGraph, { mockCanvasOptions = {}, canvasConfiguration = {}, errorOnUnknownElements, providers, declarations, imports, teardown, deferBlockBehavior, } = {}) {
8
+ const mockedCanvas = createMockCanvas(mockCanvasOptions);
9
+ const fixture = TestBed.configureTestingModule({
10
+ providers: [
11
+ provideStore(),
12
+ {
13
+ provide: ENVIRONMENT_INITIALIZER,
14
+ useFactory: () => {
15
+ const initRoot = injectCanvasRootInitializer();
16
+ const store = injectStore();
17
+ return () => {
18
+ const configurator = initRoot(mockedCanvas);
19
+ configurator.configure({
20
+ frameloop: 'never',
21
+ size: {
22
+ width: mockCanvasOptions.width ?? 1280,
23
+ height: mockCanvasOptions.height ?? 800,
24
+ top: 0,
25
+ left: 0,
26
+ },
27
+ ...canvasConfiguration,
28
+ events: undefined,
29
+ });
30
+ store.update((state) => ({ internal: { ...state.internal, active: true } }));
31
+ };
32
+ },
33
+ multi: true,
34
+ },
35
+ ...(providers ?? []),
36
+ ],
37
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
38
+ errorOnUnknownElements: errorOnUnknownElements ?? false,
39
+ declarations,
40
+ imports,
41
+ teardown,
42
+ deferBlockBehavior,
43
+ }).createComponent(NgtTestCanvas);
44
+ fixture.componentRef.setInput('sceneGraph', sceneGraph);
45
+ fixture.detectChanges();
46
+ const store = TestBed.inject(NGT_STORE);
47
+ TestBed.flushEffects();
48
+ return {
49
+ store,
50
+ fixture,
51
+ scene: store.snapshot.scene,
52
+ sceneInstanceNode: getLocalState(store.snapshot.scene),
53
+ canvas: mockedCanvas,
54
+ destroy: fixture.componentInstance.destroy.bind(fixture.componentInstance),
55
+ fireEvent: this.createEventFirer(store, fixture),
56
+ };
57
+ }
58
+ static createEventFirer(store, fixture) {
59
+ let autoDetectChanges = false;
60
+ async function fireEvent(el, eventName, eventData = {}) {
61
+ const localState = getLocalState(el);
62
+ if (!localState) {
63
+ console.warn(`[NGT Test] ${el} has no local state`);
64
+ return;
65
+ }
66
+ const handler = localState.handlers[eventName];
67
+ if (!handler) {
68
+ console.warn(`[NGT Test] ${el} has no ${eventName} handler`);
69
+ return;
70
+ }
71
+ const raycastEvent = {
72
+ camera: store.snapshot.camera,
73
+ stopPropagation: () => { },
74
+ target: el,
75
+ currentTarget: el,
76
+ sourceEvent: eventData,
77
+ object: el,
78
+ ...eventData,
79
+ };
80
+ const result = await handler(raycastEvent);
81
+ if (autoDetectChanges) {
82
+ fixture.detectChanges();
83
+ }
84
+ return result;
85
+ }
86
+ fireEvent.setAutoDetectChanges = (auto) => {
87
+ autoDetectChanges = auto;
88
+ };
89
+ return fireEvent;
90
+ }
91
+ }
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1iZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvdGVzdGluZy9zcmMvbGliL3Rlc3QtYmVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQW9CLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFDTixhQUFhLEVBQ2IsMkJBQTJCLEVBQzNCLFdBQVcsRUFDWCxTQUFTLEVBT1QsWUFBWSxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdkQsTUFBTSxPQUFPLFVBQVU7SUFDdEIsTUFBTSxDQUFDLE1BQU0sQ0FDWixVQUFhLEVBQ2IsRUFDQyxpQkFBaUIsR0FBRyxFQUFFLEVBQ3RCLG1CQUFtQixHQUFHLEVBQUUsRUFDeEIsc0JBQXNCLEVBQ3RCLFNBQVMsRUFDVCxZQUFZLEVBQ1osT0FBTyxFQUNQLFFBQVEsRUFDUixrQkFBa0IsTUFJcUQsRUFBRTtRQUUxRSxNQUFNLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRXpELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQztZQUM5QyxTQUFTLEVBQUU7Z0JBQ1YsWUFBWSxFQUFFO2dCQUNkO29CQUNDLE9BQU8sRUFBRSx1QkFBdUI7b0JBQ2hDLFVBQVUsRUFBRSxHQUFHLEVBQUU7d0JBQ2hCLE1BQU0sUUFBUSxHQUFHLDJCQUEyQixFQUFFLENBQUM7d0JBQy9DLE1BQU0sS0FBSyxHQUFHLFdBQVcsRUFBRSxDQUFDO3dCQUU1QixPQUFPLEdBQUcsRUFBRTs0QkFDWCxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMs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LEdBQUcsU0FBUzthQUNaLENBQUM7WUFFRixNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxZQUFtQixDQUFDLENBQUM7WUFFbEQsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO2dCQUN2QixPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDekIsQ0FBQztZQUVELE9BQU8sTUFBTSxDQUFDO1FBQ2YsQ0FBQztRQUVELFNBQVMsQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLElBQWEsRUFBRSxFQUFFO1lBQ2xELGlCQUFpQixHQUFHLElBQUksQ0FBQztRQUMxQixDQUFDLENBQUM7UUFFRixPQUFPLFNBQVMsQ0FBQztJQUNsQixDQUFDO0NBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBFTlZJUk9OTUVOVF9JTklUSUFMSVpFUiwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50Rml4dHVyZSwgVGVzdEJlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XG5pbXBvcnQge1xuXHRnZXRMb2NhbFN0YXRlLFxuXHRpbmplY3RDYW52YXNSb290SW5pdGlhbGl6ZXIsXG5cdGluamVjdFN0b3JlLFxuXHROR1RfU1RPUkUsXG5cdE5ndEFueVJlY29yZCxcblx0Tmd0Q2FudmFzT3B0aW9ucyxcblx0Tmd0RXZlbnRIYW5kbGVycyxcblx0Tmd0SW5zdGFuY2VOb2RlLFxuXHROZ3RTaWduYWxTdG9yZSxcblx0Tmd0U3RhdGUsXG5cdHByb3ZpZGVTdG9yZSxcbn0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBOZ3RUZXN0Q2FudmFzIH0gZnJvbSAnLi90ZXN0LWNhbnZhcyc7XG5pbXBvcnQgeyBjcmVhdGVNb2NrQ2FudmFzIH0gZnJvbSAnLi91dGlscy9tb2NrLWNhbnZhcyc7XG5cbmV4cG9ydCBjbGFzcyBOZ3RUZXN0QmVkIHtcblx0c3RhdGljIGNyZWF0ZTxUIGV4dGVuZHMgVHlwZTxhbnk+Pihcblx0XHRzY2VuZUdyYXBoOiBULFxuXHRcdHtcblx0XHRcdG1vY2tDYW52YXNPcHRpb25zID0ge30sXG5cdFx0XHRjYW52YXNDb25maWd1cmF0aW9uID0ge30sXG5cdFx0XHRlcnJvck9uVW5rbm93bkVsZW1lbnRzLFxuXHRcdFx0cHJvdmlkZXJzLFxuXHRcdFx0ZGVjbGFyYXRpb25zLFxuXHRcdFx0aW1wb3J0cyxcblx0XHRcdHRlYXJkb3duLFxuXHRcdFx0ZGVmZXJCbG9ja0JlaGF2aW9yLFxuXHRcdH06IHtcblx0XHRcdG1vY2tDYW52YXNPcHRpb25zPzogeyB3aWR0aD86IG51bWJlcjsgaGVpZ2h0PzogbnVtYmVyOyBiZWZvcmVSZXR1cm4/OiAoY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCkgPT4gdm9pZCB9O1xuXHRcdFx0Y2FudmFzQ29uZmlndXJhdGlvbj86IFBhcnRpYWw8T21pdDxOZ3RDYW52YXNPcHRpb25zLCAnZnJhbWVsb29wJyB8ICdzaXplJyB8ICdldmVudHMnPj47XG5cdFx0fSAmIE9taXQ8UGFyYW1ldGVyczxUZXN0QmVkWydjb25maWd1cmVUZXN0aW5nTW9kdWxlJ10+WzBdLCAnc2NoZW1hcyc+ID0ge30sXG5cdCkge1xuXHRcdGNvbnN0IG1vY2tlZENhbnZhcyA9IGNyZWF0ZU1vY2tDYW52YXMobW9ja0NhbnZhc09wdGlvbnMpO1xuXG5cdFx0Y29uc3QgZml4dHVyZSA9IFRlc3RCZWQuY29uZmlndXJlVGVzdGluZ01vZHVsZSh7XG5cdFx0XHRwcm92aWRlcnM6IFtcblx0XHRcdFx0cHJvdmlkZVN0b3JlKCksXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRwcm92aWRlOiBFTlZJUk9OTUVOVF9JTklUSUFMSVpFUixcblx0XHRcdFx0XHR1c2VGYWN0b3J5OiAoKSA9PiB7XG5cdFx0XHRcdFx0XHRjb25zdCBpbml0Um9vdCA9IGluamVjdENhbnZhc1Jvb3RJbml0aWFsaXplcigpO1xuXHRcdFx0XHRcdFx0Y29uc3Qgc3RvcmUgPSBpbmplY3RTdG9yZSgpO1xuXG5cdFx0XHRcdFx0XHRyZXR1cm4gKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRjb25zdCBjb25maWd1cmF0b3IgPSBpbml0Um9vdChtb2NrZWRDYW52YXMpO1xuXHRcdFx0XHRcdFx0XHRjb25maWd1cmF0b3IuY29uZmlndXJlKHtcblx0XHRcdFx0XHRcdFx0XHRmcmFtZWxvb3A6ICduZXZlcicsXG5cdFx0XHRcdFx0XHRcdFx0c2l6ZToge1xuXHRcdFx0XHRcdFx0XHRcdFx0d2lkdGg6IG1vY2tDYW52YXNPcHRpb25zLndpZHRoID8/IDEyODAsXG5cdFx0XHRcdFx0XHRcdFx0XHRoZWlnaHQ6IG1vY2tDYW52YXNPcHRpb25zLmhlaWdodCA/PyA4MDAsXG5cdFx0XHRcdFx0XHRcdFx0XHR0b3A6IDAsXG5cdFx0XHRcdFx0XHRcdFx0XHRsZWZ0OiAwLFxuXHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdFx0Li4uY2FudmFzQ29uZmlndXJhdGlvbixcblx0XHRcdFx0XHRcdFx0XHRldmVudHM6IHVuZGVmaW5lZCxcblx0XHRcdFx0XHRcdFx0fSk7XG5cblx0XHRcdFx0XHRcdFx0c3RvcmUudXBkYXRlKChzdGF0ZSkgPT4gKHsgaW50ZXJuYWw6IHsgLi4uc3RhdGUuaW50ZXJuYWwsIGFjdGl2ZTogdHJ1ZSB9IH0pKTtcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRtdWx0aTogdHJ1ZSxcblx0XHRcdFx0fSxcblx0XHRcdFx0Li4uKHByb3ZpZGVycyA/PyBbXSksXG5cdFx0XHRdLFxuXHRcdFx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRcdFx0ZXJyb3JPblVua25vd25FbGVtZW50czogZXJyb3JPblVua25vd25FbGVtZW50cyA/PyBmYWxzZSxcblx0XHRcdGRlY2xhcmF0aW9ucyxcblx0XHRcdGltcG9ydHMsXG5cdFx0XHR0ZWFyZG93bixcblx0XHRcdGRlZmVyQmxvY2tCZWhhdmlvcixcblx0XHR9KS5jcmVhdGVDb21wb25lbnQoTmd0VGVzdENhbnZhcyk7XG5cblx0XHRmaXh0dXJlLmNvbXBvbmVudFJlZi5zZXRJbnB1dCgnc2NlbmVHcmFwaCcsIHNjZW5lR3JhcGgpO1xuXHRcdGZpeHR1cmUuZGV0ZWN0Q2hhbmdlcygpO1xuXG5cdFx0Y29uc3Qgc3RvcmUgPSBUZXN0QmVkLmluamVjdChOR1RfU1RPUkUpO1xuXG5cdFx0VGVzdEJlZC5mbHVzaEVmZmVjdHMoKTtcblxuXHRcdHJldHVybiB7XG5cdFx0XHRzdG9yZSxcblx0XHRcdGZpeHR1cmUsXG5cdFx0XHRzY2VuZTogc3RvcmUuc25hcHNob3Quc2NlbmUsXG5cdFx0XHRzY2VuZUluc3RhbmNlTm9kZTogZ2V0TG9jYWxTdGF0ZShzdG9yZS5zbmFwc2hvdC5zY2VuZSkhLFxuXHRcdFx0Y2FudmFzOiBtb2NrZWRDYW52YXMsXG5cdFx0XHRkZXN0cm95OiBmaXh0dXJlLmNvbXBvbmVudEluc3RhbmNlLmRlc3Ryb3kuYmluZChmaXh0dXJlLmNvbXBvbmVudEluc3RhbmNlKSxcblx0XHRcdGZpcmVFdmVudDogdGhpcy5jcmVhdGVFdmVudEZpcmVyKHN0b3JlLCBmaXh0dXJlKSxcblx0XHR9O1xuXHR9XG5cblx0c3RhdGljIGNyZWF0ZUV2ZW50RmlyZXIoc3RvcmU6IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPiwgZml4dHVyZTogQ29tcG9uZW50Rml4dHVyZTxOZ3RUZXN0Q2FudmFzPikge1xuXHRcdGxldCBhdXRvRGV0ZWN0Q2hhbmdlcyA9IGZhbHNlO1xuXG5cdFx0YXN5bmMgZnVuY3Rpb24gZmlyZUV2ZW50KGVsOiBOZ3RJbnN0YW5jZU5vZGUsIGV2ZW50TmFtZToga2V5b2YgTmd0RXZlbnRIYW5kbGVycywgZXZlbnREYXRhOiBOZ3RBbnlSZWNvcmQgPSB7fSkge1xuXHRcdFx0Y29uc3QgbG9jYWxTdGF0ZSA9IGdldExvY2FsU3RhdGUoZWwpO1xuXHRcdFx0aWYgKCFsb2NhbFN0YXRlKSB7XG5cdFx0XHRcdGNvbnNvbGUud2FybihgW05HVCBUZXN0XSAke2VsfSBoYXMgbm8gbG9jYWwgc3RhdGVgKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBoYW5kbGVyID0gbG9jYWxTdGF0ZS5oYW5kbGVyc1tldmVudE5hbWVdO1xuXHRcdFx0aWYgKCFoYW5kbGVyKSB7XG5cdFx0XHRcdGNvbnNvbGUud2FybihgW05HVCBUZXN0XSAke2VsfSBoYXMgbm8gJHtldmVudE5hbWV9IGhhbmRsZXJgKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCByYXljYXN0RXZlbnQgPSB7XG5cdFx0XHRcdGNhbWVyYTogc3RvcmUuc25hcHNob3QuY2FtZXJhLFxuXHRcdFx0XHRzdG9wUHJvcGFnYXRpb246ICgpID0+IHt9LFxuXHRcdFx0XHR0YXJnZXQ6IGVsLFxuXHRcdFx0XHRjdXJyZW50VGFyZ2V0OiBlbCxcblx0XHRcdFx0c291cmNlRXZlbnQ6IGV2ZW50RGF0YSxcblx0XHRcdFx0b2JqZWN0OiBlbCxcblx0XHRcdFx0Li4uZXZlbnREYXRhLFxuXHRcdFx0fTtcblxuXHRcdFx0Y29uc3QgcmVzdWx0ID0gYXdhaXQgaGFuZGxlcihyYXljYXN0RXZlbnQgYXMgYW55KTtcblxuXHRcdFx0aWYgKGF1dG9EZXRlY3RDaGFuZ2VzKSB7XG5cdFx0XHRcdGZpeHR1cmUuZGV0ZWN0Q2hhbmdlcygpO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdH1cblxuXHRcdGZpcmVFdmVudC5zZXRBdXRvRGV0ZWN0Q2hhbmdlcyA9IChhdXRvOiBib29sZWFuKSA9PiB7XG5cdFx0XHRhdXRvRGV0ZWN0Q2hhbmdlcyA9IGF1dG87XG5cdFx0fTtcblxuXHRcdHJldHVybiBmaXJlRXZlbnQ7XG5cdH1cbn1cbiJdfQ==
@@ -0,0 +1,45 @@
1
+ import { afterNextRender, ChangeDetectionStrategy, Component, createEnvironmentInjector, DestroyRef, effect, EnvironmentInjector, inject, Injector, input, ViewContainerRef, } from '@angular/core';
2
+ import { extend, injectStore, provideNgtRenderer } from 'angular-three';
3
+ import * as THREE from 'three';
4
+ import * as i0 from "@angular/core";
5
+ export class NgtTestCanvas {
6
+ constructor() {
7
+ this.sceneGraph = input.required();
8
+ extend(THREE);
9
+ const vcr = inject(ViewContainerRef);
10
+ const parentEnvironmentInjector = inject(EnvironmentInjector);
11
+ const parentInjector = inject(Injector);
12
+ const store = injectStore();
13
+ afterNextRender(() => {
14
+ effect(() => {
15
+ const sceneGraph = this.sceneGraph();
16
+ this.environmentInjector = createEnvironmentInjector([provideNgtRenderer(store)], parentEnvironmentInjector);
17
+ this.ref = vcr.createComponent(sceneGraph, {
18
+ environmentInjector: this.environmentInjector,
19
+ injector: parentInjector,
20
+ });
21
+ this.ref.changeDetectorRef.detectChanges();
22
+ }, { injector: parentInjector });
23
+ });
24
+ inject(DestroyRef).onDestroy(() => {
25
+ this.environmentInjector?.destroy();
26
+ this.ref?.destroy();
27
+ });
28
+ }
29
+ destroy() {
30
+ this.environmentInjector?.destroy();
31
+ this.ref?.destroy();
32
+ }
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: NgtTestCanvas, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
34
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.1.2", type: NgtTestCanvas, isStandalone: true, selector: "ngt-test-canvas", inputs: { sceneGraph: { classPropertyName: "sceneGraph", publicName: "sceneGraph", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
35
+ }
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: NgtTestCanvas, decorators: [{
37
+ type: Component,
38
+ args: [{
39
+ selector: 'ngt-test-canvas',
40
+ template: '',
41
+ standalone: true,
42
+ changeDetection: ChangeDetectionStrategy.OnPush,
43
+ }]
44
+ }], ctorParameters: () => [] });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1jYW52YXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvdGVzdGluZy9zcmMvbGliL3Rlc3QtY2FudmFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixlQUFlLEVBQ2YsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCx5QkFBeUIsRUFDekIsVUFBVSxFQUNWLE1BQU0sRUFDTixtQkFBbUIsRUFDbkIsTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBRUwsZ0JBQWdCLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDOztBQVEvQixNQUFNLE9BQU8sYUFBYTtJQU16QjtRQUxBLGVBQVUsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFhLENBQUM7UUFNeEMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDckMsTUFBTSx5QkFBeUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUM5RCxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsTUFBTSxLQUFLLEdBQUcsV0FBVyxFQUFFLENBQUM7UUFFNUIsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUNwQixNQUFNLENBQ0wsR0FBRyxFQUFFO2dCQUNKLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFFckMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLHlCQUF5QixDQUFDLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO2dCQUU3RyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFO29CQUMxQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CO29CQUM3QyxRQUFRLEVBQUUsY0FBYztpQkFDeEIsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDNUMsQ0FBQyxFQUNELEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxDQUM1QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNqQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPO1FBQ04sSUFBSSxDQUFDLG1CQUFtQixFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDckIsQ0FBQzs4R0F4Q1csYUFBYTtrR0FBYixhQUFhLDZOQUpmLEVBQUU7OzJGQUlBLGFBQWE7a0JBTnpCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFLEVBQUU7b0JBQ1osVUFBVSxFQUFFLElBQUk7b0JBQ2hCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUMvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdGFmdGVyTmV4dFJlbmRlcixcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0Q29tcG9uZW50UmVmLFxuXHRjcmVhdGVFbnZpcm9ubWVudEluamVjdG9yLFxuXHREZXN0cm95UmVmLFxuXHRlZmZlY3QsXG5cdEVudmlyb25tZW50SW5qZWN0b3IsXG5cdGluamVjdCxcblx0SW5qZWN0b3IsXG5cdGlucHV0LFxuXHRUeXBlLFxuXHRWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGV4dGVuZCwgaW5qZWN0U3RvcmUsIHByb3ZpZGVOZ3RSZW5kZXJlciB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3QtdGVzdC1jYW52YXMnLFxuXHR0ZW1wbGF0ZTogJycsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RUZXN0Q2FudmFzIHtcblx0c2NlbmVHcmFwaCA9IGlucHV0LnJlcXVpcmVkPFR5cGU8YW55Pj4oKTtcblxuXHRwcml2YXRlIHJlZj86IENvbXBvbmVudFJlZjxhbnk+O1xuXHRwcml2YXRlIGVudmlyb25tZW50SW5qZWN0b3I/OiBFbnZpcm9ubWVudEluamVjdG9yO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZChUSFJFRSk7XG5cblx0XHRjb25zdCB2Y3IgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG5cdFx0Y29uc3QgcGFyZW50RW52aXJvbm1lbnRJbmplY3RvciA9IGluamVjdChFbnZpcm9ubWVudEluamVjdG9yKTtcblx0XHRjb25zdCBwYXJlbnRJbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cdFx0Y29uc3Qgc3RvcmUgPSBpbmplY3RTdG9yZSgpO1xuXG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcblx0XHRcdGVmZmVjdChcblx0XHRcdFx0KCkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IHNjZW5lR3JhcGggPSB0aGlzLnNjZW5lR3JhcGgoKTtcblxuXHRcdFx0XHRcdHRoaXMuZW52aXJvbm1lbnRJbmplY3RvciA9IGNyZWF0ZUVudmlyb25tZW50SW5qZWN0b3IoW3Byb3ZpZGVOZ3RSZW5kZXJlcihzdG9yZSldLCBwYXJlbnRFbnZpcm9ubWVudEluamVjdG9yKTtcblxuXHRcdFx0XHRcdHRoaXMucmVmID0gdmNyLmNyZWF0ZUNvbXBvbmVudChzY2VuZUdyYXBoLCB7XG5cdFx0XHRcdFx0XHRlbnZpcm9ubWVudEluamVjdG9yOiB0aGlzLmVudmlyb25tZW50SW5qZWN0b3IsXG5cdFx0XHRcdFx0XHRpbmplY3RvcjogcGFyZW50SW5qZWN0b3IsXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0dGhpcy5yZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHR7IGluamVjdG9yOiBwYXJlbnRJbmplY3RvciB9LFxuXHRcdFx0KTtcblx0XHR9KTtcblxuXHRcdGluamVjdChEZXN0cm95UmVmKS5vbkRlc3Ryb3koKCkgPT4ge1xuXHRcdFx0dGhpcy5lbnZpcm9ubWVudEluamVjdG9yPy5kZXN0cm95KCk7XG5cdFx0XHR0aGlzLnJlZj8uZGVzdHJveSgpO1xuXHRcdH0pO1xuXHR9XG5cblx0ZGVzdHJveSgpIHtcblx0XHR0aGlzLmVudmlyb25tZW50SW5qZWN0b3I/LmRlc3Ryb3koKTtcblx0XHR0aGlzLnJlZj8uZGVzdHJveSgpO1xuXHR9XG59XG4iXX0=
@@ -0,0 +1,36 @@
1
+ import { WebGL2RenderingContext } from './web-gl-rendering-context';
2
+ export function createMockCanvas({ width = 1280, height = 800, beforeReturn, }) {
3
+ let canvas;
4
+ if (typeof document !== 'undefined' && typeof document.createElement === 'function') {
5
+ canvas = document.createElement('canvas');
6
+ }
7
+ else {
8
+ canvas = {
9
+ style: {},
10
+ addEventListener: (() => { }),
11
+ removeEventListener: (() => { }),
12
+ clientWidth: width,
13
+ clientHeight: height,
14
+ getContext: (() => new WebGL2RenderingContext(canvas)),
15
+ };
16
+ }
17
+ canvas.width = width;
18
+ canvas.height = height;
19
+ if (globalThis.HTMLCanvasElement) {
20
+ const getContext = HTMLCanvasElement.prototype.getContext;
21
+ HTMLCanvasElement.prototype.getContext = function (id) {
22
+ if (id.startsWith('webgl'))
23
+ return new WebGL2RenderingContext(this);
24
+ return getContext.apply(this, arguments);
25
+ };
26
+ }
27
+ beforeReturn?.(canvas);
28
+ class WebGLRenderingContext extends WebGL2RenderingContext {
29
+ }
30
+ // @ts-expect-error
31
+ globalThis.WebGLRenderingContext ??= WebGLRenderingContext;
32
+ // @ts-expect-error
33
+ globalThis.WebGL2RenderingContext ??= WebGL2RenderingContext;
34
+ return canvas;
35
+ }
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1jYW52YXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvdGVzdGluZy9zcmMvbGliL3V0aWxzL21vY2stY2FudmFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXBFLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxFQUNoQyxLQUFLLEdBQUcsSUFBSSxFQUNaLE1BQU0sR0FBRyxHQUFHLEVBQ1osWUFBWSxHQUtaO0lBQ0EsSUFBSSxNQUF5QixDQUFDO0lBRTlCLElBQUksT0FBTyxRQUFRLEtBQUssV0FBVyxJQUFJLE9BQU8sUUFBUSxDQUFDLGFBQWEsS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUNyRixNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzQyxDQUFDO1NBQU0sQ0FBQztRQUNQLE1BQU0sR0FBRztZQUNSLEtBQUssRUFBRSxFQUFFO1lBQ1QsZ0JBQWdCLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQVE7WUFDbkMsbUJBQW1CLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQVE7WUFDdEMsV0FBVyxFQUFFLEtBQUs7WUFDbEIsWUFBWSxFQUFFLE1BQU07WUFDcEIsVUFBVSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBUTtTQUN4QyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxNQUFNLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixNQUFNLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUV2QixJQUFJLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sVUFBVSxHQUFHLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUM7UUFDMUQsaUJBQWlCLENBQUMsU0FBUyxDQUFDLFVBQVUsR0FBRyxVQUFtQyxFQUFVO1lBQ3JGLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7Z0JBQUUsT0FBTyxJQUFJLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BFLE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsU0FBZ0IsQ0FBQyxDQUFDO1FBQ2pELENBQVEsQ0FBQztJQUNWLENBQUM7SUFFRCxZQUFZLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV2QixNQUFNLHFCQUFzQixTQUFRLHNCQUFzQjtLQUFHO0lBQzdELG1CQUFtQjtJQUNuQixVQUFVLENBQUMscUJBQXFCLEtBQUsscUJBQXFCLENBQUM7SUFDM0QsbUJBQW1CO0lBQ25CLFVBQVUsQ0FBQyxzQkFBc0IsS0FBSyxzQkFBc0IsQ0FBQztJQUU3RCxPQUFPLE1BQU0sQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0IH0gZnJvbSAnLi93ZWItZ2wtcmVuZGVyaW5nLWNvbnRleHQnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTW9ja0NhbnZhcyh7XG5cdHdpZHRoID0gMTI4MCxcblx0aGVpZ2h0ID0gODAwLFxuXHRiZWZvcmVSZXR1cm4sXG59OiB7XG5cdHdpZHRoPzogbnVtYmVyO1xuXHRoZWlnaHQ/OiBudW1iZXI7XG5cdGJlZm9yZVJldHVybj86IChjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50KSA9PiB2b2lkO1xufSkge1xuXHRsZXQgY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudDtcblxuXHRpZiAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuXHR9IGVsc2Uge1xuXHRcdGNhbnZhcyA9IHtcblx0XHRcdHN0eWxlOiB7fSxcblx0XHRcdGFkZEV2ZW50TGlzdGVuZXI6ICgoKSA9PiB7fSkgYXMgYW55LFxuXHRcdFx0cmVtb3ZlRXZlbnRMaXN0ZW5lcjogKCgpID0+IHt9KSBhcyBhbnksXG5cdFx0XHRjbGllbnRXaWR0aDogd2lkdGgsXG5cdFx0XHRjbGllbnRIZWlnaHQ6IGhlaWdodCxcblx0XHRcdGdldENvbnRleHQ6ICgoKSA9PiBuZXcgV2ViR0wyUmVuZGVyaW5nQ29udGV4dChjYW52YXMpKSBhcyBhbnksXG5cdFx0fSBhcyBIVE1MQ2FudmFzRWxlbWVudDtcblx0fVxuXHRjYW52YXMud2lkdGggPSB3aWR0aDtcblx0Y2FudmFzLmhlaWdodCA9IGhlaWdodDtcblxuXHRpZiAoZ2xvYmFsVGhpcy5IVE1MQ2FudmFzRWxlbWVudCkge1xuXHRcdGNvbnN0IGdldENvbnRleHQgPSBIVE1MQ2FudmFzRWxlbWVudC5wcm90b3R5cGUuZ2V0Q29udGV4dDtcblx0XHRIVE1MQ2FudmFzRWxlbWVudC5wcm90b3R5cGUuZ2V0Q29udGV4dCA9IGZ1bmN0aW9uICh0aGlzOiBIVE1MQ2FudmFzRWxlbWVudCwgaWQ6IHN0cmluZykge1xuXHRcdFx0aWYgKGlkLnN0YXJ0c1dpdGgoJ3dlYmdsJykpIHJldHVybiBuZXcgV2ViR0wyUmVuZGVyaW5nQ29udGV4dCh0aGlzKTtcblx0XHRcdHJldHVybiBnZXRDb250ZXh0LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyBhcyBhbnkpO1xuXHRcdH0gYXMgYW55O1xuXHR9XG5cblx0YmVmb3JlUmV0dXJuPy4oY2FudmFzKTtcblxuXHRjbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHQgZXh0ZW5kcyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0IHt9XG5cdC8vIEB0cy1leHBlY3QtZXJyb3Jcblx0Z2xvYmFsVGhpcy5XZWJHTFJlbmRlcmluZ0NvbnRleHQgPz89IFdlYkdMUmVuZGVyaW5nQ29udGV4dDtcblx0Ly8gQHRzLWV4cGVjdC1lcnJvclxuXHRnbG9iYWxUaGlzLldlYkdMMlJlbmRlcmluZ0NvbnRleHQgPz89IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ7XG5cblx0cmV0dXJuIGNhbnZhcztcbn1cbiJdfQ==