@angular/youtube-player 17.1.0-next.0 → 17.1.0-next.2

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.
@@ -6,5 +6,5 @@
6
6
  * found in the LICENSE file at https://angular.io/license
7
7
  */
8
8
  export * from './youtube-module';
9
- export { YouTubePlayer } from './youtube-player';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy95b3V0dWJlLXBsYXllci9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILGNBQWMsa0JBQWtCLENBQUM7QUFDakMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4veW91dHViZS1tb2R1bGUnO1xuZXhwb3J0IHtZb3VUdWJlUGxheWVyfSBmcm9tICcuL3lvdXR1YmUtcGxheWVyJztcbiJdfQ==
9
+ export { YouTubePlayer, YOUTUBE_PLAYER_CONFIG } from './youtube-player';
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy95b3V0dWJlLXBsYXllci9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILGNBQWMsa0JBQWtCLENBQUM7QUFDakMsT0FBTyxFQUFDLGFBQWEsRUFBRSxxQkFBcUIsRUFBc0IsTUFBTSxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3lvdXR1YmUtbW9kdWxlJztcbmV4cG9ydCB7WW91VHViZVBsYXllciwgWU9VVFVCRV9QTEFZRVJfQ09ORklHLCBZb3VUdWJlUGxheWVyQ29uZmlnfSBmcm9tICcuL3lvdXR1YmUtcGxheWVyJztcbmV4cG9ydCB7UGxhY2Vob2xkZXJJbWFnZVF1YWxpdHl9IGZyb20gJy4veW91dHViZS1wbGF5ZXItcGxhY2Vob2xkZXInO1xuIl19
@@ -8,17 +8,16 @@
8
8
  import { NgModule } from '@angular/core';
9
9
  import { YouTubePlayer } from './youtube-player';
10
10
  import * as i0 from "@angular/core";
