@vendure/admin-ui 1.5.2 → 1.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/vendure-admin-ui-catalog.umd.js +212 -173
- package/bundles/vendure-admin-ui-catalog.umd.js.map +1 -1
- package/bundles/vendure-admin-ui-core.umd.js +2337 -1864
- package/bundles/vendure-admin-ui-core.umd.js.map +1 -1
- package/bundles/vendure-admin-ui-dashboard.umd.js +3 -3
- package/bundles/vendure-admin-ui-dashboard.umd.js.map +1 -1
- package/bundles/vendure-admin-ui-login.umd.js +2 -2
- package/bundles/vendure-admin-ui-login.umd.js.map +1 -1
- package/bundles/vendure-admin-ui-marketing.umd.js +1 -1
- package/bundles/vendure-admin-ui-marketing.umd.js.map +1 -1
- package/bundles/vendure-admin-ui-order.umd.js +1 -1
- package/bundles/vendure-admin-ui-order.umd.js.map +1 -1
- package/catalog/components/collection-contents/collection-contents.component.d.ts +7 -2
- package/catalog/components/collection-detail/collection-detail.component.d.ts +12 -4
- package/catalog/components/collection-list/collection-list.component.d.ts +2 -0
- package/catalog/components/collection-tree/array-to-tree.d.ts +1 -1
- package/catalog/components/collection-tree/collection-tree-node.component.d.ts +5 -1
- package/catalog/components/collection-tree/collection-tree.component.d.ts +1 -0
- package/catalog/components/product-variants-editor/product-variants-editor.component.d.ts +13 -10
- package/catalog/providers/product-detail/product-detail.service.d.ts +2 -2
- package/catalog/public_api.d.ts +0 -1
- package/catalog/vendure-admin-ui-catalog.metadata.json +1 -1
- package/core/common/generated-types.d.ts +32 -3
- package/core/common/utilities/selection-manager.d.ts +23 -0
- package/core/common/version.d.ts +1 -1
- package/core/components/app-shell/app-shell.component.d.ts +1 -0
- package/core/data/definitions/collection-definitions.d.ts +1 -0
- package/core/data/providers/collection-data.service.d.ts +6 -2
- package/core/providers/local-storage/local-storage.service.d.ts +1 -0
- package/core/public_api.d.ts +5 -0
- package/core/shared/components/asset-gallery/asset-gallery.component.d.ts +21 -6
- package/core/shared/components/configurable-input/configurable-input.component.d.ts +7 -2
- package/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.d.ts +35 -0
- package/{catalog → core/shared}/components/product-search-input/product-search-input.component.d.ts +1 -1
- package/core/shared/components/select-toggle/select-toggle.component.d.ts +1 -0
- package/core/shared/dynamic-form-inputs/combination-mode-form-input/combination-mode-form-input.component.d.ts +25 -0
- package/core/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.d.ts +20 -0
- package/core/shared/dynamic-form-inputs/register-dynamic-input-components.d.ts +3 -1
- package/core/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.d.ts +5 -2
- package/core/vendure-admin-ui-core.metadata.json +1 -1
- package/dashboard/vendure-admin-ui-dashboard.metadata.json +1 -1
- package/esm2015/catalog/catalog.module.js +1 -3
- package/esm2015/catalog/components/assets/assets.component.js +1 -1
- package/esm2015/catalog/components/collection-contents/collection-contents.component.js +51 -14
- package/esm2015/catalog/components/collection-detail/collection-detail.component.js +67 -29
- package/esm2015/catalog/components/collection-list/collection-list.component.js +30 -4
- package/esm2015/catalog/components/collection-tree/array-to-tree.js +3 -3
- package/esm2015/catalog/components/collection-tree/collection-tree-node.component.js +27 -4
- package/esm2015/catalog/components/collection-tree/collection-tree.component.js +4 -2
- package/esm2015/catalog/components/product-detail/product-detail.component.js +1 -1
- package/esm2015/catalog/components/product-list/product-list.component.js +3 -3
- package/esm2015/catalog/components/product-variants-editor/product-variants-editor.component.js +7 -2
- package/esm2015/catalog/components/product-variants-list/product-variants-list.component.js +1 -1
- package/esm2015/catalog/public_api.js +1 -2
- package/esm2015/core/app.component.module.js +1 -1
- package/esm2015/core/common/base-detail.component.js +1 -1
- package/esm2015/core/common/deactivate-aware.js +1 -1
- package/esm2015/core/common/generated-types.js +1 -1
- package/esm2015/core/common/introspection-result.js +255 -189
- package/esm2015/core/common/utilities/configurable-operation-utils.js +2 -2
- package/esm2015/core/common/utilities/selection-manager.js +64 -0
- package/esm2015/core/common/version.js +2 -2
- package/esm2015/core/components/app-shell/app-shell.component.js +4 -3
- package/esm2015/core/components/main-nav/main-nav.component.js +2 -2
- package/esm2015/core/core.module.js +1 -1
- package/esm2015/core/data/definitions/collection-definitions.js +18 -1
- package/esm2015/core/data/definitions/order-definitions.js +431 -430
- package/esm2015/core/data/definitions/shared-definitions.js +29 -28
- package/esm2015/core/data/providers/collection-data.service.js +5 -2
- package/esm2015/core/providers/local-storage/local-storage.service.js +1 -1
- package/esm2015/core/public_api.js +6 -1
- package/esm2015/core/shared/components/address-form/address-form.component.js +2 -2
- package/esm2015/core/shared/components/asset-gallery/asset-gallery.component.js +24 -42
- package/esm2015/core/shared/components/configurable-input/configurable-input.component.js +13 -3
- package/esm2015/core/shared/components/formatted-address/formatted-address.component.js +2 -2
- package/esm2015/core/shared/components/help-tooltip/help-tooltip.component.js +1 -1
- package/esm2015/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.js +129 -0
- package/esm2015/core/shared/components/product-search-input/product-search-input.component.js +104 -0
- package/esm2015/core/shared/components/rich-text-editor/rich-text-editor.component.js +1 -1
- package/esm2015/core/shared/components/select-toggle/select-toggle.component.js +5 -3
- package/esm2015/core/shared/dynamic-form-inputs/combination-mode-form-input/combination-mode-form-input.component.js +45 -0
- package/esm2015/core/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.js +53 -0
- package/esm2015/core/shared/dynamic-form-inputs/register-dynamic-input-components.js +5 -1
- package/esm2015/core/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.js +8 -7
- package/esm2015/core/shared/shared.module.js +9 -1
- package/esm2015/dashboard/components/dashboard/dashboard.component.js +1 -1
- package/esm2015/dashboard/components/dashboard-widget/dashboard-widget.component.js +2 -2
- package/esm2015/dashboard/widgets/order-summary-widget/order-summary-widget.component.js +1 -1
- package/esm2015/login/components/login/login.component.js +3 -3
- package/esm2015/marketing/components/promotion-detail/promotion-detail.component.js +2 -2
- package/esm2015/order/components/order-list/order-list.component.js +2 -2
- package/fesm2015/vendure-admin-ui-catalog.js +187 -158
- package/fesm2015/vendure-admin-ui-catalog.js.map +1 -1
- package/fesm2015/vendure-admin-ui-core.js +1824 -1359
- package/fesm2015/vendure-admin-ui-core.js.map +1 -1
- package/fesm2015/vendure-admin-ui-dashboard.js +3 -3
- package/fesm2015/vendure-admin-ui-dashboard.js.map +1 -1
- package/fesm2015/vendure-admin-ui-login.js +2 -2
- package/fesm2015/vendure-admin-ui-login.js.map +1 -1
- package/fesm2015/vendure-admin-ui-marketing.js +1 -1
- package/fesm2015/vendure-admin-ui-marketing.js.map +1 -1
- package/fesm2015/vendure-admin-ui-order.js +1 -1
- package/fesm2015/vendure-admin-ui-order.js.map +1 -1
- package/login/vendure-admin-ui-login.metadata.json +1 -1
- package/marketing/vendure-admin-ui-marketing.metadata.json +1 -1
- package/order/vendure-admin-ui-order.metadata.json +1 -1
- package/package.json +2 -2
- package/static/i18n-messages/cs.json +683 -673
- package/static/i18n-messages/de.json +683 -673
- package/static/i18n-messages/en.json +684 -674
- package/static/i18n-messages/es.json +683 -673
- package/static/i18n-messages/fr.json +683 -673
- package/static/i18n-messages/it.json +683 -673
- package/static/i18n-messages/pl.json +683 -673
- package/static/i18n-messages/pt_BR.json +683 -673
- package/static/i18n-messages/pt_PT.json +683 -673
- package/static/i18n-messages/ru.json +683 -673
- package/static/i18n-messages/uk.json +683 -673
- package/static/i18n-messages/zh_Hans.json +683 -673
- package/static/i18n-messages/zh_Hant.json +683 -673
- package/static/styles/global/_forms.scss +4 -5
- package/static/styles/global/_overrides.scss +5 -1
- package/static/styles/global/_utilities.scss +9 -0
- package/static/styles/theme/default.scss +13 -1
- package/static/theme.min.css +1 -1
- package/esm2015/catalog/components/product-search-input/product-search-input.component.js +0 -104
|
@@ -1,457 +1,458 @@
|
|
|
1
1
|
import { gql } from 'apollo-angular';
|
|
2
2
|
import { ERROR_RESULT_FRAGMENT } from './shared-definitions';
|
|
3
|
-
export const DISCOUNT_FRAGMENT = gql `
|
|
4
|
-
fragment Discount on Discount {
|
|
5
|
-
adjustmentSource
|
|
6
|
-
amount
|
|
7
|
-
amountWithTax
|
|
8
|
-
description
|
|
9
|
-
type
|
|
10
|
-
}
|
|
3
|
+
export const DISCOUNT_FRAGMENT = gql `
|
|
4
|
+
fragment Discount on Discount {
|
|
5
|
+
adjustmentSource
|
|
6
|
+
amount
|
|
7
|
+
amountWithTax
|
|
8
|
+
description
|
|
9
|
+
type
|
|
10
|
+
}
|
|
11
11
|
`;
|
|
12
|
-
export const REFUND_FRAGMENT = gql `
|
|
13
|
-
fragment Refund on Refund {
|
|
14
|
-
id
|
|
15
|
-
state
|
|
16
|
-
items
|
|
17
|
-
shipping
|
|
18
|
-
adjustment
|
|
19
|
-
transactionId
|
|
20
|
-
paymentId
|
|
21
|
-
}
|
|
12
|
+
export const REFUND_FRAGMENT = gql `
|
|
13
|
+
fragment Refund on Refund {
|
|
14
|
+
id
|
|
15
|
+
state
|
|
16
|
+
items
|
|
17
|
+
shipping
|
|
18
|
+
adjustment
|
|
19
|
+
transactionId
|
|
20
|
+
paymentId
|
|
21
|
+
}
|
|
22
22
|
`;
|
|
23
|
-
export const ORDER_ADDRESS_FRAGMENT = gql `
|
|
24
|
-
fragment OrderAddress on OrderAddress {
|
|
25
|
-
fullName
|
|
26
|
-
company
|
|
27
|
-
streetLine1
|
|
28
|
-
streetLine2
|
|
29
|
-
city
|
|
30
|
-
province
|
|
31
|
-
postalCode
|
|
32
|
-
country
|
|
33
|
-
countryCode
|
|
34
|
-
phoneNumber
|
|
35
|
-
}
|
|
23
|
+
export const ORDER_ADDRESS_FRAGMENT = gql `
|
|
24
|
+
fragment OrderAddress on OrderAddress {
|
|
25
|
+
fullName
|
|
26
|
+
company
|
|
27
|
+
streetLine1
|
|
28
|
+
streetLine2
|
|
29
|
+
city
|
|
30
|
+
province
|
|
31
|
+
postalCode
|
|
32
|
+
country
|
|
33
|
+
countryCode
|
|
34
|
+
phoneNumber
|
|
35
|
+
}
|
|
36
36
|
`;
|
|
37
|
-
export const ORDER_FRAGMENT = gql `
|
|
38
|
-
fragment Order on Order {
|
|
39
|
-
id
|
|
40
|
-
createdAt
|
|
41
|
-
updatedAt
|
|
42
|
-
orderPlacedAt
|
|
43
|
-
code
|
|
44
|
-
state
|
|
45
|
-
nextStates
|
|
46
|
-
total
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
37
|
+
export const ORDER_FRAGMENT = gql `
|
|
38
|
+
fragment Order on Order {
|
|
39
|
+
id
|
|
40
|
+
createdAt
|
|
41
|
+
updatedAt
|
|
42
|
+
orderPlacedAt
|
|
43
|
+
code
|
|
44
|
+
state
|
|
45
|
+
nextStates
|
|
46
|
+
total
|
|
47
|
+
totalWithTax
|
|
48
|
+
currencyCode
|
|
49
|
+
customer {
|
|
50
|
+
id
|
|
51
|
+
firstName
|
|
52
|
+
lastName
|
|
53
|
+
}
|
|
54
|
+
shippingLines {
|
|
55
|
+
shippingMethod {
|
|
56
|
+
name
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
59
60
|
`;
|
|
60
|
-
export const FULFILLMENT_FRAGMENT = gql `
|
|
61
|
-
fragment Fulfillment on Fulfillment {
|
|
62
|
-
id
|
|
63
|
-
state
|
|
64
|
-
nextStates
|
|
65
|
-
createdAt
|
|
66
|
-
updatedAt
|
|
67
|
-
method
|
|
68
|
-
orderItems {
|
|
69
|
-
id
|
|
70
|
-
}
|
|
71
|
-
trackingCode
|
|
72
|
-
}
|
|
61
|
+
export const FULFILLMENT_FRAGMENT = gql `
|
|
62
|
+
fragment Fulfillment on Fulfillment {
|
|
63
|
+
id
|
|
64
|
+
state
|
|
65
|
+
nextStates
|
|
66
|
+
createdAt
|
|
67
|
+
updatedAt
|
|
68
|
+
method
|
|
69
|
+
orderItems {
|
|
70
|
+
id
|
|
71
|
+
}
|
|
72
|
+
trackingCode
|
|
73
|
+
}
|
|
73
74
|
`;
|
|
74
|
-
export const ORDER_LINE_FRAGMENT = gql `
|
|
75
|
-
fragment OrderLine on OrderLine {
|
|
76
|
-
id
|
|
77
|
-
featuredAsset {
|
|
78
|
-
preview
|
|
79
|
-
}
|
|
80
|
-
productVariant {
|
|
81
|
-
id
|
|
82
|
-
name
|
|
83
|
-
sku
|
|
84
|
-
trackInventory
|
|
85
|
-
stockOnHand
|
|
86
|
-
}
|
|
87
|
-
discounts {
|
|
88
|
-
...Discount
|
|
89
|
-
}
|
|
90
|
-
unitPrice
|
|
91
|
-
unitPriceWithTax
|
|
92
|
-
proratedUnitPrice
|
|
93
|
-
proratedUnitPriceWithTax
|
|
94
|
-
quantity
|
|
95
|
-
items {
|
|
96
|
-
id
|
|
97
|
-
unitPrice
|
|
98
|
-
unitPriceWithTax
|
|
99
|
-
taxRate
|
|
100
|
-
refundId
|
|
101
|
-
cancelled
|
|
102
|
-
fulfillment {
|
|
103
|
-
...Fulfillment
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
linePrice
|
|
107
|
-
lineTax
|
|
108
|
-
linePriceWithTax
|
|
109
|
-
discountedLinePrice
|
|
110
|
-
discountedLinePriceWithTax
|
|
111
|
-
}
|
|
75
|
+
export const ORDER_LINE_FRAGMENT = gql `
|
|
76
|
+
fragment OrderLine on OrderLine {
|
|
77
|
+
id
|
|
78
|
+
featuredAsset {
|
|
79
|
+
preview
|
|
80
|
+
}
|
|
81
|
+
productVariant {
|
|
82
|
+
id
|
|
83
|
+
name
|
|
84
|
+
sku
|
|
85
|
+
trackInventory
|
|
86
|
+
stockOnHand
|
|
87
|
+
}
|
|
88
|
+
discounts {
|
|
89
|
+
...Discount
|
|
90
|
+
}
|
|
91
|
+
unitPrice
|
|
92
|
+
unitPriceWithTax
|
|
93
|
+
proratedUnitPrice
|
|
94
|
+
proratedUnitPriceWithTax
|
|
95
|
+
quantity
|
|
96
|
+
items {
|
|
97
|
+
id
|
|
98
|
+
unitPrice
|
|
99
|
+
unitPriceWithTax
|
|
100
|
+
taxRate
|
|
101
|
+
refundId
|
|
102
|
+
cancelled
|
|
103
|
+
fulfillment {
|
|
104
|
+
...Fulfillment
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
linePrice
|
|
108
|
+
lineTax
|
|
109
|
+
linePriceWithTax
|
|
110
|
+
discountedLinePrice
|
|
111
|
+
discountedLinePriceWithTax
|
|
112
|
+
}
|
|
112
113
|
`;
|
|
113
|
-
export const ORDER_DETAIL_FRAGMENT = gql `
|
|
114
|
-
fragment OrderDetail on Order {
|
|
115
|
-
id
|
|
116
|
-
createdAt
|
|
117
|
-
updatedAt
|
|
118
|
-
code
|
|
119
|
-
state
|
|
120
|
-
nextStates
|
|
121
|
-
active
|
|
122
|
-
couponCodes
|
|
123
|
-
customer {
|
|
124
|
-
id
|
|
125
|
-
firstName
|
|
126
|
-
lastName
|
|
127
|
-
}
|
|
128
|
-
lines {
|
|
129
|
-
...OrderLine
|
|
130
|
-
}
|
|
131
|
-
surcharges {
|
|
132
|
-
id
|
|
133
|
-
sku
|
|
134
|
-
description
|
|
135
|
-
price
|
|
136
|
-
priceWithTax
|
|
137
|
-
taxRate
|
|
138
|
-
}
|
|
139
|
-
discounts {
|
|
140
|
-
...Discount
|
|
141
|
-
}
|
|
142
|
-
promotions {
|
|
143
|
-
id
|
|
144
|
-
couponCode
|
|
145
|
-
}
|
|
146
|
-
subTotal
|
|
147
|
-
subTotalWithTax
|
|
148
|
-
total
|
|
149
|
-
totalWithTax
|
|
150
|
-
currencyCode
|
|
151
|
-
shipping
|
|
152
|
-
shippingWithTax
|
|
153
|
-
shippingLines {
|
|
154
|
-
shippingMethod {
|
|
155
|
-
id
|
|
156
|
-
code
|
|
157
|
-
name
|
|
158
|
-
fulfillmentHandlerCode
|
|
159
|
-
description
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
taxSummary {
|
|
163
|
-
description
|
|
164
|
-
taxBase
|
|
165
|
-
taxRate
|
|
166
|
-
taxTotal
|
|
167
|
-
}
|
|
168
|
-
shippingAddress {
|
|
169
|
-
...OrderAddress
|
|
170
|
-
}
|
|
171
|
-
billingAddress {
|
|
172
|
-
...OrderAddress
|
|
173
|
-
}
|
|
174
|
-
payments {
|
|
175
|
-
id
|
|
176
|
-
createdAt
|
|
177
|
-
transactionId
|
|
178
|
-
amount
|
|
179
|
-
method
|
|
180
|
-
state
|
|
181
|
-
nextStates
|
|
182
|
-
errorMessage
|
|
183
|
-
metadata
|
|
184
|
-
refunds {
|
|
185
|
-
id
|
|
186
|
-
createdAt
|
|
187
|
-
state
|
|
188
|
-
items
|
|
189
|
-
adjustment
|
|
190
|
-
total
|
|
191
|
-
paymentId
|
|
192
|
-
reason
|
|
193
|
-
transactionId
|
|
194
|
-
method
|
|
195
|
-
metadata
|
|
196
|
-
orderItems {
|
|
197
|
-
id
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
fulfillments {
|
|
202
|
-
...Fulfillment
|
|
203
|
-
}
|
|
204
|
-
modifications {
|
|
205
|
-
id
|
|
206
|
-
createdAt
|
|
207
|
-
isSettled
|
|
208
|
-
priceChange
|
|
209
|
-
note
|
|
210
|
-
payment {
|
|
211
|
-
id
|
|
212
|
-
amount
|
|
213
|
-
}
|
|
214
|
-
orderItems {
|
|
215
|
-
id
|
|
216
|
-
}
|
|
217
|
-
refund {
|
|
218
|
-
id
|
|
219
|
-
paymentId
|
|
220
|
-
total
|
|
221
|
-
}
|
|
222
|
-
surcharges {
|
|
223
|
-
id
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
${DISCOUNT_FRAGMENT}
|
|
228
|
-
${ORDER_ADDRESS_FRAGMENT}
|
|
229
|
-
${FULFILLMENT_FRAGMENT}
|
|
230
|
-
${ORDER_LINE_FRAGMENT}
|
|
114
|
+
export const ORDER_DETAIL_FRAGMENT = gql `
|
|
115
|
+
fragment OrderDetail on Order {
|
|
116
|
+
id
|
|
117
|
+
createdAt
|
|
118
|
+
updatedAt
|
|
119
|
+
code
|
|
120
|
+
state
|
|
121
|
+
nextStates
|
|
122
|
+
active
|
|
123
|
+
couponCodes
|
|
124
|
+
customer {
|
|
125
|
+
id
|
|
126
|
+
firstName
|
|
127
|
+
lastName
|
|
128
|
+
}
|
|
129
|
+
lines {
|
|
130
|
+
...OrderLine
|
|
131
|
+
}
|
|
132
|
+
surcharges {
|
|
133
|
+
id
|
|
134
|
+
sku
|
|
135
|
+
description
|
|
136
|
+
price
|
|
137
|
+
priceWithTax
|
|
138
|
+
taxRate
|
|
139
|
+
}
|
|
140
|
+
discounts {
|
|
141
|
+
...Discount
|
|
142
|
+
}
|
|
143
|
+
promotions {
|
|
144
|
+
id
|
|
145
|
+
couponCode
|
|
146
|
+
}
|
|
147
|
+
subTotal
|
|
148
|
+
subTotalWithTax
|
|
149
|
+
total
|
|
150
|
+
totalWithTax
|
|
151
|
+
currencyCode
|
|
152
|
+
shipping
|
|
153
|
+
shippingWithTax
|
|
154
|
+
shippingLines {
|
|
155
|
+
shippingMethod {
|
|
156
|
+
id
|
|
157
|
+
code
|
|
158
|
+
name
|
|
159
|
+
fulfillmentHandlerCode
|
|
160
|
+
description
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
taxSummary {
|
|
164
|
+
description
|
|
165
|
+
taxBase
|
|
166
|
+
taxRate
|
|
167
|
+
taxTotal
|
|
168
|
+
}
|
|
169
|
+
shippingAddress {
|
|
170
|
+
...OrderAddress
|
|
171
|
+
}
|
|
172
|
+
billingAddress {
|
|
173
|
+
...OrderAddress
|
|
174
|
+
}
|
|
175
|
+
payments {
|
|
176
|
+
id
|
|
177
|
+
createdAt
|
|
178
|
+
transactionId
|
|
179
|
+
amount
|
|
180
|
+
method
|
|
181
|
+
state
|
|
182
|
+
nextStates
|
|
183
|
+
errorMessage
|
|
184
|
+
metadata
|
|
185
|
+
refunds {
|
|
186
|
+
id
|
|
187
|
+
createdAt
|
|
188
|
+
state
|
|
189
|
+
items
|
|
190
|
+
adjustment
|
|
191
|
+
total
|
|
192
|
+
paymentId
|
|
193
|
+
reason
|
|
194
|
+
transactionId
|
|
195
|
+
method
|
|
196
|
+
metadata
|
|
197
|
+
orderItems {
|
|
198
|
+
id
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
fulfillments {
|
|
203
|
+
...Fulfillment
|
|
204
|
+
}
|
|
205
|
+
modifications {
|
|
206
|
+
id
|
|
207
|
+
createdAt
|
|
208
|
+
isSettled
|
|
209
|
+
priceChange
|
|
210
|
+
note
|
|
211
|
+
payment {
|
|
212
|
+
id
|
|
213
|
+
amount
|
|
214
|
+
}
|
|
215
|
+
orderItems {
|
|
216
|
+
id
|
|
217
|
+
}
|
|
218
|
+
refund {
|
|
219
|
+
id
|
|
220
|
+
paymentId
|
|
221
|
+
total
|
|
222
|
+
}
|
|
223
|
+
surcharges {
|
|
224
|
+
id
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
${DISCOUNT_FRAGMENT}
|
|
229
|
+
${ORDER_ADDRESS_FRAGMENT}
|
|
230
|
+
${FULFILLMENT_FRAGMENT}
|
|
231
|
+
${ORDER_LINE_FRAGMENT}
|
|
231
232
|
`;
|
|
232
|
-
export const GET_ORDERS_LIST = gql `
|
|
233
|
-
query GetOrderList($options: OrderListOptions) {
|
|
234
|
-
orders(options: $options) {
|
|
235
|
-
items {
|
|
236
|
-
...Order
|
|
237
|
-
}
|
|
238
|
-
totalItems
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
${ORDER_FRAGMENT}
|
|
233
|
+
export const GET_ORDERS_LIST = gql `
|
|
234
|
+
query GetOrderList($options: OrderListOptions) {
|
|
235
|
+
orders(options: $options) {
|
|
236
|
+
items {
|
|
237
|
+
...Order
|
|
238
|
+
}
|
|
239
|
+
totalItems
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
${ORDER_FRAGMENT}
|
|
242
243
|
`;
|
|
243
|
-
export const GET_ORDER = gql `
|
|
244
|
-
query GetOrder($id: ID!) {
|
|
245
|
-
order(id: $id) {
|
|
246
|
-
...OrderDetail
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
${ORDER_DETAIL_FRAGMENT}
|
|
244
|
+
export const GET_ORDER = gql `
|
|
245
|
+
query GetOrder($id: ID!) {
|
|
246
|
+
order(id: $id) {
|
|
247
|
+
...OrderDetail
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
${ORDER_DETAIL_FRAGMENT}
|
|
250
251
|
`;
|
|
251
|
-
export const SETTLE_PAYMENT = gql `
|
|
252
|
-
mutation SettlePayment($id: ID!) {
|
|
253
|
-
settlePayment(id: $id) {
|
|
254
|
-
... on Payment {
|
|
255
|
-
id
|
|
256
|
-
transactionId
|
|
257
|
-
amount
|
|
258
|
-
method
|
|
259
|
-
state
|
|
260
|
-
metadata
|
|
261
|
-
}
|
|
262
|
-
...ErrorResult
|
|
263
|
-
... on SettlePaymentError {
|
|
264
|
-
paymentErrorMessage
|
|
265
|
-
}
|
|
266
|
-
... on PaymentStateTransitionError {
|
|
267
|
-
transitionError
|
|
268
|
-
}
|
|
269
|
-
... on OrderStateTransitionError {
|
|
270
|
-
transitionError
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
${ERROR_RESULT_FRAGMENT}
|
|
252
|
+
export const SETTLE_PAYMENT = gql `
|
|
253
|
+
mutation SettlePayment($id: ID!) {
|
|
254
|
+
settlePayment(id: $id) {
|
|
255
|
+
... on Payment {
|
|
256
|
+
id
|
|
257
|
+
transactionId
|
|
258
|
+
amount
|
|
259
|
+
method
|
|
260
|
+
state
|
|
261
|
+
metadata
|
|
262
|
+
}
|
|
263
|
+
...ErrorResult
|
|
264
|
+
... on SettlePaymentError {
|
|
265
|
+
paymentErrorMessage
|
|
266
|
+
}
|
|
267
|
+
... on PaymentStateTransitionError {
|
|
268
|
+
transitionError
|
|
269
|
+
}
|
|
270
|
+
... on OrderStateTransitionError {
|
|
271
|
+
transitionError
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
${ERROR_RESULT_FRAGMENT}
|
|
275
276
|
`;
|
|
276
|
-
export const TRANSITION_PAYMENT_TO_STATE = gql `
|
|
277
|
-
mutation TransitionPaymentToState($id: ID!, $state: String!) {
|
|
278
|
-
transitionPaymentToState(id: $id, state: $state) {
|
|
279
|
-
... on Payment {
|
|
280
|
-
id
|
|
281
|
-
transactionId
|
|
282
|
-
amount
|
|
283
|
-
method
|
|
284
|
-
state
|
|
285
|
-
metadata
|
|
286
|
-
}
|
|
287
|
-
...ErrorResult
|
|
288
|
-
... on PaymentStateTransitionError {
|
|
289
|
-
transitionError
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
${ERROR_RESULT_FRAGMENT}
|
|
277
|
+
export const TRANSITION_PAYMENT_TO_STATE = gql `
|
|
278
|
+
mutation TransitionPaymentToState($id: ID!, $state: String!) {
|
|
279
|
+
transitionPaymentToState(id: $id, state: $state) {
|
|
280
|
+
... on Payment {
|
|
281
|
+
id
|
|
282
|
+
transactionId
|
|
283
|
+
amount
|
|
284
|
+
method
|
|
285
|
+
state
|
|
286
|
+
metadata
|
|
287
|
+
}
|
|
288
|
+
...ErrorResult
|
|
289
|
+
... on PaymentStateTransitionError {
|
|
290
|
+
transitionError
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
${ERROR_RESULT_FRAGMENT}
|
|
294
295
|
`;
|
|
295
|
-
export const CREATE_FULFILLMENT = gql `
|
|
296
|
-
mutation CreateFulfillment($input: FulfillOrderInput!) {
|
|
297
|
-
addFulfillmentToOrder(input: $input) {
|
|
298
|
-
...Fulfillment
|
|
299
|
-
... on CreateFulfillmentError {
|
|
300
|
-
errorCode
|
|
301
|
-
message
|
|
302
|
-
fulfillmentHandlerError
|
|
303
|
-
}
|
|
304
|
-
... on FulfillmentStateTransitionError {
|
|
305
|
-
errorCode
|
|
306
|
-
message
|
|
307
|
-
transitionError
|
|
308
|
-
}
|
|
309
|
-
...ErrorResult
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
${FULFILLMENT_FRAGMENT}
|
|
313
|
-
${ERROR_RESULT_FRAGMENT}
|
|
296
|
+
export const CREATE_FULFILLMENT = gql `
|
|
297
|
+
mutation CreateFulfillment($input: FulfillOrderInput!) {
|
|
298
|
+
addFulfillmentToOrder(input: $input) {
|
|
299
|
+
...Fulfillment
|
|
300
|
+
... on CreateFulfillmentError {
|
|
301
|
+
errorCode
|
|
302
|
+
message
|
|
303
|
+
fulfillmentHandlerError
|
|
304
|
+
}
|
|
305
|
+
... on FulfillmentStateTransitionError {
|
|
306
|
+
errorCode
|
|
307
|
+
message
|
|
308
|
+
transitionError
|
|
309
|
+
}
|
|
310
|
+
...ErrorResult
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
${FULFILLMENT_FRAGMENT}
|
|
314
|
+
${ERROR_RESULT_FRAGMENT}
|
|
314
315
|
`;
|
|
315
|
-
export const CANCEL_ORDER = gql `
|
|
316
|
-
mutation CancelOrder($input: CancelOrderInput!) {
|
|
317
|
-
cancelOrder(input: $input) {
|
|
318
|
-
...OrderDetail
|
|
319
|
-
...ErrorResult
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
${ORDER_DETAIL_FRAGMENT}
|
|
323
|
-
${ERROR_RESULT_FRAGMENT}
|
|
316
|
+
export const CANCEL_ORDER = gql `
|
|
317
|
+
mutation CancelOrder($input: CancelOrderInput!) {
|
|
318
|
+
cancelOrder(input: $input) {
|
|
319
|
+
...OrderDetail
|
|
320
|
+
...ErrorResult
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
${ORDER_DETAIL_FRAGMENT}
|
|
324
|
+
${ERROR_RESULT_FRAGMENT}
|
|
324
325
|
`;
|
|
325
|
-
export const REFUND_ORDER = gql `
|
|
326
|
-
mutation RefundOrder($input: RefundOrderInput!) {
|
|
327
|
-
refundOrder(input: $input) {
|
|
328
|
-
...Refund
|
|
329
|
-
...ErrorResult
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
${REFUND_FRAGMENT}
|
|
333
|
-
${ERROR_RESULT_FRAGMENT}
|
|
326
|
+
export const REFUND_ORDER = gql `
|
|
327
|
+
mutation RefundOrder($input: RefundOrderInput!) {
|
|
328
|
+
refundOrder(input: $input) {
|
|
329
|
+
...Refund
|
|
330
|
+
...ErrorResult
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
${REFUND_FRAGMENT}
|
|
334
|
+
${ERROR_RESULT_FRAGMENT}
|
|
334
335
|
`;
|
|
335
|
-
export const SETTLE_REFUND = gql `
|
|
336
|
-
mutation SettleRefund($input: SettleRefundInput!) {
|
|
337
|
-
settleRefund(input: $input) {
|
|
338
|
-
...Refund
|
|
339
|
-
...ErrorResult
|
|
340
|
-
}
|
|
341
|
-
}
|
|
342
|
-
${REFUND_FRAGMENT}
|
|
343
|
-
${ERROR_RESULT_FRAGMENT}
|
|
336
|
+
export const SETTLE_REFUND = gql `
|
|
337
|
+
mutation SettleRefund($input: SettleRefundInput!) {
|
|
338
|
+
settleRefund(input: $input) {
|
|
339
|
+
...Refund
|
|
340
|
+
...ErrorResult
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
${REFUND_FRAGMENT}
|
|
344
|
+
${ERROR_RESULT_FRAGMENT}
|
|
344
345
|
`;
|
|
345
|
-
export const GET_ORDER_HISTORY = gql `
|
|
346
|
-
query GetOrderHistory($id: ID!, $options: HistoryEntryListOptions) {
|
|
347
|
-
order(id: $id) {
|
|
348
|
-
id
|
|
349
|
-
history(options: $options) {
|
|
350
|
-
totalItems
|
|
351
|
-
items {
|
|
352
|
-
id
|
|
353
|
-
type
|
|
354
|
-
createdAt
|
|
355
|
-
isPublic
|
|
356
|
-
administrator {
|
|
357
|
-
id
|
|
358
|
-
firstName
|
|
359
|
-
lastName
|
|
360
|
-
}
|
|
361
|
-
data
|
|
362
|
-
}
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
}
|
|
346
|
+
export const GET_ORDER_HISTORY = gql `
|
|
347
|
+
query GetOrderHistory($id: ID!, $options: HistoryEntryListOptions) {
|
|
348
|
+
order(id: $id) {
|
|
349
|
+
id
|
|
350
|
+
history(options: $options) {
|
|
351
|
+
totalItems
|
|
352
|
+
items {
|
|
353
|
+
id
|
|
354
|
+
type
|
|
355
|
+
createdAt
|
|
356
|
+
isPublic
|
|
357
|
+
administrator {
|
|
358
|
+
id
|
|
359
|
+
firstName
|
|
360
|
+
lastName
|
|
361
|
+
}
|
|
362
|
+
data
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
}
|
|
366
367
|
`;
|
|
367
|
-
export const ADD_NOTE_TO_ORDER = gql `
|
|
368
|
-
mutation AddNoteToOrder($input: AddNoteToOrderInput!) {
|
|
369
|
-
addNoteToOrder(input: $input) {
|
|
370
|
-
id
|
|
371
|
-
}
|
|
372
|
-
}
|
|
368
|
+
export const ADD_NOTE_TO_ORDER = gql `
|
|
369
|
+
mutation AddNoteToOrder($input: AddNoteToOrderInput!) {
|
|
370
|
+
addNoteToOrder(input: $input) {
|
|
371
|
+
id
|
|
372
|
+
}
|
|
373
|
+
}
|
|
373
374
|
`;
|
|
374
|
-
export const UPDATE_ORDER_NOTE = gql `
|
|
375
|
-
mutation UpdateOrderNote($input: UpdateOrderNoteInput!) {
|
|
376
|
-
updateOrderNote(input: $input) {
|
|
377
|
-
id
|
|
378
|
-
data
|
|
379
|
-
isPublic
|
|
380
|
-
}
|
|
381
|
-
}
|
|
375
|
+
export const UPDATE_ORDER_NOTE = gql `
|
|
376
|
+
mutation UpdateOrderNote($input: UpdateOrderNoteInput!) {
|
|
377
|
+
updateOrderNote(input: $input) {
|
|
378
|
+
id
|
|
379
|
+
data
|
|
380
|
+
isPublic
|
|
381
|
+
}
|
|
382
|
+
}
|
|
382
383
|
`;
|
|
383
|
-
export const DELETE_ORDER_NOTE = gql `
|
|
384
|
-
mutation DeleteOrderNote($id: ID!) {
|
|
385
|
-
deleteOrderNote(id: $id) {
|
|
386
|
-
result
|
|
387
|
-
message
|
|
388
|
-
}
|
|
389
|
-
}
|
|
384
|
+
export const DELETE_ORDER_NOTE = gql `
|
|
385
|
+
mutation DeleteOrderNote($id: ID!) {
|
|
386
|
+
deleteOrderNote(id: $id) {
|
|
387
|
+
result
|
|
388
|
+
message
|
|
389
|
+
}
|
|
390
|
+
}
|
|
390
391
|
`;
|
|
391
|
-
export const TRANSITION_ORDER_TO_STATE = gql `
|
|
392
|
-
mutation TransitionOrderToState($id: ID!, $state: String!) {
|
|
393
|
-
transitionOrderToState(id: $id, state: $state) {
|
|
394
|
-
...Order
|
|
395
|
-
...ErrorResult
|
|
396
|
-
... on OrderStateTransitionError {
|
|
397
|
-
transitionError
|
|
398
|
-
}
|
|
399
|
-
}
|
|
400
|
-
}
|
|
401
|
-
${ORDER_FRAGMENT}
|
|
402
|
-
${ERROR_RESULT_FRAGMENT}
|
|
392
|
+
export const TRANSITION_ORDER_TO_STATE = gql `
|
|
393
|
+
mutation TransitionOrderToState($id: ID!, $state: String!) {
|
|
394
|
+
transitionOrderToState(id: $id, state: $state) {
|
|
395
|
+
...Order
|
|
396
|
+
...ErrorResult
|
|
397
|
+
... on OrderStateTransitionError {
|
|
398
|
+
transitionError
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
${ORDER_FRAGMENT}
|
|
403
|
+
${ERROR_RESULT_FRAGMENT}
|
|
403
404
|
`;
|
|
404
|
-
export const UPDATE_ORDER_CUSTOM_FIELDS = gql `
|
|
405
|
-
mutation UpdateOrderCustomFields($input: UpdateOrderInput!) {
|
|
406
|
-
setOrderCustomFields(input: $input) {
|
|
407
|
-
...Order
|
|
408
|
-
}
|
|
409
|
-
}
|
|
410
|
-
${ORDER_FRAGMENT}
|
|
405
|
+
export const UPDATE_ORDER_CUSTOM_FIELDS = gql `
|
|
406
|
+
mutation UpdateOrderCustomFields($input: UpdateOrderInput!) {
|
|
407
|
+
setOrderCustomFields(input: $input) {
|
|
408
|
+
...Order
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
${ORDER_FRAGMENT}
|
|
411
412
|
`;
|
|
412
|
-
export const TRANSITION_FULFILLMENT_TO_STATE = gql `
|
|
413
|
-
mutation TransitionFulfillmentToState($id: ID!, $state: String!) {
|
|
414
|
-
transitionFulfillmentToState(id: $id, state: $state) {
|
|
415
|
-
...Fulfillment
|
|
416
|
-
...ErrorResult
|
|
417
|
-
... on FulfillmentStateTransitionError {
|
|
418
|
-
transitionError
|
|
419
|
-
}
|
|
420
|
-
}
|
|
421
|
-
}
|
|
422
|
-
${FULFILLMENT_FRAGMENT}
|
|
423
|
-
${ERROR_RESULT_FRAGMENT}
|
|
413
|
+
export const TRANSITION_FULFILLMENT_TO_STATE = gql `
|
|
414
|
+
mutation TransitionFulfillmentToState($id: ID!, $state: String!) {
|
|
415
|
+
transitionFulfillmentToState(id: $id, state: $state) {
|
|
416
|
+
...Fulfillment
|
|
417
|
+
...ErrorResult
|
|
418
|
+
... on FulfillmentStateTransitionError {
|
|
419
|
+
transitionError
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
${FULFILLMENT_FRAGMENT}
|
|
424
|
+
${ERROR_RESULT_FRAGMENT}
|
|
424
425
|
`;
|
|
425
|
-
export const GET_ORDER_SUMMARY = gql `
|
|
426
|
-
query GetOrderSummary($start: DateTime!, $end: DateTime!) {
|
|
427
|
-
orders(options: { filter: { orderPlacedAt: { between: { start: $start, end: $end } } } }) {
|
|
428
|
-
totalItems
|
|
429
|
-
items {
|
|
430
|
-
id
|
|
431
|
-
total
|
|
432
|
-
currencyCode
|
|
433
|
-
}
|
|
434
|
-
}
|
|
435
|
-
}
|
|
426
|
+
export const GET_ORDER_SUMMARY = gql `
|
|
427
|
+
query GetOrderSummary($start: DateTime!, $end: DateTime!) {
|
|
428
|
+
orders(options: { filter: { orderPlacedAt: { between: { start: $start, end: $end } } } }) {
|
|
429
|
+
totalItems
|
|
430
|
+
items {
|
|
431
|
+
id
|
|
432
|
+
total
|
|
433
|
+
currencyCode
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
}
|
|
436
437
|
`;
|
|
437
|
-
export const MODIFY_ORDER = gql `
|
|
438
|
-
mutation ModifyOrder($input: ModifyOrderInput!) {
|
|
439
|
-
modifyOrder(input: $input) {
|
|
440
|
-
...OrderDetail
|
|
441
|
-
...ErrorResult
|
|
442
|
-
}
|
|
443
|
-
}
|
|
444
|
-
${ORDER_DETAIL_FRAGMENT}
|
|
445
|
-
${ERROR_RESULT_FRAGMENT}
|
|
438
|
+
export const MODIFY_ORDER = gql `
|
|
439
|
+
mutation ModifyOrder($input: ModifyOrderInput!) {
|
|
440
|
+
modifyOrder(input: $input) {
|
|
441
|
+
...OrderDetail
|
|
442
|
+
...ErrorResult
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
${ORDER_DETAIL_FRAGMENT}
|
|
446
|
+
${ERROR_RESULT_FRAGMENT}
|
|
446
447
|
`;
|
|
447
|
-
export const ADD_MANUAL_PAYMENT_TO_ORDER = gql `
|
|
448
|
-
mutation AddManualPayment($input: ManualPaymentInput!) {
|
|
449
|
-
addManualPaymentToOrder(input: $input) {
|
|
450
|
-
...OrderDetail
|
|
451
|
-
...ErrorResult
|
|
452
|
-
}
|
|
453
|
-
}
|
|
454
|
-
${ORDER_DETAIL_FRAGMENT}
|
|
455
|
-
${ERROR_RESULT_FRAGMENT}
|
|
448
|
+
export const ADD_MANUAL_PAYMENT_TO_ORDER = gql `
|
|
449
|
+
mutation AddManualPayment($input: ManualPaymentInput!) {
|
|
450
|
+
addManualPaymentToOrder(input: $input) {
|
|
451
|
+
...OrderDetail
|
|
452
|
+
...ErrorResult
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
${ORDER_DETAIL_FRAGMENT}
|
|
456
|
+
${ERROR_RESULT_FRAGMENT}
|
|
456
457
|
`;
|
|
457
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItZGVmaW5pdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2RhdGEvZGVmaW5pdGlvbnMvb3JkZXItZGVmaW5pdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTdELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Q0FRbkMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Q0FVakMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7OztDQWF4QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXNCaEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7OztDQWF0QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXNDckMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01Ba0hsQyxpQkFBaUI7TUFDakIsc0JBQXNCO01BQ3RCLG9CQUFvQjtNQUNwQixtQkFBbUI7Q0FDeEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7OztNQVM1QixjQUFjO0NBQ25CLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFBOzs7Ozs7TUFNdEIscUJBQXFCO0NBQzFCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQXVCM0IscUJBQXFCO0NBQzFCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O01BaUJ4QyxxQkFBcUI7Q0FDMUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFpQi9CLG9CQUFvQjtNQUNwQixxQkFBcUI7Q0FDMUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUE7Ozs7Ozs7TUFPekIscUJBQXFCO01BQ3JCLHFCQUFxQjtDQUMxQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQTs7Ozs7OztNQU96QixlQUFlO01BQ2YscUJBQXFCO0NBQzFCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFBOzs7Ozs7O01BTzFCLGVBQWU7TUFDZixxQkFBcUI7Q0FDMUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBcUJuQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Q0FNbkMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Q0FRbkMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQTs7Ozs7OztDQU9uQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7O01BVXRDLGNBQWM7TUFDZCxxQkFBcUI7Q0FDMUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLEdBQUcsQ0FBQTs7Ozs7O01BTXZDLGNBQWM7Q0FDbkIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7OztNQVU1QyxvQkFBb0I7TUFDcEIscUJBQXFCO0NBQzFCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7O0NBV25DLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFBOzs7Ozs7O01BT3pCLHFCQUFxQjtNQUNyQixxQkFBcUI7Q0FDMUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLEdBQUcsQ0FBQTs7Ozs7OztNQU94QyxxQkFBcUI7TUFDckIscUJBQXFCO0NBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBncWwgfSBmcm9tICdhcG9sbG8tYW5ndWxhcic7XHJcblxyXG5pbXBvcnQgeyBFUlJPUl9SRVNVTFRfRlJBR01FTlQgfSBmcm9tICcuL3NoYXJlZC1kZWZpbml0aW9ucyc7XHJcblxyXG5leHBvcnQgY29uc3QgRElTQ09VTlRfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBEaXNjb3VudCBvbiBEaXNjb3VudCB7XHJcbiAgICAgICAgYWRqdXN0bWVudFNvdXJjZVxyXG4gICAgICAgIGFtb3VudFxyXG4gICAgICAgIGFtb3VudFdpdGhUYXhcclxuICAgICAgICBkZXNjcmlwdGlvblxyXG4gICAgICAgIHR5cGVcclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBSRUZVTkRfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBSZWZ1bmQgb24gUmVmdW5kIHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIHN0YXRlXHJcbiAgICAgICAgaXRlbXNcclxuICAgICAgICBzaGlwcGluZ1xyXG4gICAgICAgIGFkanVzdG1lbnRcclxuICAgICAgICB0cmFuc2FjdGlvbklkXHJcbiAgICAgICAgcGF5bWVudElkXHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgT1JERVJfQUREUkVTU19GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IE9yZGVyQWRkcmVzcyBvbiBPcmRlckFkZHJlc3Mge1xyXG4gICAgICAgIGZ1bGxOYW1lXHJcbiAgICAgICAgY29tcGFueVxyXG4gICAgICAgIHN0cmVldExpbmUxXHJcbiAgICAgICAgc3RyZWV0TGluZTJcclxuICAgICAgICBjaXR5XHJcbiAgICAgICAgcHJvdmluY2VcclxuICAgICAgICBwb3N0YWxDb2RlXHJcbiAgICAgICAgY291bnRyeVxyXG4gICAgICAgIGNvdW50cnlDb2RlXHJcbiAgICAgICAgcGhvbmVOdW1iZXJcclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBPUkRFUl9GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IE9yZGVyIG9uIE9yZGVyIHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgIG9yZGVyUGxhY2VkQXRcclxuICAgICAgICBjb2RlXHJcbiAgICAgICAgc3RhdGVcclxuICAgICAgICBuZXh0U3RhdGVzXHJcbiAgICAgICAgdG90YWxcclxuICAgICAgICBjdXJyZW5jeUNvZGVcclxuICAgICAgICBjdXN0b21lciB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIGZpcnN0TmFtZVxyXG4gICAgICAgICAgICBsYXN0TmFtZVxyXG4gICAgICAgIH1cclxuICAgICAgICBzaGlwcGluZ0xpbmVzIHtcclxuICAgICAgICAgICAgc2hpcHBpbmdNZXRob2Qge1xyXG4gICAgICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEZVTEZJTExNRU5UX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgRnVsZmlsbG1lbnQgb24gRnVsZmlsbG1lbnQge1xyXG4gICAgICAgIGlkXHJcbiAgICAgICAgc3RhdGVcclxuICAgICAgICBuZXh0U3RhdGVzXHJcbiAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgbWV0aG9kXHJcbiAgICAgICAgb3JkZXJJdGVtcyB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRyYWNraW5nQ29kZVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IE9SREVSX0xJTkVfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBPcmRlckxpbmUgb24gT3JkZXJMaW5lIHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIGZlYXR1cmVkQXNzZXQge1xyXG4gICAgICAgICAgICBwcmV2aWV3XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHByb2R1Y3RWYXJpYW50IHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICBza3VcclxuICAgICAgICAgICAgdHJhY2tJbnZlbnRvcnlcclxuICAgICAgICAgICAgc3RvY2tPbkhhbmRcclxuICAgICAgICB9XHJcbiAgICAgICAgZGlzY291bnRzIHtcclxuICAgICAgICAgICAgLi4uRGlzY291bnRcclxuICAgICAgICB9XHJcbiAgICAgICAgdW5pdFByaWNlXHJcbiAgICAgICAgdW5pdFByaWNlV2l0aFRheFxyXG4gICAgICAgIHByb3JhdGVkVW5pdFByaWNlXHJcbiAgICAgICAgcHJvcmF0ZWRVbml0UHJpY2VXaXRoVGF4XHJcbiAgICAgICAgcXVhbnRpdHlcclxuICAgICAgICBpdGVtcyB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIHVuaXRQcmljZVxyXG4gICAgICAgICAgICB1bml0UHJpY2VXaXRoVGF4XHJcbiAgICAgICAgICAgIHRheFJhdGVcclxuICAgICAgICAgICAgcmVmdW5kSWRcclxuICAgICAgICAgICAgY2FuY2VsbGVkXHJcbiAgICAgICAgICAgIGZ1bGZpbGxtZW50IHtcclxuICAgICAgICAgICAgICAgIC4uLkZ1bGZpbGxtZW50XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgbGluZVByaWNlXHJcbiAgICAgICAgbGluZVRheFxyXG4gICAgICAgIGxpbmVQcmljZVdpdGhUYXhcclxuICAgICAgICBkaXNjb3VudGVkTGluZVByaWNlXHJcbiAgICAgICAgZGlzY291bnRlZExpbmVQcmljZVdpdGhUYXhcclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBPUkRFUl9ERVRBSUxfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBPcmRlckRldGFpbCBvbiBPcmRlciB7XHJcbiAgICAgICAgaWRcclxuICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICB1cGRhdGVkQXRcclxuICAgICAgICBjb2RlXHJcbiAgICAgICAgc3RhdGVcclxuICAgICAgICBuZXh0U3RhdGVzXHJcbiAgICAgICAgYWN0aXZlXHJcbiAgICAgICAgY291cG9uQ29kZXNcclxuICAgICAgICBjdXN0b21lciB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIGZpcnN0TmFtZVxyXG4gICAgICAgICAgICBsYXN0TmFtZVxyXG4gICAgICAgIH1cclxuICAgICAgICBsaW5lcyB7XHJcbiAgICAgICAgICAgIC4uLk9yZGVyTGluZVxyXG4gICAgICAgIH1cclxuICAgICAgICBzdXJjaGFyZ2VzIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgc2t1XHJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uXHJcbiAgICAgICAgICAgIHByaWNlXHJcbiAgICAgICAgICAgIHByaWNlV2l0aFRheFxyXG4gICAgICAgICAgICB0YXhSYXRlXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGRpc2NvdW50cyB7XHJcbiAgICAgICAgICAgIC4uLkRpc2NvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHByb21vdGlvbnMge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBjb3Vwb25Db2RlXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHN1YlRvdGFsXHJcbiAgICAgICAgc3ViVG90YWxXaXRoVGF4XHJcbiAgICAgICAgdG90YWxcclxuICAgICAgICB0b3RhbFdpdGhUYXhcclxuICAgICAgICBjdXJyZW5jeUNvZGVcclxuICAgICAgICBzaGlwcGluZ1xyXG4gICAgICAgIHNoaXBwaW5nV2l0aFRheFxyXG4gICAgICAgIHNoaXBwaW5nTGluZXMge1xyXG4gICAgICAgICAgICBzaGlwcGluZ01ldGhvZCB7XHJcbiAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgY29kZVxyXG4gICAgICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICAgICAgZnVsZmlsbG1lbnRIYW5kbGVyQ29kZVxyXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb25cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0YXhTdW1tYXJ5IHtcclxuICAgICAgICAgICAgZGVzY3JpcHRpb25cclxuICAgICAgICAgICAgdGF4QmFzZVxyXG4gICAgICAgICAgICB0YXhSYXRlXHJcbiAgICAgICAgICAgIHRheFRvdGFsXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNoaXBwaW5nQWRkcmVzcyB7XHJcbiAgICAgICAgICAgIC4uLk9yZGVyQWRkcmVzc1xyXG4gICAgICAgIH1cclxuICAgICAgICBiaWxsaW5nQWRkcmVzcyB7XHJcbiAgICAgICAgICAgIC4uLk9yZGVyQWRkcmVzc1xyXG4gICAgICAgIH1cclxuICAgICAgICBwYXltZW50cyB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgICAgICB0cmFuc2FjdGlvbklkXHJcbiAgICAgICAgICAgIGFtb3VudFxyXG4gICAgICAgICAgICBtZXRob2RcclxuICAgICAgICAgICAgc3RhdGVcclxuICAgICAgICAgICAgbmV4dFN0YXRlc1xyXG4gICAgICAgICAgICBlcnJvck1lc3NhZ2VcclxuICAgICAgICAgICAgbWV0YWRhdGFcclxuICAgICAgICAgICAgcmVmdW5kcyB7XHJcbiAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgICAgICAgICBzdGF0ZVxyXG4gICAgICAgICAgICAgICAgaXRlbXNcclxuICAgICAgICAgICAgICAgIGFkanVzdG1lbnRcclxuICAgICAgICAgICAgICAgIHRvdGFsXHJcbiAgICAgICAgICAgICAgICBwYXltZW50SWRcclxuICAgICAgICAgICAgICAgIHJlYXNvblxyXG4gICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25JZFxyXG4gICAgICAgICAgICAgICAgbWV0aG9kXHJcbiAgICAgICAgICAgICAgICBtZXRhZGF0YVxyXG4gICAgICAgICAgICAgICAgb3JkZXJJdGVtcyB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBmdWxmaWxsbWVudHMge1xyXG4gICAgICAgICAgICAuLi5GdWxmaWxsbWVudFxyXG4gICAgICAgIH1cclxuICAgICAgICBtb2RpZmljYXRpb25zIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgICAgIGlzU2V0dGxlZFxyXG4gICAgICAgICAgICBwcmljZUNoYW5nZVxyXG4gICAgICAgICAgICBub3RlXHJcbiAgICAgICAgICAgIHBheW1lbnQge1xyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIGFtb3VudFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG9yZGVySXRlbXMge1xyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZWZ1bmQge1xyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIHBheW1lbnRJZFxyXG4gICAgICAgICAgICAgICAgdG90YWxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzdXJjaGFyZ2VzIHtcclxuICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0RJU0NPVU5UX0ZSQUdNRU5UfVxyXG4gICAgJHtPUkRFUl9BRERSRVNTX0ZSQUdNRU5UfVxyXG4gICAgJHtGVUxGSUxMTUVOVF9GUkFHTUVOVH1cclxuICAgICR7T1JERVJfTElORV9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfT1JERVJTX0xJU1QgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRPcmRlckxpc3QoJG9wdGlvbnM6IE9yZGVyTGlzdE9wdGlvbnMpIHtcclxuICAgICAgICBvcmRlcnMob3B0aW9uczogJG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgaXRlbXMge1xyXG4gICAgICAgICAgICAgICAgLi4uT3JkZXJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0b3RhbEl0ZW1zXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtPUkRFUl9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfT1JERVIgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRPcmRlcigkaWQ6IElEISkge1xyXG4gICAgICAgIG9yZGVyKGlkOiAkaWQpIHtcclxuICAgICAgICAgICAgLi4uT3JkZXJEZXRhaWxcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke09SREVSX0RFVEFJTF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBTRVRUTEVfUEFZTUVOVCA9IGdxbGBcclxuICAgIG11dGF0aW9uIFNldHRsZVBheW1lbnQoJGlkOiBJRCEpIHtcclxuICAgICAgICBzZXR0bGVQYXltZW50KGlkOiAkaWQpIHtcclxuICAgICAgICAgICAgLi4uIG9uIFBheW1lbnQge1xyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uSWRcclxuICAgICAgICAgICAgICAgIGFtb3VudFxyXG4gICAgICAgICAgICAgICAgbWV0aG9kXHJcbiAgICAgICAgICAgICAgICBzdGF0ZVxyXG4gICAgICAgICAgICAgICAgbWV0YWRhdGFcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuLi5FcnJvclJlc3VsdFxyXG4gICAgICAgICAgICAuLi4gb24gU2V0dGxlUGF5bWVudEVycm9yIHtcclxuICAgICAgICAgICAgICAgIHBheW1lbnRFcnJvck1lc3NhZ2VcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuLi4gb24gUGF5bWVudFN0YXRlVHJhbnNpdGlvbkVycm9yIHtcclxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb25FcnJvclxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC4uLiBvbiBPcmRlclN0YXRlVHJhbnNpdGlvbkVycm9yIHtcclxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb25FcnJvclxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtFUlJPUl9SRVNVTFRfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgVFJBTlNJVElPTl9QQVlNRU5UX1RPX1NUQVRFID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gVHJhbnNpdGlvblBheW1lbnRUb1N0YXRlKCRpZDogSUQhLCAkc3RhdGU6IFN0cmluZyEpIHtcclxuICAgICAgICB0cmFuc2l0aW9uUGF5bWVudFRvU3RhdGUoaWQ6ICRpZCwgc3RhdGU6ICRzdGF0ZSkge1xyXG4gICAgICAgICAgICAuLi4gb24gUGF5bWVudCB7XHJcbiAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25JZFxyXG4gICAgICAgICAgICAgICAgYW1vdW50XHJcbiAgICAgICAgICAgICAgICBtZXRob2RcclxuICAgICAgICAgICAgICAgIHN0YXRlXHJcbiAgICAgICAgICAgICAgICBtZXRhZGF0YVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC4uLkVycm9yUmVzdWx0XHJcbiAgICAgICAgICAgIC4uLiBvbiBQYXltZW50U3RhdGVUcmFuc2l0aW9uRXJyb3Ige1xyXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbkVycm9yXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0VSUk9SX1JFU1VMVF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBDUkVBVEVfRlVMRklMTE1FTlQgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBDcmVhdGVGdWxmaWxsbWVudCgkaW5wdXQ6IEZ1bGZpbGxPcmRlcklucHV0ISkge1xyXG4gICAgICAgIGFkZEZ1bGZpbGxtZW50VG9PcmRlcihpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLkZ1bGZpbGxtZW50XHJcbiAgICAgICAgICAgIC4uLiBvbiBDcmVhdGVGdWxmaWxsbWVudEVycm9yIHtcclxuICAgICAgICAgICAgICAgIGVycm9yQ29kZVxyXG4gICAgICAgICAgICAgICAgbWVzc2FnZVxyXG4gICAgICAgICAgICAgICAgZnVsZmlsbG1lbnRIYW5kbGVyRXJyb3JcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuLi4gb24gRnVsZmlsbG1lbnRTdGF0ZVRyYW5zaXRpb25FcnJvciB7XHJcbiAgICAgICAgICAgICAgICBlcnJvckNvZGVcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2VcclxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb25FcnJvclxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC4uLkVycm9yUmVzdWx0XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtGVUxGSUxMTUVOVF9GUkFHTUVOVH1cclxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IENBTkNFTF9PUkRFUiA9IGdxbGBcclxuICAgIG11dGF0aW9uIENhbmNlbE9yZGVyKCRpbnB1dDogQ2FuY2VsT3JkZXJJbnB1dCEpIHtcclxuICAgICAgICBjYW5jZWxPcmRlcihpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLk9yZGVyRGV0YWlsXHJcbiAgICAgICAgICAgIC4uLkVycm9yUmVzdWx0XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtPUkRFUl9ERVRBSUxfRlJBR01FTlR9XHJcbiAgICAke0VSUk9SX1JFU1VMVF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBSRUZVTkRfT1JERVIgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBSZWZ1bmRPcmRlcigkaW5wdXQ6IFJlZnVuZE9yZGVySW5wdXQhKSB7XHJcbiAgICAgICAgcmVmdW5kT3JkZXIoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5SZWZ1bmRcclxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1JFRlVORF9GUkFHTUVOVH1cclxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNFVFRMRV9SRUZVTkQgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBTZXR0bGVSZWZ1bmQoJGlucHV0OiBTZXR0bGVSZWZ1bmRJbnB1dCEpIHtcclxuICAgICAgICBzZXR0bGVSZWZ1bmQoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5SZWZ1bmRcclxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1JFRlVORF9GUkFHTUVOVH1cclxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9PUkRFUl9ISVNUT1JZID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0T3JkZXJIaXN0b3J5KCRpZDogSUQhLCAkb3B0aW9uczogSGlzdG9yeUVudHJ5TGlzdE9wdGlvbnMpIHtcclxuICAgICAgICBvcmRlcihpZDogJGlkKSB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIGhpc3Rvcnkob3B0aW9uczogJG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgIHRvdGFsSXRlbXNcclxuICAgICAgICAgICAgICAgIGl0ZW1zIHtcclxuICAgICAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGVcclxuICAgICAgICAgICAgICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICAgICAgICAgICAgICBpc1B1YmxpY1xyXG4gICAgICAgICAgICAgICAgICAgIGFkbWluaXN0cmF0b3Ige1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaXJzdE5hbWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFzdE5hbWVcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEFERF9OT1RFX1RPX09SREVSID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gQWRkTm90ZVRvT3JkZXIoJGlucHV0OiBBZGROb3RlVG9PcmRlcklucHV0ISkge1xyXG4gICAgICAgIGFkZE5vdGVUb09yZGVyKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgVVBEQVRFX09SREVSX05PVEUgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBVcGRhdGVPcmRlck5vdGUoJGlucHV0OiBVcGRhdGVPcmRlck5vdGVJbnB1dCEpIHtcclxuICAgICAgICB1cGRhdGVPcmRlck5vdGUoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBkYXRhXHJcbiAgICAgICAgICAgIGlzUHVibGljXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFTEVURV9PUkRFUl9OT1RFID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gRGVsZXRlT3JkZXJOb3RlKCRpZDogSUQhKSB7XHJcbiAgICAgICAgZGVsZXRlT3JkZXJOb3RlKGlkOiAkaWQpIHtcclxuICAgICAgICAgICAgcmVzdWx0XHJcbiAgICAgICAgICAgIG1lc3NhZ2VcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgVFJBTlNJVElPTl9PUkRFUl9UT19TVEFURSA9IGdxbGBcclxuICAgIG11dGF0aW9uIFRyYW5zaXRpb25PcmRlclRvU3RhdGUoJGlkOiBJRCEsICRzdGF0ZTogU3RyaW5nISkge1xyXG4gICAgICAgIHRyYW5zaXRpb25PcmRlclRvU3RhdGUoaWQ6ICRpZCwgc3RhdGU6ICRzdGF0ZSkge1xyXG4gICAgICAgICAgICAuLi5PcmRlclxyXG4gICAgICAgICAgICAuLi5FcnJvclJlc3VsdFxyXG4gICAgICAgICAgICAuLi4gb24gT3JkZXJTdGF0ZVRyYW5zaXRpb25FcnJvciB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uRXJyb3JcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7T1JERVJfRlJBR01FTlR9XHJcbiAgICAke0VSUk9SX1JFU1VMVF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBVUERBVEVfT1JERVJfQ1VTVE9NX0ZJRUxEUyA9IGdxbGBcclxuICAgIG11dGF0aW9uIFVwZGF0ZU9yZGVyQ3VzdG9tRmllbGRzKCRpbnB1dDogVXBkYXRlT3JkZXJJbnB1dCEpIHtcclxuICAgICAgICBzZXRPcmRlckN1c3RvbUZpZWxkcyhpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLk9yZGVyXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtPUkRFUl9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBUUkFOU0lUSU9OX0ZVTEZJTExNRU5UX1RPX1NUQVRFID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gVHJhbnNpdGlvbkZ1bGZpbGxtZW50VG9TdGF0ZSgkaWQ6IElEISwgJHN0YXRlOiBTdHJpbmchKSB7XHJcbiAgICAgICAgdHJhbnNpdGlvbkZ1bGZpbGxtZW50VG9TdGF0ZShpZDogJGlkLCBzdGF0ZTogJHN0YXRlKSB7XHJcbiAgICAgICAgICAgIC4uLkZ1bGZpbGxtZW50XHJcbiAgICAgICAgICAgIC4uLkVycm9yUmVzdWx0XHJcbiAgICAgICAgICAgIC4uLiBvbiBGdWxmaWxsbWVudFN0YXRlVHJhbnNpdGlvbkVycm9yIHtcclxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb25FcnJvclxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtGVUxGSUxMTUVOVF9GUkFHTUVOVH1cclxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9PUkRFUl9TVU1NQVJZID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0T3JkZXJTdW1tYXJ5KCRzdGFydDogRGF0ZVRpbWUhLCAkZW5kOiBEYXRlVGltZSEpIHtcclxuICAgICAgICBvcmRlcnMob3B0aW9uczogeyBmaWx0ZXI6IHsgb3JkZXJQbGFjZWRBdDogeyBiZXR3ZWVuOiB7IHN0YXJ0OiAkc3RhcnQsIGVuZDogJGVuZCB9IH0gfSB9KSB7XHJcbiAgICAgICAgICAgIHRvdGFsSXRlbXNcclxuICAgICAgICAgICAgaXRlbXMge1xyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIHRvdGFsXHJcbiAgICAgICAgICAgICAgICBjdXJyZW5jeUNvZGVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBNT0RJRllfT1JERVIgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBNb2RpZnlPcmRlcigkaW5wdXQ6IE1vZGlmeU9yZGVySW5wdXQhKSB7XHJcbiAgICAgICAgbW9kaWZ5T3JkZXIoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5PcmRlckRldGFpbFxyXG4gICAgICAgICAgICAuLi5FcnJvclJlc3VsdFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7T1JERVJfREVUQUlMX0ZSQUdNRU5UfVxyXG4gICAgJHtFUlJPUl9SRVNVTFRfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQUREX01BTlVBTF9QQVlNRU5UX1RPX09SREVSID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gQWRkTWFudWFsUGF5bWVudCgkaW5wdXQ6IE1hbnVhbFBheW1lbnRJbnB1dCEpIHtcclxuICAgICAgICBhZGRNYW51YWxQYXltZW50VG9PcmRlcihpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLk9yZGVyRGV0YWlsXHJcbiAgICAgICAgICAgIC4uLkVycm9yUmVzdWx0XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtPUkRFUl9ERVRBSUxfRlJBR01FTlR9XHJcbiAgICAke0VSUk9SX1JFU1VMVF9GUkFHTUVOVH1cclxuYDtcclxuIl19
|
|
458
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItZGVmaW5pdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2RhdGEvZGVmaW5pdGlvbnMvb3JkZXItZGVmaW5pdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTdELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Q0FRbkMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Q0FVakMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7OztDQWF4QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0F1QmhDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Q0FhdEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FzQ3JDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQWtIbEMsaUJBQWlCO01BQ2pCLHNCQUFzQjtNQUN0QixvQkFBb0I7TUFDcEIsbUJBQW1CO0NBQ3hCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7TUFTNUIsY0FBYztDQUNuQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQTs7Ozs7O01BTXRCLHFCQUFxQjtDQUMxQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUF1QjNCLHFCQUFxQjtDQUMxQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztNQWlCeEMscUJBQXFCO0NBQzFCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O01BaUIvQixvQkFBb0I7TUFDcEIscUJBQXFCO0NBQzFCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFBOzs7Ozs7O01BT3pCLHFCQUFxQjtNQUNyQixxQkFBcUI7Q0FDMUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUE7Ozs7Ozs7TUFPekIsZUFBZTtNQUNmLHFCQUFxQjtDQUMxQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQTs7Ozs7OztNQU8xQixlQUFlO01BQ2YscUJBQXFCO0NBQzFCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXFCbkMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQTs7Ozs7O0NBTW5DLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7O0NBUW5DLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Q0FPbkMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7OztNQVV0QyxjQUFjO01BQ2QscUJBQXFCO0NBQzFCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxHQUFHLENBQUE7Ozs7OztNQU12QyxjQUFjO0NBQ25CLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7TUFVNUMsb0JBQW9CO01BQ3BCLHFCQUFxQjtDQUMxQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7OztDQVduQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQTs7Ozs7OztNQU96QixxQkFBcUI7TUFDckIscUJBQXFCO0NBQzFCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7TUFPeEMscUJBQXFCO01BQ3JCLHFCQUFxQjtDQUMxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ3FsIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInO1xuXG5pbXBvcnQgeyBFUlJPUl9SRVNVTFRfRlJBR01FTlQgfSBmcm9tICcuL3NoYXJlZC1kZWZpbml0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBESVNDT1VOVF9GUkFHTUVOVCA9IGdxbGBcbiAgICBmcmFnbWVudCBEaXNjb3VudCBvbiBEaXNjb3VudCB7XG4gICAgICAgIGFkanVzdG1lbnRTb3VyY2VcbiAgICAgICAgYW1vdW50XG4gICAgICAgIGFtb3VudFdpdGhUYXhcbiAgICAgICAgZGVzY3JpcHRpb25cbiAgICAgICAgdHlwZVxuICAgIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBSRUZVTkRfRlJBR01FTlQgPSBncWxgXG4gICAgZnJhZ21lbnQgUmVmdW5kIG9uIFJlZnVuZCB7XG4gICAgICAgIGlkXG4gICAgICAgIHN0YXRlXG4gICAgICAgIGl0ZW1zXG4gICAgICAgIHNoaXBwaW5nXG4gICAgICAgIGFkanVzdG1lbnRcbiAgICAgICAgdHJhbnNhY3Rpb25JZFxuICAgICAgICBwYXltZW50SWRcbiAgICB9XG5gO1xuXG5leHBvcnQgY29uc3QgT1JERVJfQUREUkVTU19GUkFHTUVOVCA9IGdxbGBcbiAgICBmcmFnbWVudCBPcmRlckFkZHJlc3Mgb24gT3JkZXJBZGRyZXNzIHtcbiAgICAgICAgZnVsbE5hbWVcbiAgICAgICAgY29tcGFueVxuICAgICAgICBzdHJlZXRMaW5lMVxuICAgICAgICBzdHJlZXRMaW5lMlxuICAgICAgICBjaXR5XG4gICAgICAgIHByb3ZpbmNlXG4gICAgICAgIHBvc3RhbENvZGVcbiAgICAgICAgY291bnRyeVxuICAgICAgICBjb3VudHJ5Q29kZVxuICAgICAgICBwaG9uZU51bWJlclxuICAgIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBPUkRFUl9GUkFHTUVOVCA9IGdxbGBcbiAgICBmcmFnbWVudCBPcmRlciBvbiBPcmRlciB7XG4gICAgICAgIGlkXG4gICAgICAgIGNyZWF0ZWRBdFxuICAgICAgICB1cGRhdGVkQXRcbiAgICAgICAgb3JkZXJQbGFjZWRBdFxuICAgICAgICBjb2RlXG4gICAgICAgIHN0YXRlXG4gICAgICAgIG5leHRTdGF0ZXNcbiAgICAgICAgdG90YWxcbiAgICAgICAgdG90YWxXaXRoVGF4XG4gICAgICAgIGN1cnJlbmN5Q29kZVxuICAgICAgICBjdXN0b21lciB7XG4gICAgICAgICAgICBpZFxuICAgICAgICAgICAgZmlyc3ROYW1lXG4gICAgICAgICAgICBsYXN0TmFtZVxuICAgICAgICB9XG4gICAgICAgIHNoaXBwaW5nTGluZXMge1xuICAgICAgICAgICAgc2hpcHBpbmdNZXRob2Qge1xuICAgICAgICAgICAgICAgIG5hbWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBGVUxGSUxMTUVOVF9GUkFHTUVOVCA9IGdxbGBcbiAgICBmcmFnbWVudCBGdWxmaWxsbWVudCBvbiBGdWxmaWxsbWVudCB7XG4gICAgICAgIGlkXG4gICAgICAgIHN0YXRlXG4gICAgICAgIG5leHRTdGF0ZXNcbiAgICAgICAgY3JlYXRlZEF0XG4gICAgICAgIHVwZGF0ZWRBdFxuICAgICAgICBtZXRob2RcbiAgICAgICAgb3JkZXJJdGVtcyB7XG4gICAgICAgICAgICBpZFxuICAgICAgICB9XG4gICAgICAgIHRyYWNraW5nQ29kZVxuICAgIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBPUkRFUl9MSU5FX0ZSQUdNRU5UID0gZ3FsYFxuICAgIGZyYWdtZW50IE9yZGVyTGluZSBvbiBPcmRlckxpbmUge1xuICAgICAgICBpZFxuICAgICAgICBmZWF0dXJlZEFzc2V0IHtcbiAgICAgICAgICAgIHByZXZpZXdcbiAgICAgICAgfVxuICAgICAgICBwcm9kdWN0VmFyaWFudCB7XG4gICAgICAgICAgICBpZFxuICAgICAgICAgICAgbmFtZVxuICAgICAgICAgICAgc2t1XG4gICAgICAgICAgICB0cmFja0ludmVudG9yeVxuICAgICAgICAgICAgc3RvY2tPbkhhbmRcbiAgICAgICAgfVxuICAgICAgICBkaXNjb3VudHMge1xuICAgICAgICAgICAgLi4uRGlzY291bnRcbiAgICAgICAgfVxuICAgICAgICB1bml0UHJpY2VcbiAgICAgICAgdW5pdFByaWNlV2l0aFRheFxuICAgICAgICBwcm9yYXRlZFVuaXRQcmljZVxuICAgICAgICBwcm9yYXRlZFVuaXRQcmljZVdpdGhUYXhcbiAgICAgICAgcXVhbnRpdHlcbiAgICAgICAgaXRlbXMge1xuICAgICAgICAgICAgaWRcbiAgICAgICAgICAgIHVuaXRQcmljZVxuICAgICAgICAgICAgdW5pdFByaWNlV2l0aFRheFxuICAgICAgICAgICAgdGF4UmF0ZVxuICAgICAgICAgICAgcmVmdW5kSWRcbiAgICAgICAgICAgIGNhbmNlbGxlZFxuICAgICAgICAgICAgZnVsZmlsbG1lbnQge1xuICAgICAgICAgICAgICAgIC4uLkZ1bGZpbGxtZW50XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbGluZVByaWNlXG4gICAgICAgIGxpbmVUYXhcbiAgICAgICAgbGluZVByaWNlV2l0aFRheFxuICAgICAgICBkaXNjb3VudGVkTGluZVByaWNlXG4gICAgICAgIGRpc2NvdW50ZWRMaW5lUHJpY2VXaXRoVGF4XG4gICAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IE9SREVSX0RFVEFJTF9GUkFHTUVOVCA9IGdxbGBcbiAgICBmcmFnbWVudCBPcmRlckRldGFpbCBvbiBPcmRlciB7XG4gICAgICAgIGlkXG4gICAgICAgIGNyZWF0ZWRBdFxuICAgICAgICB1cGRhdGVkQXRcbiAgICAgICAgY29kZVxuICAgICAgICBzdGF0ZVxuICAgICAgICBuZXh0U3RhdGVzXG4gICAgICAgIGFjdGl2ZVxuICAgICAgICBjb3Vwb25Db2Rlc1xuICAgICAgICBjdXN0b21lciB7XG4gICAgICAgICAgICBpZFxuICAgICAgICAgICAgZmlyc3ROYW1lXG4gICAgICAgICAgICBsYXN0TmFtZVxuICAgICAgICB9XG4gICAgICAgIGxpbmVzIHtcbiAgICAgICAgICAgIC4uLk9yZGVyTGluZVxuICAgICAgICB9XG4gICAgICAgIHN1cmNoYXJnZXMge1xuICAgICAgICAgICAgaWRcbiAgICAgICAgICAgIHNrdVxuICAgICAgICAgICAgZGVzY3JpcHRpb25cbiAgICAgICAgICAgIHByaWNlXG4gICAgICAgICAgICBwcmljZVdpdGhUYXhcbiAgICAgICAgICAgIHRheFJhdGVcbiAgICAgICAgfVxuICAgICAgICBkaXNjb3VudHMge1xuICAgICAgICAgICAgLi4uRGlzY291bnRcbiAgICAgICAgfVxuICAgICAgICBwcm9tb3Rpb25zIHtcbiAgICAgICAgICAgIGlkXG4gICAgICAgICAgICBjb3Vwb25Db2RlXG4gICAgICAgIH1cbiAgICAgICAgc3ViVG90YWxcbiAgICAgICAgc3ViVG90YWxXaXRoVGF4XG4gICAgICAgIHRvdGFsXG4gICAgICAgIHRvdGFsV2l0aFRheFxuICAgICAgICBjdXJyZW5jeUNvZGVcbiAgICAgICAgc2hpcHBpbmdcbiAgICAgICAgc2hpcHBpbmdXaXRoVGF4XG4gICAgICAgIHNoaXBwaW5nTGluZXMge1xuICAgICAgICAgICAgc2hpcHBpbmdNZXRob2Qge1xuICAgICAgICAgICAgICAgIGlkXG4gICAgICAgICAgICAgICAgY29kZVxuICAgICAgICAgICAgICAgIG5hbWVcbiAgICAgICAgICAgICAgICBmdWxmaWxsbWVudEhhbmRsZXJDb2RlXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb25cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0YXhTdW1tYXJ5IHtcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uXG4gICAgICAgICAgICB0YXhCYXNlXG4gICAgICAgICAgICB0YXhSYXRlXG4gICAgICAgICAgICB0YXhUb3RhbFxuICAgICAgICB9XG4gICAgICAgIHNoaXBwaW5nQWRkcmVzcyB7XG4gICAgICAgICAgICAuLi5PcmRlckFkZHJlc3NcbiAgICAgICAgfVxuICAgICAgICBiaWxsaW5nQWRkcmVzcyB7XG4gICAgICAgICAgICAuLi5PcmRlckFkZHJlc3NcbiAgICAgICAgfVxuICAgICAgICBwYXltZW50cyB7XG4gICAgICAgICAgICBpZFxuICAgICAgICAgICAgY3JlYXRlZEF0XG4gICAgICAgICAgICB0cmFuc2FjdGlvbklkXG4gICAgICAgICAgICBhbW91bnRcbiAgICAgICAgICAgIG1ldGhvZFxuICAgICAgICAgICAgc3RhdGVcbiAgICAgICAgICAgIG5leHRTdGF0ZXNcbiAgICAgICAgICAgIGVycm9yTWVzc2FnZVxuICAgICAgICAgICAgbWV0YWRhdGFcbiAgICAgICAgICAgIHJlZnVuZHMge1xuICAgICAgICAgICAgICAgIGlkXG4gICAgICAgICAgICAgICAgY3JlYXRlZEF0XG4gICAgICAgICAgICAgICAgc3RhdGVcbiAgICAgICAgICAgICAgICBpdGVtc1xuICAgICAgICAgICAgICAgIGFkanVzdG1lbnRcbiAgICAgICAgICAgICAgICB0b3RhbFxuICAgICAgICAgICAgICAgIHBheW1lbnRJZFxuICAgICAgICAgICAgICAgIHJlYXNvblxuICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uSWRcbiAgICAgICAgICAgICAgICBtZXRob2RcbiAgICAgICAgICAgICAgICBtZXRhZGF0YVxuICAgICAgICAgICAgICAgIG9yZGVySXRlbXMge1xuICAgICAgICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmdWxmaWxsbWVudHMge1xuICAgICAgICAgICAgLi4uRnVsZmlsbG1lbnRcbiAgICAgICAgfVxuICAgICAgICBtb2RpZmljYXRpb25zIHtcbiAgICAgICAgICAgIGlkXG4gICAgICAgICAgICBjcmVhdGVkQXRcbiAgICAgICAgICAgIGlzU2V0dGxlZFxuICAgICAgICAgICAgcHJpY2VDaGFuZ2VcbiAgICAgICAgICAgIG5vdGVcbiAgICAgICAgICAgIHBheW1lbnQge1xuICAgICAgICAgICAgICAgIGlkXG4gICAgICAgICAgICAgICAgYW1vdW50XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcmRlckl0ZW1zIHtcbiAgICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVmdW5kIHtcbiAgICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgICAgIHBheW1lbnRJZFxuICAgICAgICAgICAgICAgIHRvdGFsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdXJjaGFyZ2VzIHtcbiAgICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICR7RElTQ09VTlRfRlJBR01FTlR9XG4gICAgJHtPUkRFUl9BRERSRVNTX0ZSQUdNRU5UfVxuICAgICR7RlVMRklMTE1FTlRfRlJBR01FTlR9XG4gICAgJHtPUkRFUl9MSU5FX0ZSQUdNRU5UfVxuYDtcblxuZXhwb3J0IGNvbnN0IEdFVF9PUkRFUlNfTElTVCA9IGdxbGBcbiAgICBxdWVyeSBHZXRPcmRlckxpc3QoJG9wdGlvbnM6IE9yZGVyTGlzdE9wdGlvbnMpIHtcbiAgICAgICAgb3JkZXJzKG9wdGlvbnM6ICRvcHRpb25zKSB7XG4gICAgICAgICAgICBpdGVtcyB7XG4gICAgICAgICAgICAgICAgLi4uT3JkZXJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRvdGFsSXRlbXNcbiAgICAgICAgfVxuICAgIH1cbiAgICAke09SREVSX0ZSQUdNRU5UfVxuYDtcblxuZXhwb3J0IGNvbnN0IEdFVF9PUkRFUiA9IGdxbGBcbiAgICBxdWVyeSBHZXRPcmRlcigkaWQ6IElEISkge1xuICAgICAgICBvcmRlcihpZDogJGlkKSB7XG4gICAgICAgICAgICAuLi5PcmRlckRldGFpbFxuICAgICAgICB9XG4gICAgfVxuICAgICR7T1JERVJfREVUQUlMX0ZSQUdNRU5UfVxuYDtcblxuZXhwb3J0IGNvbnN0IFNFVFRMRV9QQVlNRU5UID0gZ3FsYFxuICAgIG11dGF0aW9uIFNldHRsZVBheW1lbnQoJGlkOiBJRCEpIHtcbiAgICAgICAgc2V0dGxlUGF5bWVudChpZDogJGlkKSB7XG4gICAgICAgICAgICAuLi4gb24gUGF5bWVudCB7XG4gICAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbklkXG4gICAgICAgICAgICAgICAgYW1vdW50XG4gICAgICAgICAgICAgICAgbWV0aG9kXG4gICAgICAgICAgICAgICAgc3RhdGVcbiAgICAgICAgICAgICAgICBtZXRhZGF0YVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcbiAgICAgICAgICAgIC4uLiBvbiBTZXR0bGVQYXltZW50RXJyb3Ige1xuICAgICAgICAgICAgICAgIHBheW1lbnRFcnJvck1lc3NhZ2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC4uLiBvbiBQYXltZW50U3RhdGVUcmFuc2l0aW9uRXJyb3Ige1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb25FcnJvclxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLi4uIG9uIE9yZGVyU3RhdGVUcmFuc2l0aW9uRXJyb3Ige1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb25FcnJvclxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxuYDtcblxuZXhwb3J0IGNvbnN0IFRSQU5TSVRJT05fUEFZTUVOVF9UT19TVEFURSA9IGdxbGBcbiAgICBtdXRhdGlvbiBUcmFuc2l0aW9uUGF5bWVudFRvU3RhdGUoJGlkOiBJRCEsICRzdGF0ZTogU3RyaW5nISkge1xuICAgICAgICB0cmFuc2l0aW9uUGF5bWVudFRvU3RhdGUoaWQ6ICRpZCwgc3RhdGU6ICRzdGF0ZSkge1xuICAgICAgICAgICAgLi4uIG9uIFBheW1lbnQge1xuICAgICAgICAgICAgICAgIGlkXG4gICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25JZFxuICAgICAgICAgICAgICAgIGFtb3VudFxuICAgICAgICAgICAgICAgIG1ldGhvZFxuICAgICAgICAgICAgICAgIHN0YXRlXG4gICAgICAgICAgICAgICAgbWV0YWRhdGFcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC4uLkVycm9yUmVzdWx0XG4gICAgICAgICAgICAuLi4gb24gUGF5bWVudFN0YXRlVHJhbnNpdGlvbkVycm9yIHtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uRXJyb3JcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAke0VSUk9SX1JFU1VMVF9GUkFHTUVOVH1cbmA7XG5cbmV4cG9ydCBjb25zdCBDUkVBVEVfRlVMRklMTE1FTlQgPSBncWxgXG4gICAgbXV0YXRpb24gQ3JlYXRlRnVsZmlsbG1lbnQoJGlucHV0OiBGdWxmaWxsT3JkZXJJbnB1dCEpIHtcbiAgICAgICAgYWRkRnVsZmlsbG1lbnRUb09yZGVyKGlucHV0OiAkaW5wdXQpIHtcbiAgICAgICAgICAgIC4uLkZ1bGZpbGxtZW50XG4gICAgICAgICAgICAuLi4gb24gQ3JlYXRlRnVsZmlsbG1lbnRFcnJvciB7XG4gICAgICAgICAgICAgICAgZXJyb3JDb2RlXG4gICAgICAgICAgICAgICAgbWVzc2FnZVxuICAgICAgICAgICAgICAgIGZ1bGZpbGxtZW50SGFuZGxlckVycm9yXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuLi4gb24gRnVsZmlsbG1lbnRTdGF0ZVRyYW5zaXRpb25FcnJvciB7XG4gICAgICAgICAgICAgICAgZXJyb3JDb2RlXG4gICAgICAgICAgICAgICAgbWVzc2FnZVxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb25FcnJvclxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcbiAgICAgICAgfVxuICAgIH1cbiAgICAke0ZVTEZJTExNRU5UX0ZSQUdNRU5UfVxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxuYDtcblxuZXhwb3J0IGNvbnN0IENBTkNFTF9PUkRFUiA9IGdxbGBcbiAgICBtdXRhdGlvbiBDYW5jZWxPcmRlcigkaW5wdXQ6IENhbmNlbE9yZGVySW5wdXQhKSB7XG4gICAgICAgIGNhbmNlbE9yZGVyKGlucHV0OiAkaW5wdXQpIHtcbiAgICAgICAgICAgIC4uLk9yZGVyRGV0YWlsXG4gICAgICAgICAgICAuLi5FcnJvclJlc3VsdFxuICAgICAgICB9XG4gICAgfVxuICAgICR7T1JERVJfREVUQUlMX0ZSQUdNRU5UfVxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxuYDtcblxuZXhwb3J0IGNvbnN0IFJFRlVORF9PUkRFUiA9IGdxbGBcbiAgICBtdXRhdGlvbiBSZWZ1bmRPcmRlcigkaW5wdXQ6IFJlZnVuZE9yZGVySW5wdXQhKSB7XG4gICAgICAgIHJlZnVuZE9yZGVyKGlucHV0OiAkaW5wdXQpIHtcbiAgICAgICAgICAgIC4uLlJlZnVuZFxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcbiAgICAgICAgfVxuICAgIH1cbiAgICAke1JFRlVORF9GUkFHTUVOVH1cbiAgICAke0VSUk9SX1JFU1VMVF9GUkFHTUVOVH1cbmA7XG5cbmV4cG9ydCBjb25zdCBTRVRUTEVfUkVGVU5EID0gZ3FsYFxuICAgIG11dGF0aW9uIFNldHRsZVJlZnVuZCgkaW5wdXQ6IFNldHRsZVJlZnVuZElucHV0ISkge1xuICAgICAgICBzZXR0bGVSZWZ1bmQoaW5wdXQ6ICRpbnB1dCkge1xuICAgICAgICAgICAgLi4uUmVmdW5kXG4gICAgICAgICAgICAuLi5FcnJvclJlc3VsdFxuICAgICAgICB9XG4gICAgfVxuICAgICR7UkVGVU5EX0ZSQUdNRU5UfVxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxuYDtcblxuZXhwb3J0IGNvbnN0IEdFVF9PUkRFUl9ISVNUT1JZID0gZ3FsYFxuICAgIHF1ZXJ5IEdldE9yZGVySGlzdG9yeSgkaWQ6IElEISwgJG9wdGlvbnM6IEhpc3RvcnlFbnRyeUxpc3RPcHRpb25zKSB7XG4gICAgICAgIG9yZGVyKGlkOiAkaWQpIHtcbiAgICAgICAgICAgIGlkXG4gICAgICAgICAgICBoaXN0b3J5KG9wdGlvbnM6ICRvcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgdG90YWxJdGVtc1xuICAgICAgICAgICAgICAgIGl0ZW1zIHtcbiAgICAgICAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgICAgICAgICAgdHlwZVxuICAgICAgICAgICAgICAgICAgICBjcmVhdGVkQXRcbiAgICAgICAgICAgICAgICAgICAgaXNQdWJsaWNcbiAgICAgICAgICAgICAgICAgICAgYWRtaW5pc3RyYXRvciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3ROYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXN0TmFtZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5gO1xuXG5leHBvcnQgY29uc3QgQUREX05PVEVfVE9fT1JERVIgPSBncWxgXG4gICAgbXV0YXRpb24gQWRkTm90ZVRvT3JkZXIoJGlucHV0OiBBZGROb3RlVG9PcmRlcklucHV0ISkge1xuICAgICAgICBhZGROb3RlVG9PcmRlcihpbnB1dDogJGlucHV0KSB7XG4gICAgICAgICAgICBpZFxuICAgICAgICB9XG4gICAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IFVQREFURV9PUkRFUl9OT1RFID0gZ3FsYFxuICAgIG11dGF0aW9uIFVwZGF0ZU9yZGVyTm90ZSgkaW5wdXQ6IFVwZGF0ZU9yZGVyTm90ZUlucHV0ISkge1xuICAgICAgICB1cGRhdGVPcmRlck5vdGUoaW5wdXQ6ICRpbnB1dCkge1xuICAgICAgICAgICAgaWRcbiAgICAgICAgICAgIGRhdGFcbiAgICAgICAgICAgIGlzUHVibGljXG4gICAgICAgIH1cbiAgICB9XG5gO1xuXG5leHBvcnQgY29uc3QgREVMRVRFX09SREVSX05PVEUgPSBncWxgXG4gICAgbXV0YXRpb24gRGVsZXRlT3JkZXJOb3RlKCRpZDogSUQhKSB7XG4gICAgICAgIGRlbGV0ZU9yZGVyTm90ZShpZDogJGlkKSB7XG4gICAgICAgICAgICByZXN1bHRcbiAgICAgICAgICAgIG1lc3NhZ2VcbiAgICAgICAgfVxuICAgIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBUUkFOU0lUSU9OX09SREVSX1RPX1NUQVRFID0gZ3FsYFxuICAgIG11dGF0aW9uIFRyYW5zaXRpb25PcmRlclRvU3RhdGUoJGlkOiBJRCEsICRzdGF0ZTogU3RyaW5nISkge1xuICAgICAgICB0cmFuc2l0aW9uT3JkZXJUb1N0YXRlKGlkOiAkaWQsIHN0YXRlOiAkc3RhdGUpIHtcbiAgICAgICAgICAgIC4uLk9yZGVyXG4gICAgICAgICAgICAuLi5FcnJvclJlc3VsdFxuICAgICAgICAgICAgLi4uIG9uIE9yZGVyU3RhdGVUcmFuc2l0aW9uRXJyb3Ige1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb25FcnJvclxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICR7T1JERVJfRlJBR01FTlR9XG4gICAgJHtFUlJPUl9SRVNVTFRfRlJBR01FTlR9XG5gO1xuXG5leHBvcnQgY29uc3QgVVBEQVRFX09SREVSX0NVU1RPTV9GSUVMRFMgPSBncWxgXG4gICAgbXV0YXRpb24gVXBkYXRlT3JkZXJDdXN0b21GaWVsZHMoJGlucHV0OiBVcGRhdGVPcmRlcklucHV0ISkge1xuICAgICAgICBzZXRPcmRlckN1c3RvbUZpZWxkcyhpbnB1dDogJGlucHV0KSB7XG4gICAgICAgICAgICAuLi5PcmRlclxuICAgICAgICB9XG4gICAgfVxuICAgICR7T1JERVJfRlJBR01FTlR9XG5gO1xuXG5leHBvcnQgY29uc3QgVFJBTlNJVElPTl9GVUxGSUxMTUVOVF9UT19TVEFURSA9IGdxbGBcbiAgICBtdXRhdGlvbiBUcmFuc2l0aW9uRnVsZmlsbG1lbnRUb1N0YXRlKCRpZDogSUQhLCAkc3RhdGU6IFN0cmluZyEpIHtcbiAgICAgICAgdHJhbnNpdGlvbkZ1bGZpbGxtZW50VG9TdGF0ZShpZDogJGlkLCBzdGF0ZTogJHN0YXRlKSB7XG4gICAgICAgICAgICAuLi5GdWxmaWxsbWVudFxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcbiAgICAgICAgICAgIC4uLiBvbiBGdWxmaWxsbWVudFN0YXRlVHJhbnNpdGlvbkVycm9yIHtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uRXJyb3JcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAke0ZVTEZJTExNRU5UX0ZSQUdNRU5UfVxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxuYDtcblxuZXhwb3J0IGNvbnN0IEdFVF9PUkRFUl9TVU1NQVJZID0gZ3FsYFxuICAgIHF1ZXJ5IEdldE9yZGVyU3VtbWFyeSgkc3RhcnQ6IERhdGVUaW1lISwgJGVuZDogRGF0ZVRpbWUhKSB7XG4gICAgICAgIG9yZGVycyhvcHRpb25zOiB7IGZpbHRlcjogeyBvcmRlclBsYWNlZEF0OiB7IGJldHdlZW46IHsgc3RhcnQ6ICRzdGFydCwgZW5kOiAkZW5kIH0gfSB9IH0pIHtcbiAgICAgICAgICAgIHRvdGFsSXRlbXNcbiAgICAgICAgICAgIGl0ZW1zIHtcbiAgICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgICAgIHRvdGFsXG4gICAgICAgICAgICAgICAgY3VycmVuY3lDb2RlXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5gO1xuXG5leHBvcnQgY29uc3QgTU9ESUZZX09SREVSID0gZ3FsYFxuICAgIG11dGF0aW9uIE1vZGlmeU9yZGVyKCRpbnB1dDogTW9kaWZ5T3JkZXJJbnB1dCEpIHtcbiAgICAgICAgbW9kaWZ5T3JkZXIoaW5wdXQ6ICRpbnB1dCkge1xuICAgICAgICAgICAgLi4uT3JkZXJEZXRhaWxcbiAgICAgICAgICAgIC4uLkVycm9yUmVzdWx0XG4gICAgICAgIH1cbiAgICB9XG4gICAgJHtPUkRFUl9ERVRBSUxfRlJBR01FTlR9XG4gICAgJHtFUlJPUl9SRVNVTFRfRlJBR01FTlR9XG5gO1xuXG5leHBvcnQgY29uc3QgQUREX01BTlVBTF9QQVlNRU5UX1RPX09SREVSID0gZ3FsYFxuICAgIG11dGF0aW9uIEFkZE1hbnVhbFBheW1lbnQoJGlucHV0OiBNYW51YWxQYXltZW50SW5wdXQhKSB7XG4gICAgICAgIGFkZE1hbnVhbFBheW1lbnRUb09yZGVyKGlucHV0OiAkaW5wdXQpIHtcbiAgICAgICAgICAgIC4uLk9yZGVyRGV0YWlsXG4gICAgICAgICAgICAuLi5FcnJvclJlc3VsdFxuICAgICAgICB9XG4gICAgfVxuICAgICR7T1JERVJfREVUQUlMX0ZSQUdNRU5UfVxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxuYDtcbiJdfQ==
|