UNPKG

merchi_product_form

Version:
409 lines (408 loc) 95.4 kB
'use client'; 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); } function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } 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; } 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; } 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; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } 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); } function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); } 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."); } 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; } } 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; } 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; } } function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } import * as React from 'react'; import { createContext, useContext, useState } from 'react'; import { useForm } from 'react-hook-form'; import { fetchJobQuote } from '../actions/jobs'; import { productHasGroups } from '../utils/products'; import { getMerchiSourceJobTags } from './utils'; import { jsx as _jsx } from "react/jsx-runtime"; var MerchiProductFormContext = /*#__PURE__*/createContext({ apiUrl: '', allowAddToCart: false, btnNameAddToCart: undefined, classNameAlertSellerEditable: undefined, classNameButtonSubmit: undefined, classNameButtonGroupAdd: undefined, classNameButtonGroupRemove: undefined, classNameButtonsSubmitContainer: undefined, classNameFileUploadContainer: undefined, classNameFileUpload: undefined, classNameFilePreviewContainer: undefined, classNameFileUploadTextContainer: undefined, classNameFilePreviewIconWrapper: undefined, classNameFileUploadButton: undefined, classNameFileUploadIcon: undefined, classNameFileUploadIconSecond: undefined, classNameFileUploadIconContainer: undefined, classNameFileListItem: undefined, classNameFileButtonDelete: undefined, classNameFileListItemContainer: undefined, classNameGroupsContainer: undefined, classNameGroupPriceContainer: undefined, classNameInput: undefined, classNameInputContainer: undefined, classNameInventoryStatus: undefined, classNameOptionContainer: undefined, classNameOptionInput: undefined, classNameOptionLabel: undefined, classNameOptionSuper: undefined, classNameOptionsCheckboxRadioContainer: undefined, classNameOptionImage: undefined, classNameOptionImageContainer: undefined, classNameOptionColour: undefined, classNameOptionColourContainer: undefined, classNameProductTitle: undefined, classNameProductOriginTitle: undefined, classNameProductTotalContainer: undefined, classNameProductTotal: undefined, classNameQuantityLabelContainer: undefined, classNameUnitPrice: undefined, control: {}, currentUser: {}, getQuote: function getQuote() {}, hideCost: false, hideCountry: false, hideDomainName: false, hideCalculatedPrice: false, hideQuantityField: false, hideRequestQuotationButton: false, hidePaymentUpfrontButton: false, hideTitle: false, hookForm: {}, isCartItem: false, initJob: undefined, job: {}, loading: false, onAddToCart: function onAddToCart() {}, onBuyNow: function onBuyNow() {}, onGetQuote: function onGetQuote() {}, onSubmit: function onSubmit() {}, product: {}, productFormId: undefined, setClient: function setClient() {}, setJob: function setJob(job) {}, setLoading: function setLoading(loading) {}, showAlert: function showAlert(alert) {}, showCurrency: false, showCurrencyCode: false, showFeatureDeadline: false, showGroupBuyStatus: false, showUnitPrice: false }); export var useMerchiFormContext = function useMerchiFormContext() { return useContext(MerchiProductFormContext); }; export var MerchiProductFormProvider = function MerchiProductFormProvider(_ref) { var _ref$apiUrl = _ref.apiUrl, apiUrl = _ref$apiUrl === void 0 ? 'https://api.merchi.co/v6/' : _ref$apiUrl, allowAddToCart = _ref.allowAddToCart, btnNameAddToCart = _ref.btnNameAddToCart, _ref$classNameAlertSe = _ref.classNameAlertSellerEditable, classNameAlertSellerEditable = _ref$classNameAlertSe === void 0 ? 'alert alert-light' : _ref$classNameAlertSe, _ref$classNameButtonS = _ref.classNameButtonSubmit, classNameButtonSubmit = _ref$classNameButtonS === void 0 ? 'btn btn-primary w-100 merchi-embed-form_button-submit' : _ref$classNameButtonS, _ref$classNameButtonG = _ref.classNameButtonGroupAdd, classNameButtonGroupAdd = _ref$classNameButtonG === void 0 ? 'btn btn-white' : _ref$classNameButtonG, _ref$classNameButtonG2 = _ref.classNameButtonGroupRemove, classNameButtonGroupRemove = _ref$classNameButtonG2 === void 0 ? 'btn btn-danger' : _ref$classNameButtonG2, _ref$classNameButtons = _ref.classNameButtonsSubmitContainer, classNameButtonsSubmitContainer = _ref$classNameButtons === void 0 ? 'merchi-product-buttons-submit-container' : _ref$classNameButtons, _ref$classNameFileUpl = _ref.classNameFileUploadContainer, classNameFileUploadContainer = _ref$classNameFileUpl === void 0 ? 'merchi-input-file-container' : _ref$classNameFileUpl, _ref$classNameFileUpl2 = _ref.classNameFileUpload, classNameFileUpload = _ref$classNameFileUpl2 === void 0 ? 'merchi-embed-form_dropzone' : _ref$classNameFileUpl2, _ref$classNameFilePre = _ref.classNameFilePreviewContainer, classNameFilePreviewContainer = _ref$classNameFilePre === void 0 ? 'uploaded-variation-file' : _ref$classNameFilePre, _ref$classNameFileUpl3 = _ref.classNameFileUploadTextContainer, classNameFileUploadTextContainer = _ref$classNameFileUpl3 === void 0 ? 'merchi-embed-form_dropzone-text-container' : _ref$classNameFileUpl3, _ref$classNameFilePre2 = _ref.classNameFilePreviewIconWrapper, classNameFilePreviewIconWrapper = _ref$classNameFilePre2 === void 0 ? 'uploaded-variation-file-icon-wrapper' : _ref$classNameFilePre2, _ref$classNameFileUpl4 = _ref.classNameFileUploadButton, classNameFileUploadButton = _ref$classNameFileUpl4 === void 0 ? 'btn btn-sm btn-link ml-auto' : _ref$classNameFileUpl4, _ref$classNameFileUpl5 = _ref.classNameFileUploadIcon, classNameFileUploadIcon = _ref$classNameFileUpl5 === void 0 ? 'merchi-embed-form_dropzone-icon' : _ref$classNameFileUpl5, _ref$classNameFileUpl6 = _ref.classNameFileUploadIconSecond, classNameFileUploadIconSecond = _ref$classNameFileUpl6 === void 0 ? 'merchi-embed-form_dropzone-icon-plus' : _ref$classNameFileUpl6, _ref$classNameFileUpl7 = _ref.classNameFileUploadIconContainer, classNameFileUploadIconContainer = _ref$classNameFileUpl7 === void 0 ? 'merchi-embed-form_dropzone-icon-container' : _ref$classNameFileUpl7, _ref$classNameFileLis = _ref.classNameFileListItem, classNameFileListItem = _ref$classNameFileLis === void 0 ? 'list-group-item no-z-index-hover' : _ref$classNameFileLis, _ref$classNameFileBut = _ref.classNameFileButtonDownload, classNameFileButtonDownload = _ref$classNameFileBut === void 0 ? 'btn btn-sm btn-secondary' : _ref$classNameFileBut, _ref$classNameFileBut2 = _ref.classNameFileButtonDelete, classNameFileButtonDelete = _ref$classNameFileBut2 === void 0 ? 'btn btn-sm btn-danger ml-2' : _ref$classNameFileBut2, _ref$classNameFileLis2 = _ref.classNameFileListItemContainer, classNameFileListItemContainer = _ref$classNameFileLis2 === void 0 ? 'list-group' : _ref$classNameFileLis2, _ref$classNameGroupsC = _ref.classNameGroupsContainer, classNameGroupsContainer = _ref$classNameGroupsC === void 0 ? 'merchi-embed-form_product-group-container' : _ref$classNameGroupsC, _ref$classNameGroupPr = _ref.classNameGroupPriceContainer, classNameGroupPriceContainer = _ref$classNameGroupPr === void 0 ? 'merchi-embed-form_product-group-total-cost' : _ref$classNameGroupPr, _ref$classNameInput = _ref.classNameInput, classNameInput = _ref$classNameInput === void 0 ? 'form-control' : _ref$classNameInput, _ref$classNameInvento = _ref.classNameInventoryStatus, classNameInventoryStatus = _ref$classNameInvento === void 0 ? 'flex-fill' : _ref$classNameInvento, _ref$classNameInputCo = _ref.classNameInputContainer, classNameInputContainer = _ref$classNameInputCo === void 0 ? 'merchi-embed-form_product-group-input-qty-container' : _ref$classNameInputCo, _ref$classNameOptionC = _ref.classNameOptionContainer, classNameOptionContainer = _ref$classNameOptionC === void 0 ? 'merchi-embed-form_checkbox_radio-item' : _ref$classNameOptionC, _ref$classNameOptionI = _ref.classNameOptionInput, classNameOptionInput = _ref$classNameOptionI === void 0 ? 'merchi-embed-form_checkbox_radio-input' : _ref$classNameOptionI, _ref$classNameOptionL = _ref.classNameOptionLabel, classNameOptionLabel = _ref$classNameOptionL === void 0 ? 'merchi-embed-form_checkbox_radio-label' : _ref$classNameOptionL, _ref$classNameOptionS = _ref.classNameOptionSuper, classNameOptionSuper = _ref$classNameOptionS === void 0 ? 'merchi-embed-form_checkbox_radio-super' : _ref$classNameOptionS, _ref$classNameOptions = _ref.classNameOptionsCheckboxRadioContainer, classNameOptionsCheckboxRadioContainer = _ref$classNameOptions === void 0 ? '' : _ref$classNameOptions, _ref$classNameOptionI2 = _ref.classNameOptionImage, classNameOptionImage = _ref$classNameOptionI2 === void 0 ? 'merchi-embed-form_image-select-option-item-img' : _ref$classNameOptionI2, _ref$classNameOptionI3 = _ref.classNameOptionImageContainer, classNameOptionImageContainer = _ref$classNameOptionI3 === void 0 ? 'merchi-embed-form_image-select-option-item-container' : _ref$classNameOptionI3, _ref$classNameOptionC2 = _ref.classNameOptionColour, classNameOptionColour = _ref$classNameOptionC2 === void 0 ? 'merchi-embed-form_color-select-option' : _ref$classNameOptionC2, _ref$classNameOptionC3 = _ref.classNameOptionColourContainer, classNameOptionColourContainer = _ref$classNameOptionC3 === void 0 ? 'merchi-embed-form_color-select-item' : _ref$classNameOptionC3, _ref$classNameProduct = _ref.classNameProductTitle, classNameProductTitle = _ref$classNameProduct === void 0 ? 'merchi-product-title' : _ref$classNameProduct, _ref$classNameProduct2 = _ref.classNameProductOriginTitle, classNameProductOriginTitle = _ref$classNameProduct2 === void 0 ? 'merchi-product-origin-title' : _ref$classNameProduct2, _ref$classNameProduct3 = _ref.classNameProductTotal, classNameProductTotal = _ref$classNameProduct3 === void 0 ? 'merchi-embed-form_summary-product-cost' : _ref$classNameProduct3, _ref$classNameProduct4 = _ref.classNameProductTotalContainer, classNameProductTotalContainer = _ref$classNameProduct4 === void 0 ? 'merchi-embed-form_summary-product-cost-container' : _ref$classNameProduct4, _ref$classNameQuantit = _ref.classNameQuantityLabelContainer, classNameQuantityLabelContainer = _ref$classNameQuantit === void 0 ? 'merchi-embed-form_quantity-label-container' : _ref$classNameQuantit, classNameUnitPrice = _ref.classNameUnitPrice, children = _ref.children, currentUser = _ref.currentUser, hideCost = _ref.hideCost, _ref$hideCountry = _ref.hideCountry, hideCountry = _ref$hideCountry === void 0 ? false : _ref$hideCountry, hideCalculatedPrice = _ref.hideCalculatedPrice, _ref$hideDomainName = _ref.hideDomainName, hideDomainName = _ref$hideDomainName === void 0 ? false : _ref$hideDomainName, hideQuantityField = _ref.hideQuantityField, hideRequestQuotationButton = _ref.hideRequestQuotationButton, hidePaymentUpfrontButton = _ref.hidePaymentUpfrontButton, _ref$hideTitle = _ref.hideTitle, hideTitle = _ref$hideTitle === void 0 ? false : _ref$hideTitle, isCartItem = _ref.isCartItem, initJob = _ref.initJob, initProduct = _ref.initProduct, onAddToCart = _ref.onAddToCart, onBuyNow = _ref.onBuyNow, onGetQuote = _ref.onGetQuote, onSubmit = _ref.onSubmit, productFormId = _ref.productFormId, showCurrency = _ref.showCurrency, showCurrencyCode = _ref.showCurrencyCode, showFeatureDeadline = _ref.showFeatureDeadline, showGroupBuyStatus = _ref.showGroupBuyStatus, showUnitPrice = _ref.showUnitPrice; var defaultJob = initJob || initProduct.defaultJob || {}; var hookForm = useForm({ defaultValues: defaultJob }); var _useState = useState(currentUser), _useState2 = _slicedToArray(_useState, 2), client = _useState2[0], setClient = _useState2[1]; var _useState3 = useState(defaultJob), _useState4 = _slicedToArray(_useState3, 2), job = _useState4[0], setJob = _useState4[1]; var _useState5 = useState(false), _useState6 = _slicedToArray(_useState5, 2), loading = _useState6[0], setLoading = _useState6[1]; var control = hookForm.control, getValues = hookForm.getValues, handleSubmit = hookForm.handleSubmit; var doSubmit = onSubmit ? handleSubmit(onSubmit) : undefined; var tags = getMerchiSourceJobTags(); var _useState7 = useState(null), _useState8 = _slicedToArray(_useState7, 2), alert = _useState8[0], showAlert = _useState8[1]; function getQuote() { return _getQuote.apply(this, arguments); } function _getQuote() { _getQuote = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4() { var values, data, r, jobJson, message; return _regeneratorRuntime().wrap(function _callee4$(_context4) { while (1) switch (_context4.prev = _context4.next) { case 0: _context4.next = 2; return getValues(); case 2: values = _context4.sent; setLoading(true); data = _objectSpread(_objectSpread({}, values), {}, { product: { id: initProduct.id } }); if (productHasGroups(initProduct)) { // if the product has group variation fields we delete quantity // because each group has it's own quantity delete data.quantity; } _context4.prev = 6; _context4.next = 9; return fetchJobQuote(data); case 9: r = _context4.sent; jobJson = r.toJson(); setJob(jobJson); _context4.next = 19; break; case 14: _context4.prev = 14; _context4.t0 = _context4["catch"](6); message = _context4.t0.errorMessage || _context4.t0.message || 'Server error'; showAlert({ message: message }); console.error(message); case 19: _context4.prev = 19; setLoading(false); return _context4.finish(19); case 22: case "end": return _context4.stop(); } }, _callee4, null, [[6, 14, 19, 22]]); })); return _getQuote.apply(this, arguments); } var addToCart = onAddToCart ? /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() { return _regeneratorRuntime().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: _context.next = 2; return getQuote(); case 2: onAddToCart(_objectSpread(_objectSpread({}, job), {}, { tags: tags })); case 3: case "end": return _context.stop(); } }, _callee); })) : undefined; var buyNow = onBuyNow ? /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2() { return _regeneratorRuntime().wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return getQuote(); case 2: onBuyNow(_objectSpread({}, job)); case 3: case "end": return _context2.stop(); } }, _callee2); })) : undefined; var getSubmitQuote = onGetQuote ? /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3() { return _regeneratorRuntime().wrap(function _callee3$(_context3) { while (1) switch (_context3.prev = _context3.next) { case 0: _context3.next = 2; return getQuote(); case 2: onGetQuote(_objectSpread({}, job)); case 3: case "end": return _context3.stop(); } }, _callee3); })) : undefined; return /*#__PURE__*/_jsx(MerchiProductFormContext.Provider, { value: { apiUrl: apiUrl, allowAddToCart: allowAddToCart, btnNameAddToCart: btnNameAddToCart, classNameAlertSellerEditable: classNameAlertSellerEditable, classNameButtonSubmit: classNameButtonSubmit, classNameButtonGroupAdd: classNameButtonGroupAdd, classNameButtonGroupRemove: classNameButtonGroupRemove, classNameButtonsSubmitContainer: classNameButtonsSubmitContainer, classNameFileUploadContainer: classNameFileUploadContainer, classNameFileUpload: classNameFileUpload, classNameFilePreviewContainer: classNameFilePreviewContainer, classNameFileUploadTextContainer: classNameFileUploadTextContainer, classNameFilePreviewIconWrapper: classNameFilePreviewIconWrapper, classNameFileUploadButton: classNameFileUploadButton, classNameFileUploadIcon: classNameFileUploadIcon, classNameFileUploadIconSecond: classNameFileUploadIconSecond, classNameFileUploadIconContainer: classNameFileUploadIconContainer, classNameFileListItem: classNameFileListItem, classNameFileButtonDownload: classNameFileButtonDownload, classNameFileButtonDelete: classNameFileButtonDelete, classNameFileListItemContainer: classNameFileListItemContainer, classNameGroupsContainer: classNameGroupsContainer, classNameGroupPriceContainer: classNameGroupPriceContainer, classNameInput: classNameInput, classNameInputContainer: classNameInputContainer, classNameInventoryStatus: classNameInventoryStatus, classNameOptionContainer: classNameOptionContainer, classNameOptionInput: classNameOptionInput, classNameOptionLabel: classNameOptionLabel, classNameOptionSuper: classNameOptionSuper, classNameOptionsCheckboxRadioContainer: classNameOptionsCheckboxRadioContainer, classNameOptionImage: classNameOptionImage, classNameOptionImageContainer: classNameOptionImageContainer, classNameOptionColour: classNameOptionColour, classNameOptionColourContainer: classNameOptionColourContainer, classNameProductTitle: classNameProductTitle, classNameProductOriginTitle: classNameProductOriginTitle, classNameProductTotalContainer: classNameProductTotalContainer, classNameProductTotal: classNameProductTotal, classNameQuantityLabelContainer: classNameQuantityLabelContainer, classNameUnitPrice: classNameUnitPrice, client: client, control: control, getQuote: getQuote, hideCost: hideCost, hideCountry: hideCountry, hideCalculatedPrice: hideCalculatedPrice, hideDomainName: hideDomainName, hideQuantityField: hideQuantityField, hideRequestQuotationButton: hideRequestQuotationButton, hidePaymentUpfrontButton: hidePaymentUpfrontButton, hideTitle: hideTitle, hookForm: hookForm, isCartItem: isCartItem, job: job, loading: loading, onAddToCart: addToCart, onBuyNow: buyNow, onGetQuote: getSubmitQuote, product: initProduct, productFormId: productFormId, setClient: setClient, setJob: setJob, setLoading: setLoading, showAlert: showAlert, showCurrency: showCurrency, showCurrencyCode: showCurrencyCode, showFeatureDeadline: showFeatureDeadline, showGroupBuyStatus: showGroupBuyStatus, showUnitPrice: showUnitPrice }, children: productFormId ? /*#__PURE__*/_jsx("form", { id: productFormId, onSubmit: doSubmit, children: children }) : children }); }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdHlwZW9mIiwibyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwibiIsImhhc093blByb3BlcnR5IiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsImkiLCJhIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwicmVzb2x2ZSIsIl9fYXdhaXQiLCJ0aGVuIiwiY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmciLCJFcnJvciIsImRvbmUiLCJtZXRob2QiLCJkZWxlZ2F0ZSIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsIlR5cGVFcnJvciIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInB1c2giLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXNOYU4iLCJsZW5ndGgiLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwib3duS2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiX3RvUHJvcGVydHlLZXkiLCJfdG9QcmltaXRpdmUiLCJ0b1ByaW1pdGl2ZSIsIlN0cmluZyIsIk51bWJlciIsImFzeW5jR2VuZXJhdG9yU3RlcCIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX25leHQiLCJfdGhyb3ciLCJfc2xpY2VkVG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVJlc3QiLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwiQXJyYXkiLCJmcm9tIiwidGVzdCIsImlzQXJyYXkiLCJSZWFjdCIsImNyZWF0ZUNvbnRleHQiLCJ1c2VDb250ZXh0IiwidXNlU3RhdGUiLCJ1c2VGb3JtIiwiZmV0Y2hKb2JRdW90ZSIsInByb2R1Y3RIYXNHcm91cHMiLCJnZXRNZXJjaGlTb3VyY2VKb2JUYWdzIiwianN4IiwiX2pzeCIsIk1lcmNoaVByb2R1Y3RGb3JtQ29udGV4dCIsImFwaVVybCIsImFsbG93QWRkVG9DYXJ0IiwiYnRuTmFtZUFkZFRvQ2FydCIsInVuZGVmaW5lZCIsImNsYXNzTmFtZUFsZXJ0U2VsbGVyRWRpdGFibGUiLCJjbGFzc05hbWVCdXR0b25TdWJtaXQiLCJjbGFzc05hbWVCdXR0b25Hcm91cEFkZCIsImNsYXNzTmFtZUJ1dHRvbkdyb3VwUmVtb3ZlIiwiY2xhc3NOYW1lQnV0dG9uc1N1Ym1pdENvbnRhaW5lciIsImNsYXNzTmFtZUZpbGVVcGxvYWRDb250YWluZXIiLCJjbGFzc05hbWVGaWxlVXBsb2FkIiwiY2xhc3NOYW1lRmlsZVByZXZpZXdDb250YWluZXIiLCJjbGFzc05hbWVGaWxlVXBsb2FkVGV4dENvbnRhaW5lciIsImNsYXNzTmFtZUZpbGVQcmV2aWV3SWNvbldyYXBwZXIiLCJjbGFzc05hbWVGaWxlVXBsb2FkQnV0dG9uIiwiY2xhc3NOYW1lRmlsZVVwbG9hZEljb24iLCJjbGFzc05hbWVGaWxlVXBsb2FkSWNvblNlY29uZCIsImNsYXNzTmFtZUZpbGVVcGxvYWRJY29uQ29udGFpbmVyIiwiY2xhc3NOYW1lRmlsZUxpc3RJdGVtIiwiY2xhc3NOYW1lRmlsZUJ1dHRvbkRlbGV0ZSIsImNsYXNzTmFtZUZpbGVMaXN0SXRlbUNvbnRhaW5lciIsImNsYXNzTmFtZUdyb3Vwc0NvbnRhaW5lciIsImNsYXNzTmFtZUdyb3VwUHJpY2VDb250YWluZXIiLCJjbGFzc05hbWVJbnB1dCIsImNsYXNzTmFtZUlucHV0Q29udGFpbmVyIiwiY2xhc3NOYW1lSW52ZW50b3J5U3RhdHVzIiwiY2xhc3NOYW1lT3B0aW9uQ29udGFpbmVyIiwiY2xhc3NOYW1lT3B0aW9uSW5wdXQiLCJjbGFzc05hbWVPcHRpb25MYWJlbCIsImNsYXNzTmFtZU9wdGlvblN1cGVyIiwiY2xhc3NOYW1lT3B0aW9uc0NoZWNrYm94UmFkaW9Db250YWluZXIiLCJjbGFzc05hbWVPcHRpb25JbWFnZSIsImNsYXNzTmFtZU9wdGlvbkltYWdlQ29udGFpbmVyIiwiY2xhc3NOYW1lT3B0aW9uQ29sb3VyIiwiY2xhc3NOYW1lT3B0aW9uQ29sb3VyQ29udGFpbmVyIiwiY2xhc3NOYW1lUHJvZHVjdFRpdGxlIiwiY2xhc3NOYW1lUHJvZHVjdE9yaWdpblRpdGxlIiwiY2xhc3NOYW1lUHJvZHVjdFRvdGFsQ29udGFpbmVyIiwiY2xhc3NOYW1lUHJvZHVjdFRvdGFsIiwiY2xhc3NOYW1lUXVhbnRpdHlMYWJlbENvbnRhaW5lciIsImNsYXNzTmFtZVVuaXRQcmljZSIsImNvbnRyb2wiLCJjdXJyZW50VXNlciIsImdldFF1b3RlIiwiaGlkZUNvc3QiLCJoaWRlQ291bnRyeSIsImhpZGVEb21haW5OYW1lIiwiaGlkZUNhbGN1bGF0ZWRQcmljZSIsImhpZGVRdWFudGl0eUZpZWxkIiwiaGlkZVJlcXVlc3RRdW90YXRpb25CdXR0b24iLCJoaWRlUGF5bWVudFVwZnJvbnRCdXR0b24iLCJoaWRlVGl0bGUiLCJob29rRm9ybSIsImlzQ2FydEl0ZW0iLCJpbml0Sm9iIiwiam9iIiwibG9hZGluZyIsIm9uQWRkVG9DYXJ0Iiwib25CdXlOb3ciLCJvbkdldFF1b3RlIiwib25TdWJtaXQiLCJwcm9kdWN0IiwicHJvZHVjdEZvcm1JZCIsInNldENsaWVudCIsInNldEpvYiIsInNldExvYWRpbmciLCJzaG93QWxlcnQiLCJhbGVydCIsInNob3dDdXJyZW5jeSIsInNob3dDdXJyZW5jeUNvZGUiLCJzaG93RmVhdHVyZURlYWRsaW5lIiwic2hvd0dyb3VwQnV5U3RhdHVzIiwic2hvd1VuaXRQcmljZSIsInVzZU1lcmNoaUZvcm1Db250ZXh0IiwiTWVyY2hpUHJvZHVjdEZvcm1Qcm92aWRlciIsIl9yZWYiLCJfcmVmJGFwaVVybCIsIl9yZWYkY2xhc3NOYW1lQWxlcnRTZSIsIl9yZWYkY2xhc3NOYW1lQnV0dG9uUyIsIl9yZWYkY2xhc3NOYW1lQnV0dG9uRyIsIl9yZWYkY2xhc3NOYW1lQnV0dG9uRzIiLCJfcmVmJGNsYXNzTmFtZUJ1dHRvbnMiLCJfcmVmJGNsYXNzTmFtZUZpbGVVcGwiLCJfcmVmJGNsYXNzTmFtZUZpbGVVcGwyIiwiX3JlZiRjbGFzc05hbWVGaWxlUHJlIiwiX3JlZiRjbGFzc05hbWVGaWxlVXBsMyIsIl9yZWYkY2xhc3NOYW1lRmlsZVByZTIiLCJfcmVmJGNsYXNzTmFtZUZpbGVVcGw0IiwiX3JlZiRjbGFzc05hbWVGaWxlVXBsNSIsIl9yZWYkY2xhc3NOYW1lRmlsZVVwbDYiLCJfcmVmJGNsYXNzTmFtZUZpbGVVcGw3IiwiX3JlZiRjbGFzc05hbWVGaWxlTGlzIiwiX3JlZiRjbGFzc05hbWVGaWxlQnV0IiwiY2xhc3NOYW1lRmlsZUJ1dHRvbkRvd25sb2FkIiwiX3JlZiRjbGFzc05hbWVGaWxlQnV0MiIsIl9yZWYkY2xhc3NOYW1lRmlsZUxpczIiLCJfcmVmJGNsYXNzTmFtZUdyb3Vwc0MiLCJfcmVmJGNsYXNzTmFtZUdyb3VwUHIiLCJfcmVmJGNsYXNzTmFtZUlucHV0IiwiX3JlZiRjbGFzc05hbWVJbnZlbnRvIiwiX3JlZiRjbGFzc05hbWVJbnB1dENvIiwiX3JlZiRjbGFzc05hbWVPcHRpb25DIiwiX3JlZiRjbGFzc05hbWVPcHRpb25JIiwiX3JlZiRjbGFzc05hbWVPcHRpb25MIiwiX3JlZiRjbGFzc05hbWVPcHRpb25TIiwiX3JlZiRjbGFzc05hbWVPcHRpb25zIiwiX3JlZiRjbGFzc05hbWVPcHRpb25JMiIsIl9yZWYkY2xhc3NOYW1lT3B0aW9uSTMiLCJfcmVmJGNsYXNzTmFtZU9wdGlvbkMyIiwiX3JlZiRjbGFzc05hbWVPcHRpb25DMyIsIl9yZWYkY2xhc3NOYW1lUHJvZHVjdCIsIl9yZWYkY2xhc3NOYW1lUHJvZHVjdDIiLCJfcmVmJGNsYXNzTmFtZVByb2R1Y3QzIiwiX3JlZiRjbGFzc05hbWVQcm9kdWN0NCIsIl9yZWYkY2xhc3NOYW1lUXVhbnRpdCIsImNoaWxkcmVuIiwiX3JlZiRoaWRlQ291bnRyeSIsIl9yZWYkaGlkZURvbWFpbk5hbWUiLCJfcmVmJGhpZGVUaXRsZSIsImluaXRQcm9kdWN0IiwiZGVmYXVsdEpvYiIsImRlZmF1bHRWYWx1ZXMiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiY2xpZW50IiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImdldFZhbHVlcyIsImhhbmRsZVN1Ym1pdCIsImRvU3VibWl0IiwidGFncyIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiX2dldFF1b3RlIiwiX2NhbGxlZTQiLCJkYXRhIiwiam9iSnNvbiIsIm1lc3NhZ2UiLCJfY2FsbGVlNCQiLCJfY29udGV4dDQiLCJpZCIsInF1YW50aXR5IiwidG9Kc29uIiwidDAiLCJlcnJvck1lc3NhZ2UiLCJjb25zb2xlIiwiZXJyb3IiLCJhZGRUb0NhcnQiLCJfY2FsbGVlIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsImJ1eU5vdyIsIl9jYWxsZWUyIiwiX2NhbGxlZTIkIiwiX2NvbnRleHQyIiwiZ2V0U3VibWl0UXVvdGUiLCJfY2FsbGVlMyIsIl9jYWxsZWUzJCIsIl9jb250ZXh0MyIsIlByb3ZpZGVyIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvTWVyY2hpUHJvZHVjdEZvcm1Qcm92aWRlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnO1xyXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIFJlYWN0Tm9kZSwgdXNlQ29udGV4dCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCB7IHVzZUZvcm0gfSBmcm9tICdyZWFjdC1ob29rLWZvcm0nO1xyXG5pbXBvcnQgeyBmZXRjaEpvYlF1b3RlIH0gZnJvbSAnLi4vYWN0aW9ucy9qb2JzJztcclxuaW1wb3J0IHsgcHJvZHVjdEhhc0dyb3VwcyB9IGZyb20gJy4uL3V0aWxzL3Byb2R1Y3RzJztcclxuaW1wb3J0IHsgZ2V0TWVyY2hpU291cmNlSm9iVGFncyB9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxudHlwZSBGb3JtTWV0aG9kcyA9IFJldHVyblR5cGU8dHlwZW9mIHVzZUZvcm0+O1xyXG5cclxuaW50ZXJmYWNlIElNZXJjaGlQcm9kdWN0Rm9ybSB7XHJcbiAgYXBpVXJsPzogc3RyaW5nO1xyXG4gIGFsbG93QWRkVG9DYXJ0PzogYm9vbGVhbjtcclxuICBidG5OYW1lQWRkVG9DYXJ0Pzogc3RyaW5nO1xyXG4gIGNsYXNzTmFtZUFsZXJ0U2VsbGVyRWRpdGFibGU/OiBzdHJpbmc7XHJcbiAgY2xhc3NOYW1lQnV0dG9uU3VibWl0Pzogc3RyaW5nO1xyXG4gIGNsYXNzTmFtZUJ1dHRvbkdyb3VwQWRkPzogc3RyaW5nO1xyXG4gIGNsYXNzTmFtZUJ1dHRvbkdyb3VwUmVtb3ZlPzogc3RyaW5nO1xyXG4gIGNsYXNzTmFtZUJ1dHRvbnNTdWJtaXRDb250YWluZXI/OiBzdHJpbmc7XHJcbiAgY2xhc3NOYW1lRmlsZVVwbG9hZENvbnRhaW5lcj86IHN0cmluZztcclxuICBjbGFzc05hbWVGaWxlVXBsb2FkPzogc3RyaW5nO1xyXG4gIGNsYXNzTmFtZUZpbGVQcmV2aWV3Q29udGFpbmVyPzogc3RyaW5nO1xyXG4gIGNsYXNzTmFtZUZpbGVVcGxvYWRUZXh0Q29udGFpbmVyPzogc3RyaW5nO1xyXG4gIGNsYXNzTmFtZUZpbGVQcmV2aWV3SWNvbldyYXBwZXI/OiBzdHJpbmc7XHJcbiAgY2xhc3NOYW1lRmlsZVVwbG9hZEJ1dHRvbj86IHN0cmluZztcclxuICBjbGFzc05hbWVGaWxlVXBsb2FkSWNvbj86IHN0cmluZztcclxuICBjbGFzc05hbWVGaWxlVXBsb2FkSWNvblNlY29uZD86IHN0cmluZztcclxuICBjbGFzc05hbWVGaWxlVXBsb2FkSWNvbkNvbnRhaW5lcj86IHN0cmluZztcclxuICBjbGFzc05hbWVGaWxlTGlzdEl0ZW0/OiBzdHJpbmc7XHJcbiAgY2xhc3NOYW1lRmlsZUJ1dHRvbkRvd25sb2FkPzogc3RyaW5nO1xyXG4gIGNsYXNzTmFtZUZpbGVCdXR0b25EZWxldGU/OiBzdHJpbmc7XHJcbiAgY2xhc3NOYW1lRmlsZUxpc3RJdGVtQ29udGFpbmVyPzogc3RyaW5nO1xyXG4gIGNsYXNzTmFtZUdyb3Vwc0NvbnRhaW5lcj86IHN0cmluZztcclxuICBjbGFzc05hbWVHcm91cFByaWNlQ29udGFpbmVyPzogc3RyaW5nO1xyXG4gIGNsYXNzTmFtZUlucHV0Pzogc3RyaW5nO1xyXG4gIGNsYXNzTmFtZUlucHV0Q29udGFpbmVyPzogc3RyaW5nO1xyXG4gIGNsYXNzTmFtZUludmVudG9yeVN0YXR1cz86IHN0cmluZztcclxuICBjbGFzc05hbWVPcHRpb25Db250YWluZXI/OiBzdHJpbmc7XHJcbiAgY2xhc3NOYW1lT3B0aW9uSW5wdXQ/OiBzdHJpbmc7XHJcbiAgY2xhc3NOYW1lT3B0aW9uTGFiZWw/OiBzdHJpbmc7XHJcbiAgY2xhc3NOYW1lT3B0aW9uU3VwZXI/OiBzdHJpbmc7XHJcbiAgY2xhc3NOYW1lT3B0aW9uc0NoZWNrYm94UmFkaW9Db250YWluZXI/OiBzdHJpbmc7XHJcbiAgY2xhc3NOYW1lT3B0aW9uSW1hZ2U/OiBzdHJpbmc7XHJcbiAgY2xhc3NOYW1lT3B0aW9uSW1hZ2VDb250YWluZXI/OiBzdHJpbmc7XHJcbiAgY2xhc3NOYW1lT3B0aW9uQ29sb3VyPzogc3RyaW5nO1xyXG4gIGNsYXNzTmFtZU9wdGlvbkNvbG91ckNvbnRhaW5lcj86IHN0cmluZztcclxuICBjbGFzc05hbWVQcm9kdWN0VGl0bGU/OiBzdHJpbmc7XHJcbiAgY2xhc3NOYW1lUHJvZHVjdE9yaWdpblRpdGxlPzogc3RyaW5nO1xyXG4gIGNsYXNzTmFtZVByb2R1Y3RUb3RhbENvbnRhaW5lcj86IHN0cmluZztcclxuICBjbGFzc05hbWVQcm9kdWN0VG90YWw/OiBzdHJpbmc7XHJcbiAgY2xhc3NOYW1lUXVhbnRpdHlMYWJlbENvbnRhaW5lcj86IHN0cmluZztcclxuICBjbGFzc05hbWVVbml0UHJpY2U/OiBzdHJpbmc7XHJcbiAgY29udHJvbDogYW55O1xyXG4gIGN1cnJlbnRVc2VyPzogYW55O1xyXG4gIGdldFF1b3RlOiBhbnk7XHJcbiAgaGlkZUNvc3Q/OiBib29sZWFuO1xyXG4gIGhpZGVDb3VudHJ5PzogYm9vbGVhbjtcclxuICBoaWRlQ2FsY3VsYXRlZFByaWNlPzogYm9vbGVhbjtcclxuICBoaWRlRG9tYWluTmFtZT86IGJvb2xlYW47XHJcbiAgaGlkZVF1YW50aXR5RmllbGQ/OiBib29sZWFuO1xyXG4gIGhpZGVSZXF1ZXN0UXVvdGF0aW9uQnV0dG9uPzogYm9vbGVhbjtcclxuICBoaWRlUGF5bWVudFVwZnJvbnRCdXR0b24/OiBib29sZWFuO1xyXG4gIGhpZGVUaXRsZT86IGJvb2xlYW47XHJcbiAgaG9va0Zvcm06IEZvcm1NZXRob2RzO1xyXG4gIGlzQ2FydEl0ZW0/OiBib29sZWFuO1xyXG4gIGluaXRKb2I/OiBhbnk7XHJcbiAgam9iOiBhbnk7XHJcbiAgbG9hZGluZzogYm9vbGVhbjtcclxuICBvbkFkZFRvQ2FydD86ICgpID0+IHZvaWQ7XHJcbiAgb25CdXlOb3c/OiAoKSA9PiB2b2lkO1xyXG4gIG9uR2V0UXVvdGU/OiAoKSA9PiB2b2lkO1xyXG4gIG9uU3VibWl0PzogKGpvYkRhdGE6IGFueSkgPT4gdm9pZDtcclxuICBwcm9kdWN0OiBhbnk7XHJcbiAgcHJvZHVjdEZvcm1JZD86IHN0cmluZztcclxuICBzZXRDbGllbnQ6IChjbGllbnQ6IGFueSkgPT4gdm9pZDtcclxuICBzZXRKb2I6IChqb2I6IGFueSkgPT4gdm9pZDtcclxuICBzZXRMb2FkaW5nOiAobG9hZGluZzogYm9vbGVhbikgPT4gdm9pZDtcclxuICBzaG93QWxlcnQ6IChhbGVydDogYW55KSA9PiB2b2lkO1xyXG4gIHNob3dDdXJyZW5jeT86IGJvb2xlYW47XHJcbiAgc2hvd0N1cnJlbmN5Q29kZT86IGJvb2xlYW47XHJcbiAgc2hvd0ZlYXR1cmVEZWFkbGluZT86IGJvb2xlYW47XHJcbiAgc2hvd0dyb3VwQnV5U3RhdHVzPzogYm9vbGVhbjtcclxuICBzaG93VW5pdFByaWNlPzogYm9vbGVhbjtcclxufVxyXG5cclxuY29uc3QgTWVyY2hpUHJvZHVjdEZvcm1Db250ZXh0ID0gY3JlYXRlQ29udGV4dDxJTWVyY2hpUHJvZHVjdEZvcm0+KHtcclxuICBhcGlVcmw6ICcnLFxyXG4gIGFsbG93QWRkVG9DYXJ0OiBmYWxzZSxcclxuICBidG5OYW1lQWRkVG9DYXJ0OiB1bmRlZmluZWQsXHJcbiAgY2xhc3NOYW1lQWxlcnRTZWxsZXJFZGl0YWJsZTogdW5kZWZpbmVkLFxyXG4gIGNsYXNzTmFtZUJ1dHRvblN1Ym1pdDogdW5kZWZpbmVkLFxyXG4gIGNsYXNzTmFtZUJ1dHRvbkdyb3VwQWRkOiB1bmRlZmluZWQsXHJcbiAgY2xhc3NOYW1lQnV0dG9uR3JvdXBSZW1vdmU6IHVuZGVmaW5lZCxcclxuICBjbGFzc05hbWVCdXR0b25zU3VibWl0Q29udGFpbmVyOiB1bmRlZmluZWQsXHJcbiAgY2xhc3NOYW1lRmlsZVVwbG9hZENvbnRhaW5lcjogdW5kZWZpbmVkLFxyXG4gIGNsYXNzTmFtZUZpbGVVcGxvYWQ6IHVuZGVmaW5lZCxcclxuICBjbGFzc05hbWVGaWxlUHJldmlld0NvbnRhaW5lcjogdW5kZWZpbmVkLFxyXG4gIGNsYXNzTmFtZUZpbGVVcGxvYWRUZXh0Q29udGFpbmVyOiB1bmRlZmluZWQsXHJcbiAgY2xhc3NOYW1lRmlsZVByZXZpZXdJY29uV3JhcHBlcjogdW5kZWZpbmVkLFxyXG4gIGNsYXNzTmFtZUZpbGVVcGxvYWRCdXR0b246IHVuZGVmaW5lZCxcclxuICBjbGFzc05hbWVGaWxlVXBsb2FkSWNvbjogdW5kZWZpbmVkLFxyXG4gIGNsYXNzTmFtZUZpbGVVcGxvYWRJY29uU2Vjb25kOiB1bmRlZmluZWQsXHJcbiAgY2xhc3NOYW1lRmlsZVVwbG9hZEljb25Db250YWluZXI6IHVuZGVmaW5lZCxcclxuICBjbGFzc05hbWVGaWxlTGlzdEl0ZW06IHVuZGVmaW5lZCxcclxuICBjbGFzc05hbWVGaWxlQnV0dG9uRGVsZXRlOiB1bmRlZmluZWQsXHJcbiAgY2xhc3NOYW1lRmlsZUxpc3RJdGVtQ29udGFpbmVyOiB1bmRlZmluZWQsXHJcbiAgY2xhc3NOYW1lR3JvdXBzQ29udGFpbmVyOiB1bmRlZmluZWQsXHJcbiAgY2xhc3NOYW1lR3JvdXBQcmljZUNvbnRhaW5lcjogdW5kZWZpbmVkLFxyXG4gIGNsYXNzTmFtZUlucHV0OiB1bmRlZmluZWQsXHJcbiAgY2xhc3NOYW1lSW5wdXRDb250YWluZXI6IHVuZGVmaW5lZCxcclxuICBjbGFzc05hbWVJbnZlbnRvcnlTdGF0dXM6IHVuZGVmaW5lZCxcclxuICBjbGFzc05hbWVPcHRpb25Db250YWluZXI6IHVuZGVmaW5lZCxcclxuICBjbGFzc05hbWVPcHRpb25JbnB1dDogdW5kZWZpbmVkLFxyXG4gIGNsYXNzTmFtZU9wdGlvbkxhYmVsOiB1bmRlZmluZWQsXHJcbiAgY2xhc3NOYW1lT3B0aW9uU3VwZXI6IHVuZGVmaW5lZCxcclxuICBjbGFzc05hbWVPcHRpb25zQ2hlY2tib3hSYWRpb0NvbnRhaW5lcjogdW5kZWZpbmVkLFxyXG4gIGNsYXNzTmFtZU9wdGlvbkltYWdlOiB1bmRlZmluZWQsXHJcbiAgY2xhc3NOYW1lT3B0aW9uSW1hZ2VDb250YWluZXI6IHVuZGVmaW5lZCxcclxuICBjbGFzc05hbWVPcHRpb25Db2xvdXI6IHVuZGVmaW5lZCxcclxuICBjbGFzc05hbWVPcHRpb25Db2xvdXJDb250YWluZXI6IHVuZGVmaW5lZCxcclxuICBjbGFzc05hbWVQcm9kdWN0VGl0bGU6IHVuZGVmaW5lZCxcclxuICBjbGFzc05hbWVQcm9kdWN0T3JpZ2luVGl0bGU6IHVuZGVmaW5lZCxcclxuICBjbGFzc05hbWVQcm9kdWN0VG90YWxDb250YWluZXI6IHVuZGVmaW5lZCxcclxuICBjbGFzc05hbWVQcm9kdWN0VG90YWw6IHVuZGVmaW5lZCxcclxuICBjbGFzc05hbWVRdWFudGl0eUxhYmVsQ29udGFpbmVyOiB1bmRlZmluZWQsXHJcbiAgY2xhc3NOYW1lVW5pdFByaWNlOiB1bmRlZmluZWQsXHJcbiAgY29udHJvbDoge30sXHJcbiAgY3VycmVudFVzZXI6IHt9LFxyXG4gIGdldFF1b3RlKCkge30sXHJcbiAgaGlkZUNvc3Q6IGZhbHNlLFxyXG4gIGhpZGVDb3VudHJ5OiBmYWxzZSxcclxuICBoaWRlRG9tYWluTmFtZTogZmFsc2UsXHJcbiAgaGlkZUNhbGN1bGF0ZWRQcmljZTogZmFsc2UsXHJcbiAgaGlkZVF1YW50aXR5RmllbGQ6IGZhbHNlLFxyXG4gIGhpZGVSZXF1ZXN0UXVvdGF0aW9uQnV0dG9uOiBmYWxzZSxcclxuICBoaWRlUGF5bWVudFVwZnJvbnRCdXR0b246IGZhbHNlLFxyXG4gIGhpZGVUaXRsZTogZmFsc2UsXHJcbiAgaG9va0Zvcm06IHt9IGFzIGFueSxcclxuICBpc0NhcnRJdGVtOiBmYWxzZSxcclxuICBpbml0Sm9iOiB1bmRlZmluZWQsXHJcbiAgam9iOiB7fSxcclxuICBsb2FkaW5nOiBmYWxzZSxcclxuICBvbkFkZFRvQ2FydCgpIHt9LFxyXG4gIG9uQnV5Tm93KCkge30sXHJcbiAgb25HZXRRdW90ZSgpIHt9LFxyXG4gIG9uU3VibWl0KCkge30sXHJcbiAgcHJvZHVjdDoge30sXHJcbiAgcHJvZHVjdEZvcm1JZDogdW5kZWZpbmVkLFxyXG4gIHNldENsaWVudCgpIHt9LFxyXG4gIHNldEpvYihqb2IpIHt9LFxyXG4gIHNldExvYWRpbmcobG9hZGluZykge30sXHJcbiAgc2hvd0FsZXJ0KGFsZXJ0KSB7fSxcclxuICBzaG93Q3VycmVuY3k6IGZhbHNlLFxyXG4gIHNob3dDdXJyZW5jeUNvZGU6IGZhbHNlLFxyXG4gIHNob3dGZWF0dXJlRGVhZGxpbmU6IGZhbHNlLFxyXG4gIHNob3dHcm91cEJ1eVN0YXR1czogZmFsc2UsXHJcbiAgc2hvd1VuaXRQcmljZTogZmFsc2UsXHJcbn0pO1xyXG5cclxuZXhwb3J0IGNvbnN0IHVzZU1lcmNoaUZvcm1Db250ZXh0ID0gKCkgPT4gdXNlQ29udGV4dChNZXJjaGlQcm9kdWN0Rm9ybUNvbnRleHQpO1xyXG5cclxuZXhwb3J0IGNvbnN0IE1lcmNoaVByb2R1Y3RGb3JtUHJvdmlkZXIgPSAoe1xyXG4gIGFwaVVybCA9ICdodHRwczovL2FwaS5tZXJjaGkuY28vdjYvJyxcclxuICBhbGxvd0FkZFRvQ2FydCxcclxuICBidG5OYW1lQWRkVG9DYXJ0LFxyXG4gIGNsYXNzTmFtZUFsZXJ0U2VsbGVyRWRpdGFibGUgPSAnYWxlcnQgYWxlcnQtbGlnaHQnLFxyXG4gIGNsYXNzTmFtZUJ1dHRvblN1Ym1pdCA9ICdidG4gYnRuLXByaW1hcnkgdy0xMDAgbWVyY2hpLWVtYmVkLWZvcm1fYnV0dG9uLXN1Ym1pdCcsXHJcbiAgY2xhc3NOYW1lQnV0dG9uR3JvdXBBZGQgPSAnYnRuIGJ0bi13aGl0ZScsXHJcbiAgY2xhc3NOYW1lQnV0dG9uR3JvdXBSZW1vdmUgPSAnYnRuIGJ0bi1kYW5nZXInLFxyXG4gIGNsYXNzTmFtZUJ1dHRvbnNTdWJtaXRDb250YWluZXIgPSAnbWVyY2hpLXByb2R1Y3QtYnV0dG9ucy1zdWJtaXQtY29udGFpbmVyJyxcclxuICBjbGFzc05hbWVGaWxlVXBsb2FkQ29udGFpbmVyID0gJ21lcmNoaS1pbnB1dC1maWxlLWNvbnRhaW5lcicsXHJcbiAgY2xhc3NOYW1lRmlsZVVwbG9hZCA9ICdtZXJjaGktZW1iZWQtZm9ybV9kcm9wem9uZScsXHJcbiAgY2xhc3NOYW1lRmlsZVByZXZpZXdDb250YWluZXIgPSAndXBsb2FkZWQtdmFyaWF0aW9uLWZpbGUnLFxyXG4gIGNsYXNzTmFtZUZpbGVVcGxvYWRUZXh0Q29udGFpbmVyID0gJ21lcmNoaS1lbWJlZC1mb3JtX2Ryb3B6b25lLXRleHQtY29udGFpbmVyJyxcclxuICBjbGFzc05hbWVGaWxlUHJldmlld0ljb25XcmFwcGVyID0gJ3VwbG9hZGVkLXZhcmlhdGlvbi1maWxlLWljb24td3JhcHBlcicsXHJcbiAgY2xhc3NOYW1lRmlsZVVwbG9hZEJ1dHRvbiA9ICdidG4gYnRuLXNtIGJ0bi1saW5rIG1sLWF1dG8nLFxyXG4gIGNsYXNzTmFtZUZpbGVVcGxvYWRJY29uID0gJ21lcmNoaS1lbWJlZC1mb3JtX2Ryb3B6b25lLWljb24nLFxyXG4gIGNsYXNzTmFtZUZpbGVVcGxvYWRJY29uU2Vjb25kID0gJ21lcmNoaS1lbWJlZC1mb3JtX2Ryb3B6b25lLWljb24tcGx1cycsXHJcbiAgY2xhc3NOYW1lRmlsZVVwbG9hZEljb25Db250YWluZXIgPSAnbWVyY2hpLWVtYmVkLWZvcm1fZHJvcHpvbmUtaWNvbi1jb250YWluZXInLFxyXG4gIGNsYXNzTmFtZUZpbGVMaXN0SXRlbSA9ICdsaXN0LWdyb3VwLWl0ZW0gbm8tei1pbmRleC1ob3ZlcicsXHJcbiAgY2xhc3NOYW1lRmlsZUJ1dHRvbkRvd25sb2FkID0gJ2J0biBidG4tc20gYnRuLXNlY29uZGFyeScsXHJcbiAgY2xhc3NOYW1lRmlsZUJ1dHRvbkRlbGV0ZSA9ICdidG4gYnRuLXNtIGJ0bi1kYW5nZXIgbWwtMicsXHJcbiAgY2xhc3NOYW1lRmlsZUxpc3RJdGVtQ29udGFpbmVyID0gJ2xpc3QtZ3JvdXAnICxcclxuICBjbGFzc05hbWVHcm91cHNDb250YWluZXIgPSAnbWVyY2hpLWVtYmVkLWZvcm1fcHJvZHVjdC1ncm91cC1jb250YWluZXInLFxyXG4gIGNsYXNzTmFtZUdyb3VwUHJpY2VDb250YWluZXIgPSAnbWVyY2hpLWVtYmVkLWZvcm1fcHJvZHVjdC1ncm91cC10b3RhbC1jb3N0JyxcclxuICBjbGFzc05hbWVJbnB1dCA9ICdmb3JtLWNvbnRyb2wnLFxyXG4gIGNsYXNzTmFtZUludmVudG9yeVN0YXR1cyA9ICdmbGV4LWZpbGwnLFxyXG4gIGNsYXNzTmFtZUlucHV0Q29udGFpbmVyID0gJ21lcmNoaS1lbWJlZC1mb3JtX3Byb2R1Y3QtZ3JvdXAtaW5wdXQtcXR5LWNvbnRhaW5lcicsXHJcbiAgY2xhc3NOYW1lT3B0aW9uQ29udGFpbmVyID0gJ21lcmNoaS1lbWJlZC1mb3JtX2NoZWNrYm94X3JhZGlvLWl0ZW0nLFxyXG4gIGNsYXNzTmFtZU9wdGlvbklucHV0ID0gJ21lcmNoaS1lbWJlZC1mb3JtX2NoZWNrYm94X3JhZGlvLWlucHV0JyxcclxuICBjbGFzc05hbWVPcHRpb25MYWJlbCA9ICdtZXJjaGktZW1iZWQtZm9ybV9jaGVja2JveF9yYWRpby1sYWJlbCcsXHJcbiAgY2xhc3NOYW1lT3B0aW9uU3VwZXIgPSAnbWVyY2hpLWVtYmVkLWZvcm1fY2hlY2tib3hfcmFkaW8tc3VwZXInLFxyXG4gIGNsYXNzTmFtZU9wdGlvbnNDaGVja2JveFJhZGlvQ29udGFpbmVyID0gJycsXHJcbiAgY2xhc3NOYW1lT3B0aW9uSW1hZ2UgPSAnbWVyY2hpLWVtYmVkLWZvcm1faW1hZ2Utc2VsZWN0LW9wdGlvbi1pdGVtLWltZycsXHJcbiAgY2xhc3NOYW1lT3B0aW9uSW1hZ2VDb250YWluZXIgPSAnbWVyY2hpLWVtYmVkLWZvcm1faW1hZ2Utc2VsZWN0LW9wdGlvbi1pdGVtLWNvbnRhaW5lcicsXHJcbiAgY2xhc3NOYW1lT3B0aW9uQ29sb3VyID0gJ21lcmNoaS1lbWJlZC1mb3JtX2NvbG9yLXNlbGVjdC1vcHRpb24nLFxyXG4gIGNsYXNzTmFtZU9wdGlvbkNvbG91ckNvbnRhaW5lciA9ICdtZXJjaGktZW1iZWQtZm9ybV9jb2xvci1zZWxlY3QtaXRlbScsXHJcbiAgY2xhc3NOYW1lUHJvZHVjdFRpdGxlID0gJ21lcmNoaS1wcm9kdWN0LXRpdGxlJyxcclxuICBjbGFzc05hbWVQcm9kdWN0T3JpZ2luVGl0bGUgPSAnbWVyY2hpLXByb2R1Y3Qtb3JpZ2luLXRpdGxlJyxcclxuICBjbGFzc05hbWVQcm9kdWN0VG90YWwgPSAnbWVyY2hpLWVtYmVkLWZvcm1fc3VtbWFyeS1wcm9kdWN0LWNvc3QnLFxyXG4gIGNsYXNzTmFtZVByb2R1Y3RUb3RhbENvbnRhaW5lciA9ICdtZXJjaGktZW1iZWQtZm9ybV9zdW1tYXJ5LXByb2R1Y3QtY29zdC1jb250YWluZXInLFxyXG4gIGNsYXNzTmFtZVF1YW50aXR5TGFiZWxDb250YWluZXIgPSAnbWVyY2hpLWVtYmVkLWZvcm1fcXVhbnRpdHktbGFiZWwtY29udGFpbmVyJyxcclxuICBjbGFzc05hbWVVbml0UHJpY2UsXHJcbiAgY2hpbGRyZW4sXHJcbiAgY3VycmVudFVzZXIsXHJcbiAgaGlkZUNvc3QsXHJcbiAgaGlkZUNvdW50cnkgPSBmYWxzZSxcclxuICBoaWRlQ2FsY3VsYXRlZFByaWNlLFxyXG4gIGhpZGVEb21haW5OYW1lID0gZmFsc2UsXHJcbiAgaGlkZVF1YW50aXR5Rm