11
- const COMPONENTS = [YouTubePlayer];
12
11
  export class YouTubePlayerModule {
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0", ngImport: i0, type: YouTubePlayerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
14
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0", ngImport: i0, type: YouTubePlayerModule, declarations: [YouTubePlayer], exports: [YouTubePlayer] }); }
15
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0", ngImport: i0, type: YouTubePlayerModule }); }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-next.2", ngImport: i0, type: YouTubePlayerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
13
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.0-next.2", ngImport: i0, type: YouTubePlayerModule, imports: [YouTubePlayer], exports: [YouTubePlayer] }); }
14
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.0-next.2", ngImport: i0, type: YouTubePlayerModule }); }
16
15
  }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0", ngImport: i0, type: YouTubePlayerModule, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.2", ngImport: i0, type: YouTubePlayerModule, decorators: [{
18
17
  type: NgModule,
19
18
  args: [{
20
- declarations: COMPONENTS,
21
- exports: COMPONENTS,
19
+ imports: [YouTubePlayer],
20
+ exports: [YouTubePlayer],
22
21
  }]
23
22
  }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieW91dHViZS1tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMveW91dHViZS1wbGF5ZXIveW91dHViZS1tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV2QyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7O0FBRS9DLE1BQU0sVUFBVSxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7QUFNbkMsTUFBTSxPQUFPLG1CQUFtQjs4R0FBbkIsbUJBQW1COytHQUFuQixtQkFBbUIsaUJBTlosYUFBYSxhQUFiLGFBQWE7K0dBTXBCLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFKL0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsVUFBVTtvQkFDeEIsT0FBTyxFQUFFLFVBQVU7aUJBQ3BCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1lvdVR1YmVQbGF5ZXJ9IGZyb20gJy4veW91dHViZS1wbGF5ZXInO1xuXG5jb25zdCBDT01QT05FTlRTID0gW1lvdVR1YmVQbGF5ZXJdO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IENPTVBPTkVOVFMsXG4gIGV4cG9ydHM6IENPTVBPTkVOVFMsXG59KVxuZXhwb3J0IGNsYXNzIFlvdVR1YmVQbGF5ZXJNb2R1bGUge31cbiJdfQ==
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieW91dHViZS1tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMveW91dHViZS1wbGF5ZXIveW91dHViZS1tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7O0FBTS9DLE1BQU0sT0FBTyxtQkFBbUI7cUhBQW5CLG1CQUFtQjtzSEFBbkIsbUJBQW1CLFlBSHBCLGFBQWEsYUFDYixhQUFhO3NIQUVaLG1CQUFtQjs7a0dBQW5CLG1CQUFtQjtrQkFKL0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7b0JBQ3hCLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztpQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1lvdVR1YmVQbGF5ZXJ9IGZyb20gJy4veW91dHViZS1wbGF5ZXInO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbWW91VHViZVBsYXllcl0sXG4gIGV4cG9ydHM6IFtZb3VUdWJlUGxheWVyXSxcbn0pXG5leHBvcnQgY2xhc3MgWW91VHViZVBsYXllck1vZHVsZSB7fVxuIl19
@@ -0,0 +1,74 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';
9
+ import * as i0 from "@angular/core";
10
+ export class YouTubePlayerPlaceholder {
11
+ /** Gets the background image showing the placeholder. */
12
+ _getBackgroundImage() {
13
+ let url;
14
+ if (this.quality === 'low') {
15
+ url = `https://i.ytimg.com/vi/${this.videoId}/hqdefault.jpg`;
16
+ }
17
+ else if (this.quality === 'high') {
18
+ url = `https://i.ytimg.com/vi/${this.videoId}/maxresdefault.jpg`;
19
+ }
20
+ else {
21
+ url = `https://i.ytimg.com/vi_webp/${this.videoId}/sddefault.webp`;
22
+ }
23
+ return `url(${url})`;
24
+ }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-next.2", ngImport: i0, type: YouTubePlayerPlaceholder, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
26
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0-next.2", type: YouTubePlayerPlaceholder, isStandalone: true, selector: "youtube-player-placeholder", inputs: { videoId: "videoId", width: "width", height: "height", isLoading: "isLoading", buttonLabel: "buttonLabel", quality: "quality" }, host: { properties: { "class.youtube-player-placeholder-loading": "isLoading", "style.background-image": "_getBackgroundImage()", "style.width.px": "width", "style.height.px": "height" }, classAttribute: "youtube-player-placeholder" }, ngImport: i0, template: `
27
+ <button type="button" class="youtube-player-placeholder-button" [attr.aria-label]="buttonLabel">
28
+ <svg
29
+ height="100%"
30
+ version="1.1"
31
+ viewBox="0 0 68 48"
32
+ focusable="false"
33
+ aria-hidden="true">
34
+ <path d="M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.55 C3.97,2.33,2.27,4.81,1.48,7.74C0.06,13.05,0,24,0,24s0.06,10.95,1.48,16.26c0.78,2.93,2.49,5.41,5.42,6.19 C12.21,47.87,34,48,34,48s21.79-0.13,27.1-1.55c2.93-0.78,4.64-3.26,5.42-6.19C67.94,34.95,68,24,68,24S67.94,13.05,66.52,7.74z" fill="#f00"></path>
35
+ <path d="M 45,24 27,14 27,34" fill="#fff"></path>
36
+ </svg>
37
+ </button>
38
+ `, isInline: true, styles: [".youtube-player-placeholder{display:flex;align-items:center;justify-content:center;width:100%;overflow:hidden;cursor:pointer;background-color:#000;background-position:center center;background-size:cover;transition:box-shadow 300ms ease;box-shadow:inset 0 120px 90px -90px rgba(0,0,0,.8)}.youtube-player-placeholder-button{transition:opacity 300ms ease;-moz-appearance:none;-webkit-appearance:none;background:none;border:none;padding:0;display:flex}.youtube-player-placeholder-button svg{width:68px;height:48px}.youtube-player-placeholder-loading{box-shadow:none}.youtube-player-placeholder-loading .youtube-player-placeholder-button{opacity:0}"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
39
+ }
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.2", ngImport: i0, type: YouTubePlayerPlaceholder, decorators: [{
41
+ type: Component,
42
+ args: [{ selector: 'youtube-player-placeholder', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `
43
+ <button type="button" class="youtube-player-placeholder-button" [attr.aria-label]="buttonLabel">
44
+ <svg
45
+ height="100%"
46
+ version="1.1"
47
+ viewBox="0 0 68 48"
48
+ focusable="false"
49
+ aria-hidden="true">
50
+ <path d="M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.55 C3.97,2.33,2.27,4.81,1.48,7.74C0.06,13.05,0,24,0,24s0.06,10.95,1.48,16.26c0.78,2.93,2.49,5.41,5.42,6.19 C12.21,47.87,34,48,34,48s21.79-0.13,27.1-1.55c2.93-0.78,4.64-3.26,5.42-6.19C67.94,34.95,68,24,68,24S67.94,13.05,66.52,7.74z" fill="#f00"></path>
51
+ <path d="M 45,24 27,14 27,34" fill="#fff"></path>
52
+ </svg>
53
+ </button>
54
+ `, standalone: true, host: {
55
+ 'class': 'youtube-player-placeholder',
56
+ '[class.youtube-player-placeholder-loading]': 'isLoading',
57
+ '[style.background-image]': '_getBackgroundImage()',
58
+ '[style.width.px]': 'width',
59
+ '[style.height.px]': 'height',
60
+ }, styles: [".youtube-player-placeholder{display:flex;align-items:center;justify-content:center;width:100%;overflow:hidden;cursor:pointer;background-color:#000;background-position:center center;background-size:cover;transition:box-shadow 300ms ease;box-shadow:inset 0 120px 90px -90px rgba(0,0,0,.8)}.youtube-player-placeholder-button{transition:opacity 300ms ease;-moz-appearance:none;-webkit-appearance:none;background:none;border:none;padding:0;display:flex}.youtube-player-placeholder-button svg{width:68px;height:48px}.youtube-player-placeholder-loading{box-shadow:none}.youtube-player-placeholder-loading .youtube-player-placeholder-button{opacity:0}"] }]
61
+ }], propDecorators: { videoId: [{
62
+ type: Input
63
+ }], width: [{
64
+ type: Input
65
+ }], height: [{
66
+ type: Input
67
+ }], isLoading: [{
68
+ type: Input
69
+ }], buttonLabel: [{
70
+ type: Input
71
+ }], quality: [{
72
+ type: Input
73
+ }] } });
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieW91dHViZS1wbGF5ZXItcGxhY2Vob2xkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMveW91dHViZS1wbGF5ZXIveW91dHViZS1wbGF5ZXItcGxhY2Vob2xkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBZ0MzRixNQUFNLE9BQU8sd0JBQXdCO0lBbUJuQyx5REFBeUQ7SUFDL0MsbUJBQW1CO1FBQzNCLElBQUksR0FBVyxDQUFDO1FBRWhCLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUMzQixHQUFHLEdBQUcsMEJBQTBCLElBQUksQ0FBQyxPQUFPLGdCQUFnQixDQUFDO1FBQy9ELENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDbkMsR0FBRyxHQUFHLDBCQUEwQixJQUFJLENBQUMsT0FBTyxvQkFBb0IsQ0FBQztRQUNuRSxDQUFDO2FBQU0sQ0FBQztZQUNOLEdBQUcsR0FBRywrQkFBK0IsSUFBSSxDQUFDLE9BQU8saUJBQWlCLENBQUM7UUFDckUsQ0FBQztRQUVELE9BQU8sT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUN2QixDQUFDO3FIQWhDVSx3QkFBd0I7eUdBQXhCLHdCQUF3Qiw0Y0F2QnpCOzs7Ozs7Ozs7Ozs7R0FZVDs7a0dBV1Usd0JBQXdCO2tCQTNCcEMsU0FBUzsrQkFDRSw0QkFBNEIsbUJBQ3JCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksWUFDM0I7Ozs7Ozs7Ozs7OztHQVlULGNBQ1csSUFBSSxRQUVWO3dCQUNKLE9BQU8sRUFBRSw0QkFBNEI7d0JBQ3JDLDRDQUE0QyxFQUFFLFdBQVc7d0JBQ3pELDBCQUEwQixFQUFFLHVCQUF1Qjt3QkFDbkQsa0JBQWtCLEVBQUUsT0FBTzt3QkFDM0IsbUJBQW1CLEVBQUUsUUFBUTtxQkFDOUI7OEJBSVEsT0FBTztzQkFBZixLQUFLO2dCQUdHLEtBQUs7c0JBQWIsS0FBSztnQkFHRyxNQUFNO3NCQUFkLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQUdHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKiAgUXVhbGl0eSBvZiB0aGUgcGxhY2Vob2xkZXIgaW1hZ2UuICAqL1xuZXhwb3J0IHR5cGUgUGxhY2Vob2xkZXJJbWFnZVF1YWxpdHkgPSAnaGlnaCcgfCAnc3RhbmRhcmQnIHwgJ2xvdyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3lvdXR1YmUtcGxheWVyLXBsYWNlaG9sZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJ5b3V0dWJlLXBsYXllci1wbGFjZWhvbGRlci1idXR0b25cIiBbYXR0ci5hcmlhLWxhYmVsXT1cImJ1dHRvbkxhYmVsXCI+XG4gICAgICA8c3ZnXG4gICAgICAgIGhlaWdodD1cIjEwMCVcIlxuICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcbiAgICAgICAgdmlld0JveD1cIjAgMCA2OCA0OFwiXG4gICAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgIDxwYXRoIGQ9XCJNNjYuNTIsNy43NGMtMC43OC0yLjkzLTIuNDktNS40MS01LjQyLTYuMTlDNTUuNzksLjEzLDM0LDAsMzQsMFMxMi4yMSwuMTMsNi45LDEuNTUgQzMuOTcsMi4zMywyLjI3LDQuODEsMS40OCw3Ljc0QzAuMDYsMTMuMDUsMCwyNCwwLDI0czAuMDYsMTAuOTUsMS40OCwxNi4yNmMwLjc4LDIuOTMsMi40OSw1LjQxLDUuNDIsNi4xOSBDMTIuMjEsNDcuODcsMzQsNDgsMzQsNDhzMjEuNzktMC4xMywyNy4xLTEuNTVjMi45My0wLjc4LDQuNjQtMy4yNiw1LjQyLTYuMTlDNjcuOTQsMzQuOTUsNjgsMjQsNjgsMjRTNjcuOTQsMTMuMDUsNjYuNTIsNy43NHpcIiBmaWxsPVwiI2YwMFwiPjwvcGF0aD5cbiAgICAgICAgPHBhdGggZD1cIk0gNDUsMjQgMjcsMTQgMjcsMzRcIiBmaWxsPVwiI2ZmZlwiPjwvcGF0aD5cbiAgICAgIDwvc3ZnPlxuICAgIDwvYnV0dG9uPlxuICBgLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzdHlsZVVybDogJ3lvdXR1YmUtcGxheWVyLXBsYWNlaG9sZGVyLmNzcycsXG4gIGhvc3Q6IHtcbiAgICAnY2xhc3MnOiAneW91dHViZS1wbGF5ZXItcGxhY2Vob2xkZXInLFxuICAgICdbY2xhc3MueW91dHViZS1wbGF5ZXItcGxhY2Vob2xkZXItbG9hZGluZ10nOiAnaXNMb2FkaW5nJyxcbiAgICAnW3N0eWxlLmJhY2tncm91bmQtaW1hZ2VdJzogJ19nZXRCYWNrZ3JvdW5kSW1hZ2UoKScsXG4gICAgJ1tzdHlsZS53aWR0aC5weF0nOiAnd2lkdGgnLFxuICAgICdbc3R5bGUuaGVpZ2h0LnB4XSc6ICdoZWlnaHQnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBZb3VUdWJlUGxheWVyUGxhY2Vob2xkZXIge1xuICAvKiogSUQgb2YgdGhlIHZpZGVvIGZvciB3aGljaCB0byBzaG93IHRoZSBwbGFjZWhvbGRlci4gKi9cbiAgQElucHV0KCkgdmlkZW9JZDogc3RyaW5nO1xuXG4gIC8qKiBXaWR0aCBvZiB0aGUgdmlkZW8gZm9yIHdoaWNoIHRvIHNob3cgdGhlIHBsYWNlaG9sZGVyLiAqL1xuICBASW5wdXQoKSB3aWR0aDogbnVtYmVyO1xuXG4gIC8qKiBIZWlnaHQgb2YgdGhlIHZpZGVvIGZvciB3aGljaCB0byBzaG93IHRoZSBwbGFjZWhvbGRlci4gKi9cbiAgQElucHV0KCkgaGVpZ2h0OiBudW1iZXI7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIHZpZGVvIGlzIGN1cnJlbnRseSBiZWluZyBsb2FkZWQuICovXG4gIEBJbnB1dCgpIGlzTG9hZGluZzogYm9vbGVhbjtcblxuICAvKiogQWNjZXNzaWJsZSBsYWJlbCBmb3IgdGhlIHBsYXkgYnV0dG9uLiAqL1xuICBASW5wdXQoKSBidXR0b25MYWJlbDogc3RyaW5nO1xuXG4gIC8qKiBRdWFsaXR5IG9mIHRoZSBwbGFjZWhvbGRlciBpbWFnZS4gKi9cbiAgQElucHV0KCkgcXVhbGl0eTogUGxhY2Vob2xkZXJJbWFnZVF1YWxpdHk7XG5cbiAgLyoqIEdldHMgdGhlIGJhY2tncm91bmQgaW1hZ2Ugc2hvd2luZyB0aGUgcGxhY2Vob2xkZXIuICovXG4gIHByb3RlY3RlZCBfZ2V0QmFja2dyb3VuZEltYWdlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IHVybDogc3RyaW5nO1xuXG4gICAgaWYgKHRoaXMucXVhbGl0eSA9PT0gJ2xvdycpIHtcbiAgICAgIHVybCA9IGBodHRwczovL2kueXRpbWcuY29tL3ZpLyR7dGhpcy52aWRlb0lkfS9ocWRlZmF1bHQuanBnYDtcbiAgICB9IGVsc2UgaWYgKHRoaXMucXVhbGl0eSA9PT0gJ2hpZ2gnKSB7XG4gICAgICB1cmwgPSBgaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS8ke3RoaXMudmlkZW9JZH0vbWF4cmVzZGVmYXVsdC5qcGdgO1xuICAgIH0gZWxzZSB7XG4gICAgICB1cmwgPSBgaHR0cHM6Ly9pLnl0aW1nLmNvbS92aV93ZWJwLyR7dGhpcy52aWRlb0lkfS9zZGRlZmF1bHQud2VicGA7XG4gICAgfVxuXG4gICAgcmV0dXJuIGB1cmwoJHt1cmx9KWA7XG4gIH1cbn1cbiJdfQ==