merchi_product_form
Version:
A React component for Merchi product forms
188 lines (187 loc) • 17.5 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, options) {
/*
* Example usage:
formatCurrency(-222.123456, {currency: 'EGP',
showCodeIfNoSymbol: true,
financialNegative: true,
decimalPlaces: 3})
--> '(£222.123)'
*/
var symbol;
var negative = false;
var result;
options = options || {};
options.currency = options.currency || 'AUD';
options.showCodeIfNoSymbol = options.showCodeIfNoSymbol || true;
options.symbolAfterAmount = options.symbolAfterAmount || false;
options.financialNegative = options.financialNegative || false;
options.codeAfterSymbol = options.codeAfterSymbol || false;
options.codeBeforeSymbol = options.codeBeforeSymbol || false;
options.spaceBetweenSymbol = options.spaceBetweenSymbol || false;
options.decimalPlaces = options.decimalPlaces || 2;
options.decimalSeperator = options.decimalSeperator || '.';
options.codeAfterAmount = options.codeAfterAmount || false;
if (amount < 0.0) {
negative = true;
amount *= -1.0; // eslint-disable-line
}
if (Object.prototype.hasOwnProperty.call(currencyMap, options.currency)) {
symbol = currencyMap[options.currency];
if (options.codeAfterSymbol) {
symbol += '(' + options.currency + ') ';
}
if (options.codeBeforeSymbol) {
symbol = "(".concat(options.currency, ") ").concat(symbol);
}
} else if (options.showCodeIfNoSymbol) {
symbol = options.currency;
} else {
symbol = '';
}
amount = amount.toFixed(options.decimalPlaces);
amount = amount.replace('.', options.decimalSeperator);
if (options.symbolAfterAmount) {
result = amount;
if (options.spaceBetweenSymbol) {
result += ' ';
}
result += symbol;
} else {
result = symbol;
if (options.spaceBetweenSymbol) {
result += ' ';
}
result += amount;
}
if (negative) {
if (options.financialNegative) {
result = "(".concat(result, ")");
} else {
result = "-".concat(result);
}
}
if (options.codeAfterAmount === true) {
result += " (".concat(options.currency, ")");
}
return result;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjdXJyZW5jeU1hcCIsIkFMTCIsIkFGTiIsIkFSUyIsIkFXRyIsIkFVRCIsIkFaTiIsIkJTRCIsIkJCRCIsIkJZUiIsIkJaRCIsIkJNRCIsIkJPQiIsIkJBTSIsIkJXUCIsIkJHTiIsIkJSTCIsIkJORCIsIktIUiIsIkNBRCIsIktZRCIsIkNMUCIsIkNOWSIsIkNPUCIsIkNSQyIsIkhSSyIsIkNVUCIsIkNaSyIsIkRLSyIsIkRPUCIsIlhDRCIsIkVHUCIsIlNWQyIsIkVFSyIsIkVVUiIsIkZLUCIsIkZKRCIsIkdIQyIsIkdJUCIsIkdUUSIsIkdHUCIsIkdZRCIsIkhOTCIsIkhLRCIsIkhVRiIsIklTSyIsIklOUiIsIklEUiIsIklSUiIsIklNUCIsIklMUyIsIkpNRCIsIkpQWSIsIkpFUCIsIktFUyIsIktaVCIsIktQVyIsIktSVyIsIktHUyIsIkxBSyIsIkxWTCIsIkxCUCIsIkxSRCIsIkxUTCIsIk1LRCIsIk1ZUiIsIk1VUiIsIk1YTiIsIk1OVCIsIk1aTiIsIk5BRCIsIk5QUiIsIkFORyIsIk5aRCIsIk5JTyIsIk5HTiIsIk5PSyIsIk9NUiIsIlBLUiIsIlBBQiIsIlBZRyIsIlBFTiIsIlBIUCIsIlBMTiIsIlFBUiIsIlJPTiIsIlJVQiIsIlJNQiIsIlNIUCIsIlNBUiIsIlJTRCIsIlNDUiIsIlNHRCIsIlNCRCIsIlNPUyIsIlpBUiIsIkxLUiIsIlNFSyIsIkNIRiIsIlNSRCIsIlNZUCIsIlRaUyIsIlRXRCIsIlRIQiIsIlRURCIsIlRSWSIsIlRSTCIsIlRWRCIsIlVHWCIsIlVBSCIsIkdCUCIsIlVTRCIsIlVZVSIsIlVaUyIsIlZFRiIsIlZORCIsIllFUiIsIlpXRCIsImZvcm1hdEN1cnJlbmN5IiwiYW1vdW50Iiwib3B0aW9ucyIsInN5bWJvbCIsIm5lZ2F0aXZlIiwicmVzdWx0IiwiY3VycmVuY3kiLCJzaG93Q29kZUlmTm9TeW1ib2wiLCJzeW1ib2xBZnRlckFtb3VudCIsImZpbmFuY2lhbE5lZ2F0aXZlIiwiY29kZUFmdGVyU3ltYm9sIiwiY29kZUJlZm9yZVN5bWJvbCIsInNwYWNlQmV0d2VlblN5bWJvbCIsImRlY2ltYWxQbGFjZXMiLCJkZWNpbWFsU2VwZXJhdG9yIiwiY29kZUFmdGVyQW1vdW50IiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiY29uY2F0IiwidG9GaXhlZCIsInJlcGxhY2UiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvY3VycmVuY3kudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGN1cnJlbmN5TWFwOiBhbnkgPVxyXG4gIHtBTEw6ICdMJyxcclxuICAgIEFGTjogJ9iLJyxcclxuICAgIEFSUzogJyQnLFxyXG4gICAgQVdHOiAnxpInLFxyXG4gICAgQVVEOiAnJCcsXHJcbiAgICBBWk46ICfigrwnLFxyXG4gICAgQlNEOiAnJCcsXHJcbiAgICBCQkQ6ICckJyxcclxuICAgIEJZUjogJ3AuJyxcclxuICAgIEJaRDogJ0JaJCcsXHJcbiAgICBCTUQ6ICckJyxcclxuICAgIEJPQjogJ0JzLicsXHJcbiAgICBCQU06ICdLTScsXHJcbiAgICBCV1A6ICdQJyxcclxuICAgIEJHTjogJ9C70LInLFxyXG4gICAgQlJMOiAnUiQnLFxyXG4gICAgQk5EOiAnJCcsXHJcbiAgICBLSFI6ICfhn5snLFxyXG4gICAgQ0FEOiAnJCcsXHJcbiAgICBLWUQ6ICckJyxcclxuICAgIENMUDogJyQnLFxyXG4gICAgQ05ZOiAnwqUnLFxyXG4gICAgQ09QOiAnJCcsXHJcbiAgICBDUkM6ICfigqEnLFxyXG4gICAgSFJLOiAna24nLFxyXG4gICAgQ1VQOiAn4oKxJyxcclxuICAgIENaSzogJ0vEjScsXHJcbiAgICBES0s6ICdrcicsXHJcbiAgICBET1A6ICdSRCQnLFxyXG4gICAgWENEOiAnJCcsXHJcbiAgICBFR1A6ICfCoycsXHJcbiAgICBTVkM6ICckJyxcclxuICAgIEVFSzogJ2tyJyxcclxuICAgIEVVUjogJ+KCrCcsXHJcbiAgICBGS1A6ICfCoycsXHJcbiAgICBGSkQ6ICckJyxcclxuICAgIEdIQzogJ+KCtScsXHJcbiAgICBHSVA6ICfCoycsXHJcbiAgICBHVFE6ICdRJyxcclxuICAgIEdHUDogJ8KjJyxcclxuICAgIEdZRDogJyQnLFxyXG4gICAgSE5MOiAnTCcsXHJcbiAgICBIS0Q6ICckJyxcclxuICAgIEhVRjogJ0Z0JyxcclxuICAgIElTSzogJ2tyJyxcclxuICAgIElOUjogJ+KCuScsXHJcbiAgICBJRFI6ICdScCcsXHJcbiAgICBJUlI6ICfvt7wnLFxyXG4gICAgSU1QOiAnwqMnLFxyXG4gICAgSUxTOiAn4oKqJyxcclxuICAgIEpNRDogJ2BKJCcsXHJcbiAgICBKUFk6ICfCpScsXHJcbiAgICBKRVA6ICfCoycsXHJcbiAgICBLRVM6ICdLU2gnLFxyXG4gICAgS1pUOiAn0LvQsicsXHJcbiAgICBLUFc6ICfigqknLFxyXG4gICAgS1JXOiAn4oKpJyxcclxuICAgIEtHUzogJ9C70LInLFxyXG4gICAgTEFLOiAn4oKtJyxcclxuICAgIExWTDogJ0xzJyxcclxuICAgIExCUDogJ8KjJyxcclxuICAgIExSRDogJyQnLFxyXG4gICAgTFRMOiAnTHQnLFxyXG4gICAgTUtEOiAn0LTQtdC9JyxcclxuICAgIE1ZUjogJ1JNJyxcclxuICAgIE1VUjogJ+KCqCcsXHJcbiAgICBNWE46ICckJyxcclxuICAgIE1OVDogJ+KCricsXHJcbiAgICBNWk46ICdNVCcsXHJcbiAgICBOQUQ6ICckJyxcclxuICAgIE5QUjogJ+KCqCcsXHJcbiAgICBBTkc6ICfGkicsXHJcbiAgICBOWkQ6ICckJyxcclxuICAgIE5JTzogJ0MkJyxcclxuICAgIE5HTjogJ+KCpicsXHJcbiAgICBOT0s6ICdrcicsXHJcbiAgICBPTVI6ICfvt7wnLFxyXG4gICAgUEtSOiAn4oKoJyxcclxuICAgIFBBQjogJ0IvLicsXHJcbiAgICBQWUc6ICdHcycsXHJcbiAgICBQRU46ICdTLy4nLFxyXG4gICAgUEhQOiAn4oKxJyxcclxuICAgIFBMTjogJ3rFgicsXHJcbiAgICBRQVI6ICfvt7wnLFxyXG4gICAgUk9OOiAnbGVpJyxcclxuICAgIFJVQjogJ+KCvScsXHJcbiAgICBSTUI6ICfvv6UnLFxyXG4gICAgU0hQOiAnwqMnLFxyXG4gICAgU0FSOiAn77e8JyxcclxuICAgIFJTRDogJ9CU0LjQvS4nLFxyXG4gICAgU0NSOiAn4oKoJyxcclxuICAgIFNHRDogJyQnLFxyXG4gICAgU0JEOiAnJCcsXHJcbiAgICBTT1M6ICdTJyxcclxuICAgIFpBUjogJ1InLFxyXG4gICAgTEtSOiAn4oKoJyxcclxuICAgIFNFSzogJ2tyJyxcclxuICAgIENIRjogJ0NIRicsXHJcbiAgICBTUkQ6ICckJyxcclxuICAgIFNZUDogJ8KjJyxcclxuICAgIFRaUzogJ1RTaCcsXHJcbiAgICBUV0Q6ICdOVCQnLFxyXG4gICAgVEhCOiAn4Li/JyxcclxuICAgIFRURDogJ1RUJCcsXHJcbiAgICBUUlk6ICfigronLFxyXG4gICAgVFJMOiAn4oKkJyxcclxuICAgIFRWRDogJyQnLFxyXG4gICAgVUdYOiAnVVNoJyxcclxuICAgIFVBSDogJ+KCtCcsXHJcbiAgICBHQlA6ICfCoycsXHJcbiAgICBVU0Q6ICckJyxcclxuICAgIFVZVTogJyRVJyxcclxuICAgIFVaUzogJ9C70LInLFxyXG4gICAgVkVGOiAnQnMnLFxyXG4gICAgVk5EOiAn4oKrJyxcclxuICAgIFlFUjogJ++3vCcsXHJcbiAgICBaV0Q6ICdaJCd9O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEN1cnJlbmN5KGFtb3VudDogYW55LCBvcHRpb25zOiBhbnkpIHtcclxuICAvKlxyXG4gICAgKiAgIEV4YW1wbGUgdXNhZ2U6XHJcblxyXG4gICAgICAgICAgICBmb3JtYXRDdXJyZW5jeSgtMjIyLjEyMzQ1Niwge2N1cnJlbmN5OiAnRUdQJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93Q29kZUlmTm9TeW1ib2w6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYW5jaWFsTmVnYXRpdmU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbFBsYWNlczogM30pXHJcblxyXG4gICAgICAgICAgICAtLT4gJyjCozIyMi4xMjMpJ1xyXG4gICAgKi9cclxuXHJcbiAgbGV0IHN5bWJvbDtcclxuICBsZXQgbmVnYXRpdmUgPSBmYWxzZTtcclxuICBsZXQgcmVzdWx0O1xyXG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xyXG4gIG9wdGlvbnMuY3VycmVuY3kgPSBvcHRpb25zLmN1cnJlbmN5IHx8ICdBVUQnO1xyXG4gIG9wdGlvbnMuc2hvd0NvZGVJZk5vU3ltYm9sID0gb3B0aW9ucy5zaG93Q29kZUlmTm9TeW1ib2wgfHwgdHJ1ZTtcclxuICBvcHRpb25zLnN5bWJvbEFmdGVyQW1vdW50ID0gb3B0aW9ucy5zeW1ib2xBZnRlckFtb3VudCB8fCBmYWxzZTtcclxuICBvcHRpb25zLmZpbmFuY2lhbE5lZ2F0aXZlID0gb3B0aW9ucy5maW5hbmNpYWxOZWdhdGl2ZSB8fCBmYWxzZTtcclxuICBvcHRpb25zLmNvZGVBZnRlclN5bWJvbCA9IG9wdGlvbnMuY29kZUFmdGVyU3ltYm9sIHx8IGZhbHNlO1xyXG4gIG9wdGlvbnMuY29kZUJlZm9yZVN5bWJvbCA9IG9wdGlvbnMuY29kZUJlZm9yZVN5bWJvbCB8fCBmYWxzZTtcclxuICBvcHRpb25zLnNwYWNlQmV0d2VlblN5bWJvbCA9IG9wdGlvbnMuc3BhY2VCZXR3ZWVuU3ltYm9sIHx8IGZhbHNlO1xyXG4gIG9wdGlvbnMuZGVjaW1hbFBsYWNlcyA9IG9wdGlvbnMuZGVjaW1hbFBsYWNlcyB8fCAyO1xyXG4gIG9wdGlvbnMuZGVjaW1hbFNlcGVyYXRvciA9IG9wdGlvbnMuZGVjaW1hbFNlcGVyYXRvciB8fCAnLic7XHJcbiAgb3B0aW9ucy5jb2RlQWZ0ZXJBbW91bnQgPSBvcHRpb25zLmNvZGVBZnRlckFtb3VudCB8fCBmYWxzZTtcclxuICBpZiAoYW1vdW50IDwgMC4wKSB7XHJcbiAgICBuZWdhdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgYW1vdW50ICo9IC0xLjA7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcclxuICB9XHJcbiAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjdXJyZW5jeU1hcCwgb3B0aW9ucy5jdXJyZW5jeSkpIHtcclxuICAgIHN5bWJvbCA9IGN1cnJlbmN5TWFwW29wdGlvbnMuY3VycmVuY3ldO1xyXG4gICAgaWYgKG9wdGlvbnMuY29kZUFmdGVyU3ltYm9sKSB7XHJcbiAgICAgIHN5bWJvbCArPSAnKCcgKyBvcHRpb25zLmN1cnJlbmN5ICsgJykgJztcclxuICAgIH1cclxuICAgIGlmIChvcHRpb25zLmNvZGVCZWZvcmVTeW1ib2wpIHtcclxuICAgICAgc3ltYm9sID0gYCgke29wdGlvbnMuY3VycmVuY3l9KSAke3N5bWJvbH1gO1xyXG4gICAgfVxyXG4gIH0gZWxzZSBpZiAob3B0aW9ucy5zaG93Q29kZUlmTm9TeW1ib2wpIHtcclxuICAgIHN5bWJvbCA9IG9wdGlvbnMuY3VycmVuY3k7XHJcbiAgfSBlbHNlIHtcclxuICAgIHN5bWJvbCA9ICcnO1xyXG4gIH1cclxuICAgIGFtb3VudCA9IGFtb3VudC50b0ZpeGVkKG9wdGlvbnMuZGVjaW1hbFBsYWNlcyk7XHJcbiAgICBhbW91bnQgPSBhbW91bnQucmVwbGFjZSgnLicsIG9wdGlvbnMuZGVjaW1hbFNlcGVyYXRvcik7XHJcbiAgaWYgKG9wdGlvbnMuc3ltYm9sQWZ0ZXJBbW91bnQpIHtcclxuICAgIHJlc3VsdCA9IGFtb3VudDtcclxuICAgIGlmIChvcHRpb25zLnNwYWNlQmV0d2VlblN5bWJvbCkge1xyXG4gICAgICByZXN1bHQgKz0gJyAnO1xyXG4gICAgfVxyXG4gICAgcmVzdWx0ICs9IHN5bWJvbDtcclxuICB9IGVsc2Uge1xyXG4gICAgcmVzdWx0ID0gc3ltYm9sO1xyXG4gICAgaWYgKG9wdGlvbnMuc3BhY2VCZXR3ZWVuU3ltYm9sKSB7XHJcbiAgICAgIHJlc3VsdCArPSAnICc7XHJcbiAgICB9XHJcbiAgICByZXN1bHQgKz0gYW1vdW50O1xyXG4gIH1cclxuICBpZiAobmVnYXRpdmUpIHtcclxuICAgIGlmIChvcHRpb25zLmZpbmFuY2lhbE5lZ2F0aXZlKSB7XHJcbiAgICAgIHJlc3VsdCA9IGAoJHtyZXN1bHR9KWA7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXN1bHQgPSBgLSR7cmVzdWx0fWA7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGlmIChvcHRpb25zLmNvZGVBZnRlckFtb3VudCA9PT0gdHJ1ZSkge1xyXG4gICAgcmVzdWx0ICs9IGAgKCR7b3B0aW9ucy5jdXJyZW5jeX0pYDtcclxuICB9XHJcbiAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBTUEsV0FBZ0IsR0FDM0I7RUFBQ0MsR0FBRyxFQUFFLEdBQUc7RUFDUEMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEtBQUs7RUFDVkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEtBQUs7RUFDVkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEtBQUs7RUFDVkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEtBQUs7RUFDVkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEtBQUs7RUFDVkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEtBQUs7RUFDVkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEtBQUs7RUFDVkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEtBQUs7RUFDVkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEtBQUs7RUFDVkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLE1BQU07RUFDWEMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEtBQUs7RUFDVkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEtBQUs7RUFDVkMsR0FBRyxFQUFFLEtBQUs7RUFDVkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEtBQUs7RUFDVkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEtBQUs7RUFDVkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFO0FBQUksQ0FBQztBQUVkLE9BQU8sU0FBU0MsY0FBY0EsQ0FBQ0MsTUFBVyxFQUFFQyxPQUFZLEVBQUU7RUFDeEQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7RUFJRSxJQUFJQyxNQUFNO0VBQ1YsSUFBSUMsUUFBUSxHQUFHLEtBQUs7RUFDcEIsSUFBSUMsTUFBTTtFQUNWSCxPQUFPLEdBQUdBLE9BQU8sSUFBSSxDQUFDLENBQUM7RUFDdkJBLE9BQU8sQ0FBQ0ksUUFBUSxHQUFHSixPQUFPLENBQUNJLFFBQVEsSUFBSSxLQUFLO0VBQzVDSixPQUFPLENBQUNLLGtCQUFrQixHQUFHTCxPQUFPLENBQUNLLGtCQUFrQixJQUFJLElBQUk7RUFDL0RMLE9BQU8sQ0FBQ00saUJBQWlCLEdBQUdOLE9BQU8sQ0FBQ00saUJBQWlCLElBQUksS0FBSztFQUM5RE4sT0FBTyxDQUFDTyxpQkFBaUIsR0FBR1AsT0FBTyxDQUFDTyxpQkFBaUIsSUFBSSxLQUFLO0VBQzlEUCxPQUFPLENBQUNRLGVBQWUsR0FBR1IsT0FBTyxDQUFDUSxlQUFlLElBQUksS0FBSztFQUMxRFIsT0FBTyxDQUFDUyxnQkFBZ0IsR0FBR1QsT0FBTyxDQUFDUyxnQkFBZ0IsSUFBSSxLQUFLO0VBQzVEVCxPQUFPLENBQUNVLGtCQUFrQixHQUFHVixPQUFPLENBQUNVLGtCQUFrQixJQUFJLEtBQUs7RUFDaEVWLE9BQU8sQ0FBQ1csYUFBYSxHQUFHWCxPQUFPLENBQUNXLGFBQWEsSUFBSSxDQUFDO0VBQ2xEWCxPQUFPLENBQUNZLGdCQUFnQixHQUFHWixPQUFPLENBQUNZLGdCQUFnQixJQUFJLEdBQUc7RUFDMURaLE9BQU8sQ0FBQ2EsZUFBZSxHQUFHYixPQUFPLENBQUNhLGVBQWUsSUFBSSxLQUFLO0VBQzFELElBQUlkLE1BQU0sR0FBRyxHQUFHLEVBQUU7SUFDaEJHLFFBQVEsR0FBRyxJQUFJO0lBQ1hILE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ3RCO0VBQ0EsSUFBSWUsTUFBTSxDQUFDQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDekksV0FBVyxFQUFFd0gsT0FBTyxDQUFDSSxRQUFRLENBQUMsRUFBRTtJQUN2RUgsTUFBTSxHQUFHekgsV0FBVyxDQUFDd0gsT0FBTyxDQUFDSSxRQUFRLENBQUM7SUFDdEMsSUFBSUosT0FBTyxDQUFDUSxlQUFlLEVBQUU7TUFDM0JQLE1BQU0sSUFBSSxHQUFHLEdBQUdELE9BQU8sQ0FBQ0ksUUFBUSxHQUFHLElBQUk7SUFDekM7SUFDQSxJQUFJSixPQUFPLENBQUNTLGdCQUFnQixFQUFFO01BQzVCUixNQUFNLE9BQUFpQixNQUFBLENBQU9sQixPQUFPLENBQUNJLFFBQVEsUUFBQWMsTUFBQSxDQUFLakIsTUFBTSxDQUFFO0lBQzVDO0VBQ0YsQ0FBQyxNQUFNLElBQUlELE9BQU8sQ0FBQ0ssa0JBQWtCLEVBQUU7SUFDckNKLE1BQU0sR0FBR0QsT0FBTyxDQUFDSSxRQUFRO0VBQzNCLENBQUMsTUFBTTtJQUNMSCxNQUFNLEdBQUcsRUFBRTtFQUNiO0VBQ0VGLE1BQU0sR0FBR0EsTUFBTSxDQUFDb0IsT0FBTyxDQUFDbkIsT0FBTyxDQUFDVyxhQUFhLENBQUM7RUFDOUNaLE1BQU0sR0FBR0EsTUFBTSxDQUFDcUIsT0FBTyxDQUFDLEdBQUcsRUFBRXBCLE9BQU8sQ0FBQ1ksZ0JBQWdCLENBQUM7RUFDeEQsSUFBSVosT0FBTyxDQUFDTSxpQkFBaUIsRUFBRTtJQUM3QkgsTUFBTSxHQUFHSixNQUFNO0lBQ2YsSUFBSUMsT0FBTyxDQUFDVSxrQkFBa0IsRUFBRTtNQUM5QlAsTUFBTSxJQUFJLEdBQUc7SUFDZjtJQUNBQSxNQUFNLElBQUlGLE1BQU07RUFDbEIsQ0FBQyxNQUFNO0lBQ0xFLE1BQU0sR0FBR0YsTUFBTTtJQUNmLElBQUlELE9BQU8sQ0FBQ1Usa0JBQWtCLEVBQUU7TUFDOUJQLE1BQU0sSUFBSSxHQUFHO0lBQ2Y7SUFDQUEsTUFBTSxJQUFJSixNQUFNO0VBQ2xCO0VBQ0EsSUFBSUcsUUFBUSxFQUFFO0lBQ1osSUFBSUYsT0FBTyxDQUFDTyxpQkFBaUIsRUFBRTtNQUM3QkosTUFBTSxPQUFBZSxNQUFBLENBQU9mLE1BQU0sTUFBRztJQUN4QixDQUFDLE1BQU07TUFDTEEsTUFBTSxPQUFBZSxNQUFBLENBQU9mLE1BQU0sQ0FBRTtJQUN2QjtFQUNGO0VBQ0EsSUFBSUgsT0FBTyxDQUFDYSxlQUFlLEtBQUssSUFBSSxFQUFFO0lBQ3BDVixNQUFNLFNBQUFlLE1BQUEsQ0FBU2xCLE9BQU8sQ0FBQ0ksUUFBUSxNQUFHO0VBQ3BDO0VBQ0EsT0FBT0QsTUFBTTtBQUNmIiwiaWdub3JlTGlzdCI6W119