ps-toolkit-ui 0.0.1
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/README.md +24 -0
- package/bundles/ps-toolkit-ui.umd.js +7344 -0
- package/bundles/ps-toolkit-ui.umd.js.map +1 -0
- package/bundles/ps-toolkit-ui.umd.min.js +2 -0
- package/bundles/ps-toolkit-ui.umd.min.js.map +1 -0
- package/esm2015/lib/classes/enum.class.js +162 -0
- package/esm2015/lib/classes/form.class.js +467 -0
- package/esm2015/lib/classes/helper.class.js +275 -0
- package/esm2015/lib/classes/lang.class.js +32 -0
- package/esm2015/lib/classes/login.class.js +22 -0
- package/esm2015/lib/classes/modal.class.js +52 -0
- package/esm2015/lib/classes/permission.class.js +29 -0
- package/esm2015/lib/classes/request.class.js +255 -0
- package/esm2015/lib/classes/safestyle.class.js +15 -0
- package/esm2015/lib/classes/sidebar.class.js +14 -0
- package/esm2015/lib/classes/steps.class.js +20 -0
- package/esm2015/lib/classes/string.class.js +203 -0
- package/esm2015/lib/classes/table.class.js +278 -0
- package/esm2015/lib/components/accordion/accordion.component.js +45 -0
- package/esm2015/lib/components/alert/alert.component.js +41 -0
- package/esm2015/lib/components/base.component.js +55 -0
- package/esm2015/lib/components/confirm/confirm.component.js +50 -0
- package/esm2015/lib/components/footer/footer.component.js +23 -0
- package/esm2015/lib/components/form/bank-card/form.bank-card.component.js +148 -0
- package/esm2015/lib/components/form/button/form.button.component.js +68 -0
- package/esm2015/lib/components/form/car/form.car.component.js +84 -0
- package/esm2015/lib/components/form/car/search/form.car.search.component.js +173 -0
- package/esm2015/lib/components/form/checkbox/form.checkbox.component.js +66 -0
- package/esm2015/lib/components/form/date/form.date.component.js +256 -0
- package/esm2015/lib/components/form/datetime/form.datetime.component.js +104 -0
- package/esm2015/lib/components/form/file/form.file.component.js +133 -0
- package/esm2015/lib/components/form/finger/form.finger.component.js +138 -0
- package/esm2015/lib/components/form/icon/form.icon.component.js +76 -0
- package/esm2015/lib/components/form/index/form.component.js +48 -0
- package/esm2015/lib/components/form/label/form.label.component.js +31 -0
- package/esm2015/lib/components/form/plaque/form.plaque.component.js +176 -0
- package/esm2015/lib/components/form/plaque/select/form.plaque.select.component.js +390 -0
- package/esm2015/lib/components/form/radio/form.radio.component.js +79 -0
- package/esm2015/lib/components/form/select/form.select.component.js +369 -0
- package/esm2015/lib/components/form/select/item/form.select.item.component.js +43 -0
- package/esm2015/lib/components/form/table/form.table.component.js +98 -0
- package/esm2015/lib/components/form/textarea/form.textarea.component.js +78 -0
- package/esm2015/lib/components/form/textbox/form.textbox.component.js +186 -0
- package/esm2015/lib/components/form/time/form.time.component.js +145 -0
- package/esm2015/lib/components/form/tree/form.tree.component.js +93 -0
- package/esm2015/lib/components/form/tree/item/form.tree.item.component.js +48 -0
- package/esm2015/lib/components/header/header.component.js +28 -0
- package/esm2015/lib/components/header/sub/sub.header.component.js +14 -0
- package/esm2015/lib/components/layout/layout.component.js +23 -0
- package/esm2015/lib/components/loading/loading.component.js +22 -0
- package/esm2015/lib/components/login/login.component.js +145 -0
- package/esm2015/lib/components/modal/modal.component.js +25 -0
- package/esm2015/lib/components/notfound/notfound.component.js +29 -0
- package/esm2015/lib/components/notification/notification.component.js +14 -0
- package/esm2015/lib/components/sidebar/item/sidebar.item.component.js +53 -0
- package/esm2015/lib/components/sidebar/sidebar.component.js +65 -0
- package/esm2015/lib/components/steps/steps.component.js +51 -0
- package/esm2015/lib/components/table/loading/table.loading.component.js +17 -0
- package/esm2015/lib/components/table/pagination/table.pagination.component.js +84 -0
- package/esm2015/lib/components/table/report/table.report.component.js +245 -0
- package/esm2015/lib/components/table/row/table.row.component.js +274 -0
- package/esm2015/lib/components/table/table.component.js +207 -0
- package/esm2015/lib/components/tooltip/tooltip.component.js +19 -0
- package/esm2015/lib/ps-toolkit-ui.module.js +89 -0
- package/esm2015/lib/services/config.service.js +14 -0
- package/esm2015/ps-toolkit-ui.js +16 -0
- package/esm2015/public-api.js +52 -0
- package/fesm2015/ps-toolkit-ui.js +6277 -0
- package/fesm2015/ps-toolkit-ui.js.map +1 -0
- package/lib/classes/enum.class.d.ts +137 -0
- package/lib/classes/form.class.d.ts +173 -0
- package/lib/classes/helper.class.d.ts +26 -0
- package/lib/classes/lang.class.d.ts +5 -0
- package/lib/classes/login.class.d.ts +17 -0
- package/lib/classes/modal.class.d.ts +19 -0
- package/lib/classes/permission.class.d.ts +19 -0
- package/lib/classes/request.class.d.ts +12 -0
- package/lib/classes/safestyle.class.d.ts +7 -0
- package/lib/classes/sidebar.class.d.ts +11 -0
- package/lib/classes/steps.class.d.ts +17 -0
- package/lib/classes/string.class.d.ts +201 -0
- package/lib/classes/table.class.d.ts +67 -0
- package/lib/components/accordion/accordion.component.d.ts +7 -0
- package/lib/components/alert/alert.component.d.ts +10 -0
- package/lib/components/base.component.d.ts +12 -0
- package/lib/components/confirm/confirm.component.d.ts +14 -0
- package/lib/components/footer/footer.component.d.ts +6 -0
- package/lib/components/form/bank-card/form.bank-card.component.d.ts +22 -0
- package/lib/components/form/button/form.button.component.d.ts +15 -0
- package/lib/components/form/car/form.car.component.d.ts +16 -0
- package/lib/components/form/car/search/form.car.search.component.d.ts +18 -0
- package/lib/components/form/checkbox/form.checkbox.component.d.ts +14 -0
- package/lib/components/form/date/form.date.component.d.ts +41 -0
- package/lib/components/form/datetime/form.datetime.component.d.ts +13 -0
- package/lib/components/form/file/form.file.component.d.ts +17 -0
- package/lib/components/form/finger/form.finger.component.d.ts +15 -0
- package/lib/components/form/icon/form.icon.component.d.ts +15 -0
- package/lib/components/form/index/form.component.d.ts +10 -0
- package/lib/components/form/label/form.label.component.d.ts +8 -0
- package/lib/components/form/plaque/form.plaque.component.d.ts +22 -0
- package/lib/components/form/plaque/select/form.plaque.select.component.d.ts +36 -0
- package/lib/components/form/radio/form.radio.component.d.ts +13 -0
- package/lib/components/form/select/form.select.component.d.ts +39 -0
- package/lib/components/form/select/item/form.select.item.component.d.ts +12 -0
- package/lib/components/form/table/form.table.component.d.ts +9 -0
- package/lib/components/form/textarea/form.textarea.component.d.ts +13 -0
- package/lib/components/form/textbox/form.textbox.component.d.ts +20 -0
- package/lib/components/form/time/form.time.component.d.ts +25 -0
- package/lib/components/form/tree/form.tree.component.d.ts +16 -0
- package/lib/components/form/tree/item/form.tree.item.component.d.ts +17 -0
- package/lib/components/header/header.component.d.ts +7 -0
- package/lib/components/header/sub/sub.header.component.d.ts +3 -0
- package/lib/components/layout/layout.component.d.ts +6 -0
- package/lib/components/loading/loading.component.d.ts +5 -0
- package/lib/components/login/login.component.d.ts +13 -0
- package/lib/components/modal/modal.component.d.ts +9 -0
- package/lib/components/notfound/notfound.component.d.ts +7 -0
- package/lib/components/notification/notification.component.d.ts +3 -0
- package/lib/components/sidebar/item/sidebar.item.component.d.ts +14 -0
- package/lib/components/sidebar/sidebar.component.d.ts +18 -0
- package/lib/components/steps/steps.component.d.ts +10 -0
- package/lib/components/table/loading/table.loading.component.d.ts +5 -0
- package/lib/components/table/pagination/table.pagination.component.d.ts +15 -0
- package/lib/components/table/report/table.report.component.d.ts +34 -0
- package/lib/components/table/row/table.row.component.d.ts +36 -0
- package/lib/components/table/table.component.d.ts +39 -0
- package/lib/components/tooltip/tooltip.component.d.ts +5 -0
- package/lib/ps-toolkit-ui.module.d.ts +4 -0
- package/lib/services/config.service.d.ts +6 -0
- package/package.json +22 -0
- package/ps-toolkit-ui.d.ts +15 -0
- package/ps-toolkit-ui.metadata.json +1 -0
- package/public-api.d.ts +48 -0
- package/src/assets/fonts/Vazir.eot +0 -0
- package/src/assets/fonts/Vazir.ttf +0 -0
- package/src/assets/fonts/Vazir.woff +0 -0
- package/src/assets/fonts/Vazir.woff2 +0 -0
- package/src/assets/fonts/VazirBlack.eot +0 -0
- package/src/assets/fonts/VazirBlack.ttf +0 -0
- package/src/assets/fonts/VazirBlack.woff +0 -0
- package/src/assets/fonts/VazirBlack.woff2 +0 -0
- package/src/assets/fonts/VazirBold.eot +0 -0
- package/src/assets/fonts/VazirBold.ttf +0 -0
- package/src/assets/fonts/VazirBold.woff +0 -0
- package/src/assets/fonts/VazirBold.woff2 +0 -0
- package/src/assets/fonts/VazirLight.eot +0 -0
- package/src/assets/fonts/VazirLight.ttf +0 -0
- package/src/assets/fonts/VazirLight.woff +0 -0
- package/src/assets/fonts/VazirLight.woff2 +0 -0
- package/src/assets/fonts/VazirMedium.eot +0 -0
- package/src/assets/fonts/VazirMedium.ttf +0 -0
- package/src/assets/fonts/VazirMedium.woff +0 -0
- package/src/assets/fonts/VazirMedium.woff2 +0 -0
- package/src/assets/fonts/VazirThin.eot +0 -0
- package/src/assets/fonts/VazirThin.ttf +0 -0
- package/src/assets/fonts/VazirThin.woff +0 -0
- package/src/assets/fonts/VazirThin.woff2 +0 -0
- package/src/assets/images/partsilicon.png +0 -0
- package/src/assets/images/plaque.png +0 -0
- package/src/assets/images/plaque_m.png +0 -0
- package/src/assets/scripts/base.js +26 -0
- package/src/assets/styles/base.css +259 -0
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
import { InputError, InputType, Method, ResultStatusEnum } from './enum.class';
|
|
2
|
+
import { HelperClass } from './helper.class';
|
|
3
|
+
import * as $ from 'jquery';
|
|
4
|
+
export class RequestClass {
|
|
5
|
+
constructor(environment = null, l = null) {
|
|
6
|
+
this.environment = environment;
|
|
7
|
+
this.l = l;
|
|
8
|
+
}
|
|
9
|
+
postForm(form, onSubmit = null) {
|
|
10
|
+
if (!form.check()) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
if (form.onBeforeSubmit && !form.onBeforeSubmit()) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
const btns = form.inputs.filter(x => x.type === InputType.Submit);
|
|
17
|
+
for (const btn of btns) {
|
|
18
|
+
if (btn.loading) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
btn.loading = true;
|
|
22
|
+
}
|
|
23
|
+
if (onSubmit) {
|
|
24
|
+
for (const btn of btns) {
|
|
25
|
+
btn.loading = false;
|
|
26
|
+
}
|
|
27
|
+
onSubmit(form.data());
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
this.getClient(form.url, form.method, form.data(), (res) => {
|
|
31
|
+
if (res.status === ResultStatusEnum.Success) {
|
|
32
|
+
if (form.onSuccess) {
|
|
33
|
+
form.onSuccess(res.result);
|
|
34
|
+
}
|
|
35
|
+
if (form.onSuccessBase) {
|
|
36
|
+
form.onSuccessBase(res.result);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
let m = '';
|
|
41
|
+
if (res.status === ResultStatusEnum.Unauthorized) {
|
|
42
|
+
m = 'FormBaseErrorExpired';
|
|
43
|
+
}
|
|
44
|
+
else if (res.status === ResultStatusEnum.NotAccess) {
|
|
45
|
+
m = 'FormBaseErrorPermission';
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
if (typeof res.message === 'string') {
|
|
49
|
+
m = res.message;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
// tslint:disable-next-line:forin
|
|
53
|
+
for (const msg in res.message) {
|
|
54
|
+
// noinspection JSUnfilteredForInLoop
|
|
55
|
+
m = form.l(msg, res.message[msg]);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
let f = false;
|
|
59
|
+
if (res.result != null) {
|
|
60
|
+
// tslint:disable-next-line:forin
|
|
61
|
+
for (const err in res.result) {
|
|
62
|
+
// noinspection JSUnfilteredForInLoop
|
|
63
|
+
const i = form.inputs.find(x => x.name === err);
|
|
64
|
+
if (i) {
|
|
65
|
+
// noinspection JSUnfilteredForInLoop
|
|
66
|
+
i.error = InputError[InputError[res.result[err]]];
|
|
67
|
+
if (!f) {
|
|
68
|
+
i.focus();
|
|
69
|
+
f = true;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
if (m) {
|
|
76
|
+
HelperClass.addNotification(form.l(m));
|
|
77
|
+
}
|
|
78
|
+
if (form.onFailed) {
|
|
79
|
+
form.onFailed(res.message);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
for (const btn of btns) {
|
|
83
|
+
btn.loading = false;
|
|
84
|
+
}
|
|
85
|
+
}, (res) => {
|
|
86
|
+
HelperClass.addNotification(form.l('Error'));
|
|
87
|
+
if (form.onFailed) {
|
|
88
|
+
form.onFailed('Error');
|
|
89
|
+
}
|
|
90
|
+
for (const btn of btns) {
|
|
91
|
+
btn.loading = false;
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
table(table, btn = null) {
|
|
96
|
+
if (table.searchForm && !table.searchForm.check()) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
table.loading = true;
|
|
100
|
+
if (btn) {
|
|
101
|
+
if (btn.loading) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
btn.loading = true;
|
|
105
|
+
}
|
|
106
|
+
this.getClient(table.getUrl(), table.method, table.searchData(), (res) => {
|
|
107
|
+
if (res.status === ResultStatusEnum.Success) {
|
|
108
|
+
table.rows = res.result.List;
|
|
109
|
+
table.count = res.result.Count;
|
|
110
|
+
if (table.onLoad) {
|
|
111
|
+
table.onLoad();
|
|
112
|
+
}
|
|
113
|
+
if (btn) {
|
|
114
|
+
btn.loading = false;
|
|
115
|
+
}
|
|
116
|
+
table.loading = false;
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
let m = '';
|
|
120
|
+
if (res.status === ResultStatusEnum.Unauthorized) {
|
|
121
|
+
m = 'FormBaseErrorExpired';
|
|
122
|
+
}
|
|
123
|
+
else if (res.status === ResultStatusEnum.NotAccess) {
|
|
124
|
+
m = 'FormBaseErrorPermission';
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
if (typeof res.message === 'string') {
|
|
128
|
+
m = res.message;
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
// tslint:disable-next-line:forin
|
|
132
|
+
for (const msg in res.message) {
|
|
133
|
+
// noinspection JSUnfilteredForInLoop
|
|
134
|
+
m = table.l(msg, res.message[msg]);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
if (m) {
|
|
139
|
+
HelperClass.addNotification(table.l(m));
|
|
140
|
+
}
|
|
141
|
+
table.rows = [];
|
|
142
|
+
table.count = 0;
|
|
143
|
+
table.page = 1;
|
|
144
|
+
if (btn) {
|
|
145
|
+
btn.loading = false;
|
|
146
|
+
}
|
|
147
|
+
table.loading = false;
|
|
148
|
+
}
|
|
149
|
+
}, (res) => {
|
|
150
|
+
table.rows = [];
|
|
151
|
+
table.count = 0;
|
|
152
|
+
table.page = 1;
|
|
153
|
+
if (btn) {
|
|
154
|
+
btn.loading = false;
|
|
155
|
+
}
|
|
156
|
+
table.loading = false;
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
send(url, method, data, btn = null, success = null, failure = null) {
|
|
160
|
+
if (btn) {
|
|
161
|
+
if (btn.loading) {
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
btn.loading = true;
|
|
165
|
+
}
|
|
166
|
+
if (data === null) {
|
|
167
|
+
data = new FormData();
|
|
168
|
+
}
|
|
169
|
+
this.getClient(url, method, data, (res) => {
|
|
170
|
+
if (res.status === ResultStatusEnum.Success) {
|
|
171
|
+
if (success) {
|
|
172
|
+
success(res.result);
|
|
173
|
+
}
|
|
174
|
+
if (btn) {
|
|
175
|
+
btn.loading = false;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
let m = '';
|
|
180
|
+
if (res.status === ResultStatusEnum.Unauthorized) {
|
|
181
|
+
m = 'FormBaseErrorExpired';
|
|
182
|
+
}
|
|
183
|
+
else if (res.status === ResultStatusEnum.NotAccess) {
|
|
184
|
+
m = 'FormBaseErrorPermission';
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
if (typeof res.message === 'string') {
|
|
188
|
+
m = res.message;
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
// tslint:disable-next-line:forin
|
|
192
|
+
for (const msg in res.message) {
|
|
193
|
+
// noinspection JSUnfilteredForInLoop
|
|
194
|
+
m = this.l(msg, res.message[msg]);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
if (m) {
|
|
199
|
+
HelperClass.addNotification(this.l(m));
|
|
200
|
+
}
|
|
201
|
+
if (failure) {
|
|
202
|
+
failure(res.message);
|
|
203
|
+
}
|
|
204
|
+
if (btn) {
|
|
205
|
+
btn.loading = false;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}, (res) => {
|
|
209
|
+
if (failure) {
|
|
210
|
+
failure('Error');
|
|
211
|
+
}
|
|
212
|
+
if (btn) {
|
|
213
|
+
btn.loading = false;
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
getClient(url, method, data, done, fail) {
|
|
218
|
+
const token = HelperClass.getCookie('Authorization');
|
|
219
|
+
let settings;
|
|
220
|
+
if (data instanceof FormData) {
|
|
221
|
+
settings = {
|
|
222
|
+
url: this.environment.apiUrl + url,
|
|
223
|
+
method: Method[method].toString(),
|
|
224
|
+
processData: false,
|
|
225
|
+
contentType: false,
|
|
226
|
+
data,
|
|
227
|
+
headers: token == null ? {} : { Authorization: token }
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
settings = {
|
|
232
|
+
url: this.environment.apiUrl + url,
|
|
233
|
+
method: Method[method].toString(),
|
|
234
|
+
dataType: 'json',
|
|
235
|
+
contentType: 'application/json; charset=utf-8',
|
|
236
|
+
data: data !== null && data !== {} ? JSON.stringify(data) : null,
|
|
237
|
+
headers: token == null ? {} : { Authorization: token, Accept: 'application/json' }
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
const request = $.ajax(settings);
|
|
241
|
+
request.done((response) => {
|
|
242
|
+
if (!this.environment.production) {
|
|
243
|
+
console.log('%c' + Method[method].toString() + ' : ' + url, 'background: #2f6054; color: white', response);
|
|
244
|
+
}
|
|
245
|
+
done(response);
|
|
246
|
+
});
|
|
247
|
+
request.fail((response) => {
|
|
248
|
+
if (!this.environment.production) {
|
|
249
|
+
console.log('%c' + Method[method].toString() + ' : ' + url, 'background: #8c413a; color: white', response);
|
|
250
|
+
}
|
|
251
|
+
fail(response);
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qcm9qZWN0cy9Qc1Rvb2xraXQvVUkvcHJvamVjdHMvcHMtdG9vbGtpdC11aS9zcmMvIiwic291cmNlcyI6WyJsaWIvY2xhc3Nlcy9yZXF1ZXN0LmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUU3RSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFFNUIsTUFBTSxPQUFPLFlBQVk7SUFDdkIsWUFBbUIsY0FBYyxJQUFJLEVBQVMsSUFBdUIsSUFBSTtRQUF0RCxnQkFBVyxHQUFYLFdBQVcsQ0FBTztRQUFTLE1BQUMsR0FBRCxDQUFDLENBQTBCO0lBQ3pFLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBZSxFQUFFLFFBQVEsR0FBRyxJQUFJO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDakIsT0FBTztTQUNSO1FBQ0QsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFDO1lBQ2hELE9BQU87U0FDUjtRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEUsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUM7WUFDckIsSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFDO2dCQUNkLE9BQU87YUFDUjtZQUNELEdBQUcsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1NBQ3BCO1FBQ0QsSUFBSSxRQUFRLEVBQUM7WUFDWCxLQUFLLE1BQU0sR0FBRyxJ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SSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxLQUFLLEdBQUcsR0FBRyxFQUFFLG1DQUFtQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2FBQzVHO1lBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBQztnQkFDL0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxHQUFHLEtBQUssR0FBRyxHQUFHLEVBQUUsbUNBQW1DLEVBQUUsUUFBUSxDQUFDLENBQUM7YUFDNUc7WUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Zvcm1DbGFzcywgSW5wdXRDbGFzc30gZnJvbSAnLi9mb3JtLmNsYXNzJztcclxuaW1wb3J0IHtJbnB1dEVycm9yLCBJbnB1dFR5cGUsIE1ldGhvZCwgUmVzdWx0U3RhdHVzRW51bX0gZnJvbSAnLi9lbnVtLmNsYXNzJztcclxuaW1wb3J0IHtUYWJsZUNsYXNzfSBmcm9tICcuL3RhYmxlLmNsYXNzJztcclxuaW1wb3J0IHtIZWxwZXJDbGFzc30gZnJvbSAnLi9oZWxwZXIuY2xhc3MnO1xyXG5pbXBvcnQgKiBhcyAkIGZyb20gJ2pxdWVyeSc7XHJcblxyXG5leHBvcnQgY2xhc3MgUmVxdWVzdENsYXNzIHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZW52aXJvbm1lbnQgPSBudWxsLCBwdWJsaWMgbDogKGssIHY/KSA9PiBzdHJpbmcgPSBudWxsKSB7XHJcbiAgfVxyXG5cclxuICBwb3N0Rm9ybShmb3JtOiBGb3JtQ2xhc3MsIG9uU3VibWl0ID0gbnVsbCk6IHZvaWQge1xyXG4gICAgaWYgKCFmb3JtLmNoZWNrKCkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKGZvcm0ub25CZWZvcmVTdWJtaXQgJiYgIWZvcm0ub25CZWZvcmVTdWJtaXQoKSl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGJ0bnMgPSBmb3JtLmlucHV0cy5maWx0ZXIoeCA9PiB4LnR5cGUgPT09IElucHV0VHlwZS5TdWJtaXQpO1xyXG4gICAgZm9yIChjb25zdCBidG4gb2YgYnRucyl7XHJcbiAgICAgIGlmIChidG4ubG9hZGluZyl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGJ0bi5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChvblN1Ym1pdCl7XHJcbiAgICAgIGZvciAoY29uc3QgYnRuIG9mIGJ0bnMpe1xyXG4gICAgICAgIGJ0bi5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgb25TdWJtaXQoZm9ybS5kYXRhKCkpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldENsaWVudChmb3JtLnVybCwgZm9ybS5tZXRob2QsIGZvcm0uZGF0YSgpLFxyXG4gICAgICAocmVzKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IFJlc3VsdFN0YXR1c0VudW0uU3VjY2Vzcykge1xyXG4gICAgICAgICAgaWYgKGZvcm0ub25TdWNjZXNzKSB7XHJcbiAgICAgICAgICAgIGZvcm0ub25TdWNjZXNzKHJlcy5yZXN1bHQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGZvcm0ub25TdWNjZXNzQmFzZSkge1xyXG4gICAgICAgICAgICBmb3JtLm9uU3VjY2Vzc0Jhc2UocmVzLnJlc3VsdCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGxldCBtID0gJyc7XHJcbiAgICAgICAgICBpZiAocmVzLnN0YXR1cyA9PT0gUmVzdWx0U3RhdHVzRW51bS5VbmF1dGhvcml6ZWQpIHtcclxuICAgICAgICAgICAgbSA9ICdGb3JtQmFzZUVycm9yRXhwaXJlZCc7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHJlcy5zdGF0dXMgPT09IFJlc3VsdFN0YXR1c0VudW0uTm90QWNjZXNzKSB7XHJcbiAgICAgICAgICAgIG0gPSAnRm9ybUJhc2VFcnJvclBlcm1pc3Npb24nO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiByZXMubWVzc2FnZSA9PT0gJ3N0cmluZycpe1xyXG4gICAgICAgICAgICAgIG0gPSByZXMubWVzc2FnZTtcclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmZvcmluXHJcbiAgICAgICAgICAgICAgZm9yIChjb25zdCBtc2cgaW4gcmVzLm1lc3NhZ2UpIHtcclxuICAgICAgICAgICAgICAgIC8vIG5vaW5zcGVjdGlvbiBKU1VuZmlsdGVyZWRGb3JJbkxvb3BcclxuICAgICAgICAgICAgICAgIG0gPSBmb3JtLmwobXNnLCByZXMubWVzc2FnZVttc2ddKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGV0IGYgPSBmYWxzZTtcclxuICAgICAgICAgICAgaWYgKHJlcy5yZXN1bHQgIT0gbnVsbCl7XHJcbiAgICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmZvcmluXHJcbiAgICAgICAgICAgICAgZm9yIChjb25zdCBlcnIgaW4gcmVzLnJlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgLy8gbm9pbnNwZWN0aW9uIEpTVW5maWx0ZXJlZEZvckluTG9vcFxyXG4gICAgICAgICAgICAgICAgY29uc3QgaSA9IGZvcm0uaW5wdXRzLmZpbmQoeCA9PiB4Lm5hbWUgPT09IGVycik7XHJcbiAgICAgICAgICAgICAgICBpZiAoaSl7XHJcbiAgICAgICAgICAgICAgICAgIC8vIG5vaW5zcGVjdGlvbiBKU1VuZmlsdGVyZWRGb3JJbkxvb3BcclxuICAgICAgICAgICAgICAgICAgaS5lcnJvciA9IElucHV0RXJyb3JbSW5wdXRFcnJvcltyZXMucmVzdWx0W2Vycl1dXTtcclxuICAgICAgICAgICAgICAgICAgaWYgKCFmKXtcclxuICAgICAgICAgICAgICAgICAgICBpLmZvY3VzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgZiA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChtKSB7XHJcbiAgICAgICAgICAgIEhlbHBlckNsYXNzLmFkZE5vdGlmaWNhdGlvbihmb3JtLmwobSkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGZvcm0ub25GYWlsZWQpIHtcclxuICAgICAgICAgICAgZm9ybS5vbkZhaWxlZChyZXMubWVzc2FnZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvciAoY29uc3QgYnRuIG9mIGJ0bnMpe1xyXG4gICAgICAgICAgYnRuLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIChyZXMpID0+IHtcclxuICAgICAgICBIZWxwZXJDbGFzcy5hZGROb3RpZmljYXRpb24oZm9ybS5sKCdFcnJvcicpKTtcclxuICAgICAgICBpZiAoZm9ybS5vbkZhaWxlZCkge1xyXG4gICAgICAgICAgZm9ybS5vbkZhaWxlZCgnRXJyb3InKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChjb25zdCBidG4gb2YgYnRucyl7XHJcbiAgICAgICAgICBidG4ubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHRhYmxlKHRhYmxlOiBUYWJsZUNsYXNzLCBidG46IElucHV0Q2xhc3MgPSBudWxsKTogdm9pZCB7XHJcbiAgICBpZiAodGFibGUuc2VhcmNoRm9ybSAmJiAhdGFibGUuc2VhcmNoRm9ybS5jaGVjaygpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRhYmxlLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgaWYgKGJ0bil7XHJcbiAgICAgIGlmIChidG4ubG9hZGluZyl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGJ0bi5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0Q2xpZW50KHRhYmxlLmdldFVybCgpLCB0YWJsZS5tZXRob2QsIHRhYmxlLnNlYXJjaERhdGEoKSxcclxuICAgICAgKHJlcykgPT4ge1xyXG4gICAgICAgIGlmIChyZXMuc3RhdHVzID09PSBSZXN1bHRTdGF0dXNFbnVtLlN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHRhYmxlLnJvd3MgPSByZXMucmVzdWx0Lkxpc3Q7XHJcbiAgICAgICAgICB0YWJsZS5jb3VudCA9IHJlcy5yZXN1bHQuQ291bnQ7XHJcbiAgICAgICAgICBpZiAodGFibGUub25Mb2FkKXtcclxuICAgICAgICAgICAgdGFibGUub25Mb2FkKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoYnRuKXtcclxuICAgICAgICAgICAgYnRuLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRhYmxlLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbGV0IG0gPSAnJztcclxuICAgICAgICAgIGlmIChyZXMuc3RhdHVzID09PSBSZXN1bHRTdGF0dXNFbnVtLlVuYXV0aG9yaXplZCkge1xyXG4gICAgICAgICAgICBtID0gJ0Zvcm1CYXNlRXJyb3JFeHBpcmVkJztcclxuICAgICAgICAgIH0gZWxzZSBpZiAocmVzLnN0YXR1cyA9PT0gUmVzdWx0U3RhdHVzRW51bS5Ob3RBY2Nlc3MpIHtcclxuICAgICAgICAgICAgbSA9ICdGb3JtQmFzZUVycm9yUGVybWlzc2lvbic7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIHJlcy5tZXNzYWdlID09PSAnc3RyaW5nJyl7XHJcbiAgICAgICAgICAgICAgbSA9IHJlcy5tZXNzYWdlO1xyXG4gICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Zm9yaW5cclxuICAgICAgICAgICAgICBmb3IgKGNvbnN0IG1zZyBpbiByZXMubWVzc2FnZSkge1xyXG4gICAgICAgICAgICAgICAgLy8gbm9pbnNwZWN0aW9uIEpTVW5maWx0ZXJlZEZvckluTG9vcFxyXG4gICAgICAgICAgICAgICAgbSA9IHRhYmxlLmwobXNnLCByZXMubWVzc2FnZVttc2ddKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChtKSB7XHJcbiAgICAgICAgICAgIEhlbHBlckNsYXNzLmFkZE5vdGlmaWNhdGlvbih0YWJsZS5sKG0pKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRhYmxlLnJvd3MgPSBbXTtcclxuICAgICAgICAgIHRhYmxlLmNvdW50ID0gMDtcclxuICAgICAgICAgIHRhYmxlLnBhZ2UgPSAxO1xyXG4gICAgICAgICAgaWYgKGJ0bil7XHJcbiAgICAgICAgICAgIGJ0bi5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0YWJsZS5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAocmVzKSA9PiB7XHJcbiAgICAgICAgdGFibGUucm93cyA9IFtdO1xyXG4gICAgICAgIHRhYmxlLmNvdW50ID0gMDtcclxuICAgICAgICB0YWJsZS5wYWdlID0gMTtcclxuICAgICAgICBpZiAoYnRuKXtcclxuICAgICAgICAgIGJ0bi5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRhYmxlLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcbiAgc2VuZCh1cmw6IHN0cmluZywgbWV0aG9kOiBNZXRob2QsIGRhdGE6IGFueSwgYnRuOiBJbnB1dENsYXNzID0gbnVsbCwgc3VjY2VzczogKHJlc3VsdCkgPT4gdm9pZCA9IG51bGwsXHJcbiAgICAgICBmYWlsdXJlOiAobWVzc2FnZSkgPT4gdm9pZCA9IG51bGwpOiB2b2lkIHtcclxuICAgIGlmIChidG4pe1xyXG4gICAgICBpZiAoYnRuLmxvYWRpbmcpe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBidG4ubG9hZGluZyA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAoZGF0YSA9PT0gbnVsbCl7XHJcbiAgICAgIGRhdGEgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0Q2xpZW50KHVybCwgbWV0aG9kLCBkYXRhLFxyXG4gICAgICAocmVzKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IFJlc3VsdFN0YXR1c0VudW0uU3VjY2Vzcykge1xyXG4gICAgICAgICAgaWYgKHN1Y2Nlc3MpIHtcclxuICAgICAgICAgICAgc3VjY2VzcyhyZXMucmVzdWx0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChidG4pe1xyXG4gICAgICAgICAgICBidG4ubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBsZXQgbSA9ICcnO1xyXG4gICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IFJlc3VsdFN0YXR1c0VudW0uVW5hdXRob3JpemVkKSB7XHJcbiAgICAgICAgICAgIG0gPSAnRm9ybUJhc2VFcnJvckV4cGlyZWQnO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChyZXMuc3RhdHVzID09PSBSZXN1bHRTdGF0dXNFbnVtLk5vdEFjY2Vzcykge1xyXG4gICAgICAgICAgICBtID0gJ0Zvcm1CYXNlRXJyb3JQZXJtaXNzaW9uJztcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcmVzLm1lc3NhZ2UgPT09ICdzdHJpbmcnKXtcclxuICAgICAgICAgICAgICBtID0gcmVzLm1lc3NhZ2U7XHJcbiAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpmb3JpblxyXG4gICAgICAgICAgICAgIGZvciAoY29uc3QgbXNnIGluIHJlcy5tZXNzYWdlKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBub2luc3BlY3Rpb24gSlNVbmZpbHRlcmVkRm9ySW5Mb29wXHJcbiAgICAgICAgICAgICAgICBtID0gdGhpcy5sKG1zZywgcmVzLm1lc3NhZ2VbbXNnXSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAobSkge1xyXG4gICAgICAgICAgICBIZWxwZXJDbGFzcy5hZGROb3RpZmljYXRpb24odGhpcy5sKG0pKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChmYWlsdXJlKSB7XHJcbiAgICAgICAgICAgIGZhaWx1cmUocmVzLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGJ0bil7XHJcbiAgICAgICAgICAgIGJ0bi5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAocmVzKSA9PiB7XHJcbiAgICAgICAgaWYgKGZhaWx1cmUpIHtcclxuICAgICAgICAgIGZhaWx1cmUoJ0Vycm9yJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChidG4pe1xyXG4gICAgICAgICAgYnRuLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG4gIGdldENsaWVudCh1cmw6IHN0cmluZywgbWV0aG9kOiBNZXRob2QsIGRhdGE6IGFueSwgZG9uZSwgZmFpbCk6IHZvaWR7XHJcbiAgICBjb25zdCB0b2tlbiA9IEhlbHBlckNsYXNzLmdldENvb2tpZSgnQXV0aG9yaXphdGlvbicpO1xyXG4gICAgbGV0IHNldHRpbmdzO1xyXG4gICAgaWYgKGRhdGEgaW5zdGFuY2VvZiBGb3JtRGF0YSl7XHJcbiAgICAgIHNldHRpbmdzID0ge1xyXG4gICAgICAgIHVybDogdGhpcy5lbnZpcm9ubWVudC5hcGlVcmwgKyB1cmwsXHJcbiAgICAgICAgbWV0aG9kOiBNZXRob2RbbWV0aG9kXS50b1N0cmluZygpLFxyXG4gICAgICAgIHByb2Nlc3NEYXRhOiBmYWxzZSxcclxuICAgICAgICBjb250ZW50VHlwZTogZmFsc2UsXHJcbiAgICAgICAgZGF0YSxcclxuICAgICAgICBoZWFkZXJzOiB0b2tlbiA9PSBudWxsID8ge30gOiB7IEF1dGhvcml6YXRpb246IHRva2VuIH1cclxuICAgICAgfTtcclxuICAgIH1lbHNle1xyXG4gICAgICBzZXR0aW5ncyA9IHtcclxuICAgICAgICB1cmw6IHRoaXMuZW52aXJvbm1lbnQuYXBpVXJsICsgdXJsLFxyXG4gICAgICAgIG1ldGhvZDogTWV0aG9kW21ldGhvZF0udG9TdHJpbmcoKSxcclxuICAgICAgICBkYXRhVHlwZTogJ2pzb24nLFxyXG4gICAgICAgIGNvbnRlbnRUeXBlOiAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCcsXHJcbiAgICAgICAgZGF0YTogZGF0YSAhPT0gbnVsbCAmJiBkYXRhICE9PSB7fSA/IEpTT04uc3RyaW5naWZ5KGRhdGEpIDogbnVsbCxcclxuICAgICAgICBoZWFkZXJzOiB0b2tlbiA9PSBudWxsID8ge30gOiB7IEF1dGhvcml6YXRpb246IHRva2VuLCBBY2NlcHQ6ICdhcHBsaWNhdGlvbi9qc29uJyB9XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBjb25zdCByZXF1ZXN0ID0gJC5hamF4KHNldHRpbmdzKTtcclxuICAgIHJlcXVlc3QuZG9uZSgocmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKCF0aGlzLmVudmlyb25tZW50LnByb2R1Y3Rpb24pe1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCclYycgKyBNZXRob2RbbWV0aG9kXS50b1N0cmluZygpICsgJyA6ICcgKyB1cmwsICdiYWNrZ3JvdW5kOiAjMmY2MDU0OyBjb2xvcjogd2hpdGUnLCByZXNwb25zZSk7XHJcbiAgICAgIH1cclxuICAgICAgZG9uZShyZXNwb25zZSk7XHJcbiAgICB9KTtcclxuICAgIHJlcXVlc3QuZmFpbCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKCF0aGlzLmVudmlyb25tZW50LnByb2R1Y3Rpb24pe1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCclYycgKyBNZXRob2RbbWV0aG9kXS50b1N0cmluZygpICsgJyA6ICcgKyB1cmwsICdiYWNrZ3JvdW5kOiAjOGM0MTNhOyBjb2xvcjogd2hpdGUnLCByZXNwb25zZSk7XHJcbiAgICAgIH1cclxuICAgICAgZmFpbChyZXNwb25zZSk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
3
|
+
export class SafeStylePipe {
|
|
4
|
+
constructor(sanitizer) {
|
|
5
|
+
this.sanitizer = sanitizer;
|
|
6
|
+
}
|
|
7
|
+
transform(value) { return this.sanitizer.bypassSecurityTrustStyle(value); }
|
|
8
|
+
}
|
|
9
|
+
SafeStylePipe.decorators = [
|
|
10
|
+
{ type: Pipe, args: [{ name: 'safeStyle' },] }
|
|
11
|
+
];
|
|
12
|
+
SafeStylePipe.ctorParameters = () => [
|
|
13
|
+
{ type: DomSanitizer }
|
|
14
|
+
];
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZXN0eWxlLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IkQ6L1Byb2plY3RzL1BzVG9vbGtpdC9VSS9wcm9qZWN0cy9wcy10b29sa2l0LXVpL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jbGFzc2VzL3NhZmVzdHlsZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFFMUIsTUFBTSxPQUFPLGFBQWE7SUFBNEIsWUFBb0IsU0FBdUI7UUFBdkIsY0FBUyxHQUFULFNBQVMsQ0FBYztJQUFJLENBQUM7SUFBQyxTQUFTLENBQUMsS0FBSyxJQUFJLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7OztZQUE5TSxJQUFJLFNBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFOzs7WUFGbkIsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UGlwZSwgUGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7RG9tU2FuaXRpemVyfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuXHJcbkBQaXBlKHsgbmFtZTogJ3NhZmVTdHlsZScgfSkgZXhwb3J0IGNsYXNzIFNhZmVTdHlsZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHsgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikgeyB9IHRyYW5zZm9ybSh2YWx1ZSkgeyByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFN0eWxlKHZhbHVlKTsgfSB9XHJcbiJdfQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export class SidebarClass {
|
|
2
|
+
constructor(l, name, controller, action, icon, children = [], count = 0) {
|
|
3
|
+
this.count = 0;
|
|
4
|
+
this.active = false;
|
|
5
|
+
this.l = l;
|
|
6
|
+
this.controller = controller;
|
|
7
|
+
this.action = action;
|
|
8
|
+
this.name = name;
|
|
9
|
+
this.icon = icon;
|
|
10
|
+
this.count = count;
|
|
11
|
+
this.children = children;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qcm9qZWN0cy9Qc1Rvb2xraXQvVUkvcHJvamVjdHMvcHMtdG9vbGtpdC11aS9zcmMvIiwic291cmNlcyI6WyJsaWIvY2xhc3Nlcy9zaWRlYmFyLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFlBQVksQ0FBb0IsRUFBRSxJQUFZLEVBQUUsVUFBa0IsRUFBRSxNQUFjLEVBQUUsSUFBWSxFQUFFLFdBQTJCLEVBQUUsRUFDbkgsS0FBSyxHQUFHLENBQUM7UUFjckIsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUVWLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFmYixJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNYLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7Q0FTRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBTaWRlYmFyQ2xhc3Mge1xyXG4gIGNvbnN0cnVjdG9yKGw6IChrLCB2PykgPT4gc3RyaW5nLCBuYW1lOiBzdHJpbmcsIGNvbnRyb2xsZXI6IHN0cmluZywgYWN0aW9uOiBzdHJpbmcsIGljb246IHN0cmluZywgY2hpbGRyZW46IFNpZGViYXJDbGFzc1tdID0gW10sXHJcbiAgICAgICAgICAgICAgY291bnQgPSAwKSB7XHJcbiAgICB0aGlzLmwgPSBsO1xyXG4gICAgdGhpcy5jb250cm9sbGVyID0gY29udHJvbGxlcjtcclxuICAgIHRoaXMuYWN0aW9uID0gYWN0aW9uO1xyXG4gICAgdGhpcy5uYW1lID0gbmFtZTtcclxuICAgIHRoaXMuaWNvbiA9IGljb247XHJcbiAgICB0aGlzLmNvdW50ID0gY291bnQ7XHJcbiAgICB0aGlzLmNoaWxkcmVuID0gY2hpbGRyZW47XHJcbiAgfVxyXG4gIGw6IChrLCB2PykgPT4gc3RyaW5nO1xyXG4gIGNvbnRyb2xsZXI6IHN0cmluZztcclxuICBhY3Rpb246IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgaWNvbjogc3RyaW5nO1xyXG4gIGNvdW50ID0gMDtcclxuICBjaGlsZHJlbjogU2lkZWJhckNsYXNzW107XHJcbiAgYWN0aXZlID0gZmFsc2U7XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export class StepsClass {
|
|
2
|
+
constructor(l) {
|
|
3
|
+
this.items = [];
|
|
4
|
+
this.activeAll = false;
|
|
5
|
+
this.l = l;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
export class StepsItemClass {
|
|
9
|
+
constructor(name, icon, url = null, active = false) {
|
|
10
|
+
this.name = name;
|
|
11
|
+
this.icon = icon;
|
|
12
|
+
this.url = url;
|
|
13
|
+
this.active = active;
|
|
14
|
+
this.description = null;
|
|
15
|
+
this.onClick = null;
|
|
16
|
+
this.onDelete = null;
|
|
17
|
+
this.title = name;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHMuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiRDovUHJvamVjdHMvUHNUb29sa2l0L1VJL3Byb2plY3RzL3BzLXRvb2xraXQtdWkvc3JjLyIsInNvdXJjZXMiOlsibGliL2NsYXNzZXMvc3RlcHMuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLFVBQVU7SUFDckIsWUFBWSxDQUFvQjtRQUloQyxVQUFLLEdBQXFCLEVBQUUsQ0FBQztRQUM3QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBSmhCLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2IsQ0FBQztDQUlGO0FBQ0QsTUFBTSxPQUFPLGNBQWM7SUFDekIsWUFBbUIsSUFBWSxFQUFTLElBQVksRUFBUyxNQUFjLElBQUksRUFBUyxTQUFrQixLQUFLO1FBQTVGLFNBQUksR0FBSixJQUFJLENBQVE7UUFBUyxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQVMsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUFTLFdBQU0sR0FBTixNQUFNLENBQWlCO1FBSS9HLGdCQUFXLEdBQVcsSUFBSSxDQUFDO1FBQzNCLFlBQU8sR0FBbUIsSUFBSSxDQUFDO1FBQy9CLGFBQVEsR0FBbUIsSUFBSSxDQUFDO1FBTDlCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLENBQUM7Q0FLRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Rm9ybUNsYXNzfSBmcm9tICcuL2Zvcm0uY2xhc3MnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFN0ZXBzQ2xhc3Mge1xyXG4gIGNvbnN0cnVjdG9yKGw6IChrLCB2PykgPT4gc3RyaW5nKSB7XHJcbiAgICB0aGlzLmwgPSBsO1xyXG4gIH1cclxuICBsOiAoaywgdj8pID0+IHN0cmluZztcclxuICBpdGVtczogU3RlcHNJdGVtQ2xhc3NbXSA9IFtdO1xyXG4gIGFjdGl2ZUFsbCA9IGZhbHNlO1xyXG59XHJcbmV4cG9ydCBjbGFzcyBTdGVwc0l0ZW1DbGFzcyB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIG5hbWU6IHN0cmluZywgcHVibGljIGljb246IHN0cmluZywgcHVibGljIHVybDogc3RyaW5nID0gbnVsbCwgcHVibGljIGFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlKSB7XHJcbiAgICB0aGlzLnRpdGxlID0gbmFtZTtcclxuICB9XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBkZXNjcmlwdGlvbjogc3RyaW5nID0gbnVsbDtcclxuICBvbkNsaWNrOiAoaXRlbSkgPT4gdm9pZCA9IG51bGw7XHJcbiAgb25EZWxldGU6IChpdGVtKSA9PiB2b2lkID0gbnVsbDtcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
export const strings = {
|
|
2
|
+
fa: {
|
|
3
|
+
Public: {
|
|
4
|
+
Header: {
|
|
5
|
+
Logout: 'خروج'
|
|
6
|
+
},
|
|
7
|
+
Login: {
|
|
8
|
+
ReSendCodeDes: '(ارسال مجدد)',
|
|
9
|
+
Code: 'کد تایید',
|
|
10
|
+
Base: 'نام سایت',
|
|
11
|
+
BaseDesc: 'توضیحات سایت',
|
|
12
|
+
SendCode: 'ورود',
|
|
13
|
+
SendCodeSubTitle: 'برای ورود شماره همراه خود را وارد کنید',
|
|
14
|
+
LoginSms: 'تایید شماره همراه',
|
|
15
|
+
LoginSmsSubTitle: 'کد ارسال شده به شماره همراه {} را وارد کنید',
|
|
16
|
+
LoginPassword: 'ورود',
|
|
17
|
+
LoginPasswordSubTitle: 'برای ورود نام کاربری و کلمه عبور خود را وارد کنید',
|
|
18
|
+
Register: 'ثبت کد تایید نرم افزار',
|
|
19
|
+
DeviceId: 'کد نرم افزار: {}',
|
|
20
|
+
Copy: 'کپی',
|
|
21
|
+
},
|
|
22
|
+
Footer: {
|
|
23
|
+
Copyright: 'تمامی حقوق این وبسایت برای پارت سیلیکون محفوظ است.',
|
|
24
|
+
CreatorDesc: 'طراحی و توسعه',
|
|
25
|
+
CreatorCom: 'پارت سیلیکون'
|
|
26
|
+
},
|
|
27
|
+
App: {
|
|
28
|
+
Notfound: 'صفحه مورد نظر یافت نشد',
|
|
29
|
+
},
|
|
30
|
+
Notfound: {
|
|
31
|
+
Text: 'متاسفانه صفحه مورد نظر شما یافت نشد',
|
|
32
|
+
Back: 'بازگشت'
|
|
33
|
+
},
|
|
34
|
+
Version: 'نسخه {}',
|
|
35
|
+
Download: 'دریافت فایل',
|
|
36
|
+
IranCode: 'ایران کد',
|
|
37
|
+
TrackingCode: 'کد رهگیری',
|
|
38
|
+
Plaque: 'پلاک',
|
|
39
|
+
DriverName: 'نام راننده',
|
|
40
|
+
Name: 'نام',
|
|
41
|
+
Title: 'عنوان',
|
|
42
|
+
Text: 'متن',
|
|
43
|
+
Date: 'تاریخ',
|
|
44
|
+
Time: 'زمان',
|
|
45
|
+
Row: 'ردیف',
|
|
46
|
+
LoginTitle: 'ورود',
|
|
47
|
+
SendCode: 'ارسال کد',
|
|
48
|
+
Username: 'نام کاربری',
|
|
49
|
+
GetReport: 'چاپ',
|
|
50
|
+
Count: 'تعداد',
|
|
51
|
+
Choose: 'انتخاب',
|
|
52
|
+
Payable: 'مبلغ قابل پرداخت : {} ریال</br><span class="f-s-20">تایید و انتقال به درگاه پرداخت</span>',
|
|
53
|
+
PayableLoading: '<span class="l-h-60">تایید و انتقال به درگاه پرداخت</span>',
|
|
54
|
+
Processing: 'پردازش',
|
|
55
|
+
PDate: 'تاریخ',
|
|
56
|
+
SeeMore: 'نمایش بیشتر ...',
|
|
57
|
+
Alert: 'هشدار',
|
|
58
|
+
AccessDenied: 'عدم دسترسی',
|
|
59
|
+
Image: 'تصویر',
|
|
60
|
+
Grade: 'پایه تحصیلی',
|
|
61
|
+
Desc: 'توضیحات',
|
|
62
|
+
Admin: 'ادمین',
|
|
63
|
+
Print: 'گزارش',
|
|
64
|
+
Password: 'کلمه عبور',
|
|
65
|
+
RePassword: 'تکرار کلمه عبور',
|
|
66
|
+
PassportLetter: 'حرف',
|
|
67
|
+
Passport: 'گذرنامه',
|
|
68
|
+
Priority: 'اولویت',
|
|
69
|
+
PassportImage: 'تصویر گذرنامه',
|
|
70
|
+
PassportExpireDate: 'تاریخ انقضاء گذرنامه',
|
|
71
|
+
PassportPlace: 'محل صدور گذرنامه',
|
|
72
|
+
NationalCode: 'کدملی',
|
|
73
|
+
LicenseNum: 'شماره گواهی نامه',
|
|
74
|
+
BankCard: 'شماره کارت بانکی',
|
|
75
|
+
VehicleType: 'نوع وسیله نقلیه',
|
|
76
|
+
Gender: 'جنسیت',
|
|
77
|
+
Male: 'مرد',
|
|
78
|
+
FeMale: 'زن',
|
|
79
|
+
Accept: 'تایید',
|
|
80
|
+
Insert: 'افزودن',
|
|
81
|
+
Update: 'ویرایش',
|
|
82
|
+
Delete: 'حذف',
|
|
83
|
+
Subset: 'زیرمجموعه',
|
|
84
|
+
Other: 'سایر',
|
|
85
|
+
Rial: 'ریال',
|
|
86
|
+
ChooseMonth: 'انتخاب ماه',
|
|
87
|
+
FullName: 'نام کامل',
|
|
88
|
+
FirstName: 'نام',
|
|
89
|
+
LastName: 'نام خانوادگی',
|
|
90
|
+
Reject: 'رد کردن',
|
|
91
|
+
Code: 'کد تایید',
|
|
92
|
+
InvalidRequest: 'درخواست شما نامعتبر است',
|
|
93
|
+
ChangeNotAllow: 'امکان ایجاد تغییرات وجود ندارد',
|
|
94
|
+
Confirm: 'تاییدیه',
|
|
95
|
+
Search: 'جستجو',
|
|
96
|
+
Yes: 'بله',
|
|
97
|
+
No: 'خیر',
|
|
98
|
+
Email: 'پست الکترونیک',
|
|
99
|
+
Mobile: 'شماره همراه',
|
|
100
|
+
Mobile2: 'شماره همراه 2',
|
|
101
|
+
Phone: 'شماره تلفن منزل',
|
|
102
|
+
Address: 'آدرس',
|
|
103
|
+
Add: 'افزودن',
|
|
104
|
+
Edit: 'ویرایش',
|
|
105
|
+
VerifyCode: 'تایید کد',
|
|
106
|
+
Status: 'وضعیت',
|
|
107
|
+
Show: 'نمایش',
|
|
108
|
+
Step: 'وضعیت',
|
|
109
|
+
Pending: 'در حال بررسی',
|
|
110
|
+
Accepted: 'تایید شده',
|
|
111
|
+
Canceled: 'انصراف',
|
|
112
|
+
Rejected: 'رد شده : {}',
|
|
113
|
+
Answered: 'پاسخ داده شده',
|
|
114
|
+
FromDate: 'از تاریخ',
|
|
115
|
+
ToDate: 'تا تاریخ',
|
|
116
|
+
Package: 'اشتراک',
|
|
117
|
+
CodeInvalid: 'کد تایید نامعتبر است',
|
|
118
|
+
CodeExpired: 'کد تایید منقضی شده است',
|
|
119
|
+
Price: 'قیمت',
|
|
120
|
+
Description: 'توضیحات',
|
|
121
|
+
Photo: 'تصویر',
|
|
122
|
+
Select: 'انتخاب',
|
|
123
|
+
NextStep: 'مرحله بعد',
|
|
124
|
+
PreviousStep: 'مرحله قبل',
|
|
125
|
+
UploadFiles: 'بارگذاری مدارک',
|
|
126
|
+
NamadTitle: 'نماد',
|
|
127
|
+
Options: 'امکانات',
|
|
128
|
+
Process: 'پردازش',
|
|
129
|
+
NotfoundTitle: 'موردی یافت نشد',
|
|
130
|
+
PermissionDenied: 'عدم دسترسی',
|
|
131
|
+
PerPage: 'تعداد نمایش در هر صفحه',
|
|
132
|
+
Save: 'ذخیره',
|
|
133
|
+
Cancel: 'انصراف',
|
|
134
|
+
UserDeActive: 'نام کاربری غیر فعال شده است',
|
|
135
|
+
DeleteMessage: 'آیا از حذف این مورد مطمئن هستید ؟',
|
|
136
|
+
ChooseFiles: 'انتخاب فایل ها',
|
|
137
|
+
CodeNotExpired: 'کد تایید ارسال شده منقضی نشده است',
|
|
138
|
+
ChooseFile: 'انتخاب فایل',
|
|
139
|
+
FileNotSelected: 'فایلی انتخاب نشده است',
|
|
140
|
+
FileSelected: '{} فایل انتخاب شده ({})',
|
|
141
|
+
Selected: 'انتخاب شده',
|
|
142
|
+
Limit: 'محدودیت',
|
|
143
|
+
SendCodeLimit: 'محدودیت در ارسال کد',
|
|
144
|
+
SendCodeError: 'خطا در ارسال کد',
|
|
145
|
+
CodeNotFound: 'کد تایید ارسال نشده است',
|
|
146
|
+
Total: 'جمع کل',
|
|
147
|
+
Day: 'روز',
|
|
148
|
+
HourP: '{} ساعت',
|
|
149
|
+
MinuteP: '{} دقیقه',
|
|
150
|
+
Hour: 'ساعت',
|
|
151
|
+
Minute: 'دقیقه',
|
|
152
|
+
AFew: 'چند لحظه',
|
|
153
|
+
Ago: 'پیش',
|
|
154
|
+
Later: 'دیگر',
|
|
155
|
+
LessThanMinute: 'کمتر از یک دقیقه',
|
|
156
|
+
Finished: 'پایان یافته',
|
|
157
|
+
Reload: 'بارگیری مجدد',
|
|
158
|
+
Maximum: 'بزرگ نمایی',
|
|
159
|
+
Minimum: 'کوچک نمایی',
|
|
160
|
+
Export: 'خروجی',
|
|
161
|
+
Send: 'ارسال',
|
|
162
|
+
And: ' و ',
|
|
163
|
+
UsernamePasswordInvalid: 'نام کاربری یا کلمه عبور اشتباه است',
|
|
164
|
+
DbUpdateException: 'امکان حذف رکورد مورد نظر به دلیل استفاده شدن در سامانه وجود ندارد',
|
|
165
|
+
// tslint:disable-next-line
|
|
166
|
+
LoadingDot: '<span class="dot-spinner black"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></span>',
|
|
167
|
+
LoadingDotWhite: '<span class="dot-spinner white"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></span>',
|
|
168
|
+
Loading: 'در حال {} <span class="dot-spinner"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></span>',
|
|
169
|
+
LoadingYellow: 'در حال {} <span class="dot-spinner yellow"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></span>',
|
|
170
|
+
LoadingEmpty: '<span class="dot-spinner"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></span>',
|
|
171
|
+
LoadingTable: '<i class="fas fa-spin fa-spinner m-l-5-p icon"></i> در حال {} <span class="dot-spinner black"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></span>',
|
|
172
|
+
LoadingText: 'در حال {}',
|
|
173
|
+
Waiting: 'انتظار',
|
|
174
|
+
Required: 'را وارد کنید',
|
|
175
|
+
Invalid: 'نامعتبر است',
|
|
176
|
+
FormErrorRequired: '{} را وارد کنید',
|
|
177
|
+
FormErrorInvalid: '{} نامعتبر است',
|
|
178
|
+
FormErrorLength: 'طول {} باید {} کاراکتر باشد',
|
|
179
|
+
FormErrorMinLength: 'طول {} باید حداقل {} کاراکتر باشد',
|
|
180
|
+
FormErrorMaxLength: 'طول {} باید حداکثر {} کاراکتر باشد',
|
|
181
|
+
FormErrorMinAmount: 'مقدار {} باید حداقل {} باشد',
|
|
182
|
+
FormErrorMaxAmount: 'مقدار {} باید حداکثر {} باشد',
|
|
183
|
+
FormErrorExpired: '{} منقضی شده است',
|
|
184
|
+
FormErrorWrong: '{} اشتباه است',
|
|
185
|
+
FormErrorNotMatch: '{} با تکرار آن مطابقت ندارد',
|
|
186
|
+
FormErrorExist: '{} در سامانه ثبت شده است',
|
|
187
|
+
FormErrorNotExist: '{} در سامانه ثبت نشده است',
|
|
188
|
+
FormErrorNotAllowed: 'نوع فایل {} نامعتبر است ({})',
|
|
189
|
+
FormErrorMaxContent: 'حجم فایل {} نباید بیشتر از {}KB باشد',
|
|
190
|
+
FormErrorUpload: 'خطا در بارگذاری {}',
|
|
191
|
+
FormError: 'خطا در {}',
|
|
192
|
+
FormBaseErrorExpired: 'لطفا مجددا وارد شوید',
|
|
193
|
+
FormBaseErrorRegistered: 'خطا در تایید کد نرم افزار',
|
|
194
|
+
ErrorUpload: 'خطا در بارگذاری فایل',
|
|
195
|
+
FormBaseErrorInvalidParam: 'خطا در اطلاعات ارسال شده',
|
|
196
|
+
FormBaseErrorTimeOut: 'درخواست شما بیش از حد معمول زمان برده است. لطفا مجددا تلاش کنید',
|
|
197
|
+
FormBaseErrorPermission: 'عدم دسترسی',
|
|
198
|
+
PaymentError: 'خطا در اتصال به درگاه بانکی',
|
|
199
|
+
Error: 'متاسفانه در سیستم خطایی به وجود آمده است. لطفا مجددا تلاش کنید',
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
};
|
|
203
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IkQ6L1Byb2plY3RzL1BzVG9vbGtpdC9VSS9wcm9qZWN0cy9wcy10b29sa2l0LXVpL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jbGFzc2VzL3N0cmluZy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUc7SUFDckIsRUFBRSxFQUFFO1FBQ0YsTUFBTSxFQUFFO1lBQ04sTUFBTSxFQUFFO2dCQUNOLE1BQU0sRUFBRSxNQUFNO2FBQ2Y7WUFDRCxLQUFLLEVBQUU7Z0JBQ0wsYUFBYSxFQUFFLGNBQWM7Z0JBQzdCLElBQUksRUFBRSxVQUFVO2dCQUNoQixJQUFJLEVBQUUsVUFBVTtnQkFDaEIsUUFBUSxFQUFFLGNBQWM7Z0JBQ3hCLFFBQVEsRUFBRSxNQUFNO2dCQUNoQixnQkFBZ0IsRUFBRSx3Q0FBd0M7Z0JBQzFELFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLGdCQUFnQixFQUFFLDZDQUE2QztnQkFDL0QsYUFBYSxFQUFFLE1BQU07Z0JBQ3JCLHFCQUFxQixFQUFFLG1EQUFtRDtnQkFDMUUsUUFBUSxFQUFFLHdCQUF3QjtnQkFDbEMsUUFBUSxFQUFFLGtCQUFrQjtnQkFDNUIsSUFBSSxFQUFFLEtBQUs7YUFDWjtZQUNELE1BQU0sRUFBRTtnQkFDTixTQUFTLEVBQUUsb0RBQW9EO2dCQUMvRCxXQUFXLEVBQUUsZUFBZTtnQkFDNUIsVUFBVSxFQUFFLGNBQWM7YUFDM0I7WUFDRCxHQUFHLEVBQUU7Z0JBQ0gsUUFBUSxFQUFFLHdCQUF3QjthQUNuQztZQUNELFFBQVEsRUFBRTtnQkFDUixJQUFJLEVBQUUscUNBQXFDO2dCQUMzQyxJQUFJLEVBQUUsUUFBUTthQUNmO1lBQ0QsT0FBTyxFQUFFLFNBQVM7WUFDbEIsUUFBUSxFQUFFLGFBQWE7WUFDdkIsUUFBUSxFQUFFLFVBQVU7WUFDcEIsWUFBWSxFQUFFLFdBQVc7WUFDekIsTUFBTSxFQUFFLE1BQU07WUFD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MEg7WUFDdEksZUFBZSxFQUFFLDBIQUEwSDtZQUMzSSxPQUFPLEVBQUUsOEhBQThIO1lBQ3ZJLGFBQWEsRUFBRSxxSUFBcUk7WUFDcEosWUFBWSxFQUFFLG9IQUFvSDtZQUNsSSxZQUFZLEVBQUUsd0xBQXdMO1lBQ3RNLFdBQVcsRUFBRSxXQUFXO1lBQ3hCLE9BQU8sRUFBRSxRQUFRO1lBQ2pCLFFBQVEsRUFBRSxjQUFjO1lBQ3hCLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLGlCQUFpQixFQUFFLGlCQUFpQjtZQUNwQyxnQkFBZ0IsRUFBRSxnQkFBZ0I7WUFDbEMsZUFBZSxFQUFFLDZCQUE2QjtZQUM5QyxrQkFBa0IsRUFBRSxtQ0FBbUM7WUFDdkQsa0JBQWtCLEVBQUUsb0NBQW9DO1lBQ3hELGtCQUFrQixFQUFFLDZCQUE2QjtZQUNqRCxrQkFBa0IsRUFBRSw4QkFBOEI7WUFDbEQsZ0JBQWdCLEVBQUUsa0JBQWtCO1lBQ3BDLGNBQWMsRUFBRSxlQUFlO1lBQy9CLGlCQUFpQixFQUFFLDZCQUE2QjtZQUNoRCxjQUFjLEVBQUUsMEJBQTBCO1lBQzFDLGlCQUFpQixFQUFFLDJCQUEyQjtZQUM5QyxtQkFBbUIsRUFBRSw4QkFBOEI7WUFDbkQsbUJBQW1CLEVBQUUsc0NBQXNDO1lBQzNELGVBQWUsRUFBRSxvQkFBb0I7WUFDckMsU0FBUyxFQUFFLFdBQVc7WUFDdEIsb0JBQW9CLEVBQUUsc0JBQXNCO1lBQzVDLHVCQUF1QixFQUFFLDJCQUEyQjtZQUNwRCxXQUFXLEVBQUUsc0JBQXNCO1lBQ25DLHlCQUF5QixFQUFFLDBCQUEwQjtZQUNyRCxvQkFBb0IsRUFBRSxpRUFBaUU7WUFDdkYsdUJBQXVCLEVBQUUsWUFBWTtZQUNyQyxZQUFZLEVBQUUsNkJBQTZCO1lBQzNDLEtBQUssRUFBRSxnRUFBZ0U7U0FDeEU7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3Qgc3RyaW5ncyA9IHtcclxuICBmYToge1xyXG4gICAgUHVibGljOiB7XHJcbiAgICAgIEhlYWRlcjoge1xyXG4gICAgICAgIExvZ291dDogJ9iu2LHZiNisJ1xyXG4gICAgICB9LFxyXG4gICAgICBMb2dpbjoge1xyXG4gICAgICAgIFJlU2VuZENvZGVEZXM6ICco2KfYsdiz2KfZhCDZhdis2K/YryknLFxyXG4gICAgICAgIENvZGU6ICfaqdivINiq2KfbjNuM2K8nLFxyXG4gICAgICAgIEJhc2U6ICfZhtin2YUg2LPYp9uM2KonLFxyXG4gICAgICAgIEJhc2VEZXNjOiAn2KrZiNi224zYrdin2Kog2LPYp9uM2KonLFxyXG4gICAgICAgIFNlbmRDb2RlOiAn2YjYsdmI2K8nLFxyXG4gICAgICAgIFNlbmRDb2RlU3ViVGl0bGU6ICfYqNix2KfbjCDZiNix2YjYryDYtNmF2KfYsdmHINmH2YXYsdin2Ycg2K7ZiNivINix2Kcg2YjYp9ix2K8g2qnZhtuM2K8nLFxyXG4gICAgICAgIExvZ2luU21zOiAn2KrYp9uM24zYryDYtNmF2KfYsdmHINmH2YXYsdin2YcnLFxyXG4gICAgICAgIExvZ2luU21zU3ViVGl0bGU6ICfaqdivINin2LHYs9in2YQg2LTYr9mHINio2Ycg2LTZhdin2LHZhyDZh9mF2LHYp9mHIHt9INix2Kcg2YjYp9ix2K8g2qnZhtuM2K8nLFxyXG4gICAgICAgIExvZ2luUGFzc3dvcmQ6ICfZiNix2YjYrycsXHJcbiAgICAgICAgTG9naW5QYXNzd29yZFN1YlRpdGxlOiAn2KjYsdin24wg2YjYsdmI2K8g2YbYp9mFINqp2KfYsdio2LHbjCDZiCDaqdmE2YXZhyDYudio2YjYsSDYrtmI2K8g2LHYpyDZiNin2LHYryDaqdmG24zYrycsXHJcbiAgICAgICAgUmVnaXN0ZXI6ICfYq9io2Kog2qnYryDYqtin24zbjNivINmG2LHZhSDYp9mB2LLYp9ixJyxcclxuICAgICAgICBEZXZpY2VJZDogJ9qp2K8g2YbYsdmFINin2YHYstin2LE6IHt9JyxcclxuICAgICAgICBDb3B5OiAn2qnZvtuMJyxcclxuICAgICAgfSxcclxuICAgICAgRm9vdGVyOiB7XHJcbiAgICAgICAgQ29weXJpZ2h0OiAn2KrZhdin2YXbjCDYrdmC2YjZgiDYp9uM2YYg2YjYqNiz2KfbjNiqINio2LHYp9uMINm+2KfYsdiqINiz24zZhNuM2qnZiNmGINmF2K3ZgdmI2Lgg2KfYs9iqLicsXHJcbiAgICAgICAgQ3JlYXRvckRlc2M6ICfYt9ix2KfYrduMINmIINiq2YjYs9i52YcnLFxyXG4gICAgICAgIENyZWF0b3JDb206ICfZvtin2LHYqiDYs9uM2YTbjNqp2YjZhidcclxuICAgICAgfSxcclxuICAgICAgQXBwOiB7XHJcbiAgICAgICAgTm90Zm91bmQ6ICfYtdmB2K3ZhyDZhdmI2LHYryDZhti42LEg24zYp9mB2Kog2YbYtNivJyxcclxuICAgICAgfSxcclxuICAgICAgTm90Zm91bmQ6IHtcclxuICAgICAgICBUZXh0OiAn2YXYqtin2LPZgdin2YbZhyDYtdmB2K3ZhyDZhdmI2LHYryDZhti42LEg2LTZhdinINuM2KfZgdiqINmG2LTYrycsXHJcbiAgICAgICAgQmFjazogJ9io2KfYstqv2LTYqidcclxuICAgICAgfSxcclxuICAgICAgVmVyc2lvbjogJ9mG2LPYrtmHIHt9JyxcclxuICAgICAgRG93bmxvYWQ6ICfYr9ix24zYp9mB2Kog2YHYp9uM2YQnLFxyXG4gICAgICBJcmFuQ29kZTogJ9in24zYsdin2YYg2qnYrycsXHJcbiAgICAgIFRyYWNraW5nQ29kZTogJ9qp2K8g2LHZh9qv24zYsduMJyxcclxuICAgICAgUGxhcXVlOiAn2b7ZhNin2qknLFxyXG4gICAgICBEcml2ZXJOYW1lOiAn2YbYp9mFINix2KfZhtmG2K/ZhycsXHJcbiAgICAgIE5hbWU6ICfZhtin2YUnLFxyXG4gICAgICBUaXRsZTogJ9i52YbZiNin2YYnLFxyXG4gICAgICBUZXh0OiAn2YXYqtmGJyxcclxuICAgICAgRGF0ZTogJ9iq2KfYsduM2K4nLFxyXG4gICAgICBUaW1lOiAn2LLZhdin2YYnLFxyXG4gICAgICBSb3c6ICfYsdiv24zZgScsXHJcbiAgICAgIExvZ2luVGl0bGU6ICfZiNix2YjYrycsXHJcbiAgICAgIFNlbmRDb2RlOiAn2KfYsdiz2KfZhCDaqdivJyxcclxuICAgICAgVXNlcm5hbWU6ICfZhtin2YUg2qnYp9ix2KjYsduMJyxcclxuICAgICAgR2V0UmVwb3J0OiAn2obYp9m+JyxcclxuICAgICAgQ291bnQ6ICfYqti52K/Yp9ivJyxcclxuICAgICAgQ2hvb3NlOiAn2KfZhtiq2K7Yp9ioJyxcclxuICAgICAgUGF5YWJsZTogJ9mF2KjZhNi6INmC2KfYqNmEINm+2LHYr9in2K7YqiA6IHt9INix24zYp9mEPC9icj48c3BhbiBjbGFzcz1cImYtcy0yMFwiPtiq2KfbjNuM2K8g2Ygg2KfZhtiq2YLYp9mEINio2Ycg2K/Ysdqv2KfZhyDZvtix2K/Yp9iu2Ko8L3NwYW4+JyxcclxuICAgICAgUGF5YWJsZUxvYWRpbmc6ICc8c3BhbiBjbGFzcz1cImwtaC02MFwiPtiq2KfbjNuM2K8g2Ygg2KfZhtiq2YLYp9mEINio2Ycg2K/Ysdqv2KfZhyDZvtix2K/Yp9iu2Ko8L3NwYW4+JyxcclxuICAgICAgUHJvY2Vzc2luZzogJ9m+2LHYr9in2LLYtCcsXHJcbiAgICAgIFBEYXRlOiAn2KrYp9ix24zYricsXHJcbiAgICAgIFNlZU1vcmU6ICfZhtmF2KfbjNi0INio24zYtNiq2LEgLi4uJyxcclxuICAgICAgQWxlcnQ6ICfZh9i02K/Yp9ixJyxcclxuICAgICAgQWNjZXNzRGVuaWVkOiAn2LnYr9mFINiv2LPYqtix2LPbjCcsXHJcbiAgICAgIEltYWdlOiAn2KrYtdmI24zYsScsXHJcbiAgICAgIEdyYWRlOiAn2b7Yp9uM2Ycg2KrYrdi124zZhNuMJyxcclxuICAgICAgRGVzYzogJ9iq2YjYttuM2K3Yp9iqJyxcclxuICAgICAgQWRtaW46ICfYp9iv2YXbjNmGJyxcclxuICAgICAgUHJpbnQ6ICfar9iy2KfYsdi0JyxcclxuICAgICAgUGFzc3dvcmQ6ICfaqdmE2YXZhyDYudio2YjYsScsXHJcbiAgICAgIFJlUGFzc3dvcmQ6ICfYqtqp2LHYp9ixINqp2YTZhdmHINi52KjZiNixJyxcclxuICAgICAgUGFzc3BvcnRMZXR0ZXI6ICfYrdix2YEnLFxyXG4gICAgICBQYXNzcG9ydDogJ9qv2LDYsdmG2KfZhdmHJyxcclxuICAgICAgUHJpb3JpdHk6ICfYp9mI2YTZiNuM2KonLFxyXG4gICAgICBQYXNzcG9ydEltYWdlOiAn2KrYtdmI24zYsSDar9iw2LHZhtin2YXZhycsXHJcbiAgICAgIFBhc3Nwb3J0RXhwaXJlRGF0ZTogJ9iq2KfYsduM2K4g2KfZhtmC2LbYp9ihINqv2LDYsdmG2KfZhdmHJyxcclxuICAgICAgUGFzc3BvcnRQbGFjZTogJ9mF2K3ZhCDYtdiv2YjYsSDar9iw2LHZhtin2YXZhycsXHJcbiAgICAgIE5hdGlvbmFsQ29kZTogJ9qp2K/ZhdmE24wnLFxyXG4gICAgICBMaWNlbnNlTnVtOiAn2LTZhdin2LHZhyDar9mI2KfZh9uMINmG2KfZhdmHJyxcclxuICAgICAgQmFua0NhcmQ6ICfYtNmF2KfYsdmHINqp2KfYsdiqINio2KfZhtqp24wnLFxyXG4gICAgICBWZWhpY2xlVHlwZTogJ9mG2YjYuSDZiNiz24zZhNmHINmG2YLZhNuM2YcnLFxyXG4gICAgICBHZW5kZXI6ICfYrNmG2LPbjNiqJyxcclxuICAgICAgTWFsZTogJ9mF2LHYrycsXHJcbiAgICAgIEZlTWFsZTogJ9iy2YYnLFxyXG4gICAgICBBY2NlcHQ6ICfYqtin24zbjNivJyxcclxuICAgICAgSW5zZXJ0OiAn2KfZgdiy2YjYr9mGJyxcclxuICAgICAgVXBkYXRlOiAn2YjbjNix2KfbjNi0JyxcclxuICAgICAgRGVsZXRlOiAn2K3YsNmBJyxcclxuICAgICAgU3Vic2V0OiAn2LLbjNix2YXYrNmF2YjYudmHJyxcclxuICAgICAgT3RoZXI6ICfYs9in24zYsScsXHJcbiAgICAgIFJpYWw6ICfYsduM2KfZhCcsXHJcbiAgICAgIENob29zZU1vbnRoOiAn2KfZhtiq2K7Yp9ioINmF2KfZhycsXHJcbiAgICAgIEZ1bGxOYW1lOiAn2YbYp9mFINqp2KfZhdmEJyxcclxuICAgICAgRmlyc3ROYW1lOiAn2YbYp9mFJyxcclxuICAgICAgTGFzdE5hbWU6ICfZhtin2YUg2K7Yp9mG2YjYp9iv2q/bjCcsXHJcbiAgICAgIFJlamVjdDogJ9ix2K8g2qnYsdiv2YYnLFxyXG4gICAgICBDb2RlOiAn2qnYryDYqtin24zbjNivJyxcclxuICAgICAgSW52YWxpZFJlcXVlc3Q6ICfYr9ix2K7ZiNin2LPYqiDYtNmF2Kcg2YbYp9mF2LnYqtio2LEg2KfYs9iqJyxcclxuICAgICAgQ2hhbmdlTm90QWxsb3c6ICfYp9mF2qnYp9mGINin24zYrNin2K8g2KrYutuM24zYsdin2Kog2YjYrNmI2K8g2YbYr9in2LHYrycsXHJcbiAgICAgIENvbmZpcm06ICfYqtin24zbjNiv24zZhycsXHJcbiAgICAgIFNlYXJjaDogJ9is2LPYqtis2YgnLFxyXG4gICAgICBZZXM6ICfYqNmE2YcnLFxyXG4gICAgICBObzogJ9iu24zYsScsXHJcbiAgICAgIEVtYWlsOiAn2b7Ys9iqINin2YTaqdiq2LHZiNmG24zaqScsXHJcbiAgICAgIE1vYmlsZTogJ9i02YXYp9ix2Ycg2YfZhdix2KfZhycsXHJcbiAgICAgIE1vYmlsZTI6ICfYtNmF2KfYsdmHINmH2YXYsdin2YcgMicsXHJcbiAgICAgIFBob25lOiAn2LTZhdin2LHZhyDYqtmE2YHZhiDZhdmG2LLZhCcsXHJcbiAgICAgIEFkZHJlc3M6ICfYotiv2LHYsycsXHJcbiAgICAgIEFkZDogJ9in2YHYstmI2K/ZhicsXHJcbiAgICAgIEVkaXQ6ICfZiNuM2LHYp9uM2LQnLFxyXG4gICAgICBWZXJpZnlDb2RlOiAn2KrYp9uM24zYryDaqdivJyxcclxuICAgICAgU3RhdHVzOiAn2YjYtti524zYqicsXHJcbiAgICAgIFNob3c6ICfZhtmF2KfbjNi0JyxcclxuICAgICAgU3RlcDogJ9mI2LbYuduM2KonLFxyXG4gICAgICBQZW5kaW5nOiAn2K/YsSDYrdin2YQg2KjYsdix2LPbjCcsXHJcbiAgICAgIEFjY2VwdGVkOiAn2KrYp9uM24zYryDYtNiv2YcnLFxyXG4gICAgICBDYW5jZWxlZDogJ9in2YbYtdix2KfZgScsXHJcbiAgICAgIFJlamVjdGVkOiAn2LHYryDYtNiv2YcgOiB7fScsXHJcbiAgICAgIEFuc3dlcmVkOiAn2b7Yp9iz2K4g2K/Yp9iv2Ycg2LTYr9mHJyxcclxuICAgICAgRnJvbURhdGU6ICfYp9iyINiq2KfYsduM2K4nLFxyXG4gICAgICBUb0RhdGU6ICfYqtinINiq2KfYsduM2K4nLFxyXG4gICAgICBQYWNrYWdlOiAn2KfYtNiq2LHYp9qpJyxcclxuICAgICAgQ29kZUludmFsaWQ6ICfaqdivINiq2KfbjNuM2K8g2YbYp9mF2LnYqtio2LEg2KfYs9iqJyxcclxuICAgICAgQ29kZUV4cGlyZWQ6ICfaqdivINiq2KfbjNuM2K8g2YXZhtmC2LbbjCDYtNiv2Ycg2KfYs9iqJyxcclxuICAgICAgUHJpY2U6ICfZgtuM2YXYqicsXHJcbiAgICAgIERlc2NyaXB0aW9uOiAn2KrZiNi224zYrdin2KonLFxyXG4gICAgICBQaG90bzogJ9iq2LXZiNuM2LEnLFxyXG4gICAgICBTZWxlY3Q6ICfYp9mG2KrYrtin2KgnLFxyXG4gICAgICBOZXh0U3RlcDogJ9mF2LHYrdmE2Ycg2KjYudivJyxcclxuICAgICAgUHJldmlvdXNTdGVwOiAn2YXYsdit2YTZhyDZgtio2YQnLFxyXG4gICAgICBVcGxvYWRGaWxlczogJ9io2KfYsdqv2LDYp9ix24wg2YXYr9in2LHaqScsXHJcbiAgICAgIE5hbWFkVGl0bGU6ICfZhtmF2KfYrycsXHJcbiAgICAgIE9wdGlvbnM6ICfYp9mF2qnYp9mG2KfYqicsXHJcbiAgICAgIFByb2Nlc3M6ICfZvtix2K/Yp9iy2LQnLFxyXG4gICAgICBOb3Rmb3VuZFRpdGxlOiAn2YXZiNix2K/bjCDbjNin2YHYqiDZhti02K8nLFxyXG4gICAgICBQZXJtaXNzaW9uRGVuaWVkOiAn2LnYr9mFINiv2LPYqtix2LPbjCcsXHJcbiAgICAgIFBlclBhZ2U6ICfYqti52K/Yp9ivINmG2YXYp9uM2LQg2K/YsSDZh9ixINi12YHYrdmHJyxcclxuICAgICAgU2F2ZTogJ9iw2K7bjNix2YcnLFxyXG4gICAgICBDYW5jZWw6ICfYp9mG2LXYsdin2YEnLFxyXG4gICAgICBVc2VyRGVBY3RpdmU6ICfZhtin2YUg2qnYp9ix2KjYsduMINi624zYsSDZgdi52KfZhCDYtNiv2Ycg2KfYs9iqJyxcclxuICAgICAgRGVsZXRlTWVzc2FnZTogJ9ii24zYpyDYp9iyINit2LDZgSDYp9uM2YYg2YXZiNix2K8g2YXYt9mF2KbZhiDZh9iz2KrbjNivINifJyxcclxuICAgICAgQ2hvb3NlRmlsZXM6ICfYp9mG2KrYrtin2Kgg2YHYp9uM2YQg2YfYpycsXHJcbiAgICAgIENvZGVOb3RFeHBpcmVkOiAn2qnYryDYqtin24zbjNivINin2LHYs9in2YQg2LTYr9mHINmF2YbZgti224wg2YbYtNiv2Ycg2KfYs9iqJyxcclxuICAgICAgQ2hvb3NlRmlsZTogJ9in2YbYqtiu2KfYqCDZgdin24zZhCcsXHJcbiAgICAgIEZpbGVOb3RTZWxlY3RlZDogJ9mB2KfbjNmE24wg2KfZhtiq2K7Yp9ioINmG2LTYr9mHINin2LPYqicsXHJcbiAgICAgIEZpbGVTZWxlY3RlZDogJ3t9INmB2KfbjNmEINin2YbYqtiu2KfYqCDYtNiv2YcgKHt9KScsXHJcbiAgICAgIFNlbGVjdGVkOiAn2KfZhtiq2K7Yp9ioINi02K/ZhycsXHJcbiAgICAgIExpbWl0OiAn2YXYrdiv2YjYr9uM2KonLFxyXG4gICAgICBTZW5kQ29kZUxpbWl0OiAn2YXYrdiv2YjYr9uM2Kog2K/YsSDYp9ix2LPYp9mEINqp2K8nLFxyXG4gICAgICBTZW5kQ29kZUVycm9yOiAn2K7Yt9inINiv2LEg2KfYsdiz2KfZhCDaqdivJyxcclxuICAgICAgQ29kZU5vdEZvdW5kOiAn2qnYryDYqtin24zbjNivINin2LHYs9in2YQg2YbYtNiv2Ycg2KfYs9iqJyxcclxuICAgICAgVG90YWw6ICfYrNmF2Lkg2qnZhCcsXHJcbiAgICAgIERheTogJ9ix2YjYsicsXHJcbiAgICAgIEhvdXJQOiAne30g2LPYp9i52KonLFxyXG4gICAgICBNaW51dGVQOiAne30g2K/ZgtuM2YLZhycsXHJcbiAgICAgIEhvdXI6ICfYs9in2LnYqicsXHJcbiAgICAgIE1pbnV0ZTogJ9iv2YLbjNmC2YcnLFxyXG4gICAgICBBRmV3OiAn2obZhtivINmE2K3YuNmHJyxcclxuICAgICAgQWdvOiAn2b7bjNi0JyxcclxuICAgICAgTGF0ZXI6ICfYr9uM2q/YsScsXHJcbiAgICAgIExlc3NUaGFuTWludXRlOiAn2qnZhdiq2LEg2KfYsiDbjNqpINiv2YLbjNmC2YcnLFxyXG4gICAgICBGaW5pc2hlZDogJ9m+2KfbjNin2YYg24zYp9mB2KrZhycsXHJcbiAgICAgIFJlbG9hZDogJ9io2KfYsdqv24zYsduMINmF2KzYr9ivJyxcclxuICAgICAgTWF4aW11bTogJ9io2LLYsdqvINmG2YXYp9uM24wnLFxyXG4gICAgICBNaW5pbXVtOiAn2qnZiNqG2qkg2YbZhdin24zbjCcsXHJcbiAgICAgIEV4cG9ydDogJ9iu2LHZiNis24wnLFxyXG4gICAgICBTZW5kOiAn2KfYsdiz2KfZhCcsXHJcbiAgICAgIEFuZDogJyDZiCAnLFxyXG4gICAgICBVc2VybmFtZVBhc3N3b3JkSW52YWxpZDogJ9mG2KfZhSDaqdin2LHYqNix24wg24zYpyDaqdmE2YXZhyDYudio2YjYsSDYp9i02KrYqNin2Ycg2KfYs9iqJyxcclxuICAgICAgRGJVcGRhdGVFeGNlcHRpb246ICfYp9mF2qnYp9mGINit2LDZgSDYsdqp2YjYsdivINmF2YjYsdivINmG2LjYsSDYqNmHINiv2YTbjNmEINin2LPYqtmB2KfYr9mHINi02K/ZhiDYr9ixINiz2KfZhdin2YbZhyDZiNis2YjYryDZhtiv2KfYsdivJyxcclxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lXHJcbiAgICAgIExvYWRpbmdEb3Q6ICc8c3BhbiBjbGFzcz1cImRvdC1zcGlubmVyIGJsYWNrXCI+PGRpdiBjbGFzcz1cImJvdW5jZTFcIj48L2Rpdj48ZGl2IGNsYXNzPVwiYm91bmNlMlwiPjwvZGl2PjxkaXYgY2xhc3M9XCJib3VuY2UzXCI+PC9kaXY+PC9zcGFuPicsXHJcbiAgICAgIExvYWRpbmdEb3RXaGl0ZTogJzxzcGFuIGNsYXNzPVwiZG90LXNwaW5uZXIgd2hpdGVcIj48ZGl2IGNsYXNzPVwiYm91bmNlMVwiPjwvZGl2PjxkaXYgY2xhc3M9XCJib3VuY2UyXCI+PC9kaXY+PGRpdiBjbGFzcz1cImJvdW5jZTNcIj48L2Rpdj48L3NwYW4+JyxcclxuICAgICAgTG9hZGluZzogJ9iv2LEg2K3Yp9mEIHt9IDxzcGFuIGNsYXNzPVwiZG90LXNwaW5uZXJcIj48ZGl2IGNsYXNzPVwiYm91bmNlMVwiPjwvZGl2PjxkaXYgY2xhc3M9XCJib3VuY2UyXCI+PC9kaXY+PGRpdiBjbGFzcz1cImJvdW5jZTNcIj48L2Rpdj48L3NwYW4+JyxcclxuICAgICAgTG9hZGluZ1llbGxvdzogJ9iv2LEg2K3Yp9mEIHt9IDxzcGFuIGNsYXNzPVwiZG90LXNwaW5uZXIgeWVsbG93XCI+PGRpdiBjbGFzcz1cImJvdW5jZTFcIj48L2Rpdj48ZGl2IGNsYXNzPVwiYm91bmNlMlwiPjwvZGl2PjxkaXYgY2xhc3M9XCJib3VuY2UzXCI+PC9kaXY+PC9zcGFuPicsXHJcbiAgICAgIExvYWRpbmdFbXB0eTogJzxzcGFuIGNsYXNzPVwiZG90LXNwaW5uZXJcIj48ZGl2IGNsYXNzPVwiYm91bmNlMVwiPjwvZGl2PjxkaXYgY2xhc3M9XCJib3VuY2UyXCI+PC9kaXY+PGRpdiBjbGFzcz1cImJvdW5jZTNcIj48L2Rpdj48L3NwYW4+JyxcclxuICAgICAgTG9hZGluZ1RhYmxlOiAnPGkgY2xhc3M9XCJmYXMgZmEtc3BpbiBmYS1zcGlubmVyIG0tbC01LXAgaWNvblwiPjwvaT4g2K/YsSDYrdin2YQge30gPHNwYW4gY2xhc3M9XCJkb3Qtc3Bpbm5lciBibGFja1wiPjxkaXYgY2xhc3M9XCJib3VuY2UxXCI+PC9kaXY+PGRpdiBjbGFzcz1cImJvdW5jZTJcIj48L2Rpdj48ZGl2IGNsYXNzPVwiYm91bmNlM1wiPjwvZGl2Pjwvc3Bhbj4nLFxyXG4gICAgICBMb2FkaW5nVGV4dDogJ9iv2LEg2K3Yp9mEIHt9JyxcclxuICAgICAgV2FpdGluZzogJ9in2YbYqti42KfYsScsXHJcbiAgICAgIFJlcXVpcmVkOiAn2LHYpyDZiNin2LHYryDaqdmG24zYrycsXHJcbiAgICAgIEludmFsaWQ6ICfZhtin2YXYudiq2KjYsSDYp9iz2KonLFxyXG4gICAgICBGb3JtRXJyb3JSZXF1aXJlZDogJ3t9INix2Kcg2YjYp9ix2K8g2qnZhtuM2K8nLFxyXG4gICAgICBGb3JtRXJyb3JJbnZhbGlkOiAne30g2YbYp9mF2LnYqtio2LEg2KfYs9iqJyxcclxuICAgICAgRm9ybUVycm9yTGVuZ3RoOiAn2LfZiNmEIHt9INio2KfbjNivIHt9INqp2KfYsdin2qnYqtixINio2KfYtNivJyxcclxuICAgICAgRm9ybUVycm9yTWluTGVuZ3RoOiAn2LfZiNmEIHt9INio2KfbjNivINit2K/Yp9mC2YQge30g2qnYp9ix2Kfaqdiq2LEg2KjYp9i02K8nLFxyXG4gICAgICBGb3JtRXJyb3JNYXhMZW5ndGg6ICfYt9mI2YQge30g2KjYp9uM2K8g2K3Yr9in2qnYq9ixIHt9INqp2KfYsdin2qnYqtixINio2KfYtNivJyxcclxuICAgICAgRm9ybUVycm9yTWluQW1vdW50OiAn2YXZgtiv2KfYsSB7fSDYqNin24zYryDYrdiv2KfZgtmEIHt9INio2KfYtNivJyxcclxuICAgICAgRm9ybUVycm9yTWF4QW1vdW50OiAn2YXZgtiv2KfYsSB7fSDYqNin24zYryDYrdiv2Kfaqdir2LEge30g2KjYp9i02K8nLFxyXG4gICAgICBGb3JtRXJyb3JFeHBpcmVkOiAne30g2YXZhtmC2LbbjCDYtNiv2Ycg2KfYs9iqJyxcclxuICAgICAgRm9ybUVycm9yV3Jvbmc6ICd7fSDYp9i02KrYqNin2Ycg2KfYs9iqJyxcclxuICAgICAgRm9ybUVycm9yTm90TWF0Y2g6ICd7fSDYqNinINiq2qnYsdin2LEg2KLZhiDZhdi32KfYqNmC2Kog2YbYr9in2LHYrycsXHJcbiAgICAgIEZvcm1FcnJvckV4aXN0OiAne30g2K/YsSDYs9in2YXYp9mG2Ycg2KvYqNiqINi02K/ZhyDYp9iz2KonLFxyXG4gICAgICBGb3JtRXJyb3JOb3RFeGlzdDogJ3t9INiv2LEg2LPYp9mF2KfZhtmHINir2KjYqiDZhti02K/ZhyDYp9iz2KonLFxyXG4gICAgICBGb3JtRXJyb3JOb3RBbGxvd2VkOiAn2YbZiNi5INmB2KfbjNmEIHt9INmG2KfZhdi52KrYqNixINin2LPYqiAoe30pJyxcclxuICAgICAgRm9ybUVycm9yTWF4Q29udGVudDogJ9it2KzZhSDZgdin24zZhCB7fSDZhtio2KfbjNivINio24zYtNiq2LEg2KfYsiB7fUtCINio2KfYtNivJyxcclxuICAgICAgRm9ybUVycm9yVXBsb2FkOiAn2K7Yt9inINiv2LEg2KjYp9ix2q/YsNin2LHbjCB7fScsXHJcbiAgICAgIEZvcm1FcnJvcjogJ9iu2LfYpyDYr9ixIHt9JyxcclxuICAgICAgRm9ybUJhc2VFcnJvckV4cGlyZWQ6ICfZhNi32YHYpyDZhdis2K/Yr9inINmI2KfYsdivINi02YjbjNivJyxcclxuICAgICAgRm9ybUJhc2VFcnJvclJlZ2lzdGVyZWQ6ICfYrti32Kcg2K/YsSDYqtin24zbjNivINqp2K8g2YbYsdmFINin2YHYstin2LEnLFxyXG4gICAgICBFcnJvclVwbG9hZDogJ9iu2LfYpyDYr9ixINio2KfYsdqv2LDYp9ix24wg2YHYp9uM2YQnLFxyXG4gICAgICBGb3JtQmFzZUVycm9ySW52YWxpZFBhcmFtOiAn2K7Yt9inINiv2LEg2KfYt9mE2KfYudin2Kog2KfYsdiz2KfZhCDYtNiv2YcnLFxyXG4gICAgICBGb3JtQmFzZUVycm9yVGltZU91dDogJ9iv2LHYrtmI2KfYs9iqINi02YXYpyDYqNuM2LQg2KfYsiDYrdivINmF2LnZhdmI2YQg2LLZhdin2YYg2KjYsdiv2Ycg2KfYs9iqLiDZhNi32YHYpyDZhdis2K/Yr9inINiq2YTYp9i0INqp2YbbjNivJyxcclxuICAgICAgRm9ybUJhc2VFcnJvclBlcm1pc3Npb246ICfYudiv2YUg2K/Ys9iq2LHYs9uMJyxcclxuICAgICAgUGF5bWVudEVycm9yOiAn2K7Yt9inINiv2LEg2KfYqti12KfZhCDYqNmHINiv2LHar9in2Ycg2KjYp9mG2qnbjCcsXHJcbiAgICAgIEVycm9yOiAn2YXYqtin2LPZgdin2YbZhyDYr9ixINiz24zYs9iq2YUg2K7Yt9in24zbjCDYqNmHINmI2KzZiNivINii2YXYr9mHINin2LPYqi4g2YTYt9mB2Kcg2YXYrNiv2K/YpyDYqtmE2KfYtCDaqdmG24zYrycsXHJcbiAgICB9XHJcbiAgfVxyXG59O1xyXG4iXX0=
|