@merchi/checkout 1.3.5

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.
Files changed (122) hide show
  1. package/README.md +196 -0
  2. package/lib/actions/confirm.d.ts +2 -0
  3. package/lib/actions/confirm.js +85 -0
  4. package/lib/actions/customer.d.ts +2 -0
  5. package/lib/actions/customer.js +53 -0
  6. package/lib/actions/domain.d.ts +2 -0
  7. package/lib/actions/domain.js +65 -0
  8. package/lib/actions/files.d.ts +1 -0
  9. package/lib/actions/files.js +35 -0
  10. package/lib/actions/helpers.d.ts +19 -0
  11. package/lib/actions/helpers.js +125 -0
  12. package/lib/actions/invoice.d.ts +3 -0
  13. package/lib/actions/invoice.js +113 -0
  14. package/lib/area.d.ts +77 -0
  15. package/lib/area.js +298 -0
  16. package/lib/assets/merchi-monster-loader.gif +0 -0
  17. package/lib/checkoutSession.d.ts +32 -0
  18. package/lib/checkoutSession.js +151 -0
  19. package/lib/components/Alerts.d.ts +3 -0
  20. package/lib/components/Alerts.js +88 -0
  21. package/lib/components/CancelOrderConfirmModal.d.ts +10 -0
  22. package/lib/components/CancelOrderConfirmModal.js +50 -0
  23. package/lib/components/CheckoutSummaryFields.d.ts +11 -0
  24. package/lib/components/CheckoutSummaryFields.js +38 -0
  25. package/lib/components/Collapse.d.ts +3 -0
  26. package/lib/components/Collapse.js +34 -0
  27. package/lib/components/CustomerCheckoutMethodTabs.d.ts +6 -0
  28. package/lib/components/CustomerCheckoutMethodTabs.js +90 -0
  29. package/lib/components/DiscountInputGroup.d.ts +2 -0
  30. package/lib/components/DiscountInputGroup.js +256 -0
  31. package/lib/components/DraftImageUploaded.d.ts +8 -0
  32. package/lib/components/DraftImageUploaded.js +53 -0
  33. package/lib/components/FooterButtons.d.ts +11 -0
  34. package/lib/components/FooterButtons.js +28 -0
  35. package/lib/components/InvoiceInfo.d.ts +6 -0
  36. package/lib/components/InvoiceInfo.js +37 -0
  37. package/lib/components/JobInfoContent.d.ts +2 -0
  38. package/lib/components/JobInfoContent.js +728 -0
  39. package/lib/components/MerchiCheckout.d.ts +46 -0
  40. package/lib/components/MerchiCheckout.js +49 -0
  41. package/lib/components/MerchiCheckoutProvider.d.ts +167 -0
  42. package/lib/components/MerchiCheckoutProvider.js +569 -0
  43. package/lib/components/MerchiCheckoutTabs.d.ts +2 -0
  44. package/lib/components/MerchiCheckoutTabs.js +50 -0
  45. package/lib/components/TabPane.d.ts +7 -0
  46. package/lib/components/TabPane.js +21 -0
  47. package/lib/components/TabPaneAddress.d.ts +3 -0
  48. package/lib/components/TabPaneAddress.js +28 -0
  49. package/lib/components/TabPaneConfirm.d.ts +11 -0
  50. package/lib/components/TabPaneConfirm.js +288 -0
  51. package/lib/components/TabPaneContainer.d.ts +6 -0
  52. package/lib/components/TabPaneContainer.js +13 -0
  53. package/lib/components/TabPaneCustomer.d.ts +5 -0
  54. package/lib/components/TabPaneCustomer.js +93 -0
  55. package/lib/components/TabPaneNewDomain.d.ts +3 -0
  56. package/lib/components/TabPaneNewDomain.js +39 -0
  57. package/lib/components/TabPanePayment.d.ts +3 -0
  58. package/lib/components/TabPanePayment.js +99 -0
  59. package/lib/components/TabPaneSubmitted.d.ts +3 -0
  60. package/lib/components/TabPaneSubmitted.js +90 -0
  61. package/lib/components/TitleStep.d.ts +6 -0
  62. package/lib/components/TitleStep.js +24 -0
  63. package/lib/components/buttons/ButtonInvoiceDownload.d.ts +3 -0
  64. package/lib/components/buttons/ButtonInvoiceDownload.js +91 -0
  65. package/lib/components/buttons/ButtonNext.d.ts +10 -0
  66. package/lib/components/buttons/ButtonNext.js +48 -0
  67. package/lib/components/buttons/ButtonPrevious.d.ts +7 -0
  68. package/lib/components/buttons/ButtonPrevious.js +36 -0
  69. package/lib/components/buttons/index.d.ts +3 -0
  70. package/lib/components/buttons/index.js +4 -0
  71. package/lib/components/currency.d.ts +5 -0
  72. package/lib/components/currency.js +223 -0
  73. package/lib/components/forms/CheckboxBillingAddressSameAsShippingAddress.d.ts +7 -0
  74. package/lib/components/forms/CheckboxBillingAddressSameAsShippingAddress.js +22 -0
  75. package/lib/components/forms/FormAddresses.d.ts +6 -0
  76. package/lib/components/forms/FormAddresses.js +251 -0
  77. package/lib/components/forms/FormCustomerNew.d.ts +4 -0
  78. package/lib/components/forms/FormCustomerNew.js +197 -0
  79. package/lib/components/forms/FormCustomerReturning.d.ts +3 -0
  80. package/lib/components/forms/FormCustomerReturning.js +147 -0
  81. package/lib/components/forms/FormDomainNew.d.ts +2 -0
  82. package/lib/components/forms/FormDomainNew.js +152 -0
  83. package/lib/components/forms/FormWhatsappCustomer.d.ts +4 -0
  84. package/lib/components/forms/FormWhatsappCustomer.js +217 -0
  85. package/lib/components/forms/InputAcceptUserTermsAndConditions.d.ts +7 -0
  86. package/lib/components/forms/InputAcceptUserTermsAndConditions.js +38 -0
  87. package/lib/components/forms/InputCheckStoreName.d.ts +7 -0
  88. package/lib/components/forms/InputCheckStoreName.js +168 -0
  89. package/lib/components/forms/InputError.d.ts +8 -0
  90. package/lib/components/forms/InputError.js +19 -0
  91. package/lib/components/forms/InputFileUpload.d.ts +12 -0
  92. package/lib/components/forms/InputFileUpload.js +191 -0
  93. package/lib/components/forms/InputSelect.d.ts +14 -0
  94. package/lib/components/forms/InputSelect.js +52 -0
  95. package/lib/components/forms/InputText.d.ts +12 -0
  96. package/lib/components/forms/InputText.js +59 -0
  97. package/lib/components/forms/InputsAddress.d.ts +12 -0
  98. package/lib/components/forms/InputsAddress.js +533 -0
  99. package/lib/components/forms/index.d.ts +5 -0
  100. package/lib/components/forms/index.js +6 -0
  101. package/lib/components/lists/ListShipmentQuoteOptions.d.ts +9 -0
  102. package/lib/components/lists/ListShipmentQuoteOptions.js +145 -0
  103. package/lib/components/lists/index.d.ts +2 -0
  104. package/lib/components/lists/index.js +3 -0
  105. package/lib/fonts/nunito-bold-webfont.woff +0 -0
  106. package/lib/fonts/nunito-bold-webfont.woff2 +0 -0
  107. package/lib/fonts/nunito-regular-webfont.woff +0 -0
  108. package/lib/fonts/nunito-regular-webfont.woff2 +0 -0
  109. package/lib/index.d.ts +3 -0
  110. package/lib/index.js +4 -0
  111. package/lib/merchi_source.d.ts +2 -0
  112. package/lib/merchi_source.js +31 -0
  113. package/lib/styles/globals.css +2546 -0
  114. package/lib/styles/globals.css.map +1 -0
  115. package/lib/styles/globals.scss +2763 -0
  116. package/lib/tabs_utils.d.ts +31 -0
  117. package/lib/tabs_utils.js +104 -0
  118. package/lib/types.d.ts +43 -0
  119. package/lib/types.js +40 -0
  120. package/lib/utils.d.ts +68 -0
  121. package/lib/utils.js +560 -0
  122. package/package.json +96 -0
