atr-components 0.1.0 → 0.1.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.
@@ -0,0 +1,88 @@
1
+ import { Component, forwardRef, Input } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from "@angular/forms";
3
+ import { UploadOssService } from "../../../core/services/upload-oss.service";
4
+ import { commonDatas } from "../../../core/base/atr-common";
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "ng-zorro-antd/input";
7
+ import * as i2 from "@angular/forms";
8
+ import * as i3 from "ng-zorro-antd/popover";
9
+ import * as i4 from "@angular/common";
10
+ import * as i5 from "ng-zorro-antd/core/transition-patch";
11
+ import * as i6 from "ng-zorro-antd/icon";
12
+ export class SelectIconsComponent {
13
+ constructor() {
14
+ this.readonly = false;
15
+ this.placeholder = '选择图标';
16
+ this.icons = commonDatas.icons;
17
+ this.showProp = false;
18
+ }
19
+ ngOnInit() {
20
+ }
21
+ change(value) {
22
+ console.log(value);
23
+ }
24
+ valueChange(e) {
25
+ console.log('form change', this.value);
26
+ console.log('form change e', e);
27
+ if (this.onChangeListener) {
28
+ this.onChangeListener(e); // 告诉form,你的表单值改变成了payload
29
+ }
30
+ if (this.onChangeListener) {
31
+ this.onTouchedListener(); // 告诉form,你的表单有交互发生
32
+ }
33
+ }
34
+ selectIcon(item) {
35
+ this.value = item;
36
+ this.showProp = false;
37
+ console.log('form change', this.value);
38
+ console.log('form change e', item);
39
+ if (this.onChangeListener) {
40
+ this.onChangeListener(item); // 告诉form,你的表单值改变成了payload
41
+ }
42
+ if (this.onChangeListener) {
43
+ this.onTouchedListener(); // 告诉form,你的表单有交互发生
44
+ }
45
+ }
46
+ showIcons() {
47
+ if (this.readonly) {
48
+ return;
49
+ }
50
+ this.showProp = true;
51
+ }
52
+ registerOnChange(fn) {
53
+ this.onChangeListener = fn;
54
+ }
55
+ registerOnTouched(fn) {
56
+ this.onTouchedListener = fn;
57
+ }
58
+ setDisabledState(isDisabled) {
59
+ }
60
+ writeValue(value) {
61
+ this.value = value;
62
+ }
63
+ }
64
+ SelectIconsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SelectIconsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
65
+ SelectIconsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: SelectIconsComponent, selector: "app-select-icons", inputs: { readonly: "readonly", placeholder: "placeholder" }, providers: [
66
+ UploadOssService,
67
+ {
68
+ provide: NG_VALUE_ACCESSOR,
69
+ useExisting: forwardRef(() => SelectIconsComponent),
70
+ multi: true
71
+ }
72
+ ], ngImport: i0, template: "<input [(ngModel)]=\"value\"\n (ngModelChange)=\"valueChange($event)\"\n nz-input\n nzType=\"primary\" nzPopoverPlacement=\"bottom\"\n nz-popover\n [placeholder]=\"placeholder\"\n [nzPopoverTitle]=\"placeholder\"\n [(nzPopoverVisible)]=\"showProp\"\n (nzPopoverVisibleChange)=\"change($event)\"\n nzPopoverTrigger=\"click\"\n [readOnly]=\"readonly\"\n [nzPopoverOverlayStyle]=\"{'max-width':'800px','min-width':'200px',width:'90%'}\"\n [nzPopoverContent]=\"contentTemplate\"/>\n<ng-template #contentTemplate>\n <div style=\"width: 100%;height: 300px;overflow-y: auto\">\n <span (click)=\"selectIcon(item)\" class=\"i-child\" *ngFor=\"let item of icons\">\n <i nz-icon [nzType]=\"item\" nzTheme=\"outline\"></i>\n </span>\n\n </div>\n</ng-template>\n", styles: [".i-child{font-size:1.2rem;margin:.5rem;cursor:pointer;padding:.5rem}.i-child:hover{color:#fff;background-color:#1890ff}\n"], directives: [{ type: i1.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NzPopoverDirective, selector: "[nz-popover]", inputs: ["nzPopoverArrowPointAtCenter", "nzPopoverTitle", "nzPopoverContent", "nz-popover", "nzPopoverTrigger", "nzPopoverPlacement", "nzPopoverOrigin", "nzPopoverVisible", "nzPopoverMouseEnterDelay", "nzPopoverMouseLeaveDelay", "nzPopoverOverlayClassName", "nzPopoverOverlayStyle", "nzPopoverBackdrop"], outputs: ["nzPopoverVisibleChange"], exportAs: ["nzPopover"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { type: i6.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }] });
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SelectIconsComponent, decorators: [{
74
+ type: Component,
75
+ args: [{ selector: 'app-select-icons', providers: [
76
+ UploadOssService,
77
+ {
78
+ provide: NG_VALUE_ACCESSOR,
79
+ useExisting: forwardRef(() => SelectIconsComponent),
80
+ multi: true
81
+ }
82
+ ], template: "<input [(ngModel)]=\"value\"\n (ngModelChange)=\"valueChange($event)\"\n nz-input\n nzType=\"primary\" nzPopoverPlacement=\"bottom\"\n nz-popover\n [placeholder]=\"placeholder\"\n [nzPopoverTitle]=\"placeholder\"\n [(nzPopoverVisible)]=\"showProp\"\n (nzPopoverVisibleChange)=\"change($event)\"\n nzPopoverTrigger=\"click\"\n [readOnly]=\"readonly\"\n [nzPopoverOverlayStyle]=\"{'max-width':'800px','min-width':'200px',width:'90%'}\"\n [nzPopoverContent]=\"contentTemplate\"/>\n<ng-template #contentTemplate>\n <div style=\"width: 100%;height: 300px;overflow-y: auto\">\n <span (click)=\"selectIcon(item)\" class=\"i-child\" *ngFor=\"let item of icons\">\n <i nz-icon [nzType]=\"item\" nzTheme=\"outline\"></i>\n </span>\n\n </div>\n</ng-template>\n", styles: [".i-child{font-size:1.2rem;margin:.5rem;cursor:pointer;padding:.5rem}.i-child:hover{color:#fff;background-color:#1890ff}\n"] }]
83
+ }], ctorParameters: function () { return []; }, propDecorators: { readonly: [{
84
+ type: Input
85
+ }], placeholder: [{
86
+ type: Input
87
+ }] } });
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWljb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9zaGFyZWQvc2VsZWN0LWljb25zL3NlbGVjdC1pY29ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL3NlbGVjdC1pY29ucy9zZWxlY3QtaWNvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFtQyxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQXVCLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDM0UsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLCtCQUErQixDQUFDOzs7Ozs7OztBQWUxRCxNQUFNLE9BQU8sb0JBQW9CO0lBUzdCO1FBUlMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixnQkFBVyxHQUFHLE1BQU0sQ0FBQztRQUU5QixVQUFLLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQTtRQUN6QixhQUFRLEdBQUcsS0FBSyxDQUFDO0lBS2pCLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFjO1FBQ2pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELFdBQVcsQ0FBQyxDQUFLO1FBQ2IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQy9CLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLDBCQUEwQjtTQUN2RDtRQUNELElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsbUJBQW1CO1NBQ2hEO0lBQ0wsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFRO1FBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQ2xDLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLDBCQUEwQjtTQUMxRDtRQUNELElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsbUJBQW1CO1NBQ2hEO0lBQ0wsQ0FBQztJQUVELFNBQVM7UUFDTCxJQUFHLElBQUksQ0FBQyxRQUFRLEVBQUM7WUFDYixPQUFNO1NBQ1Q7UUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQTtJQUN4QixDQUFDO0lBR0QsZ0JBQWdCLENBQUMsRUFBTztRQUNwQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3JCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQW1CO0lBQ3BDLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBYTtRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDOztrSEFoRVEsb0JBQW9CO3NHQUFwQixvQkFBb0IseUdBVGxCO1FBQ1AsZ0JBQWdCO1FBQ2hCO1lBQ0ksT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDO1lBQ25ELEtBQUssRUFBRSxJQUFJO1NBQ2Q7S0FDSiwwQkNoQkwseTFCQXFCQTs0RkRIYSxvQkFBb0I7a0JBYmhDLFNBQVM7K0JBQ0ksa0JBQWtCLGFBR2pCO3dCQUNQLGdCQUFnQjt3QkFDaEI7NEJBQ0ksT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNkO3FCQUNKOzBFQUdRLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHtVcGxvYWRPc3NTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy91cGxvYWQtb3NzLnNlcnZpY2VcIjtcbmltcG9ydCB7Y29tbW9uRGF0YXN9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2Jhc2UvYXRyLWNvbW1vblwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1zZWxlY3QtaWNvbnMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QtaWNvbnMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlbGVjdC1pY29ucy5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBVcGxvYWRPc3NTZXJ2aWNlLFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNlbGVjdEljb25zQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdEljb25zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gICAgQElucHV0KCkgcmVhZG9ubHkgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICfpgInmi6nlm77moIcnO1xuICAgIHZhbHVlOmFueTtcbiAgICBpY29ucyA9IGNvbW1vbkRhdGFzLmljb25zXG4gICAgc2hvd1Byb3AgPSBmYWxzZTtcbiAgICBvbkNoYW5nZUxpc3RlbmVyOiBhbnk7IC8vIOaUueWPmOWAvOWbnuiwg1xuICAgIG9uVG91Y2hlZExpc3RlbmVyOiBhbnk7IC8vIOS6pOS6kuWbnuiwg1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgfVxuXG4gICAgY2hhbmdlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGNvbnNvbGUubG9nKHZhbHVlKTtcbiAgICB9XG5cbiAgICB2YWx1ZUNoYW5nZShlOmFueSkge1xuICAgICAgICBjb25zb2xlLmxvZygnZm9ybSBjaGFuZ2UnLCB0aGlzLnZhbHVlKVxuICAgICAgICBjb25zb2xlLmxvZygnZm9ybSBjaGFuZ2UgZScsIGUpXG4gICAgICAgIGlmICh0aGlzLm9uQ2hhbmdlTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2VMaXN0ZW5lcihlKTsgLy8g5ZGK6K+JZm9ybe+8jOS9oOeahOihqOWNleWAvOaUueWPmOaIkOS6hnBheWxvYWRcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5vbkNoYW5nZUxpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZExpc3RlbmVyKCk7IC8vIOWRiuiviWZvcm3vvIzkvaDnmoTooajljZXmnInkuqTkupLlj5HnlJ9cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNlbGVjdEljb24oaXRlbTphbnkpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IGl0ZW07XG4gICAgICAgIHRoaXMuc2hvd1Byb3AgPSBmYWxzZTtcbiAgICAgICAgY29uc29sZS5sb2coJ2Zvcm0gY2hhbmdlJywgdGhpcy52YWx1ZSlcbiAgICAgICAgY29uc29sZS5sb2coJ2Zvcm0gY2hhbmdlIGUnLCBpdGVtKVxuICAgICAgICBpZiAodGhpcy5vbkNoYW5nZUxpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlTGlzdGVuZXIoaXRlbSk7IC8vIOWRiuiviWZvcm3vvIzkvaDnmoTooajljZXlgLzmlLnlj5jmiJDkuoZwYXlsb2FkXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMub25DaGFuZ2VMaXN0ZW5lcikge1xuICAgICAgICAgICAgdGhpcy5vblRvdWNoZWRMaXN0ZW5lcigpOyAvLyDlkYror4lmb3Jt77yM5L2g55qE6KGo5Y2V5pyJ5Lqk5LqS5Y+R55SfXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzaG93SWNvbnMoKSB7XG4gICAgICAgIGlmKHRoaXMucmVhZG9ubHkpe1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zaG93UHJvcCA9IHRydWVcbiAgICB9XG5cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlTGlzdGVuZXIgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkTGlzdGVuZXIgPSBmbjtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIH1cbn1cbiIsIjxpbnB1dCBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ2YWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICBuei1pbnB1dFxuICAgICAgIG56VHlwZT1cInByaW1hcnlcIiBuelBvcG92ZXJQbGFjZW1lbnQ9XCJib3R0b21cIlxuICAgICAgIG56LXBvcG92ZXJcbiAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgIFtuelBvcG92ZXJUaXRsZV09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgWyhuelBvcG92ZXJWaXNpYmxlKV09XCJzaG93UHJvcFwiXG4gICAgICAgKG56UG9wb3ZlclZpc2libGVDaGFuZ2UpPVwiY2hhbmdlKCRldmVudClcIlxuICAgICAgIG56UG9wb3ZlclRyaWdnZXI9XCJjbGlja1wiXG4gICAgICAgW3JlYWRPbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICBbbnpQb3BvdmVyT3ZlcmxheVN0eWxlXT1cInsnbWF4LXdpZHRoJzonODAwcHgnLCdtaW4td2lkdGgnOicyMDBweCcsd2lkdGg6JzkwJSd9XCJcbiAgICAgICBbbnpQb3BvdmVyQ29udGVudF09XCJjb250ZW50VGVtcGxhdGVcIi8+XG48bmctdGVtcGxhdGUgI2NvbnRlbnRUZW1wbGF0ZT5cbiAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IDEwMCU7aGVpZ2h0OiAzMDBweDtvdmVyZmxvdy15OiBhdXRvXCI+XG4gICAgICAgIDxzcGFuIChjbGljayk9XCJzZWxlY3RJY29uKGl0ZW0pXCIgY2xhc3M9XCJpLWNoaWxkXCIgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGljb25zXCI+XG4gICAgICAgICAgICAgPGkgbnotaWNvbiBbbnpUeXBlXT1cIml0ZW1cIiAgbnpUaGVtZT1cIm91dGxpbmVcIj48L2k+XG4gICAgICAgIDwvc3Bhbj5cblxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==