merchi_product_form
Version:
A React component for Merchi product forms
184 lines • 19.6 kB
JavaScript
export var currencyMap = {
ALL: 'L',
AFN: '؋',
ARS: '$',
AWG: 'ƒ',
AUD: '$',
AZN: '₼',
BSD: '$',
BBD: '$',
BYR: 'p.',
BZD: 'BZ$',
BMD: '$',
BOB: 'Bs.',
BAM: 'KM',
BWP: 'P',
BGN: 'лв',
BRL: 'R$',
BND: '$',
KHR: '៛',
CAD: '$',
KYD: '$',
CLP: '$',
CNY: '¥',
COP: '$',
CRC: '₡',
HRK: 'kn',
CUP: '₱',
CZK: 'Kč',
DKK: 'kr',
DOP: 'RD$',
XCD: '$',
EGP: '£',
SVC: '$',
EEK: 'kr',
EUR: '€',
FKP: '£',
FJD: '$',
GHC: '₵',
GIP: '£',
GTQ: 'Q',
GGP: '£',
GYD: '$',
HNL: 'L',
HKD: '$',
HUF: 'Ft',
ISK: 'kr',
INR: '₹',
IDR: 'Rp',
IRR: '﷼',
IMP: '£',
ILS: '₪',
JMD: '`J$',
JPY: '¥',
JEP: '£',
KES: 'KSh',
KZT: 'лв',
KPW: '₩',
KRW: '₩',
KGS: 'лв',
LAK: '₭',
LVL: 'Ls',
LBP: '£',
LRD: '$',
LTL: 'Lt',
MKD: 'ден',
MYR: 'RM',
MUR: '₨',
MXN: '$',
MNT: '₮',
MZN: 'MT',
NAD: '$',
NPR: '₨',
ANG: 'ƒ',
NZD: '$',
NIO: 'C$',
NGN: '₦',
NOK: 'kr',
OMR: '﷼',
PKR: '₨',
PAB: 'B/.',
PYG: 'Gs',
PEN: 'S/.',
PHP: '₱',
PLN: 'zł',
QAR: '﷼',
RON: 'lei',
RUB: '₽',
RMB: '¥',
SHP: '£',
SAR: '﷼',
RSD: 'Дин.',
SCR: '₨',
SGD: '$',
SBD: '$',
SOS: 'S',
ZAR: 'R',
LKR: '₨',
SEK: 'kr',
CHF: 'CHF',
SRD: '$',
SYP: '£',
TZS: 'TSh',
TWD: 'NT$',
THB: '฿',
TTD: 'TT$',
TRY: '₺',
TRL: '₤',
TVD: '$',
UGX: 'USh',
UAH: '₴',
GBP: '£',
USD: '$',
UYU: '$U',
UZS: 'лв',
VEF: 'Bs',
VND: '₫',
YER: '﷼',
ZWD: 'Z$'
};
export function formatCurrency(amount) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var _options$currency = options.currency,
currency = _options$currency === void 0 ? 'AUD' : _options$currency,
_options$showCodeIfNo = options.showCodeIfNoSymbol,
showCodeIfNoSymbol = _options$showCodeIfNo === void 0 ? true : _options$showCodeIfNo,
_options$symbolAfterA = options.symbolAfterAmount,
symbolAfterAmount = _options$symbolAfterA === void 0 ? false : _options$symbolAfterA,
_options$financialNeg = options.financialNegative,
financialNegative = _options$financialNeg === void 0 ? false : _options$financialNeg,
_options$codeAfterSym = options.codeAfterSymbol,
codeAfterSymbol = _options$codeAfterSym === void 0 ? false : _options$codeAfterSym,
_options$codeBeforeSy = options.codeBeforeSymbol,
codeBeforeSymbol = _options$codeBeforeSy === void 0 ? false : _options$codeBeforeSy,
_options$spaceBetween = options.spaceBetweenSymbol,
spaceBetweenSymbol = _options$spaceBetween === void 0 ? false : _options$spaceBetween,
_options$decimalPlace = options.decimalPlaces,
decimalPlaces = _options$decimalPlace === void 0 ? 2 : _options$decimalPlace,
_options$decimalSeper = options.decimalSeperator,
decimalSeperator = _options$decimalSeper === void 0 ? '.' : _options$decimalSeper,
_options$codeAfterAmo = options.codeAfterAmount,
codeAfterAmount = _options$codeAfterAmo === void 0 ? false : _options$codeAfterAmo;
var symbol = '';
var result = '';
var negative = amount < 0;
if (negative) amount = Math.abs(amount);
if (Object.prototype.hasOwnProperty.call(currencyMap, currency)) {
symbol = currencyMap[currency];
if (codeAfterSymbol) symbol += "(".concat(currency, ")");
if (codeBeforeSymbol) symbol = "(".concat(currency, ")").concat(symbol);
} else if (showCodeIfNoSymbol) {
symbol = currency;
}
amount = Number(amount.toFixed(decimalPlaces)).toFixed(decimalPlaces).replace('.', decimalSeperator);
if (symbolAfterAmount) {
result = amount + (spaceBetweenSymbol ? ' ' : '') + symbol;
} else {
result = symbol + (spaceBetweenSymbol ? ' ' : '') + amount;
}
if (negative) {
result = financialNegative ? "(".concat(result, ")") : "-".concat(result);
}
if (codeAfterAmount) {
result += " (".concat(currency, ")");
}
return result;
}
function taxPercent(tax) {
return tax ? "(".concat(tax.taxPercent, "%)") : '';
}
function includesTax(tax) {
return tax && tax.taxPercent > 0 ? " inc ".concat(tax.taxName, " ").concat(taxPercent(tax)) : '';
}
export function currencyTotalCostShowIncTax(job) {
var currency = job.currency,
taxType = job.taxType,
totalCost = job.totalCost;
var currencyOptions = {
currency: currency,
showCodeIfNoSymbol: false
};
var withCurrency = formatCurrency(totalCost ? totalCost : 0, currencyOptions);
return "".concat(currency, " ").concat(withCurrency, " ").concat(includesTax(taxType));
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjdXJyZW5jeU1hcCIsIkFMTCIsIkFGTiIsIkFSUyIsIkFXRyIsIkFVRCIsIkFaTiIsIkJTRCIsIkJCRCIsIkJZUiIsIkJaRCIsIkJNRCIsIkJPQiIsIkJBTSIsIkJXUCIsIkJHTiIsIkJSTCIsIkJORCIsIktIUiIsIkNBRCIsIktZRCIsIkNMUCIsIkNOWSIsIkNPUCIsIkNSQyIsIkhSSyIsIkNVUCIsIkNaSyIsIkRLSyIsIkRPUCIsIlhDRCIsIkVHUCIsIlNWQyIsIkVFSyIsIkVVUiIsIkZLUCIsIkZKRCIsIkdIQyIsIkdJUCIsIkdUUSIsIkdHUCIsIkdZRCIsIkhOTCIsIkhLRCIsIkhVRiIsIklTSyIsIklOUiIsIklEUiIsIklSUiIsIklNUCIsIklMUyIsIkpNRCIsIkpQWSIsIkpFUCIsIktFUyIsIktaVCIsIktQVyIsIktSVyIsIktHUyIsIkxBSyIsIkxWTCIsIkxCUCIsIkxSRCIsIkxUTCIsIk1LRCIsIk1ZUiIsIk1VUiIsIk1YTiIsIk1OVCIsIk1aTiIsIk5BRCIsIk5QUiIsIkFORyIsIk5aRCIsIk5JTyIsIk5HTiIsIk5PSyIsIk9NUiIsIlBLUiIsIlBBQiIsIlBZRyIsIlBFTiIsIlBIUCIsIlBMTiIsIlFBUiIsIlJPTiIsIlJVQiIsIlJNQiIsIlNIUCIsIlNBUiIsIlJTRCIsIlNDUiIsIlNHRCIsIlNCRCIsIlNPUyIsIlpBUiIsIkxLUiIsIlNFSyIsIkNIRiIsIlNSRCIsIlNZUCIsIlRaUyIsIlRXRCIsIlRIQiIsIlRURCIsIlRSWSIsIlRSTCIsIlRWRCIsIlVHWCIsIlVBSCIsIkdCUCIsIlVTRCIsIlVZVSIsIlVaUyIsIlZFRiIsIlZORCIsIllFUiIsIlpXRCIsImZvcm1hdEN1cnJlbmN5IiwiYW1vdW50Iiwib3B0aW9ucyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsIl9vcHRpb25zJGN1cnJlbmN5IiwiY3VycmVuY3kiLCJfb3B0aW9ucyRzaG93Q29kZUlmTm8iLCJzaG93Q29kZUlmTm9TeW1ib2wiLCJfb3B0aW9ucyRzeW1ib2xBZnRlckEiLCJzeW1ib2xBZnRlckFtb3VudCIsIl9vcHRpb25zJGZpbmFuY2lhbE5lZyIsImZpbmFuY2lhbE5lZ2F0aXZlIiwiX29wdGlvbnMkY29kZUFmdGVyU3ltIiwiY29kZUFmdGVyU3ltYm9sIiwiX29wdGlvbnMkY29kZUJlZm9yZVN5IiwiY29kZUJlZm9yZVN5bWJvbCIsIl9vcHRpb25zJHNwYWNlQmV0d2VlbiIsInNwYWNlQmV0d2VlblN5bWJvbCIsIl9vcHRpb25zJGRlY2ltYWxQbGFjZSIsImRlY2ltYWxQbGFjZXMiLCJfb3B0aW9ucyRkZWNpbWFsU2VwZXIiLCJkZWNpbWFsU2VwZXJhdG9yIiwiX29wdGlvbnMkY29kZUFmdGVyQW1vIiwiY29kZUFmdGVyQW1vdW50Iiwic3ltYm9sIiwicmVzdWx0IiwibmVnYXRpdmUiLCJNYXRoIiwiYWJzIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiY29uY2F0IiwiTnVtYmVyIiwidG9GaXhlZCIsInJlcGxhY2UiLCJ0YXhQZXJjZW50IiwidGF4IiwiaW5jbHVkZXNUYXgiLCJ0YXhOYW1lIiwiY3VycmVuY3lUb3RhbENvc3RTaG93SW5jVGF4Iiwiam9iIiwidGF4VHlwZSIsInRvdGFsQ29zdCIsImN1cnJlbmN5T3B0aW9ucyIsIndpdGhDdXJyZW5jeSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL2N1cnJlbmN5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBjdXJyZW5jeU1hcDogYW55ID1cclxuICB7QUxMOiAnTCcsXHJcbiAgICBBRk46ICfYiycsXHJcbiAgICBBUlM6ICckJyxcclxuICAgIEFXRzogJ8aSJyxcclxuICAgIEFVRDogJyQnLFxyXG4gICAgQVpOOiAn4oK8JyxcclxuICAgIEJTRDogJyQnLFxyXG4gICAgQkJEOiAnJCcsXHJcbiAgICBCWVI6ICdwLicsXHJcbiAgICBCWkQ6ICdCWiQnLFxyXG4gICAgQk1EOiAnJCcsXHJcbiAgICBCT0I6ICdCcy4nLFxyXG4gICAgQkFNOiAnS00nLFxyXG4gICAgQldQOiAnUCcsXHJcbiAgICBCR046ICfQu9CyJyxcclxuICAgIEJSTDogJ1IkJyxcclxuICAgIEJORDogJyQnLFxyXG4gICAgS0hSOiAn4Z+bJyxcclxuICAgIENBRDogJyQnLFxyXG4gICAgS1lEOiAnJCcsXHJcbiAgICBDTFA6ICckJyxcclxuICAgIENOWTogJ8KlJyxcclxuICAgIENPUDogJyQnLFxyXG4gICAgQ1JDOiAn4oKhJyxcclxuICAgIEhSSzogJ2tuJyxcclxuICAgIENVUDogJ+KCsScsXHJcbiAgICBDWks6ICdLxI0nLFxyXG4gICAgREtLOiAna3InLFxyXG4gICAgRE9QOiAnUkQkJyxcclxuICAgIFhDRDogJyQnLFxyXG4gICAgRUdQOiAnwqMnLFxyXG4gICAgU1ZDOiAnJCcsXHJcbiAgICBFRUs6ICdrcicsXHJcbiAgICBFVVI6ICfigqwnLFxyXG4gICAgRktQOiAnwqMnLFxyXG4gICAgRkpEOiAnJCcsXHJcbiAgICBHSEM6ICfigrUnLFxyXG4gICAgR0lQOiAnwqMnLFxyXG4gICAgR1RROiAnUScsXHJcbiAgICBHR1A6ICfCoycsXHJcbiAgICBHWUQ6ICckJyxcclxuICAgIEhOTDogJ0wnLFxyXG4gICAgSEtEOiAnJCcsXHJcbiAgICBIVUY6ICdGdCcsXHJcbiAgICBJU0s6ICdrcicsXHJcbiAgICBJTlI6ICfigrknLFxyXG4gICAgSURSOiAnUnAnLFxyXG4gICAgSVJSOiAn77e8JyxcclxuICAgIElNUDogJ8KjJyxcclxuICAgIElMUzogJ+KCqicsXHJcbiAgICBKTUQ6ICdgSiQnLFxyXG4gICAgSlBZOiAnwqUnLFxyXG4gICAgSkVQOiAnwqMnLFxyXG4gICAgS0VTOiAnS1NoJyxcclxuICAgIEtaVDogJ9C70LInLFxyXG4gICAgS1BXOiAn4oKpJyxcclxuICAgIEtSVzogJ+KCqScsXHJcbiAgICBLR1M6ICfQu9CyJyxcclxuICAgIExBSzogJ+KCrScsXHJcbiAgICBMVkw6ICdMcycsXHJcbiAgICBMQlA6ICfCoycsXHJcbiAgICBMUkQ6ICckJyxcclxuICAgIExUTDogJ0x0JyxcclxuICAgIE1LRDogJ9C00LXQvScsXHJcbiAgICBNWVI6ICdSTScsXHJcbiAgICBNVVI6ICfigqgnLFxyXG4gICAgTVhOOiAnJCcsXHJcbiAgICBNTlQ6ICfigq4nLFxyXG4gICAgTVpOOiAnTVQnLFxyXG4gICAgTkFEOiAnJCcsXHJcbiAgICBOUFI6ICfigqgnLFxyXG4gICAgQU5HOiAnxpInLFxyXG4gICAgTlpEOiAnJCcsXHJcbiAgICBOSU86ICdDJCcsXHJcbiAgICBOR046ICfigqYnLFxyXG4gICAgTk9LOiAna3InLFxyXG4gICAgT01SOiAn77e8JyxcclxuICAgIFBLUjogJ+KCqCcsXHJcbiAgICBQQUI6ICdCLy4nLFxyXG4gICAgUFlHOiAnR3MnLFxyXG4gICAgUEVOOiAnUy8uJyxcclxuICAgIFBIUDogJ+KCsScsXHJcbiAgICBQTE46ICd6xYInLFxyXG4gICAgUUFSOiAn77e8JyxcclxuICAgIFJPTjogJ2xlaScsXHJcbiAgICBSVUI6ICfigr0nLFxyXG4gICAgUk1COiAn77+lJyxcclxuICAgIFNIUDogJ8KjJyxcclxuICAgIFNBUjogJ++3vCcsXHJcbiAgICBSU0Q6ICfQlNC40L0uJyxcclxuICAgIFNDUjogJ+KCqCcsXHJcbiAgICBTR0Q6ICckJyxcclxuICAgIFNCRDogJyQnLFxyXG4gICAgU09TOiAnUycsXHJcbiAgICBaQVI6ICdSJyxcclxuICAgIExLUjogJ+KCqCcsXHJcbiAgICBTRUs6ICdrcicsXHJcbiAgICBDSEY6ICdDSEYnLFxyXG4gICAgU1JEOiAnJCcsXHJcbiAgICBTWVA6ICfCoycsXHJcbiAgICBUWlM6ICdUU2gnLFxyXG4gICAgVFdEOiAnTlQkJyxcclxuICAgIFRIQjogJ+C4vycsXHJcbiAgICBUVEQ6ICdUVCQnLFxyXG4gICAgVFJZOiAn4oK6JyxcclxuICAgIFRSTDogJ+KCpCcsXHJcbiAgICBUVkQ6ICckJyxcclxuICAgIFVHWDogJ1VTaCcsXHJcbiAgICBVQUg6ICfigrQnLFxyXG4gICAgR0JQOiAnwqMnLFxyXG4gICAgVVNEOiAnJCcsXHJcbiAgICBVWVU6ICckVScsXHJcbiAgICBVWlM6ICfQu9CyJyxcclxuICAgIFZFRjogJ0JzJyxcclxuICAgIFZORDogJ+KCqycsXHJcbiAgICBZRVI6ICfvt7wnLFxyXG4gICAgWldEOiAnWiQnfTtcclxuXHJcbnR5cGUgQ3VycmVuY3lPcHRpb25zID0ge1xyXG4gIGN1cnJlbmN5Pzogc3RyaW5nO1xyXG4gIHNob3dDb2RlSWZOb1N5bWJvbD86IGJvb2xlYW47XHJcbiAgc3ltYm9sQWZ0ZXJBbW91bnQ/OiBib29sZWFuO1xyXG4gIGZpbmFuY2lhbE5lZ2F0aXZlPzogYm9vbGVhbjtcclxuICBjb2RlQWZ0ZXJTeW1ib2w/OiBib29sZWFuO1xyXG4gIGNvZGVCZWZvcmVTeW1ib2w/OiBib29sZWFuO1xyXG4gIHNwYWNlQmV0d2VlblN5bWJvbD86IGJvb2xlYW47XHJcbiAgZGVjaW1hbFBsYWNlcz86IG51bWJlcjtcclxuICBkZWNpbWFsU2VwZXJhdG9yPzogc3RyaW5nO1xyXG4gIGNvZGVBZnRlckFtb3VudD86IGJvb2xlYW47XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0Q3VycmVuY3koYW1vdW50OiBhbnksIG9wdGlvbnM6IEN1cnJlbmN5T3B0aW9ucyA9IHt9KTogc3RyaW5nIHtcclxuICBjb25zdCB7XHJcbiAgICBjdXJyZW5jeSA9ICdBVUQnLFxyXG4gICAgc2hvd0NvZGVJZk5vU3ltYm9sID0gdHJ1ZSxcclxuICAgIHN5bWJvbEFmdGVyQW1vdW50ID0gZmFsc2UsXHJcbiAgICBmaW5hbmNpYWxOZWdhdGl2ZSA9IGZhbHNlLFxyXG4gICAgY29kZUFmdGVyU3ltYm9sID0gZmFsc2UsXHJcbiAgICBjb2RlQmVmb3JlU3ltYm9sID0gZmFsc2UsXHJcbiAgICBzcGFjZUJldHdlZW5TeW1ib2wgPSBmYWxzZSxcclxuICAgIGRlY2ltYWxQbGFjZXMgPSAyLFxyXG4gICAgZGVjaW1hbFNlcGVyYXRvciA9ICcuJyxcclxuICAgIGNvZGVBZnRlckFtb3VudCA9IGZhbHNlXHJcbiAgfSA9IG9wdGlvbnM7XHJcblxyXG4gIGxldCBzeW1ib2wgPSAnJztcclxuICBsZXQgcmVzdWx0ID0gJyc7XHJcbiAgbGV0IG5lZ2F0aXZlID0gYW1vdW50IDwgMDtcclxuICBpZiAobmVnYXRpdmUpIGFtb3VudCA9IE1hdGguYWJzKGFtb3VudCk7XHJcblxyXG4gIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY3VycmVuY3lNYXAsIGN1cnJlbmN5KSkge1xyXG4gICAgc3ltYm9sID0gY3VycmVuY3lNYXBbY3VycmVuY3ldO1xyXG4gICAgaWYgKGNvZGVBZnRlclN5bWJvbCkgc3ltYm9sICs9IGAoJHtjdXJyZW5jeX0pYDtcclxuICAgIGlmIChjb2RlQmVmb3JlU3ltYm9sKSBzeW1ib2wgPSBgKCR7Y3VycmVuY3l9KSR7c3ltYm9sfWA7XHJcbiAgfSBlbHNlIGlmIChzaG93Q29kZUlmTm9TeW1ib2wpIHtcclxuICAgIHN5bWJvbCA9IGN1cnJlbmN5O1xyXG4gIH1cclxuXHJcbiAgYW1vdW50ID0gTnVtYmVyKGFtb3VudC50b0ZpeGVkKGRlY2ltYWxQbGFjZXMpKS50b0ZpeGVkKGRlY2ltYWxQbGFjZXMpLnJlcGxhY2UoJy4nLCBkZWNpbWFsU2VwZXJhdG9yKTtcclxuXHJcbiAgaWYgKHN5bWJvbEFmdGVyQW1vdW50KSB7XHJcbiAgICByZXN1bHQgPSBhbW91bnQgKyAoc3BhY2VCZXR3ZWVuU3ltYm9sID8gJyAnIDogJycpICsgc3ltYm9sO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXN1bHQgPSBzeW1ib2wgKyAoc3BhY2VCZXR3ZWVuU3ltYm9sID8gJyAnIDogJycpICsgYW1vdW50O1xyXG4gIH1cclxuXHJcbiAgaWYgKG5lZ2F0aXZlKSB7XHJcbiAgICByZXN1bHQgPSBmaW5hbmNpYWxOZWdhdGl2ZSA/IGAoJHtyZXN1bHR9KWAgOiBgLSR7cmVzdWx0fWA7XHJcbiAgfVxyXG5cclxuICBpZiAoY29kZUFmdGVyQW1vdW50KSB7XHJcbiAgICByZXN1bHQgKz0gYCAoJHtjdXJyZW5jeX0pYDtcclxuICB9XHJcblxyXG4gIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHRheFBlcmNlbnQodGF4OiBhbnkpIHtcclxuICByZXR1cm4gdGF4ID8gYCgke3RheC50YXhQZXJjZW50fSUpYCA6ICcnO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpbmNsdWRlc1RheCh0YXg6IGFueSkge1xyXG4gIHJldHVybiB0YXggJiYgdGF4LnRheFBlcmNlbnQgPiAwID9cclxuICAgIGAgaW5jICR7dGF4LnRheE5hbWV9ICR7dGF4UGVyY2VudCh0YXgpfWAgOiAnJztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGN1cnJlbmN5VG90YWxDb3N0U2hvd0luY1RheChqb2I6IGFueSkge1xyXG4gIGNvbnN0IHsgY3VycmVuY3ksIHRheFR5cGUsIHRvdGFsQ29zdCB9ID0gam9iO1xyXG4gIGNvbnN0IGN1cnJlbmN5T3B0aW9ucyA9IHtjdXJyZW5jeSwgc2hvd0NvZGVJZk5vU3ltYm9sOiBmYWxzZX07XHJcbiAgY29uc3Qgd2l0aEN1cnJlbmN5ID0gZm9ybWF0Q3VycmVuY3koXHJcbiAgICB0b3RhbENvc3QgPyB0b3RhbENvc3QgOiAwLFxyXG4gICAgY3VycmVuY3lPcHRpb25zXHJcbiAgKTtcclxuICByZXR1cm4gYCR7Y3VycmVuY3l9ICR7d2l0aEN1cnJlbmN5fSAke2luY2x1ZGVzVGF4KHRheFR5cGUpfWA7XHJcbn1cclxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQU1BLFdBQWdCLEdBQzNCO0VBQUNDLEdBQUcsRUFBRSxHQUFHO0VBQ1BDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxJQUFJO0VBQ1RDLEdBQUcsRUFBRSxLQUFLO0VBQ1ZDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxLQUFLO0VBQ1ZDLEdBQUcsRUFBRSxJQUFJO0VBQ1RDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxJQUFJO0VBQ1RDLEdBQUcsRUFBRSxJQUFJO0VBQ1RDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxJQUFJO0VBQ1RDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxJQUFJO0VBQ1RDLEdBQUcsRUFBRSxJQUFJO0VBQ1RDLEdBQUcsRUFBRSxLQUFLO0VBQ1ZDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxJQUFJO0VBQ1RDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxJQUFJO0VBQ1RDLEdBQUcsRUFBRSxJQUFJO0VBQ1RDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxJQUFJO0VBQ1RDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxLQUFLO0VBQ1ZDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxLQUFLO0VBQ1ZDLEdBQUcsRUFBRSxJQUFJO0VBQ1RDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxJQUFJO0VBQ1RDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxJQUFJO0VBQ1RDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxJQUFJO0VBQ1RDLEdBQUcsRUFBRSxLQUFLO0VBQ1ZDLEdBQUcsRUFBRSxJQUFJO0VBQ1RDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxJQUFJO0VBQ1RDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxJQUFJO0VBQ1RDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxJQUFJO0VBQ1RDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxLQUFLO0VBQ1ZDLEdBQUcsRUFBRSxJQUFJO0VBQ1RDLEdBQUcsRUFBRSxLQUFLO0VBQ1ZDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxJQUFJO0VBQ1RDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxLQUFLO0VBQ1ZDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxNQUFNO0VBQ1hDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxHQUFHO0VBQ1JDLEdBQUcsRUFBRSxH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