merchi_checkout 1.1.0 → 1.2.0
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/lib/checkoutSession.js +151 -0
- package/lib/components/CancelOrderConfirmModal.js +51 -0
- package/lib/components/CheckoutSummaryFields.js +39 -0
- package/lib/components/DiscountInputGroup.js +3 -2
- package/lib/components/InvoiceInfo.js +7 -5
- package/lib/components/JobInfoContent.js +406 -188
- package/lib/components/MerchiCheckout.js +23 -3
- package/lib/components/MerchiCheckoutProvider.js +266 -146
- package/lib/components/MerchiCheckoutTabs.js +4 -3
- package/lib/components/TabPaneConfirm.js +44 -71
- package/lib/components/TabPaneCustomer.js +3 -2
- package/lib/components/TabPanePayment.js +58 -16
- package/lib/components/TabPaneSubmitted.js +44 -32
- package/lib/components/forms/FormAddresses.js +71 -20
- package/lib/components/forms/InputError.js +2 -1
- package/lib/components/forms/InputsAddress.js +62 -38
- package/lib/index.js +2 -1
- package/lib/styles/globals.css +393 -12
- package/lib/styles/globals.css.map +1 -1
- package/lib/styles/globals.scss +410 -12
- package/lib/utils.js +3 -2
- package/package.json +2 -2
|
@@ -5,21 +5,23 @@ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableTo
|
|
|
5
5
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
6
6
|
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
7
7
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
8
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
9
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
10
|
-
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
11
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
12
|
-
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
13
8
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
14
9
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
15
10
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
16
11
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
17
12
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
18
13
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
14
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
15
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
16
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
17
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
18
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
19
19
|
import * as React from 'react';
|
|
20
|
-
import { createContext, useContext, useEffect, useState } from 'react';
|
|
21
|
-
import { tabsInit } from '../tabs_utils';
|
|
20
|
+
import { createContext, useContext, useEffect, useLayoutEffect, useState } from 'react';
|
|
21
|
+
import { tabsInit, tabIdConfirm } from '../tabs_utils';
|
|
22
22
|
import { Merchi } from 'merchi_sdk_ts';
|
|
23
|
+
import { buildCheckoutSession, checkoutSessionChanged, getCheckoutQuoteSignature, getSafeRestoredTabIndex, loadCheckoutSession, mergeJobWithCheckoutSession, saveCheckoutSession } from '../checkoutSession';
|
|
24
|
+
import { isUserRegistered } from '../utils';
|
|
23
25
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
24
26
|
var MerchiCheckoutContext = /*#__PURE__*/createContext({
|
|
25
27
|
activeTabIndex: 0,
|
|
@@ -59,6 +61,7 @@ var MerchiCheckoutContext = /*#__PURE__*/createContext({
|
|
|
59
61
|
classNameMerchiCheckoutTabButton: undefined,
|
|
60
62
|
classNameMerchiInvoiceButtonPayInvoice: undefined,
|
|
61
63
|
clearCustomer: function clearCustomer() {},
|
|
64
|
+
cancelCheckoutOrder: function cancelCheckoutOrder() {},
|
|
62
65
|
currentUser: undefined,
|
|
63
66
|
customer: undefined,
|
|
64
67
|
discountButtonText: undefined,
|
|
@@ -110,126 +113,183 @@ var MerchiCheckoutContext = /*#__PURE__*/createContext({
|
|
|
110
113
|
export var useMerchiCheckboutContext = function useMerchiCheckboutContext() {
|
|
111
114
|
return useContext(MerchiCheckoutContext);
|
|
112
115
|
};
|
|
113
|
-
|
|
114
|
-
var
|
|
115
|
-
_ref$classNameMerchiC = _ref.classNameMerchiCheckoutAlertsContainer,
|
|
116
|
-
classNameMerchiCheckoutAlertsContainer = _ref$classNameMerchiC === void 0 ? 'd-flex justify-content-center flex-column alerts-container-sm' : _ref$classNameMerchiC,
|
|
117
|
-
_ref$classNameMerchiC2 = _ref.classNameMerchiCheckoutAlert,
|
|
118
|
-
classNameMerchiCheckoutAlert = _ref$classNameMerchiC2 === void 0 ? 'alert alert-dismissible alert-notify' : _ref$classNameMerchiC2,
|
|
119
|
-
_ref$classNameMerchiC3 = _ref.classNameMerchiCheckoutAlertError,
|
|
120
|
-
classNameMerchiCheckoutAlertError = _ref$classNameMerchiC3 === void 0 ? 'alert-danger' : _ref$classNameMerchiC3,
|
|
121
|
-
_ref$classNameMerchiC4 = _ref.classNameMerchiCheckoutAlertSuccess,
|
|
122
|
-
classNameMerchiCheckoutAlertSuccess = _ref$classNameMerchiC4 === void 0 ? 'alert-success' : _ref$classNameMerchiC4,
|
|
123
|
-
_ref$classNameMerchiC5 = _ref.classNameMerchiCheckoutButtonPrimary,
|
|
124
|
-
classNameMerchiCheckoutButtonPrimary = _ref$classNameMerchiC5 === void 0 ? 'btn btn-lmd btn-primary d-flex align-items-center justify-content-center' : _ref$classNameMerchiC5,
|
|
125
|
-
_ref$classNameMerchiC6 = _ref.classNameMerchiCheckoutButtonPrimaryBlock,
|
|
126
|
-
classNameMerchiCheckoutButtonPrimaryBlock = _ref$classNameMerchiC6 === void 0 ? 'btn btn-lg btn-primary btn-block' : _ref$classNameMerchiC6,
|
|
127
|
-
_ref$classNameMerchiC7 = _ref.classNameMerchiCheckoutButtonSecondary,
|
|
128
|
-
classNameMerchiCheckoutButtonSecondary = _ref$classNameMerchiC7 === void 0 ? 'btn btn-lg btn-secondary' : _ref$classNameMerchiC7,
|
|
129
|
-
_ref$classNameMerchiC8 = _ref.classNameMerchiCheckoutButtonSecondaryBlock,
|
|
130
|
-
classNameMerchiCheckoutButtonSecondaryBlock = _ref$classNameMerchiC8 === void 0 ? 'btn btn-lg btn-secondary btn-block' : _ref$classNameMerchiC8,
|
|
131
|
-
_ref$classNameMerchiC9 = _ref.classNameMerchiCheckoutButtonDownloadInvoice,
|
|
132
|
-
classNameMerchiCheckoutButtonDownloadInvoice = _ref$classNameMerchiC9 === void 0 ? 'btn btn-lg btn-primary' : _ref$classNameMerchiC9,
|
|
133
|
-
_ref$classNameMerchiC10 = _ref.classNameMerchiCheckoutConfirmInfoPanel,
|
|
134
|
-
classNameMerchiCheckoutConfirmInfoPanel = _ref$classNameMerchiC10 === void 0 ? 'd-flex align-items-center' : _ref$classNameMerchiC10,
|
|
135
|
-
_ref$classNameMerchiC11 = _ref.classNameMerchiCheckoutFooterActionsContainer,
|
|
136
|
-
classNameMerchiCheckoutFooterActionsContainer = _ref$classNameMerchiC11 === void 0 ? 'd-flex justify-content-between mt-4' : _ref$classNameMerchiC11,
|
|
137
|
-
_ref$classNameMerchiC12 = _ref.classNameMerchiCheckoutFormCheckbox,
|
|
138
|
-
classNameMerchiCheckoutFormCheckbox = _ref$classNameMerchiC12 === void 0 ? 'form-check-input' : _ref$classNameMerchiC12,
|
|
139
|
-
_ref$classNameMerchiC13 = _ref.classNameMerchiCheckoutFormGroup,
|
|
140
|
-
classNameMerchiCheckoutFormGroup = _ref$classNameMerchiC13 === void 0 ? 'form-group' : _ref$classNameMerchiC13,
|
|
141
|
-
_ref$classNameMerchiC14 = _ref.classNameMerchiCheckoutFormGroupCheckbox,
|
|
142
|
-
classNameMerchiCheckoutFormGroupCheckbox = _ref$classNameMerchiC14 === void 0 ? 'form-check' : _ref$classNameMerchiC14,
|
|
143
|
-
_ref$classNameMerchiC15 = _ref.classNameMerchiCheckoutFormInput,
|
|
144
|
-
classNameMerchiCheckoutFormInput = _ref$classNameMerchiC15 === void 0 ? 'form-control' : _ref$classNameMerchiC15,
|
|
145
|
-
_ref$classNameMerchiC16 = _ref.classNameMerchiCheckoutFormSelect,
|
|
146
|
-
classNameMerchiCheckoutFormSelect = _ref$classNameMerchiC16 === void 0 ? 'form-control' : _ref$classNameMerchiC16,
|
|
147
|
-
_ref$classNameMerchiC17 = _ref.classNameMerchiCheckoutGoogleSuggestList,
|
|
148
|
-
classNameMerchiCheckoutGoogleSuggestList = _ref$classNameMerchiC17 === void 0 ? 'list-group m-b-0' : _ref$classNameMerchiC17,
|
|
149
|
-
_ref$classNameMerchiC18 = _ref.classNameMerchiCheckoutGoogleSuggestListItem,
|
|
150
|
-
classNameMerchiCheckoutGoogleSuggestListItem = _ref$classNameMerchiC18 === void 0 ? 'list-group-item cursor-pointer' : _ref$classNameMerchiC18,
|
|
151
|
-
_ref$classNameMerchiC19 = _ref.classNameMerchiCheckoutListGroupItemLoader,
|
|
152
|
-
classNameMerchiCheckoutListGroupItemLoader = _ref$classNameMerchiC19 === void 0 ? 'list-group-item modal-merchi-checkout-shipment-option' : _ref$classNameMerchiC19,
|
|
153
|
-
_ref$classNameMerchiC20 = _ref.classNameMerchiCheckoutInputError,
|
|
154
|
-
classNameMerchiCheckoutInputError = _ref$classNameMerchiC20 === void 0 ? 'text-danger' : _ref$classNameMerchiC20,
|
|
155
|
-
_ref$classNameMerchiC21 = _ref.classNameMerchiCheckoutFormLabelCheckbox,
|
|
156
|
-
classNameMerchiCheckoutFormLabelCheckbox = _ref$classNameMerchiC21 === void 0 ? '' : _ref$classNameMerchiC21,
|
|
157
|
-
_ref$classNameMerchiC22 = _ref.classNameMerchiCheckoutListGroup,
|
|
158
|
-
classNameMerchiCheckoutListGroup = _ref$classNameMerchiC22 === void 0 ? 'modal-merchi-checkout-shipment-option' : _ref$classNameMerchiC22,
|
|
159
|
-
_ref$classNameMerchiC23 = _ref.classNameMerchiCheckoutListGroupItem,
|
|
160
|
-
classNameMerchiCheckoutListGroupItem = _ref$classNameMerchiC23 === void 0 ? 'list-group-item' : _ref$classNameMerchiC23,
|
|
161
|
-
_ref$classNameMerchiC24 = _ref.classNameMerchiCheckoutRow,
|
|
162
|
-
classNameMerchiCheckoutRow = _ref$classNameMerchiC24 === void 0 ? 'merchi-row' : _ref$classNameMerchiC24,
|
|
163
|
-
_ref$classNameMerchiC25 = _ref.classNameMerchiCheckoutRowColumn,
|
|
164
|
-
classNameMerchiCheckoutRowColumn = _ref$classNameMerchiC25 === void 0 ? 'merchi-column' : _ref$classNameMerchiC25,
|
|
165
|
-
_ref$classNameMerchiC26 = _ref.classNameMerchiCheckoutSubtitle,
|
|
166
|
-
classNameMerchiCheckoutSubtitle = _ref$classNameMerchiC26 === void 0 ? 'merchi-checkout-subtitle' : _ref$classNameMerchiC26,
|
|
167
|
-
_ref$classNameMerchiC27 = _ref.classNameMerchiCheckoutTabsContainer,
|
|
168
|
-
classNameMerchiCheckoutTabsContainer = _ref$classNameMerchiC27 === void 0 ? 'merchi-checkout-tabs-container' : _ref$classNameMerchiC27,
|
|
169
|
-
_ref$classNameMerchiC28 = _ref.classNameMerchiCheckoutTab,
|
|
170
|
-
classNameMerchiCheckoutTab = _ref$classNameMerchiC28 === void 0 ? 'merchi-checkout-tab' : _ref$classNameMerchiC28,
|
|
171
|
-
_ref$classNameMerchiC29 = _ref.classNameMerchiCheckoutTabButton,
|
|
172
|
-
classNameMerchiCheckoutTabButton = _ref$classNameMerchiC29 === void 0 ? 'btn merchi-checkout-tab-btn' : _ref$classNameMerchiC29,
|
|
173
|
-
_ref$classNameMerchiC30 = _ref.classNameMerchiCheckoutTabPane,
|
|
174
|
-
classNameMerchiCheckoutTabPane = _ref$classNameMerchiC30 === void 0 ? 'tab-pane' : _ref$classNameMerchiC30,
|
|
175
|
-
_ref$classNameMerchiC31 = _ref.classNameMerchiCheckoutTabPaneContainer,
|
|
176
|
-
classNameMerchiCheckoutTabPaneContainer = _ref$classNameMerchiC31 === void 0 ? 'tab-content' : _ref$classNameMerchiC31,
|
|
177
|
-
_ref$classNameMerchiI = _ref.classNameMerchiInvoiceButtonPayInvoice,
|
|
178
|
-
classNameMerchiInvoiceButtonPayInvoice = _ref$classNameMerchiI === void 0 ? 'btn btn-lg btn-primary btn-block' : _ref$classNameMerchiI,
|
|
179
|
-
currentUser = _ref.currentUser,
|
|
180
|
-
_ref$discountButtonTe = _ref.discountButtonText,
|
|
181
|
-
discountButtonText = _ref$discountButtonTe === void 0 ? 'Apply' : _ref$discountButtonTe,
|
|
182
|
-
_ref$discountClassNam = _ref.discountClassName,
|
|
183
|
-
discountClassName = _ref$discountClassNam === void 0 ? 'merchi-checkout-discount-code-container' : _ref$discountClassNam,
|
|
184
|
-
_ref$discountClassNam2 = _ref.discountClassNameButton,
|
|
185
|
-
discountClassNameButton = _ref$discountClassNam2 === void 0 ? 'btn btn-primary' : _ref$discountClassNam2,
|
|
186
|
-
_ref$discountClassNam3 = _ref.discountClassNameButtonContainer,
|
|
187
|
-
discountClassNameButtonContainer = _ref$discountClassNam3 === void 0 ? '' : _ref$discountClassNam3,
|
|
188
|
-
_ref$discountClassNam4 = _ref.discountClassNameButtonItemRemove,
|
|
189
|
-
discountClassNameButtonItemRemove = _ref$discountClassNam4 === void 0 ? 'btn btn-sm btn-link' : _ref$discountClassNam4,
|
|
190
|
-
_ref$discountClassNam5 = _ref.discountClassNameErrorMessage,
|
|
191
|
-
discountClassNameErrorMessage = _ref$discountClassNam5 === void 0 ? 'text-danger' : _ref$discountClassNam5,
|
|
192
|
-
_ref$discountClassNam6 = _ref.discountClassNameInput,
|
|
193
|
-
discountClassNameInput = _ref$discountClassNam6 === void 0 ? 'form-control' : _ref$discountClassNam6,
|
|
194
|
-
_ref$discountClassNam7 = _ref.discountClassNameInputContainer,
|
|
195
|
-
discountClassNameInputContainer = _ref$discountClassNam7 === void 0 ? 'merchi-checkout-discount-code-field-container' : _ref$discountClassNam7,
|
|
196
|
-
_ref$discountClassNam8 = _ref.discountClassNameInputdiscountLabel,
|
|
197
|
-
discountClassNameInputdiscountLabel = _ref$discountClassNam8 === void 0 ? 'visually-hidden' : _ref$discountClassNam8,
|
|
198
|
-
_ref$discountClassNam9 = _ref.discountClassNameListItem,
|
|
199
|
-
discountClassNameListItem = _ref$discountClassNam9 === void 0 ? 'list-group-item d-flex align-items-center justify-content-between mt-2' : _ref$discountClassNam9,
|
|
200
|
-
_ref$discountClassNam10 = _ref.discountClassNameListItems,
|
|
201
|
-
discountClassNameListItems = _ref$discountClassNam10 === void 0 ? 'list-group' : _ref$discountClassNam10,
|
|
202
|
-
discountClassNameMainContainer = _ref.discountClassNameMainContainer,
|
|
203
|
-
_ref$discountLabel = _ref.discountLabel,
|
|
204
|
-
discountLabel = _ref$discountLabel === void 0 ? 'Discount code' : _ref$discountLabel,
|
|
205
|
-
_ref$discountShowAppl = _ref.discountShowAppliedItems,
|
|
206
|
-
discountShowAppliedItems = _ref$discountShowAppl === void 0 ? true : _ref$discountShowAppl,
|
|
207
|
-
_ref$includeDomainSig = _ref.includeDomainSignup,
|
|
208
|
-
includeDomainSignup = _ref$includeDomainSig === void 0 ? false : _ref$includeDomainSig,
|
|
209
|
-
invoice = _ref.invoice,
|
|
116
|
+
function buildTabsState(jobForTabs, _ref) {
|
|
117
|
+
var includeDomainSignup = _ref.includeDomainSignup,
|
|
210
118
|
isBuyRequest = _ref.isBuyRequest,
|
|
211
|
-
|
|
212
|
-
_ref$
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
119
|
+
_ref$tabIndex = _ref.tabIndex,
|
|
120
|
+
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
|
|
121
|
+
if (!(jobForTabs !== null && jobForTabs !== void 0 && jobForTabs.product)) {
|
|
122
|
+
return {
|
|
123
|
+
tabs: [],
|
|
124
|
+
activeTabIndex: 0
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
var baseTabs = tabsInit({
|
|
128
|
+
job: jobForTabs,
|
|
129
|
+
includeDomainSignup: includeDomainSignup,
|
|
130
|
+
isBuyRequest: isBuyRequest
|
|
131
|
+
});
|
|
132
|
+
if (!baseTabs.length) {
|
|
133
|
+
return {
|
|
134
|
+
tabs: [],
|
|
135
|
+
activeTabIndex: 0
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
var safeIndex = Math.max(0, Math.min(tabIndex, baseTabs.length - 1));
|
|
139
|
+
var tabsWithProgress = baseTabs.map(function (tab, i) {
|
|
140
|
+
return _objectSpread(_objectSpread({}, tab), {}, {
|
|
141
|
+
disabled: i > safeIndex
|
|
142
|
+
});
|
|
143
|
+
});
|
|
144
|
+
return {
|
|
145
|
+
tabs: tabsWithProgress,
|
|
146
|
+
activeTabIndex: safeIndex
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
function getInitialTabsState(job, product, includeDomainSignup, isBuyRequest, invoice) {
|
|
150
|
+
var _session$activeTabInd;
|
|
151
|
+
if (!(product !== null && product !== void 0 && product.id)) {
|
|
152
|
+
return {
|
|
153
|
+
tabs: [],
|
|
154
|
+
activeTabIndex: 0
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
var session = loadCheckoutSession(product);
|
|
158
|
+
var mergedJob = mergeJobWithCheckoutSession(job, session);
|
|
159
|
+
var restoredInvoice = invoice !== null && invoice !== void 0 && invoice.id ? invoice : session === null || session === void 0 ? void 0 : session.invoice;
|
|
160
|
+
var tabIndex = getSafeRestoredTabIndex(mergedJob, {
|
|
161
|
+
includeDomainSignup: includeDomainSignup,
|
|
162
|
+
isBuyRequest: isBuyRequest
|
|
163
|
+
}, (_session$activeTabInd = session === null || session === void 0 ? void 0 : session.activeTabIndex) !== null && _session$activeTabInd !== void 0 ? _session$activeTabInd : 0, restoredInvoice);
|
|
164
|
+
return buildTabsState(mergedJob, {
|
|
165
|
+
includeDomainSignup: includeDomainSignup,
|
|
166
|
+
isBuyRequest: isBuyRequest,
|
|
167
|
+
tabIndex: tabIndex
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
export var MerchiCheckoutProvider = function MerchiCheckoutProvider(_ref2) {
|
|
171
|
+
var children = _ref2.children,
|
|
172
|
+
_ref2$classNameMerchi = _ref2.classNameMerchiCheckoutAlertsContainer,
|
|
173
|
+
classNameMerchiCheckoutAlertsContainer = _ref2$classNameMerchi === void 0 ? 'd-flex justify-content-center flex-column alerts-container-sm' : _ref2$classNameMerchi,
|
|
174
|
+
_ref2$classNameMerchi2 = _ref2.classNameMerchiCheckoutAlert,
|
|
175
|
+
classNameMerchiCheckoutAlert = _ref2$classNameMerchi2 === void 0 ? 'alert alert-dismissible alert-notify' : _ref2$classNameMerchi2,
|
|
176
|
+
_ref2$classNameMerchi3 = _ref2.classNameMerchiCheckoutAlertError,
|
|
177
|
+
classNameMerchiCheckoutAlertError = _ref2$classNameMerchi3 === void 0 ? 'alert-danger' : _ref2$classNameMerchi3,
|
|
178
|
+
_ref2$classNameMerchi4 = _ref2.classNameMerchiCheckoutAlertSuccess,
|
|
179
|
+
classNameMerchiCheckoutAlertSuccess = _ref2$classNameMerchi4 === void 0 ? 'alert-success' : _ref2$classNameMerchi4,
|
|
180
|
+
_ref2$classNameMerchi5 = _ref2.classNameMerchiCheckoutButtonPrimary,
|
|
181
|
+
classNameMerchiCheckoutButtonPrimary = _ref2$classNameMerchi5 === void 0 ? 'btn btn-lmd btn-primary d-flex align-items-center justify-content-center' : _ref2$classNameMerchi5,
|
|
182
|
+
_ref2$classNameMerchi6 = _ref2.classNameMerchiCheckoutButtonPrimaryBlock,
|
|
183
|
+
classNameMerchiCheckoutButtonPrimaryBlock = _ref2$classNameMerchi6 === void 0 ? 'btn btn-lg btn-primary btn-block' : _ref2$classNameMerchi6,
|
|
184
|
+
_ref2$classNameMerchi7 = _ref2.classNameMerchiCheckoutButtonSecondary,
|
|
185
|
+
classNameMerchiCheckoutButtonSecondary = _ref2$classNameMerchi7 === void 0 ? 'btn btn-lg btn-secondary' : _ref2$classNameMerchi7,
|
|
186
|
+
_ref2$classNameMerchi8 = _ref2.classNameMerchiCheckoutButtonSecondaryBlock,
|
|
187
|
+
classNameMerchiCheckoutButtonSecondaryBlock = _ref2$classNameMerchi8 === void 0 ? 'btn btn-lg btn-secondary btn-block' : _ref2$classNameMerchi8,
|
|
188
|
+
_ref2$classNameMerchi9 = _ref2.classNameMerchiCheckoutButtonDownloadInvoice,
|
|
189
|
+
classNameMerchiCheckoutButtonDownloadInvoice = _ref2$classNameMerchi9 === void 0 ? 'btn btn-lg btn-primary' : _ref2$classNameMerchi9,
|
|
190
|
+
_ref2$classNameMerchi10 = _ref2.classNameMerchiCheckoutButtonCancelOrder,
|
|
191
|
+
classNameMerchiCheckoutButtonCancelOrder = _ref2$classNameMerchi10 === void 0 ? 'btn btn-lg btn-secondary' : _ref2$classNameMerchi10,
|
|
192
|
+
_ref2$classNameMerchi11 = _ref2.classNameMerchiCheckoutConfirmInfoPanel,
|
|
193
|
+
classNameMerchiCheckoutConfirmInfoPanel = _ref2$classNameMerchi11 === void 0 ? 'd-flex align-items-center' : _ref2$classNameMerchi11,
|
|
194
|
+
_ref2$classNameMerchi12 = _ref2.classNameMerchiCheckoutFooterActionsContainer,
|
|
195
|
+
classNameMerchiCheckoutFooterActionsContainer = _ref2$classNameMerchi12 === void 0 ? 'd-flex justify-content-between mt-4' : _ref2$classNameMerchi12,
|
|
196
|
+
_ref2$classNameMerchi13 = _ref2.classNameMerchiCheckoutFormCheckbox,
|
|
197
|
+
classNameMerchiCheckoutFormCheckbox = _ref2$classNameMerchi13 === void 0 ? 'form-check-input' : _ref2$classNameMerchi13,
|
|
198
|
+
_ref2$classNameMerchi14 = _ref2.classNameMerchiCheckoutFormGroup,
|
|
199
|
+
classNameMerchiCheckoutFormGroup = _ref2$classNameMerchi14 === void 0 ? 'form-group' : _ref2$classNameMerchi14,
|
|
200
|
+
_ref2$classNameMerchi15 = _ref2.classNameMerchiCheckoutFormGroupCheckbox,
|
|
201
|
+
classNameMerchiCheckoutFormGroupCheckbox = _ref2$classNameMerchi15 === void 0 ? 'form-check' : _ref2$classNameMerchi15,
|
|
202
|
+
_ref2$classNameMerchi16 = _ref2.classNameMerchiCheckoutFormInput,
|
|
203
|
+
classNameMerchiCheckoutFormInput = _ref2$classNameMerchi16 === void 0 ? 'form-control' : _ref2$classNameMerchi16,
|
|
204
|
+
_ref2$classNameMerchi17 = _ref2.classNameMerchiCheckoutFormSelect,
|
|
205
|
+
classNameMerchiCheckoutFormSelect = _ref2$classNameMerchi17 === void 0 ? 'form-control' : _ref2$classNameMerchi17,
|
|
206
|
+
_ref2$classNameMerchi18 = _ref2.classNameMerchiCheckoutGoogleSuggestList,
|
|
207
|
+
classNameMerchiCheckoutGoogleSuggestList = _ref2$classNameMerchi18 === void 0 ? 'merchi-checkout-google-suggest-list' : _ref2$classNameMerchi18,
|
|
208
|
+
_ref2$classNameMerchi19 = _ref2.classNameMerchiCheckoutGoogleSuggestListItem,
|
|
209
|
+
classNameMerchiCheckoutGoogleSuggestListItem = _ref2$classNameMerchi19 === void 0 ? 'merchi-checkout-google-suggest-list-item' : _ref2$classNameMerchi19,
|
|
210
|
+
_ref2$classNameMerchi20 = _ref2.classNameMerchiCheckoutListGroupItemLoader,
|
|
211
|
+
classNameMerchiCheckoutListGroupItemLoader = _ref2$classNameMerchi20 === void 0 ? 'list-group-item modal-merchi-checkout-shipment-option' : _ref2$classNameMerchi20,
|
|
212
|
+
_ref2$classNameMerchi21 = _ref2.classNameMerchiCheckoutInputError,
|
|
213
|
+
classNameMerchiCheckoutInputError = _ref2$classNameMerchi21 === void 0 ? 'text-danger' : _ref2$classNameMerchi21,
|
|
214
|
+
_ref2$classNameMerchi22 = _ref2.classNameMerchiCheckoutFormLabelCheckbox,
|
|
215
|
+
classNameMerchiCheckoutFormLabelCheckbox = _ref2$classNameMerchi22 === void 0 ? '' : _ref2$classNameMerchi22,
|
|
216
|
+
_ref2$classNameMerchi23 = _ref2.classNameMerchiCheckoutListGroup,
|
|
217
|
+
classNameMerchiCheckoutListGroup = _ref2$classNameMerchi23 === void 0 ? 'modal-merchi-checkout-shipment-option' : _ref2$classNameMerchi23,
|
|
218
|
+
_ref2$classNameMerchi24 = _ref2.classNameMerchiCheckoutListGroupItem,
|
|
219
|
+
classNameMerchiCheckoutListGroupItem = _ref2$classNameMerchi24 === void 0 ? 'list-group-item modal-merchi-checkout-shipment-option' : _ref2$classNameMerchi24,
|
|
220
|
+
_ref2$classNameMerchi25 = _ref2.classNameMerchiCheckoutRow,
|
|
221
|
+
classNameMerchiCheckoutRow = _ref2$classNameMerchi25 === void 0 ? 'merchi-row' : _ref2$classNameMerchi25,
|
|
222
|
+
_ref2$classNameMerchi26 = _ref2.classNameMerchiCheckoutRowColumn,
|
|
223
|
+
classNameMerchiCheckoutRowColumn = _ref2$classNameMerchi26 === void 0 ? 'merchi-column' : _ref2$classNameMerchi26,
|
|
224
|
+
_ref2$classNameMerchi27 = _ref2.classNameMerchiCheckoutSubtitle,
|
|
225
|
+
classNameMerchiCheckoutSubtitle = _ref2$classNameMerchi27 === void 0 ? 'merchi-checkout-subtitle' : _ref2$classNameMerchi27,
|
|
226
|
+
_ref2$classNameMerchi28 = _ref2.classNameMerchiCheckoutTabsContainer,
|
|
227
|
+
classNameMerchiCheckoutTabsContainer = _ref2$classNameMerchi28 === void 0 ? 'merchi-checkout-tabs-container' : _ref2$classNameMerchi28,
|
|
228
|
+
_ref2$classNameMerchi29 = _ref2.classNameMerchiCheckoutTab,
|
|
229
|
+
classNameMerchiCheckoutTab = _ref2$classNameMerchi29 === void 0 ? 'merchi-checkout-tab' : _ref2$classNameMerchi29,
|
|
230
|
+
_ref2$classNameMerchi30 = _ref2.classNameMerchiCheckoutTabButton,
|
|
231
|
+
classNameMerchiCheckoutTabButton = _ref2$classNameMerchi30 === void 0 ? 'btn merchi-checkout-tab-btn' : _ref2$classNameMerchi30,
|
|
232
|
+
_ref2$classNameMerchi31 = _ref2.classNameMerchiCheckoutTabPane,
|
|
233
|
+
classNameMerchiCheckoutTabPane = _ref2$classNameMerchi31 === void 0 ? 'tab-pane' : _ref2$classNameMerchi31,
|
|
234
|
+
_ref2$classNameMerchi32 = _ref2.classNameMerchiCheckoutTabPaneContainer,
|
|
235
|
+
classNameMerchiCheckoutTabPaneContainer = _ref2$classNameMerchi32 === void 0 ? 'tab-content' : _ref2$classNameMerchi32,
|
|
236
|
+
_ref2$classNameMerchi33 = _ref2.classNameMerchiInvoiceButtonPayInvoice,
|
|
237
|
+
classNameMerchiInvoiceButtonPayInvoice = _ref2$classNameMerchi33 === void 0 ? 'btn btn-lg btn-primary btn-block' : _ref2$classNameMerchi33,
|
|
238
|
+
currentUser = _ref2.currentUser,
|
|
239
|
+
_ref2$discountButtonT = _ref2.discountButtonText,
|
|
240
|
+
discountButtonText = _ref2$discountButtonT === void 0 ? 'Apply' : _ref2$discountButtonT,
|
|
241
|
+
_ref2$discountClassNa = _ref2.discountClassName,
|
|
242
|
+
discountClassName = _ref2$discountClassNa === void 0 ? 'merchi-checkout-discount-code-container' : _ref2$discountClassNa,
|
|
243
|
+
_ref2$discountClassNa2 = _ref2.discountClassNameButton,
|
|
244
|
+
discountClassNameButton = _ref2$discountClassNa2 === void 0 ? 'btn btn-primary' : _ref2$discountClassNa2,
|
|
245
|
+
_ref2$discountClassNa3 = _ref2.discountClassNameButtonContainer,
|
|
246
|
+
discountClassNameButtonContainer = _ref2$discountClassNa3 === void 0 ? '' : _ref2$discountClassNa3,
|
|
247
|
+
_ref2$discountClassNa4 = _ref2.discountClassNameButtonItemRemove,
|
|
248
|
+
discountClassNameButtonItemRemove = _ref2$discountClassNa4 === void 0 ? 'btn btn-sm btn-link' : _ref2$discountClassNa4,
|
|
249
|
+
_ref2$discountClassNa5 = _ref2.discountClassNameErrorMessage,
|
|
250
|
+
discountClassNameErrorMessage = _ref2$discountClassNa5 === void 0 ? 'text-danger' : _ref2$discountClassNa5,
|
|
251
|
+
_ref2$discountClassNa6 = _ref2.discountClassNameInput,
|
|
252
|
+
discountClassNameInput = _ref2$discountClassNa6 === void 0 ? 'form-control' : _ref2$discountClassNa6,
|
|
253
|
+
_ref2$discountClassNa7 = _ref2.discountClassNameInputContainer,
|
|
254
|
+
discountClassNameInputContainer = _ref2$discountClassNa7 === void 0 ? 'merchi-checkout-discount-code-field-container' : _ref2$discountClassNa7,
|
|
255
|
+
_ref2$discountClassNa8 = _ref2.discountClassNameInputdiscountLabel,
|
|
256
|
+
discountClassNameInputdiscountLabel = _ref2$discountClassNa8 === void 0 ? 'merchi-checkout-discount-code-label' : _ref2$discountClassNa8,
|
|
257
|
+
_ref2$discountClassNa9 = _ref2.discountClassNameListItem,
|
|
258
|
+
discountClassNameListItem = _ref2$discountClassNa9 === void 0 ? 'list-group-item d-flex align-items-center justify-content-between mt-2' : _ref2$discountClassNa9,
|
|
259
|
+
_ref2$discountClassNa10 = _ref2.discountClassNameListItems,
|
|
260
|
+
discountClassNameListItems = _ref2$discountClassNa10 === void 0 ? 'list-group' : _ref2$discountClassNa10,
|
|
261
|
+
discountClassNameMainContainer = _ref2.discountClassNameMainContainer,
|
|
262
|
+
_ref2$discountLabel = _ref2.discountLabel,
|
|
263
|
+
discountLabel = _ref2$discountLabel === void 0 ? 'Apply Discount Code' : _ref2$discountLabel,
|
|
264
|
+
_ref2$discountShowApp = _ref2.discountShowAppliedItems,
|
|
265
|
+
discountShowAppliedItems = _ref2$discountShowApp === void 0 ? true : _ref2$discountShowApp,
|
|
266
|
+
_ref2$includeDomainSi = _ref2.includeDomainSignup,
|
|
267
|
+
includeDomainSignup = _ref2$includeDomainSi === void 0 ? false : _ref2$includeDomainSi,
|
|
268
|
+
invoice = _ref2.invoice,
|
|
269
|
+
isBuyRequest = _ref2.isBuyRequest,
|
|
270
|
+
isOpen = _ref2.isOpen,
|
|
271
|
+
_ref2$isProductEmbedF = _ref2.isProductEmbedForm,
|
|
272
|
+
isProductEmbedForm = _ref2$isProductEmbedF === void 0 ? false : _ref2$isProductEmbedF,
|
|
273
|
+
job = _ref2.job,
|
|
274
|
+
product = _ref2.product,
|
|
275
|
+
messageSuccessBuyRequest = _ref2.messageSuccessBuyRequest,
|
|
276
|
+
messageSuccessQuoteRequest = _ref2.messageSuccessQuoteRequest,
|
|
277
|
+
redirectAfterSuccessUrl = _ref2.redirectAfterSuccessUrl,
|
|
278
|
+
redirectAfterQuoteSuccessUrl = _ref2.redirectAfterQuoteSuccessUrl,
|
|
279
|
+
redirectWithValue = _ref2.redirectWithValue,
|
|
280
|
+
setInvoice = _ref2.setInvoice,
|
|
281
|
+
setJob = _ref2.setJob,
|
|
282
|
+
_ref2$showDiscountCod = _ref2.showDiscountCode,
|
|
283
|
+
showDiscountCode = _ref2$showDiscountCod === void 0 ? true : _ref2$showDiscountCod,
|
|
284
|
+
_ref2$showUserTermsAn = _ref2.showUserTermsAndConditions,
|
|
285
|
+
showUserTermsAndConditions = _ref2$showUserTermsAn === void 0 ? true : _ref2$showUserTermsAn,
|
|
286
|
+
toggleMerchiCheckout = _ref2.toggleMerchiCheckout,
|
|
287
|
+
_ref2$urlApi = _ref2.urlApi,
|
|
288
|
+
urlApi = _ref2$urlApi === void 0 ? 'https://api.merchi.co/v6/' : _ref2$urlApi,
|
|
289
|
+
_ref2$urlFrontend = _ref2.urlFrontend,
|
|
290
|
+
urlFrontend = _ref2$urlFrontend === void 0 ? 'https://merchi.co/' : _ref2$urlFrontend;
|
|
291
|
+
var initialTabsState = getInitialTabsState(job, product, includeDomainSignup, isBuyRequest, invoice);
|
|
292
|
+
var _useState = useState(initialTabsState.activeTabIndex),
|
|
233
293
|
_useState2 = _slicedToArray(_useState, 2),
|
|
234
294
|
activeTabIndex = _useState2[0],
|
|
235
295
|
setActiveTabIndex = _useState2[1];
|
|
@@ -245,7 +305,7 @@ export var MerchiCheckoutProvider = function MerchiCheckoutProvider(_ref) {
|
|
|
245
305
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
246
306
|
domain = _useState8[0],
|
|
247
307
|
setDomain = _useState8[1];
|
|
248
|
-
var _useState9 = useState(
|
|
308
|
+
var _useState9 = useState(initialTabsState.tabs),
|
|
249
309
|
_useState10 = _slicedToArray(_useState9, 2),
|
|
250
310
|
tabs = _useState10[0],
|
|
251
311
|
setTabs = _useState10[1];
|
|
@@ -281,23 +341,44 @@ export var MerchiCheckoutProvider = function MerchiCheckoutProvider(_ref) {
|
|
|
281
341
|
}]);
|
|
282
342
|
setAlerts(newAlerts);
|
|
283
343
|
}
|
|
344
|
+
function initTabsFromJob(jobForTabs) {
|
|
345
|
+
var tabIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
346
|
+
var _buildTabsState = buildTabsState(jobForTabs, {
|
|
347
|
+
includeDomainSignup: includeDomainSignup,
|
|
348
|
+
isBuyRequest: isBuyRequest,
|
|
349
|
+
tabIndex: tabIndex
|
|
350
|
+
}),
|
|
351
|
+
nextTabs = _buildTabsState.tabs,
|
|
352
|
+
nextIndex = _buildTabsState.activeTabIndex;
|
|
353
|
+
setTabs(nextTabs);
|
|
354
|
+
setActiveTabIndex(nextIndex);
|
|
355
|
+
}
|
|
284
356
|
function resetTabs() {
|
|
285
|
-
|
|
286
|
-
job: job,
|
|
287
|
-
includeDomainSignup: includeDomainSignup,
|
|
288
|
-
isBuyRequest: isBuyRequest
|
|
289
|
-
});
|
|
290
|
-
setTabs(_tabs);
|
|
357
|
+
initTabsFromJob(job, activeTabIndex);
|
|
291
358
|
}
|
|
292
359
|
function setCustomer(customer) {
|
|
293
|
-
|
|
360
|
+
var updatedJob = _objectSpread(_objectSpread({}, job), {}, {
|
|
294
361
|
client: customer
|
|
295
|
-
})
|
|
296
|
-
|
|
362
|
+
});
|
|
363
|
+
setJob(updatedJob);
|
|
364
|
+
initTabsFromJob(updatedJob, isUserRegistered(customer) ? activeTabIndex : 0);
|
|
297
365
|
}
|
|
298
366
|
function clearCustomer() {
|
|
299
|
-
|
|
300
|
-
|
|
367
|
+
var updatedJob = _objectSpread(_objectSpread({}, job), {}, {
|
|
368
|
+
client: {}
|
|
369
|
+
});
|
|
370
|
+
setJob(updatedJob);
|
|
371
|
+
initTabsFromJob(updatedJob, 0);
|
|
372
|
+
}
|
|
373
|
+
function cancelCheckoutOrder() {
|
|
374
|
+
var updatedJob = _objectSpread({}, job);
|
|
375
|
+
delete updatedJob.id;
|
|
376
|
+
setInvoice({});
|
|
377
|
+
setJob(updatedJob);
|
|
378
|
+
var confirmIndex = tabs.findIndex(function (t) {
|
|
379
|
+
return t.id === tabIdConfirm;
|
|
380
|
+
});
|
|
381
|
+
initTabsFromJob(updatedJob, confirmIndex >= 0 ? confirmIndex : 0);
|
|
301
382
|
}
|
|
302
383
|
function nextTab() {
|
|
303
384
|
var ndextIndex = activeTabIndex + 1;
|
|
@@ -312,14 +393,48 @@ export var MerchiCheckoutProvider = function MerchiCheckoutProvider(_ref) {
|
|
|
312
393
|
});
|
|
313
394
|
setActiveTabIndex(index);
|
|
314
395
|
}
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
396
|
+
var quoteSignature = getCheckoutQuoteSignature(job);
|
|
397
|
+
var quoteSignatureRef = React.useRef('');
|
|
398
|
+
useLayoutEffect(function () {
|
|
399
|
+
if (!(product !== null && product !== void 0 && product.id)) return;
|
|
400
|
+
var session = loadCheckoutSession(product);
|
|
401
|
+
var mergedJob = mergeJobWithCheckoutSession(job, session);
|
|
402
|
+
if (checkoutSessionChanged(job, mergedJob)) {
|
|
403
|
+
setJob(mergedJob);
|
|
318
404
|
}
|
|
319
|
-
|
|
320
|
-
|
|
405
|
+
var quoteChanged = quoteSignatureRef.current !== quoteSignature;
|
|
406
|
+
quoteSignatureRef.current = quoteSignature;
|
|
407
|
+
if (!tabs.length || quoteChanged) {
|
|
408
|
+
var _session$activeTabInd2;
|
|
409
|
+
var restoredInvoice = invoice !== null && invoice !== void 0 && invoice.id ? invoice : session === null || session === void 0 ? void 0 : session.invoice;
|
|
410
|
+
var restoredIndex = quoteChanged && !(restoredInvoice !== null && restoredInvoice !== void 0 && restoredInvoice.id) ? 0 : getSafeRestoredTabIndex(mergedJob, {
|
|
411
|
+
includeDomainSignup: includeDomainSignup,
|
|
412
|
+
isBuyRequest: isBuyRequest
|
|
413
|
+
}, (_session$activeTabInd2 = session === null || session === void 0 ? void 0 : session.activeTabIndex) !== null && _session$activeTabInd2 !== void 0 ? _session$activeTabInd2 : 0, restoredInvoice);
|
|
414
|
+
initTabsFromJob(mergedJob, restoredIndex);
|
|
321
415
|
}
|
|
322
|
-
|
|
416
|
+
if (!isUserRegistered(mergedJob.client) && !isUserRegistered(session === null || session === void 0 ? void 0 : session.client) && isUserRegistered(currentUser)) {
|
|
417
|
+
setJob(_objectSpread(_objectSpread({}, mergedJob), {}, {
|
|
418
|
+
client: currentUser
|
|
419
|
+
}));
|
|
420
|
+
}
|
|
421
|
+
}, [product === null || product === void 0 ? void 0 : product.id, quoteSignature]);
|
|
422
|
+
useEffect(function () {
|
|
423
|
+
var _session$invoice;
|
|
424
|
+
if (!(product !== null && product !== void 0 && product.id)) return;
|
|
425
|
+
var session = loadCheckoutSession(product);
|
|
426
|
+
if (!(invoice !== null && invoice !== void 0 && invoice.id) && session !== null && session !== void 0 && (_session$invoice = session.invoice) !== null && _session$invoice !== void 0 && _session$invoice.id) {
|
|
427
|
+
setInvoice(session.invoice);
|
|
428
|
+
}
|
|
429
|
+
}, [product === null || product === void 0 ? void 0 : product.id]);
|
|
430
|
+
useEffect(function () {
|
|
431
|
+
if (!(product !== null && product !== void 0 && product.id)) return;
|
|
432
|
+
saveCheckoutSession(product, buildCheckoutSession(job, activeTabIndex, {
|
|
433
|
+
invoice: invoice,
|
|
434
|
+
checkoutOpen: isOpen,
|
|
435
|
+
isBuyRequest: isBuyRequest
|
|
436
|
+
}, loadCheckoutSession(product)));
|
|
437
|
+
}, [product === null || product === void 0 ? void 0 : product.id, job.client, job.shipping, job.billing, job.shipment, job.items, activeTabIndex, invoice, isOpen, isBuyRequest]);
|
|
323
438
|
function discountCallbackSuccess(items) {
|
|
324
439
|
setJob(_objectSpread(_objectSpread({}, job), {}, {
|
|
325
440
|
items: items
|
|
@@ -345,6 +460,7 @@ export var MerchiCheckoutProvider = function MerchiCheckoutProvider(_ref) {
|
|
|
345
460
|
classNameMerchiCheckoutButtonSecondary: classNameMerchiCheckoutButtonSecondary,
|
|
346
461
|
classNameMerchiCheckoutButtonSecondaryBlock: classNameMerchiCheckoutButtonSecondaryBlock,
|
|
347
462
|
classNameMerchiCheckoutButtonDownloadInvoice: classNameMerchiCheckoutButtonDownloadInvoice,
|
|
463
|
+
classNameMerchiCheckoutButtonCancelOrder: classNameMerchiCheckoutButtonCancelOrder,
|
|
348
464
|
classNameMerchiCheckoutConfirmInfoPanel: classNameMerchiCheckoutConfirmInfoPanel,
|
|
349
465
|
classNameMerchiCheckoutFooterActionsContainer: classNameMerchiCheckoutFooterActionsContainer,
|
|
350
466
|
classNameMerchiCheckoutFormCheckbox: classNameMerchiCheckoutFormCheckbox,
|
|
@@ -369,6 +485,7 @@ export var MerchiCheckoutProvider = function MerchiCheckoutProvider(_ref) {
|
|
|
369
485
|
classNameMerchiCheckoutTabPaneContainer: classNameMerchiCheckoutTabPaneContainer,
|
|
370
486
|
classNameMerchiInvoiceButtonPayInvoice: classNameMerchiInvoiceButtonPayInvoice,
|
|
371
487
|
clearCustomer: clearCustomer,
|
|
488
|
+
cancelCheckoutOrder: cancelCheckoutOrder,
|
|
372
489
|
currentUser: currentUser,
|
|
373
490
|
customer: job.client || {},
|
|
374
491
|
discountButtonText: discountButtonText,
|
|
@@ -417,7 +534,10 @@ export var MerchiCheckoutProvider = function MerchiCheckoutProvider(_ref) {
|
|
|
417
534
|
urlApi: urlApi,
|
|
418
535
|
urlFrontend: urlFrontend
|
|
419
536
|
},
|
|
420
|
-
children:
|
|
537
|
+
children: /*#__PURE__*/_jsx("div", {
|
|
538
|
+
className: "merchi-checkout",
|
|
539
|
+
children: children
|
|
540
|
+
})
|
|
421
541
|
});
|
|
422
542
|
};
|
|
423
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdHlwZW9mIiwibyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJhcnIiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiVHlwZUVycm9yIiwiaXRlciIsIkFycmF5IiwiZnJvbSIsImlzQXJyYXkiLCJfYXJyYXlMaWtlVG9BcnJheSIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIm9iaiIsImtleSIsInZhbHVlIiwiX3RvUHJvcGVydHlLZXkiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImkiLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJ0b1ByaW1pdGl2ZSIsImNhbGwiLCJOdW1iZXIiLCJfc2xpY2VkVG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl9ub25JdGVyYWJsZVJlc3QiLCJtaW5MZW4iLCJuIiwidG9TdHJpbmciLCJzbGljZSIsIm5hbWUiLCJ0ZXN0IiwibGVuIiwiYXJyMiIsImwiLCJ1IiwiYSIsImYiLCJuZXh0IiwiZG9uZSIsIlJlYWN0IiwiY3JlYXRlQ29udGV4dCIsInVzZUNvbnRleHQiLCJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsInRhYnNJbml0IiwiTWVyY2hpIiwianN4IiwiX2pzeCIsIk1lcmNoaUNoZWNrb3V0Q29udGV4dCIsImFjdGl2ZVRhYkluZGV4IiwiYWxlcnRzIiwiYWxlcnRDbG9zZSIsImFsZXJ0RXJyb3JTaG93IiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydHNDb250YWluZXIiLCJ1bmRlZmluZWQiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0IiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydEVycm9yIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydFN1Y2Nlc3MiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblByaW1hcnkiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblByaW1hcnlCbG9jayIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5IiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25TZWNvbmRhcnlCbG9jayIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uRG93bmxvYWRJbnZvaWNlIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRDb25maXJtSW5mb1BhbmVsIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb290ZXJBY3Rpb25zQ29udGFpbmVyIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtQ2hlY2tib3giLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1Hcm91cCIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUdyb3VwQ2hlY2tib3giLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1JbnB1dCIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybVNlbGVjdCIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0R29vZ2xlU3VnZ2VzdExpc3QiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEdvb2dsZVN1Z2dlc3RMaXN0SXRlbSIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwSXRlbUxvYWRlciIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUxhYmVsQ2hlY2tib3giLCJjbGFzc05hbWVNZXJjaGlDaGVja291dElucHV0RXJyb3IiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cCIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwSXRlbSIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Um93IiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRSb3dDb2x1bW4iLCJjbGFzc05hbWVNZXJjaGlDaGVja291dFN1YnRpdGxlIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJzQ29udGFpbmVyIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWIiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYlBhbmUiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYlBhbmVDb250YWluZXIiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYkJ1dHRvbiIsImNsYXNzTmFtZU1lcmNoaUludm9pY2VCdXR0b25QYXlJbnZvaWNlIiwiY2xlYXJDdXN0b21lciIsImN1cnJlbnRVc2VyIiwiY3VzdG9tZXIiLCJkaXNjb3VudEJ1dHRvblRleHQiLCJkaXNjb3VudENhbGxiYWNrRXJyb3IiLCJkaXNjb3VudENhbGxiYWNrU3VjY2VzcyIsImRpc2NvdW50Q2xhc3NOYW1lIiwiZGlzY291bnRDbGFzc05hbWVCdXR0b24iLCJkaXNjb3VudENsYXNzTmFtZUJ1dHRvbkNvbnRhaW5lciIsImRpc2NvdW50Q2xhc3NOYW1lQnV0dG9uSXRlbVJlbW92ZSIsImRpc2NvdW50Q2xhc3NOYW1lRXJyb3JNZXNzYWdlIiwiZGlzY291bnRDbGFzc05hbWVJbnB1dCIsImRpc2NvdW50Q2xhc3NOYW1lSW5wdXRDb250YWluZXIiLCJkaXNjb3VudENsYXNzTmFtZUlucHV0ZGlzY291bnRMYWJlbCIsImRpc2NvdW50Q2xhc3NOYW1lTGlzdEl0ZW0iLCJkaXNjb3VudENsYXNzTmFtZUxpc3RJdGVtcyIsImRpc2NvdW50Q2xhc3NOYW1lTWFpbkNvbnRhaW5lciIsImRpc2NvdW50TGFiZWwiLCJkaXNjb3VudFNob3dBcHBsaWVkSXRlbXMiLCJkb21haW4iLCJlZGl0RHJhZnRUZW1wbGF0ZSIsImlzQnV5UmVxdWVzdCIsImlzT3BlbiIsImxvYWRpbmciLCJtZXJjaGkiLCJtZXNzYWdlU3VjY2Vzc0J1eVJlcXVlc3QiLCJtZXNzYWdlU3VjY2Vzc1F1b3RlUmVxdWVzdCIsIm5leHRUYWIiLCJpbmNsdWRlRG9tYWluU2lnbnVwIiwiaW52b2ljZSIsImlzUHJvZHVjdEVtYmVkRm9ybSIsImpvYiIsInByb2R1Y3QiLCJyZWRpcmVjdEFmdGVyU3VjY2Vzc1VybCIsInJlZGlyZWN0QWZ0ZXJRdW90ZVN1Y2Nlc3NVcmwiLCJyZWRpcmVjdFdpdGhWYWx1ZSIsInNldEFjdGl2ZVRhYkJ5SWQiLCJzZXRBY3RpdmVUYWJJbmRleCIsInNldEN1c3RvbWVyIiwic2V0RG9tYWluIiwic2V0SW52b2ljZSIsInNldEpvYiIsInNob3dEaXNjb3VudENvZGUiLCJzaG93VXNlclRlcm1zQW5kQ29uZGl0aW9ucyIsInRhYnMiLCJ0b2dnbGVNZXJjaGlDaGVja291dCIsInVybEZyb250ZW5kIiwidXJsQXBpIiwidXNlTWVyY2hpQ2hlY2tib3V0Q29udGV4dCIsIk1lcmNoaUNoZWNrb3V0UHJvdmlkZXIiLCJfcmVmIiwiY2hpbGRyZW4iLCJfcmVmJGNsYXNzTmFtZU1lcmNoaUMiLCJfcmVmJGNsYXNzTmFtZU1lcmNoaUMyIiwiX3JlZiRjbGFzc05hbWVNZXJjaGlDMyIsIl9yZWYkY2xhc3NOYW1lTWVyY2hpQzQiLCJfcmVmJGNsYXNzTmFtZU1lcmNoaUM1IiwiX3JlZiRjbGFzc05hbWVNZXJjaGlDNiIsIl9yZWYkY2xhc3NOYW1lTWVyY2hpQzciLCJfcmVmJGNsYXNzTmFtZU1lcmNoaUM4IiwiX3JlZiRjbGFzc05hbWVNZXJjaGlDOSIsIl9yZWYkY2xhc3NOYW1lTWVyY2hpQzEwIiwiX3JlZiRjbGFzc05hbWVNZXJjaGlDMTEiLCJfcmVmJGNsYXNzTmFtZU1lcmNoaUMxMiIsIl9yZWYkY2xhc3NOYW1lTWVyY2hpQzEzIiwiX3JlZiRjbGFzc05hbWVNZXJjaGlDMTQiLCJfcmVmJGNsYXNzTmFtZU1lcmNoaUMxNSIsIl9yZWYkY2xhc3NOYW1lTWVyY2hpQzE2IiwiX3JlZiRjbGFzc05hbWVNZXJjaGlDMTciLCJfcmVmJGNsYXNzTmFtZU1lcmNoaUMxOCIsIl9yZWYkY2xhc3NOYW1lTWVyY2hpQzE5IiwiX3JlZiRjbGFzc05hbWVNZXJjaGlDMjAiLCJfcmVmJGNsYXNzTmFtZU1lcmNoaUMyMSIsIl9yZWYkY2xhc3NOYW1lTWVyY2hpQzIyIiwiX3JlZiRjbGFzc05hbWVNZXJjaGlDMjMiLCJfcmVmJGNsYXNzTmFtZU1lcmNoaUMyNCIsIl9yZWYkY2xhc3NOYW1lTWVyY2hpQzI1IiwiX3JlZiRjbGFzc05hbWVNZXJjaGlDMjYiLCJfcmVmJGNsYXNzTmFtZU1lcmNoaUMyNyIsIl9yZWYkY2xhc3NOYW1lTWVyY2hpQzI4IiwiX3JlZiRjbGFzc05hbWVNZXJjaGlDMjkiLCJfcmVmJGNsYXNzTmFtZU1lcmNoaUMzMCIsIl9yZWYkY2xhc3NOYW1lTWVyY2hpQzMxIiwiX3JlZiRjbGFzc05hbWVNZXJjaGlJIiwiX3JlZiRkaXNjb3VudEJ1dHRvblRlIiwiX3JlZiRkaXNjb3VudENsYXNzTmFtIiwiX3JlZiRkaXNjb3VudENsYXNzTmFtMiIsIl9yZWYkZGlzY291bnRDbGFzc05hbTMiLCJfcmVmJGRpc2NvdW50Q2xhc3NOYW00IiwiX3JlZiRkaXNjb3VudENsYXNzTmFtNSIsIl9yZWYkZGlzY291bnRDbGFzc05hbTYiLCJfcmVmJGRpc2NvdW50Q2xhc3NOYW03IiwiX3JlZiRkaXNjb3VudENsYXNzTmFtOCIsIl9yZWYkZGlzY291bnRDbGFzc05hbTkiLCJfcmVmJGRpc2NvdW50Q2xhc3NOYW0xMCIsIl9yZWYkZGlzY291bnRMYWJlbCIsIl9yZWYkZGlzY291bnRTaG93QXBwbCIsIl9yZWYkaW5jbHVkZURvbWFpblNpZyIsIl9yZWYkaXNQcm9kdWN0RW1iZWRGbyIsIl9yZWYkc2hvd0Rpc2NvdW50Q29kZSIsIl9yZWYkc2hvd1VzZXJUZXJtc0FuZCIsIl9yZWYkdXJsQXBpIiwiX3JlZiR1cmxGcm9udGVuZCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInNldExvYWRpbmciLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInNldEFsZXJ0cyIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTEwIiwic2V0VGFicyIsImluZGV4IiwiZHJhZnQiLCJqb2JKc29uIiwiZHJhZnRUZW1wbGF0ZXMiLCJkcmFmdFRlbXBsYXRlRmlsZXMiLCJtYXAiLCJkIiwiZmlsZSIsIm93bkRyYWZ0Iiwib3duRHJhZnRzIiwiaW1hZ2VzIiwidXBkYXRlZEFsZXJ0cyIsIl8iLCJpZHgiLCJtZXNzYWdlIiwibmV3QWxlcnRzIiwiY29uY2F0IiwiYWxlcnRUeXBlIiwidGl0bGUiLCJyZXNldFRhYnMiLCJfdGFicyIsImNsaWVudCIsIm5kZXh0SW5kZXgiLCJkaXNhYmxlZCIsInRhYklkIiwiZmluZEluZGV4IiwiaWQiLCJpdGVtcyIsIlByb3ZpZGVyIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvTWVyY2hpQ2hlY2tvdXRQcm92aWRlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgUmVhY3ROb2RlLCB1c2VDb250ZXh0LCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTWVyY2hpQ2hlY2tvdXRUYWIgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyB0YWJzSW5pdCB9IGZyb20gJy4uL3RhYnNfdXRpbHMnO1xuaW1wb3J0IHsgTWVyY2hpIH0gZnJvbSAnbWVyY2hpX3Nka190cyc7XG5cbmludGVyZmFjZSBJTWVyY2hpQ2hlY2tvdXQge1xuICBhY3RpdmVUYWJJbmRleDogbnVtYmVyO1xuICBhbGVydHM6IGFueVtdO1xuICBhbGVydENsb3NlOiAoaW5kZXg6IG51bWJlcikgPT4gdm9pZDtcbiAgYWxlcnRFcnJvclNob3c6IChtZXNzYWdlOiBzdHJpbmcpID0+IHZvaWQ7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QWxlcnRzQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0RXJyb3I/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QWxlcnRTdWNjZXNzPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblByaW1hcnk/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uUHJpbWFyeUJsb2NrPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblNlY29uZGFyeT86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25TZWNvbmRhcnlCbG9jaz86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25Eb3dubG9hZEludm9pY2U/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Q29uZmlybUluZm9QYW5lbD86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb290ZXJBY3Rpb25zQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1DaGVja2JveD86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtR3JvdXA/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUdyb3VwQ2hlY2tib3g/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUlucHV0Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1TZWxlY3Q/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0R29vZ2xlU3VnZ2VzdExpc3Q/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0R29vZ2xlU3VnZ2VzdExpc3RJdGVtPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cEl0ZW1Mb2FkZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUxhYmVsQ2hlY2tib3g/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0SW5wdXRFcnJvcj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRMaXN0R3JvdXA/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwSXRlbT86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRSb3c/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Um93Q29sdW1uPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFN1YnRpdGxlPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYnNDb250YWluZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYlBhbmU/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiUGFuZUNvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJCdXR0b24/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUludm9pY2VCdXR0b25QYXlJbnZvaWNlPzogc3RyaW5nO1xuICBjbGVhckN1c3RvbWVyOiAoKSA9PiB2b2lkO1xuICBjdXJyZW50VXNlcj86IGFueTtcbiAgY3VzdG9tZXI/OiBhbnk7XG4gIGRpc2NvdW50QnV0dG9uVGV4dD86IHN0cmluZztcbiAgZGlzY291bnRDYWxsYmFja0Vycm9yOiAoKSA9PiB2b2lkO1xuICBkaXNjb3VudENhbGxiYWNrU3VjY2VzczogKGl0ZW1zOiBhbnlbXSkgPT4gdm9pZDtcbiAgZGlzY291bnRDbGFzc05hbWU/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lTWFpbkNvbnRhaW5lcj86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVCdXR0b25JdGVtUmVtb3ZlPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUJ1dHRvbj86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVCdXR0b25Db250YWluZXI/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUlucHV0Pzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUxpc3RJdGVtPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUxpc3RJdGVtcz86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVJbnB1dENvbnRhaW5lcj86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVJbnB1dGRpc2NvdW50TGFiZWw/OiBzdHJpbmc7XG4gIGRpc2NvdW50TGFiZWw/OiBzdHJpbmc7XG4gIGRpc2NvdW50U2hvd0FwcGxpZWRJdGVtcz86IGJvb2xlYW47XG4gIGRvbWFpbj86IGFueTtcbiAgZWRpdERyYWZ0VGVtcGxhdGU6IChpbmRleDogbnVtYmVyLCBkcmFmdDogYW55KSA9PiB2b2lkO1xuICBpbmNsdWRlRG9tYWluU2lnbnVwPzogYm9vbGVhbjtcbiAgaW52b2ljZTogYW55O1xuICBpc0J1eVJlcXVlc3Q/OiBib29sZWFuO1xuICBpc09wZW4/OiBib29sZWFuO1xuICBpc1Byb2R1Y3RFbWJlZEZvcm0/OiBib29sZWFuO1xuICBqb2I6IGFueTtcbiAgbG9hZGluZzogYm9vbGVhbjtcbiAgbWVyY2hpOiBNZXJjaGk7XG4gIG1lc3NhZ2VTdWNjZXNzQnV5UmVxdWVzdD86IHN0cmluZztcbiAgbWVzc2FnZVN1Y2Nlc3NRdW90ZVJlcXVlc3Q/OiBzdHJpbmc7XG4gIG5leHRUYWI6ICgpID0+IHZvaWQ7XG4gIHByb2R1Y3Q6IGFueTtcbiAgcmVkaXJlY3RBZnRlclN1Y2Nlc3NVcmw/OiBzdHJpbmc7XG4gIHJlZGlyZWN0QWZ0ZXJRdW90ZVN1Y2Nlc3NVcmw/OiBzdHJpbmc7XG4gIHJlZGlyZWN0V2l0aFZhbHVlPzogYm9vbGVhbjtcbiAgc2V0QWN0aXZlVGFiQnlJZDogKGlkOiBzdHJpbmcpID0+IHZvaWQ7XG4gIHNldEFjdGl2ZVRhYkluZGV4OiAoaW5kZXg6IG51bWJlcikgPT4gdm9pZDtcbiAgc2V0Q3VzdG9tZXI6IChjdXN0b21lcjogYW55KSA9PiB2b2lkO1xuICBzZXREb21haW46IChkb21haW46IGFueSkgPT4gdm9pZDtcbiAgc2V0SW52b2ljZTogKGludm9pY2U6IGFueSkgPT4gdm9pZDtcbiAgc2V0Sm9iOiAoam9iOiBhbnkpID0+IHZvaWQ7XG4gIHNob3dEaXNjb3VudENvZGU/OiBib29sZWFuO1xuICBzaG93VXNlclRlcm1zQW5kQ29uZGl0aW9ucz86IGJvb2xlYW47XG4gIHRhYnM6IE1lcmNoaUNoZWNrb3V0VGFiW107XG4gIHRvZ2dsZU1lcmNoaUNoZWNrb3V0OiAoKSA9PiB2b2lkO1xuICB1cmxGcm9udGVuZDogc3RyaW5nO1xuICB1cmxBcGk6IHN0cmluZztcbn1cblxuY29uc3QgTWVyY2hpQ2hlY2tvdXRDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxJTWVyY2hpQ2hlY2tvdXQ+KHtcbiAgYWN0aXZlVGFiSW5kZXg6IDAsXG4gIGFsZXJ0czogW10sXG4gIGFsZXJ0Q2xvc2UoKSB7fSxcbiAgYWxlcnRFcnJvclNob3coKSB7fSxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydHNDb250YWluZXI6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0RXJyb3I6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydFN1Y2Nlc3M6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25QcmltYXJ5OiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uUHJpbWFyeUJsb2NrOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5OiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5QmxvY2s6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25Eb3dubG9hZEludm9pY2U6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRDb25maXJtSW5mb1BhbmVsOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9vdGVyQWN0aW9uc0NvbnRhaW5lcjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1DaGVja2JveDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1Hcm91cDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1Hcm91cENoZWNrYm94OiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUlucHV0OiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybVNlbGVjdDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEdvb2dsZVN1Z2dlc3RMaXN0OiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0R29vZ2xlU3VnZ2VzdExpc3RJdGVtOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwSXRlbUxvYWRlcjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1MYWJlbENoZWNrYm94OiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0SW5wdXRFcnJvcjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cEl0ZW06IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRSb3c6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRSb3dDb2x1bW46IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRTdWJ0aXRsZTogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYnNDb250YWluZXI6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWI6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJQYW5lOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiUGFuZUNvbnRhaW5lcjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYkJ1dHRvbjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlJbnZvaWNlQnV0dG9uUGF5SW52b2ljZTogdW5kZWZpbmVkLFxuICBjbGVhckN1c3RvbWVyKCkge30sXG4gIGN1cnJlbnRVc2VyOiB1bmRlZmluZWQsXG4gIGN1c3RvbWVyOiB1bmRlZmluZWQsXG4gIGRpc2NvdW50QnV0dG9uVGV4dDogdW5kZWZpbmVkLFxuICBkaXNjb3VudENhbGxiYWNrRXJyb3IoKSB7fSxcbiAgZGlzY291bnRDYWxsYmFja1N1Y2Nlc3MoKSB7fSxcbiAgZGlzY291bnRDbGFzc05hbWU6IHVuZGVmaW5lZCxcbiAgZGlzY291bnRDbGFzc05hbWVCdXR0b246IHVuZGVmaW5lZCxcbiAgZGlzY291bnRDbGFzc05hbWVCdXR0b25Db250YWluZXI6IHVuZGVmaW5lZCxcbiAgZGlzY291bnRDbGFzc05hbWVCdXR0b25JdGVtUmVtb3ZlOiB1bmRlZmluZWQsXG4gIGRpc2NvdW50Q2xhc3NOYW1lRXJyb3JNZXNzYWdlOiB1bmRlZmluZWQsXG4gIGRpc2NvdW50Q2xhc3NOYW1lSW5wdXQ6IHVuZGVmaW5lZCxcbiAgZGlzY291bnRDbGFzc05hbWVJbnB1dENvbnRhaW5lcjogdW5kZWZpbmVkLFxuICBkaXNjb3VudENsYXNzTmFtZUlucHV0ZGlzY291bnRMYWJlbDogdW5kZWZpbmVkLFxuICBkaXNjb3VudENsYXNzTmFtZUxpc3RJdGVtOiB1bmRlZmluZWQsXG4gIGRpc2NvdW50Q2xhc3NOYW1lTGlzdEl0ZW1zOiB1bmRlZmluZWQsXG4gIGRpc2NvdW50Q2xhc3NOYW1lTWFpbkNvbnRhaW5lcjogdW5kZWZpbmVkLFxuICBkaXNjb3VudExhYmVsOiB1bmRlZmluZWQsXG4gIGRpc2NvdW50U2hvd0FwcGxpZWRJdGVtczogdHJ1ZSxcbiAgZG9tYWluOiB1bmRlZmluZWQsXG4gIGVkaXREcmFmdFRlbXBsYXRlKCkge30sXG4gIGlzQnV5UmVxdWVzdDogZmFsc2UsXG4gIGlzT3BlbjogZmFsc2UsXG4gIGxvYWRpbmc6IGZhbHNlLFxuICBtZXJjaGk6IHVuZGVmaW5lZCxcbiAgbWVzc2FnZVN1Y2Nlc3NCdXlSZXF1ZXN0OiB1bmRlZmluZWQsXG4gIG1lc3NhZ2VTdWNjZXNzUXVvdGVSZXF1ZXN0OiB1bmRlZmluZWQsXG4gIG5leHRUYWIoKSB7fSxcbiAgaW5jbHVkZURvbWFpblNpZ251cDogZmFsc2UsXG4gIGludm9pY2U6IHt9LFxuICBpc1Byb2R1Y3RFbWJlZEZvcm06IGZhbHNlLFxuICBqb2I6IHt9LFxuICBwcm9kdWN0OiB7fSxcbiAgcmVkaXJlY3RBZnRlclN1Y2Nlc3NVcmw6IHVuZGVmaW5lZCxcbiAgcmVkaXJlY3RBZnRlclF1b3RlU3VjY2Vzc1VybDogdW5kZWZpbmVkLFxuICByZWRpcmVjdFdpdGhWYWx1ZTogdHJ1ZSxcbiAgc2V0QWN0aXZlVGFiQnlJZCgpIHt9LFxuICBzZXRBY3RpdmVUYWJJbmRleCgpIHt9LFxuICBzZXRDdXN0b21lcigpIHt9LFxuICBzZXREb21haW4oKSB7fSxcbiAgc2V0SW52b2ljZSgpIHt9LFxuICBzZXRKb2IoKSB7fSxcbiAgc2hvd0Rpc2NvdW50Q29kZTogdHJ1ZSxcbiAgc2hvd1VzZXJUZXJtc0FuZENvbmRpdGlvbnM6IHRydWUsXG4gIHRhYnM6IFtdLFxuICB0b2dnbGVNZXJjaGlDaGVja291dCgpIHt9LFxuICB1cmxGcm9udGVuZDogJycsXG4gIHVybEFwaTogJycsXG59KTtcblxuZXhwb3J0IGNvbnN0IHVzZU1lcmNoaUNoZWNrYm91dENvbnRleHQgPSAoKSA9PlxuICB1c2VDb250ZXh0KE1lcmNoaUNoZWNrb3V0Q29udGV4dCk7XG5cbmludGVyZmFjZSBQcm9wc01lcmNoaVByb2R1Y3RGb3JtUHJvdmlkZXIge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0c0NvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydD86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydEVycm9yPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0U3VjY2Vzcz86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25QcmltYXJ5Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblByaW1hcnlCbG9jaz86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25TZWNvbmRhcnk/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5QmxvY2s/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uRG93bmxvYWRJbnZvaWNlPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dENvbmZpcm1JbmZvUGFuZWw/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9vdGVyQWN0aW9uc0NvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtQ2hlY2tib3g/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUdyb3VwPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1Hcm91cENoZWNrYm94Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1JbnB1dD86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtU2VsZWN0Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEdvb2dsZVN1Z2dlc3RMaXN0Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEdvb2dsZVN1Z2dlc3RMaXN0SXRlbT86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRMaXN0R3JvdXBJdGVtTG9hZGVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dElucHV0RXJyb3I/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cEl0ZW0/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Um93Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFJvd0NvbHVtbj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRTdWJ0aXRsZT86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJzQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1MYWJlbENoZWNrYm94Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJCdXR0b24/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiUGFuZT86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJQYW5lQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlJbnZvaWNlQnV0dG9uUGF5SW52b2ljZT86IHN0cmluZztcbiAgY3VycmVudFVzZXI/OiBhbnk7XG4gIGRpc2NvdW50QnV0dG9uVGV4dD86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWU/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lTWFpbkNvbnRhaW5lcj86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVCdXR0b25JdGVtUmVtb3ZlPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUJ1dHRvbj86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVCdXR0b25Db250YWluZXI/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUlucHV0Pzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUxpc3RJdGVtPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUxpc3RJdGVtcz86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVJbnB1dENvbnRhaW5lcj86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVJbnB1dGRpc2NvdW50TGFiZWw/OiBzdHJpbmc7XG4gIGRpc2NvdW50TGFiZWw/OiBzdHJpbmc7XG4gIGRpc2NvdW50U2hvd0FwcGxpZWRJdGVtcz86IGJvb2xlYW47XG4gIGluY2x1ZGVEb21haW5TaWdudXA/OiBib29sZWFuO1xuICBpc0J1eVJlcXVlc3Q/OiBib29sZWFuO1xuICBpc09wZW46IGJvb2xlYW47XG4gIGlzUHJvZHVjdEVtYmVkRm9ybT86IGJvb2xlYW47XG4gIG1lc3NhZ2VTdWNjZXNzQnV5UmVxdWVzdD86IHN0cmluZztcbiAgbWVzc2FnZVN1Y2Nlc3NRdW90ZVJlcXVlc3Q/OiBzdHJpbmc7XG4gIHNob3dEaXNjb3VudENvZGU/OiBib29sZWFuO1xuICBzaG93VXNlclRlcm1zQW5kQ29uZGl0aW9ucz86IGJvb2xlYW47XG4gIGludm9pY2U6IGFueTtcbiAgam9iOiBhbnk7XG4gIHByb2R1Y3Q6IGFueTtcbiAgcmVkaXJlY3RBZnRlclN1Y2Nlc3NVcmw/OiBzdHJpbmc7XG4gIHJlZGlyZWN0QWZ0ZXJRdW90ZVN1Y2Nlc3NVcmw/OiBzdHJpbmc7XG4gIHJlZGlyZWN0V2l0aFZhbHVlPzogYm9vbGVhbjtcbiAgc2V0SW52b2ljZTogKGludm9pY2U6IGFueSkgPT4gdm9pZDtcbiAgc2V0Sm9iOiAoam9iOiBhbnkpID0+IHZvaWQ7XG4gIHRvZ2dsZU1lcmNoaUNoZWNrb3V0OiAoKSA9PiB2b2lkO1xuICB1cmxBcGk/OiBzdHJpbmc7XG4gIHVybEZyb250ZW5kPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgTWVyY2hpQ2hlY2tvdXRQcm92aWRlciA9ICh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0c0NvbnRhaW5lciA9ICdkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBmbGV4LWNvbHVtbiBhbGVydHMtY29udGFpbmVyLXNtJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydCA9ICdhbGVydCBhbGVydC1kaXNtaXNzaWJsZSBhbGVydC1ub3RpZnknLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0RXJyb3IgPSAnYWxlcnQtZGFuZ2VyJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydFN1Y2Nlc3MgPSAnYWxlcnQtc3VjY2VzcycsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uUHJpbWFyeSA9ICdidG4gYnRuLWxtZCBidG4tcHJpbWFyeSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXInLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblByaW1hcnlCbG9jayA9ICdidG4gYnRuLWxnIGJ0bi1wcmltYXJ5IGJ0bi1ibG9jaycsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5ID0gJ2J0biBidG4tbGcgYnRuLXNlY29uZGFyeScsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5QmxvY2sgPSAnYnRuIGJ0bi1sZyBidG4tc2Vjb25kYXJ5IGJ0bi1ibG9jaycsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uRG93bmxvYWRJbnZvaWNlID0gJ2J0biBidG4tbGcgYnRuLXByaW1hcnknLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dENvbmZpcm1JbmZvUGFuZWwgPSAnZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlcicsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9vdGVyQWN0aW9uc0NvbnRhaW5lciA9ICdkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXQtNCcsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUNoZWNrYm94ID0gJ2Zvcm0tY2hlY2staW5wdXQnLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1Hcm91cCA9ICdmb3JtLWdyb3VwJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtR3JvdXBDaGVja2JveCA9ICdmb3JtLWNoZWNrJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtSW5wdXQgPSAnZm9ybS1jb250cm9sJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtU2VsZWN0ID0gJ2Zvcm0tY29udHJvbCcsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0R29vZ2xlU3VnZ2VzdExpc3QgPSAnbGlzdC1ncm91cCBtLWItMCcsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0R29vZ2xlU3VnZ2VzdExpc3RJdGVtID0gJ2xpc3QtZ3JvdXAtaXRlbSBjdXJzb3ItcG9pbnRlcicsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwSXRlbUxvYWRlciA9ICdsaXN0LWdyb3VwLWl0ZW0gbW9kYWwtbWVyY2hpLWNoZWNrb3V0LXNoaXBtZW50LW9wdGlvbicsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0SW5wdXRFcnJvciA9ICd0ZXh0LWRhbmdlcicsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUxhYmVsQ2hlY2tib3ggPSAnJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRMaXN0R3JvdXAgPSAnbW9kYWwtbWVyY2hpLWNoZWNrb3V0LXNoaXBtZW50LW9wdGlvbicsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwSXRlbSA9ICdsaXN0LWdyb3VwLWl0ZW0nLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFJvdyA9ICdtZXJjaGktcm93JyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRSb3dDb2x1bW4gPSAnbWVyY2hpLWNvbHVtbicsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0U3VidGl0bGUgPSAnbWVyY2hpLWNoZWNrb3V0LXN1YnRpdGxlJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJzQ29udGFpbmVyID0gJ21lcmNoaS1jaGVja291dC10YWJzLWNvbnRhaW5lcicsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiID0gJ21lcmNoaS1jaGVja291dC10YWInLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYkJ1dHRvbiA9ICdidG4gbWVyY2hpLWNoZWNrb3V0LXRhYi1idG4nLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYlBhbmUgPSAndGFiLXBhbmUnLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYlBhbmVDb250YWluZXIgPSAndGFiLWNvbnRlbnQnLFxuICBjbGFzc05hbWVNZXJjaGlJbnZvaWNlQnV0dG9uUGF5SW52b2ljZSA9ICdidG4gYnRuLWxnIGJ0bi1wcmltYXJ5IGJ0bi1ibG9jaycsXG4gIGN1cnJlbnRVc2VyLFxuICBkaXNjb3VudEJ1dHRvblRleHQgPSAnQXBwbHknLFxuICBkaXNjb3VudENsYXNzTmFtZSA9ICdtZXJjaGktY2hlY2tvdXQtZGlzY291bnQtY29kZS1jb250YWluZXInLFxuICBkaXNjb3VudENsYXNzTmFtZUJ1dHRvbiA9ICdidG4gYnRuLXByaW1hcnknLFxuICBkaXNjb3VudENsYXNzTmFtZUJ1dHRvbkNvbnRhaW5lciA9ICcnLFxuICBkaXNjb3VudENsYXNzTmFtZUJ1dHRvbkl0ZW1SZW1vdmUgPSAnYnRuIGJ0bi1zbSBidG4tbGluaycsXG4gIGRpc2NvdW50Q2xhc3NOYW1lRXJyb3JNZXNzYWdlID0gJ3RleHQtZGFuZ2VyJyxcbiAgZGlzY291bnRDbGFzc05hbWVJbnB1dCA9ICdmb3JtLWNvbnRyb2wnLFxuICBkaXNjb3VudENsYXNzTmFtZUlucHV0Q29udGFpbmVyID0gJ21lcmNoaS1jaGVja291dC1kaXNjb3VudC1jb2RlLWZpZWxkLWNvbnRhaW5lcicsXG4gIGRpc2NvdW50Q2xhc3NOYW1lSW5wdXRkaXNjb3VudExhYmVsID0gJ3Zpc3VhbGx5LWhpZGRlbicsXG4gIGRpc2NvdW50Q2xhc3NOYW1lTGlzdEl0ZW0gPSAnbGlzdC1ncm91cC1pdGVtIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXQtMicsXG4gIGRpc2NvdW50Q2xhc3NOYW1lTGlzdEl0ZW1zID0gJ2xpc3QtZ3JvdXAnLFxuICBkaXNjb3VudENsYXNzTmFtZU1haW5Db250YWluZXIsXG4gIGRpc2NvdW50TGFiZWwgPSAnRGlzY291bnQgY29kZScsXG4gIGRpc2NvdW50U2hvd0FwcGxpZWRJdGVtcyA9IHRydWUsXG4gIGluY2x1ZGVEb21haW5TaWdudXAgPSBmYWxzZSxcbiAgaW52b2ljZSxcbiAgaXNCdXlSZXF1ZXN0LFxuICBpc09wZW4sXG4gIGlzUHJvZHVjdEVtYmVkRm9ybSA9IGZhbHNlLFxuICBqb2IsXG4gIHByb2R1Y3QsXG4gIG1lc3NhZ2VTdWNjZXNzQnV5UmVxdWVzdCxcbiAgbWVzc2FnZVN1Y2Nlc3NRdW90ZVJlcXVlc3QsXG4gIHJlZGlyZWN0QWZ0ZXJTdWNjZXNzVXJsLFxuICByZWRpcmVjdEFmdGVyUXVvdGVTdWNjZXNzVXJsLFxuICByZWRpcmVjdFdpdGhWYWx1ZSxcbiAgc2V0SW52b2ljZSxcbiAgc2V0Sm9iLFxuICBzaG93RGlzY291bnRDb2RlID0gdHJ1ZSxcbiAgc2hvd1VzZXJUZXJtc0FuZENvbmRpdGlvbnMgPSB0cnVlLFxuICB0b2dnbGVNZXJjaGlDaGVja291dCxcbiAgdXJsQXBpID0gJ2h0dHBzOi8vYXBpLm1lcmNoaS5jby92Ni8nLFxuICB1cmxGcm9udGVuZCA9ICdodHRwczovL21lcmNoaS5jby8nLFxufTogUHJvcHNNZXJjaGlQcm9kdWN0Rm9ybVByb3ZpZGVyKSA9PiB7XG4gIGNvbnN0IFthY3RpdmVUYWJJbmRleCwgc2V0QWN0aXZlVGFiSW5kZXhdID0gdXNlU3RhdGU8bnVtYmVyPigwKTtcbiAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbYWxlcnRzLCBzZXRBbGVydHNdID0gdXNlU3RhdGUoW10pO1xuICBjb25zdCBbZG9tYWluLCBzZXREb21haW5dID0gdXNlU3RhdGUobnVsbCk7XG4gIGNvbnN0IFt0YWJzLCBzZXRUYWJzXSA9IHVzZVN0YXRlKFtdIGFzIGFueVtdKTtcbiAgY29uc3QgbWVyY2hpID0gbmV3IE1lcmNoaSh1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVybEFwaSk7XG4gIGZ1bmN0aW9uIGVkaXREcmFmdFRlbXBsYXRlKGluZGV4OiBudW1iZXIsIGRyYWZ0OiBhbnkpIHtcbiAgICBjb25zdCBqb2JKc29uID0geyAuLi5qb2IgfTtcbiAgICBjb25zdCBkcmFmdFRlbXBsYXRlcyA9IHByb2R1Y3QuZHJhZnRUZW1wbGF0ZXMgfHwgW107XG4gICAgY29uc3QgZHJhZnRUZW1wbGF0ZUZpbGVzID0gZHJhZnRUZW1wbGF0ZXMubWFwKChkOiBhbnkpID0+IGQuZmlsZSk7XG4gICAgY29uc3Qgb3duRHJhZnQgPSAoam9iSnNvbi5vd25EcmFmdHMgJiYgam9iSnNvbi5vd25EcmFmdHNbMF0pIHx8IHtcbiAgICAgIGltYWdlczogZHJhZnRUZW1wbGF0ZUZpbGVzLFxuICAgIH07XG4gICAgaWYgKG93bkRyYWZ0LmltYWdlcykge1xuICAgICAgb3duRHJhZnQuaW1hZ2VzW2luZGV4XSA9IGRyYWZ0O1xuICAgIH0gZWxzZSB7XG4gICAgICBvd25EcmFmdC5pbWFnZXMgPSBbZHJhZnRdO1xuICAgIH1cbiAgICBqb2JKc29uLm93bkRyYWZ0cyA9IFtvd25EcmFmdF07XG4gICAgc2V0Sm9iKGpvYkpzb24pO1xuICB9XG4gIGZ1bmN0aW9uIGFsZXJ0Q2xvc2UoaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IHVwZGF0ZWRBbGVydHMgPSBhbGVydHMuZmlsdGVyKChfLCBpZHgpID0+IGlkeCAhPT0gaW5kZXgpO1xuICAgIHNldEFsZXJ0cyh1cGRhdGVkQWxlcnRzKTtcbiAgfVxuICBmdW5jdGlvbiBhbGVydEVycm9yU2hvdyhtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBuZXdBbGVydHM6IGFueVtdID0gW1xuICAgICAgLi4uYWxlcnRzLFxuICAgICAgeyBhbGVydFR5cGU6ICdlcnJvcicsIG1lc3NhZ2UsIHRpdGxlOiAnRXJyb3IhJyB9LFxuICAgIF07XG4gICAgc2V0QWxlcnRzKG5ld0FsZXJ0cyBhcyBhbnkpO1xuICB9XG4gIGZ1bmN0aW9uIHJlc2V0VGFicygpIHtcbiAgICBjb25zdCBfdGFicyA9IHRhYnNJbml0KHtcbiAgICAgIGpvYixcbiAgICAgIGluY2x1ZGVEb21haW5TaWdudXAsXG4gICAgICBpc0J1eVJlcXVlc3QsXG4gICAgfSk7XG4gICAgc2V0VGFicyhfdGFicyBhcyBbXSk7XG4gIH1cbiAgZnVuY3Rpb24gc2V0Q3VzdG9tZXIoY3VzdG9tZXI6IGFueSkge1xuICAgIHNldEpvYih7IC4uLmpvYiwgY2xpZW50OiBjdXN0b21lciB9KTtcbiAgICByZXNldFRhYnMoKTtcbiAgfVxuICBmdW5jdGlvbiBjbGVhckN1c3RvbWVyKCkge1xuICAgIHNldEN1c3RvbWVyKHt9KTtcbiAgICByZXNldFRhYnMoKTtcbiAgfVxuICBmdW5jdGlvbiBuZXh0VGFiKCkge1xuICAgIGNvbnN0IG5kZXh0SW5kZXggPSBhY3RpdmVUYWJJbmRleCArIDE7XG4gICAgY29uc3QgX3RhYnM6IGFueVtdID0gWy4uLnRhYnNdO1xuICAgIF90YWJzW25kZXh0SW5kZXhdLmRpc2FibGVkID0gZmFsc2U7XG4gICAgc2V0VGFicyhfdGFicyBhcyBbXSk7XG4gICAgc2V0QWN0aXZlVGFiSW5kZXgobmRleHRJbmRleCk7XG4gIH1cbiAgZnVuY3Rpb24gc2V0QWN0aXZlVGFiQnlJZCh0YWJJZDogc3RyaW5nKSB7XG4gICAgY29uc3QgaW5kZXggPSB0YWJzLmZpbmRJbmRleCgodDogTWVyY2hpQ2hlY2tvdXRUYWIpID0+IHQuaWQgPT09IHRhYklkKTtcbiAgICBzZXRBY3RpdmVUYWJJbmRleChpbmRleCk7XG4gIH1cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoam9iLnByb2R1Y3QgJiYgIXRhYnMubGVuZ3RoKSB7XG4gICAgICByZXNldFRhYnMoKTtcbiAgICB9XG4gICAgaWYgKCFqb2IuY2xpZW50KSB7XG4gICAgICBzZXRDdXN0b21lcihjdXJyZW50VXNlciB8fCB7fSk7XG4gICAgfVxuICB9LCBbam9iXSk7XG4gIGZ1bmN0aW9uIGRpc2NvdW50Q2FsbGJhY2tTdWNjZXNzKGl0ZW1zOiBhbnlbXSkge1xuICAgIHNldEpvYih7Li4uam9iLCBpdGVtc30pO1xuICB9XG4gIGZ1bmN0aW9uIGRpc2NvdW50Q2FsbGJhY2tFcnJvcigpIHtcbiAgICBzZXRKb2Ioey4uLmpvYiwgaXRlbXM6IFtdfSk7XG4gIH1cbiAgcmV0dXJuIChcbiAgICA8TWVyY2hpQ2hlY2tvdXRDb250ZXh0LlByb3ZpZGVyXG4gICAgICB2YWx1ZT17XG4gICAgICAgIHtcbiAgICAgICAgICBhY3RpdmVUYWJJbmRleCxcbiAgICAgICAgICBhbGVydHMsXG4gICAgICAgICAgYWxlcnRDbG9zZSxcbiAgICAgICAgICBhbGVydEVycm9yU2hvdyxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0c0NvbnRhaW5lcixcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0LFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QWxlcnRFcnJvcixcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0U3VjY2VzcyxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblByaW1hcnksXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25QcmltYXJ5QmxvY2ssXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25TZWNvbmRhcnksXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25TZWNvbmRhcnlCbG9jayxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvbkRvd25sb2FkSW52b2ljZSxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dENvbmZpcm1JbmZvUGFuZWwsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb290ZXJBY3Rpb25zQ29udGFpbmVyLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUNoZWNrYm94LFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUdyb3VwLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUdyb3VwQ2hlY2tib3gsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtSW5wdXQsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtU2VsZWN0LFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0R29vZ2xlU3VnZ2VzdExpc3QsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRHb29nbGVTdWdnZXN0TGlzdEl0ZW0sXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRMaXN0R3JvdXBJdGVtTG9hZGVyLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUxhYmVsQ2hlY2tib3gsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRJbnB1dEVycm9yLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwSXRlbSxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dFJvdyxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dFJvd0NvbHVtbixcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dFN1YnRpdGxlLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFic0NvbnRhaW5lcixcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYixcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYkJ1dHRvbixcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYlBhbmUsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJQYW5lQ29udGFpbmVyLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUludm9pY2VCdXR0b25QYXlJbnZvaWNlLFxuICAgICAgICAgIGNsZWFyQ3VzdG9tZXIsXG4gICAgICAgICAgY3VycmVudFVzZXIsXG4gICAgICAgICAgY3VzdG9tZXI6IGpvYi5jbGllbnQgfHwge30sXG4gICAgICAgICAgZGlzY291bnRCdXR0b25UZXh0LFxuICAgICAgICAgIGRpc2NvdW50Q2FsbGJhY2tFcnJvcixcbiAgICAgICAgICBkaXNjb3VudENhbGxiYWNrU3VjY2VzcyxcbiAgICAgICAgICBkaXNjb3VudENsYXNzTmFtZSxcbiAgICAgICAgICBkaXNjb3VudENsYXNzTmFtZUJ1dHRvbixcbiAgICAgICAgICBkaXNjb3VudENsYXNzTmFtZUJ1dHRvbkNvbnRhaW5lcixcbiAgICAgICAgICBkaXNjb3VudENsYXNzTmFtZUJ1dHRvbkl0ZW1SZW1vdmUsXG4gICAgICAgICAgZGlzY291bnRDbGFzc05hbWVFcnJvck1lc3NhZ2UsXG4gICAgICAgICAgZGlzY291bnRDbGFzc05hbWVJbnB1dCxcbiAgICAgICAgICBkaXNjb3VudENsYXNzTmFtZUlucHV0Q29udGFpbmVyLFxuICAgICAgICAgIGRpc2NvdW50Q2xhc3NOYW1lSW5wdXRkaXNjb3VudExhYmVsLFxuICAgICAgICAgIGRpc2NvdW50Q2xhc3NOYW1lTGlzdEl0ZW0sXG4gICAgICAgICAgZGlzY291bnRDbGFzc05hbWVMaXN0SXRlbXMsXG4gICAgICAgICAgZGlzY291bnRDbGFzc05hbWVNYWluQ29udGFpbmVyLFxuICAgICAgICAgIGRpc2NvdW50TGFiZWwsXG4gICAgICAgICAgZGlzY291bnRTaG93QXBwbGllZEl0ZW1zLFxuICAgICAgICAgIGRvbWFpbixcbiAgICAgICAgICBlZGl0RHJhZnRUZW1wbGF0ZSxcbiAgICAgICAgICBpbmNsdWRlRG9tYWluU2lnbnVwLFxuICAgICAgICAgIGludm9pY2UsXG4gICAgICAgICAgaXNCdXlSZXF1ZXN0LFxuICAgICAgICAgIGlzT3BlbixcbiAgICAgICAgICBpc1Byb2R1Y3RFbWJlZEZvcm0sXG4gICAgICAgICAgam9iLFxuICAgICAgICAgIGxvYWRpbmcsXG4gICAgICAgICAgbWVyY2hpLFxuICAgICAgICAgIG1lc3NhZ2VTdWNjZXNzQnV5UmVxdWVzdCxcbiAgICAgICAgICBtZXNzYWdlU3VjY2Vzc1F1b3RlUmVxdWVzdCxcbiAgICAgICAgICBuZXh0VGFiLFxuICAgICAgICAgIHByb2R1Y3QsXG4gICAgICAgICAgcmVkaXJlY3RBZnRlclN1Y2Nlc3NVcmwsXG4gICAgICAgICAgcmVkaXJlY3RBZnRlclF1b3RlU3VjY2Vzc1VybCxcbiAgICAgICAgICByZWRpcmVjdFdpdGhWYWx1ZSxcbiAgICAgICAgICBzZXRBY3RpdmVUYWJCeUlkLFxuICAgICAgICAgIHNldEFjdGl2ZVRhYkluZGV4LFxuICAgICAgICAgIHNldEN1c3RvbWVyLFxuICAgICAgICAgIHNldERvbWFpbixcbiAgICAgICAgICBzZXRJbnZvaWNlLFxuICAgICAgICAgIHNldEpvYixcbiAgICAgICAgICBzaG93RGlzY291bnRDb2RlLFxuICAgICAgICAgIHNob3dVc2VyVGVybXNBbmRDb25kaXRpb25zLFxuICAgICAgICAgIHRhYnMsXG4gICAgICAgICAgdG9nZ2xlTWVyY2hpQ2hlY2tvdXQsXG4gICAgICAgICAgdXJsQXBpLFxuICAgICAgICAgIHVybEZyb250ZW5kLFxuICAgICAgICB9IGFzIElNZXJjaGlDaGVja291dFxuICAgICAgfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L01lcmNoaUNoZWNrb3V0Q29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn07XG4iXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7O0FBQUMsU0FBQUEsUUFBQUMsQ0FBQSxzQ0FBQUQsT0FBQSx3QkFBQUUsTUFBQSx1QkFBQUEsTUFBQSxDQUFBQyxRQUFBLGFBQUFGLENBQUEsa0JBQUFBLENBQUEsZ0JBQUFBLENBQUEsV0FBQUEsQ0FBQSx5QkFBQUMsTUFBQSxJQUFBRCxDQUFBLENBQUFHLFdBQUEsS0FBQUYsTUFBQSxJQUFBRCxDQUFBLEtBQUFDLE1BQUEsQ0FBQUcsU0FBQSxxQkFBQUosQ0FBQSxLQUFBRCxPQUFBLENBQUFDLENBQUE7QUFBQSxTQUFBSyxtQkFBQUMsR0FBQSxXQUFBQyxrQkFBQSxDQUFBRCxH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
|
|
543
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdHlwZW9mIiwibyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJhcnIiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiVHlwZUVycm9yIiwiaXRlciIsIkFycmF5IiwiZnJvbSIsImlzQXJyYXkiLCJfYXJyYXlMaWtlVG9BcnJheSIsIl9zbGljZWRUb0FycmF5IiwiaSIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl9ub25JdGVyYWJsZVJlc3QiLCJtaW5MZW4iLCJuIiwiT2JqZWN0IiwidG9TdHJpbmciLCJjYWxsIiwic2xpY2UiLCJuYW1lIiwidGVzdCIsImxlbiIsImxlbmd0aCIsImFycjIiLCJyIiwibCIsInQiLCJlIiwidSIsImEiLCJmIiwibmV4dCIsImRvbmUiLCJwdXNoIiwidmFsdWUiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIm9iaiIsImtleSIsIl90b1Byb3BlcnR5S2V5IiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJ0b1ByaW1pdGl2ZSIsIk51bWJlciIsIlJlYWN0IiwiY3JlYXRlQ29udGV4dCIsInVzZUNvbnRleHQiLCJ1c2VFZmZlY3QiLCJ1c2VMYXlvdXRFZmZlY3QiLCJ1c2VTdGF0ZSIsInRhYnNJbml0IiwidGFiSWRDb25maXJtIiwiTWVyY2hpIiwiYnVpbGRDaGVja291dFNlc3Npb24iLCJjaGVja291dFNlc3Npb25DaGFuZ2VkIiwiZ2V0Q2hlY2tvdXRRdW90ZVNpZ25hdHVyZSIsImdldFNhZmVSZXN0b3JlZFRhYkluZGV4IiwibG9hZENoZWNrb3V0U2Vzc2lvbiIsIm1lcmdlSm9iV2l0aENoZWNrb3V0U2Vzc2lvbiIsInNhdmVDaGVja291dFNlc3Npb24iLCJpc1VzZXJSZWdpc3RlcmVkIiwianN4IiwiX2pzeCIsIk1lcmNoaUNoZWNrb3V0Q29udGV4dCIsImFjdGl2ZVRhYkluZGV4IiwiYWxlcnRzIiwiYWxlcnRDbG9zZSIsImFsZXJ0RXJyb3JTaG93IiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydHNDb250YWluZXIiLCJ1bmRlZmluZWQiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0IiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydEVycm9yIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydFN1Y2Nlc3MiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblByaW1hcnkiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblByaW1hcnlCbG9jayIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5IiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25TZWNvbmRhcnlCbG9jayIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uRG93bmxvYWRJbnZvaWNlIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRDb25maXJtSW5mb1BhbmVsIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb290ZXJBY3Rpb25zQ29udGFpbmVyIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtQ2hlY2tib3giLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1Hcm91cCIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUdyb3VwQ2hlY2tib3giLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1JbnB1dCIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybVNlbGVjdCIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0R29vZ2xlU3VnZ2VzdExpc3QiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEdvb2dsZVN1Z2dlc3RMaXN0SXRlbSIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwSXRlbUxvYWRlciIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUxhYmVsQ2hlY2tib3giLCJjbGFzc05hbWVNZXJjaGlDaGVja291dElucHV0RXJyb3IiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cCIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwSXRlbSIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Um93IiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRSb3dDb2x1bW4iLCJjbGFzc05hbWVNZXJjaGlDaGVja291dFN1YnRpdGxlIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJzQ29udGFpbmVyIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWIiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYlBhbmUiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYlBhbmVDb250YWluZXIiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYkJ1dHRvbiIsImNsYXNzTmFtZU1lcmNoaUludm9pY2VCdXR0b25QYXlJbnZvaWNlIiwiY2xlYXJDdXN0b21lciIsImNhbmNlbENoZWNrb3V0T3JkZXIiLCJjdXJyZW50VXNlciIsImN1c3RvbWVyIiwiZGlzY291bnRCdXR0b25UZXh0IiwiZGlzY291bnRDYWxsYmFja0Vycm9yIiwiZGlzY291bnRDYWxsYmFja1N1Y2Nlc3MiLCJkaXNjb3VudENsYXNzTmFtZSIsImRpc2NvdW50Q2xhc3NOYW1lQnV0dG9uIiwiZGlzY291bnRDbGFzc05hbWVCdXR0b25Db250YWluZXIiLCJkaXNjb3VudENsYXNzTmFtZUJ1dHRvbkl0ZW1SZW1vdmUiLCJkaXNjb3VudENsYXNzTmFtZUVycm9yTWVzc2FnZSIsImRpc2NvdW50Q2xhc3NOYW1lSW5wdXQiLCJkaXNjb3VudENsYXNzTmFtZUlucHV0Q29udGFpbmVyIiwiZGlzY291bnRDbGFzc05hbWVJbnB1dGRpc2NvdW50TGFiZWwiLCJkaXNjb3VudENsYXNzTmFtZUxpc3RJdGVtIiwiZGlzY291bnRDbGFzc05hbWVMaXN0SXRlbXMiLCJkaXNjb3VudENsYXNzTmFtZU1haW5Db250YWluZXIiLCJkaXNjb3VudExhYmVsIiwiZGlzY291bnRTaG93QXBwbGllZEl0ZW1zIiwiZG9tYWluIiwiZWRpdERyYWZ0VGVtcGxhdGUiLCJpc0J1eVJlcXVlc3QiLCJpc09wZW4iLCJsb2FkaW5nIiwibWVyY2hpIiwibWVzc2FnZVN1Y2Nlc3NCdXlSZXF1ZXN0IiwibWVzc2FnZVN1Y2Nlc3NRdW90ZVJlcXVlc3QiLCJuZXh0VGFiIiwiaW5jbHVkZURvbWFpblNpZ251cCIsImludm9pY2UiLCJpc1Byb2R1Y3RFbWJlZEZvcm0iLCJqb2IiLCJwcm9kdWN0IiwicmVkaXJlY3RBZnRlclN1Y2Nlc3NVcmwiLCJyZWRpcmVjdEFmdGVyUXVvdGVTdWNjZXNzVXJsIiwicmVkaXJlY3RXaXRoVmFsdWUiLCJzZXRBY3RpdmVUYWJCeUlkIiwic2V0QWN0aXZlVGFiSW5kZXgiLCJzZXRDdXN0b21lciIsInNldERvbWFpbiIsInNldEludm9pY2UiLCJzZXRKb2IiLCJzaG93RGlzY291bnRDb2RlIiwic2hvd1VzZXJUZXJtc0FuZENvbmRpdGlvbnMiLCJ0YWJzIiwidG9nZ2xlTWVyY2hpQ2hlY2tvdXQiLCJ1cmxGcm9udGVuZCIsInVybEFwaSIsInVzZU1lcmNoaUNoZWNrYm91dENvbnRleHQiLCJidWlsZFRhYnNTdGF0ZSIsImpvYkZvclRhYnMiLCJfcmVmIiwiX3JlZiR0YWJJbmRleCIsInRhYkluZGV4IiwiYmFzZVRhYnMiLCJzYWZlSW5kZXgiLCJNYXRoIiwibWF4IiwibWluIiwidGFic1dpdGhQcm9ncmVzcyIsIm1hcCIsInRhYiIsImRpc2FibGVkIiwiZ2V0SW5pdGlhbFRhYnNTdGF0ZSIsIl9zZXNzaW9uJGFjdGl2ZVRhYkluZCIsImlkIiwic2Vzc2lvbiIsIm1lcmdlZEpvYiIsInJlc3RvcmVkSW52b2ljZSIsIk1lcmNoaUNoZWNrb3V0UHJvdmlkZXIiLCJfcmVmMiIsImNoaWxkcmVuIiwiX3JlZjIkY2xhc3NOYW1lTWVyY2hpIiwiX3JlZjIkY2xhc3NOYW1lTWVyY2hpMiIsIl9yZWYyJGNsYXNzTmFtZU1lcmNoaTMiLCJfcmVmMiRjbGFzc05hbWVNZXJjaGk0IiwiX3JlZjIkY2xhc3NOYW1lTWVyY2hpNSIsIl9yZWYyJGNsYXNzTmFtZU1lcmNoaTYiLCJfcmVmMiRjbGFzc05hbWVNZXJjaGk3IiwiX3JlZjIkY2xhc3NOYW1lTWVyY2hpOCIsIl9yZWYyJGNsYXNzTmFtZU1lcmNoaTkiLCJfcmVmMiRjbGFzc05hbWVNZXJjaGkxMCIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uQ2FuY2VsT3JkZXIiLCJfcmVmMiRjbGFzc05hbWVNZXJjaGkxMSIsIl9yZWYyJGNsYXNzTmFtZU1lcmNoaTEyIiwiX3JlZjIkY2xhc3NOYW1lTWVyY2hpMTMiLCJfcmVmMiRjbGFzc05hbWVNZXJjaGkxNCIsIl9yZWYyJGNsYXNzTmFtZU1lcmNoaTE1IiwiX3JlZjIkY2xhc3NOYW1lTWVyY2hpMTYiLCJfcmVmMiRjbGFzc05hbWVNZXJjaGkxNyIsIl9yZWYyJGNsYXNzTmFtZU1lcmNoaTE4IiwiX3JlZjIkY2xhc3NOYW1lTWVyY2hpMTkiLCJfcmVmMiRjbGFzc05hbWVNZXJjaGkyMCIsIl9yZWYyJGNsYXNzTmFtZU1lcmNoaTIxIiwiX3JlZjIkY2xhc3NOYW1lTWVyY2hpMjIiLCJfcmVmMiRjbGFzc05hbWVNZXJjaGkyMyIsIl9yZWYyJGNsYXNzTmFtZU1lcmNoaTI0IiwiX3JlZjIkY2xhc3NOYW1lTWVyY2hpMjUiLCJfcmVmMiRjbGFzc05hbWVNZXJjaGkyNiIsIl9yZWYyJGNsYXNzTmFtZU1lcmNoaTI3IiwiX3JlZjIkY2xhc3NOYW1lTWVyY2hpMjgiLCJfcmVmMiRjbGFzc05hbWVNZXJjaGkyOSIsIl9yZWYyJGNsYXNzTmFtZU1lcmNoaTMwIiwiX3JlZjIkY2xhc3NOYW1lTWVyY2hpMzEiLCJfcmVmMiRjbGFzc05hbWVNZXJjaGkzMiIsIl9yZWYyJGNsYXNzTmFtZU1lcmNoaTMzIiwiX3JlZjIkZGlzY291bnRCdXR0b25UIiwiX3JlZjIkZGlzY291bnRDbGFzc05hIiwiX3JlZjIkZGlzY291bnRDbGFzc05hMiIsIl9yZWYyJGRpc2NvdW50Q2xhc3NOYTMiLCJfcmVmMiRkaXNjb3VudENsYXNzTmE0IiwiX3JlZjIkZGlzY291bnRDbGFzc05hNSIsIl9yZWYyJGRpc2NvdW50Q2xhc3NOYTYiLCJfcmVmMiRkaXNjb3VudENsYXNzTmE3IiwiX3JlZjIkZGlzY291bnRDbGFzc05hOCIsIl9yZWYyJGRpc2NvdW50Q2xhc3NOYTkiLCJfcmVmMiRkaXNjb3VudENsYXNzTmExMCIsIl9yZWYyJGRpc2NvdW50TGFiZWwiLCJfcmVmMiRkaXNjb3VudFNob3dBcHAiLCJfcmVmMiRpbmNsdWRlRG9tYWluU2kiLCJfcmVmMiRpc1Byb2R1Y3RFbWJlZEYiLCJfcmVmMiRzaG93RGlzY291bnRDb2QiLCJfcmVmMiRzaG93VXNlclRlcm1zQW4iLCJfcmVmMiR1cmxBcGkiLCJfcmVmMiR1cmxGcm9udGVuZCIsImluaXRpYWxUYWJzU3RhdGUiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJzZXRMb2FkaW5nIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJzZXRBbGVydHMiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUxMCIsInNldFRhYnMiLCJpbmRleCIsImRyYWZ0Iiwiam9iSnNvbiIsImRyYWZ0VGVtcGxhdGVzIiwiZHJhZnRUZW1wbGF0ZUZpbGVzIiwiZCIsImZpbGUiLCJvd25EcmFmdCIsIm93bkRyYWZ0cyIsImltYWdlcyIsInVwZGF0ZWRBbGVydHMiLCJfIiwiaWR4IiwibWVzc2FnZSIsIm5ld0FsZXJ0cyIsImNvbmNhdCIsImFsZXJ0VHlwZSIsInRpdGxlIiwiaW5pdFRhYnNGcm9tSm9iIiwiX2J1aWxkVGFic1N0YXRlIiwibmV4dFRhYnMiLCJuZXh0SW5kZXgiLCJyZXNldFRhYnMiLCJ1cGRhdGVkSm9iIiwiY2xpZW50IiwiY29uZmlybUluZGV4IiwiZmluZEluZGV4IiwibmRleHRJbmRleCIsIl90YWJzIiwidGFiSWQiLCJxdW90ZVNpZ25hdHVyZSIsInF1b3RlU2lnbmF0dXJlUmVmIiwidXNlUmVmIiwicXVvdGVDaGFuZ2VkIiwiY3VycmVudCIsIl9zZXNzaW9uJGFjdGl2ZVRhYkluZDIiLCJyZXN0b3JlZEluZGV4IiwiX3Nlc3Npb24kaW52b2ljZSIsImNoZWNrb3V0T3BlbiIsInNoaXBwaW5nIiwiYmlsbGluZyIsInNoaXBtZW50IiwiaXRlbXMiLCJQcm92aWRlciIsImNsYXNzTmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL01lcmNoaUNoZWNrb3V0UHJvdmlkZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7XG4gIGNyZWF0ZUNvbnRleHQsXG4gIFJlYWN0Tm9kZSxcbiAgdXNlQ29udGV4dCxcbiAgdXNlRWZmZWN0LFxuICB1c2VMYXlvdXRFZmZlY3QsXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBNZXJjaGlDaGVja291dFRhYiB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IHRhYnNJbml0LCB0YWJJZENvbmZpcm0gfSBmcm9tICcuLi90YWJzX3V0aWxzJztcbmltcG9ydCB7IE1lcmNoaSB9IGZyb20gJ21lcmNoaV9zZGtfdHMnO1xuaW1wb3J0IHtcbiAgYnVpbGRDaGVja291dFNlc3Npb24sXG4gIGNoZWNrb3V0U2Vzc2lvbkNoYW5nZWQsXG4gIGdldENoZWNrb3V0UXVvdGVTaWduYXR1cmUsXG4gIGdldFNhZmVSZXN0b3JlZFRhYkluZGV4LFxuICBsb2FkQ2hlY2tvdXRTZXNzaW9uLFxuICBtZXJnZUpvYldpdGhDaGVja291dFNlc3Npb24sXG4gIHNhdmVDaGVja291dFNlc3Npb24sXG59IGZyb20gJy4uL2NoZWNrb3V0U2Vzc2lvbic7XG5pbXBvcnQgeyBpc1VzZXJSZWdpc3RlcmVkIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5pbnRlcmZhY2UgSU1lcmNoaUNoZWNrb3V0IHtcbiAgYWN0aXZlVGFiSW5kZXg6IG51bWJlcjtcbiAgYWxlcnRzOiBhbnlbXTtcbiAgYWxlcnRDbG9zZTogKGluZGV4OiBudW1iZXIpID0+IHZvaWQ7XG4gIGFsZXJ0RXJyb3JTaG93OiAobWVzc2FnZTogc3RyaW5nKSA9PiB2b2lkO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0c0NvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydD86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydEVycm9yPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0U3VjY2Vzcz86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25QcmltYXJ5Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblByaW1hcnlCbG9jaz86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25TZWNvbmRhcnk/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5QmxvY2s/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uRG93bmxvYWRJbnZvaWNlPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvbkNhbmNlbE9yZGVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dENvbmZpcm1JbmZvUGFuZWw/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9vdGVyQWN0aW9uc0NvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtQ2hlY2tib3g/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUdyb3VwPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1Hcm91cENoZWNrYm94Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1JbnB1dD86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtU2VsZWN0Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEdvb2dsZVN1Z2dlc3RMaXN0Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEdvb2dsZVN1Z2dlc3RMaXN0SXRlbT86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRMaXN0R3JvdXBJdGVtTG9hZGVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1MYWJlbENoZWNrYm94Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dElucHV0RXJyb3I/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cEl0ZW0/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Um93Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFJvd0NvbHVtbj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRTdWJ0aXRsZT86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJzQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJQYW5lPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYlBhbmVDb250YWluZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiQnV0dG9uPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlJbnZvaWNlQnV0dG9uUGF5SW52b2ljZT86IHN0cmluZztcbiAgY2xlYXJDdXN0b21lcjogKCkgPT4gdm9pZDtcbiAgY2FuY2VsQ2hlY2tvdXRPcmRlcjogKCkgPT4gdm9pZDtcbiAgY3VycmVudFVzZXI/OiBhbnk7XG4gIGN1c3RvbWVyPzogYW55O1xuICBkaXNjb3VudEJ1dHRvblRleHQ/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2FsbGJhY2tFcnJvcjogKCkgPT4gdm9pZDtcbiAgZGlzY291bnRDYWxsYmFja1N1Y2Nlc3M6IChpdGVtczogYW55W10pID0+IHZvaWQ7XG4gIGRpc2NvdW50Q2xhc3NOYW1lPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZU1haW5Db250YWluZXI/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lQnV0dG9uSXRlbVJlbW92ZT86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVCdXR0b24/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lQnV0dG9uQ29udGFpbmVyPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVJbnB1dD86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVMaXN0SXRlbT86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVMaXN0SXRlbXM/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lSW5wdXRDb250YWluZXI/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lSW5wdXRkaXNjb3VudExhYmVsPzogc3RyaW5nO1xuICBkaXNjb3VudExhYmVsPzogc3RyaW5nO1xuICBkaXNjb3VudFNob3dBcHBsaWVkSXRlbXM/OiBib29sZWFuO1xuICBkb21haW4/OiBhbnk7XG4gIGVkaXREcmFmdFRlbXBsYXRlOiAoaW5kZXg6IG51bWJlciwgZHJhZnQ6IGFueSkgPT4gdm9pZDtcbiAgaW5jbHVkZURvbWFpblNpZ251cD86IGJvb2xlYW47XG4gIGludm9pY2U6IGFueTtcbiAgaXNCdXlSZXF1ZXN0PzogYm9vbGVhbjtcbiAgaXNPcGVuPzogYm9vbGVhbjtcbiAgaXNQcm9kdWN0RW1iZWRGb3JtPzogYm9vbGVhbjtcbiAgam9iOiBhbnk7XG4gIGxvYWRpbmc6IGJvb2xlYW47XG4gIG1lcmNoaTogTWVyY2hpO1xuICBtZXNzYWdlU3VjY2Vzc0J1eVJlcXVlc3Q/OiBzdHJpbmc7XG4gIG1lc3NhZ2VTdWNjZXNzUXVvdGVSZXF1ZXN0Pzogc3RyaW5nO1xuICBuZXh0VGFiOiAoKSA9PiB2b2lkO1xuICBwcm9kdWN0OiBhbnk7XG4gIHJlZGlyZWN0QWZ0ZXJTdWNjZXNzVXJsPzogc3RyaW5nO1xuICByZWRpcmVjdEFmdGVyUXVvdGVTdWNjZXNzVXJsPzogc3RyaW5nO1xuICByZWRpcmVjdFdpdGhWYWx1ZT86IGJvb2xlYW47XG4gIHNldEFjdGl2ZVRhYkJ5SWQ6IChpZDogc3RyaW5nKSA9PiB2b2lkO1xuICBzZXRBY3RpdmVUYWJJbmRleDogKGluZGV4OiBudW1iZXIpID0+IHZvaWQ7XG4gIHNldEN1c3RvbWVyOiAoY3VzdG9tZXI6IGFueSkgPT4gdm9pZDtcbiAgc2V0RG9tYWluOiAoZG9tYWluOiBhbnkpID0+IHZvaWQ7XG4gIHNldEludm9pY2U6IChpbnZvaWNlOiBhbnkpID0+IHZvaWQ7XG4gIHNldEpvYjogKGpvYjogYW55KSA9PiB2b2lkO1xuICBzaG93RGlzY291bnRDb2RlPzogYm9vbGVhbjtcbiAgc2hvd1VzZXJUZXJtc0FuZENvbmRpdGlvbnM/OiBib29sZWFuO1xuICB0YWJzOiBNZXJjaGlDaGVja291dFRhYltdO1xuICB0b2dnbGVNZXJjaGlDaGVja291dDogKCkgPT4gdm9pZDtcbiAgdXJsRnJvbnRlbmQ6IHN0cmluZztcbiAgdXJsQXBpOiBzdHJpbmc7XG59XG5cbmNvbnN0IE1lcmNoaUNoZWNrb3V0Q29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8SU1lcmNoaUNoZWNrb3V0Pih7XG4gIGFjdGl2ZVRhYkluZGV4OiAwLFxuICBhbGVydHM6IFtdLFxuICBhbGVydENsb3NlKCkgeyB9LFxuICBhbGVydEVycm9yU2hvdygpIHsgfSxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydHNDb250YWluZXI6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0RXJyb3I6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydFN1Y2Nlc3M6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25QcmltYXJ5OiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uUHJpbWFyeUJsb2NrOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5OiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5QmxvY2s6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25Eb3dubG9hZEludm9pY2U6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRDb25maXJtSW5mb1BhbmVsOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9vdGVyQWN0aW9uc0NvbnRhaW5lcjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1DaGVja2JveDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1Hcm91cDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1Hcm91cENoZWNrYm94OiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUlucHV0OiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybVNlbGVjdDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEdvb2dsZVN1Z2dlc3RMaXN0OiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0R29vZ2xlU3VnZ2VzdExpc3RJdGVtOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwSXRlbUxvYWRlcjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1MYWJlbENoZWNrYm94OiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0SW5wdXRFcnJvcjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cEl0ZW06IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRSb3c6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRSb3dDb2x1bW46IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRTdWJ0aXRsZTogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYnNDb250YWluZXI6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWI6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJQYW5lOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiUGFuZUNvbnRhaW5lcjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYkJ1dHRvbjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlJbnZvaWNlQnV0dG9uUGF5SW52b2ljZTogdW5kZWZpbmVkLFxuICBjbGVhckN1c3RvbWVyKCkgeyB9LFxuICBjYW5jZWxDaGVja291dE9yZGVyKCkgeyB9LFxuICBjdXJyZW50VXNlcjogdW5kZWZpbmVkLFxuICBjdXN0b21lcjogdW5kZWZpbmVkLFxuICBkaXNjb3VudEJ1dHRvblRleHQ6IHVuZGVmaW5lZCxcbiAgZGlzY291bnRDYWxsYmFja0Vycm9yKCkgeyB9LFxuICBkaXNjb3VudENhbGxiYWNrU3VjY2VzcygpIHsgfSxcbiAgZGlzY291bnRDbGFzc05hbWU6IHVuZGVmaW5lZCxcbiAgZGlzY291bnRDbGFzc05hbWVCdXR0b246IHVuZGVmaW5lZCxcbiAgZGlzY291bnRDbGFzc05hbWVCdXR0b25Db250YWluZXI6IHVuZGVmaW5lZCxcbiAgZGlzY291bnRDbGFzc05hbWVCdXR0b25JdGVtUmVtb3ZlOiB1bmRlZmluZWQsXG4gIGRpc2NvdW50Q2xhc3NOYW1lRXJyb3JNZXNzYWdlOiB1bmRlZmluZWQsXG4gIGRpc2NvdW50Q2xhc3NOYW1lSW5wdXQ6IHVuZGVmaW5lZCxcbiAgZGlzY291bnRDbGFzc05hbWVJbnB1dENvbnRhaW5lcjogdW5kZWZpbmVkLFxuICBkaXNjb3VudENsYXNzTmFtZUlucHV0ZGlzY291bnRMYWJlbDogdW5kZWZpbmVkLFxuICBkaXNjb3VudENsYXNzTmFtZUxpc3RJdGVtOiB1bmRlZmluZWQsXG4gIGRpc2NvdW50Q2xhc3NOYW1lTGlzdEl0ZW1zOiB1bmRlZmluZWQsXG4gIGRpc2NvdW50Q2xhc3NOYW1lTWFpbkNvbnRhaW5lcjogdW5kZWZpbmVkLFxuICBkaXNjb3VudExhYmVsOiB1bmRlZmluZWQsXG4gIGRpc2NvdW50U2hvd0FwcGxpZWRJdGVtczogdHJ1ZSxcbiAgZG9tYWluOiB1bmRlZmluZWQsXG4gIGVkaXREcmFmdFRlbXBsYXRlKCkgeyB9LFxuICBpc0J1eVJlcXVlc3Q6IGZhbHNlLFxuICBpc09wZW46IGZhbHNlLFxuICBsb2FkaW5nOiBmYWxzZSxcbiAgbWVyY2hpOiB1bmRlZmluZWQsXG4gIG1lc3NhZ2VTdWNjZXNzQnV5UmVxdWVzdDogdW5kZWZpbmVkLFxuICBtZXNzYWdlU3VjY2Vzc1F1b3RlUmVxdWVzdDogdW5kZWZpbmVkLFxuICBuZXh0VGFiKCkgeyB9LFxuICBpbmNsdWRlRG9tYWluU2lnbnVwOiBmYWxzZSxcbiAgaW52b2ljZToge30sXG4gIGlzUHJvZHVjdEVtYmVkRm9ybTogZmFsc2UsXG4gIGpvYjoge30sXG4gIHByb2R1Y3Q6IHt9LFxuICByZWRpcmVjdEFmdGVyU3VjY2Vzc1VybDogdW5kZWZpbmVkLFxuICByZWRpcmVjdEFmdGVyUXVvdGVTdWNjZXNzVXJsOiB1bmRlZmluZWQsXG4gIHJlZGlyZWN0V2l0aFZhbHVlOiB0cnVlLFxuICBzZXRBY3RpdmVUYWJCeUlkKCkgeyB9LFxuICBzZXRBY3RpdmVUYWJJbmRleCgpIHsgfSxcbiAgc2V0Q3VzdG9tZXIoKSB7IH0sXG4gIHNldERvbWFpbigpIHsgfSxcbiAgc2V0SW52b2ljZSgpIHsgfSxcbiAgc2V0Sm9iKCkgeyB9LFxuICBzaG93RGlzY291bnRDb2RlOiB0cnVlLFxuICBzaG93VXNlclRlcm1zQW5kQ29uZGl0aW9uczogdHJ1ZSxcbiAgdGFiczogW10sXG4gIHRvZ2dsZU1lcmNoaUNoZWNrb3V0KCkgeyB9LFxuICB1cmxGcm9udGVuZDogJycsXG4gIHVybEFwaTogJycsXG59KTtcblxuZXhwb3J0IGNvbnN0IHVzZU1lcmNoaUNoZWNrYm91dENvbnRleHQgPSAoKSA9PlxuICB1c2VDb250ZXh0KE1lcmNoaUNoZWNrb3V0Q29udGV4dCk7XG5cbmludGVyZmFjZSBQcm9wc01lcmNoaVByb2R1Y3RGb3JtUHJvdmlkZXIge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0c0NvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydD86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydEVycm9yPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0U3VjY2Vzcz86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25QcmltYXJ5Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblByaW1hcnlCbG9jaz86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25TZWNvbmRhcnk/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5QmxvY2s/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uRG93bmxvYWRJbnZvaWNlPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvbkNhbmNlbE9yZGVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dENvbmZpcm1JbmZvUGFuZWw/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9vdGVyQWN0aW9uc0NvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtQ2hlY2tib3g/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUdyb3VwPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1Hcm91cENoZWNrYm94Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1JbnB1dD86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtU2VsZWN0Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEdvb2dsZVN1Z2dlc3RMaXN0Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEdvb2dsZVN1Z2dlc3RMaXN0SXRlbT86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRMaXN0R3JvdXBJdGVtTG9hZGVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dElucHV0RXJyb3I/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cEl0ZW0/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Um93Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFJvd0NvbHVtbj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRTdWJ0aXRsZT86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJzQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1MYWJlbENoZWNrYm94Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJCdXR0b24/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiUGFuZT86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJQYW5lQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlJbnZvaWNlQnV0dG9uUGF5SW52b2ljZT86IHN0cmluZztcbiAgY3VycmVudFVzZXI/OiBhbnk7XG4gIGRpc2NvdW50QnV0dG9uVGV4dD86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWU/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lTWFpbkNvbnRhaW5lcj86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVCdXR0b25JdGVtUmVtb3ZlPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUJ1dHRvbj86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVCdXR0b25Db250YWluZXI/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUlucHV0Pzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUxpc3RJdGVtPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUxpc3RJdGVtcz86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVJbnB1dENvbnRhaW5lcj86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVJbnB1dGRpc2NvdW50TGFiZWw/OiBzdHJpbmc7XG4gIGRpc2NvdW50TGFiZWw/OiBzdHJpbmc7XG4gIGRpc2NvdW50U2hvd0FwcGxpZWRJdGVtcz86IGJvb2xlYW47XG4gIGluY2x1ZGVEb21haW5TaWdudXA/OiBib29sZWFuO1xuICBpc0J1eVJlcXVlc3Q/OiBib29sZWFuO1xuICBpc09wZW46IGJvb2xlYW47XG4gIGlzUHJvZHVjdEVtYmVkRm9ybT86IGJvb2xlYW47XG4gIG1lc3NhZ2VTdWNjZXNzQnV5UmVxdWVzdD86IHN0cmluZztcbiAgbWVzc2FnZVN1Y2Nlc3NRdW90ZVJlcXVlc3Q/OiBzdHJpbmc7XG4gIHNob3dEaXNjb3VudENvZGU/OiBib29sZWFuO1xuICBzaG93VXNlclRlcm1zQW5kQ29uZGl0aW9ucz86IGJvb2xlYW47XG4gIGludm9pY2U6IGFueTtcbiAgam9iOiBhbnk7XG4gIHByb2R1Y3Q6IGFueTtcbiAgcmVkaXJlY3RBZnRlclN1Y2Nlc3NVcmw/OiBzdHJpbmc7XG4gIHJlZGlyZWN0QWZ0ZXJRdW90ZVN1Y2Nlc3NVcmw/OiBzdHJpbmc7XG4gIHJlZGlyZWN0V2l0aFZhbHVlPzogYm9vbGVhbjtcbiAgc2V0SW52b2ljZTogKGludm9pY2U6IGFueSkgPT4gdm9pZDtcbiAgc2V0Sm9iOiAoam9iOiBhbnkpID0+IHZvaWQ7XG4gIHRvZ2dsZU1lcmNoaUNoZWNrb3V0OiAoKSA9PiB2b2lkO1xuICB1cmxBcGk/OiBzdHJpbmc7XG4gIHVybEZyb250ZW5kPzogc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBidWlsZFRhYnNTdGF0ZShcbiAgam9iRm9yVGFiczogYW55LFxuICB7XG4gICAgaW5jbHVkZURvbWFpblNpZ251cCxcbiAgICBpc0J1eVJlcXVlc3QsXG4gICAgdGFiSW5kZXggPSAwLFxuICB9OiB7XG4gICAgaW5jbHVkZURvbWFpblNpZ251cD86IGJvb2xlYW47XG4gICAgaXNCdXlSZXF1ZXN0PzogYm9vbGVhbjtcbiAgICB0YWJJbmRleD86IG51bWJlcjtcbiAgfVxuKTogeyB0YWJzOiBNZXJjaGlDaGVja291dFRhYltdOyBhY3RpdmVUYWJJbmRleDogbnVtYmVyIH0ge1xuICBpZiAoIWpvYkZvclRhYnM/LnByb2R1Y3QpIHtcbiAgICByZXR1cm4geyB0YWJzOiBbXSwgYWN0aXZlVGFiSW5kZXg6IDAgfTtcbiAgfVxuXG4gIGNvbnN0IGJhc2VUYWJzID0gdGFic0luaXQoe1xuICAgIGpvYjogam9iRm9yVGFicyxcbiAgICBpbmNsdWRlRG9tYWluU2lnbnVwLFxuICAgIGlzQnV5UmVxdWVzdCxcbiAgfSk7XG5cbiAgaWYgKCFiYXNlVGFicy5sZW5ndGgpIHtcbiAgICByZXR1cm4geyB0YWJzOiBbXSwgYWN0aXZlVGFiSW5kZXg6IDAgfTtcbiAgfVxuXG4gIGNvbnN0IHNhZmVJbmRleCA9IE1hdGgubWF4KDAsIE1hdGgubWluKHRhYkluZGV4LCBiYXNlVGFicy5sZW5ndGggLSAxKSk7XG4gIGNvbnN0IHRhYnNXaXRoUHJvZ3Jlc3MgPSBiYXNlVGFicy5tYXAoKHRhYiwgaSkgPT4gKHtcbiAgICAuLi50YWIsXG4gICAgZGlzYWJsZWQ6IGkgPiBzYWZlSW5kZXgsXG4gIH0pKTtcblxuICByZXR1cm4geyB0YWJzOiB0YWJzV2l0aFByb2dyZXNzLCBhY3RpdmVUYWJJbmRleDogc2FmZUluZGV4IH07XG59XG5cbmZ1bmN0aW9uIGdldEluaXRpYWxUYWJzU3RhdGUoXG4gIGpvYjogYW55LFxuICBwcm9kdWN0OiBhbnksXG4gIGluY2x1ZGVEb21haW5TaWdudXA/OiBib29sZWFuLFxuICBpc0J1eVJlcXVlc3Q/OiBib29sZWFuLFxuICBpbnZvaWNlPzogYW55XG4pIHtcbiAgaWYgKCFwcm9kdWN0Py5pZCkge1xuICAgIHJldHVybiB7IHRhYnM6IFtdIGFzIE1lcmNoaUNoZWNrb3V0VGFiW10sIGFjdGl2ZVRhYkluZGV4OiAwIH07XG4gIH1cblxuICBjb25zdCBzZXNzaW9uID0gbG9hZENoZWNrb3V0U2Vzc2lvbihwcm9kdWN0KTtcbiAgY29uc3QgbWVyZ2VkSm9iID0gbWVyZ2VKb2JXaXRoQ2hlY2tvdXRTZXNzaW9uKGpvYiwgc2Vzc2lvbik7XG4gIGNvbnN0IHJlc3RvcmVkSW52b2ljZSA9IGludm9pY2U/LmlkID8gaW52b2ljZSA6IHNlc3Npb24/Lmludm9pY2U7XG4gIGNvbnN0IHRhYkluZGV4ID0gZ2V0U2FmZVJlc3RvcmVkVGFiSW5kZXgoXG4gICAgbWVyZ2VkSm9iLFxuICAgIHsgaW5jbHVkZURvbWFpblNpZ251cCwgaXNCdXlSZXF1ZXN0IH0sXG4gICAgc2Vzc2lvbj8uYWN0aXZlVGFiSW5kZXggPz8gMCxcbiAgICByZXN0b3JlZEludm9pY2VcbiAgKTtcblxuICByZXR1cm4gYnVpbGRUYWJzU3RhdGUobWVyZ2VkSm9iLCB7XG4gICAgaW5jbHVkZURvbWFpblNpZ251cCxcbiAgICBpc0J1eVJlcXVlc3QsXG4gICAgdGFiSW5kZXgsXG4gIH0pO1xufVxuXG5leHBvcnQgY29uc3QgTWVyY2hpQ2hlY2tvdXRQcm92aWRlciA9ICh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0c0NvbnRhaW5lciA9ICdkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBmbGV4LWNvbHVtbiBhbGVydHMtY29udGFpbmVyLXNtJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydCA9ICdhbGVydCBhbGVydC1kaXNtaXNzaWJsZSBhbGVydC1ub3RpZnknLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0RXJyb3IgPSAnYWxlcnQtZGFuZ2VyJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydFN1Y2Nlc3MgPSAnYWxlcnQtc3VjY2VzcycsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uUHJpbWFyeSA9ICdidG4gYnRuLWxtZCBidG4tcHJpbWFyeSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXInLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblByaW1hcnlCbG9jayA9ICdidG4gYnRuLWxnIGJ0bi1wcmltYXJ5IGJ0bi1ibG9jaycsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5ID0gJ2J0biBidG4tbGcgYnRuLXNlY29uZGFyeScsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5QmxvY2sgPSAnYnRuIGJ0bi1sZyBidG4tc2Vjb25kYXJ5IGJ0bi1ibG9jaycsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uRG93bmxvYWRJbnZvaWNlID0gJ2J0biBidG4tbGcgYnRuLXByaW1hcnknLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvbkNhbmNlbE9yZGVyID0gJ2J0biBidG4tbGcgYnRuLXNlY29uZGFyeScsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Q29uZmlybUluZm9QYW5lbCA9ICdkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb290ZXJBY3Rpb25zQ29udGFpbmVyID0gJ2QtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC00JyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtQ2hlY2tib3ggPSAnZm9ybS1jaGVjay1pbnB1dCcsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUdyb3VwID0gJ2Zvcm0tZ3JvdXAnLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1Hcm91cENoZWNrYm94ID0gJ2Zvcm0tY2hlY2snLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1JbnB1dCA9ICdmb3JtLWNvbnRyb2wnLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1TZWxlY3QgPSAnZm9ybS1jb250cm9sJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRHb29nbGVTdWdnZXN0TGlzdCA9ICdtZXJjaGktY2hlY2tvdXQtZ29vZ2xlLXN1Z2dlc3QtbGlzdCcsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0R29vZ2xlU3VnZ2VzdExpc3RJdGVtID0gJ21lcmNoaS1jaGVja291dC1nb29nbGUtc3VnZ2VzdC1saXN0LWl0ZW0nLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cEl0ZW1Mb2FkZXIgPSAnbGlzdC1ncm91cC1pdGVtIG1vZGFsLW1lcmNoaS1jaGVja291dC1zaGlwbWVudC1vcHRpb24nLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dElucHV0RXJyb3IgPSAndGV4dC1kYW5nZXInLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1MYWJlbENoZWNrYm94ID0gJycsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwID0gJ21vZGFsLW1lcmNoaS1jaGVja291dC1zaGlwbWVudC1vcHRpb24nLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cEl0ZW0gPSAnbGlzdC1ncm91cC1pdGVtIG1vZGFsLW1lcmNoaS1jaGVja291dC1zaGlwbWVudC1vcHRpb24nLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFJvdyA9ICdtZXJjaGktcm93JyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRSb3dDb2x1bW4gPSAnbWVyY2hpLWNvbHVtbicsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0U3VidGl0bGUgPSAnbWVyY2hpLWNoZWNrb3V0LXN1YnRpdGxlJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJzQ29udGFpbmVyID0gJ21lcmNoaS1jaGVja291dC10YWJzLWNvbnRhaW5lcicsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiID0gJ21lcmNoaS1jaGVja291dC10YWInLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYkJ1dHRvbiA9ICdidG4gbWVyY2hpLWNoZWNrb3V0LXRhYi1idG4nLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYlBhbmUgPSAndGFiLXBhbmUnLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYlBhbmVDb250YWluZXIgPSAndGFiLWNvbnRlbnQnLFxuICBjbGFzc05hbWVNZXJjaGlJbnZvaWNlQnV0dG9uUGF5SW52b2ljZSA9ICdidG4gYnRuLWxnIGJ0bi1wcmltYXJ5IGJ0bi1ibG9jaycsXG4gIGN1cnJlbnRVc2VyLFxuICBkaXNjb3VudEJ1dHRvblRleHQgPSAnQXBwbHknLFxuICBkaXNjb3VudENsYXNzTmFtZSA9ICdtZXJjaGktY2hlY2tvdXQtZGlzY291bnQtY29kZS1jb250YWluZXInLFxuICBkaXNjb3VudENsYXNzTmFtZUJ1dHRvbiA9ICdidG4gYnRuLXByaW1hcnknLFxuICBkaXNjb3VudENsYXNzTmFtZUJ1dHRvbkNvbnRhaW5lciA9ICcnLFxuICBkaXNjb3VudENsYXNzTmFtZUJ1dHRvbkl0ZW1SZW1vdmUgPSAnYnRuIGJ0bi1zbSBidG4tbGluaycsXG4gIGRpc2NvdW50Q2xhc3NOYW1lRXJyb3JNZXNzYWdlID0gJ3RleHQtZGFuZ2VyJyxcbiAgZGlzY291bnRDbGFzc05hbWVJbnB1dCA9ICdmb3JtLWNvbnRyb2wnLFxuICBkaXNjb3VudENsYXNzTmFtZUlucHV0Q29udGFpbmVyID0gJ21lcmNoaS1jaGVja291dC1kaXNjb3VudC1jb2RlLWZpZWxkLWNvbnRhaW5lcicsXG4gIGRpc2NvdW50Q2xhc3NOYW1lSW5wdXRkaXNjb3VudExhYmVsID0gJ21lcmNoaS1jaGVja291dC1kaXNjb3VudC1jb2RlLWxhYmVsJyxcbiAgZGlzY291bnRDbGFzc05hbWVMaXN0SXRlbSA9ICdsaXN0LWdyb3VwLWl0ZW0gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC0yJyxcbiAgZGlzY291bnRDbGFzc05hbWVMaXN0SXRlbXMgPSAnbGlzdC1ncm91cCcsXG4gIGRpc2NvdW50Q2xhc3NOYW1lTWFpbkNvbnRhaW5lcixcbiAgZGlzY291bnRMYWJlbCA9ICdBcHBseSBEaXNjb3VudCBDb2RlJyxcbiAgZGlzY291bnRTaG93QXBwbGllZEl0ZW1zID0gdHJ1ZSxcbiAgaW5jbHVkZURvbWFpblNpZ251cCA9IGZhbHNlLFxuICBpbnZvaWNlLFxuICBpc0J1eVJlcXVlc3QsXG4gIGlzT3BlbixcbiAgaXNQcm9kdWN0RW1iZWRGb3JtID0gZmFsc2UsXG4gIGpvYixcbiAgcHJvZHVjdCxcbiAgbWVzc2FnZVN1Y2Nlc3NCdXlSZXF1ZXN0LFxuICBtZXNzYWdlU3VjY2Vzc1F1b3RlUmVxdWVzdCxcbiAgcmVkaXJlY3RBZnRlclN1Y2Nlc3NVcmwsXG4gIHJlZGlyZWN0QWZ0ZXJRdW90ZVN1Y2Nlc3NVcmwsXG4gIHJlZGlyZWN0V2l0aFZhbHVlLFxuICBzZXRJbnZvaWNlLFxuICBzZXRKb2IsXG4gIHNob3dEaXNjb3VudENvZGUgPSB0cnVlLFxuICBzaG93VXNlclRlcm1zQW5kQ29uZGl0aW9ucyA9IHRydWUsXG4gIHRvZ2dsZU1lcmNoaUNoZWNrb3V0LFxuICB1cmxBcGkgPSAnaHR0cHM6Ly9hcGkubWVyY2hpLmNvL3Y2LycsXG4gIHVybEZyb250ZW5kID0gJ2h0dHBzOi8vbWVyY2hpLmNvLycsXG59OiBQcm9wc01lcmNoaVByb2R1Y3RGb3JtUHJvdmlkZXIpID0+IHtcbiAgY29uc3QgaW5pdGlhbFRhYnNTdGF0ZSA9IGdldEluaXRpYWxUYWJzU3RhdGUoXG4gICAgam9iLFxuICAgIHByb2R1Y3QsXG4gICAgaW5jbHVkZURvbWFpblNpZ251cCxcbiAgICBpc0J1eVJlcXVlc3QsXG4gICAgaW52b2ljZVxuICApO1xuICBjb25zdCBbYWN0aXZlVGFiSW5kZXgsIHNldEFjdGl2ZVRhYkluZGV4XSA9IHVzZVN0YXRlPG51bWJlcj4oXG4gICAgaW5pdGlhbFRhYnNTdGF0ZS5hY3RpdmVUYWJJbmRleFxuICApO1xuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFthbGVydHMsIHNldEFsZXJ0c10gPSB1c2VTdGF0ZShbXSk7XG4gIGNvbnN0IFtkb21haW4sIHNldERvbWFpbl0gPSB1c2VTdGF0ZShudWxsKTtcbiAgY29uc3QgW3RhYnMsIHNldFRhYnNdID0gdXNlU3RhdGUoaW5pdGlhbFRhYnNTdGF0ZS50YWJzKTtcbiAgY29uc3QgbWVyY2hpID0gbmV3IE1lcmNoaSh1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVybEFwaSk7XG4gIGZ1bmN0aW9uIGVkaXREcmFmdFRlbXBsYXRlKGluZGV4OiBudW1iZXIsIGRyYWZ0OiBhbnkpIHtcbiAgICBjb25zdCBqb2JKc29uID0geyAuLi5qb2IgfTtcbiAgICBjb25zdCBkcmFmdFRlbXBsYXRlcyA9IHByb2R1Y3QuZHJhZnRUZW1wbGF0ZXMgfHwgW107XG4gICAgY29uc3QgZHJhZnRUZW1wbGF0ZUZpbGVzID0gZHJhZnRUZW1wbGF0ZXMubWFwKChkOiBhbnkpID0+IGQuZmlsZSk7XG4gICAgY29uc3Qgb3duRHJhZnQgPSAoam9iSnNvbi5vd25EcmFmdHMgJiYgam9iSnNvbi5vd25EcmFmdHNbMF0pIHx8IHtcbiAgICAgIGltYWdlczogZHJhZnRUZW1wbGF0ZUZpbGVzLFxuICAgIH07XG4gICAgaWYgKG93bkRyYWZ0LmltYWdlcykge1xuICAgICAgb3duRHJhZnQuaW1hZ2VzW2luZGV4XSA9IGRyYWZ0O1xuICAgIH0gZWxzZSB7XG4gICAgICBvd25EcmFmdC5pbWFnZXMgPSBbZHJhZnRdO1xuICAgIH1cbiAgICBqb2JKc29uLm93bkRyYWZ0cyA9IFtvd25EcmFmdF07XG4gICAgc2V0Sm9iKGpvYkpzb24pO1xuICB9XG4gIGZ1bmN0aW9uIGFsZXJ0Q2xvc2UoaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IHVwZGF0ZWRBbGVydHMgPSBhbGVydHMuZmlsdGVyKChfLCBpZHgpID0+IGlkeCAhPT0gaW5kZXgpO1xuICAgIHNldEFsZXJ0cyh1cGRhdGVkQWxlcnRzKTtcbiAgfVxuICBmdW5jdGlvbiBhbGVydEVycm9yU2hvdyhtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBuZXdBbGVydHM6IGFueVtdID0gW1xuICAgICAgLi4uYWxlcnRzLFxuICAgICAgeyBhbGVydFR5cGU6ICdlcnJvcicsIG1lc3NhZ2UsIHRpdGxlOiAnRXJyb3IhJyB9LFxuICAgIF07XG4gICAgc2V0QWxlcnRzKG5ld0FsZXJ0cyBhcyBhbnkpO1xuICB9XG4gIGZ1bmN0aW9uIGluaXRUYWJzRnJvbUpvYihqb2JGb3JUYWJzOiBhbnksIHRhYkluZGV4ID0gMCkge1xuICAgIGNvbnN0IHsgdGFiczogbmV4dFRhYnMsIGFjdGl2ZVRhYkluZGV4OiBuZXh0SW5kZXggfSA9IGJ1aWxkVGFic1N0YXRlKFxuICAgICAgam9iRm9yVGFicyxcbiAgICAgIHsgaW5jbHVkZURvbWFpblNpZ251cCwgaXNCdXlSZXF1ZXN0LCB0YWJJbmRleCB9XG4gICAgKTtcbiAgICBzZXRUYWJzKG5leHRUYWJzKTtcbiAgICBzZXRBY3RpdmVUYWJJbmRleChuZXh0SW5kZXgpO1xuICB9XG4gIGZ1bmN0aW9uIHJlc2V0VGFicygpIHtcbiAgICBpbml0VGFic0Zyb21Kb2Ioam9iLCBhY3RpdmVUYWJJbmRleCk7XG4gIH1cbiAgZnVuY3Rpb24gc2V0Q3VzdG9tZXIoY3VzdG9tZXI6IGFueSkge1xuICAgIGNvbnN0IHVwZGF0ZWRKb2IgPSB7IC4uLmpvYiwgY2xpZW50OiBjdXN0b21lciB9O1xuICAgIHNldEpvYih1cGRhdGVkSm9iKTtcbiAgICBpbml0VGFic0Zyb21Kb2IoXG4gICAgICB1cGRhdGVkSm9iLFxuICAgICAgaXNVc2VyUmVnaXN0ZXJlZChjdXN0b21lcikgPyBhY3RpdmVUYWJJbmRleCA6IDBcbiAgICApO1xuICB9XG4gIGZ1bmN0aW9uIGNsZWFyQ3VzdG9tZXIoKSB7XG4gICAgY29uc3QgdXBkYXRlZEpvYiA9IHsgLi4uam9iLCBjbGllbnQ6IHt9IH07XG4gICAgc2V0Sm9iKHVwZGF0ZWRKb2IpO1xuICAgIGluaXRUYWJzRnJvbUpvYih1cGRhdGVkSm9iLCAwKTtcbiAgfVxuICBmdW5jdGlvbiBjYW5jZWxDaGVja291dE9yZGVyKCkge1xuICAgIGNvbnN0IHVwZGF0ZWRKb2IgPSB7IC4uLmpvYiB9O1xuICAgIGRlbGV0ZSB1cGRhdGVkSm9iLmlkO1xuICAgIHNldEludm9pY2Uoe30pO1xuICAgIHNldEpvYih1cGRhdGVkSm9iKTtcbiAgICBjb25zdCBjb25maXJtSW5kZXggPSB0YWJzLmZpbmRJbmRleCgodCkgPT4gdC5pZCA9PT0gdGFiSWRDb25maXJtKTtcbiAgICBpbml0VGFic0Zyb21Kb2IodXBkYXRlZEpvYiwgY29uZmlybUluZGV4ID49IDAgPyBjb25maXJtSW5kZXggOiAwKTtcbiAgfVxuICBmdW5jdGlvbiBuZXh0VGFiKCkge1xuICAgIGNvbnN0IG5kZXh0SW5kZXggPSBhY3RpdmVUYWJJbmRleCArIDE7XG4gICAgY29uc3QgX3RhYnM6IGFueVtdID0gWy4uLnRhYnNdO1xuICAgIF90YWJzW25kZXh0SW5kZXhdLmRpc2FibGVkID0gZmFsc2U7XG4gICAgc2V0VGFicyhfdGFicyBhcyBbXSk7XG4gICAgc2V0QWN0aXZlVGFiSW5kZXgobmRleHRJbmRleCk7XG4gIH1cbiAgZnVuY3Rpb24gc2V0QWN0aXZlVGFiQnlJZCh0YWJJZDogc3RyaW5nKSB7XG4gICAgY29uc3QgaW5kZXggPSB0YWJzLmZpbmRJbmRleCgodDogTWVyY2hpQ2hlY2tvdXRUYWIpID0+IHQuaWQgPT09IHRhYklkKTtcbiAgICBzZXRBY3RpdmVUYWJJbmRleChpbmRleCk7XG4gIH1cbiAgY29uc3QgcXVvdGVTaWduYXR1cmUgPSBnZXRDaGVja291dFF1b3RlU2lnbmF0dXJlKGpvYik7XG4gIGNvbnN0IHF1b3RlU2lnbmF0dXJlUmVmID0gUmVhY3QudXNlUmVmKCcnKTtcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghcHJvZHVjdD8uaWQpIHJldHVybjtcblxuICAgIGNvbnN0IHNlc3Npb24gPSBsb2FkQ2hlY2tvdXRTZXNzaW9uKHByb2R1Y3QpO1xuICAgIGNvbnN0IG1lcmdlZEpvYiA9IG1lcmdlSm9iV2l0aENoZWNrb3V0U2Vzc2lvbihqb2IsIHNlc3Npb24pO1xuXG4gICAgaWYgKGNoZWNrb3V0U2Vzc2lvbkNoYW5nZWQoam9iLCBtZXJnZWRKb2IpKSB7XG4gICAgICBzZXRKb2IobWVyZ2VkSm9iKTtcbiAgICB9XG5cbiAgICBjb25zdCBxdW90ZUNoYW5nZWQgPSBxdW90ZVNpZ25hdHVyZVJlZi5jdXJyZW50ICE9PSBxdW90ZVNpZ25hdHVyZTtcbiAgICBxdW90ZVNpZ25hdHVyZVJlZi5jdXJyZW50ID0gcXVvdGVTaWduYXR1cmU7XG5cbiAgICBpZiAoIXRhYnMubGVuZ3RoIHx8IHF1b3RlQ2hhbmdlZCkge1xuICAgICAgY29uc3QgcmVzdG9yZWRJbnZvaWNlID0gaW52b2ljZT8uaWQgPyBpbnZvaWNlIDogc2Vzc2lvbj8uaW52b2ljZTtcbiAgICAgIGNvbnN0IHJlc3RvcmVkSW5kZXggPVxuICAgICAgICBxdW90ZUNoYW5nZWQgJiYgIXJlc3RvcmVkSW52b2ljZT8uaWRcbiAgICAgICAgICA/IDBcbiAgICAgICAgICA6IGdldFNhZmVSZXN0b3JlZFRhYkluZGV4KFxuICAgICAgICAgICAgICBtZXJnZWRKb2IsXG4gICAgICAgICAgICAgIHsgaW5jbHVkZURvbWFpblNpZ251cCwgaXNCdXlSZXF1ZXN0IH0sXG4gICAgICAgICAgICAgIHNlc3Npb24/LmFjdGl2ZVRhYkluZGV4ID8/IDAsXG4gICAgICAgICAgICAgIHJlc3RvcmVkSW52b2ljZVxuICAgICAgICAgICAgKTtcbiAgICAgIGluaXRUYWJzRnJvbUpvYihtZXJnZWRKb2IsIHJlc3RvcmVkSW5kZXgpO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgICFpc1VzZXJSZWdpc3RlcmVkKG1lcmdlZEpvYi5jbGllbnQpICYmXG4gICAgICAhaXNVc2VyUmVnaXN0ZXJlZChzZXNzaW9uPy5jbGllbnQpICYmXG4gICAgICBpc1VzZXJSZWdpc3RlcmVkKGN1cnJlbnRVc2VyKVxuICAgICkge1xuICAgICAgc2V0Sm9iKHsgLi4ubWVyZ2VkSm9iLCBjbGllbnQ6IGN1cnJlbnRVc2VyIH0pO1xuICAgIH1cbiAgfSwgW3Byb2R1Y3Q/LmlkLCBxdW90ZVNpZ25hdHVyZV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFwcm9kdWN0Py5pZCkgcmV0dXJuO1xuXG4gICAgY29uc3Qgc2Vzc2lvbiA9IGxvYWRDaGVja291dFNlc3Npb24ocHJvZHVjdCk7XG4gICAgaWYgKCFpbnZvaWNlPy5pZCAmJiBzZXNzaW9uPy5pbnZvaWNlPy5pZCkge1xuICAgICAgc2V0SW52b2ljZShzZXNzaW9uLmludm9pY2UpO1xuICAgIH1cbiAgfSwgW3Byb2R1Y3Q/LmlkXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXByb2R1Y3Q/LmlkKSByZXR1cm47XG4gICAgc2F2ZUNoZWNrb3V0U2Vzc2lvbihcbiAgICAgIHByb2R1Y3QsXG4gICAgICBidWlsZENoZWNrb3V0U2Vzc2lvbihcbiAgICAgICAgam9iLFxuICAgICAgICBhY3RpdmVUYWJJbmRleCxcbiAgICAgICAge1xuICAgICAgICAgIGludm9pY2UsXG4gICAgICAgICAgY2hlY2tvdXRPcGVuOiBpc09wZW4sXG4gICAgICAgICAgaXNCdXlSZXF1ZXN0LFxuICAgICAgICB9LFxuICAgICAgICBsb2FkQ2hlY2tvdXRTZXNzaW9uKHByb2R1Y3QpXG4gICAgICApXG4gICAgKTtcbiAgfSwgW1xuICAgIHByb2R1Y3Q/LmlkLFxuICAgIGpvYi5jbGllbnQsXG4gICAgam9iLnNoaXBwaW5nLFxuICAgIGpvYi5iaWxsaW5nLFxuICAgIGpvYi5zaGlwbWVudCxcbiAgICBqb2IuaXRlbXMsXG4gICAgYWN0aXZlVGFiSW5kZXgsXG4gICAgaW52b2ljZSxcbiAgICBpc09wZW4sXG4gICAgaXNCdXlSZXF1ZXN0LFxuICBdKTtcbiAgZnVuY3Rpb24gZGlzY291bnRDYWxsYmFja1N1Y2Nlc3MoaXRlbXM6IGFueVtdKSB7XG4gICAgc2V0Sm9iKHsgLi4uam9iLCBpdGVtcyB9KTtcbiAgfVxuICBmdW5jdGlvbiBkaXNjb3VudENhbGxiYWNrRXJyb3IoKSB7XG4gICAgc2V0Sm9iKHsgLi4uam9iLCBpdGVtczogW10gfSk7XG4gIH1cbiAgcmV0dXJuIChcbiAgICA8TWVyY2hpQ2hlY2tvdXRDb250ZXh0LlByb3ZpZGVyXG4gICAgICB2YWx1ZT17XG4gICAgICAgIHtcbiAgICAgICAgICBhY3RpdmVUYWJJbmRleCxcbiAgICAgICAgICBhbGVydHMsXG4gICAgICAgICAgYWxlcnRDbG9zZSxcbiAgICAgICAgICBhbGVydEVycm9yU2hvdyxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0c0NvbnRhaW5lcixcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0LFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QWxlcnRFcnJvcixcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0U3VjY2VzcyxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblByaW1hcnksXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25QcmltYXJ5QmxvY2ssXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25TZWNvbmRhcnksXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25TZWNvbmRhcnlCbG9jayxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvbkRvd25sb2FkSW52b2ljZSxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvbkNhbmNlbE9yZGVyLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Q29uZmlybUluZm9QYW5lbCxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvb3RlckFjdGlvbnNDb250YWluZXIsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtQ2hlY2tib3gsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtR3JvdXAsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtR3JvdXBDaGVja2JveCxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1JbnB1dCxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1TZWxlY3QsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRHb29nbGVTdWdnZXN0TGlzdCxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dEdvb2dsZVN1Z2dlc3RMaXN0SXRlbSxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cEl0ZW1Mb2FkZXIsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtTGFiZWxDaGVja2JveCxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dElucHV0RXJyb3IsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRMaXN0R3JvdXAsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRMaXN0R3JvdXBJdGVtLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Um93LFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Um93Q29sdW1uLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0U3VidGl0bGUsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJzQ29udGFpbmVyLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiQnV0dG9uLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiUGFuZSxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYlBhbmVDb250YWluZXIsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpSW52b2ljZUJ1dHRvblBheUludm9pY2UsXG4gICAgICAgICAgY2xlYXJDdXN0b21lcixcbiAgICAgICAgICBjYW5jZWxDaGVja291dE9yZGVyLFxuICAgICAgICAgIGN1cnJlbnRVc2VyLFxuICAgICAgICAgIGN1c3RvbWVyOiBqb2IuY2xpZW50IHx8IHt9LFxuICAgICAgICAgIGRpc2NvdW50QnV0dG9uVGV4dCxcbiAgICAgICAgICBkaXNjb3VudENhbGxiYWNrRXJyb3IsXG4gICAgICAgICAgZGlzY291bnRDYWxsYmFja1N1Y2Nlc3MsXG4gICAgICAgICAgZGlzY291bnRDbGFzc05hbWUsXG4gICAgICAgICAgZGlzY291bnRDbGFzc05hbWVCdXR0b24sXG4gICAgICAgICAgZGlzY291bnRDbGFzc05hbWVCdXR0b25Db250YWluZXIsXG4gICAgICAgICAgZGlzY291bnRDbGFzc05hbWVCdXR0b25JdGVtUmVtb3ZlLFxuICAgICAgICAgIGRpc2NvdW50Q2xhc3NOYW1lRXJyb3JNZXNzYWdlLFxuICAgICAgICAgIGRpc2NvdW50Q2xhc3NOYW1lSW5wdXQsXG4gICAgICAgICAgZGlzY291bnRDbGFzc05hbWVJbnB1dENvbnRhaW5lcixcbiAgICAgICAgICBkaXNjb3VudENsYXNzTmFtZUlucHV0ZGlzY291bnRMYWJlbCxcbiAgICAgICAgICBkaXNjb3VudENsYXNzTmFtZUxpc3RJdGVtLFxuICAgICAgICAgIGRpc2NvdW50Q2xhc3NOYW1lTGlzdEl0ZW1zLFxuICAgICAgICAgIGRpc2NvdW50Q2xhc3NOYW1lTWFpbkNvbnRhaW5lcixcbiAgICAgICAgICBkaXNjb3VudExhYmVsLFxuICAgICAgICAgIGRpc2NvdW50U2hvd0FwcGxpZWRJdGVtcyxcbiAgICAgICAgICBkb21haW4sXG4gICAgICAgICAgZWRpdERyYWZ0VGVtcGxhdGUsXG4gICAgICAgICAgaW5jbHVkZURvbWFpblNpZ251cCxcbiAgICAgICAgICBpbnZvaWNlLFxuICAgICAgICAgIGlzQnV5UmVxdWVzdCxcbiAgICAgICAgICBpc09wZW4sXG4gICAgICAgICAgaXNQcm9kdWN0RW1iZWRGb3JtLFxuICAgICAgICAgIGpvYixcbiAgICAgICAgICBsb2FkaW5nLFxuICAgICAgICAgIG1lcmNoaSxcbiAgICAgICAgICBtZXNzYWdlU3VjY2Vzc0J1eVJlcXVlc3QsXG4gICAgICAgICAgbWVzc2FnZVN1Y2Nlc3NRdW90ZVJlcXVlc3QsXG4gICAgICAgICAgbmV4dFRhYixcbiAgICAgICAgICBwcm9kdWN0LFxuICAgICAgICAgIHJlZGlyZWN0QWZ0ZXJTdWNjZXNzVXJsLFxuICAgICAgICAgIHJlZGlyZWN0QWZ0ZXJRdW90ZVN1Y2Nlc3NVcmwsXG4gICAgICAgICAgcmVkaXJlY3RXaXRoVmFsdWUsXG4gICAgICAgICAgc2V0QWN0aXZlVGFiQnlJZCxcbiAgICAgICAgICBzZXRBY3RpdmVUYWJJbmRleCxcbiAgICAgICAgICBzZXRDdXN0b21lcixcbiAgICAgICAgICBzZXREb21haW4sXG4gICAgICAgICAgc2V0SW52b2ljZSxcbiAgICAgICAgICBzZXRKb2IsXG4gICAgICAgICAgc2hvd0Rpc2NvdW50Q29kZSxcbiAgICAgICAgICBzaG93VXNlclRlcm1zQW5kQ29uZGl0aW9ucyxcbiAgICAgICAgICB0YWJzLFxuICAgICAgICAgIHRvZ2dsZU1lcmNoaUNoZWNrb3V0LFxuICAgICAgICAgIHVybEFwaSxcbiAgICAgICAgICB1cmxGcm9udGVuZCxcbiAgICAgICAgfSBhcyBJTWVyY2hpQ2hlY2tvdXRcbiAgICAgIH1cbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1lcmNoaS1jaGVja291dFwiPntjaGlsZHJlbn08L2Rpdj5cbiAgICA8L01lcmNoaUNoZWNrb3V0Q29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn07XG4iXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7O0FBQUMsU0FBQUEsUUFBQUMsQ0FBQSxzQ0FBQUQsT0FBQSx3QkFBQUUsTUFBQSx1QkFBQUEsTUFBQSxDQUFBQyxRQUFBLGFBQUFGLENBQUEsa0JBQUFBLENBQUEsZ0JBQUFBLENBQUEsV0FBQUEsQ0FBQSx5QkFBQUMsTUFBQSxJQUFBRCxDQUFBLENBQUFHLFdBQUEsS0FBQUYsTUFBQSxJQUFBRCxDQUFBLEtBQUFDLE1BQUEsQ0FBQUcsU0FBQSxxQkFBQUosQ0FBQSxLQUFBRCxPQUFBLENBQUFDLENBQUE7QUFBQSxTQUFBSyxtQkFBQUMsR0FBQSxXQUFBQyxrQkFBQSxDQUFBRCxHQUFBLEtBQUFFLGdCQUFBLENBQUFGLEdBQUEsS0FBQUcsMkJBQUEsQ0FBQUgsR0FBQSxLQUFBSSxrQkFBQTtBQUFBLFNBQUFBLG1CQUFBLGNBQUFDLFNBQUE7QUFBQSxTQUFBSCxpQkFBQUksSUFBQSxlQUFBWCxNQUFBLG9CQUFBVyxJQUFBLENBQUFYLE1BQUEsQ0FBQUMsUUFBQSxhQUFBVSxJQUFBLCtCQUFBQyxLQUFBLENBQUFDLElBQUEsQ0FBQUYsSUFBQTtBQUFBLFNBQUFMLG1CQUFBRCxHQUFBLFFBQUFPLEtBQUEsQ0FBQUUsT0FBQSxDQUFBVCxHQUFBLFVBQUFVLGlCQUFBLENBQUFWLEdBQUE7QUFBQSxTQUFBVyxlQUFBWCxHQUFBLEVBQUFZLENBQUEsV0FBQUMsZUFBQSxDQUFBYixHQUFBLEtBQUFjLHFCQUFBLENBQUFkLEdBQUEsRUFBQVksQ0FBQSxLQUFBVCwyQkFBQSxDQUFBSCxHQUFBLEVBQUFZLENBQUEsS0FBQUcsZ0JBQUE7QUFBQSxTQUFBQSxpQkFBQSxjQUFBVixTQUFBO0FBQUEsU0FBQUYsNEJBQUFULENBQUEsRUFBQXNCLE1BQUEsU0FBQXRCLENBQUEscUJBQUFBLENBQUEs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
|