@@ -0,0 +1,569 @@
1
+ 'use client';
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
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
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
7
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
8
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
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."); }
10
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
11
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
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; } }
13
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
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(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
17
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : 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
+ import * as React from 'react';
20
+ import { createContext, useContext, useEffect, useLayoutEffect, useState } from 'react';
21
+ import { tabsInit, tabIdConfirm } from '../tabs_utils';
22
+ import { Merchi } from '@merchi/sdk';
23
+ import { buildCheckoutSession, checkoutSessionChanged, getCheckoutQuoteSignature, getSafeRestoredTabIndex, loadCheckoutSession, mergeJobWithCheckoutSession, saveCheckoutSession } from '../checkoutSession';
24
+ import { isUserRegistered } from '../utils';
25
+ import { jsx as _jsx } from "react/jsx-runtime";
26
+ var MerchiCheckoutContext = /*#__PURE__*/createContext({
27
+ activeTabIndex: 0,
28
+ alerts: [],
29
+ alertClose: function alertClose() {},
30
+ alertErrorShow: function alertErrorShow() {},
31
+ classNameMerchiCheckoutAlertsContainer: undefined,
32
+ classNameMerchiCheckoutAlert: undefined,
33
+ classNameMerchiCheckoutAlertError: undefined,
34
+ classNameMerchiCheckoutAlertSuccess: undefined,
35
+ classNameMerchiCheckoutButtonPrimary: undefined,
36
+ classNameMerchiCheckoutButtonPrimaryBlock: undefined,
37
+ classNameMerchiCheckoutButtonSecondary: undefined,
38
+ classNameMerchiCheckoutButtonSecondaryBlock: undefined,
39
+ classNameMerchiCheckoutButtonDownloadInvoice: undefined,
40
+ classNameMerchiCheckoutConfirmInfoPanel: undefined,
41
+ classNameMerchiCheckoutFooterActionsContainer: undefined,
42
+ classNameMerchiCheckoutFormCheckbox: undefined,
43
+ classNameMerchiCheckoutFormGroup: undefined,
44
+ classNameMerchiCheckoutFormGroupCheckbox: undefined,
45
+ classNameMerchiCheckoutFormInput: undefined,
46
+ classNameMerchiCheckoutFormSelect: undefined,
47
+ classNameMerchiCheckoutGoogleSuggestList: undefined,
48
+ classNameMerchiCheckoutGoogleSuggestListItem: undefined,
49
+ classNameMerchiCheckoutListGroupItemLoader: undefined,
50
+ classNameMerchiCheckoutFormLabelCheckbox: undefined,
51
+ classNameMerchiCheckoutInputError: undefined,
52
+ classNameMerchiCheckoutListGroup: undefined,
53
+ classNameMerchiCheckoutListGroupItem: undefined,
54
+ classNameMerchiCheckoutRow: undefined,
55
+ classNameMerchiCheckoutRowColumn: undefined,
56
+ classNameMerchiCheckoutSubtitle: undefined,
57
+ classNameMerchiCheckoutTabsContainer: undefined,
58
+ classNameMerchiCheckoutTab: undefined,
59
+ classNameMerchiCheckoutTabPane: undefined,
60
+ classNameMerchiCheckoutTabPaneContainer: undefined,
61
+ classNameMerchiCheckoutTabButton: undefined,
62
+ classNameMerchiInvoiceButtonPayInvoice: undefined,
63
+ clearCustomer: function clearCustomer() {},
64
+ cancelCheckoutOrder: function cancelCheckoutOrder() {},
65
+ currentUser: undefined,
66
+ customer: undefined,
67
+ discountButtonText: undefined,
68
+ discountCallbackError: function discountCallbackError() {},
69
+ discountCallbackSuccess: function discountCallbackSuccess() {},
70
+ discountClassName: undefined,
71
+ discountClassNameButton: undefined,
72
+ discountClassNameButtonContainer: undefined,
73
+ discountClassNameButtonItemRemove: undefined,
74
+ discountClassNameErrorMessage: undefined,
75
+ discountClassNameInput: undefined,
76
+ discountClassNameInputContainer: undefined,
77
+ discountClassNameInputdiscountLabel: undefined,
78
+ discountClassNameListItem: undefined,
79
+ discountClassNameListItems: undefined,
80
+ discountClassNameMainContainer: undefined,
81
+ discountLabel: undefined,
82
+ discountShowAppliedItems: true,
83
+ domain: undefined,
84
+ editDraftTemplate: function editDraftTemplate() {},
85
+ isBuyRequest: false,
86
+ isOpen: false,
87
+ loading: false,
88
+ merchi: undefined,
89
+ messageSuccessBuyRequest: undefined,
90
+ messageSuccessQuoteRequest: undefined,
91
+ nextTab: function nextTab() {},
92
+ includeDomainSignup: false,
93
+ invoice: {},
94
+ isProductEmbedForm: false,
95
+ job: {},
96
+ product: {},
97
+ redirectAfterSuccessUrl: undefined,
98
+ redirectAfterQuoteSuccessUrl: undefined,
99
+ redirectWithValue: true,
100
+ setActiveTabById: function setActiveTabById() {},
101
+ setActiveTabIndex: function setActiveTabIndex() {},
102
+ setCustomer: function setCustomer() {},
103
+ setDomain: function setDomain() {},
104
+ setInvoice: function setInvoice() {},
105
+ setJob: function setJob() {},
106
+ showDiscountCode: true,
107
+ showUserTermsAndConditions: true,
108
+ tabs: [],
109
+ toggleMerchiCheckout: function toggleMerchiCheckout() {},
110
+ urlFrontend: '',
111
+ urlApi: ''
112
+ });
113
+ export var useMerchiCheckboutContext = function useMerchiCheckboutContext() {
114
+ return useContext(MerchiCheckoutContext);
115
+ };
116
+ function buildTabsState(jobForTabs, _ref) {
117
+ var includeDomainSignup = _ref.includeDomainSignup,
118
+ isBuyRequest = _ref.isBuyRequest,
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 _product$domain2, _job$domain2;
172
+ var children = _ref2.children,
173
+ _ref2$classNameMerchi = _ref2.classNameMerchiCheckoutAlertsContainer,
174
+ classNameMerchiCheckoutAlertsContainer = _ref2$classNameMerchi === void 0 ? 'd-flex justify-content-center flex-column alerts-container-sm' : _ref2$classNameMerchi,
175
+ _ref2$classNameMerchi2 = _ref2.classNameMerchiCheckoutAlert,
176
+ classNameMerchiCheckoutAlert = _ref2$classNameMerchi2 === void 0 ? 'alert alert-dismissible alert-notify' : _ref2$classNameMerchi2,
177
+ _ref2$classNameMerchi3 = _ref2.classNameMerchiCheckoutAlertError,
178
+ classNameMerchiCheckoutAlertError = _ref2$classNameMerchi3 === void 0 ? 'alert-danger' : _ref2$classNameMerchi3,
179
+ _ref2$classNameMerchi4 = _ref2.classNameMerchiCheckoutAlertSuccess,
180
+ classNameMerchiCheckoutAlertSuccess = _ref2$classNameMerchi4 === void 0 ? 'alert-success' : _ref2$classNameMerchi4,
181
+ _ref2$classNameMerchi5 = _ref2.classNameMerchiCheckoutButtonPrimary,
182
+ classNameMerchiCheckoutButtonPrimary = _ref2$classNameMerchi5 === void 0 ? 'btn btn-lmd btn-primary d-flex align-items-center justify-content-center' : _ref2$classNameMerchi5,
183
+ _ref2$classNameMerchi6 = _ref2.classNameMerchiCheckoutButtonPrimaryBlock,
184
+ classNameMerchiCheckoutButtonPrimaryBlock = _ref2$classNameMerchi6 === void 0 ? 'btn btn-lg btn-primary btn-block' : _ref2$classNameMerchi6,
185
+ _ref2$classNameMerchi7 = _ref2.classNameMerchiCheckoutButtonSecondary,
186
+ classNameMerchiCheckoutButtonSecondary = _ref2$classNameMerchi7 === void 0 ? 'btn btn-lg btn-secondary' : _ref2$classNameMerchi7,
187
+ _ref2$classNameMerchi8 = _ref2.classNameMerchiCheckoutButtonSecondaryBlock,
188
+ classNameMerchiCheckoutButtonSecondaryBlock = _ref2$classNameMerchi8 === void 0 ? 'btn btn-lg btn-secondary btn-block' : _ref2$classNameMerchi8,
189
+ _ref2$classNameMerchi9 = _ref2.classNameMerchiCheckoutButtonDownloadInvoice,
190
+ classNameMerchiCheckoutButtonDownloadInvoice = _ref2$classNameMerchi9 === void 0 ? 'btn btn-lg btn-primary' : _ref2$classNameMerchi9,
191
+ _ref2$classNameMerchi0 = _ref2.classNameMerchiCheckoutButtonCancelOrder,
192
+ classNameMerchiCheckoutButtonCancelOrder = _ref2$classNameMerchi0 === void 0 ? 'btn btn-lg btn-secondary' : _ref2$classNameMerchi0,
193
+ _ref2$classNameMerchi1 = _ref2.classNameMerchiCheckoutConfirmInfoPanel,
194
+ classNameMerchiCheckoutConfirmInfoPanel = _ref2$classNameMerchi1 === void 0 ? 'd-flex align-items-center' : _ref2$classNameMerchi1,
195
+ _ref2$classNameMerchi10 = _ref2.classNameMerchiCheckoutFooterActionsContainer,
196
+ classNameMerchiCheckoutFooterActionsContainer = _ref2$classNameMerchi10 === void 0 ? 'd-flex justify-content-between mt-4' : _ref2$classNameMerchi10,
197
+ _ref2$classNameMerchi11 = _ref2.classNameMerchiCheckoutFormCheckbox,
198
+ classNameMerchiCheckoutFormCheckbox = _ref2$classNameMerchi11 === void 0 ? 'form-check-input' : _ref2$classNameMerchi11,
199
+ _ref2$classNameMerchi12 = _ref2.classNameMerchiCheckoutFormGroup,
200
+ classNameMerchiCheckoutFormGroup = _ref2$classNameMerchi12 === void 0 ? 'form-group' : _ref2$classNameMerchi12,
201
+ _ref2$classNameMerchi13 = _ref2.classNameMerchiCheckoutFormGroupCheckbox,
202
+ classNameMerchiCheckoutFormGroupCheckbox = _ref2$classNameMerchi13 === void 0 ? 'form-check' : _ref2$classNameMerchi13,
203
+ _ref2$classNameMerchi14 = _ref2.classNameMerchiCheckoutFormInput,
204
+ classNameMerchiCheckoutFormInput = _ref2$classNameMerchi14 === void 0 ? 'form-control' : _ref2$classNameMerchi14,
205
+ _ref2$classNameMerchi15 = _ref2.classNameMerchiCheckoutFormSelect,
206
+ classNameMerchiCheckoutFormSelect = _ref2$classNameMerchi15 === void 0 ? 'form-control' : _ref2$classNameMerchi15,
207
+ _ref2$classNameMerchi16 = _ref2.classNameMerchiCheckoutGoogleSuggestList,
208
+ classNameMerchiCheckoutGoogleSuggestList = _ref2$classNameMerchi16 === void 0 ? 'merchi-checkout-google-suggest-list' : _ref2$classNameMerchi16,
209
+ _ref2$classNameMerchi17 = _ref2.classNameMerchiCheckoutGoogleSuggestListItem,
210
+ classNameMerchiCheckoutGoogleSuggestListItem = _ref2$classNameMerchi17 === void 0 ? 'merchi-checkout-google-suggest-list-item' : _ref2$classNameMerchi17,
211
+ _ref2$classNameMerchi18 = _ref2.classNameMerchiCheckoutListGroupItemLoader,
212
+ classNameMerchiCheckoutListGroupItemLoader = _ref2$classNameMerchi18 === void 0 ? 'list-group-item modal-merchi-checkout-shipment-option' : _ref2$classNameMerchi18,
213
+ _ref2$classNameMerchi19 = _ref2.classNameMerchiCheckoutInputError,
214
+ classNameMerchiCheckoutInputError = _ref2$classNameMerchi19 === void 0 ? 'text-danger' : _ref2$classNameMerchi19,
215
+ _ref2$classNameMerchi20 = _ref2.classNameMerchiCheckoutFormLabelCheckbox,
216
+ classNameMerchiCheckoutFormLabelCheckbox = _ref2$classNameMerchi20 === void 0 ? '' : _ref2$classNameMerchi20,
217
+ _ref2$classNameMerchi21 = _ref2.classNameMerchiCheckoutListGroup,
218
+ classNameMerchiCheckoutListGroup = _ref2$classNameMerchi21 === void 0 ? 'modal-merchi-checkout-shipment-option' : _ref2$classNameMerchi21,
219
+ _ref2$classNameMerchi22 = _ref2.classNameMerchiCheckoutListGroupItem,
220
+ classNameMerchiCheckoutListGroupItem = _ref2$classNameMerchi22 === void 0 ? 'list-group-item modal-merchi-checkout-shipment-option' : _ref2$classNameMerchi22,
221
+ _ref2$classNameMerchi23 = _ref2.classNameMerchiCheckoutRow,
222
+ classNameMerchiCheckoutRow = _ref2$classNameMerchi23 === void 0 ? 'merchi-row' : _ref2$classNameMerchi23,
223
+ _ref2$classNameMerchi24 = _ref2.classNameMerchiCheckoutRowColumn,
224
+ classNameMerchiCheckoutRowColumn = _ref2$classNameMerchi24 === void 0 ? 'merchi-column' : _ref2$classNameMerchi24,
225
+ _ref2$classNameMerchi25 = _ref2.classNameMerchiCheckoutSubtitle,
226
+ classNameMerchiCheckoutSubtitle = _ref2$classNameMerchi25 === void 0 ? 'merchi-checkout-subtitle' : _ref2$classNameMerchi25,
227
+ _ref2$classNameMerchi26 = _ref2.classNameMerchiCheckoutTabsContainer,
228
+ classNameMerchiCheckoutTabsContainer = _ref2$classNameMerchi26 === void 0 ? 'merchi-checkout-tabs-container' : _ref2$classNameMerchi26,
229
+ _ref2$classNameMerchi27 = _ref2.classNameMerchiCheckoutTab,
230
+ classNameMerchiCheckoutTab = _ref2$classNameMerchi27 === void 0 ? 'merchi-checkout-tab' : _ref2$classNameMerchi27,
231
+ _ref2$classNameMerchi28 = _ref2.classNameMerchiCheckoutTabButton,
232
+ classNameMerchiCheckoutTabButton = _ref2$classNameMerchi28 === void 0 ? 'btn merchi-checkout-tab-btn' : _ref2$classNameMerchi28,
233
+ _ref2$classNameMerchi29 = _ref2.classNameMerchiCheckoutTabPane,
234
+ classNameMerchiCheckoutTabPane = _ref2$classNameMerchi29 === void 0 ? 'tab-pane' : _ref2$classNameMerchi29,
235
+ _ref2$classNameMerchi30 = _ref2.classNameMerchiCheckoutTabPaneContainer,
236
+ classNameMerchiCheckoutTabPaneContainer = _ref2$classNameMerchi30 === void 0 ? 'tab-content' : _ref2$classNameMerchi30,
237
+ _ref2$classNameMerchi31 = _ref2.classNameMerchiInvoiceButtonPayInvoice,
238
+ classNameMerchiInvoiceButtonPayInvoice = _ref2$classNameMerchi31 === void 0 ? 'btn btn-lg btn-primary btn-block' : _ref2$classNameMerchi31,
239
+ currentUser = _ref2.currentUser,
240
+ _ref2$discountButtonT = _ref2.discountButtonText,
241
+ discountButtonText = _ref2$discountButtonT === void 0 ? 'Apply' : _ref2$discountButtonT,
242
+ _ref2$discountClassNa = _ref2.discountClassName,
243
+ discountClassName = _ref2$discountClassNa === void 0 ? 'merchi-checkout-discount-code-container' : _ref2$discountClassNa,
244
+ _ref2$discountClassNa2 = _ref2.discountClassNameButton,
245
+ discountClassNameButton = _ref2$discountClassNa2 === void 0 ? 'btn btn-primary' : _ref2$discountClassNa2,
246
+ _ref2$discountClassNa3 = _ref2.discountClassNameButtonContainer,
247
+ discountClassNameButtonContainer = _ref2$discountClassNa3 === void 0 ? '' : _ref2$discountClassNa3,
248
+ _ref2$discountClassNa4 = _ref2.discountClassNameButtonItemRemove,
249
+ discountClassNameButtonItemRemove = _ref2$discountClassNa4 === void 0 ? 'btn btn-sm btn-link' : _ref2$discountClassNa4,
250
+ _ref2$discountClassNa5 = _ref2.discountClassNameErrorMessage,
251
+ discountClassNameErrorMessage = _ref2$discountClassNa5 === void 0 ? 'text-danger' : _ref2$discountClassNa5,
252
+ _ref2$discountClassNa6 = _ref2.discountClassNameInput,
253
+ discountClassNameInput = _ref2$discountClassNa6 === void 0 ? 'form-control' : _ref2$discountClassNa6,
254
+ _ref2$discountClassNa7 = _ref2.discountClassNameInputContainer,
255
+ discountClassNameInputContainer = _ref2$discountClassNa7 === void 0 ? 'merchi-checkout-discount-code-field-container' : _ref2$discountClassNa7,
256
+ _ref2$discountClassNa8 = _ref2.discountClassNameInputdiscountLabel,
257
+ discountClassNameInputdiscountLabel = _ref2$discountClassNa8 === void 0 ? 'merchi-checkout-discount-code-label' : _ref2$discountClassNa8,
258
+ _ref2$discountClassNa9 = _ref2.discountClassNameListItem,
259
+ discountClassNameListItem = _ref2$discountClassNa9 === void 0 ? 'list-group-item d-flex align-items-center justify-content-between mt-2' : _ref2$discountClassNa9,
260
+ _ref2$discountClassNa0 = _ref2.discountClassNameListItems,
261
+ discountClassNameListItems = _ref2$discountClassNa0 === void 0 ? 'list-group' : _ref2$discountClassNa0,
262
+ discountClassNameMainContainer = _ref2.discountClassNameMainContainer,
263
+ _ref2$discountLabel = _ref2.discountLabel,
264
+ discountLabel = _ref2$discountLabel === void 0 ? 'Apply Discount Code' : _ref2$discountLabel,
265
+ _ref2$discountShowApp = _ref2.discountShowAppliedItems,
266
+ discountShowAppliedItems = _ref2$discountShowApp === void 0 ? true : _ref2$discountShowApp,
267
+ _ref2$includeDomainSi = _ref2.includeDomainSignup,
268
+ includeDomainSignup = _ref2$includeDomainSi === void 0 ? false : _ref2$includeDomainSi,
269
+ invoice = _ref2.invoice,
270
+ isBuyRequest = _ref2.isBuyRequest,
271
+ isOpen = _ref2.isOpen,
272
+ _ref2$isProductEmbedF = _ref2.isProductEmbedForm,
273
+ isProductEmbedForm = _ref2$isProductEmbedF === void 0 ? false : _ref2$isProductEmbedF,
274
+ job = _ref2.job,
275
+ product = _ref2.product,
276
+ messageSuccessBuyRequest = _ref2.messageSuccessBuyRequest,
277
+ messageSuccessQuoteRequest = _ref2.messageSuccessQuoteRequest,
278
+ redirectAfterSuccessUrl = _ref2.redirectAfterSuccessUrl,
279
+ redirectAfterQuoteSuccessUrl = _ref2.redirectAfterQuoteSuccessUrl,
280
+ redirectWithValue = _ref2.redirectWithValue,
281
+ setInvoice = _ref2.setInvoice,
282
+ setJob = _ref2.setJob,
283
+ _ref2$showDiscountCod = _ref2.showDiscountCode,
284
+ showDiscountCode = _ref2$showDiscountCod === void 0 ? true : _ref2$showDiscountCod,
285
+ _ref2$showUserTermsAn = _ref2.showUserTermsAndConditions,
286
+ showUserTermsAndConditions = _ref2$showUserTermsAn === void 0 ? true : _ref2$showUserTermsAn,
287
+ toggleMerchiCheckout = _ref2.toggleMerchiCheckout,
288
+ _ref2$urlApi = _ref2.urlApi,
289
+ urlApi = _ref2$urlApi === void 0 ? 'https://api.merchi.co/v6/' : _ref2$urlApi,
290
+ _ref2$urlFrontend = _ref2.urlFrontend,
291
+ urlFrontend = _ref2$urlFrontend === void 0 ? 'https://merchi.co/' : _ref2$urlFrontend;
292
+ var initialTabsState = getInitialTabsState(job, product, includeDomainSignup, isBuyRequest, invoice);
293
+ var _useState = useState(initialTabsState.activeTabIndex),
294
+ _useState2 = _slicedToArray(_useState, 2),
295
+ activeTabIndex = _useState2[0],
296
+ setActiveTabIndex = _useState2[1];
297
+ var _useState3 = useState(false),
298
+ _useState4 = _slicedToArray(_useState3, 2),
299
+ loading = _useState4[0],
300
+ setLoading = _useState4[1];
301
+ var _useState5 = useState([]),
302
+ _useState6 = _slicedToArray(_useState5, 2),
303
+ alerts = _useState6[0],
304
+ setAlerts = _useState6[1];
305
+ var _useState7 = useState(null),
306
+ _useState8 = _slicedToArray(_useState7, 2),
307
+ domain = _useState8[0],
308
+ setDomain = _useState8[1];
309
+ var _useState9 = useState(initialTabsState.tabs),
310
+ _useState0 = _slicedToArray(_useState9, 2),
311
+ tabs = _useState0[0],
312
+ setTabs = _useState0[1];
313
+ var merchi = new Merchi(undefined, undefined, undefined, undefined, urlApi);
314
+ function editDraftTemplate(index, draft) {
315
+ var jobJson = _objectSpread({}, job);
316
+ var draftTemplates = product.draftTemplates || [];
317
+ var draftTemplateFiles = draftTemplates.map(function (d) {
318
+ return d.file;
319
+ });
320
+ var ownDraft = jobJson.ownDrafts && jobJson.ownDrafts[0] || {
321
+ images: draftTemplateFiles
322
+ };
323
+ if (ownDraft.images) {
324
+ ownDraft.images[index] = draft;
325
+ } else {
326
+ ownDraft.images = [draft];
327
+ }
328
+ jobJson.ownDrafts = [ownDraft];
329
+ setJob(jobJson);
330
+ }
331
+ function alertClose(index) {
332
+ var updatedAlerts = alerts.filter(function (_, idx) {
333
+ return idx !== index;
334
+ });
335
+ setAlerts(updatedAlerts);
336
+ }
337
+ function alertErrorShow(message) {
338
+ var newAlerts = [].concat(_toConsumableArray(alerts), [{
339
+ alertType: 'error',
340
+ message: message,
341
+ title: 'Error!'
342
+ }]);
343
+ setAlerts(newAlerts);
344
+ }
345
+ function initTabsFromJob(jobForTabs) {
346
+ var tabIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
347
+ var _buildTabsState = buildTabsState(jobForTabs, {
348
+ includeDomainSignup: includeDomainSignup,
349
+ isBuyRequest: isBuyRequest,
350
+ tabIndex: tabIndex
351
+ }),
352
+ nextTabs = _buildTabsState.tabs,
353
+ nextIndex = _buildTabsState.activeTabIndex;
354
+ setTabs(nextTabs);
355
+ setActiveTabIndex(nextIndex);
356
+ }
357
+ function resetTabs() {
358
+ initTabsFromJob(job, activeTabIndex);
359
+ }
360
+ function setCustomer(customer, options) {
361
+ var updatedJob = _objectSpread(_objectSpread({}, job), {}, {
362
+ client: customer,
363
+ sendWhatsapp: (options === null || options === void 0 ? void 0 : options.sendWhatsapp) === true
364
+ });
365
+ setJob(updatedJob);
366
+ initTabsFromJob(updatedJob, isUserRegistered(customer) ? activeTabIndex : 0);
367
+ }
368
+ function clearCustomer() {
369
+ var updatedJob = _objectSpread(_objectSpread({}, job), {}, {
370
+ client: {},
371
+ sendWhatsapp: false
372
+ });
373
+ setJob(updatedJob);
374
+ initTabsFromJob(updatedJob, 0);
375
+ }
376
+ function cancelCheckoutOrder() {
377
+ var updatedJob = _objectSpread({}, job);
378
+ delete updatedJob.id;
379
+ updatedJob.sendWhatsapp = false;
380
+ setInvoice({});
381
+ setJob(updatedJob);
382
+ var confirmIndex = tabs.findIndex(function (t) {
383
+ return t.id === tabIdConfirm;
384
+ });
385
+ initTabsFromJob(updatedJob, confirmIndex >= 0 ? confirmIndex : 0);
386
+ }
387
+ function nextTab() {
388
+ var ndextIndex = activeTabIndex + 1;
389
+ var _tabs = _toConsumableArray(tabs);
390
+ _tabs[ndextIndex].disabled = false;
391
+ setTabs(_tabs);
392
+ setActiveTabIndex(ndextIndex);
393
+ }
394
+ function setActiveTabById(tabId) {
395
+ var index = tabs.findIndex(function (t) {
396
+ return t.id === tabId;
397
+ });
398
+ setActiveTabIndex(index);
399
+ }
400
+ var quoteSignature = getCheckoutQuoteSignature(job);
401
+ var quoteSignatureRef = React.useRef('');
402
+ useLayoutEffect(function () {
403
+ if (!(product !== null && product !== void 0 && product.id)) return;
404
+ var session = loadCheckoutSession(product);
405
+ var mergedJob = mergeJobWithCheckoutSession(job, session);
406
+ if (checkoutSessionChanged(job, mergedJob)) {
407
+ setJob(mergedJob);
408
+ }
409
+ var quoteChanged = quoteSignatureRef.current !== quoteSignature;
410
+ quoteSignatureRef.current = quoteSignature;
411
+ if (!tabs.length || quoteChanged) {
412
+ var _session$activeTabInd2;
413
+ var restoredInvoice = invoice !== null && invoice !== void 0 && invoice.id ? invoice : session === null || session === void 0 ? void 0 : session.invoice;
414
+ var restoredIndex = quoteChanged && !(restoredInvoice !== null && restoredInvoice !== void 0 && restoredInvoice.id) ? 0 : getSafeRestoredTabIndex(mergedJob, {
415
+ includeDomainSignup: includeDomainSignup,
416
+ isBuyRequest: isBuyRequest
417
+ }, (_session$activeTabInd2 = session === null || session === void 0 ? void 0 : session.activeTabIndex) !== null && _session$activeTabInd2 !== void 0 ? _session$activeTabInd2 : 0, restoredInvoice);
418
+ initTabsFromJob(mergedJob, restoredIndex);
419
+ }
420
+ if (!isUserRegistered(mergedJob.client) && !isUserRegistered(session === null || session === void 0 ? void 0 : session.client) && isUserRegistered(currentUser)) {
421
+ setJob(_objectSpread(_objectSpread({}, mergedJob), {}, {
422
+ client: currentUser
423
+ }));
424
+ }
425
+ }, [product === null || product === void 0 ? void 0 : product.id, quoteSignature]);
426
+ useEffect(function () {
427
+ var _session$invoice;
428
+ if (!(product !== null && product !== void 0 && product.id)) return;
429
+ var session = loadCheckoutSession(product);
430
+ 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) {
431
+ setInvoice(session.invoice);
432
+ }
433
+ }, [product === null || product === void 0 ? void 0 : product.id]);
434
+ useEffect(function () {
435
+ var _product$domain$id, _product$domain, _job$domain;
436
+ if (!isOpen) {
437
+ setDomain(null);
438
+ return;
439
+ }
440
+ var domainId = (_product$domain$id = product === null || product === void 0 || (_product$domain = product.domain) === null || _product$domain === void 0 ? void 0 : _product$domain.id) !== null && _product$domain$id !== void 0 ? _product$domain$id : job === null || job === void 0 || (_job$domain = job.domain) === null || _job$domain === void 0 ? void 0 : _job$domain.id;
441
+ if (!domainId) {
442
+ setDomain(null);
443
+ return;
444
+ }
445
+ var cancelled = false;
446
+ merchi.Domain.get(domainId).then(function (domainEntity) {
447
+ if (cancelled) return;
448
+ setDomain(typeof (domainEntity === null || domainEntity === void 0 ? void 0 : domainEntity.toJson) === 'function' ? domainEntity.toJson() : domainEntity);
449
+ })["catch"](function () {
450
+ if (!cancelled) setDomain(null);
451
+ });
452
+ return function () {
453
+ cancelled = true;
454
+ };
455
+ }, [isOpen, product === null || product === void 0 || (_product$domain2 = product.domain) === null || _product$domain2 === void 0 ? void 0 : _product$domain2.id, job === null || job === void 0 || (_job$domain2 = job.domain) === null || _job$domain2 === void 0 ? void 0 : _job$domain2.id, urlApi]);
456
+ useEffect(function () {
457
+ if (!(product !== null && product !== void 0 && product.id)) return;
458
+ saveCheckoutSession(product, buildCheckoutSession(job, activeTabIndex, {
459
+ invoice: invoice,
460
+ checkoutOpen: isOpen,
461
+ isBuyRequest: isBuyRequest
462
+ }, loadCheckoutSession(product)));
463
+ }, [product === null || product === void 0 ? void 0 : product.id, job.client, job.shipping, job.billing, job.shipment, job.items, activeTabIndex, invoice, isOpen, isBuyRequest]);
464
+ function discountCallbackSuccess(items) {
465
+ setJob(_objectSpread(_objectSpread({}, job), {}, {
466
+ items: items
467
+ }));
468
+ }
469
+ function discountCallbackError() {
470
+ setJob(_objectSpread(_objectSpread({}, job), {}, {
471
+ items: []
472
+ }));
473
+ }
474
+ return /*#__PURE__*/_jsx(MerchiCheckoutContext.Provider, {
475
+ value: {
476
+ activeTabIndex: activeTabIndex,
477
+ alerts: alerts,
478
+ alertClose: alertClose,
479
+ alertErrorShow: alertErrorShow,
480
+ classNameMerchiCheckoutAlertsContainer: classNameMerchiCheckoutAlertsContainer,
481
+ classNameMerchiCheckoutAlert: classNameMerchiCheckoutAlert,
482
+ classNameMerchiCheckoutAlertError: classNameMerchiCheckoutAlertError,
483
+ classNameMerchiCheckoutAlertSuccess: classNameMerchiCheckoutAlertSuccess,
484
+ classNameMerchiCheckoutButtonPrimary: classNameMerchiCheckoutButtonPrimary,
485
+ classNameMerchiCheckoutButtonPrimaryBlock: classNameMerchiCheckoutButtonPrimaryBlock,
486
+ classNameMerchiCheckoutButtonSecondary: classNameMerchiCheckoutButtonSecondary,
487
+ classNameMerchiCheckoutButtonSecondaryBlock: classNameMerchiCheckoutButtonSecondaryBlock,
488
+ classNameMerchiCheckoutButtonDownloadInvoice: classNameMerchiCheckoutButtonDownloadInvoice,
489
+ classNameMerchiCheckoutButtonCancelOrder: classNameMerchiCheckoutButtonCancelOrder,
490
+ classNameMerchiCheckoutConfirmInfoPanel: classNameMerchiCheckoutConfirmInfoPanel,
491
+ classNameMerchiCheckoutFooterActionsContainer: classNameMerchiCheckoutFooterActionsContainer,
492
+ classNameMerchiCheckoutFormCheckbox: classNameMerchiCheckoutFormCheckbox,
493
+ classNameMerchiCheckoutFormGroup: classNameMerchiCheckoutFormGroup,
494
+ classNameMerchiCheckoutFormGroupCheckbox: classNameMerchiCheckoutFormGroupCheckbox,
495
+ classNameMerchiCheckoutFormInput: classNameMerchiCheckoutFormInput,
496
+ classNameMerchiCheckoutFormSelect: classNameMerchiCheckoutFormSelect,
497
+ classNameMerchiCheckoutGoogleSuggestList: classNameMerchiCheckoutGoogleSuggestList,
498
+ classNameMerchiCheckoutGoogleSuggestListItem: classNameMerchiCheckoutGoogleSuggestListItem,
499
+ classNameMerchiCheckoutListGroupItemLoader: classNameMerchiCheckoutListGroupItemLoader,
500
+ classNameMerchiCheckoutFormLabelCheckbox: classNameMerchiCheckoutFormLabelCheckbox,
501
+ classNameMerchiCheckoutInputError: classNameMerchiCheckoutInputError,
502
+ classNameMerchiCheckoutListGroup: classNameMerchiCheckoutListGroup,
503
+ classNameMerchiCheckoutListGroupItem: classNameMerchiCheckoutListGroupItem,
504
+ classNameMerchiCheckoutRow: classNameMerchiCheckoutRow,
505
+ classNameMerchiCheckoutRowColumn: classNameMerchiCheckoutRowColumn,
506
+ classNameMerchiCheckoutSubtitle: classNameMerchiCheckoutSubtitle,
507
+ classNameMerchiCheckoutTabsContainer: classNameMerchiCheckoutTabsContainer,
508
+ classNameMerchiCheckoutTab: classNameMerchiCheckoutTab,
509
+ classNameMerchiCheckoutTabButton: classNameMerchiCheckoutTabButton,
510
+ classNameMerchiCheckoutTabPane: classNameMerchiCheckoutTabPane,
511
+ classNameMerchiCheckoutTabPaneContainer: classNameMerchiCheckoutTabPaneContainer,
512
+ classNameMerchiInvoiceButtonPayInvoice: classNameMerchiInvoiceButtonPayInvoice,
513
+ clearCustomer: clearCustomer,
514
+ cancelCheckoutOrder: cancelCheckoutOrder,
515
+ currentUser: currentUser,
516
+ customer: job.client || {},
517
+ discountButtonText: discountButtonText,
518
+ discountCallbackError: discountCallbackError,
519
+ discountCallbackSuccess: discountCallbackSuccess,
520
+ discountClassName: discountClassName,
521
+ discountClassNameButton: discountClassNameButton,
522
+ discountClassNameButtonContainer: discountClassNameButtonContainer,
523
+ discountClassNameButtonItemRemove: discountClassNameButtonItemRemove,
524
+ discountClassNameErrorMessage: discountClassNameErrorMessage,
525
+ discountClassNameInput: discountClassNameInput,
526
+ discountClassNameInputContainer: discountClassNameInputContainer,
527
+ discountClassNameInputdiscountLabel: discountClassNameInputdiscountLabel,
528
+ discountClassNameListItem: discountClassNameListItem,
529
+ discountClassNameListItems: discountClassNameListItems,
530
+ discountClassNameMainContainer: discountClassNameMainContainer,
531
+ discountLabel: discountLabel,
532
+ discountShowAppliedItems: discountShowAppliedItems,
533
+ domain: domain,
534
+ editDraftTemplate: editDraftTemplate,
535
+ includeDomainSignup: includeDomainSignup,
536
+ invoice: invoice,
537
+ isBuyRequest: isBuyRequest,
538
+ isOpen: isOpen,
539
+ isProductEmbedForm: isProductEmbedForm,
540
+ job: job,
541
+ loading: loading,
542
+ merchi: merchi,
543
+ messageSuccessBuyRequest: messageSuccessBuyRequest,
544
+ messageSuccessQuoteRequest: messageSuccessQuoteRequest,
545
+ nextTab: nextTab,
546
+ product: product,
547
+ redirectAfterSuccessUrl: redirectAfterSuccessUrl,
548
+ redirectAfterQuoteSuccessUrl: redirectAfterQuoteSuccessUrl,
549
+ redirectWithValue: redirectWithValue,
550
+ setActiveTabById: setActiveTabById,
551
+ setActiveTabIndex: setActiveTabIndex,
552
+ setCustomer: setCustomer,
553
+ setDomain: setDomain,
554
+ setInvoice: setInvoice,
555
+ setJob: setJob,
556
+ showDiscountCode: showDiscountCode,
557
+ showUserTermsAndConditions: showUserTermsAndConditions,
558
+ tabs: tabs,
559
+ toggleMerchiCheckout: toggleMerchiCheckout,
560
+ urlApi: urlApi,
561
+ urlFrontend: urlFrontend
562
+ },
563
+ children: /*#__PURE__*/_jsx("div", {
564
+ className: "merchi-checkout",
565
+ children: children
566
+ })
567
+ });
568
+ };
569
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdHlwZW9mIiwibyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJyIiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIlR5cGVFcnJvciIsIkFycmF5IiwiZnJvbSIsImlzQXJyYXkiLCJfYXJyYXlMaWtlVG9BcnJheSIsIl9zbGljZWRUb0FycmF5IiwiZSIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl9ub25JdGVyYWJsZVJlc3QiLCJhIiwidCIsInRvU3RyaW5nIiwiY2FsbCIsInNsaWNlIiwibmFtZSIsInRlc3QiLCJsZW5ndGgiLCJuIiwibCIsImkiLCJ1IiwiZiIsIm5leHQiLCJPYmplY3QiLCJkb25lIiwicHVzaCIsInZhbHVlIiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiX3RvUHJpbWl0aXZlIiwidG9QcmltaXRpdmUiLCJTdHJpbmciLCJOdW1iZXIiLCJSZWFjdCIsImNyZWF0ZUNvbnRleHQiLCJ1c2VDb250ZXh0IiwidXNlRWZmZWN0IiwidXNlTGF5b3V0RWZmZWN0IiwidXNlU3RhdGUiLCJ0YWJzSW5pdCIsInRhYklkQ29uZmlybSIsIk1lcmNoaSIsImJ1aWxkQ2hlY2tvdXRTZXNzaW9uIiwiY2hlY2tvdXRTZXNzaW9uQ2hhbmdlZCIsImdldENoZWNrb3V0UXVvdGVTaWduYXR1cmUiLCJnZXRTYWZlUmVzdG9yZWRUYWJJbmRleCIsImxvYWRDaGVja291dFNlc3Npb24iLCJtZXJnZUpvYldpdGhDaGVja291dFNlc3Npb24iLCJzYXZlQ2hlY2tvdXRTZXNzaW9uIiwiaXNVc2VyUmVnaXN0ZXJlZCIsImpzeCIsIl9qc3giLCJNZXJjaGlDaGVja291dENvbnRleHQiLCJhY3RpdmVUYWJJbmRleCIsImFsZXJ0cyIsImFsZXJ0Q2xvc2UiLCJhbGVydEVycm9yU2hvdyIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QWxlcnRzQ29udGFpbmVyIiwidW5kZWZpbmVkIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydCIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QWxlcnRFcnJvciIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QWxlcnRTdWNjZXNzIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25QcmltYXJ5IiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25QcmltYXJ5QmxvY2siLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblNlY29uZGFyeSIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5QmxvY2siLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvbkRvd25sb2FkSW52b2ljZSIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Q29uZmlybUluZm9QYW5lbCIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9vdGVyQWN0aW9uc0NvbnRhaW5lciIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUNoZWNrYm94IiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtR3JvdXAiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1Hcm91cENoZWNrYm94IiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtSW5wdXQiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1TZWxlY3QiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEdvb2dsZVN1Z2dlc3RMaXN0IiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRHb29nbGVTdWdnZXN0TGlzdEl0ZW0iLCJjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cEl0ZW1Mb2FkZXIiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1MYWJlbENoZWNrYm94IiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRJbnB1dEVycm9yIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRMaXN0R3JvdXAiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cEl0ZW0iLCJjbGFzc05hbWVNZXJjaGlDaGVja291dFJvdyIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Um93Q29sdW1uIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRTdWJ0aXRsZSIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFic0NvbnRhaW5lciIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJQYW5lIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJQYW5lQ29udGFpbmVyIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJCdXR0b24iLCJjbGFzc05hbWVNZXJjaGlJbnZvaWNlQnV0dG9uUGF5SW52b2ljZSIsImNsZWFyQ3VzdG9tZXIiLCJjYW5jZWxDaGVja291dE9yZGVyIiwiY3VycmVudFVzZXIiLCJjdXN0b21lciIsImRpc2NvdW50QnV0dG9uVGV4dCIsImRpc2NvdW50Q2FsbGJhY2tFcnJvciIsImRpc2NvdW50Q2FsbGJhY2tTdWNjZXNzIiwiZGlzY291bnRDbGFzc05hbWUiLCJkaXNjb3VudENsYXNzTmFtZUJ1dHRvbiIsImRpc2NvdW50Q2xhc3NOYW1lQnV0dG9uQ29udGFpbmVyIiwiZGlzY291bnRDbGFzc05hbWVCdXR0b25JdGVtUmVtb3ZlIiwiZGlzY291bnRDbGFzc05hbWVFcnJvck1lc3NhZ2UiLCJkaXNjb3VudENsYXNzTmFtZUlucHV0IiwiZGlzY291bnRDbGFzc05hbWVJbnB1dENvbnRhaW5lciIsImRpc2NvdW50Q2xhc3NOYW1lSW5wdXRkaXNjb3VudExhYmVsIiwiZGlzY291bnRDbGFzc05hbWVMaXN0SXRlbSIsImRpc2NvdW50Q2xhc3NOYW1lTGlzdEl0ZW1zIiwiZGlzY291bnRDbGFzc05hbWVNYWluQ29udGFpbmVyIiwiZGlzY291bnRMYWJlbCIsImRpc2NvdW50U2hvd0FwcGxpZWRJdGVtcyIsImRvbWFpbiIsImVkaXREcmFmdFRlbXBsYXRlIiwiaXNCdXlSZXF1ZXN0IiwiaXNPcGVuIiwibG9hZGluZyIsIm1lcmNoaSIsIm1lc3NhZ2VTdWNjZXNzQnV5UmVxdWVzdCIsIm1lc3NhZ2VTdWNjZXNzUXVvdGVSZXF1ZXN0IiwibmV4dFRhYiIsImluY2x1ZGVEb21haW5TaWdudXAiLCJpbnZvaWNlIiwiaXNQcm9kdWN0RW1iZWRGb3JtIiwiam9iIiwicHJvZHVjdCIsInJlZGlyZWN0QWZ0ZXJTdWNjZXNzVXJsIiwicmVkaXJlY3RBZnRlclF1b3RlU3VjY2Vzc1VybCIsInJlZGlyZWN0V2l0aFZhbHVlIiwic2V0QWN0aXZlVGFiQnlJZCIsInNldEFjdGl2ZVRhYkluZGV4Iiwic2V0Q3VzdG9tZXIiLCJzZXREb21haW4iLCJzZXRJbnZvaWNlIiwic2V0Sm9iIiwic2hvd0Rpc2NvdW50Q29kZSIsInNob3dVc2VyVGVybXNBbmRDb25kaXRpb25zIiwidGFicyIsInRvZ2dsZU1lcmNoaUNoZWNrb3V0IiwidXJsRnJvbnRlbmQiLCJ1cmxBcGkiLCJ1c2VNZXJjaGlDaGVja2JvdXRDb250ZXh0IiwiYnVpbGRUYWJzU3RhdGUiLCJqb2JGb3JUYWJzIiwiX3JlZiIsIl9yZWYkdGFiSW5kZXgiLCJ0YWJJbmRleCIsImJhc2VUYWJzIiwic2FmZUluZGV4IiwiTWF0aCIsIm1heCIsIm1pbiIsInRhYnNXaXRoUHJvZ3Jlc3MiLCJtYXAiLCJ0YWIiLCJkaXNhYmxlZCIsImdldEluaXRpYWxUYWJzU3RhdGUiLCJfc2Vzc2lvbiRhY3RpdmVUYWJJbmQiLCJpZCIsInNlc3Npb24iLCJtZXJnZWRKb2IiLCJyZXN0b3JlZEludm9pY2UiLCJNZXJjaGlDaGVja291dFByb3ZpZGVyIiwiX3JlZjIiLCJfcHJvZHVjdCRkb21haW4yIiwiX2pvYiRkb21haW4yIiwiY2hpbGRyZW4iLCJfcmVmMiRjbGFzc05hbWVNZXJjaGkiLCJfcmVmMiRjbGFzc05hbWVNZXJjaGkyIiwiX3JlZjIkY2xhc3NOYW1lTWVyY2hpMyIsIl9yZWYyJGNsYXNzTmFtZU1lcmNoaTQiLCJfcmVmMiRjbGFzc05hbWVNZXJjaGk1IiwiX3JlZjIkY2xhc3NOYW1lTWVyY2hpNiIsIl9yZWYyJGNsYXNzTmFtZU1lcmNoaTciLCJfcmVmMiRjbGFzc05hbWVNZXJjaGk4IiwiX3JlZjIkY2xhc3NOYW1lTWVyY2hpOSIsIl9yZWYyJGNsYXNzTmFtZU1lcmNoaTAiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvbkNhbmNlbE9yZGVyIiwiX3JlZjIkY2xhc3NOYW1lTWVyY2hpMSIsIl9yZWYyJGNsYXNzTmFtZU1lcmNoaTEwIiwiX3JlZjIkY2xhc3NOYW1lTWVyY2hpMTEiLCJfcmVmMiRjbGFzc05hbWVNZXJjaGkxMiIsIl9yZWYyJGNsYXNzTmFtZU1lcmNoaTEzIiwiX3JlZjIkY2xhc3NOYW1lTWVyY2hpMTQiLCJfcmVmMiRjbGFzc05hbWVNZXJjaGkxNSIsIl9yZWYyJGNsYXNzTmFtZU1lcmNoaTE2IiwiX3JlZjIkY2xhc3NOYW1lTWVyY2hpMTciLCJfcmVmMiRjbGFzc05hbWVNZXJjaGkxOCIsIl9yZWYyJGNsYXNzTmFtZU1lcmNoaTE5IiwiX3JlZjIkY2xhc3NOYW1lTWVyY2hpMjAiLCJfcmVmMiRjbGFzc05hbWVNZXJjaGkyMSIsIl9yZWYyJGNsYXNzTmFtZU1lcmNoaTIyIiwiX3JlZjIkY2xhc3NOYW1lTWVyY2hpMjMiLCJfcmVmMiRjbGFzc05hbWVNZXJjaGkyNCIsIl9yZWYyJGNsYXNzTmFtZU1lcmNoaTI1IiwiX3JlZjIkY2xhc3NOYW1lTWVyY2hpMjYiLCJfcmVmMiRjbGFzc05hbWVNZXJjaGkyNyIsIl9yZWYyJGNsYXNzTmFtZU1lcmNoaTI4IiwiX3JlZjIkY2xhc3NOYW1lTWVyY2hpMjkiLCJfcmVmMiRjbGFzc05hbWVNZXJjaGkzMCIsIl9yZWYyJGNsYXNzTmFtZU1lcmNoaTMxIiwiX3JlZjIkZGlzY291bnRCdXR0b25UIiwiX3JlZjIkZGlzY291bnRDbGFzc05hIiwiX3JlZjIkZGlzY291bnRDbGFzc05hMiIsIl9yZWYyJGRpc2NvdW50Q2xhc3NOYTMiLCJfcmVmMiRkaXNjb3VudENsYXNzTmE0IiwiX3JlZjIkZGlzY291bnRDbGFzc05hNSIsIl9yZWYyJGRpc2NvdW50Q2xhc3NOYTYiLCJfcmVmMiRkaXNjb3VudENsYXNzTmE3IiwiX3JlZjIkZGlzY291bnRDbGFzc05hOCIsIl9yZWYyJGRpc2NvdW50Q2xhc3NOYTkiLCJfcmVmMiRkaXNjb3VudENsYXNzTmEwIiwiX3JlZjIkZGlzY291bnRMYWJlbCIsIl9yZWYyJGRpc2NvdW50U2hvd0FwcCIsIl9yZWYyJGluY2x1ZGVEb21haW5TaSIsIl9yZWYyJGlzUHJvZHVjdEVtYmVkRiIsIl9yZWYyJHNob3dEaXNjb3VudENvZCIsIl9yZWYyJHNob3dVc2VyVGVybXNBbiIsIl9yZWYyJHVybEFwaSIsIl9yZWYyJHVybEZyb250ZW5kIiwiaW5pdGlhbFRhYnNTdGF0ZSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInNldExvYWRpbmciLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInNldEFsZXJ0cyIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTAiLCJzZXRUYWJzIiwiaW5kZXgiLCJkcmFmdCIsImpvYkpzb24iLCJkcmFmdFRlbXBsYXRlcyIsImRyYWZ0VGVtcGxhdGVGaWxlcyIsImQiLCJmaWxlIiwib3duRHJhZnQiLCJvd25EcmFmdHMiLCJpbWFnZXMiLCJ1cGRhdGVkQWxlcnRzIiwiXyIsImlkeCIsIm1lc3NhZ2UiLCJuZXdBbGVydHMiLCJjb25jYXQiLCJhbGVydFR5cGUiLCJ0aXRsZSIsImluaXRUYWJzRnJvbUpvYiIsIl9idWlsZFRhYnNTdGF0ZSIsIm5leHRUYWJzIiwibmV4dEluZGV4IiwicmVzZXRUYWJzIiwib3B0aW9ucyIsInVwZGF0ZWRKb2IiLCJjbGllbnQiLCJzZW5kV2hhdHNhcHAiLCJjb25maXJtSW5kZXgiLCJmaW5kSW5kZXgiLCJuZGV4dEluZGV4IiwiX3RhYnMiLCJ0YWJJZCIsInF1b3RlU2lnbmF0dXJlIiwicXVvdGVTaWduYXR1cmVSZWYiLCJ1c2VSZWYiLCJxdW90ZUNoYW5nZWQiLCJjdXJyZW50IiwiX3Nlc3Npb24kYWN0aXZlVGFiSW5kMiIsInJlc3RvcmVkSW5kZXgiLCJfc2Vzc2lvbiRpbnZvaWNlIiwiX3Byb2R1Y3QkZG9tYWluJGlkIiwiX3Byb2R1Y3QkZG9tYWluIiwiX2pvYiRkb21haW4iLCJkb21haW5JZCIsImNhbmNlbGxlZCIsIkRvbWFpbiIsImdldCIsInRoZW4iLCJkb21haW5FbnRpdHkiLCJ0b0pzb24iLCJjaGVja291dE9wZW4iLCJzaGlwcGluZyIsImJpbGxpbmciLCJzaGlwbWVudCIsIml0ZW1zIiwiUHJvdmlkZXIiLCJjbGFzc05hbWUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy9NZXJjaGlDaGVja291dFByb3ZpZGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQge1xuICBjcmVhdGVDb250ZXh0LFxuICBSZWFjdE5vZGUsXG4gIHVzZUNvbnRleHQsXG4gIHVzZUVmZmVjdCxcbiAgdXNlTGF5b3V0RWZmZWN0LFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTWVyY2hpQ2hlY2tvdXRUYWIgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyB0YWJzSW5pdCwgdGFiSWRDb25maXJtIH0gZnJvbSAnLi4vdGFic191dGlscyc7XG5pbXBvcnQgeyBNZXJjaGkgfSBmcm9tICdAbWVyY2hpL3Nkayc7XG5pbXBvcnQge1xuICBidWlsZENoZWNrb3V0U2Vzc2lvbixcbiAgY2hlY2tvdXRTZXNzaW9uQ2hhbmdlZCxcbiAgZ2V0Q2hlY2tvdXRRdW90ZVNpZ25hdHVyZSxcbiAgZ2V0U2FmZVJlc3RvcmVkVGFiSW5kZXgsXG4gIGxvYWRDaGVja291dFNlc3Npb24sXG4gIG1lcmdlSm9iV2l0aENoZWNrb3V0U2Vzc2lvbixcbiAgc2F2ZUNoZWNrb3V0U2Vzc2lvbixcbn0gZnJvbSAnLi4vY2hlY2tvdXRTZXNzaW9uJztcbmltcG9ydCB7IGlzVXNlclJlZ2lzdGVyZWQgfSBmcm9tICcuLi91dGlscyc7XG5cbmludGVyZmFjZSBJTWVyY2hpQ2hlY2tvdXQge1xuICBhY3RpdmVUYWJJbmRleDogbnVtYmVyO1xuICBhbGVydHM6IGFueVtdO1xuICBhbGVydENsb3NlOiAoaW5kZXg6IG51bWJlcikgPT4gdm9pZDtcbiAgYWxlcnRFcnJvclNob3c6IChtZXNzYWdlOiBzdHJpbmcpID0+IHZvaWQ7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QWxlcnRzQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0RXJyb3I/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QWxlcnRTdWNjZXNzPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblByaW1hcnk/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uUHJpbWFyeUJsb2NrPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblNlY29uZGFyeT86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25TZWNvbmRhcnlCbG9jaz86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25Eb3dubG9hZEludm9pY2U/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uQ2FuY2VsT3JkZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Q29uZmlybUluZm9QYW5lbD86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb290ZXJBY3Rpb25zQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1DaGVja2JveD86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtR3JvdXA/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUdyb3VwQ2hlY2tib3g/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUlucHV0Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1TZWxlY3Q/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0R29vZ2xlU3VnZ2VzdExpc3Q/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0R29vZ2xlU3VnZ2VzdExpc3RJdGVtPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cEl0ZW1Mb2FkZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUxhYmVsQ2hlY2tib3g/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0SW5wdXRFcnJvcj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRMaXN0R3JvdXA/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwSXRlbT86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRSb3c/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Um93Q29sdW1uPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFN1YnRpdGxlPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYnNDb250YWluZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYlBhbmU/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiUGFuZUNvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJCdXR0b24/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUludm9pY2VCdXR0b25QYXlJbnZvaWNlPzogc3RyaW5nO1xuICBjbGVhckN1c3RvbWVyOiAoKSA9PiB2b2lkO1xuICBjYW5jZWxDaGVja291dE9yZGVyOiAoKSA9PiB2b2lkO1xuICBjdXJyZW50VXNlcj86IGFueTtcbiAgY3VzdG9tZXI/OiBhbnk7XG4gIGRpc2NvdW50QnV0dG9uVGV4dD86IHN0cmluZztcbiAgZGlzY291bnRDYWxsYmFja0Vycm9yOiAoKSA9PiB2b2lkO1xuICBkaXNjb3VudENhbGxiYWNrU3VjY2VzczogKGl0ZW1zOiBhbnlbXSkgPT4gdm9pZDtcbiAgZGlzY291bnRDbGFzc05hbWU/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lTWFpbkNvbnRhaW5lcj86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVCdXR0b25JdGVtUmVtb3ZlPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUJ1dHRvbj86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVCdXR0b25Db250YWluZXI/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUlucHV0Pzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUxpc3RJdGVtPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUxpc3RJdGVtcz86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVJbnB1dENvbnRhaW5lcj86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVJbnB1dGRpc2NvdW50TGFiZWw/OiBzdHJpbmc7XG4gIGRpc2NvdW50TGFiZWw/OiBzdHJpbmc7XG4gIGRpc2NvdW50U2hvd0FwcGxpZWRJdGVtcz86IGJvb2xlYW47XG4gIGRvbWFpbj86IGFueTtcbiAgZWRpdERyYWZ0VGVtcGxhdGU6IChpbmRleDogbnVtYmVyLCBkcmFmdDogYW55KSA9PiB2b2lkO1xuICBpbmNsdWRlRG9tYWluU2lnbnVwPzogYm9vbGVhbjtcbiAgaW52b2ljZTogYW55O1xuICBpc0J1eVJlcXVlc3Q/OiBib29sZWFuO1xuICBpc09wZW4/OiBib29sZWFuO1xuICBpc1Byb2R1Y3RFbWJlZEZvcm0/OiBib29sZWFuO1xuICBqb2I6IGFueTtcbiAgbG9hZGluZzogYm9vbGVhbjtcbiAgbWVyY2hpOiBNZXJjaGk7XG4gIG1lc3NhZ2VTdWNjZXNzQnV5UmVxdWVzdD86IHN0cmluZztcbiAgbWVzc2FnZVN1Y2Nlc3NRdW90ZVJlcXVlc3Q/OiBzdHJpbmc7XG4gIG5leHRUYWI6ICgpID0+IHZvaWQ7XG4gIHByb2R1Y3Q6IGFueTtcbiAgcmVkaXJlY3RBZnRlclN1Y2Nlc3NVcmw/OiBzdHJpbmc7XG4gIHJlZGlyZWN0QWZ0ZXJRdW90ZVN1Y2Nlc3NVcmw/OiBzdHJpbmc7XG4gIHJlZGlyZWN0V2l0aFZhbHVlPzogYm9vbGVhbjtcbiAgc2V0QWN0aXZlVGFiQnlJZDogKGlkOiBzdHJpbmcpID0+IHZvaWQ7XG4gIHNldEFjdGl2ZVRhYkluZGV4OiAoaW5kZXg6IG51bWJlcikgPT4gdm9pZDtcbiAgc2V0Q3VzdG9tZXI6IChjdXN0b21lcjogYW55LCBvcHRpb25zPzogeyBzZW5kV2hhdHNhcHA/OiBib29sZWFuIH0pID0+IHZvaWQ7XG4gIHNldERvbWFpbjogKGRvbWFpbjogYW55KSA9PiB2b2lkO1xuICBzZXRJbnZvaWNlOiAoaW52b2ljZTogYW55KSA9PiB2b2lkO1xuICBzZXRKb2I6IChqb2I6IGFueSkgPT4gdm9pZDtcbiAgc2hvd0Rpc2NvdW50Q29kZT86IGJvb2xlYW47XG4gIHNob3dVc2VyVGVybXNBbmRDb25kaXRpb25zPzogYm9vbGVhbjtcbiAgdGFiczogTWVyY2hpQ2hlY2tvdXRUYWJbXTtcbiAgdG9nZ2xlTWVyY2hpQ2hlY2tvdXQ6ICgpID0+IHZvaWQ7XG4gIHVybEZyb250ZW5kOiBzdHJpbmc7XG4gIHVybEFwaTogc3RyaW5nO1xufVxuXG5jb25zdCBNZXJjaGlDaGVja291dENvbnRleHQgPSBjcmVhdGVDb250ZXh0PElNZXJjaGlDaGVja291dD4oe1xuICBhY3RpdmVUYWJJbmRleDogMCxcbiAgYWxlcnRzOiBbXSxcbiAgYWxlcnRDbG9zZSgpIHsgfSxcbiAgYWxlcnRFcnJvclNob3coKSB7IH0sXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QWxlcnRzQ29udGFpbmVyOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QWxlcnQ6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydEVycm9yOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QWxlcnRTdWNjZXNzOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uUHJpbWFyeTogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblByaW1hcnlCbG9jazogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblNlY29uZGFyeTogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblNlY29uZGFyeUJsb2NrOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uRG93bmxvYWRJbnZvaWNlOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Q29uZmlybUluZm9QYW5lbDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvb3RlckFjdGlvbnNDb250YWluZXI6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtQ2hlY2tib3g6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtR3JvdXA6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtR3JvdXBDaGVja2JveDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1JbnB1dDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1TZWxlY3Q6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRHb29nbGVTdWdnZXN0TGlzdDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEdvb2dsZVN1Z2dlc3RMaXN0SXRlbTogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cEl0ZW1Mb2FkZXI6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtTGFiZWxDaGVja2JveDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dElucHV0RXJyb3I6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRMaXN0R3JvdXA6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRMaXN0R3JvdXBJdGVtOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Um93OiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Um93Q29sdW1uOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0U3VidGl0bGU6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJzQ29udGFpbmVyOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiUGFuZTogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYlBhbmVDb250YWluZXI6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJCdXR0b246IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpSW52b2ljZUJ1dHRvblBheUludm9pY2U6IHVuZGVmaW5lZCxcbiAgY2xlYXJDdXN0b21lcigpIHsgfSxcbiAgY2FuY2VsQ2hlY2tvdXRPcmRlcigpIHsgfSxcbiAgY3VycmVudFVzZXI6IHVuZGVmaW5lZCxcbiAgY3VzdG9tZXI6IHVuZGVmaW5lZCxcbiAgZGlzY291bnRCdXR0b25UZXh0OiB1bmRlZmluZWQsXG4gIGRpc2NvdW50Q2FsbGJhY2tFcnJvcigpIHsgfSxcbiAgZGlzY291bnRDYWxsYmFja1N1Y2Nlc3MoKSB7IH0sXG4gIGRpc2NvdW50Q2xhc3NOYW1lOiB1bmRlZmluZWQsXG4gIGRpc2NvdW50Q2xhc3NOYW1lQnV0dG9uOiB1bmRlZmluZWQsXG4gIGRpc2NvdW50Q2xhc3NOYW1lQnV0dG9uQ29udGFpbmVyOiB1bmRlZmluZWQsXG4gIGRpc2NvdW50Q2xhc3NOYW1lQnV0dG9uSXRlbVJlbW92ZTogdW5kZWZpbmVkLFxuICBkaXNjb3VudENsYXNzTmFtZUVycm9yTWVzc2FnZTogdW5kZWZpbmVkLFxuICBkaXNjb3VudENsYXNzTmFtZUlucHV0OiB1bmRlZmluZWQsXG4gIGRpc2NvdW50Q2xhc3NOYW1lSW5wdXRDb250YWluZXI6IHVuZGVmaW5lZCxcbiAgZGlzY291bnRDbGFzc05hbWVJbnB1dGRpc2NvdW50TGFiZWw6IHVuZGVmaW5lZCxcbiAgZGlzY291bnRDbGFzc05hbWVMaXN0SXRlbTogdW5kZWZpbmVkLFxuICBkaXNjb3VudENsYXNzTmFtZUxpc3RJdGVtczogdW5kZWZpbmVkLFxuICBkaXNjb3VudENsYXNzTmFtZU1haW5Db250YWluZXI6IHVuZGVmaW5lZCxcbiAgZGlzY291bnRMYWJlbDogdW5kZWZpbmVkLFxuICBkaXNjb3VudFNob3dBcHBsaWVkSXRlbXM6IHRydWUsXG4gIGRvbWFpbjogdW5kZWZpbmVkLFxuICBlZGl0RHJhZnRUZW1wbGF0ZSgpIHsgfSxcbiAgaXNCdXlSZXF1ZXN0OiBmYWxzZSxcbiAgaXNPcGVuOiBmYWxzZSxcbiAgbG9hZGluZzogZmFsc2UsXG4gIG1lcmNoaTogdW5kZWZpbmVkLFxuICBtZXNzYWdlU3VjY2Vzc0J1eVJlcXVlc3Q6IHVuZGVmaW5lZCxcbiAgbWVzc2FnZVN1Y2Nlc3NRdW90ZVJlcXVlc3Q6IHVuZGVmaW5lZCxcbiAgbmV4dFRhYigpIHsgfSxcbiAgaW5jbHVkZURvbWFpblNpZ251cDogZmFsc2UsXG4gIGludm9pY2U6IHt9LFxuICBpc1Byb2R1Y3RFbWJlZEZvcm06IGZhbHNlLFxuICBqb2I6IHt9LFxuICBwcm9kdWN0OiB7fSxcbiAgcmVkaXJlY3RBZnRlclN1Y2Nlc3NVcmw6IHVuZGVmaW5lZCxcbiAgcmVkaXJlY3RBZnRlclF1b3RlU3VjY2Vzc1VybDogdW5kZWZpbmVkLFxuICByZWRpcmVjdFdpdGhWYWx1ZTogdHJ1ZSxcbiAgc2V0QWN0aXZlVGFiQnlJZCgpIHsgfSxcbiAgc2V0QWN0aXZlVGFiSW5kZXgoKSB7IH0sXG4gIHNldEN1c3RvbWVyKCkgeyB9LFxuICBzZXREb21haW4oKSB7IH0sXG4gIHNldEludm9pY2UoKSB7IH0sXG4gIHNldEpvYigpIHsgfSxcbiAgc2hvd0Rpc2NvdW50Q29kZTogdHJ1ZSxcbiAgc2hvd1VzZXJUZXJtc0FuZENvbmRpdGlvbnM6IHRydWUsXG4gIHRhYnM6IFtdLFxuICB0b2dnbGVNZXJjaGlDaGVja291dCgpIHsgfSxcbiAgdXJsRnJvbnRlbmQ6ICcnLFxuICB1cmxBcGk6ICcnLFxufSk7XG5cbmV4cG9ydCBjb25zdCB1c2VNZXJjaGlDaGVja2JvdXRDb250ZXh0ID0gKCkgPT5cbiAgdXNlQ29udGV4dChNZXJjaGlDaGVja291dENvbnRleHQpO1xuXG5pbnRlcmZhY2UgUHJvcHNNZXJjaGlQcm9kdWN0Rm9ybVByb3ZpZGVyIHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydHNDb250YWluZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QWxlcnQ/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QWxlcnRFcnJvcj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydFN1Y2Nlc3M/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uUHJpbWFyeT86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25QcmltYXJ5QmxvY2s/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblNlY29uZGFyeUJsb2NrPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvbkRvd25sb2FkSW52b2ljZT86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25DYW5jZWxPcmRlcj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRDb25maXJtSW5mb1BhbmVsPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvb3RlckFjdGlvbnNDb250YWluZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUNoZWNrYm94Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1Hcm91cD86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtR3JvdXBDaGVja2JveD86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtSW5wdXQ/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybVNlbGVjdD86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRHb29nbGVTdWdnZXN0TGlzdD86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRHb29nbGVTdWdnZXN0TGlzdEl0ZW0/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwSXRlbUxvYWRlcj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRJbnB1dEVycm9yPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cD86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRMaXN0R3JvdXBJdGVtPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFJvdz86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRSb3dDb2x1bW4/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0U3VidGl0bGU/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFic0NvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtTGFiZWxDaGVja2JveD86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiQnV0dG9uPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYlBhbmU/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiUGFuZUNvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpSW52b2ljZUJ1dHRvblBheUludm9pY2U/OiBzdHJpbmc7XG4gIGN1cnJlbnRVc2VyPzogYW55O1xuICBkaXNjb3VudEJ1dHRvblRleHQ/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZU1haW5Db250YWluZXI/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lQnV0dG9uSXRlbVJlbW92ZT86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVCdXR0b24/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lQnV0dG9uQ29udGFpbmVyPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVJbnB1dD86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVMaXN0SXRlbT86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVMaXN0SXRlbXM/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lSW5wdXRDb250YWluZXI/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lSW5wdXRkaXNjb3VudExhYmVsPzogc3RyaW5nO1xuICBkaXNjb3VudExhYmVsPzogc3RyaW5nO1xuICBkaXNjb3VudFNob3dBcHBsaWVkSXRlbXM/OiBib29sZWFuO1xuICBpbmNsdWRlRG9tYWluU2lnbnVwPzogYm9vbGVhbjtcbiAgaXNCdXlSZXF1ZXN0PzogYm9vbGVhbjtcbiAgaXNPcGVuOiBib29sZWFuO1xuICBpc1Byb2R1Y3RFbWJlZEZvcm0/OiBib29sZWFuO1xuICBtZXNzYWdlU3VjY2Vzc0J1eVJlcXVlc3Q/OiBzdHJpbmc7XG4gIG1lc3NhZ2VTdWNjZXNzUXVvdGVSZXF1ZXN0Pzogc3RyaW5nO1xuICBzaG93RGlzY291bnRDb2RlPzogYm9vbGVhbjtcbiAgc2hvd1VzZXJUZXJtc0FuZENvbmRpdGlvbnM/OiBib29sZWFuO1xuICBpbnZvaWNlOiBhbnk7XG4gIGpvYjogYW55O1xuICBwcm9kdWN0OiBhbnk7XG4gIHJlZGlyZWN0QWZ0ZXJTdWNjZXNzVXJsPzogc3RyaW5nO1xuICByZWRpcmVjdEFmdGVyUXVvdGVTdWNjZXNzVXJsPzogc3RyaW5nO1xuICByZWRpcmVjdFdpdGhWYWx1ZT86IGJvb2xlYW47XG4gIHNldEludm9pY2U6IChpbnZvaWNlOiBhbnkpID0+IHZvaWQ7XG4gIHNldEpvYjogKGpvYjogYW55KSA9PiB2b2lkO1xuICB0b2dnbGVNZXJjaGlDaGVja291dDogKCkgPT4gdm9pZDtcbiAgdXJsQXBpPzogc3RyaW5nO1xuICB1cmxGcm9udGVuZD86IHN0cmluZztcbn1cblxuZnVuY3Rpb24gYnVpbGRUYWJzU3RhdGUoXG4gIGpvYkZvclRhYnM6IGFueSxcbiAge1xuICAgIGluY2x1ZGVEb21haW5TaWdudXAsXG4gICAgaXNCdXlSZXF1ZXN0LFxuICAgIHRhYkluZGV4ID0gMCxcbiAgfToge1xuICAgIGluY2x1ZGVEb21haW5TaWdudXA/OiBib29sZWFuO1xuICAgIGlzQnV5UmVxdWVzdD86IGJvb2xlYW47XG4gICAgdGFiSW5kZXg/OiBudW1iZXI7XG4gIH1cbik6IHsgdGFiczogTWVyY2hpQ2hlY2tvdXRUYWJbXTsgYWN0aXZlVGFiSW5kZXg6IG51bWJlciB9IHtcbiAgaWYgKCFqb2JGb3JUYWJzPy5wcm9kdWN0KSB7XG4gICAgcmV0dXJuIHsgdGFiczogW10sIGFjdGl2ZVRhYkluZGV4OiAwIH07XG4gIH1cblxuICBjb25zdCBiYXNlVGFicyA9IHRhYnNJbml0KHtcbiAgICBqb2I6IGpvYkZvclRhYnMsXG4gICAgaW5jbHVkZURvbWFpblNpZ251cCxcbiAgICBpc0J1eVJlcXVlc3QsXG4gIH0pO1xuXG4gIGlmICghYmFzZVRhYnMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIHsgdGFiczogW10sIGFjdGl2ZVRhYkluZGV4OiAwIH07XG4gIH1cblxuICBjb25zdCBzYWZlSW5kZXggPSBNYXRoLm1heCgwLCBNYXRoLm1pbih0YWJJbmRleCwgYmFzZVRhYnMubGVuZ3RoIC0gMSkpO1xuICBjb25zdCB0YWJzV2l0aFByb2dyZXNzID0gYmFzZVRhYnMubWFwKCh0YWIsIGkpID0+ICh7XG4gICAgLi4udGFiLFxuICAgIGRpc2FibGVkOiBpID4gc2FmZUluZGV4LFxuICB9KSk7XG5cbiAgcmV0dXJuIHsgdGFiczogdGFic1dpdGhQcm9ncmVzcywgYWN0aXZlVGFiSW5kZXg6IHNhZmVJbmRleCB9O1xufVxuXG5mdW5jdGlvbiBnZXRJbml0aWFsVGFic1N0YXRlKFxuICBqb2I6IGFueSxcbiAgcHJvZHVjdDogYW55LFxuICBpbmNsdWRlRG9tYWluU2lnbnVwPzogYm9vbGVhbixcbiAgaXNCdXlSZXF1ZXN0PzogYm9vbGVhbixcbiAgaW52b2ljZT86IGFueVxuKSB7XG4gIGlmICghcHJvZHVjdD8uaWQpIHtcbiAgICByZXR1cm4geyB0YWJzOiBbXSBhcyBNZXJjaGlDaGVja291dFRhYltdLCBhY3RpdmVUYWJJbmRleDogMCB9O1xuICB9XG5cbiAgY29uc3Qgc2Vzc2lvbiA9IGxvYWRDaGVja291dFNlc3Npb24ocHJvZHVjdCk7XG4gIGNvbnN0IG1lcmdlZEpvYiA9IG1lcmdlSm9iV2l0aENoZWNrb3V0U2Vzc2lvbihqb2IsIHNlc3Npb24pO1xuICBjb25zdCByZXN0b3JlZEludm9pY2UgPSBpbnZvaWNlPy5pZCA/IGludm9pY2UgOiBzZXNzaW9uPy5pbnZvaWNlO1xuICBjb25zdCB0YWJJbmRleCA9IGdldFNhZmVSZXN0b3JlZFRhYkluZGV4KFxuICAgIG1lcmdlZEpvYixcbiAgICB7IGluY2x1ZGVEb21haW5TaWdudXAsIGlzQnV5UmVxdWVzdCB9LFxuICAgIHNlc3Npb24/LmFjdGl2ZVRhYkluZGV4ID8/IDAsXG4gICAgcmVzdG9yZWRJbnZvaWNlXG4gICk7XG5cbiAgcmV0dXJuIGJ1aWxkVGFic1N0YXRlKG1lcmdlZEpvYiwge1xuICAgIGluY2x1ZGVEb21haW5TaWdudXAsXG4gICAgaXNCdXlSZXF1ZXN0LFxuICAgIHRhYkluZGV4LFxuICB9KTtcbn1cblxuZXhwb3J0IGNvbnN0IE1lcmNoaUNoZWNrb3V0UHJvdmlkZXIgPSAoe1xuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydHNDb250YWluZXIgPSAnZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgZmxleC1jb2x1bW4gYWxlcnRzLWNvbnRhaW5lci1zbScsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QWxlcnQgPSAnYWxlcnQgYWxlcnQtZGlzbWlzc2libGUgYWxlcnQtbm90aWZ5JyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydEVycm9yID0gJ2FsZXJ0LWRhbmdlcicsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QWxlcnRTdWNjZXNzID0gJ2FsZXJ0LXN1Y2Nlc3MnLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblByaW1hcnkgPSAnYnRuIGJ0bi1sbWQgYnRuLXByaW1hcnkgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25QcmltYXJ5QmxvY2sgPSAnYnRuIGJ0bi1sZyBidG4tcHJpbWFyeSBidG4tYmxvY2snLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblNlY29uZGFyeSA9ICdidG4gYnRuLWxnIGJ0bi1zZWNvbmRhcnknLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblNlY29uZGFyeUJsb2NrID0gJ2J0biBidG4tbGcgYnRuLXNlY29uZGFyeSBidG4tYmxvY2snLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvbkRvd25sb2FkSW52b2ljZSA9ICdidG4gYnRuLWxnIGJ0bi1wcmltYXJ5JyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25DYW5jZWxPcmRlciA9ICdidG4gYnRuLWxnIGJ0bi1zZWNvbmRhcnknLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dENvbmZpcm1JbmZvUGFuZWwgPSAnZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlcicsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9vdGVyQWN0aW9uc0NvbnRhaW5lciA9ICdkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXQtNCcsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUNoZWNrYm94ID0gJ2Zvcm0tY2hlY2staW5wdXQnLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1Hcm91cCA9ICdmb3JtLWdyb3VwJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtR3JvdXBDaGVja2JveCA9ICdmb3JtLWNoZWNrJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtSW5wdXQgPSAnZm9ybS1jb250cm9sJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtU2VsZWN0ID0gJ2Zvcm0tY29udHJvbCcsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0R29vZ2xlU3VnZ2VzdExpc3QgPSAnbWVyY2hpLWNoZWNrb3V0LWdvb2dsZS1zdWdnZXN0LWxpc3QnLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEdvb2dsZVN1Z2dlc3RMaXN0SXRlbSA9ICdtZXJjaGktY2hlY2tvdXQtZ29vZ2xlLXN1Z2dlc3QtbGlzdC1pdGVtJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRMaXN0R3JvdXBJdGVtTG9hZGVyID0gJ2xpc3QtZ3JvdXAtaXRlbSBtb2RhbC1tZXJjaGktY2hlY2tvdXQtc2hpcG1lbnQtb3B0aW9uJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRJbnB1dEVycm9yID0gJ3RleHQtZGFuZ2VyJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtTGFiZWxDaGVja2JveCA9ICcnLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cCA9ICdtb2RhbC1tZXJjaGktY2hlY2tvdXQtc2hpcG1lbnQtb3B0aW9uJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRMaXN0R3JvdXBJdGVtID0gJ2xpc3QtZ3JvdXAtaXRlbSBtb2RhbC1tZXJjaGktY2hlY2tvdXQtc2hpcG1lbnQtb3B0aW9uJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRSb3cgPSAnbWVyY2hpLXJvdycsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Um93Q29sdW1uID0gJ21lcmNoaS1jb2x1bW4nLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFN1YnRpdGxlID0gJ21lcmNoaS1jaGVja291dC1zdWJ0aXRsZScsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFic0NvbnRhaW5lciA9ICdtZXJjaGktY2hlY2tvdXQtdGFicy1jb250YWluZXInLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYiA9ICdtZXJjaGktY2hlY2tvdXQtdGFiJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJCdXR0b24gPSAnYnRuIG1lcmNoaS1jaGVja291dC10YWItYnRuJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJQYW5lID0gJ3RhYi1wYW5lJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJQYW5lQ29udGFpbmVyID0gJ3RhYi1jb250ZW50JyxcbiAgY2xhc3NOYW1lTWVyY2hpSW52b2ljZUJ1dHRvblBheUludm9pY2UgPSAnYnRuIGJ0bi1sZyBidG4tcHJpbWFyeSBidG4tYmxvY2snLFxuICBjdXJyZW50VXNlcixcbiAgZGlzY291bnRCdXR0b25UZXh0ID0gJ0FwcGx5JyxcbiAgZGlzY291bnRDbGFzc05hbWUgPSAnbWVyY2hpLWNoZWNrb3V0LWRpc2NvdW50LWNvZGUtY29udGFpbmVyJyxcbiAgZGlzY291bnRDbGFzc05hbWVCdXR0b24gPSAnYnRuIGJ0bi1wcmltYXJ5JyxcbiAgZGlzY291bnRDbGFzc05hbWVCdXR0b25Db250YWluZXIgPSAnJyxcbiAgZGlzY291bnRDbGFzc05hbWVCdXR0b25JdGVtUmVtb3ZlID0gJ2J0biBidG4tc20gYnRuLWxpbmsnLFxuICBkaXNjb3VudENsYXNzTmFtZUVycm9yTWVzc2FnZSA9ICd0ZXh0LWRhbmdlcicsXG4gIGRpc2NvdW50Q2xhc3NOYW1lSW5wdXQgPSAnZm9ybS1jb250cm9sJyxcbiAgZGlzY291bnRDbGFzc05hbWVJbnB1dENvbnRhaW5lciA9ICdtZXJjaGktY2hlY2tvdXQtZGlzY291bnQtY29kZS1maWVsZC1jb250YWluZXInLFxuICBkaXNjb3VudENsYXNzTmFtZUlucHV0ZGlzY291bnRMYWJlbCA9ICdtZXJjaGktY2hlY2tvdXQtZGlzY291bnQtY29kZS1sYWJlbCcsXG4gIGRpc2NvdW50Q2xhc3NOYW1lTGlzdEl0ZW0gPSAnbGlzdC1ncm91cC1pdGVtIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXQtMicsXG4gIGRpc2NvdW50Q2xhc3NOYW1lTGlzdEl0ZW1zID0gJ2xpc3QtZ3JvdXAnLFxuICBkaXNjb3VudENsYXNzTmFtZU1haW5Db250YWluZXIsXG4gIGRpc2NvdW50TGFiZWwgPSAnQXBwbHkgRGlzY291bnQgQ29kZScsXG4gIGRpc2NvdW50U2hvd0FwcGxpZWRJdGVtcyA9IHRydWUsXG4gIGluY2x1ZGVEb21haW5TaWdudXAgPSBmYWxzZSxcbiAgaW52b2ljZSxcbiAgaXNCdXlSZXF1ZXN0LFxuICBpc09wZW4sXG4gIGlzUHJvZHVjdEVtYmVkRm9ybSA9IGZhbHNlLFxuICBqb2IsXG4gIHByb2R1Y3QsXG4gIG1lc3NhZ2VTdWNjZXNzQnV5UmVxdWVzdCxcbiAgbWVzc2FnZVN1Y2Nlc3NRdW90ZVJlcXVlc3QsXG4gIHJlZGlyZWN0QWZ0ZXJTdWNjZXNzVXJsLFxuICByZWRpcmVjdEFmdGVyUXVvdGVTdWNjZXNzVXJsLFxuICByZWRpcmVjdFdpdGhWYWx1ZSxcbiAgc2V0SW52b2ljZSxcbiAgc2V0Sm9iLFxuICBzaG93RGlzY291bnRDb2RlID0gdHJ1ZSxcbiAgc2hvd1VzZXJUZXJtc0FuZENvbmRpdGlvbnMgPSB0cnVlLFxuICB0b2dnbGVNZXJjaGlDaGVja291dCxcbiAgdXJsQXBpID0gJ2h0dHBzOi8vYXBpLm1lcmNoaS5jby92Ni8nLFxuICB1cmxGcm9udGVuZCA9ICdodHRwczovL21lcmNoaS5jby8nLFxufTogUHJvcHNNZXJjaGlQcm9kdWN0Rm9ybVByb3ZpZGVyKSA9PiB7XG4gIGNvbnN0IGluaXRpYWxUYWJzU3RhdGUgPSBnZXRJbml0aWFsVGFic1N0YXRlKFxuICAgIGpvYixcbiAgICBwcm9kdWN0LFxuICAgIGluY2x1ZGVEb21haW5TaWdudXAsXG4gICAgaXNCdXlSZXF1ZXN0LFxuICAgIGludm9pY2VcbiAgKTtcbiAgY29uc3QgW2FjdGl2ZVRhYkluZGV4LCBzZXRBY3RpdmVUYWJJbmRleF0gPSB1c2VTdGF0ZTxudW1iZXI+KFxuICAgIGluaXRpYWxUYWJzU3RhdGUuYWN0aXZlVGFiSW5kZXhcbiAgKTtcbiAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbYWxlcnRzLCBzZXRBbGVydHNdID0gdXNlU3RhdGUoW10pO1xuICBjb25zdCBbZG9tYWluLCBzZXREb21haW5dID0gdXNlU3RhdGUobnVsbCk7XG4gIGNvbnN0IFt0YWJzLCBzZXRUYWJzXSA9IHVzZVN0YXRlKGluaXRpYWxUYWJzU3RhdGUudGFicyk7XG4gIGNvbnN0IG1lcmNoaSA9IG5ldyBNZXJjaGkodW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1cmxBcGkpO1xuICBmdW5jdGlvbiBlZGl0RHJhZnRUZW1wbGF0ZShpbmRleDogbnVtYmVyLCBkcmFmdDogYW55KSB7XG4gICAgY29uc3Qgam9iSnNvbiA9IHsgLi4uam9iIH07XG4gICAgY29uc3QgZHJhZnRUZW1wbGF0ZXMgPSBwcm9kdWN0LmRyYWZ0VGVtcGxhdGVzIHx8IFtdO1xuICAgIGNvbnN0IGRyYWZ0VGVtcGxhdGVGaWxlcyA9IGRyYWZ0VGVtcGxhdGVzLm1hcCgoZDogYW55KSA9PiBkLmZpbGUpO1xuICAgIGNvbnN0IG93bkRyYWZ0ID0gKGpvYkpzb24ub3duRHJhZnRzICYmIGpvYkpzb24ub3duRHJhZnRzWzBdKSB8fCB7XG4gICAgICBpbWFnZXM6IGRyYWZ0VGVtcGxhdGVGaWxlcyxcbiAgICB9O1xuICAgIGlmIChvd25EcmFmdC5pbWFnZXMpIHtcbiAgICAgIG93bkRyYWZ0LmltYWdlc1tpbmRleF0gPSBkcmFmdDtcbiAgICB9IGVsc2Uge1xuICAgICAgb3duRHJhZnQuaW1hZ2VzID0gW2RyYWZ0XTtcbiAgICB9XG4gICAgam9iSnNvbi5vd25EcmFmdHMgPSBbb3duRHJhZnRdO1xuICAgIHNldEpvYihqb2JKc29uKTtcbiAgfVxuICBmdW5jdGlvbiBhbGVydENsb3NlKGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCB1cGRhdGVkQWxlcnRzID0gYWxlcnRzLmZpbHRlcigoXywgaWR4KSA9PiBpZHggIT09IGluZGV4KTtcbiAgICBzZXRBbGVydHModXBkYXRlZEFsZXJ0cyk7XG4gIH1cbiAgZnVuY3Rpb24gYWxlcnRFcnJvclNob3cobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgY29uc3QgbmV3QWxlcnRzOiBhbnlbXSA9IFtcbiAgICAgIC4uLmFsZXJ0cyxcbiAgICAgIHsgYWxlcnRUeXBlOiAnZXJyb3InLCBtZXNzYWdlLCB0aXRsZTogJ0Vycm9yIScgfSxcbiAgICBdO1xuICAgIHNldEFsZXJ0cyhuZXdBbGVydHMgYXMgYW55KTtcbiAgfVxuICBmdW5jdGlvbiBpbml0VGFic0Zyb21Kb2Ioam9iRm9yVGFiczogYW55LCB0YWJJbmRleCA9IDApIHtcbiAgICBjb25zdCB7IHRhYnM6IG5leHRUYWJzLCBhY3RpdmVUYWJJbmRleDogbmV4dEluZGV4IH0gPSBidWlsZFRhYnNTdGF0ZShcbiAgICAgIGpvYkZvclRhYnMsXG4gICAgICB7IGluY2x1ZGVEb21haW5TaWdudXAsIGlzQnV5UmVxdWVzdCwgdGFiSW5kZXggfVxuICAgICk7XG4gICAgc2V0VGFicyhuZXh0VGFicyk7XG4gICAgc2V0QWN0aXZlVGFiSW5kZXgobmV4dEluZGV4KTtcbiAgfVxuICBmdW5jdGlvbiByZXNldFRhYnMoKSB7XG4gICAgaW5pdFRhYnNGcm9tSm9iKGpvYiwgYWN0aXZlVGFiSW5kZXgpO1xuICB9XG4gIGZ1bmN0aW9uIHNldEN1c3RvbWVyKFxuICAgIGN1c3RvbWVyOiBhbnksXG4gICAgb3B0aW9ucz86IHsgc2VuZFdoYXRzYXBwPzogYm9vbGVhbiB9LFxuICApIHtcbiAgICBjb25zdCB1cGRhdGVkSm9iID0ge1xuICAgICAgLi4uam9iLFxuICAgICAgY2xpZW50OiBjdXN0b21lcixcbiAgICAgIHNlbmRXaGF0c2FwcDogb3B0aW9ucz8uc2VuZFdoYXRzYXBwID09PSB0cnVlLFxuICAgIH07XG4gICAgc2V0Sm9iKHVwZGF0ZWRKb2IpO1xuICAgIGluaXRUYWJzRnJvbUpvYihcbiAgICAgIHVwZGF0ZWRKb2IsXG4gICAgICBpc1VzZXJSZWdpc3RlcmVkKGN1c3RvbWVyKSA/IGFjdGl2ZVRhYkluZGV4IDogMFxuICAgICk7XG4gIH1cbiAgZnVuY3Rpb24gY2xlYXJDdXN0b21lcigpIHtcbiAgICBjb25zdCB1cGRhdGVkSm9iID0geyAuLi5qb2IsIGNsaWVudDoge30sIHNlbmRXaGF0c2FwcDogZmFsc2UgfTtcbiAgICBzZXRKb2IodXBkYXRlZEpvYik7XG4gICAgaW5pdFRhYnNGcm9tSm9iKHVwZGF0ZWRKb2IsIDApO1xuICB9XG4gIGZ1bmN0aW9uIGNhbmNlbENoZWNrb3V0T3JkZXIoKSB7XG4gICAgY29uc3QgdXBkYXRlZEpvYiA9IHsgLi4uam9iIH07XG4gICAgZGVsZXRlIHVwZGF0ZWRKb2IuaWQ7XG4gICAgdXBkYXRlZEpvYi5zZW5kV2hhdHNhcHAgPSBmYWxzZTtcbiAgICBzZXRJbnZvaWNlKHt9KTtcbiAgICBzZXRKb2IodXBkYXRlZEpvYik7XG4gICAgY29uc3QgY29uZmlybUluZGV4ID0gdGFicy5maW5kSW5kZXgoKHQpID0+IHQuaWQgPT09IHRhYklkQ29uZmlybSk7XG4gICAgaW5pdFRhYnNGcm9tSm9iKHVwZGF0ZWRKb2IsIGNvbmZpcm1JbmRleCA+PSAwID8gY29uZmlybUluZGV4IDogMCk7XG4gIH1cbiAgZnVuY3Rpb24gbmV4dFRhYigpIHtcbiAgICBjb25zdCBuZGV4dEluZGV4ID0gYWN0aXZlVGFiSW5kZXggKyAxO1xuICAgIGNvbnN0IF90YWJzOiBhbnlbXSA9IFsuLi50YWJzXTtcbiAgICBfdGFic1tuZGV4dEluZGV4XS5kaXNhYmxlZCA9IGZhbHNlO1xuICAgIHNldFRhYnMoX3RhYnMgYXMgW10pO1xuICAgIHNldEFjdGl2ZVRhYkluZGV4KG5kZXh0SW5kZXgpO1xuICB9XG4gIGZ1bmN0aW9uIHNldEFjdGl2ZVRhYkJ5SWQodGFiSWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGluZGV4ID0gdGFicy5maW5kSW5kZXgoKHQ6IE1lcmNoaUNoZWNrb3V0VGFiKSA9PiB0LmlkID09PSB0YWJJZCk7XG4gICAgc2V0QWN0aXZlVGFiSW5kZXgoaW5kZXgpO1xuICB9XG4gIGNvbnN0IHF1b3RlU2lnbmF0dXJlID0gZ2V0Q2hlY2tvdXRRdW90ZVNpZ25hdHVyZShqb2IpO1xuICBjb25zdCBxdW90ZVNpZ25hdHVyZVJlZiA9IFJlYWN0LnVzZVJlZignJyk7XG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXByb2R1Y3Q/LmlkKSByZXR1cm47XG5cbiAgICBjb25zdCBzZXNzaW9uID0gbG9hZENoZWNrb3V0U2Vzc2lvbihwcm9kdWN0KTtcbiAgICBjb25zdCBtZXJnZWRKb2IgPSBtZXJnZUpvYldpdGhDaGVja291dFNlc3Npb24oam9iLCBzZXNzaW9uKTtcblxuICAgIGlmIChjaGVja291dFNlc3Npb25DaGFuZ2VkKGpvYiwgbWVyZ2VkSm9iKSkge1xuICAgICAgc2V0Sm9iKG1lcmdlZEpvYik7XG4gICAgfVxuXG4gICAgY29uc3QgcXVvdGVDaGFuZ2VkID0gcXVvdGVTaWduYXR1cmVSZWYuY3VycmVudCAhPT0gcXVvdGVTaWduYXR1cmU7XG4gICAgcXVvdGVTaWduYXR1cmVSZWYuY3VycmVudCA9IHF1b3RlU2lnbmF0dXJlO1xuXG4gICAgaWYgKCF0YWJzLmxlbmd0aCB8fCBxdW90ZUNoYW5nZWQpIHtcbiAgICAgIGNvbnN0IHJlc3RvcmVkSW52b2ljZSA9IGludm9pY2U/LmlkID8gaW52b2ljZSA6IHNlc3Npb24/Lmludm9pY2U7XG4gICAgICBjb25zdCByZXN0b3JlZEluZGV4ID1cbiAgICAgICAgcXVvdGVDaGFuZ2VkICYmICFyZXN0b3JlZEludm9pY2U/LmlkXG4gICAgICAgICAgPyAwXG4gICAgICAgICAgOiBnZXRTYWZlUmVzdG9yZWRUYWJJbmRleChcbiAgICAgICAgICAgICAgbWVyZ2VkSm9iLFxuICAgICAgICAgICAgICB7IGluY2x1ZGVEb21haW5TaWdudXAsIGlzQnV5UmVxdWVzdCB9LFxuICAgICAgICAgICAgICBzZXNzaW9uPy5hY3RpdmVUYWJJbmRleCA/PyAwLFxuICAgICAgICAgICAgICByZXN0b3JlZEludm9pY2VcbiAgICAgICAgICAgICk7XG4gICAgICBpbml0VGFic0Zyb21Kb2IobWVyZ2VkSm9iLCByZXN0b3JlZEluZGV4KTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICAhaXNVc2VyUmVnaXN0ZXJlZChtZXJnZWRKb2IuY2xpZW50KSAmJlxuICAgICAgIWlzVXNlclJlZ2lzdGVyZWQoc2Vzc2lvbj8uY2xpZW50KSAmJlxuICAgICAgaXNVc2VyUmVnaXN0ZXJlZChjdXJyZW50VXNlcilcbiAgICApIHtcbiAgICAgIHNldEpvYih7IC4uLm1lcmdlZEpvYiwgY2xpZW50OiBjdXJyZW50VXNlciB9KTtcbiAgICB9XG4gIH0sIFtwcm9kdWN0Py5pZCwgcXVvdGVTaWduYXR1cmVdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghcHJvZHVjdD8uaWQpIHJldHVybjtcblxuICAgIGNvbnN0IHNlc3Npb24gPSBsb2FkQ2hlY2tvdXRTZXNzaW9uKHByb2R1Y3QpO1xuICAgIGlmICghaW52b2ljZT8uaWQgJiYgc2Vzc2lvbj8uaW52b2ljZT8uaWQpIHtcbiAgICAgIHNldEludm9pY2Uoc2Vzc2lvbi5pbnZvaWNlKTtcbiAgICB9XG4gIH0sIFtwcm9kdWN0Py5pZF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc09wZW4pIHtcbiAgICAgIHNldERvbWFpbihudWxsKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkb21haW5JZCA9IHByb2R1Y3Q/LmRvbWFpbj8uaWQgPz8gam9iPy5kb21haW4/LmlkO1xuICAgIGlmICghZG9tYWluSWQpIHtcbiAgICAgIHNldERvbWFpbihudWxsKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgY2FuY2VsbGVkID0gZmFsc2U7XG4gICAgbWVyY2hpLkRvbWFpbi5nZXQoZG9tYWluSWQpXG4gICAgICAudGhlbigoZG9tYWluRW50aXR5OiBhbnkpID0+IHtcbiAgICAgICAgaWYgKGNhbmNlbGxlZCkgcmV0dXJuO1xuICAgICAgICBzZXREb21haW4oXG4gICAgICAgICAgdHlwZW9mIGRvbWFpbkVudGl0eT8udG9Kc29uID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICA/IGRvbWFpbkVudGl0eS50b0pzb24oKVxuICAgICAgICAgICAgOiBkb21haW5FbnRpdHlcbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICBpZiAoIWNhbmNlbGxlZCkgc2V0RG9tYWluKG51bGwpO1xuICAgICAgfSk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2FuY2VsbGVkID0gdHJ1ZTtcbiAgICB9O1xuICB9LCBbaXNPcGVuLCBwcm9kdWN0Py5kb21haW4/LmlkLCBqb2I/LmRvbWFpbj8uaWQsIHVybEFwaV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFwcm9kdWN0Py5pZCkgcmV0dXJuO1xuICAgIHNhdmVDaGVja291dFNlc3Npb24oXG4gICAgICBwcm9kdWN0LFxuICAgICAgYnVpbGRDaGVja291dFNlc3Npb24oXG4gICAgICAgIGpvYixcbiAgICAgICAgYWN0aXZlVGFiSW5kZXgsXG4gICAgICAgIHtcbiAgICAgICAgICBpbnZvaWNlLFxuICAgICAgICAgIGNoZWNrb3V0T3BlbjogaXNPcGVuLFxuICAgICAgICAgIGlzQnV5UmVxdWVzdCxcbiAgICAgICAgfSxcbiAgICAgICAgbG9hZENoZWNrb3V0U2Vzc2lvbihwcm9kdWN0KVxuICAgICAgKVxuICAgICk7XG4gIH0sIFtcbiAgICBwcm9kdWN0Py5pZCxcbiAgICBqb2IuY2xpZW50LFxuICAgIGpvYi5zaGlwcGluZyxcbiAgICBqb2IuYmlsbGluZyxcbiAgICBqb2Iuc2hpcG1lbnQsXG4gICAgam9iLml0ZW1zLFxuICAgIGFjdGl2ZVRhYkluZGV4LFxuICAgIGludm9pY2UsXG4gICAgaXNPcGVuLFxuICAgIGlzQnV5UmVxdWVzdCxcbiAgXSk7XG4gIGZ1bmN0aW9uIGRpc2NvdW50Q2FsbGJhY2tTdWNjZXNzKGl0ZW1zOiBhbnlbXSkge1xuICAgIHNldEpvYih7IC4uLmpvYiwgaXRlbXMgfSk7XG4gIH1cbiAgZnVuY3Rpb24gZGlzY291bnRDYWxsYmFja0Vycm9yKCkge1xuICAgIHNldEpvYih7IC4uLmpvYiwgaXRlbXM6IFtdIH0pO1xuICB9XG4gIHJldHVybiAoXG4gICAgPE1lcmNoaUNoZWNrb3V0Q29udGV4dC5Qcm92aWRlclxuICAgICAgdmFsdWU9e1xuICAgICAgICB7XG4gICAgICAgICAgYWN0aXZlVGFiSW5kZXgsXG4gICAgICAgICAgYWxlcnRzLFxuICAgICAgICAgIGFsZXJ0Q2xvc2UsXG4gICAgICAgICAgYWxlcnRFcnJvclNob3csXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydHNDb250YWluZXIsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydCxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0RXJyb3IsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydFN1Y2Nlc3MsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25QcmltYXJ5LFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uUHJpbWFyeUJsb2NrLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5LFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5QmxvY2ssXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25Eb3dubG9hZEludm9pY2UsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25DYW5jZWxPcmRlcixcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dENvbmZpcm1JbmZvUGFuZWwsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb290ZXJBY3Rpb25zQ29udGFpbmVyLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUNoZWNrYm94LFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUdyb3VwLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUdyb3VwQ2hlY2tib3gsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtSW5wdXQsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtU2VsZWN0LFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0R29vZ2xlU3VnZ2VzdExpc3QsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRHb29nbGVTdWdnZXN0TGlzdEl0ZW0sXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRMaXN0R3JvdXBJdGVtTG9hZGVyLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUxhYmVsQ2hlY2tib3gsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRJbnB1dEVycm9yLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwSXRlbSxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dFJvdyxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dFJvd0NvbHVtbixcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dFN1YnRpdGxlLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFic0NvbnRhaW5lcixcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYixcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYkJ1dHRvbixcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYlBhbmUsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJQYW5lQ29udGFpbmVyLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUludm9pY2VCdXR0b25QYXlJbnZvaWNlLFxuICAgICAgICAgIGNsZWFyQ3VzdG9tZXIsXG4gICAgICAgICAgY2FuY2VsQ2hlY2tvdXRPcmRlcixcbiAgICAgICAgICBjdXJyZW50VXNlcixcbiAgICAgICAgICBjdXN0b21lcjogam9iLmNsaWVudCB8fCB7fSxcbiAgICAgICAgICBkaXNjb3VudEJ1dHRvblRleHQsXG4gICAgICAgICAgZGlzY291bnRDYWxsYmFja0Vycm9yLFxuICAgICAgICAgIGRpc2NvdW50Q2FsbGJhY2tTdWNjZXNzLFxuICAgICAgICAgIGRpc2NvdW50Q2xhc3NOYW1lLFxuICAgICAgICAgIGRpc2NvdW50Q2xhc3NOYW1lQnV0dG9uLFxuICAgICAgICAgIGRpc2NvdW50Q2xhc3NOYW1lQnV0dG9uQ29udGFpbmVyLFxuICAgICAgICAgIGRpc2NvdW50Q2xhc3NOYW1lQnV0dG9uSXRlbVJlbW92ZSxcbiAgICAgICAgICBkaXNjb3VudENsYXNzTmFtZUVycm9yTWVzc2FnZSxcbiAgICAgICAgICBkaXNjb3VudENsYXNzTmFtZUlucHV0LFxuICAgICAgICAgIGRpc2NvdW50Q2xhc3NOYW1lSW5wdXRDb250YWluZXIsXG4gICAgICAgICAgZGlzY291bnRDbGFzc05hbWVJbnB1dGRpc2NvdW50TGFiZWwsXG4gICAgICAgICAgZGlzY291bnRDbGFzc05hbWVMaXN0SXRlbSxcbiAgICAgICAgICBkaXNjb3VudENsYXNzTmFtZUxpc3RJdGVtcyxcbiAgICAgICAgICBkaXNjb3VudENsYXNzTmFtZU1haW5Db250YWluZXIsXG4gICAgICAgICAgZGlzY291bnRMYWJlbCxcbiAgICAgICAgICBkaXNjb3VudFNob3dBcHBsaWVkSXRlbXMsXG4gICAgICAgICAgZG9tYWluLFxuICAgICAgICAgIGVkaXREcmFmdFRlbXBsYXRlLFxuICAgICAgICAgIGluY2x1ZGVEb21haW5TaWdudXAsXG4gICAgICAgICAgaW52b2ljZSxcbiAgICAgICAgICBpc0J1eVJlcXVlc3QsXG4gICAgICAgICAgaXNPcGVuLFxuICAgICAgICAgIGlzUHJvZHVjdEVtYmVkRm9ybSxcbiAgICAgICAgICBqb2IsXG4gICAgICAgICAgbG9hZGluZyxcbiAgICAgICAgICBtZXJjaGksXG4gICAgICAgICAgbWVzc2FnZVN1Y2Nlc3NCdXlSZXF1ZXN0LFxuICAgICAgICAgIG1lc3NhZ2VTdWNjZXNzUXVvdGVSZXF1ZXN0LFxuICAgICAgICAgIG5leHRUYWIsXG4gICAgICAgICAgcHJvZHVjdCxcbiAgICAgICAgICByZWRpcmVjdEFmdGVyU3VjY2Vzc1VybCxcbiAgICAgICAgICByZWRpcmVjdEFmdGVyUXVvdGVTdWNjZXNzVXJsLFxuICAgICAgICAgIHJlZGlyZWN0V2l0aFZhbHVlLFxuICAgICAgICAgIHNldEFjdGl2ZVRhYkJ5SWQsXG4gICAgICAgICAgc2V0QWN0aXZlVGFiSW5kZXgsXG4gICAgICAgICAgc2V0Q3VzdG9tZXIsXG4gICAgICAgICAgc2V0RG9tYWluLFxuICAgICAgICAgIHNldEludm9pY2UsXG4gICAgICAgICAgc2V0Sm9iLFxuICAgICAgICAgIHNob3dEaXNjb3VudENvZGUsXG4gICAgICAgICAgc2hvd1VzZXJUZXJtc0FuZENvbmRpdGlvbnMsXG4gICAgICAgICAgdGFicyxcbiAgICAgICAgICB0b2dnbGVNZXJjaGlDaGVja291dCxcbiAgICAgICAgICB1cmxBcGksXG4gICAgICAgICAgdXJsRnJvbnRlbmQsXG4gICAgICAgIH0gYXMgSU1lcmNoaUNoZWNrb3V0XG4gICAgICB9XG4gICAgPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtZXJjaGktY2hlY2tvdXRcIj57Y2hpbGRyZW59PC9kaXY+XG4gICAgPC9NZXJjaGlDaGVja291dENvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59O1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxZQUFZOztBQUFDLFNBQUFBLFFBQUFDLENBQUEsc0NBQUFELE9BQUEsd0JBQUFFLE1BQUEsdUJBQUFBLE1BQUEsQ0FBQUMsUUFBQSxhQUFBRixDQUFBLGtCQUFBQSxDQUFBLGdCQUFBQSxDQUFBLFdBQUFBLENBQUEseUJBQUFDLE1BQUEsSUFBQUQsQ0FBQSxDQUFBRyxXQUFBLEtBQUFGLE1BQUEsSUFBQUQsQ0FBQSxLQUFBQyxNQUFBLENBQUFHLFNBQUEscUJBQUFKLENBQUEsS0FBQUQsT0FBQSxDQUFBQyxDQUFBO0FBQUEsU0FBQUssbUJBQUFDLENBQUEsV0FBQUMsa0JBQUEsQ0FBQUQsQ0FBQSxLQUFBRSxnQkFBQSxDQUFBRixDQUFBLEtBQUFHLDJCQUFBLENBQUFILENBQUEsS0FBQUksa0JBQUE7QUFBQSxTQUFBQSxtQkFBQSxjQUFBQyxTQUFBO0FBQUEsU0FBQUgsaUJBQUFGLENBQUEsOEJBQUFMLE1BQUEsWUFBQUssQ0FBQSxDQUFBTCxNQUFBLENBQUFDLFFBQUEsYUFBQUksQ0FBQSx1QkFBQU0sS0FBQSxDQUFBQyxJQUFBLENBQUFQLENBQUE7QUFBQSxTQUFBQyxtQkFBQUQsQ0FBQSxRQUFBTSxLQUFBLENBQUFFLE9BQUEsQ0FBQVIsQ0FBQSxVQUFBUyxpQkFBQSxDQUFBVCxDQUFBO0FBQUEsU0FBQVUsZUFBQVYsQ0FBQSxFQUFBVyxDQUFBLFdBQUFDLGVBQUEsQ0FBQVosQ0FBQSxLQUFBYSxx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