@bizdoc/core 1.16.5 → 1.16.6
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/esm2020/lib/admin/configuration-designer/designer-element.component.mjs +199 -202
- package/esm2020/lib/admin/configuration-designer/designer.base.mjs +53 -25
- package/esm2020/lib/admin/configuration-designer/designer.component.mjs +84 -55
- package/esm2020/lib/admin/configuration-designer/elements/action.component.mjs +16 -23
- package/esm2020/lib/admin/configuration-designer/elements/analysis-view.component.mjs +3 -3
- package/esm2020/lib/admin/configuration-designer/elements/analysis-widget.component.mjs +3 -3
- package/esm2020/lib/admin/configuration-designer/elements/anomaly-rule.component.mjs +3 -3
- package/esm2020/lib/admin/configuration-designer/elements/box-form.component.mjs +3 -3
- package/esm2020/lib/admin/configuration-designer/elements/configuration-datasource.component.mjs +3 -3
- package/esm2020/lib/admin/configuration-designer/elements/cube-index-utility.component.mjs +3 -3
- package/esm2020/lib/admin/configuration-designer/elements/cube-view.component.mjs +3 -3
- package/esm2020/lib/admin/configuration-designer/elements/cube.component.mjs +80 -62
- package/esm2020/lib/admin/configuration-designer/elements/documents-report.component.mjs +3 -3
- package/esm2020/lib/admin/configuration-designer/elements/documents-widget.component.mjs +3 -3
- package/esm2020/lib/admin/configuration-designer/elements/explore-view.component.mjs +3 -3
- package/esm2020/lib/admin/configuration-designer/elements/folder.component.mjs +15 -17
- package/esm2020/lib/admin/configuration-designer/elements/form.component.mjs +12 -17
- package/esm2020/lib/admin/configuration-designer/elements/guide.component.mjs +8 -13
- package/esm2020/lib/admin/configuration-designer/elements/matrix-view.component.mjs +3 -3
- package/esm2020/lib/admin/configuration-designer/elements/parallel-view.component.mjs +3 -3
- package/esm2020/lib/admin/configuration-designer/elements/performance-widget.component.mjs +3 -3
- package/esm2020/lib/admin/configuration-designer/elements/pivot-view.component.mjs +3 -3
- package/esm2020/lib/admin/configuration-designer/elements/report.component.mjs +9 -14
- package/esm2020/lib/admin/configuration-designer/elements/return-to-role-action.component.mjs +3 -3
- package/esm2020/lib/admin/configuration-designer/elements/role.component.mjs +6 -5
- package/esm2020/lib/admin/configuration-designer/elements/rule.component.mjs +6 -13
- package/esm2020/lib/admin/configuration-designer/elements/state.component.mjs +12 -19
- package/esm2020/lib/admin/configuration-designer/elements/sum-view.component.mjs +3 -3
- package/esm2020/lib/admin/configuration-designer/elements/tasks-report.component.mjs +3 -3
- package/esm2020/lib/admin/configuration-designer/elements/type.component.mjs +8 -14
- package/esm2020/lib/admin/configuration-designer/elements/usage-report.component.mjs +3 -3
- package/esm2020/lib/admin/configuration-designer/elements/utility.component.mjs +6 -6
- package/esm2020/lib/admin/configuration-designer/elements/view.component.mjs +6 -13
- package/esm2020/lib/admin/configuration-designer/elements/widget.component.mjs +7 -12
- package/esm2020/lib/admin/form/workflow/node.component.mjs +2 -2
- package/esm2020/lib/core/functions.mjs +4 -3
- package/esm2020/lib/core/layout/input.base.mjs +45 -1
- package/esm2020/lib/core/layout/layout.component.mjs +16 -58
- package/esm2020/lib/core/slots/router.service.mjs +1 -1
- package/esm2020/lib/core/slots/slots.component.mjs +12 -7
- package/esm2020/lib/core/translations.mjs +9 -2
- package/esm2020/lib/dashboard/widget-item.component.mjs +2 -2
- package/esm2020/lib/reports/arguments-component.mjs +2 -2
- package/esm2020/lib/system.module.mjs +9 -9
- package/fesm2015/bizdoc-core.mjs +1492 -1448
- package/fesm2015/bizdoc-core.mjs.map +1 -1
- package/fesm2020/bizdoc-core.mjs +1485 -1439
- package/fesm2020/bizdoc-core.mjs.map +1 -1
- package/lib/admin/configuration-designer/designer-element.component.d.ts +62 -31
- package/lib/admin/configuration-designer/designer.base.d.ts +80 -41
- package/lib/admin/configuration-designer/designer.component.d.ts +8 -4
- package/lib/admin/configuration-designer/elements/action.component.d.ts +3 -3
- package/lib/admin/configuration-designer/elements/cube.component.d.ts +1 -8
- package/lib/admin/configuration-designer/elements/folder.component.d.ts +1 -8
- package/lib/admin/configuration-designer/elements/report.component.d.ts +3 -3
- package/lib/core/layout/input.base.d.ts +4 -1
- package/lib/core/layout/layout.component.d.ts +5 -7
- package/lib/core/slots/router.service.d.ts +2 -0
- package/lib/core/translations.d.ts +7 -0
- package/lib/system.module.d.ts +23 -23
- package/package.json +16 -16
@@ -1,202 +1,132 @@
|
|
1
|
-
import { Component, EventEmitter, HostListener,
|
1
|
+
import { Component, ContentChild, ContentChildren, EventEmitter, HostListener, Inject, Input, Optional, Output, ViewChild, ViewContainerRef } from "@angular/core";
|
2
2
|
import { Validators } from "@angular/forms";
|
3
|
-
import {
|
4
|
-
import {
|
5
|
-
import { DesignerRef, programName } from "./designer.base";
|
3
|
+
import { Subject, takeUntil } from "rxjs";
|
4
|
+
import { LayoutComponent } from "../../core/layout/layout.component";
|
5
|
+
import { DesignerRef, programName, FAMILY_SVG } from "./designer.base";
|
6
6
|
import * as i0 from "@angular/core";
|
7
|
-
import * as i1 from "../../core/
|
8
|
-
import * as i2 from "@angular/
|
9
|
-
import * as i3 from "
|
10
|
-
import * as i4 from "
|
11
|
-
import * as i5 from "@angular/
|
12
|
-
import * as i6 from "
|
13
|
-
import * as i7 from "@angular/material/
|
14
|
-
import * as i8 from "@angular/material/
|
15
|
-
import * as i9 from "@angular/material/
|
16
|
-
import * as i10 from "@angular/material/
|
17
|
-
import * as i11 from "@angular/material/
|
18
|
-
import * as i12 from "
|
7
|
+
import * as i1 from "../../core/component-factory-resolver";
|
8
|
+
import * as i2 from "@angular/common";
|
9
|
+
import * as i3 from "../../core/pipes/sanitize-html.pipe";
|
10
|
+
import * as i4 from "./designer.base";
|
11
|
+
import * as i5 from "@angular/forms";
|
12
|
+
import * as i6 from "../system.service";
|
13
|
+
import * as i7 from "@angular/material/list";
|
14
|
+
import * as i8 from "@angular/material/toolbar";
|
15
|
+
import * as i9 from "@angular/material/form-field";
|
16
|
+
import * as i10 from "@angular/material/button";
|
17
|
+
import * as i11 from "@angular/material/input";
|
18
|
+
import * as i12 from "@angular/material/icon";
|
19
19
|
import * as i13 from "../core/ace.input";
|
20
|
-
import * as i14 from "../../core/pipes/
|
21
|
-
import * as i15 from "../../core/
|
22
|
-
|
23
|
-
|
24
|
-
<defs>
|
25
|
-
<linearGradient id="e399c19f-b68f-429d-b176-18c2117ff73c" x1="-1032.172" x2="-1059.213" y1="145.312" y2="65.426" gradientTransform="matrix(1 0 0 -1 1075 158)" gradientUnits="userSpaceOnUse">
|
26
|
-
<stop offset="0" stop-color="#114a8b"/>
|
27
|
-
<stop offset="1" stop-color="#0669bc"/>
|
28
|
-
</linearGradient>
|
29
|
-
<linearGradient id="ac2a6fc2-ca48-4327-9a3c-d4dcc3256e15" x1="-1023.725" x2="-1029.98" y1="108.083" y2="105.968" gradientTransform="matrix(1 0 0 -1 1075 158)" gradientUnits="userSpaceOnUse">
|
30
|
-
<stop offset="0" stop-opacity=".3"/>
|
31
|
-
<stop offset=".071" stop-opacity=".2"/>
|
32
|
-
<stop offset=".321" stop-opacity=".1"/>
|
33
|
-
<stop offset=".623" stop-opacity=".05"/>
|
34
|
-
<stop offset="1" stop-opacity="0"/>
|
35
|
-
</linearGradient>
|
36
|
-
<linearGradient id="a7fee970-a784-4bb1-af8d-63d18e5f7db9" x1="-1027.165" x2="-997.482" y1="147.642" y2="68.561" gradientTransform="matrix(1 0 0 -1 1075 158)" gradientUnits="userSpaceOnUse">
|
37
|
-
<stop offset="0" stop-color="#3ccbf4"/>
|
38
|
-
<stop offset="1" stop-color="#2892df"/>
|
39
|
-
</linearGradient>
|
40
|
-
</defs>
|
41
|
-
<path fill="url(#e399c19f-b68f-429d-b176-18c2117ff73c)" d="M33.338 6.544h26.038l-27.03 80.087a4.152 4.152 0 0 1-3.933 2.824H8.149a4.145 4.145 0 0 1-3.928-5.47L29.404 9.368a4.152 4.152 0 0 1 3.934-2.825z"/>
|
42
|
-
<path fill="#0078d4" d="M71.175 60.261h-41.29a1.911 1.911 0 0 0-1.305 3.309l26.532 24.764a4.171 4.171 0 0 0 2.846 1.121h23.38z"/>
|
43
|
-
<path fill="url(#ac2a6fc2-ca48-4327-9a3c-d4dcc3256e15)" d="M33.338 6.544a4.118 4.118 0 0 0-3.943 2.879L4.252 83.917a4.14 4.14 0 0 0 3.908 5.538h20.787a4.443 4.443 0 0 0 3.41-2.9l5.014-14.777 17.91 16.705a4.237 4.237 0 0 0 2.666.972H81.24L71.024 60.261l-29.781.007L59.47 6.544z"/>
|
44
|
-
<path fill="url(#a7fee970-a784-4bb1-af8d-63d18e5f7db9)" d="M66.595 9.364a4.145 4.145 0 0 0-3.928-2.82H33.648a4.146 4.146 0 0 1 3.928 2.82l25.184 74.62a4.146 4.146 0 0 1-3.928 5.472h29.02a4.146 4.146 0 0 0 3.927-5.472z"/>
|
45
|
-
</svg>`,
|
46
|
-
'SAP': '<svg xmlns="http://www.w3.org/2000/svg" width="92" height="34" viewBox="0 0 92 45"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="45.483" x2="45.483" y2="45.001"><stop offset="0" stop-color="#00AEEF"/><stop offset=".212" stop-color="#0097DC"/><stop offset=".519" stop-color="#007CC5"/><stop offset=".792" stop-color="#006CB8"/><stop offset="1" stop-color="#0066B3"/></linearGradient><path fill-rule="evenodd" clip-rule="evenodd" fill="url(#a)" d="M0 45h45.974L90.966 0H0v45"/><path fill-rule="evenodd" clip-rule="evenodd" fill="#fff" d="M53.984 9H45l.03 21.13-7.823-21.137H29.45l-6.678 17.653c-.71-4.492-5.354-6.042-9.008-7.203-2.413-.775-4.974-1.915-4.948-3.175.02-1.034 1.37-1.993 4.053-1.85 1.8.097 3.39.242 6.553 1.77l3.11-5.42C19.648 9.3 15.66 8.373 12.39 8.37h-.02c-3.813 0-6.988 1.235-8.956 3.27-1.372 1.42-2.112 3.226-2.142 5.223-.05 2.748.957 4.696 3.073 6.253 1.788 1.31 4.075 2.16 6.09 2.784 2.485.77 4.515 1.44 4.49 2.866-.02.52-.216 1.006-.59 1.398-.62.64-1.57.88-2.885.906-2.537.054-4.417-.345-7.413-2.116L1.27 34.444C4.263 36.146 7.44 37 11.05 37l.812-.006c3.142-.057 5.692-.81 7.718-2.44.116-.093.22-.187.328-.282l-.34 1.752 7.58-.024 1.36-3.482c1.43.488 3.056.758 4.782.758 1.682 0 3.264-.256 4.667-.716l.948 3.44 13.6.013.033-7.938h2.894c6.995 0 11.13-3.56 11.13-9.53C66.56 11.896 62.54 9 53.984 9zM33.29 27.062c-1.045 0-2.025-.182-2.868-.502l2.836-8.955h.055l2.79 8.98c-.84.3-1.797.477-2.814.477zm21.22-5.145h-1.974V14.7h1.975c2.63 0 4.73.876 4.73 3.562-.002 2.78-2.1 3.655-4.73 3.655"/><path fill="none" d="M0 0h92v45H0z"/></svg>',
|
47
|
-
'Mfg': '<svg xmlns="http://www.w3.org/2000/svg" width="34" height="34" viewBox="0 0 316 316" xmlns:v="https://vecta.io/nano"><path fill="#5987c6" d="M216 317H1V1h316v316H216m-77.47-177.333l4.031-4.007 5.991-5.99 3.987-4.054c2.766-2.149 5.532-4.299 8.657-5.913 1.578 1.47 3.157 2.941 5.068 4.914.885.828 1.769 1.656 3.015 3.004 1.237 1.14 2.475 2.28 3.967 4.001 1.633 2.588 3.698 2.278 5.257.252 3.314-4.309 7.455-8.449 9.204-13.386 2.736-7.719 3.77-16.042 6.079-23.639 12.637 18.805 10.656 36.859-3.186 54.454l22.712 22.682c5.602 5.598 9.119 5.468 13.429-1.412 1.839-2.935 3.026-6.805 3.057-10.263l.112-80.96c-.026-10.421-6.832-17.24-17.248-17.258l-105.95-.001c-10.216.017-16.88 6.555-17.252 16.776-.176 4.825-.047 9.661-.047 14.492l-.019 65.969c-.019 7.052 2.351 12.759 8.745 16.191 1.185.636 3.601.866 4.35.144l26.872-26.622c-1.687-2.624-3.11-4.838-3.698-7.045 1.629.236 3.373.179 4.864.766 3.433 1.353 5.741.235 8.003-3.095m-28.629 104.622c16.81-12.977 13.985-34.878-5.713-42.848-11.526-4.664-23.187-4.121-34.385 1.248-8.953 4.293-14.261 11.465-14.312 21.649s5.271 17.245 14.093 21.813c7.806 4.042 16.217 4.961 24.775 3.813 3.487-.468 6.208.096 8.525 2.601 4.52 4.887 10.052 3.331 16.678 2.999-3.925-3.14-6.966-5.43-9.796-7.957-.557-.497-.3-1.905.135-3.317m152.202-15.717c1.905-14.393-7.117-26.47-22.892-28.378-10.464-1.266-21.205-.24-32.11-.24v49.662c9.41 0 18.436.62 27.343-.147 12.945-1.114 23.348-6.565 27.659-20.897m-97.214-24.007l-4.715-7.141-31.908 52.248c4.683-.513 9.413 2.295 11.215-2.513 3.753-10.017 11.014-12.053 20.44-10.681 1.957.285 4.046.342 5.979-.012 7.088-1.299 11.85 1.42 14.482 7.994 2.41 6.019 7.084 5.836 13.035 4.783l-28.529-44.677z"/><path fill="#fdfefe" d="M124.828 141.989l4.533 7.052-26.872 26.622c-.749.722-3.164.493-4.35-.144-6.393-3.433-8.763-9.139-8.745-16.191l.019-65.969c0-4.831-.129-9.667.047-14.492.373-10.222 7.036-16.759 17.252-16.776l105.95.001c10.416.018 17.221 6.837 17.248 17.258l-.112 80.96c-.031 3.458-1.218 7.328-3.057 10.263-4.309 6.88-7.827 7.01-13.429 1.412L190.6 149.302c13.841-17.595 15.823-35.648 2.791-54.982l-7.352-7.362c-2.502-1.664-4.808-3.078-7.363-4.678-2.051-.857-3.854-1.531-6.017-2.392-4.116-.716-7.872-1.243-12.052-1.83-3.155.271-5.887.6-8.954.932-1.191.256-2.047.509-3.277.793-8.513 2.465-15.507 6.575-20.703 13.946l-3.999 5.419c-.742 1.915-1.234 3.605-2.041 5.539-1.026 3.947-1.738 7.651-2.494 11.762-.105 1.773-.165 3.139-.523 4.742.424 4.07 1.145 7.903 1.951 12.112 1.476 3.147 2.868 5.917 4.261 8.687z"/><path d="M109.624 244.501c-.158 1.2-.415 2.608.141 3.105 2.83 2.527 5.871 4.818 9.796 7.957-6.626.332-12.158 1.889-16.678-2.999-2.317-2.505-5.038-3.068-8.525-2.601-8.558 1.148-16.969.229-24.775-3.813-8.822-4.568-14.144-11.625-14.093-21.813s5.359-17.356 14.312-21.649c11.198-5.369 22.859-5.912 34.385-1.248 19.698 7.97 22.522 29.87 5.436 43.06m-43.211-11.824c5.503 11.646 25.725 14.234 36.707 7.078 11.682-7.612 11.708-23.151-.138-30.585-7.671-4.814-16.021-5.134-24.472-2.448-11.458 3.643-16.387 13.817-12.098 25.954zm195.62-3.707c-4.241 13.935-14.644 19.386-27.589 20.501-8.907.767-17.933.147-27.343.147v-49.662c10.906 0 21.646-1.026 32.11.24 15.774 1.908 24.797 13.985 22.822 28.774m-31.807-23.207h-15.008l.076 34.867c.008.802 1.108 1.594 2.634 2.477 3.321.009 6.672.302 9.956-.04 4.744-.493 9.672-.788 14.104-2.352 7.419-2.618 11.717-9.693 11.457-17.028-.263-7.411-4.566-13.29-12.235-15.873-3.241-1.091-6.792-1.259-10.985-2.052z" fill="#fafbfd"/><path fill="#f8fafc" d="M165.072 204.877l28.345 44.366c-5.951 1.053-10.625 1.236-13.035-4.783-2.632-6.574-7.394-9.293-14.482-7.994-1.933.354-4.022.297-5.979.012-9.427-1.372-16.687.664-20.44 10.681-1.802 4.808-6.532 2-11.215 2.513l31.908-52.248 4.898 7.453m3.625 25.011c.181-.854.804-1.972.475-2.52-2.716-4.53-5.608-8.954-8.915-14.146l-9.939 16.701 18.379-.035z"/><path fill="#a9bbe1" d="M151.989 78.988l8.714-.61 3.468 4.295c10.255 11.79 8.907 26.675-3.335 36.494-2.766 2.149-5.532 4.299-8.914 6.499-5.6-.769-10.768-1.013-15.527-2.538-8.265-2.648-14.695-11.515-14.448-18.686.493-1.69.985-3.381 1.919-4.963.804 1.722 1.144 3.341 1.535 4.948 2.311 9.518 11.655 16.819 21.133 16.525 9.971-.309 18.447-7.468 20.434-17.26 2.198-10.826-3.58-20.354-14.98-24.705z"/><path fill="#98b0db" d="M161.016 119.435c12.063-10.087 13.411-24.972 3.156-36.762-1.07-1.23-1.971-2.607-3.045-4.236 3.661.208 7.417.735 11.562 1.822 1.073 2.421 1.679 4.316 2.456 6.139 5.914 13.884 2.482 27.987-9.214 37.715l-4.915-4.678z"/><path fill="#678fca" d="M186.235 87.207l6.879 6.879c-1.637 8.36-2.671 16.683-5.407 24.402-1.75 4.937-5.89 9.077-9.204 13.386-1.558 2.026-3.624 2.336-5.206-.832 6.746-8.411 12.446-16.82 13.194-27.454.382-5.427-.141-10.918-.256-16.381z"/><path fill="#7598cf" d="M186.039 86.958c.31 5.711.833 11.202.451 16.63-.748 10.634-6.448 19.043-13.321 27.163-1.416-.851-2.653-1.991-3.788-3.591 10.391-9.621 14.386-20.958 11.805-34.524-.649-3.41-1.502-6.782-2.261-10.171l7.114 4.493z"/><path d="M118.914 120.953c.06-1.365.12-2.731.568-4.465 2.366 1.037 4.258 2.59 6.341 3.818 4.618 2.723 9.22 5.52 14.054 7.81 2.469 1.17 5.424 1.313 8.159 1.921-1.825 1.874-3.65 3.748-6.092 5.659-2.659-.583-4.781-1.019-6.731-1.855-6.578-2.819-13.754-4.948-16.299-12.889zm59.762-38.672c1.008 3.574 1.861 6.945 2.509 10.355 2.581 13.566-1.414 24.903-11.985 34.264-1.168-.628-2.052-1.456-3.103-2.535 11.529-9.98 14.961-24.083 9.047-37.967-.776-1.823-1.382-3.718-2.096-5.95 1.774.302 3.577.975 5.628 1.833z" fill="#83a1d4"/><path fill="#98b0db" d="M148.294 129.853c-2.993-.423-5.948-.567-8.417-1.737-4.834-2.291-9.436-5.088-14.054-7.81-2.083-1.228-3.975-2.781-6.296-4.226.369-3.742 1.081-7.446 2.106-11.393.067 6.927 6.497 15.794 14.762 18.442 4.759 1.525 9.927 1.769 15.244 2.718-.807 1.36-1.948 2.591-3.346 4.006z"/><path fill="#7598cf" d="M118.617 121.19c2.843 7.703 10.019 9.832 16.597 12.651 1.95.836 4.072 1.272 6.46 2.038-.818 1.36-1.981 2.574-3.697 3.761-6.2-2.256-11.847-4.485-17.493-6.715-.721-3.832-1.443-7.665-1.866-11.735z"/><path fill="#678fca" d="M120.567 133.302c5.562 1.853 11.209 4.082 17.145 6.515-1.445 3.18-3.752 4.298-7.186 2.945-1.491-.587-3.235-.53-5.281-.769-1.809-2.773-3.201-5.544-4.678-8.69z"/><path fill="#c3cfea" d="M127.94 93.496c4.929-7.138 11.924-11.248 20.669-13.425 2.406 1.432 4.174 2.658 6.01 3.771 7.596 4.603 10.968 12.457 8.739 20.456-2.223 7.979-9.499 13.565-17.31 13.291-8.557-.3-15.316-5.906-17.234-14.678-.668-3.056-.603-6.272-.873-9.415m28.038-4.008c-5.92-4.925-15.687-4.683-20.351.505-4.944 5.5-4.696 14.06.565 19.502 5.366 5.551 13.493 5.768 19.278.516 5.995-5.444 6.418-13.527.508-20.523z"/><path fill="#b5c4e5" d="M127.674 93.729c.536 2.909.471 6.125 1.139 9.181 1.918 8.772 8.677 14.378 17.234 14.678 7.812.274 15.087-5.312 17.31-13.291 2.229-7.999-1.143-15.853-8.739-20.456-1.836-1.113-3.604-2.339-5.635-3.8.624-.541 1.479-.795 2.67-1.051 11.735 4.349 17.513 13.877 15.315 24.703-1.988 9.791-10.463 16.95-20.434 17.26-9.479.294-18.823-7.007-21.133-16.525-.39-1.607-.73-3.226-1.286-5.172.969-1.986 2.13-3.639 3.558-5.527z"/><path fill="#5b88c7" d="M66.244 232.314c-4.12-11.774.809-21.949 12.267-25.591 8.451-2.687 16.801-2.366 24.472 2.448 11.846 7.434 11.82 22.973.138 30.585-10.982 7.156-31.205 4.568-36.877-7.441z"/><path fill="#5987c6" d="M231.007 205.966c3.41.588 6.962.756 10.202 1.847 7.669 2.583 11.972 8.462 12.235 15.873.26 7.335-4.037 14.41-11.457 17.028-4.432 1.564-9.36 1.859-14.104 2.352-3.285.342-6.635.049-10.457-.472-.514-10.475-.452-20.438-.579-30.399-.048-3.815 1.51-5.388 5.334-5.366 2.94.017 5.883-.553 8.825-.862z"/><path fill="#7598cf" d="M230.616 205.864c-2.551.411-5.494.982-8.434.965-3.824-.022-5.382 1.551-5.334 5.366l.112 30.356c-.558-.328-1.658-1.119-1.666-1.922l-.076-34.867 15.399.102z"/><path fill="#5b88c7" d="M168.268 229.906l-17.95.018 9.939-16.701 8.915 14.146c.329.548-.293 1.666-.904 2.538z"/><path fill="#d1daef" d="M156.245 89.755c5.642 6.728 5.219 14.811-.776 20.255-5.784 5.252-13.912 5.035-19.278-.516-5.26-5.442-5.508-14.002-.565-19.502 4.663-5.188 14.431-5.43 20.619-.237M141.22 109.5c7.52 2.499 13.571.015 15.388-6.317 1.959-6.827-1.127-12.474-7.878-14.415-4.788-1.376-9.851 1.111-12.38 6.082-2.637 5.182-1.152 10.277 4.869 14.65z"/><path fill="#dde4f3" d="M140.873 109.339c-5.674-4.212-7.159-9.307-4.523-14.489 2.529-4.971 7.592-7.458 12.38-6.082 6.751 1.941 9.837 7.588 7.878 14.415-1.817 6.331-7.869 8.816-15.735 6.156m-.335-13.291c-2.689 3.582-1.067 6.858 1.949 8.42 2.184 1.131 6.138 1.123 8.042-.196 1.553-1.076 2.432-5.544 1.441-7.24-1.166-1.996-4.583-2.944-7.211-3.679-.964-.27-2.462 1.368-4.222 2.695z"/><path fill="#f8fafc" d="M140.791 95.768c1.507-1.047 3.005-2.685 3.969-2.415 2.628.735 6.045 1.683 7.211 3.679.991 1.697.112 6.165-1.441 7.24-1.904 1.319-5.858 1.327-8.042.196-3.016-1.562-4.639-4.839-1.697-8.7m3.542-.034c-2.887 3.592-2.602 7.036.84 7.763 1.378.291 3.525-.233 4.408-1.212s1.371-3.706.71-4.391c-1.257-1.303-3.457-1.696-5.958-2.161z"/><path fill="#fdfefe" d="M144.68 95.581c2.155.618 4.354 1.011 5.612 2.313.661.685.174 3.412-.71 4.391s-3.03 1.503-4.408 1.212c-3.443-.727-3.727-4.171-.494-7.916z"/></svg>'
|
48
|
-
};
|
49
|
-
/**/
|
50
|
-
export class DesignerItemComponent {
|
51
|
-
constructor(_injector, _pane, _fb, _service, _cfr, _element) {
|
52
|
-
this._injector = _injector;
|
53
|
-
this._pane = _pane;
|
54
|
-
this._fb = _fb;
|
55
|
-
this._service = _service;
|
20
|
+
import * as i14 from "../../core/pipes/translate.pipe";
|
21
|
+
import * as i15 from "../../core/slots/pane-ref";
|
22
|
+
export class DesignerElementInfoComponent {
|
23
|
+
constructor(_cfr, _ref) {
|
56
24
|
this._cfr = _cfr;
|
57
|
-
this.
|
58
|
-
this.svg =
|
59
|
-
|
60
|
-
const { designer, mode, model, template } = _pane.data;
|
61
|
-
Object.assign(this, {
|
62
|
-
designer, mode,
|
63
|
-
model: JSON.parse(JSON.stringify(model)),
|
64
|
-
template
|
65
|
-
});
|
66
|
-
}
|
25
|
+
this._ref = _ref;
|
26
|
+
this.svg = FAMILY_SVG;
|
27
|
+
this.model = _ref.model;
|
67
28
|
}
|
68
|
-
|
69
|
-
this.
|
70
|
-
this.
|
29
|
+
ngOnInit() {
|
30
|
+
if (this.model.template) {
|
31
|
+
const factory = this._cfr.resolve(this.model.template);
|
32
|
+
const cRef = this._econtainer.createComponent(factory, 0);
|
33
|
+
cRef.instance.model = this.model;
|
34
|
+
cRef.instance.mode = 'widget';
|
35
|
+
}
|
36
|
+
else if (this.model.arguments?.length) {
|
37
|
+
}
|
71
38
|
}
|
72
|
-
|
73
|
-
|
74
|
-
|
39
|
+
}
|
40
|
+
DesignerElementInfoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: DesignerElementInfoComponent, deps: [{ token: i1.BizDocComponentFactoryResolver }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Component });
|
41
|
+
DesignerElementInfoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: DesignerElementInfoComponent, selector: "bizdoc-designer-element-info", viewQueries: [{ propertyName: "_econtainer", first: true, predicate: ["econtainer"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "_arguments", first: true, predicate: ["arguments"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: `
|
42
|
+
<div [innerHTML]="(svg[model.family]|sanitizeHtml)||model.family" *ngIf="model.family"></div>
|
43
|
+
<ng-content></ng-content>
|
44
|
+
<ng-container #econtainer></ng-container>
|
45
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.SanitizeHtmlPipe, name: "sanitizeHtml" }] });
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: DesignerElementInfoComponent, decorators: [{
|
47
|
+
type: Component,
|
48
|
+
args: [{
|
49
|
+
selector: 'bizdoc-designer-element-info', template: `
|
50
|
+
<div [innerHTML]="(svg[model.family]|sanitizeHtml)||model.family" *ngIf="model.family"></div>
|
51
|
+
<ng-content></ng-content>
|
52
|
+
<ng-container #econtainer></ng-container>
|
53
|
+
`
|
54
|
+
}]
|
55
|
+
}], ctorParameters: function () { return [{ type: i1.BizDocComponentFactoryResolver }, { type: i4.DesignerRef, decorators: [{
|
56
|
+
type: Inject,
|
57
|
+
args: [DesignerRef]
|
58
|
+
}] }]; }, propDecorators: { _econtainer: [{
|
59
|
+
type: ViewChild,
|
60
|
+
args: ['econtainer', { static: true, read: ViewContainerRef }]
|
61
|
+
}], _arguments: [{
|
62
|
+
type: ViewChild,
|
63
|
+
args: ['arguments', { static: true, read: ViewContainerRef }]
|
64
|
+
}] } });
|
65
|
+
export class DesignerElementPhaseComponent {
|
66
|
+
constructor(_ref, _fb, _injector, _cfr, _componentFactoryResolver, _service, _element) {
|
67
|
+
this._ref = _ref;
|
68
|
+
this._fb = _fb;
|
69
|
+
this._injector = _injector;
|
70
|
+
this._cfr = _cfr;
|
71
|
+
this._componentFactoryResolver = _componentFactoryResolver;
|
72
|
+
this._service = _service;
|
73
|
+
this._element = _element;
|
74
|
+
this.onSave = new EventEmitter();
|
75
|
+
this._destroy = new Subject();
|
76
|
+
this.model = _ref.model;
|
77
|
+
if (_ref.mode === 'add')
|
78
|
+
this.dirty = true;
|
79
|
+
this.active = this._ref.mode !== 'widget';
|
75
80
|
}
|
76
81
|
ngOnInit() {
|
77
|
-
if (!this.
|
78
|
-
|
79
|
-
this.
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
82
|
+
if (!this.active)
|
83
|
+
return;
|
84
|
+
const name = this._fb.control(null, Validators.required), title = this._fb.control(null, Validators.required);
|
85
|
+
this.model.resource && title.disable();
|
86
|
+
!this.model.draft && name.disable();
|
87
|
+
this.model.draft && title.valueChanges.pipe(takeUntil(this._destroy)).subscribe((t) => t && name.setValue(programName(t)));
|
88
|
+
this.form.addControl('name', name);
|
89
|
+
this.form.addControl('title', title);
|
90
|
+
if (this.model.privileges) {
|
91
|
+
this.form.addControl('privileges', this._fb.group({
|
92
|
+
rule: null,
|
93
|
+
roles: this._fb.control(null),
|
94
|
+
}), { emitEvent: false });
|
95
|
+
this._service.roles().subscribe(r => {
|
96
|
+
this.roles = r.concat(this._ref.designer.roles.
|
97
|
+
filter(r => !r.disabled).
|
98
|
+
map(r => ({
|
99
|
+
name: r.name,
|
100
|
+
title: r.title,
|
101
|
+
dataType: r.dataType
|
102
|
+
})));
|
103
|
+
});
|
104
|
+
}
|
90
105
|
if (this.model.template) {
|
91
|
-
|
92
|
-
|
106
|
+
const factory = this._cfr.resolve(this.model.template);
|
107
|
+
const cRef = this._econtainer.createComponent(factory, 0, this._injector);
|
93
108
|
cRef.instance.model = this.model;
|
94
|
-
cRef.instance.mode =
|
95
|
-
elementinstance = cRef.instance;
|
109
|
+
cRef.instance.mode = 'edit';
|
110
|
+
const elementinstance = cRef.instance;
|
111
|
+
elementinstance.form.patchValue(this.model.options);
|
112
|
+
this.form.addControl('options', elementinstance.form, { emitEvent: false });
|
96
113
|
}
|
97
|
-
if (this.
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
});
|
103
|
-
this.model.resource && this.form.get('title').disable();
|
104
|
-
this._destroy = new Subject();
|
105
|
-
const { name, title } = this.form.controls;
|
106
|
-
!this.model.draft && name.disable();
|
107
|
-
this.model.draft && title.valueChanges.pipe(takeUntil(this._destroy), debounceTime(100)).subscribe((t) => t && name.setValue(programName(t)));
|
108
|
-
if (this.model.privileges) {
|
109
|
-
this.form.addControl('privileges', this._fb.group({
|
110
|
-
rule: null,
|
111
|
-
roles: this._fb.control(null),
|
112
|
-
}), { emitEvent: false });
|
113
|
-
this._service.roles().subscribe(r => {
|
114
|
-
this.roles = r.concat(this.designer.roles.
|
115
|
-
filter(r => !r.disabled).
|
116
|
-
map(r => ({
|
117
|
-
name: r.name,
|
118
|
-
title: r.title,
|
119
|
-
dataType: r.dataType
|
120
|
-
})));
|
121
|
-
});
|
122
|
-
}
|
123
|
-
if (!elementinstance && this.model.arguments?.length) {
|
124
|
-
const options = this._fb.group({});
|
125
|
-
this.model.arguments?.forEach(a => options.addControl(a.name, this._fb.control(null, this._validations(a))));
|
126
|
-
this.form.addControl('options', options, { emitEvent: false });
|
127
|
-
}
|
128
|
-
this.form.patchValue(this.model);
|
129
|
-
this.form.valueChanges.pipe(takeUntil(this._destroy), debounceTime(100)).
|
130
|
-
subscribe(v => {
|
131
|
-
Object.assign(this.model, v);
|
132
|
-
this.dirty = true;
|
133
|
-
});
|
134
|
-
let state, typestate, elementstate;
|
135
|
-
function validate() {
|
136
|
-
return (!typestate || typestate === 'VALID') && (!state || state === 'VALID') && (!elementstate || elementstate === 'VALID');
|
137
|
-
}
|
138
|
-
this.form.statusChanges.pipe(takeUntil(this._destroy)).subscribe(s => {
|
139
|
-
state = s;
|
140
|
-
this.valid = validate();
|
141
|
-
});
|
142
|
-
typeinstance.form.patchValue(this.model);
|
143
|
-
typeinstance.form.statusChanges.pipe(takeUntil(this._destroy), debounceTime(100)).subscribe(s => {
|
144
|
-
typestate = s;
|
145
|
-
this.valid = validate();
|
146
|
-
});
|
147
|
-
typeinstance.form.valueChanges.pipe(takeUntil(this._destroy), debounceTime(100)).subscribe(v => {
|
148
|
-
Object.assign(this.model, v);
|
149
|
-
this.dirty = true;
|
150
|
-
});
|
151
|
-
if (elementinstance) {
|
152
|
-
elementinstance.form.patchValue(this.model.options);
|
153
|
-
elementinstance.form.valueChanges.pipe(takeUntil(this._destroy), debounceTime(100)).
|
154
|
-
subscribe(v => this.assignargs(v));
|
155
|
-
elementinstance.form.statusChanges.pipe(takeUntil(this._destroy), debounceTime(100)).subscribe(s => {
|
156
|
-
typestate = s;
|
157
|
-
this.valid = validate();
|
158
|
-
});
|
159
|
-
}
|
114
|
+
else if (this.model.arguments?.length) {
|
115
|
+
const factory = this._componentFactoryResolver.resolveComponentFactory(LayoutComponent);
|
116
|
+
const cRef = this._arguments.createComponent(factory);
|
117
|
+
cRef.instance.fields = this.model.arguments;
|
118
|
+
cRef.instance.formulate();
|
119
|
+
this.form.addControl('options', cRef.instance.form, { emitEvent: false });
|
160
120
|
}
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
switch (v.type) {
|
166
|
-
case ValidationType.Required:
|
167
|
-
if (field.type === FieldType.Checkbox || field.type === FieldType.Switch)
|
168
|
-
validators.push(Validators.requiredTrue);
|
169
|
-
else
|
170
|
-
validators.push(Validators.required);
|
171
|
-
break;
|
172
|
-
case ValidationType.Pattern:
|
173
|
-
validators.push(Validators.pattern(field.pattern));
|
174
|
-
break;
|
175
|
-
case ValidationType.Min:
|
176
|
-
validators.push(Validators.min(field.min));
|
177
|
-
break;
|
178
|
-
case ValidationType.Max:
|
179
|
-
validators.push(Validators.max(field.max));
|
180
|
-
break;
|
181
|
-
case ValidationType.MinLength:
|
182
|
-
validators.push(Validators.minLength(field.min));
|
183
|
-
break;
|
184
|
-
case ValidationType.MaxLength:
|
185
|
-
validators.push(Validators.maxLength(field.max));
|
186
|
-
break;
|
187
|
-
case ValidationType.Email:
|
188
|
-
validators.push(Validators.email);
|
189
|
-
break;
|
190
|
-
case ValidationType.Range:
|
191
|
-
validators.push(Validators.min(field.min));
|
192
|
-
validators.push(Validators.max(field.max));
|
193
|
-
break;
|
194
|
-
}
|
121
|
+
this.form.patchValue(this.model, { emitEvent: false });
|
122
|
+
this.form.statusChanges.pipe(takeUntil(this._destroy)).subscribe(s => {
|
123
|
+
this.valid = s === 'VALID';
|
124
|
+
this.dirty = true;
|
195
125
|
});
|
196
|
-
|
126
|
+
this.valid = this.form.valid;
|
197
127
|
}
|
198
|
-
|
199
|
-
this.
|
128
|
+
ngAfterViewInit() {
|
129
|
+
this._element.nativeElement.querySelector('input')?.focus();
|
200
130
|
}
|
201
131
|
unlock(evt) {
|
202
132
|
if (evt.srcElement.tagName !== 'A')
|
@@ -205,9 +135,9 @@ export class DesignerItemComponent {
|
|
205
135
|
this.form.get('title').enable();
|
206
136
|
this._ref._lock$.next(false);
|
207
137
|
}
|
208
|
-
|
209
|
-
Object.assign(this.model
|
210
|
-
this.
|
138
|
+
save() {
|
139
|
+
Object.assign(this.model, this.form.value);
|
140
|
+
this.onSave.emit(this.model);
|
211
141
|
}
|
212
142
|
/**
|
213
143
|
* Ctrl-s save
|
@@ -221,29 +151,96 @@ export class DesignerItemComponent {
|
|
221
151
|
}
|
222
152
|
ngOnDestroy() {
|
223
153
|
this._destroy?.next();
|
154
|
+
this._destroy?.complete();
|
224
155
|
}
|
225
156
|
}
|
226
|
-
|
227
|
-
|
228
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type:
|
157
|
+
DesignerElementPhaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: DesignerElementPhaseComponent, deps: [{ token: DesignerRef }, { token: i5.FormBuilder }, { token: i0.Injector }, { token: i1.BizDocComponentFactoryResolver }, { token: i0.ComponentFactoryResolver }, { token: i6.SystemService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
158
|
+
DesignerElementPhaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: DesignerElementPhaseComponent, selector: "bizdoc-designer-element-edit", inputs: { state: "state", form: "form" }, outputs: { onSave: "save" }, host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" } }, viewQueries: [{ propertyName: "_econtainer", first: true, predicate: ["econtainer"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "_arguments", first: true, predicate: ["arguments"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!valid || !dirty\"><mat-icon>save</mat-icon></button>\r\n</mat-toolbar>\r\n<p class=\"help\">{{model.help}}</p>\r\n<form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <ng-container *ngIf=\"active\">\r\n\r\n <div class=\"row\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required #title />\r\n </mat-form-field>\r\n \r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n </mat-form-field>\r\n\r\n </div>\r\n <p *ngIf=\"model.resource\" class=\"message\" (click)=\"unlock($event)\" [innerHTML]=\"'Unlock'|translate\"></p>\r\n\r\n <!--<ng-container *ngTemplateOutlet=\"_template\"></ng-container>-->\r\n <ng-content></ng-content>\r\n </ng-container>\r\n\r\n <ng-container #econtainer></ng-container>\r\n\r\n <div #arguments></div>\r\n\r\n <ng-container *ngIf=\"form.controls.privileges\" formGroupName=\"privileges\">\r\n <h2 class=\"mat-title\">{{'Privileges'|translate}}</h2>\r\n <mat-selection-list formControlName=\"roles\" *ngIf=\"roles\">\r\n <mat-list-option *ngFor=\"let r of roles\" [value]=\"r.name\">{{r.title}}</mat-list-option>\r\n </mat-selection-list>\r\n <mat-form-field>\r\n <bizdoc-ace-input [placeholder]=\"'Condition'|translate\" formControlName=\"rule\"></bizdoc-ace-input>\r\n <mat-hint> {{ 'ProgrammableExpression'|translate }}</mat-hint>\r\n </mat-form-field>\r\n </ng-container>\r\n</form>\r\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i7.MatSelectionList, selector: "mat-selection-list", inputs: ["disableRipple", "color", "compareWith", "disabled", "multiple"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }, { kind: "component", type: i7.MatListOption, selector: "mat-list-option", inputs: ["disableRipple", "checkboxPosition", "color", "value", "disabled", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }, { kind: "component", type: i8.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "component", type: i10.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i11.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i12.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i13.AceInput, selector: "bizdoc-ace-input", inputs: ["params", "placeholder", "required", "disabled", "value"] }, { kind: "pipe", type: i14.TranslatePipe, name: "translate" }] });
|
159
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: DesignerElementPhaseComponent, decorators: [{
|
229
160
|
type: Component,
|
230
|
-
args: [{ selector: 'bizdoc-designer-element', template: "<
|
231
|
-
}], ctorParameters: function () { return [{ type:
|
232
|
-
type:
|
233
|
-
|
234
|
-
type:
|
235
|
-
}], model: [{
|
161
|
+
args: [{ selector: 'bizdoc-designer-element-edit', template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!valid || !dirty\"><mat-icon>save</mat-icon></button>\r\n</mat-toolbar>\r\n<p class=\"help\">{{model.help}}</p>\r\n<form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <ng-container *ngIf=\"active\">\r\n\r\n <div class=\"row\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required #title />\r\n </mat-form-field>\r\n \r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n </mat-form-field>\r\n\r\n </div>\r\n <p *ngIf=\"model.resource\" class=\"message\" (click)=\"unlock($event)\" [innerHTML]=\"'Unlock'|translate\"></p>\r\n\r\n <!--<ng-container *ngTemplateOutlet=\"_template\"></ng-container>-->\r\n <ng-content></ng-content>\r\n </ng-container>\r\n\r\n <ng-container #econtainer></ng-container>\r\n\r\n <div #arguments></div>\r\n\r\n <ng-container *ngIf=\"form.controls.privileges\" formGroupName=\"privileges\">\r\n <h2 class=\"mat-title\">{{'Privileges'|translate}}</h2>\r\n <mat-selection-list formControlName=\"roles\" *ngIf=\"roles\">\r\n <mat-list-option *ngFor=\"let r of roles\" [value]=\"r.name\">{{r.title}}</mat-list-option>\r\n </mat-selection-list>\r\n <mat-form-field>\r\n <bizdoc-ace-input [placeholder]=\"'Condition'|translate\" formControlName=\"rule\"></bizdoc-ace-input>\r\n <mat-hint> {{ 'ProgrammableExpression'|translate }}</mat-hint>\r\n </mat-form-field>\r\n </ng-container>\r\n</form>\r\n" }]
|
162
|
+
}], ctorParameters: function () { return [{ type: i4.DesignerRef, decorators: [{
|
163
|
+
type: Inject,
|
164
|
+
args: [DesignerRef]
|
165
|
+
}] }, { type: i5.FormBuilder }, { type: i0.Injector }, { type: i1.BizDocComponentFactoryResolver }, { type: i0.ComponentFactoryResolver }, { type: i6.SystemService }, { type: i0.ElementRef }]; }, propDecorators: { state: [{
|
236
166
|
type: Input
|
237
|
-
}],
|
167
|
+
}], form: [{
|
238
168
|
type: Input
|
239
|
-
}],
|
240
|
-
type:
|
241
|
-
args: ['
|
169
|
+
}], onSave: [{
|
170
|
+
type: Output,
|
171
|
+
args: ['save']
|
242
172
|
}], _econtainer: [{
|
243
173
|
type: ViewChild,
|
244
174
|
args: ['econtainer', { static: true, read: ViewContainerRef }]
|
175
|
+
}], _arguments: [{
|
176
|
+
type: ViewChild,
|
177
|
+
args: ['arguments', { static: true, read: ViewContainerRef }]
|
245
178
|
}], handleKeyboardEvent: [{
|
246
179
|
type: HostListener,
|
247
180
|
args: ['document:keydown', ['$event']]
|
248
181
|
}] } });
|
249
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxZQUFZLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQXFCLFFBQVEsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUssT0FBTyxFQUEwRCxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFeEQsT0FBTyxFQUFhLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUd6RSxPQUFPLEVBQUUsV0FBVyxFQUEyRixXQUFXLEVBQWMsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFaEssTUFBTSxHQUFHLEdBQUc7SUFDVixPQUFPLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FzQko7SUFDTCxLQUFLLEVBQUUsMGhEQUEwaEQ7SUFDamlELEtBQUssRUFBRSw4eVJBQTh5UjtDQUN0elIsQ0FBQztBQVFGLElBQUk7QUFNSixNQUFNLE9BQ0UscUJBQXFCO0lBZTNCLFlBQ1UsU0FBbUIsRUFDUCxLQUFjLEVBQzFCLEdBQWdCLEVBQ2hCLFFBQXVCLEVBQ3ZCLElBQW9DLEVBQ3BDLFFBQW9DO1FBTHBDLGNBQVMsR0FBVCxT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Q0FBQztJQUNwQixDQUFDO0lBQ0Q7OztPQUdHO0lBRUgsbUJBQW1CLENBQUMsS0FBb0I7UUFDdEMsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxHQUFHLENBQUMsRUFBRTtZQUNoRSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMxQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQzs7a0hBdk1LLHFCQUFxQjtzR0FBckIscUJBQXFCLHVTQVFtQixnQkFBZ0Isa0hBQ2YsZ0JBQWdCLDJDQzNEakUscS9GQTREQTsyRkRWUSxxQkFBcUI7a0JBTjVCLFNBQVM7K0JBQ0UseUJBQXlCOzswQkFzQmhDLFFBQVE7d0tBYkYsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFNEQsVUFBVTtzQkFBM0UsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRyxXQUFXO3NCQUE3RSxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFO2dCQXNMakUsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5qZWN0b3IsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbFN0YXR1cywgRm9ybUdyb3VwLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEJpekRvY0NvbXBvbmVudEZhY3RvcnlSZXNvbHZlciB9IGZyb20gXCIuLi8uLi9jb3JlL2NvbXBvbmVudC1mYWN0b3J5LXJlc29sdmVyXCI7XHJcbmltcG9ydCB7IEZpZWxkSW5mbywgRmllbGRUeXBlLCBWYWxpZGF0aW9uVHlwZSB9IGZyb20gXCIuLi8uLi9jb3JlL21vZGVsc1wiO1xyXG5pbXBvcnQgeyBQYW5lUmVmIH0gZnJvbSBcIi4uLy4uL2NvcmUvc2xvdHMvcGFuZS1yZWZcIjtcclxuaW1wb3J0IHsgU3lzdGVtU2VydmljZSB9IGZyb20gXCIuLi9zeXN0ZW0uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEZXNpZ25lclJlZiwgRWxlbWVudE1vZGVsLCBEZXNpZ25lckVsZW1lbnRDb21wb25lbnRCYXNlLCBEZXNpZ25lck1vZGVsLCBEZXNpZ25lclR5cGVFbGVtZW50Q29tcG9uZW50LCBwcm9ncmFtTmFtZSwgRGVzaWduTW9kZSB9IGZyb20gXCIuL2Rlc2lnbmVyLmJhc2VcIjtcclxuXHJcbmNvbnN0IFNWRyA9IHtcclxuICBcIkF6dXJlXCI6IGA8c3ZnIHdpZHRoPVwiMzRcIiBoZWlnaHQ9XCIzNFwiIHZpZXdCb3g9XCIwIDAgOTYgOTZcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICA8ZGVmcz5cclxuICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9XCJlMzk5YzE5Zi1iNjhmLTQyOWQtYjE3Ni0xOGMyMTE3ZmY3M2NcIiB4MT1cIi0xMDMyLjE3MlwiIHgyPVwiLTEwNTkuMjEzXCIgeTE9XCIxNDUuMzEyXCIgeTI9XCI2NS40MjZcIiBncmFkaWVudFRyYW5zZm9ybT1cIm1hdHJpeCgxIDAgMCAtMSAxMDc1IDE1OClcIiBncmFkaWVudFVuaXRzPVwidXNlclNwYWNlT25Vc2VcIj5cclxuICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMFwiIHN0b3AtY29sb3I9XCIjMTE0YThiXCIvPlxyXG4gICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIxXCIgc3RvcC1jb2xvcj1cIiMwNjY5YmNcIi8+XHJcbiAgICAgICAgPC9saW5lYXJHcmFkaWVudD5cclxuICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9XCJhYzJhNmZjMi1jYTQ4LTQzMjctOWEzYy1kNGRjYzMyNTZlMTVcIiB4MT1cIi0xMDIzLjcyNVwiIHgyPVwiLTEwMjkuOThcIiB5MT1cIjEwOC4wODNcIiB5Mj1cIjEwNS45NjhcIiBncmFkaWVudFRyYW5zZm9ybT1cIm1hdHJpeCgxIDAgMCAtMSAxMDc1IDE1OClcIiBncmFkaWVudFVuaXRzPVwidXNlclNwYWNlT25Vc2VcIj5cclxuICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMFwiIHN0b3Atb3BhY2l0eT1cIi4zXCIvPlxyXG4gICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIuMDcxXCIgc3RvcC1vcGFjaXR5PVwiLjJcIi8+XHJcbiAgICAgICAgICAgIDxzdG9wIG9mZnNldD1cIi4zMjFcIiBzdG9wLW9wYWNpdHk9XCIuMVwiLz5cclxuICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiLjYyM1wiIHN0b3Atb3BhY2l0eT1cIi4wNVwiLz5cclxuICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMVwiIHN0b3Atb3BhY2l0eT1cIjBcIi8+XHJcbiAgICAgICAgPC9saW5lYXJHcmFkaWVudD5cclxuICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9XCJhN2ZlZTk3MC1hNzg0LTRiYjEtYWY4ZC02M2QxOGU1ZjdkYjlcIiB4MT1cIi0xMDI3LjE2NVwiIHgyPVwiLTk5Ny40ODJcIiB5MT1cIjE0Ny42NDJcIiB5Mj1cIjY4LjU2MVwiIGdyYWRpZW50VHJhbnNmb3JtPVwibWF0cml4KDEgMCAwIC0xIDEwNzUgMTU4KVwiIGdyYWRpZW50VW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiPlxyXG4gICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIwXCIgc3RvcC1jb2xvcj1cIiMzY2NiZjRcIi8+XHJcbiAgICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjFcIiBzdG9wLWNvbG9yPVwiIzI4OTJkZlwiLz5cclxuICAgICAgICA8L2xpbmVhckdyYWRpZW50PlxyXG4gICAgPC9kZWZzPlxyXG4gICAgPHBhdGggZmlsbD1cInVybCgjZTM5OWMxOWYtYjY4Zi00MjlkLWIxNzYtMThjMjExN2ZmNzNjKVwiIGQ9XCJNMzMuMzM4IDYuNTQ0aDI2LjAzOGwtMjcuMDMgODAuMDg3YTQuMTUyIDQuMTUyIDAgMCAxLTMuOTMzIDIuODI0SDguMTQ5YTQuMTQ1IDQuMTQ1IDAgMCAxLTMuOTI4LTUuNDdMMjkuNDA0IDkuMzY4YTQuMTUyIDQuMTUyIDAgMCAxIDMuOTM0LTIuODI1elwiLz5cclxuICAgIDxwYXRoIGZpbGw9XCIjMDA3OGQ0XCIgZD1cIk03MS4xNzUgNjAuMjYxaC00MS4yOWExLjkxMSAxLjkxMSAwIDAgMC0xLjMwNSAzLjMwOWwyNi41MzIgMjQuNzY0YTQuMTcxIDQuMTcxIDAgMCAwIDIuODQ2IDEuMTIxaDIzLjM4elwiLz5cclxuICAgIDxwYXRoIGZpbGw9XCJ1cmwoI2FjMmE2ZmMyLWNhNDgtNDMyNy05YTNjLWQ0ZGNjMzI1NmUxNSlcIiBkPVwiTTMzLjMzOCA2LjU0NGE0LjExOCA0LjExOCAwIDAgMC0zLjk0MyAyLjg3OUw0LjI1MiA4My45MTdhNC4xNCA0LjE0IDAgMCAwIDMuOTA4IDUuNTM4aDIwLjc4N2E0LjQ0MyA0LjQ0MyAwIDAgMCAzLjQxLTIuOWw1LjAxNC0xNC43NzcgMTcuOTEgMTYuNzA1YTQuMjM3IDQuMjM3IDAgMCAwIDIuNjY2Ljk3Mkg4MS4yNEw3MS4wMjQgNjAuMjYxbC0yOS43ODEuMDA3TDU5LjQ3IDYuNTQ0elwiLz5cclxuICAgIDxwYXRoIGZpbGw9XCJ1cmwoI2E3ZmVlOTcwLWE3ODQtNGJiMS1hZjhkLTYzZDE4ZTVmN2RiOSlcIiBkPVwiTTY2LjU5NSA5LjM2NGE0LjE0NSA0LjE0NSAwIDAgMC0zLjkyOC0yLjgySDMzLjY0OGE0LjE0NiA0LjE0NiAwIDAgMSAzLjkyOCAyLjgybDI1LjE4NCA3NC42MmE0LjE0NiA0LjE0NiAwIDAgMS0zLjkyOCA1LjQ3MmgyOS4wMmE0LjE0NiA0LjE0NiAwIDAgMCAzLjkyNy01LjQ3MnpcIi8+XHJcbjwvc3ZnPmAsXHJcbiAgJ1NBUCc6ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjkyXCIgaGVpZ2h0PVwiMzRcIiB2aWV3Qm94PVwiMCAwIDkyIDQ1XCI+PGxpbmVhckdyYWRpZW50IGlkPVwiYVwiIGdyYWRpZW50VW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIHgxPVwiNDUuNDgzXCIgeDI9XCI0NS40ODNcIiB5Mj1cIjQ1LjAwMVwiPjxzdG9wIG9mZnNldD1cIjBcIiBzdG9wLWNvbG9yPVwiIzAwQUVFRlwiLz48c3RvcCBvZmZzZXQ9XCIuMjEyXCIgc3RvcC1jb2xvcj1cIiMwMDk3RENcIi8+PHN0b3Agb2Zmc2V0PVwiLjUxOVwiIHN0b3AtY29sb3I9XCIjMDA3Q0M1XCIvPjxzdG9wIG9mZnNldD1cIi43OTJcIiBzdG9wLWNvbG9yPVwiIzAwNkNCOFwiLz48c3RvcCBvZmZzZXQ9XCIxXCIgc3RvcC1jb2xvcj1cIiMwMDY2QjNcIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGZpbGw9XCJ1cmwoI2EpXCIgZD1cIk0wIDQ1aDQ1Ljk3NEw5MC45NjYgMEgwdjQ1XCIvPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZmlsbD1cIiNmZmZcIiBkPVwiTTUzLjk4NCA5SDQ1bC4wMyAyMS4xMy03LjgyMy0yMS4xMzdIMjkuNDVsLTYuNjc4IDE3LjY1M2MtLjcxLTQuNDkyLTUuMzU0LTYuMDQyLTkuMDA4LTcuMjAzLTIuNDEzLS43NzUtNC45NzQtMS45MTUtNC45NDgtMy4xNzUuMDItMS4wMzQgMS4zNy0xLjk5MyA0LjA1My0xLjg1IDEuOC4wOTcgMy4zOS4yNDIgNi41NTMgMS43N2wzLjExLTUuNDJDMTkuNjQ4IDkuMyAxNS42NiA4LjM3MyAxMi4zOSA4LjM3aC0uMDJjLTMuODEzIDAtNi45ODggMS4yMzUtOC45NTYgMy4yNy0xLjM3MiAxLjQyLTIuMTEyIDMuMjI2LTIuMTQyIDUuMjIzLS4wNSAyLjc0OC45NTcgNC42OTYgMy4wNzMgNi4yNTMgMS43ODggMS4zMSA0LjA3NSAyLjE2IDYuMDkgMi43ODQgMi40ODUuNzcgNC41MTUgMS40NCA0LjQ5IDIuODY2LS4wMi41Mi0uMjE2IDEuMDA2LS41OSAxLjM5OC0uNjIuNjQtMS41Ny44OC0yLjg4NS45MDYtMi41MzcuMDU0LTQuNDE3LS4zNDUtNy40MTMtMi4xMTZMMS4yNyAzNC40NDRDNC4yNjMgMzYuMTQ2IDcuNDQgMzcgMTEuMDUgMzdsLjgxMi0uMDA2YzMuMTQyLS4wNTcgNS42OTItLjgxIDcuNzE4LTIuNDQuMTE2LS4wOTMuMjItLjE4Ny4zMjgtLjI4MmwtLjM0IDEuNzUyIDcuNTgtLjAyNCAxLjM2LTMuNDgyYzEuNDMuNDg4IDMuMDU2Ljc1OCA0Ljc4Mi43NTggMS42ODIgMCAzLjI2NC0uMjU2IDQuNjY3LS43MTZsLjk0OCAzLjQ0IDEzLjYuMDEzLjAzMy03LjkzOGgyLjg5NGM2Ljk5NSAwIDExLjEzLTMuNTYgMTEuMTMtOS41M0M2Ni41NiAxMS44OTYgNjIuNTQgOSA1My45ODQgOXpNMzMuMjkgMjcuMDYyYy0xLjA0NSAwLTIuMDI1LS4xODItMi44NjgtLjUwMmwyLjgzNi04Ljk1NWguMDU1bDIuNzkgOC45OGMtLjg0LjMtMS43OTcuNDc3LTIuODE0LjQ3N3ptMjEuMjItNS4xNDVoLTEuOTc0VjE0LjdoMS45NzVjMi42MyAwIDQuNzMuODc2IDQuNzMgMy41NjItLjAwMiAyLjc4LTIuMSAzLjY1NS00LjczIDMuNjU1XCIvPjxwYXRoIGZpbGw9XCJub25lXCIgZD1cIk0wIDBoOTJ2NDVIMHpcIi8+PC9zdmc+JyxcclxuICAnTWZnJzogJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzRcIiBoZWlnaHQ9XCIzNFwiIHZpZXdCb3g9XCIwIDAgMzE2IDMxNlwiIHhtbG5zOnY9XCJodHRwczovL3ZlY3RhLmlvL25hbm9cIj48cGF0aCBmaWxsPVwiIzU5ODdjNlwiIGQ9XCJNMjE2IDMxN0gxVjFoMzE2djMxNkgyMTZtLTc3LjQ3LTE3Ny4zMzNsNC4wMzEtNC4wMDcgNS45OTEtNS45OSAzLjk4Ny00LjA1NGMyLjc2Ni0yLjE0OSA1LjUzMi00LjI5OSA4LjY1Ny01LjkxMyAxLjU3OCAxLjQ3IDMuMTU3IDIuOTQxIDUuMDY4IDQuOTE0Ljg4NS44MjggMS43NjkgMS42NTYgMy4wMTUgMy4wMDQgMS4yMzcgMS4xNCAyLjQ3NSAyLjI4IDMuOTY3IDQuMDAxIDEuNjMzIDIuNTg4IDMuNjk4IDIuMjc4IDUuMjU3LjI1MiAzLjMxNC00LjMwOSA3LjQ1NS04LjQ0OSA5LjIwNC0xMy4zODYgMi43MzYtNy43MTkgMy43Ny0xNi4wNDIgNi4wNzktMjMuNjM5IDEyLjYzNyAxOC44MDUgMTAuNjU2IDM2Ljg1OS0zLjE4NiA1NC40NTRsMjIuNzEyIDIyLjY4MmM1LjYwMiA1LjU5OCA5LjExOSA1LjQ2OCAxMy40MjktMS40MTIgMS44MzktMi45MzUgMy4wMjYtNi44MDUgMy4wNTctMTAuMjYzbC4xMTItODAuOTZjLS4wMjYtMTAuNDIxLTYuODMyLTE3LjI0LTE3LjI0OC0xNy4yNThsLTEwNS45NS0uMDAxYy0xMC4yMTYuMDE3LTE2Ljg4IDYuNTU1LTE3LjI1MiAxNi43NzYtLjE3NiA0LjgyNS0uMDQ3IDkuNjYxLS4wNDcgMTQuNDkybC0uMDE5IDY1Ljk2OWMtLjAxOSA3LjA1MiAyLjM1MSAxMi43NTkgOC43NDUgMTYuMTkxIDEuMTg1LjYzNiAzLjYwMS44NjYgNC4zNS4xNDRsMjYuODcyLTI2LjYyMmMtMS42ODctMi42MjQtMy4xMS00LjgzOC0zLjY5OC03LjA0NSAxLjYyOS4yMzYgMy4zNzMuMTc5IDQuODY0Ljc2NiAzLjQzMyAxLjM1MyA1Ljc0MS4yMzUgOC4wMDMtMy4wOTVtLTI4LjYyOSAxMDQuNjIyYzE2LjgxLTEyLjk3NyAxMy45ODUtMzQuODc4LTUuNzEzLTQyLjg0OC0xMS41MjYtNC42NjQtMjMuMTg3LTQuMTIxLTM0LjM4NSAxLjI0OC04Ljk1MyA0LjI5My0xNC4yNjEgMTEuNDY1LTE0LjMxMiAyMS42NDlzNS4yNzEgMTcuMjQ1IDE0LjA5MyAyMS44MTNjNy44MDYgNC4wNDIgMTYuMjE3IDQuOTYxIDI0Ljc3NSAzLjgxMyAzLjQ4Ny0uNDY4IDYuMjA4LjA5NiA4LjUyNSAyLjYwMSA0LjUyIDQuODg3IDEwLjA1MiAzLjMzMSAxNi42NzggMi45OTktMy45MjUtMy4xNC02Ljk2Ni01LjQzLTkuNzk2LTcuOTU3LS41NTctLjQ5Ny0uMy0xLjkwNS4xMzUtMy4zMTdtMTUyLjIwMi0xNS43MTdjMS45MDUtMTQuMzkzLTcuMTE3LTI2LjQ3LTIyLjg5Mi0yOC4zNzgtMTAuNDY0LTEuMjY2LTIxLjIwNS0uMjQtMzIuMTEtLjI0djQ5LjY2MmM5LjQxIDAgMTguNDM2LjYyIDI3LjM0My0uMTQ3IDEyLjk0NS0xLjExNCAyMy4zNDgtNi41NjUgMjcuNjU5LTIwLjg5N20tOTcuMjE0LTI0LjAwN2wtNC43MTUtNy4xNDEtMzEuOTA4IDUyLjI0OGM0LjY4My0uNTEzIDkuNDEzIDIuMjk1IDExLjIxNS0yLjUxMyAzLjc1My0xMC4wMTcgMTEuMDE0LTEyLjA1MyAyMC40NC0xMC42ODEgMS45NTcuMjg1IDQuMDQ2LjM0MiA1Ljk3OS0uMDEyIDcuMDg4LTEuMjk5IDExLjg1IDEuNDIgMTQuNDgyIDcuOTk0IDIuNDEgNi4wMTkgNy4wODQgNS44MzYgMTMuMDM1IDQuNzgzbC0yOC41MjktNDQuNjc3elwiLz48cGF0aCBmaWxsPVwiI2ZkZmVmZVwiIGQ9XCJNMTI0LjgyOCAxNDEuOTg5bDQuNTMzIDcuMDUyLTI2Ljg3MiAyNi42MjJjLS43NDkuNzIyLTMuMTY0LjQ5My00LjM1LS4xNDQtNi4zOTMtMy40MzMtOC43NjMtOS4xMzktOC43NDUtMTYuMTkxbC4wMTktNjUuOTY5YzAtNC44MzEtLjEyOS05LjY2Ny4wNDctMTQuNDkyLjM3My0xMC4yMjIgNy4wMzYtMTYuNzU5IDE3LjI1Mi0xNi43NzZsMTA1Ljk1LjAwMWMxMC40MTYuMDE4IDE3LjIyMSA2LjgzNyAxNy4yNDggMTcuMjU4bC0uMTEyIDgwLjk2Yy0uMDMxIDMuNDU4LTEuMjE4IDcuMzI4LTMuMDU3IDEwLjI2My00LjMwOSA2Ljg4LTcuODI3IDcuMDEtMTMuNDI5IDEuNDEyTDE5MC42IDE0OS4zMDJjMTMuODQxLTE3LjU5NSAxNS44MjMtMzUuNjQ4IDIuNzkxLTU0Ljk4MmwtNy4zNTItNy4zNjJjLTIuNTAyLTEuNjY0LTQuODA4LTMuMDc4LTcuMzYzLTQuNjc4LTIuMDUxLS44NTctMy44NTQtMS41MzEtNi4wMTctMi4zOTItNC4xMTYtLjcxNi03Ljg3Mi0xLjI0My0xMi4wNTItMS44My0zLjE1NS4yNzEtNS44ODcuNi04Ljk1NC45MzItMS4xOTEuMjU2LTIuMDQ3LjUwOS0zLjI3Ny43OTMtOC41MTMgMi40NjUtMTUuNTA3IDYuNTc1LTIwLjcwMyAxMy45NDZsLTMuOTk5IDUuNDE5Yy0uNzQyIDEuOTE1LTEuMjM0IDMuNjA1LTIuMDQxIDUuNTM5LTEuMDI2IDMuOTQ3LTEuNzM4IDcuNjUxLTIuNDk0IDExLjc2Mi0uMTA1IDEuNzczLS4xNjUgMy4xMzktLjUyMyA0Ljc0Mi40MjQgNC4wNyAxLjE0NSA3LjkwMyAxLjk1MSAxMi4xMTIgMS40NzYgMy4xNDcgMi44NjggNS45MTcgNC4yNjEgOC42ODd6XCIvPjxwYXRoIGQ9XCJNMTA5LjYyNCAyNDQuNTAxYy0uMTU4IDEuMi0uNDE1IDIuNjA4LjE0MSAzLjEwNSAyLjgzIDIuNTI3IDUuODcxIDQuODE4IDkuNzk2IDcuOTU3LTYuNjI2LjMzMi0xMi4xNTggMS44ODktMTYuNjc4LTIuOTk5LTIuMzE3LTIuNTA1LTUuMDM4LTMuMDY4LTguNTI1LTIuNjAxLTguNTU4IDEuMTQ4LTE2Ljk2OS4yMjktMjQuNzc1LTMuODEzLTguODIyLTQuNTY4LTE0LjE0NC0xMS42MjUtMTQuMDkzLTIxLjgxM3M1LjM1OS0xNy4zNTYgMTQuMzEyLTIxLjY0OWMxMS4xOTgtNS4zNjkgMjIuODU5LTUuOTEyIDM0LjM4NS0xLjI0OCAxOS42OTggNy45NyAyMi41MjIgMjkuODcgNS40MzYgNDMuMDZtLTQzLjIxMS0xMS44MjRjNS41MDMgMTEuNjQ2IDI1LjcyNSAxNC4yMzQgMzYuNzA3IDcuMDc4IDExLjY4Mi03LjYxMiAxMS43MDgtMjMuMTUxLS4xMzgtMzAuNTg1LTcuNjcxLTQuODE0LTE2LjAyMS01LjEzNC0yNC40NzItMi40NDgtMTEuNDU4IDMuNjQzLTE2LjM4NyAxMy44MTctMTIuMDk4IDI1Ljk1NHptMTk1LjYyLTMuNzA3Yy00LjI0MSAxMy45MzUtMTQuNjQ0IDE5LjM4Ni0yNy41ODkgMjAuNTAxLTguOTA3Ljc2Ny0xNy45MzMuMTQ3LTI3LjM0My4xNDd2LTQ5LjY2MmMxMC45MDYgMCAyMS42NDYtMS4wMjYgMzIuMTEuMjQgMTUuNzc0IDEuOTA4IDI0Ljc5NyAxMy45ODUgMjIuODIyIDI4Ljc3NG0tMzEuODA3LTIzLjIwN2gtMTUuMDA4bC4wNzYgMzQuODY3Yy4wMDguODAyIDEuMTA4IDEuNTk0IDIuNjM0IDIuNDc3IDMuMzIxLjAwOSA2LjY3Mi4zMDIgOS45NTYtLjA0IDQuNzQ0LS40OTMgOS42NzItLjc4OCAxNC4xMDQtMi4zNTIgNy40MTktMi42MTggMTEuNzE3LTkuNjkzIDExLjQ1Ny0xNy4wMjgtLjI2My03LjQxMS00LjU2Ni0xMy4yOS0xMi4yMzUtMTUuODczLTMuMjQxLTEuMDkxLTYuNzkyLTEuMjU5LTEwLjk4NS0yLjA1MnpcIiBmaWxsPVwiI2ZhZmJmZFwiLz48cGF0aCBmaWxsPVwiI2Y4ZmFmY1wiIGQ9XCJNMTY1LjA3MiAyMDQuODc3bDI4LjM0NSA0NC4zNjZjLTUuOTUxIDEuMDUzLTEwLjYyNSAxLjIzNi0xMy4wMzUtNC43ODMtMi42MzItNi41NzQtNy4zOTQtOS4yOTMtMTQuNDgyLTcuOTk0LTEuOTMzLjM1NC00LjAyMi4yOTctNS45NzkuMDEyLTkuNDI3LTEuMzcyLTE2LjY4Ny42NjQtMjAuNDQgMTAuNjgxLTEuODAyIDQuODA4LTYuNTMyIDItMTEuMjE1IDIuNTEzbDMxLjkwOC01Mi4yNDggNC44OTggNy40NTNtMy42MjUgMjUuMDExYy4xODEtLjg1NC44MDQtMS45NzIuNDc1LTIuNTItMi43MTYtNC41My01LjYwOC04Ljk1NC04LjkxNS0xNC4xNDZsLTkuOTM5IDE2LjcwMSAxOC4zNzktLjAzNXpcIi8+PHBhdGggZmlsbD1cIiNhOWJiZTFcIiBkPVwiTTE1MS45ODkgNzguOTg4bDguNzE0LS42MSAzLjQ2OCA0LjI5NWMxMC4yNTUgMTEuNzkgOC45MDcgMjYuNjc1LTMuMzM1IDM2LjQ5NC0yLjc2NiAyLjE0OS01LjUzMiA0LjI5OS04LjkxNCA2LjQ5OS01LjYtLjc2OS0xMC43NjgtMS4wMTMtMTUuNTI3LTIuNTM4LTguMjY1LTIuNjQ4LTE0LjY5NS0xMS41MTUtMTQuNDQ4LTE4LjY4Ni40OTMtMS42OS45ODUtMy4zODEgMS45MTktNC45NjMuODA0IDEuNzIyIDEuMTQ0IDMuMzQxIDEuNTM1IDQuOTQ4IDIuMzExIDkuNTE4IDExLjY1NSAxNi44MTkgMjEuMTMzIDE2LjUyNSA5Ljk3MS0uMzA5IDE4LjQ0Ny03LjQ2OCAyMC40MzQtMTcuMjYgMi4xOTgtMTAuODI2LTMuNTgtMjAuMzU0LTE0Ljk4LTI0LjcwNXpcIi8+PHBhdGggZmlsbD1cIiM5OGIwZGJcIiBkPVwiTTE2MS4wMTYgMTE5LjQzNWMxMi4wNjMtMTAuMDg3IDEzLjQxMS0yNC45NzIgMy4xNTYtMzYuNzYyLTEuMDctMS4yMy0xLjk3MS0yLjYwNy0zLjA0NS00LjIzNiAzLjY2MS4yMDggNy40MTcuNzM1IDExLjU2MiAxLjgyMiAxLjA3MyAyLjQyMSAxLjY3OSA0LjMxNiAyLjQ1NiA2LjEzOSA1LjkxNCAxMy44ODQgMi40ODIgMjcuOTg3LTkuMjE0IDM3LjcxNWwtNC45MTUtNC42Nzh6XCIvPjxwYXRoIGZpbGw9XCIjNjc4ZmNhXCIgZD1cIk0xODYuMjM1IDg3LjIwN2w2Ljg3OSA2Ljg3OWMtMS42MzcgOC4zNi0yLjY3MSAxNi42ODMtNS40MDcgMjQuNDAyLTEuNzUgNC45MzctNS44OSA5LjA3Ny05LjIwNCAxMy4zODYtMS41NTggMi4wMjYtMy42MjQgMi4zMzYtNS4yMDYtLjgzMiA2Ljc0Ni04LjQxMSAxMi40NDYtMTYuODIgMTMuMTk0LTI3LjQ1NC4zODItNS40MjctLjE0MS0xMC45MTgtLjI1Ni0xNi4zODF6XCIvPjxwYXRoIGZpbGw9XCIjNzU5OGNmXCIgZD1cIk0xODYuMDM5IDg2Ljk1OGMuMzEgNS43MTEuODMzIDExLjIwMi40NTEgMTYuNjMtLjc0OCAxMC42MzQtNi40NDggMTkuMDQzLTEzLjMyMSAyNy4xNjMtMS40MTYtLjg1MS0yLjY1My0xLjk5MS0zLjc4OC0zLjU5MSAxMC4zOTEtOS42MjEgMTQuMzg2LTIwLjk1OCAxMS44MDUtMzQuNTI0LS42NDktMy40MS0xLjUwMi02Ljc4Mi0yLjI2MS0xMC4xNzFsNy4xMTQgNC40OTN6XCIvPjxwYXRoIGQ9XCJNMTE4LjkxNCAxMjAuOTUzYy4wNi0xLjM2NS4xMi0yLjczMS41NjgtNC40NjUgMi4zNjYgMS4wMzcgNC4yNTggMi41OSA2LjM0MSAzLjgxOCA0LjYxOCAyLjcyMyA5LjIyIDUuNTIgMTQuMDU0IDcuODEgMi40NjkgMS4xNyA1LjQyNCAxLjMxMyA4LjE1OSAxLjkyMS0xLjgyNSAxLjg3NC0zLjY1IDMuNzQ4LTYuMDkyIDUuNjU5LTIuNjU5LS41ODMtNC43ODEtMS4wMTktNi43MzEtMS44NTUtNi41NzgtMi44MTktMTMuNzU0LTQuOTQ4LTE2LjI5OS0xMi44ODl6bTU5Ljc2Mi0zOC42NzJjMS4wMDggMy41NzQgMS44NjEgNi45NDUgMi41MDkgMTAuMzU1IDIuNTgxIDEzLjU2Ni0xLjQxNCAyNC45MDMtMTEuOTg1IDM0LjI2NC0xLjE2OC0uNjI4LTIuMDUyLTEuNDU2LTMuMTAzLTIuNTM1IDExLjUyOS05Ljk4IDE0Ljk2MS0yNC4wODMgOS4wNDctMzcuOTY3LS43NzYtMS44MjMtMS4zODItMy43MTgtMi4wOTYtNS45NSAxLjc3NC4zMDIgMy41NzcuOTc1IDUuNjI4IDEuODMzelwiIGZpbGw9XCIjODNhMWQ0XCIvPjxwYXRoIGZpbGw9XCIjOThiMGRiXCIgZD1cIk0xNDguMjk0IDEyOS44NTNjLTIuOTkzLS40MjMtNS45NDgtLjU2Ny04LjQxNy0xLjczNy00LjgzNC0yLjI5MS05LjQzNi01LjA4OC0xNC4wNTQtNy44MS0yLjA4My0xLjIyOC0zLjk3NS0yLjc4MS02LjI5Ni00LjIyNi4zNjktMy43NDIgMS4wODEtNy40NDYgMi4xMDYtMTEuMzkzLjA2NyA2LjkyNyA2LjQ5NyAxNS43OTQgMTQuNzYyIDE4LjQ0MiA0Ljc1OSAxLjUyNSA5LjkyNyAxLjc2OSAxNS4yNDQgMi43MTgtLjgwNyAxLjM2LTEuOTQ4IDIuNTkxLTMuMzQ2IDQuMDA2elwiLz48cGF0aCBmaWxsPVwiIzc1OThjZlwiIGQ9XCJNMTE4LjYxNyAxMjEuMTljMi44NDMgNy43MDMgMTAuMDE5IDkuODMyIDE2LjU5NyAxMi42NTEgMS45NS44MzYgNC4wNzIgMS4yNzIgNi40NiAyLjAzOC0uODE4IDEuMzYtMS45ODEgMi41NzQtMy42OTcgMy43NjEtNi4yLTIuMjU2LTExLjg0Ny00LjQ4NS0xNy40OTMtNi43MTUtLjcyMS0zLjgzMi0xLjQ0My03LjY2NS0xLjg2Ni0xMS43MzV6XCIvPjxwYXRoIGZpbGw9XCIjNjc4ZmNhXCIgZD1cIk0xMjAuNTY3IDEzMy4zMDJjNS41NjIgMS44NTMgMTEuMjA5IDQuMDgyIDE3LjE0NSA2LjUxNS0xLjQ0NSAzLjE4LTMuNzUyIDQuMjk4LTcuMTg2IDIuOTQ1LTEuNDkxLS41ODctMy4yMzUtLjUzLTUuMjgxLS43NjktMS44MDktMi43NzMtMy4yMDEtNS41NDQtNC42NzgtOC42OXpcIi8+PHBhdGggZmlsbD1cIiNjM2NmZWFcIiBkPVwiTTEyNy45NCA5My40OTZjNC45MjktNy4xMzggMTEuOTI0LTExLjI0OCAyMC42NjktMTMuNDI1IDIuNDA2IDEuNDMyIDQuMTc0IDIuNjU4IDYuMDEgMy43NzEgNy41OTYgNC42MDMgMTAuOTY4IDEyLjQ1NyA4LjczOSAyMC40NTYtMi4yMjMgNy45NzktOS40OTkgMTMuNTY1LTE3LjMxIDEzLjI5MS04LjU1Ny0uMy0xNS4zMTYtNS45MDYtMTcuMjM0LTE0LjY3OC0uNjY4LTMuMDU2LS42MDMtNi4yNzItLjg3My05LjQxNW0yOC4wMzgtNC4wMDhjLTUuOTItNC45MjUtMTUuNjg3LTQuNjgzLTIwLjM1MS41MDUtNC45NDQgNS41LTQuNjk2IDE0LjA2LjU2NSAxOS41MDIgNS4zNjYgNS41NTEgMTMuNDkzIDUuNzY4IDE5LjI3OC41MTYgNS45OTUtNS40NDQgNi40MTgtMTMuNTI3LjUwOC0yMC41MjN6XCIvPjxwYXRoIGZpbGw9XCIjYjVjNGU1XCIgZD1cIk0xMjcuNjc0IDkzLjcyOWMuNTM2IDIuOTA5LjQ3MSA2LjEyNSAxLjEzOSA5LjE4MSAxLjkxOCA4Ljc3MiA4LjY3NyAxNC4zNzggMTcuMjM0IDE0LjY3OCA3LjgxMi4yNzQgMTUuMDg3LTUuMzEyIDE3LjMxLTEzLjI5MSAyLjIyOS03Ljk5OS0xLjE0My0xNS44NTMtOC43MzktMjAuNDU2LTEuODM2LTEuMTEzLTMuNjA0LTIuMzM5LTUuNjM1LTMuOC42MjQtLjU0MSAxLjQ3OS0uNzk1IDIuNjctMS4wNTEgMTEuNzM1IDQuMzQ5IDE3LjUxMyAxMy44NzcgMTUuMzE1IDI0LjcwMy0xLjk4OCA5Ljc5MS0xMC40NjMgMTYuOTUtMjAuNDM0IDE3LjI2LTkuNDc5LjI5NC0xOC44MjMtNy4wMDctMjEuMTMzLTE2LjUyNS0uMzktMS42MDctLjczLTMuMjI2LTEuMjg2LTUuMTcyLjk2OS0xLjk4NiAyLjEzLTMuNjM5IDMuNTU4LTUuNTI3elwiLz48cGF0aCBmaWxsPVwiIzViODhjN1wiIGQ9XCJNNjYuMjQ0IDIzMi4zMTRjLTQuMTItMTEuNzc0LjgwOS0yMS45NDkgMTIuMjY3LTI1LjU5MSA4LjQ1MS0yLjY4NyAxNi44MDEtMi4zNjYgMjQuNDcyIDIuNDQ4IDExLjg0NiA3LjQzNCAxMS44MiAyMi45NzMuMTM4IDMwLjU4NS0xMC45ODIgNy4xNTYtMzEuMjA1IDQuNTY4LTM2Ljg3Ny03LjQ0MXpcIi8+PHBhdGggZmlsbD1cIiM1OTg3YzZcIiBkPVwiTTIzMS4wMDcgMjA1Ljk2NmMzLjQxLjU4OCA2Ljk2Mi43NTYgMTAuMjAyIDEuODQ3IDcuNjY5IDIuNTgzIDExLjk3MiA4LjQ2MiAxMi4yMzUgMTUuODczLjI2IDcuMzM1LTQuMDM3IDE0LjQxLTExLjQ1NyAxNy4wMjgtNC40MzIgMS41NjQtOS4zNiAxLjg1OS0xNC4xMDQgMi4zNTItMy4yODUuMzQyLTYuNjM1LjA0OS0xMC40NTctLjQ3Mi0uNTE0LTEwLjQ3NS0uNDUyLTIwLjQzOC0uNTc5LTMwLjM5OS0uMDQ4LTMuODE1IDEuNTEtNS4zODggNS4zMzQtNS4zNjYgMi45NC4wMTcgNS44ODMtLjU1MyA4LjgyNS0uODYyelwiLz48cGF0aCBmaWxsPVwiIzc1OThjZlwiIGQ9XCJNMjMwLjYxNiAyMDUuODY0Yy0yLjU1MS40MTEtNS40OTQuOTgyLTguNDM0Ljk2NS0zLjgyNC0uMDIyLTUuMzgyIDEuNTUxLTUuMzM0IDUuMzY2bC4xMTIgMzAuMzU2Yy0uNTU4LS4zMjgtMS42NTgtMS4xMTktMS42NjYtMS45MjJsLS4wNzYtMzQuODY3IDE1LjM5OS4xMDJ6XCIvPjxwYXRoIGZpbGw9XCIjNWI4OGM3XCIgZD1cIk0xNjguMjY4IDIyOS45MDZsLTE3Ljk1LjAxOCA5LjkzOS0xNi43MDEgOC45MTUgMTQuMTQ2Yy4zMjkuNTQ4LS4yOTMgMS42NjYtLjkwNCAyLjUzOHpcIi8+PHBhdGggZmlsbD1cIiNkMWRhZWZcIiBkPVwiTTE1Ni4yNDUgODkuNzU1YzUuNjQyIDYuNzI4IDUuMjE5IDE0LjgxMS0uNzc2IDIwLjI1NS01Ljc4NCA1LjI1Mi0xMy45MTIgNS4wMzUtMTkuMjc4LS41MTYtNS4yNi01LjQ0Mi01LjUwOC0xNC4wMDItLjU2NS0xOS41MDIgNC42NjMtNS4xODggMTQuNDMxLTUuNDMgMjAuNjE5LS4yMzdNMTQxLjIyIDEwOS41YzcuNTIgMi40OTkgMTMuNTcxLjAxNSAxNS4zODgtNi4zMTcgMS45NTktNi44MjctMS4xMjctMTIuNDc0LTcuODc4LTE0LjQxNS00Ljc4OC0xLjM3Ni05Ljg1MSAxLjExMS0xMi4zOCA2LjA4Mi0yLjYzNyA1LjE4Mi0xLjE1MiAxMC4yNzcgNC44NjkgMTQuNjV6XCIvPjxwYXRoIGZpbGw9XCIjZGRlNGYzXCIgZD1cIk0xNDAuODczIDEwOS4zMzljLTUuNjc0LTQuMjEyLTcuMTU5LTkuMzA3LTQuNTIzLTE0LjQ4OSAyLjUyOS00Ljk3MSA3LjU5Mi03LjQ1OCAxMi4zOC02LjA4MiA2Ljc1MSAxLjk0MSA5LjgzNyA3LjU4OCA3Ljg3OCAxNC40MTUtMS44MTcgNi4zMzEtNy44NjkgOC44MTYtMTUuNzM1IDYuMTU2bS0uMzM1LTEzLjI5MWMtMi42ODkgMy41ODItMS4wNjcgNi44NTggMS45NDkgOC40MiAyLjE4NCAxLjEzMSA2LjEzOCAxLjEyMyA4LjA0Mi0uMTk2IDEuNTUzLTEuMDc2IDIuNDMyLTUuNTQ0IDEuNDQxLTcuMjQtMS4xNjYtMS45OTYtNC41ODMtMi45NDQtNy4yMTEtMy42NzktLjk2NC0uMjctMi40NjIgMS4zNjgtNC4yMjIgMi42OTV6XCIvPjxwYXRoIGZpbGw9XCIjZjhmYWZjXCIgZD1cIk0xNDAuNzkxIDk1Ljc2OGMxLjUwNy0xLjA0NyAzLjAwNS0yLjY4NSAzLjk2OS0yLjQxNSAyLjYyOC43MzUgNi4wNDUgMS42ODMgNy4yMTEgMy42NzkuOTkxIDEuNjk3LjExMiA2LjE2NS0xLjQ0MSA3LjI0LTEuOTA0IDEuMzE5LTUuODU4IDEuMzI3LTguMDQyLjE5Ni0zLjAxNi0xLjU2Mi00LjYzOS00LjgzOS0xLjY5Ny04LjdtMy41NDItLjAzNGMtMi44ODcgMy41OTItMi42MDIgNy4wMzYuODQgNy43NjMgMS4zNzguMjkxIDMuNTI1LS4yMzMgNC40MDgtMS4yMTJzMS4zNzEtMy43MDYuNzEtNC4zOTFjLTEuMjU3LTEuMzAzLTMuNDU3LTEuNjk2LTUuOTU4LTIuMTYxelwiLz48cGF0aCBmaWxsPVwiI2ZkZmVmZVwiIGQ9XCJNMTQ0LjY4IDk1LjU4MWMyLjE1NS42MTggNC4zNTQgMS4wMTEgNS42MTIgMi4zMTMuNjYxLjY4NS4xNzQgMy40MTItLjcxIDQuMzkxcy0zLjAzIDEuNTAzLTQuNDA4IDEuMjEyYy0zLjQ0My0uNzI3LTMuNzI3LTQuMTcxLS40OTQtNy45MTZ6XCIvPjwvc3ZnPidcclxufTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRWxlbWV0RGF0YSB7XHJcbiAgbW9kZTogRGVzaWduTW9kZTtcclxuICB0ZW1wbGF0ZTogc3RyaW5nO1xyXG4gIG1vZGVsOiBFbGVtZW50TW9kZWw7XHJcbiAgZGVzaWduZXI6IERlc2lnbmVyTW9kZWw7XHJcbn1cclxuLyoqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1kZXNpZ25lci1lbGVtZW50JyxcclxuICBzdHlsZVVybHM6IFsnZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHRlbXBsYXRlVXJsOiAnZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0XHJcbiAgY2xhc3MgRGVzaWduZXJJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIHN2ZyA9IFNWRztcclxuICBmb3JtOiBGb3JtR3JvdXA7XHJcbiAgbW9kZTogRGVzaWduTW9kZTtcclxuICBASW5wdXQoKSB0ZW1wbGF0ZSE6IHN0cmluZztcclxuICBASW5wdXQoKSBtb2RlbCE6IEVsZW1lbnRNb2RlbDtcclxuICBASW5wdXQoKSBkZXNpZ25lciE6IERlc2lnbmVyTW9kZWw7XHJcbiAgY2hhbmdlOiBFdmVudEVtaXR0ZXI8RWxlbWVudE1vZGVsPjtcclxuICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KSBfY29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2Vjb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KSBfZWNvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcclxuICB2YWxpZDogYm9vbGVhbjtcclxuICBkaXJ0eTogYm9vbGVhbjtcclxuICByb2xlczogRWxlbWVudE1vZGVsW107XHJcbiAgcHJpdmF0ZSBfZGVzdHJveTogU3ViamVjdDx2b2lkPjtcclxuICBwcml2YXRlIF9yZWY6IERlc2lnbmVyUmVmPGFueT47XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9wYW5lOiBQYW5lUmVmLFxyXG4gICAgcHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBfc2VydmljZTogU3lzdGVtU2VydmljZSxcclxuICAgIHByaXZhdGUgX2NmcjogQml6RG9jQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgcHJpdmF0ZSBfZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4sXHJcbiAgKSB7XHJcbiAgICBpZiAoX3BhbmUgJiYgX3BhbmUuZGlhbG9nKSB7XHJcbiAgICAgIGNvbnN0IHsgZGVzaWduZXIsIG1vZGUsIG1vZGVsLCB0ZW1wbGF0ZSB9ID0gX3BhbmUuZGF0YSBhcyBFbGVtZXREYXRhO1xyXG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMsIHtcclxuICAgICAgICBkZXNpZ25lciwgbW9kZSxcclxuICAgICAgICBtb2RlbDogSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShtb2RlbCkpLFxyXG4gICAgICAgIHRlbXBsYXRlXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm1vZGUgPT09ICdlZGl0JyAmJlxyXG4gICAgICB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKT8uZm9jdXMoKTtcclxuICB9XHJcbiAgc2F2ZSgpIHtcclxuICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy5tb2RlbCk7XHJcbiAgICB0aGlzLl9wYW5lLmNsb3NlKCk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLm1vZGVsLm9wdGlvbnMpIHRoaXMubW9kZWwub3B0aW9ucyA9IHt9O1xyXG5cclxuICAgIHRoaXMuX3JlZiA9IG5ldyBEZXNpZ25lclJlZih0aGlzLmRlc2lnbmVyLCB0aGlzLm1vZGVsKTtcclxuICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKFt7XHJcbiAgICAgIHByb3ZpZGU6IERlc2lnbmVyUmVmLCB1c2VWYWx1ZTogdGhpcy5fcmVmXHJcbiAgICB9XSwgdGhpcy5faW5qZWN0b3IpO1xyXG5cclxuICAgIGxldCB0eXBlaW5zdGFuY2U7XHJcblxyXG4gICAgbGV0IGZhY3RvcnkgPSB0aGlzLl9jZnIucmVzb2x2ZSh0aGlzLnRlbXBsYXRlKTtcclxuXHJcbiAgICBsZXQgY1JlZiA9IHRoaXMuX2NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQ8RGVzaWduZXJUeXBlRWxlbWVudENvbXBvbmVudD4oZmFjdG9yeSwgMCwgaW5qZWN0b3IpO1xyXG4gICAgY1JlZi5pbnN0YW5jZS5tb2RlbCA9IHRoaXMubW9kZWw7XHJcbiAgICBjUmVmLmluc3RhbmNlLm1vZGUgPSB0aGlzLm1vZGU7XHJcbiAgICB0eXBlaW5zdGFuY2UgPSBjUmVmLmluc3RhbmNlO1xyXG5cclxuICAgIGxldCBlbGVtZW50aW5zdGFuY2U7XHJcblxyXG4gICAgaWYgKHRoaXMubW9kZWwudGVtcGxhdGUpIHtcclxuICAgICAgbGV0IGZhY3RvcnkgPSB0aGlzLl9jZnIucmVzb2x2ZSh0aGlzLm1vZGVsLnRlbXBsYXRlKTtcclxuXHJcbiAgICAgIGxldCBjUmVmID0gdGhpcy5fZWNvbnRhaW5lci5jcmVhdGVDb21wb25lbnQ8RGVzaWduZXJFbGVtZW50Q29tcG9uZW50QmFzZT4oZmFjdG9yeSwgMCwgaW5qZWN0b3IpO1xyXG4gICAgICBjUmVmLmluc3RhbmNlLm1vZGVsID0gdGhpcy5tb2RlbDtcclxuICAgICAgY1JlZi5pbnN0YW5jZS5tb2RlID0gdGhpcy5tb2RlO1xyXG4gICAgICBlbGVtZW50aW5zdGFuY2UgPSBjUmVmLmluc3RhbmNlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLm1vZGUgPT09ICdlZGl0Jykge1xyXG4gICAgICB0aGlzLmNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RWxlbWVudE1vZGVsPigpO1xyXG4gICAgICB0aGlzLmZvcm0gPSB0aGlzLl9mYi5ncm91cCh7XHJcbiAgICAgICAgbmFtZTogdGhpcy5fZmIuY29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgICB0aXRsZTogdGhpcy5fZmIuY29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMubW9kZWwucmVzb3VyY2UgJiYgdGhpcy5mb3JtLmdldCgndGl0bGUnKS5kaXNhYmxlKCk7XHJcbiAgICAgIHRoaXMuX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gICAgICBjb25zdCB7IG5hbWUsIHRpdGxlIH0gPSB0aGlzLmZvcm0uY29udHJvbHM7XHJcbiAgICAgICF0aGlzLm1vZGVsLmRyYWZ0ICYmIG5hbWUuZGlzYWJsZSgpO1xyXG4gICAgICB0aGlzLm1vZGVsLmRyYWZ0ICYmIHRpdGxlLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSwgZGVib3VuY2VUaW1lKDEwMCkpLnN1YnNjcmliZSgodDogc3RyaW5nKSA9PlxyXG4gICAgICAgIHQgJiYgbmFtZS5zZXRWYWx1ZShwcm9ncmFtTmFtZSh0KSlcclxuICAgICAgKTtcclxuICAgICAgaWYgKHRoaXMubW9kZWwucHJpdmlsZWdlcykge1xyXG4gICAgICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKCdwcml2aWxlZ2VzJyxcclxuICAgICAgICAgIHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgICAgICAgICAgcnVsZTogbnVsbCxcclxuICAgICAgICAgICAgcm9sZXM6IHRoaXMuX2ZiLmNvbnRyb2w8c3RyaW5nW10+KG51bGwpLFxyXG4gICAgICAgICAgfSksIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgICB0aGlzLl9zZXJ2aWNlLnJvbGVzKCkuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICAgICAgdGhpcy5yb2xlcyA9IHIuY29uY2F0KHRoaXMuZGVzaWduZXIucm9sZXMuXHJcbiAgICAgICAgICAgIGZpbHRlcihyID0+ICFyLmRpc2FibGVkKS5cclxuICAgICAgICAgICAgbWFwKHIgPT4gKHtcclxuICAgICAgICAgICAgICBuYW1lOiByLm5hbWUsXHJcbiAgICAgICAgICAgICAgdGl0bGU6IHIudGl0bGUsXHJcbiAgICAgICAgICAgICAgZGF0YVR5cGU6IHIuZGF0YVR5cGVcclxuICAgICAgICAgICAgfSkpKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIWVsZW1lbnRpbnN0YW5jZSAmJiB0aGlzLm1vZGVsLmFyZ3VtZW50cz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuX2ZiLmdyb3VwKHt9KTtcclxuICAgICAgICB0aGlzLm1vZGVsLmFyZ3VtZW50cz8uZm9yRWFjaChhID0+XHJcbiAgICAgICAgICBvcHRpb25zLmFkZENvbnRyb2woYS5uYW1lLCB0aGlzLl9mYi5jb250cm9sKG51bGwsIHRoaXMuX3ZhbGlkYXRpb25zKGEpKSkpO1xyXG4gICAgICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKCdvcHRpb25zJywgb3B0aW9ucywgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHRoaXMubW9kZWwpO1xyXG4gICAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLCBkZWJvdW5jZVRpbWUoMTAwKSkuXHJcbiAgICAgICAgc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLm1vZGVsLCB2KTtcclxuICAgICAgICAgIHRoaXMuZGlydHkgPSB0cnVlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICBsZXQgc3RhdGU6IEZvcm1Db250cm9sU3RhdHVzLCB0eXBlc3RhdGU6IEZvcm1Db250cm9sU3RhdHVzLCBlbGVtZW50c3RhdGU6IEZvcm1Db250cm9sU3RhdHVzO1xyXG4gICAgICBmdW5jdGlvbiB2YWxpZGF0ZSgpIHtcclxuICAgICAgICByZXR1cm4gKCF0eXBlc3RhdGUgfHwgdHlwZXN0YXRlID09PSAnVkFMSUQnKSAmJiAoIXN0YXRlIHx8IHN0YXRlID09PSAnVkFMSUQnKSAmJiAoIWVsZW1lbnRzdGF0ZSB8fCBlbGVtZW50c3RhdGUgPT09ICdWQUxJRCcpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZm9ybS5zdGF0dXNDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUocyA9PiB7XHJcbiAgICAgICAgc3RhdGUgPSBzO1xyXG4gICAgICAgIHRoaXMudmFsaWQgPSB2YWxpZGF0ZSgpO1xyXG4gICAgICB9KTtcclxuICAgICAgdHlwZWluc3RhbmNlLmZvcm0ucGF0Y2hWYWx1ZSh0aGlzLm1vZGVsKTtcclxuICAgICAgdHlwZWluc3RhbmNlLmZvcm0uc3RhdHVzQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSwgZGVib3VuY2VUaW1lKDEwMCkpLnN1YnNjcmliZShzID0+IHtcclxuICAgICAgICB0eXBlc3RhdGUgPSBzO1xyXG4gICAgICAgIHRoaXMudmFsaWQgPSB2YWxpZGF0ZSgpO1xyXG4gICAgICB9KTtcclxuICAgICAgdHlwZWluc3RhbmNlLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLCBkZWJvdW5jZVRpbWUoMTAwKSkuc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5tb2RlbCwgdik7XHJcbiAgICAgICAgdGhpcy5kaXJ0eSA9IHRydWU7XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAoZWxlbWVudGluc3RhbmNlKSB7XHJcbiAgICAgICAgZWxlbWVudGluc3RhbmNlLmZvcm0ucGF0Y2hWYWx1ZSh0aGlzLm1vZGVsLm9wdGlvbnMpO1xyXG4gICAgICAgIGVsZW1lbnRpbnN0YW5jZS5mb3JtLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSwgZGVib3VuY2VUaW1lKDEwMCkpLlxyXG4gICAgICAgICAgc3Vic2NyaWJlKHYgPT4gdGhpcy5hc3NpZ25hcmdzKHYpKTtcclxuICAgICAgICBlbGVtZW50aW5zdGFuY2UuZm9ybS5zdGF0dXNDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLCBkZWJvdW5jZVRpbWUoMTAwKSkuc3Vic2NyaWJlKHMgPT4ge1xyXG4gICAgICAgICAgdHlwZXN0YXRlID0gcztcclxuICAgICAgICAgIHRoaXMudmFsaWQgPSB2YWxpZGF0ZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHByaXZhdGUgX3ZhbGlkYXRpb25zKGZpZWxkOiBGaWVsZEluZm8pIHtcclxuICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcclxuICAgIGZpZWxkLnZhbGlkYXRpb25zLmZvckVhY2godiA9PiB7XHJcbiAgICAgIHN3aXRjaCAodi50eXBlKSB7XHJcbiAgICAgICAgY2FzZSBWYWxpZGF0aW9uVHlwZS5SZXF1aXJlZDpcclxuICAgICAgICAgIGlmIChmaWVsZC50eXBlID09PSBGaWVsZFR5cGUuQ2hlY2tib3ggfHwgZmllbGQudHlwZSA9PT0gRmllbGRUeXBlLlN3aXRjaClcclxuICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWRUcnVlKTtcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBWYWxpZGF0aW9uVHlwZS5QYXR0ZXJuOlxyXG4gICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucGF0dGVybihmaWVsZC5wYXR0ZXJuKSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFZhbGlkYXRpb25UeXBlLk1pbjpcclxuICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1pbihmaWVsZC5taW4pKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgVmFsaWRhdGlvblR5cGUuTWF4OlxyXG4gICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4KGZpZWxkLm1heCkpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBWYWxpZGF0aW9uVHlwZS5NaW5MZW5ndGg6XHJcbiAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW5MZW5ndGgoZmllbGQubWluKSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFZhbGlkYXRpb25UeXBlLk1heExlbmd0aDpcclxuICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1heExlbmd0aChmaWVsZC5tYXgpKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgVmFsaWRhdGlvblR5cGUuRW1haWw6XHJcbiAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5lbWFpbCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFZhbGlkYXRpb25UeXBlLlJhbmdlOlxyXG4gICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWluKGZpZWxkLm1pbikpO1xyXG4gICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4KGZpZWxkLm1heCkpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHZhbGlkYXRvcnM7XHJcbiAgfVxyXG4gIHNldE9wdGlvbnMob2JqOiBhbnkpIHtcclxuICAgIHRoaXMuZm9ybS5nZXQoJ29wdGlvbnMnKS5wYXRjaFZhbHVlKG9iaik7XHJcbiAgfVxyXG4gIHVubG9jayhldnQ6IEV2ZW50KSB7XHJcbiAgICBpZiAoKGV2dC5zcmNFbGVtZW50IGFzIEhUTUxFbGVtZW50KS50YWdOYW1lICE9PSAnQScpIHJldHVybjtcclxuICAgIHRoaXMubW9kZWwucmVzb3VyY2UgPSBudWxsO1xyXG4gICAgdGhpcy5mb3JtLmdldCgndGl0bGUnKS5lbmFibGUoKTtcclxuICAgIHRoaXMuX3JlZi5fbG9jayQubmV4dChmYWxzZSk7XHJcbiAgfVxyXG4gIGFzc2lnbmFyZ3MoYXJncykge1xyXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLm1vZGVsLm9wdGlvbnMsIGFyZ3MpO1xyXG4gICAgdGhpcy5kaXJ0eSA9IHRydWU7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEN0cmwtcyBzYXZlXHJcbiAgICogQHBhcmFtIGV2ZW50XHJcbiAgICovXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXHJcbiAgaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYgKGV2ZW50LmN0cmxLZXkgJiYgKGV2ZW50LndoaWNoID09PSA4MyB8fCBldmVudC53aGljaCA9PT0gMTE1KSkge1xyXG4gICAgICB0aGlzLnZhbGlkICYmIHRoaXMuc2F2ZSgpO1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3k/Lm5leHQoKTtcclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGUgPT09ICdlZGl0JzsgZWxzZSBpbmZvXCI+XHJcbiAgPG1hdC10b29sYmFyPlxyXG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInNhdmUoKVwiIFtkaXNhYmxlZF09XCIhdmFsaWRcIj48bWF0LWljb24+c2F2ZTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgPC9tYXQtdG9vbGJhcj5cclxuICA8cCBjbGFzcz1cImhlbHBcIj57e21vZGVsLmhlbHB9fTwvcD5cclxuICA8Zm9ybSBhdXRvY29tcGxldGU9XCJvZmZcIiBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cInJvd1wiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleFwiPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7J1RpdGxlJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIiByZXF1aXJlZCAjdGl0bGUgLz5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAmbmJzcDtcclxuICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZsZXhcIj5cclxuICAgICAgPG1hdC1sYWJlbD57eydOYW1lJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIHJlcXVpcmVkIC8+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDwvZm9ybT5cclxuICA8cCAqbmdJZj1cIm1vZGVsLnJlc291cmNlXCIgY2xhc3M9XCJtZXNzYWdlXCIgKGNsaWNrKT1cInVubG9jaygkZXZlbnQpXCIgW2lubmVySFRNTF09XCInVW5sb2NrJ3x0cmFuc2xhdGVcIj48L3A+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPG5nLXRlbXBsYXRlICNpbmZvPlxyXG4gIDwhLS08c3BhbiBjbGFzcz1cImZhbWlseVwiPnt7bW9kZWwuZmFtaWx5fX08L3NwYW4+LS0+XHJcbiAgPGRpdiBbaW5uZXJIVE1MXT1cIihzdmdbbW9kZWwuZmFtaWx5XXxzYW5pdGl6ZUh0bWwpfHxtb2RlbC5mYW1pbHlcIiAqbmdJZj1cIm1vZGVsLmZhbWlseVwiPjwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLWNvbnRhaW5lciAjZWNvbnRhaW5lcj48L25nLWNvbnRhaW5lcj5cclxuPG5nLWNvbnRhaW5lciAjY29udGFpbmVyPjwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbjxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwiY29sdW1uXCIgKm5nSWY9XCJtb2RlID09PSAnZWRpdCdcIj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibW9kZWwuYXJndW1lbnRzPy5sZW5ndGhcIj5cclxuICAgIDxiaXpkb2MtbGF5b3V0IFtmaWVsZHNdPVwibW9kZWwuYXJndW1lbnRzXCIgW21vZGVsXT1cIm1vZGVsLm9wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cInNldE9wdGlvbnMoJGV2ZW50KVwiPjwvYml6ZG9jLWxheW91dD5cclxuICAgIDwhLS08bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWVsZCBvciBtb2RlbC5hcmd1bWVudHNcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZmllbGQudHlwZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICA8bWF0LWxhYmVsICpuZ0lmPVwiZmllbGQucGxhY2Vob2xkZXJcIj57e2ZpZWxkLmxhYmVsIHx8IGZpZWxkLm5hbWV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgW3R5cGVdPVwiZmllbGQudHlwZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIGZvcm1Db250cm9sTmFtZT1jb250cm9sIFtwbGFjZWhvbGRlcl09XCJmaWVsZC5wbGFjZWhvbGRlciB8fCBmaWVsZC5sYWJlbCB8fCBmaWVsZC5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJmaWVsZC5yZXF1aXJlZFwiIFttaW5sZW5ndGhdPVwiZmllbGQubWluXCIgW21heGxlbmd0aF09XCJmaWVsZC5tYXhcIiBbcGF0dGVybl09XCJmaWVsZC5wYXR0ZXJuXCIgLz5cclxuICAgICAgICAgICAgPG1hdC1oaW50ICpuZ0lmPVwiZmllbGQuaGludFwiPiB7eyBmaWVsZC5oaW50IH19PC9tYXQtaGludD5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0Zvcj1cImxldCB2IG9mIGZpZWxkLnZhbGlkYXRpb25zXCIgKm5nSWY9XCJjb250cm9sLmhhc0Vycm9yKHYudHlwZS50b0xvd2VyQ2FzZSgpKVwiPiB7eyB2Lm1lc3NhZ2UgfX0gPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgLS0+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGVsLnByaXZpbGVnZXNcIiBmb3JtR3JvdXBOYW1lPVwicHJpdmlsZWdlc1wiPlxyXG4gICAgPGgyIGNsYXNzPVwibWF0LXRpdGxlXCI+e3snUHJpdmlsZWdlcyd8dHJhbnNsYXRlfX08L2gyPlxyXG4gICAgPG1hdC1zZWxlY3Rpb24tbGlzdCBmb3JtQ29udHJvbE5hbWU9XCJyb2xlc1wiICpuZ0lmPVwicm9sZXNcIj5cclxuICAgICAgPG1hdC1saXN0LW9wdGlvbiAqbmdGb3I9XCJsZXQgciBvZiByb2xlc1wiIFt2YWx1ZV09XCJyLm5hbWVcIj57e3IudGl0bGV9fTwvbWF0LWxpc3Qtb3B0aW9uPlxyXG4gICAgPC9tYXQtc2VsZWN0aW9uLWxpc3Q+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxiaXpkb2MtYWNlLWlucHV0IFtwbGFjZWhvbGRlcl09XCInQ29uZGl0aW9uJ3x0cmFuc2xhdGVcIiBmb3JtQ29udHJvbE5hbWU9XCJydWxlXCI+PC9iaXpkb2MtYWNlLWlucHV0PlxyXG4gICAgICA8bWF0LWhpbnQ+IHt7ICdQcm9ncmFtbWFibGVFeHByZXNzaW9uJ3x0cmFuc2xhdGUgfX08L21hdC1oaW50PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9mb3JtPlxyXG4iXX0=
|
182
|
+
/**
|
183
|
+
```html
|
184
|
+
<bizdoc-designer-element (save)="save.emit($event)">
|
185
|
+
<bizdoc-designer-element-info>
|
186
|
+
</bizdoc-designer-element-info>
|
187
|
+
<bizdoc-designer-element-edit [form]="form">
|
188
|
+
<form autocomplete="off" [formGroup]="form">
|
189
|
+
</form>
|
190
|
+
</bizdoc-designer-element-edit>
|
191
|
+
</bizdoc-designer-element>
|
192
|
+
```
|
193
|
+
*/
|
194
|
+
export class DesignerItemComponent {
|
195
|
+
constructor(ref, _pane) {
|
196
|
+
this._pane = _pane;
|
197
|
+
this.save = new EventEmitter();
|
198
|
+
this.mode = ref.mode;
|
199
|
+
this.model = ref.model;
|
200
|
+
}
|
201
|
+
ngOnChanges() {
|
202
|
+
//if (this.state) this.phase = this.phases?.find(p => p.state === this.state);
|
203
|
+
//else this.phase = this.phases?.first;
|
204
|
+
}
|
205
|
+
ngAfterContentInit() {
|
206
|
+
this.mode !== 'widget' &&
|
207
|
+
this.phases?.forEach(p => p.onSave.subscribe(e => {
|
208
|
+
this.save.emit(e);
|
209
|
+
this._pane.close();
|
210
|
+
}));
|
211
|
+
}
|
212
|
+
}
|
213
|
+
DesignerItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: DesignerItemComponent, deps: [{ token: DesignerRef }, { token: i15.PaneRef, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
214
|
+
DesignerItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: { state: "state" }, outputs: { save: "save" }, queries: [{ propertyName: "info", first: true, predicate: DesignerElementInfoComponent, descendants: true }, { propertyName: "phases", predicate: DesignerElementPhaseComponent }], usesOnChanges: true, ngImport: i0, template: `<ng-container *ngIf="mode === 'widget'; else edit">
|
215
|
+
<ng-content select="bizdoc-designer-element-info"></ng-content>
|
216
|
+
</ng-container>
|
217
|
+
<ng-template #edit>
|
218
|
+
<ng-content select="bizdoc-designer-element-edit"></ng-content>
|
219
|
+
</ng-template>
|
220
|
+
`, isInline: true, styles: [":host{flex:1}::ng-deep form{padding:8px}::ng-deep .flex{flex:1}p.message{margin:5px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
221
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: DesignerItemComponent, decorators: [{
|
222
|
+
type: Component,
|
223
|
+
args: [{ selector: 'bizdoc-designer-element', template: `<ng-container *ngIf="mode === 'widget'; else edit">
|
224
|
+
<ng-content select="bizdoc-designer-element-info"></ng-content>
|
225
|
+
</ng-container>
|
226
|
+
<ng-template #edit>
|
227
|
+
<ng-content select="bizdoc-designer-element-edit"></ng-content>
|
228
|
+
</ng-template>
|
229
|
+
`, styles: [":host{flex:1}::ng-deep form{padding:8px}::ng-deep .flex{flex:1}p.message{margin:5px}\n"] }]
|
230
|
+
}], ctorParameters: function () { return [{ type: i4.DesignerRef, decorators: [{
|
231
|
+
type: Inject,
|
232
|
+
args: [DesignerRef]
|
233
|
+
}] }, { type: i15.PaneRef, decorators: [{
|
234
|
+
type: Optional
|
235
|
+
}] }]; }, propDecorators: { info: [{
|
236
|
+
type: ContentChild,
|
237
|
+
args: [DesignerElementInfoComponent]
|
238
|
+
}], phases: [{
|
239
|
+
type: ContentChildren,
|
240
|
+
args: [DesignerElementPhaseComponent]
|
241
|
+
}], state: [{
|
242
|
+
type: Input
|
243
|
+
}], save: [{
|
244
|
+
type: Output
|
245
|
+
}] } });
|
246
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBNEIsWUFBWSxFQUFFLGVBQWUsRUFBYyxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBWSxLQUFLLEVBQXFCLFFBQVEsRUFBRSxNQUFNLEVBQTBCLFNBQVMsRUFBZ0IsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM1IsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFJckUsT0FBTyxFQUFFLFdBQVcsRUFBK0IsV0FBVyxFQUFjLFVBQVUsRUFBNEIsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFRMUksTUFBTSxPQUFPLDRCQUE0QjtJQUt2QyxZQUNVLElBQW9DLEVBQ2YsSUFBc0I7UUFEM0MsU0FBSSxHQUFKLElBQUksQ0FBZ0M7UUFDZixTQUFJLEdBQUosSUFBSSxDQUFrQjtRQU5yRCxRQUFHLEdBQUcsVUFBVSxDQUFDO1FBUWYsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBcUIsQ0FBQztJQUMxQyxDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLEtBQUssQ0FB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QUMsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQXFCLENBQUM7SUFDekMsQ0FBQztJQUNELFdBQVc7UUFDVCw4RUFBOEU7UUFDOUUsdUNBQXVDO0lBQ3pDLENBQUM7SUFDRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRO1lBQ3BCLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3JCLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDUCxDQUFDOztrSEEzQksscUJBQXFCLGtCQVdqQixXQUFXO3NHQVhmLHFCQUFxQix3SkFDYiw0QkFBNEIsNERBQ3pCLDZCQUE2QixrREFYNUM7Ozs7OztDQU1IOzJGQUdPLHFCQUFxQjtrQkFiNUIsU0FBUzsrQkFDRSx5QkFBeUIsWUFHakM7Ozs7OztDQU1IOzswQkFjSSxNQUFNOzJCQUFDLFdBQVc7OzBCQUNsQixRQUFROzRDQVhpQyxJQUFJO3NCQUEvQyxZQUFZO3VCQUFDLDRCQUE0QjtnQkFDTSxNQUFNO3NCQUFyRCxlQUFlO3VCQUFDLDZCQUE2QjtnQkFDckMsS0FBSztzQkFBYixLQUFLO2dCQUNhLElBQUk7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgQ29udGVudENoaWxkLCBDb250ZW50Q2hpbGRyZW4sIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbmplY3QsIEluamVjdG9yLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBPdXRwdXQsIFF1ZXJ5TGlzdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NoaWxkcmVuLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBCaXpEb2NDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgfSBmcm9tIFwiLi4vLi4vY29yZS9jb21wb25lbnQtZmFjdG9yeS1yZXNvbHZlclwiO1xyXG5pbXBvcnQgeyBMYXlvdXRDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29yZS9sYXlvdXQvbGF5b3V0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBSb2xlIH0gZnJvbSBcIi4uLy4uL2NvcmUvbW9kZWxzXCI7XHJcbmltcG9ydCB7IFBhbmVSZWYgfSBmcm9tIFwiLi4vLi4vY29yZS9zbG90cy9wYW5lLXJlZlwiO1xyXG5pbXBvcnQgeyBTeXN0ZW1TZXJ2aWNlIH0gZnJvbSBcIi4uL3N5c3RlbS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERlc2lnbmVyUmVmLCBFbGVtZW50TW9kZWwsIERlc2lnbmVyTW9kZWwsIHByb2dyYW1OYW1lLCBEZXNpZ25Nb2RlLCBGQU1JTFlfU1ZHLCBEZXNpZ25lckVsZW1lbnRDb21wb25lbnQgfSBmcm9tIFwiLi9kZXNpZ25lci5iYXNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1kZXNpZ25lci1lbGVtZW50LWluZm8nLCB0ZW1wbGF0ZTogYFxyXG4gIDxkaXYgW2lubmVySFRNTF09XCIoc3ZnW21vZGVsLmZhbWlseV18c2FuaXRpemVIdG1sKXx8bW9kZWwuZmFtaWx5XCIgKm5nSWY9XCJtb2RlbC5mYW1pbHlcIj48L2Rpdj5cclxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG48bmctY29udGFpbmVyICNlY29udGFpbmVyPjwvbmctY29udGFpbmVyPlxyXG5gIH0pXHJcbmV4cG9ydCBjbGFzcyBEZXNpZ25lckVsZW1lbnRJbmZvQ29tcG9uZW50IHtcclxuICBzdmcgPSBGQU1JTFlfU1ZHO1xyXG4gIG1vZGVsOiBFbGVtZW50TW9kZWw8YW55PjtcclxuICBAVmlld0NoaWxkKCdlY29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgX2Vjb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XHJcbiAgQFZpZXdDaGlsZCgnYXJndW1lbnRzJywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgX2FyZ3VtZW50czogVmlld0NvbnRhaW5lclJlZjtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2NmcjogQml6RG9jQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgQEluamVjdChEZXNpZ25lclJlZikgcHJpdmF0ZSBfcmVmOiBEZXNpZ25lclJlZjxhbnk+LFxyXG4gICkge1xyXG4gICAgdGhpcy5tb2RlbCA9IF9yZWYubW9kZWwgYXMgRWxlbWVudE1vZGVsO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLm1vZGVsLnRlbXBsYXRlKSB7XHJcbiAgICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLl9jZnIucmVzb2x2ZSh0aGlzLm1vZGVsLnRlbXBsYXRlKTtcclxuXHJcbiAgICAgIGNvbnN0IGNSZWYgPSB0aGlzLl9lY29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudDxEZXNpZ25lckVsZW1lbnRDb21wb25lbnQ8YW55Pj4oZmFjdG9yeSwgMCk7XHJcbiAgICAgIGNSZWYuaW5zdGFuY2UubW9kZWwgPSB0aGlzLm1vZGVsO1xyXG4gICAgICBjUmVmLmluc3RhbmNlLm1vZGUgPSAnd2lkZ2V0JztcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMubW9kZWwuYXJndW1lbnRzPy5sZW5ndGgpIHtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWRlc2lnbmVyLWVsZW1lbnQtZWRpdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICdkZXNpZ25lci1lbGVtZW50LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRGVzaWduZXJFbGVtZW50UGhhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIHN0YXRlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZm9ybSE6IEZvcm1Hcm91cDtcclxuICBAT3V0cHV0KCdzYXZlJykgcmVhZG9ubHkgb25TYXZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIC8vQFZpZXdDaGlsZCgnW2JpemRvY0NvbnRlbnRdJywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFRlbXBsYXRlUmVmIH0pIF90ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAVmlld0NoaWxkKCdlY29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgX2Vjb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XHJcbiAgQFZpZXdDaGlsZCgnYXJndW1lbnRzJywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgX2FyZ3VtZW50czogVmlld0NvbnRhaW5lclJlZjtcclxuICBtb2RlbDogRWxlbWVudE1vZGVsPGFueT47XHJcbiAgcm9sZXM6IFJvbGVbXTtcclxuICB2YWxpZDogYm9vbGVhbjtcclxuICBkaXJ0eTogYm9vbGVhbjtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBhY3RpdmU6IGJvb2xlYW47XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KERlc2lnbmVyUmVmKSBwcml2YXRlIF9yZWY6IERlc2lnbmVyUmVmPGFueT4sXHJcbiAgICBwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIF9jZnI6IEJpekRvY0NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIHByaXZhdGUgX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgcHJpdmF0ZSBfc2VydmljZTogU3lzdGVtU2VydmljZSxcclxuICAgIHByaXZhdGUgX2VsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+KSB7XHJcbiAgICB0aGlzLm1vZGVsID0gX3JlZi5tb2RlbCBhcyBFbGVtZW50TW9kZWw7XHJcbiAgICBpZiAoX3JlZi5tb2RlID09PSAnYWRkJykgdGhpcy5kaXJ0eSA9IHRydWU7XHJcbiAgICB0aGlzLmFjdGl2ZSA9IHRoaXMuX3JlZi5tb2RlICE9PSAnd2lkZ2V0JztcclxuICB9XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAoIXRoaXMuYWN0aXZlKSByZXR1cm47XHJcbiAgICBjb25zdCBuYW1lID0gdGhpcy5fZmIuY29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgdGl0bGUgPSB0aGlzLl9mYi5jb250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgdGhpcy5tb2RlbC5yZXNvdXJjZSAmJiB0aXRsZS5kaXNhYmxlKCk7XHJcbiAgICAhdGhpcy5tb2RlbC5kcmFmdCAmJiBuYW1lLmRpc2FibGUoKTtcclxuICAgIHRoaXMubW9kZWwuZHJhZnQgJiYgdGl0bGUudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoKHQ6IHN0cmluZykgPT5cclxuICAgICAgdCAmJiBuYW1lLnNldFZhbHVlKHByb2dyYW1OYW1lKHQpKVxyXG4gICAgKTtcclxuICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKCduYW1lJywgbmFtZSk7XHJcbiAgICB0aGlzLmZvcm0uYWRkQ29udHJvbCgndGl0bGUnLCB0aXRsZSk7XHJcbiAgICBpZiAodGhpcy5tb2RlbC5wcml2aWxlZ2VzKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKCdwcml2aWxlZ2VzJyxcclxuICAgICAgICB0aGlzLl9mYi5ncm91cCh7XHJcbiAgICAgICAgICBydWxlOiBudWxsLFxyXG4gICAgICAgICAgcm9sZXM6IHRoaXMuX2ZiLmNvbnRyb2w8c3RyaW5nW10+KG51bGwpLFxyXG4gICAgICAgIH0pLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgIHRoaXMuX3NlcnZpY2Uucm9sZXMoKS5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgICAgdGhpcy5yb2xlcyA9IHIuY29uY2F0KCh0aGlzLl9yZWYuZGVzaWduZXIucm9sZXMgYXMgRWxlbWVudE1vZGVsW10pLlxyXG4gICAgICAgICAgZmlsdGVyKHIgPT4gIXIuZGlzYWJsZWQpLlxyXG4gICAgICAgICAgbWFwKHIgPT4gKHtcclxuICAgICAgICAgICAgbmFtZTogci5uYW1lLFxyXG4gICAgICAgICAgICB0aXRsZTogci50aXRsZSxcclxuICAgICAgICAgICAgZGF0YVR5cGU6IHIuZGF0YVR5cGVcclxuICAgICAgICAgIH0pKSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubW9kZWwudGVtcGxhdGUpIHtcclxuICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuX2Nmci5yZXNvbHZlKHRoaXMubW9kZWwudGVtcGxhdGUpO1xyXG5cclxuICAgICAgY29uc3QgY1JlZiA9IHRoaXMuX2Vjb250YWluZXIuY3JlYXRlQ29tcG9uZW50PERlc2lnbmVyRWxlbWVudENvbXBvbmVudDxhbnk+PihmYWN0b3J5LCAwLCB0aGlzLl9pbmplY3Rvcik7XHJcbiAgICAgIGNSZWYuaW5zdGFuY2UubW9kZWwgPSB0aGlzLm1vZGVsO1xyXG4gICAgICBjUmVmLmluc3RhbmNlLm1vZGUgPSAnZWRpdCc7XHJcbiAgICAgIGNvbnN0IGVsZW1lbnRpbnN0YW5jZSA9IGNSZWYuaW5zdGFuY2U7XHJcbiAgICAgIGVsZW1lbnRpbnN0YW5jZS5mb3JtLnBhdGNoVmFsdWUodGhpcy5tb2RlbC5vcHRpb25zKTtcclxuICAgICAgdGhpcy5mb3JtLmFkZENvbnRyb2woJ29wdGlvbnMnLCBlbGVtZW50aW5zdGFuY2UuZm9ybSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5tb2RlbC5hcmd1bWVudHM/Lmxlbmd0aCkge1xyXG4gICAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5fY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KExheW91dENvbXBvbmVudCk7XHJcbiAgICAgIGNvbnN0IGNSZWYgPSB0aGlzLl9hcmd1bWVudHMuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xyXG4gICAgICBjUmVmLmluc3RhbmNlLmZpZWxkcyA9IHRoaXMubW9kZWwuYXJndW1lbnRzO1xyXG4gICAgICBjUmVmLmluc3RhbmNlLmZvcm11bGF0ZSgpO1xyXG4gICAgICB0aGlzLmZvcm0uYWRkQ29udHJvbCgnb3B0aW9ucycsIGNSZWYuaW5zdGFuY2UuZm9ybSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHRoaXMubW9kZWwsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIHRoaXMuZm9ybS5zdGF0dXNDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUocyA9PiB7XHJcbiAgICAgIHRoaXMudmFsaWQgPSBzID09PSAnVkFMSUQnO1xyXG4gICAgICB0aGlzLmRpcnR5ID0gdHJ1ZTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy52YWxpZCA9IHRoaXMuZm9ybS52YWxpZDtcclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk/LmZvY3VzKCk7XHJcbiAgfVxyXG4gIHVubG9jayhldnQ6IEV2ZW50KSB7XHJcbiAgICBpZiAoKGV2dC5zcmNFbGVtZW50IGFzIEhUTUxFbGVtZW50KS50YWdOYW1lICE9PSAnQScpIHJldHVybjtcclxuICAgIHRoaXMubW9kZWwucmVzb3VyY2UgPSBudWxsO1xyXG4gICAgdGhpcy5mb3JtLmdldCgndGl0bGUnKS5lbmFibGUoKTtcclxuICAgIHRoaXMuX3JlZi5fbG9jayQubmV4dChmYWxzZSk7XHJcbiAgfVxyXG4gIHNhdmUoKSB7XHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMubW9kZWwsIHRoaXMuZm9ybS52YWx1ZSk7XHJcbiAgICB0aGlzLm9uU2F2ZS5lbWl0KHRoaXMubW9kZWwpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBDdHJsLXMgc2F2ZVxyXG4gICAqIEBwYXJhbSBldmVudFxyXG4gICAqL1xyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxyXG4gIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmIChldmVudC5jdHJsS2V5ICYmIChldmVudC53aGljaCA9PT0gODMgfHwgZXZlbnQud2hpY2ggPT09IDExNSkpIHtcclxuICAgICAgdGhpcy52YWxpZCAmJiB0aGlzLnNhdmUoKTtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Py5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95Py5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiBgYGBodG1sXHJcbjxiaXpkb2MtZGVzaWduZXItZWxlbWVudCAoc2F2ZSk9XCJzYXZlLmVtaXQoJGV2ZW50KVwiPlxyXG4gIDxiaXpkb2MtZGVzaWduZXItZWxlbWVudC1pbmZvPlxyXG4gIDwvYml6ZG9jLWRlc2lnbmVyLWVsZW1lbnQtaW5mbz5cclxuICA8Yml6ZG9jLWRlc2lnbmVyLWVsZW1lbnQtZWRpdCBbZm9ybV09XCJmb3JtXCI+XHJcbiAgICA8Zm9ybSBhdXRvY29tcGxldGU9XCJvZmZcIiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cclxuICAgIDwvZm9ybT5cclxuICA8L2JpemRvYy1kZXNpZ25lci1lbGVtZW50LWVkaXQ+XHJcbjwvYml6ZG9jLWRlc2lnbmVyLWVsZW1lbnQ+XHJcbiBgYGBcclxuKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtZGVzaWduZXItZWxlbWVudCcsXHJcbiAgc3R5bGVVcmxzOiBbJ2Rlc2lnbmVyLWVsZW1lbnQuY29tcG9uZW50LnNjc3MnXSxcclxuICB0ZW1wbGF0ZTpcclxuICAgIGA8bmctY29udGFpbmVyICpuZ0lmPVwibW9kZSA9PT0gJ3dpZGdldCc7IGVsc2UgZWRpdFwiPlxyXG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImJpemRvYy1kZXNpZ25lci1lbGVtZW50LWluZm9cIj48L25nLWNvbnRlbnQ+XHJcbjwvbmctY29udGFpbmVyPlxyXG48bmctdGVtcGxhdGUgI2VkaXQ+XHJcbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYml6ZG9jLWRlc2lnbmVyLWVsZW1lbnQtZWRpdFwiPjwvbmctY29udGVudD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuYFxyXG59KVxyXG5leHBvcnRcclxuICBjbGFzcyBEZXNpZ25lckl0ZW1Db21wb25lbnQge1xyXG4gIEBDb250ZW50Q2hpbGQoRGVzaWduZXJFbGVtZW50SW5mb0NvbXBvbmVudCkgaW5mbzogRGVzaWduZXJFbGVtZW50SW5mb0NvbXBvbmVudDtcclxuICBAQ29udGVudENoaWxkcmVuKERlc2lnbmVyRWxlbWVudFBoYXNlQ29tcG9uZW50KSBwaGFzZXM6IFF1ZXJ5TGlzdDxEZXNpZ25lckVsZW1lbnRQaGFzZUNvbXBvbmVudD47XHJcbiAgQElucHV0KCkgc3RhdGU6IHN0cmluZztcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgc2F2ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBtb2RlOiBEZXNpZ25Nb2RlO1xyXG4gIHZhbGlkOiBib29sZWFuO1xyXG4gIGRpcnR5OiBib29sZWFuO1xyXG4gIG1vZGVsOiBFbGVtZW50TW9kZWw8YW55PjtcclxuICBwaGFzZTogRGVzaWduZXJFbGVtZW50UGhhc2VDb21wb25lbnQ7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KERlc2lnbmVyUmVmKSByZWY6IERlc2lnbmVyUmVmPGFueT4sXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9wYW5lOiBQYW5lUmVmLFxyXG4gICkge1xyXG4gICAgdGhpcy5tb2RlID0gcmVmLm1vZGU7XHJcbiAgICB0aGlzLm1vZGVsID0gcmVmLm1vZGVsIGFzIEVsZW1lbnRNb2RlbDtcclxuICB9XHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICAvL2lmICh0aGlzLnN0YXRlKSB0aGlzLnBoYXNlID0gdGhpcy5waGFzZXM/LmZpbmQocCA9PiBwLnN0YXRlID09PSB0aGlzLnN0YXRlKTtcclxuICAgIC8vZWxzZSB0aGlzLnBoYXNlID0gdGhpcy5waGFzZXM/LmZpcnN0O1xyXG4gIH1cclxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XHJcbiAgICB0aGlzLm1vZGUgIT09ICd3aWRnZXQnICYmXHJcbiAgICAgIHRoaXMucGhhc2VzPy5mb3JFYWNoKHAgPT4gcC5vblNhdmUuc3Vic2NyaWJlKGUgPT4ge1xyXG4gICAgICAgIHRoaXMuc2F2ZS5lbWl0KGUpO1xyXG4gICAgICAgIHRoaXMuX3BhbmUuY2xvc2UoKTtcclxuICAgICAgfSkpXHJcbiAgfVxyXG59XHJcbiIsIjxtYXQtdG9vbGJhcj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwic2F2ZSgpXCIgW2Rpc2FibGVkXT1cIiF2YWxpZCB8fCAhZGlydHlcIj48bWF0LWljb24+c2F2ZTwvbWF0LWljb24+PC9idXR0b24+XHJcbjwvbWF0LXRvb2xiYXI+XHJcbjxwIGNsYXNzPVwiaGVscFwiPnt7bW9kZWwuaGVscH19PC9wPlxyXG48Zm9ybSBhdXRvY29tcGxldGU9XCJvZmZcIiBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cImNvbHVtblwiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3RpdmVcIj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZsZXhcIj5cclxuICAgICAgICA8bWF0LWxhYmVsPnt7J1RpdGxlJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiIHJlcXVpcmVkICN0aXRsZSAvPlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAmbmJzcDtcclxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleFwiPlxyXG4gICAgICAgIDxtYXQtbGFiZWw+e3snTmFtZSd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIHJlcXVpcmVkIC8+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgICA8cCAqbmdJZj1cIm1vZGVsLnJlc291cmNlXCIgY2xhc3M9XCJtZXNzYWdlXCIgKGNsaWNrKT1cInVubG9jaygkZXZlbnQpXCIgW2lubmVySFRNTF09XCInVW5sb2NrJ3x0cmFuc2xhdGVcIj48L3A+XHJcblxyXG4gICAgPCEtLTxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJfdGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj4tLT5cclxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAjZWNvbnRhaW5lcj48L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPGRpdiAjYXJndW1lbnRzPjwvZGl2PlxyXG5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybS5jb250cm9scy5wcml2aWxlZ2VzXCIgZm9ybUdyb3VwTmFtZT1cInByaXZpbGVnZXNcIj5cclxuICAgIDxoMiBjbGFzcz1cIm1hdC10aXRsZVwiPnt7J1ByaXZpbGVnZXMnfHRyYW5zbGF0ZX19PC9oMj5cclxuICAgIDxtYXQtc2VsZWN0aW9uLWxpc3QgZm9ybUNvbnRyb2xOYW1lPVwicm9sZXNcIiAqbmdJZj1cInJvbGVzXCI+XHJcbiAgICAgIDxtYXQtbGlzdC1vcHRpb24gKm5nRm9yPVwibGV0IHIgb2Ygcm9sZXNcIiBbdmFsdWVdPVwici5uYW1lXCI+e3tyLnRpdGxlfX08L21hdC1saXN0LW9wdGlvbj5cclxuICAgIDwvbWF0LXNlbGVjdGlvbi1saXN0PlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8Yml6ZG9jLWFjZS1pbnB1dCBbcGxhY2Vob2xkZXJdPVwiJ0NvbmRpdGlvbid8dHJhbnNsYXRlXCIgZm9ybUNvbnRyb2xOYW1lPVwicnVsZVwiPjwvYml6ZG9jLWFjZS1pbnB1dD5cclxuICAgICAgPG1hdC1oaW50PiB7eyAnUHJvZ3JhbW1hYmxlRXhwcmVzc2lvbid8dHJhbnNsYXRlIH19PC9tYXQtaGludD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZm9ybT5cclxuIl19
|