{"version":3,"sources":["../node_modules/numbro/numbro.js","../node_modules/numbro/languages/index.js","../node_modules/numbro/languages/cs-CZ.js","../node_modules/numbro/languages/da-DK.js","../node_modules/numbro/languages/de-CH.js","../node_modules/numbro/languages/de-DE.js","../node_modules/numbro/languages/en-AU.js","../node_modules/numbro/languages/en-GB.js","../node_modules/numbro/languages/en-NZ.js","../node_modules/numbro/languages/en-ZA.js","../node_modules/numbro/languages/es-AR.js","../node_modules/numbro/languages/es-ES.js","../node_modules/numbro/languages/et-EE.js","../node_modules/numbro/languages/fa-IR.js","../node_modules/numbro/languages/fi-FI.js","../node_modules/numbro/languages/fil-PH.js","../node_modules/numbro/languages/fr-CA.js","../node_modules/numbro/languages/fr-CH.js","../node_modules/numbro/languages/fr-FR.js","../node_modules/numbro/languages/he-IL.js","../node_modules/numbro/languages/hu-HU.js","../node_modules/numbro/languages/it-IT.js","../node_modules/numbro/languages/ja-JP.js","../node_modules/numbro/languages/ko-KR.js","../node_modules/numbro/languages/lv-LV.js","../node_modules/numbro/languages/nb-NO.js","../node_modules/numbro/languages/nl-BE.js","../node_modules/numbro/languages/nl-NL.js","../node_modules/numbro/languages/pl-PL.js","../node_modules/numbro/languages/pt-BR.js","../node_modules/numbro/languages/pt-PT.js","../node_modules/numbro/languages/ru-RU.js","../node_modules/numbro/languages/ru-UA.js","../node_modules/numbro/languages/sk-SK.js","../node_modules/numbro/languages/sv-SE.js","../node_modules/numbro/languages/th-TH.js","../node_modules/numbro/languages/tr-TR.js","../node_modules/numbro/languages/uk-UA.js","../node_modules/numbro/languages/zh-CN.js","../node_modules/numbro/languages/zh-TW.js"],"names":["numbro","binarySuffixes","decimalSuffixes","bytes","general","scale","suffixes","marker","binary","decimal","byteFormatOrder","cultures","languages","currentCulture","zeroFormat","defaultFormat","defaultCurrencyFormat","hasModule","module","exports","Numbro","number","this","_value","zeroes","count","i","ret","toFixed","value","precision","roundingFunction","optionals","optionalsRegExp","output","power","Math","pow","toString","indexOf","mantissa","beforeDec","afterDec","exponent","prefix","str","split","length","abs","substr","toFixedLargeSmall","charAt","RegExp","replace","formatNumbro","n","format","escapedFormat","formatCurrency","currency","symbol","space","formatNumber","splice","join","formatPercentage","hours","floor","minutes","seconds","round","formatTime","unformatNumbro","string","thousandRegExp","millionRegExp","billionRegExp","trillionRegExp","stringOriginal","bytesMultiplier","timeArray","Number","unformatTime","delimiters","abbreviations","thousand","million","billion","trillion","NaN","match","min","ceil","currencySymbol","originalFormat","spliceIndex","symbolIndex","openParenIndex","plusSignIndex","minusSignIndex","decimalSeparator","position","spaceSeparated","max","Error","formatByteUnits","suffix","sep","byteFormat","units","totalLength","minimumPrecision","w","intPrecision","postfix","thousands","size","minlen","info","negP","signed","optDec","abbr","abbrK","abbrM","abbrB","abbrT","abbrForce","ord","d","forcedNeg","neg","isFinite","end","slice","start","parseInt","log","LN10","ordinal","setCulture","code","values","chooseCulture","defaults","currencyFormat","multiplier","x","parts","correctionFactor","args","Array","prototype","call","arguments","reduce","prev","next","mp","mn","Infinity","input","isNumbro","fn","unformat","version","obj","setLanguage","newLanguage","fallbackLanguage","console","warn","key","matchingLanguage","Object","keys","forEach","language","newCulture","fallbackCulture","matchingCulture","culture","languageData","cultureData","b","formats","fourDigits","fullWithTwoDecimals","fullWithTwoDecimalsNoCurrency","validate","val","_decimalSep","_thousandSep","_currSymbol","_valArray","_abbrObj","_thousandRegEx","temp","trim","e","loadLanguagesInNode","loadCulturesInNode","require","langLocaleCode","callback","optInitialValue","TypeError","index","isValueSet","hasOwnProperty","clone","inputString","undefined","formatForeignCurrency","foreignCurrencySymbol","result","isNaN","binaryByteUnits","byteUnits","decimalByteUnits","valueOf","set","add","corrFactor","accum","curr","subtract","multiply","divide","difference","process","browser","title","ender","window","cultureCode","fullWithNoDecimals","remainder","a"],"mappings":"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","file":"static/js/2.6dee4ed1.chunk.js","sourcesContent":["/*!\n * numbro.js\n * version : 1.9.3\n * author : Företagsplatsen AB\n * license : MIT\n * http://www.foretagsplatsen.se\n */\n\n(function () {\n 'use strict';\n\n /************************************\n Constants\n ************************************/\n\n var numbro,\n VERSION = '1.9.3',\n binarySuffixes = ['B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'],\n decimalSuffixes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],\n bytes = {\n general: { scale: 1024, suffixes: decimalSuffixes, marker: 'bd' },\n binary: { scale: 1024, suffixes: binarySuffixes, marker: 'b' },\n decimal: { scale: 1000, suffixes: decimalSuffixes, marker: 'd' }\n },\n // general must be before the others because it reuses their characters!\n byteFormatOrder = [ bytes.general, bytes.binary, bytes.decimal ],\n // internal storage for culture config files\n cultures = {},\n // Todo: Remove in 2.0.0\n languages = cultures,\n currentCulture = 'en-US',\n zeroFormat = null,\n defaultFormat = '0,0',\n defaultCurrencyFormat = '0$',\n // check for nodeJS\n hasModule = (typeof module !== 'undefined' && module.exports),\n // default culture\n enUS = {\n delimiters: {\n thousands: ',',\n decimal: '.'\n },\n abbreviations: {\n thousand: 'k',\n million: 'm',\n billion: 'b',\n trillion: 't'\n },\n ordinal: function(number) {\n var b = number % 10;\n return (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n },\n currency: {\n symbol: '$',\n position: 'prefix'\n },\n defaults: {\n currencyFormat: ',0000 a'\n },\n formats: {\n fourDigits: '0000 a',\n fullWithTwoDecimals: '$ ,0.00',\n fullWithTwoDecimalsNoCurrency: ',0.00'\n }\n };\n\n /************************************\n Constructors\n ************************************/\n\n\n // Numbro prototype object\n function Numbro(number) {\n this._value = number;\n }\n\n function zeroes(count) {\n var i, ret = '';\n\n for (i = 0; i < count; i++) {\n ret += '0';\n }\n\n return ret;\n }\n /**\n * Implementation of toFixed() for numbers with exponents\n * This function may return negative representations for zero values e.g. \"-0.0\"\n */\n function toFixedLargeSmall(value, precision) {\n var mantissa,\n beforeDec,\n afterDec,\n exponent,\n prefix,\n endStr,\n zerosStr,\n str;\n\n str = value.toString();\n\n mantissa = str.split('e')[0];\n exponent = str.split('e')[1];\n\n beforeDec = mantissa.split('.')[0];\n afterDec = mantissa.split('.')[1] || '';\n\n if (+exponent > 0) {\n // exponent is positive - add zeros after the numbers\n str = beforeDec + afterDec + zeroes(exponent - afterDec.length);\n } else {\n // exponent is negative\n\n if (+beforeDec < 0) {\n prefix = '-0';\n } else {\n prefix = '0';\n }\n\n // tack on the decimal point if needed\n if (precision > 0) {\n prefix += '.';\n }\n\n zerosStr = zeroes((-1 * exponent) - 1);\n // substring off the end to satisfy the precision\n endStr = (zerosStr + Math.abs(beforeDec) + afterDec).substr(0, precision);\n str = prefix + endStr;\n }\n\n // only add percision 0's if the exponent is positive\n if (+exponent > 0 && precision > 0) {\n str += '.' + zeroes(precision);\n }\n\n return str;\n }\n\n /**\n * Implementation of toFixed() that treats floats more like decimals\n *\n * Fixes binary rounding issues (eg. (0.615).toFixed(2) === '0.61') that present\n * problems for accounting- and finance-related software.\n *\n * Also removes negative signs for zero-formatted numbers. e.g. -0.01 w/ precision 1 -> 0.0\n */\n function toFixed(value, precision, roundingFunction, optionals) {\n var power = Math.pow(10, precision),\n optionalsRegExp,\n output;\n\n if (value.toString().indexOf('e') > -1) {\n // toFixed returns scientific notation for numbers above 1e21 and below 1e-7\n output = toFixedLargeSmall(value, precision);\n // remove the leading negative sign if it exists and should not be present (e.g. -0.00)\n if (output.charAt(0) === '-' && +output >= 0) {\n output = output.substr(1); // chop off the '-'\n }\n }\n else {\n // Multiply up by precision, round accurately, then divide and use native toFixed():\n output = (roundingFunction(value + 'e+' + precision) / power).toFixed(precision);\n }\n\n if (optionals) {\n optionalsRegExp = new RegExp('0{1,' + optionals + '}$');\n output = output.replace(optionalsRegExp, '');\n }\n\n return output;\n }\n\n /************************************\n Formatting\n ************************************/\n\n // determine what type of formatting we need to do\n function formatNumbro(n, format, roundingFunction) {\n var output,\n escapedFormat = format.replace(/\\{[^\\{\\}]*\\}/g, '');\n\n // figure out what kind of format we are dealing with\n if (escapedFormat.indexOf('$') > -1) { // currency!!!!!\n output = formatCurrency(n, cultures[currentCulture].currency.symbol, format, roundingFunction);\n } else if (escapedFormat.indexOf('%') > -1) { // percentage\n output = formatPercentage(n, format, roundingFunction);\n } else if (escapedFormat.indexOf(':') > -1) { // time\n output = formatTime(n, format);\n } else { // plain ol' numbers or bytes\n output = formatNumber(n._value, format, roundingFunction);\n }\n\n // return string\n return output;\n }\n\n // revert to number\n function unformatNumbro(n, string) {\n var stringOriginal = string,\n thousandRegExp,\n millionRegExp,\n billionRegExp,\n trillionRegExp,\n bytesMultiplier = false,\n power;\n\n if (string.indexOf(':') > -1) {\n n._value = unformatTime(string);\n } else {\n if (string === zeroFormat) {\n n._value = 0;\n } else {\n if (cultures[currentCulture].delimiters.decimal !== '.') {\n string = string.replace(/\\./g, '').replace(cultures[currentCulture].delimiters.decimal, '.');\n }\n\n // see if abbreviations are there so that we can multiply to the correct number\n thousandRegExp = new RegExp('[^a-zA-Z]' + cultures[currentCulture].abbreviations.thousand +\n '(?:\\\\)|(\\\\' + cultures[currentCulture].currency.symbol + ')?(?:\\\\))?)?$');\n millionRegExp = new RegExp('[^a-zA-Z]' + cultures[currentCulture].abbreviations.million +\n '(?:\\\\)|(\\\\' + cultures[currentCulture].currency.symbol + ')?(?:\\\\))?)?$');\n billionRegExp = new RegExp('[^a-zA-Z]' + cultures[currentCulture].abbreviations.billion +\n '(?:\\\\)|(\\\\' + cultures[currentCulture].currency.symbol + ')?(?:\\\\))?)?$');\n trillionRegExp = new RegExp('[^a-zA-Z]' + cultures[currentCulture].abbreviations.trillion +\n '(?:\\\\)|(\\\\' + cultures[currentCulture].currency.symbol + ')?(?:\\\\))?)?$');\n\n // see if bytes are there so that we can multiply to the correct number\n for (power = 1; power < binarySuffixes.length && !bytesMultiplier; ++power) {\n if (string.indexOf(binarySuffixes[power]) > -1) {\n bytesMultiplier = Math.pow(1024, power);\n } else if (string.indexOf(decimalSuffixes[power]) > -1) {\n bytesMultiplier = Math.pow(1000, power);\n }\n }\n\n var str = string.replace(/[^0-9\\.]+/g, '');\n if (str === '') {\n // An empty string is not a number.\n n._value = NaN;\n\n } else {\n // do some math to create our number\n n._value = ((bytesMultiplier) ? bytesMultiplier : 1) *\n ((stringOriginal.match(thousandRegExp)) ? Math.pow(10, 3) : 1) *\n ((stringOriginal.match(millionRegExp)) ? Math.pow(10, 6) : 1) *\n ((stringOriginal.match(billionRegExp)) ? Math.pow(10, 9) : 1) *\n ((stringOriginal.match(trillionRegExp)) ? Math.pow(10, 12) : 1) *\n ((string.indexOf('%') > -1) ? 0.01 : 1) *\n (((string.split('-').length +\n Math.min(string.split('(').length - 1, string.split(')').length - 1)) % 2) ? 1 : -1) *\n Number(str);\n\n // round if we are talking about bytes\n n._value = (bytesMultiplier) ? Math.ceil(n._value) : n._value;\n }\n }\n }\n return n._value;\n }\n\n function formatCurrency(n, currencySymbol, originalFormat, roundingFunction) {\n var format = originalFormat,\n symbolIndex = format.indexOf('$'),\n openParenIndex = format.indexOf('('),\n plusSignIndex = format.indexOf('+'),\n minusSignIndex = format.indexOf('-'),\n space = '',\n decimalSeparator = '',\n spliceIndex,\n output;\n\n if(format.indexOf('$') === -1){\n // Use defaults instead of the format provided\n if (cultures[currentCulture].currency.position === 'infix') {\n decimalSeparator = currencySymbol;\n if (cultures[currentCulture].currency.spaceSeparated) {\n decimalSeparator = ' ' + decimalSeparator + ' ';\n }\n } else if (cultures[currentCulture].currency.spaceSeparated) {\n space = ' ';\n }\n } else {\n // check for space before or after currency\n if (format.indexOf(' $') > -1) {\n space = ' ';\n format = format.replace(' $', '');\n } else if (format.indexOf('$ ') > -1) {\n space = ' ';\n format = format.replace('$ ', '');\n } else {\n format = format.replace('$', '');\n }\n }\n\n // Format The Number\n output = formatNumber(n._value, format, roundingFunction, decimalSeparator);\n\n if (originalFormat.indexOf('$') === -1) {\n // Use defaults instead of the format provided\n switch (cultures[currentCulture].currency.position) {\n case 'postfix':\n if (output.indexOf(')') > -1) {\n output = output.split('');\n output.splice(-1, 0, space + currencySymbol);\n output = output.join('');\n } else {\n output = output + space + currencySymbol;\n }\n break;\n case 'infix':\n break;\n case 'prefix':\n if (output.indexOf('(') > -1 || output.indexOf('-') > -1) {\n output = output.split('');\n spliceIndex = Math.max(openParenIndex, minusSignIndex) + 1;\n\n output.splice(spliceIndex, 0, currencySymbol + space);\n output = output.join('');\n } else {\n output = currencySymbol + space + output;\n }\n break;\n default:\n throw Error('Currency position should be among [\"prefix\", \"infix\", \"postfix\"]');\n }\n } else {\n // position the symbol\n if (symbolIndex <= 1) {\n if (output.indexOf('(') > -1 || output.indexOf('+') > -1 || output.indexOf('-') > -1) {\n output = output.split('');\n spliceIndex = 1;\n if (symbolIndex < openParenIndex || symbolIndex < plusSignIndex || symbolIndex < minusSignIndex) {\n // the symbol appears before the \"(\", \"+\" or \"-\"\n spliceIndex = 0;\n }\n output.splice(spliceIndex, 0, currencySymbol + space);\n output = output.join('');\n } else {\n output = currencySymbol + space + output;\n }\n } else {\n if (output.indexOf(')') > -1) {\n output = output.split('');\n output.splice(-1, 0, space + currencySymbol);\n output = output.join('');\n } else {\n output = output + space + currencySymbol;\n }\n }\n }\n\n return output;\n }\n\n function formatForeignCurrency(n, foreignCurrencySymbol, originalFormat, roundingFunction) {\n return formatCurrency(n, foreignCurrencySymbol, originalFormat, roundingFunction);\n }\n\n function formatPercentage(n, format, roundingFunction) {\n var space = '',\n output,\n value = n._value * 100;\n\n // check for space before %\n if (format.indexOf(' %') > -1) {\n space = ' ';\n format = format.replace(' %', '');\n } else {\n format = format.replace('%', '');\n }\n\n output = formatNumber(value, format, roundingFunction);\n\n if (output.indexOf(')') > -1) {\n output = output.split('');\n output.splice(-1, 0, space + '%');\n output = output.join('');\n } else {\n output = output + space + '%';\n }\n\n return output;\n }\n\n function formatTime(n) {\n var hours = Math.floor(n._value / 60 / 60),\n minutes = Math.floor((n._value - (hours * 60 * 60)) / 60),\n seconds = Math.round(n._value - (hours * 60 * 60) - (minutes * 60));\n return hours + ':' +\n ((minutes < 10) ? '0' + minutes : minutes) + ':' +\n ((seconds < 10) ? '0' + seconds : seconds);\n }\n\n function unformatTime(string) {\n var timeArray = string.split(':'),\n seconds = 0;\n // turn hours and minutes into seconds and add them all up\n if (timeArray.length === 3) {\n // hours\n seconds = seconds + (Number(timeArray[0]) * 60 * 60);\n // minutes\n seconds = seconds + (Number(timeArray[1]) * 60);\n // seconds\n seconds = seconds + Number(timeArray[2]);\n } else if (timeArray.length === 2) {\n // minutes\n seconds = seconds + (Number(timeArray[0]) * 60);\n // seconds\n seconds = seconds + Number(timeArray[1]);\n }\n return Number(seconds);\n }\n\n function formatByteUnits (value, suffixes, scale) {\n var suffix = suffixes[0],\n power,\n min,\n max,\n abs = Math.abs(value);\n\n if (abs >= scale) {\n for (power = 1; power < suffixes.length; ++power) {\n min = Math.pow(scale, power);\n max = Math.pow(scale, power + 1);\n\n if (abs >= min && abs < max) {\n suffix = suffixes[power];\n value = value / min;\n break;\n }\n }\n\n // values greater than or equal to [scale] YB never set the suffix\n if (suffix === suffixes[0]) {\n value = value / Math.pow(scale, suffixes.length - 1);\n suffix = suffixes[suffixes.length - 1];\n }\n }\n\n return { value: value, suffix: suffix };\n }\n\n function formatNumber (value, format, roundingFunction, sep) {\n var negP = false,\n signed = false,\n optDec = false,\n abbr = '',\n abbrK = false, // force abbreviation to thousands\n abbrM = false, // force abbreviation to millions\n abbrB = false, // force abbreviation to billions\n abbrT = false, // force abbreviation to trillions\n abbrForce = false, // force abbreviation\n bytes = '',\n byteFormat,\n units,\n ord = '',\n abs = Math.abs(value),\n totalLength,\n length,\n minimumPrecision,\n pow,\n w,\n intPrecision,\n precision,\n prefix,\n postfix,\n thousands,\n d = '',\n forcedNeg = false,\n neg = false,\n indexOpenP,\n size,\n indexMinus,\n paren = '',\n minlen,\n i;\n\n // check if number is zero and a custom zero format has been set\n if (value === 0 && zeroFormat !== null) {\n return zeroFormat;\n }\n\n if (!isFinite(value)) {\n return '' + value;\n }\n\n if (format.indexOf('{') === 0) {\n var end = format.indexOf('}');\n if (end === -1) {\n throw Error('Format should also contain a \"}\"');\n }\n prefix = format.slice(1, end);\n format = format.slice(end + 1);\n } else {\n prefix = '';\n }\n\n if (format.indexOf('}') === format.length - 1) {\n var start = format.indexOf('{');\n if (start === -1) {\n throw Error('Format should also contain a \"{\"');\n }\n postfix = format.slice(start + 1, -1);\n format = format.slice(0, start + 1);\n } else {\n postfix = '';\n }\n\n // check for min length\n var info;\n if (format.indexOf('.') === -1) {\n info = format.match(/([0-9]+).*/);\n } else {\n info = format.match(/([0-9]+)\\..*/);\n }\n minlen = info === null ? -1 : info[1].length;\n\n // see if we should use parentheses for negative number or if we should prefix with a sign\n // if both are present we default to parentheses\n if (format.indexOf('-') !== -1) {\n forcedNeg = true;\n }\n if (format.indexOf('(') > -1) {\n negP = true;\n format = format.slice(1, -1);\n } else if (format.indexOf('+') > -1) {\n signed = true;\n format = format.replace(/\\+/g, '');\n }\n\n // see if abbreviation is wanted\n if (format.indexOf('a') > -1) {\n intPrecision = format.split('.')[0].match(/[0-9]+/g) || ['0'];\n intPrecision = parseInt(intPrecision[0], 10);\n\n // check if abbreviation is specified\n abbrK = format.indexOf('aK') >= 0;\n abbrM = format.indexOf('aM') >= 0;\n abbrB = format.indexOf('aB') >= 0;\n abbrT = format.indexOf('aT') >= 0;\n abbrForce = abbrK || abbrM || abbrB || abbrT;\n\n // check for space before abbreviation\n if (format.indexOf(' a') > -1) {\n abbr = ' ';\n format = format.replace(' a', '');\n } else {\n format = format.replace('a', '');\n }\n\n totalLength = Math.floor(Math.log(abs) / Math.LN10) + 1;\n\n minimumPrecision = totalLength % 3;\n minimumPrecision = minimumPrecision === 0 ? 3 : minimumPrecision;\n\n if (intPrecision && abs !== 0) {\n\n length = Math.floor(Math.log(abs) / Math.LN10) + 1 - intPrecision;\n\n pow = 3 * ~~((Math.min(intPrecision, totalLength) - minimumPrecision) / 3);\n\n abs = abs / Math.pow(10, pow);\n\n if (format.indexOf('.') === -1 && intPrecision > 3) {\n format += '[.]';\n\n size = length === 0 ? 0 : 3 * ~~(length / 3) - length;\n size = size < 0 ? size + 3 : size;\n\n format += zeroes(size);\n }\n }\n\n if (Math.floor(Math.log(Math.abs(value)) / Math.LN10) + 1 !== intPrecision) {\n if (abs >= Math.pow(10, 12) && !abbrForce || abbrT) {\n // trillion\n abbr = abbr + cultures[currentCulture].abbreviations.trillion;\n value = value / Math.pow(10, 12);\n } else if (abs < Math.pow(10, 12) && abs >= Math.pow(10, 9) && !abbrForce || abbrB) {\n // billion\n abbr = abbr + cultures[currentCulture].abbreviations.billion;\n value = value / Math.pow(10, 9);\n } else if (abs < Math.pow(10, 9) && abs >= Math.pow(10, 6) && !abbrForce || abbrM) {\n // million\n abbr = abbr + cultures[currentCulture].abbreviations.million;\n value = value / Math.pow(10, 6);\n } else if (abs < Math.pow(10, 6) && abs >= Math.pow(10, 3) && !abbrForce || abbrK) {\n // thousand\n abbr = abbr + cultures[currentCulture].abbreviations.thousand;\n value = value / Math.pow(10, 3);\n }\n }\n }\n\n // see if we are formatting\n // binary-decimal bytes (1024 MB), binary bytes (1024 MiB), or decimal bytes (1000 MB)\n for (i = 0; i < byteFormatOrder.length; ++i) {\n byteFormat = byteFormatOrder[i];\n\n if (format.indexOf(byteFormat.marker) > -1) {\n // check for space before\n if (format.indexOf(' ' + byteFormat.marker) >-1) {\n bytes = ' ';\n }\n\n // remove the marker (with the space if it had one)\n format = format.replace(bytes + byteFormat.marker, '');\n\n units = formatByteUnits(value, byteFormat.suffixes, byteFormat.scale);\n\n value = units.value;\n bytes = bytes + units.suffix;\n\n break;\n }\n }\n\n // see if ordinal is wanted\n if (format.indexOf('o') > -1) {\n // check for space before\n if (format.indexOf(' o') > -1) {\n ord = ' ';\n format = format.replace(' o', '');\n } else {\n format = format.replace('o', '');\n }\n\n if (cultures[currentCulture].ordinal) {\n ord = ord + cultures[currentCulture].ordinal(value);\n }\n }\n\n if (format.indexOf('[.]') > -1) {\n optDec = true;\n format = format.replace('[.]', '.');\n }\n\n w = value.toString().split('.')[0];\n precision = format.split('.')[1];\n thousands = format.indexOf(',');\n\n if (precision) {\n if (precision.indexOf('*') !== -1) {\n d = toFixed(value, value.toString().split('.')[1].length, roundingFunction);\n } else {\n if (precision.indexOf('[') > -1) {\n precision = precision.replace(']', '');\n precision = precision.split('[');\n d = toFixed(value, (precision[0].length + precision[1].length), roundingFunction,\n precision[1].length);\n } else {\n d = toFixed(value, precision.length, roundingFunction);\n }\n }\n\n w = d.split('.')[0];\n\n if (d.split('.')[1].length) {\n var p = sep ? abbr + sep : cultures[currentCulture].delimiters.decimal;\n d = p + d.split('.')[1];\n } else {\n d = '';\n }\n\n if (optDec && Number(d.slice(1)) === 0) {\n d = '';\n }\n } else {\n w = toFixed(value, 0, roundingFunction);\n }\n\n // format number\n if (w.indexOf('-') > -1) {\n w = w.slice(1);\n neg = true;\n }\n\n if (w.length < minlen) {\n w = zeroes(minlen - w.length) + w;\n }\n\n if (thousands > -1) {\n w = w.toString().replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1' +\n cultures[currentCulture].delimiters.thousands);\n }\n\n if (format.indexOf('.') === 0) {\n w = '';\n }\n\n indexOpenP = format.indexOf('(');\n indexMinus = format.indexOf('-');\n\n if (indexOpenP < indexMinus) {\n paren = ((negP && neg) ? '(' : '') + (((forcedNeg && neg) || (!negP && neg)) ? '-' : '');\n } else {\n paren = (((forcedNeg && neg) || (!negP && neg)) ? '-' : '') + ((negP && neg) ? '(' : '');\n }\n\n return prefix +\n paren + ((!neg && signed && value !== 0) ? '+' : '') +\n w + d +\n ((ord) ? ord : '') +\n ((abbr && !sep) ? abbr : '') +\n ((bytes) ? bytes : '') +\n ((negP && neg) ? ')' : '') +\n postfix;\n }\n\n /************************************\n Top Level Functions\n ************************************/\n\n numbro = function(input) {\n if (numbro.isNumbro(input)) {\n input = input.value();\n } else if (input === 0 || typeof input === 'undefined') {\n input = 0;\n } else if (!Number(input)) {\n input = numbro.fn.unformat(input);\n }\n\n return new Numbro(Number(input));\n };\n\n // version number\n numbro.version = VERSION;\n\n // compare numbro object\n numbro.isNumbro = function(obj) {\n return obj instanceof Numbro;\n };\n\n /**\n * This function allow the user to set a new language with a fallback if\n * the language does not exist. If no fallback language is provided,\n * it fallbacks to english.\n *\n * @deprecated Since in version 1.6.0. It will be deleted in version 2.0\n * `setCulture` should be used instead.\n */\n numbro.setLanguage = function(newLanguage, fallbackLanguage) {\n console.warn('`setLanguage` is deprecated since version 1.6.0. Use `setCulture` instead');\n var key = newLanguage,\n prefix = newLanguage.split('-')[0],\n matchingLanguage = null;\n if (!languages[key]) {\n Object.keys(languages).forEach(function(language) {\n if (!matchingLanguage && language.split('-')[0] === prefix) {\n matchingLanguage = language;\n }\n });\n key = matchingLanguage || fallbackLanguage || 'en-US';\n }\n chooseCulture(key);\n };\n\n /**\n * This function allow the user to set a new culture with a fallback if\n * the culture does not exist. If no fallback culture is provided,\n * it falls back to \"en-US\".\n */\n numbro.setCulture = function(newCulture, fallbackCulture) {\n var key = newCulture,\n suffix = newCulture.split('-')[1],\n matchingCulture = null;\n if (!cultures[key]) {\n if (suffix) {\n Object.keys(cultures).forEach(function(language) {\n if (!matchingCulture && language.split('-')[1] === suffix) {\n matchingCulture = language;\n }\n });\n }\n\n key = matchingCulture || fallbackCulture || 'en-US';\n }\n chooseCulture(key);\n };\n\n /**\n * This function will load languages and then set the global language. If\n * no arguments are passed in, it will simply return the current global\n * language key.\n *\n * @deprecated Since in version 1.6.0. It will be deleted in version 2.0\n * `culture` should be used instead.\n */\n numbro.language = function(key, values) {\n console.warn('`language` is deprecated since version 1.6.0. Use `culture` instead');\n\n if (!key) {\n return currentCulture;\n }\n\n if (key && !values) {\n if (!languages[key]) {\n throw new Error('Unknown language : ' + key);\n }\n chooseCulture(key);\n }\n\n if (values || !languages[key]) {\n setCulture(key, values);\n }\n\n return numbro;\n };\n\n /**\n * This function will load cultures and then set the global culture. If\n * no arguments are passed in, it will simply return the current global\n * culture code.\n */\n numbro.culture = function(code, values) {\n if (!code) {\n return currentCulture;\n }\n\n if (code && !values) {\n if (!cultures[code]) {\n throw new Error('Unknown culture : ' + code);\n }\n chooseCulture(code);\n }\n\n if (values || !cultures[code]) {\n setCulture(code, values);\n }\n\n return numbro;\n };\n\n /**\n * This function provides access to the loaded language data. If\n * no arguments are passed in, it will simply return the current\n * global language object.\n *\n * @deprecated Since in version 1.6.0. It will be deleted in version 2.0\n * `culture` should be used instead.\n */\n numbro.languageData = function(key) {\n console.warn('`languageData` is deprecated since version 1.6.0. Use `cultureData` instead');\n\n if (!key) {\n return languages[currentCulture];\n }\n\n if (!languages[key]) {\n throw new Error('Unknown language : ' + key);\n }\n\n return languages[key];\n };\n\n /**\n * This function provides access to the loaded culture data. If\n * no arguments are passed in, it will simply return the current\n * global culture object.\n */\n numbro.cultureData = function(code) {\n if (!code) {\n return cultures[currentCulture];\n }\n\n if (!cultures[code]) {\n throw new Error('Unknown culture : ' + code);\n }\n\n return cultures[code];\n };\n\n numbro.culture('en-US', enUS);\n\n /**\n * @deprecated Since in version 1.6.0. It will be deleted in version 2.0\n * `cultures` should be used instead.\n */\n numbro.languages = function() {\n console.warn('`languages` is deprecated since version 1.6.0. Use `cultures` instead');\n\n return languages;\n };\n\n numbro.cultures = function() {\n return cultures;\n };\n\n numbro.zeroFormat = function(format) {\n zeroFormat = typeof(format) === 'string' ? format : null;\n };\n\n numbro.defaultFormat = function(format) {\n defaultFormat = typeof(format) === 'string' ? format : '0.0';\n };\n\n numbro.defaultCurrencyFormat = function (format) {\n defaultCurrencyFormat = typeof(format) === 'string' ? format : '0$';\n };\n\n numbro.validate = function(val, culture) {\n\n var _decimalSep,\n _thousandSep,\n _currSymbol,\n _valArray,\n _abbrObj,\n _thousandRegEx,\n cultureData,\n temp;\n\n //coerce val to string\n if (typeof val !== 'string') {\n val += '';\n if (console.warn) {\n console.warn('Numbro.js: Value is not string. It has been co-erced to: ', val);\n }\n }\n\n //trim whitespaces from either sides\n val = val.trim();\n\n //replace the initial '+' or '-' sign if present\n val = val.replace(/^[+-]?/, '');\n\n //if val is just digits return true\n if ( !! val.match(/^\\d+$/)) {\n return true;\n }\n\n //if val is empty return false\n if (val === '') {\n return false;\n }\n\n //get the decimal and thousands separator from numbro.cultureData\n try {\n //check if the culture is understood by numbro. if not, default it to current culture\n cultureData = numbro.cultureData(culture);\n } catch (e) {\n cultureData = numbro.cultureData(numbro.culture());\n }\n\n //setup the delimiters and currency symbol based on culture\n _currSymbol = cultureData.currency.symbol;\n _abbrObj = cultureData.abbreviations;\n _decimalSep = cultureData.delimiters.decimal;\n if (cultureData.delimiters.thousands === '.') {\n _thousandSep = '\\\\.';\n } else {\n _thousandSep = cultureData.delimiters.thousands;\n }\n\n // validating currency symbol\n temp = val.match(/^[^\\d\\.\\,]+/);\n if (temp !== null) {\n val = val.substr(1);\n if (temp[0] !== _currSymbol) {\n return false;\n }\n }\n\n //validating abbreviation symbol\n temp = val.match(/[^\\d]+$/);\n if (temp !== null) {\n val = val.slice(0, -1);\n if (temp[0] !== _abbrObj.thousand && temp[0] !== _abbrObj.million &&\n temp[0] !== _abbrObj.billion && temp[0] !== _abbrObj.trillion) {\n return false;\n }\n }\n\n _thousandRegEx = new RegExp(_thousandSep + '{2}');\n\n if (!val.match(/[^\\d.,]/g)) {\n _valArray = val.split(_decimalSep);\n if (_valArray.length > 2) {\n return false;\n } else {\n if (_valArray.length < 2) {\n return ( !! _valArray[0].match(/^\\d+.*\\d$/) && !_valArray[0].match(_thousandRegEx));\n } else {\n if (_valArray[0] === '') {\n // for values without leading zero eg. .984\n return (!_valArray[0].match(_thousandRegEx) &&\n !!_valArray[1].match(/^\\d+$/));\n\n } else if (_valArray[0].length === 1) {\n return ( !! _valArray[0].match(/^\\d+$/) &&\n !_valArray[0].match(_thousandRegEx) &&\n !! _valArray[1].match(/^\\d+$/));\n } else {\n return ( !! _valArray[0].match(/^\\d+.*\\d$/) &&\n !_valArray[0].match(_thousandRegEx) &&\n !! _valArray[1].match(/^\\d+$/));\n }\n }\n }\n }\n\n return false;\n };\n\n /**\n * * @deprecated Since in version 1.6.0. It will be deleted in version 2.0\n * `loadCulturesInNode` should be used instead.\n */\n numbro.loadLanguagesInNode = function() {\n console.warn('`loadLanguagesInNode` is deprecated since version 1.6.0. Use `loadCulturesInNode` instead');\n\n numbro.loadCulturesInNode();\n };\n\n numbro.loadCulturesInNode = function() {\n // TODO: Rename the folder in 2.0.0\n var cultures = require('./languages');\n\n for(var langLocaleCode in cultures) {\n if(langLocaleCode) {\n numbro.culture(langLocaleCode, cultures[langLocaleCode]);\n }\n }\n };\n\n /************************************\n Helpers\n ************************************/\n\n function setCulture(code, values) {\n cultures[code] = values;\n }\n\n function chooseCulture(code) {\n currentCulture = code;\n var defaults = cultures[code].defaults;\n if (defaults && defaults.format) {\n numbro.defaultFormat(defaults.format);\n }\n if (defaults && defaults.currencyFormat) {\n numbro.defaultCurrencyFormat(defaults.currencyFormat);\n }\n }\n\n function inNodejsRuntime() {\n return (typeof process !== 'undefined') &&\n (process.browser === undefined) &&\n process.title &&\n (\n process.title.indexOf('node') === 0 ||\n process.title.indexOf('meteor-tool') > 0 ||\n process.title === 'grunt' ||\n process.title === 'gulp'\n ) &&\n (typeof require !== 'undefined');\n }\n\n /************************************\n Floating-point helpers\n ************************************/\n\n // The floating-point helper functions and implementation\n // borrows heavily from sinful.js: http://guipn.github.io/sinful.js/\n\n /**\n * Array.prototype.reduce for browsers that don't support it\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce#Compatibility\n */\n if ('function' !== typeof Array.prototype.reduce) {\n Array.prototype.reduce = function(callback, optInitialValue) {\n\n if (null === this || 'undefined' === typeof this) {\n // At the moment all modern browsers, that support strict mode, have\n // native implementation of Array.prototype.reduce. For instance, IE8\n // does not support strict mode, so this check is actually useless.\n throw new TypeError('Array.prototype.reduce called on null or undefined');\n }\n\n if ('function' !== typeof callback) {\n throw new TypeError(callback + ' is not a function');\n }\n\n var index,\n value,\n length = this.length >>> 0,\n isValueSet = false;\n\n if (1 < arguments.length) {\n value = optInitialValue;\n isValueSet = true;\n }\n\n for (index = 0; length > index; ++index) {\n if (this.hasOwnProperty(index)) {\n if (isValueSet) {\n value = callback(value, this[index], index, this);\n } else {\n value = this[index];\n isValueSet = true;\n }\n }\n }\n\n if (!isValueSet) {\n throw new TypeError('Reduce of empty array with no initial value');\n }\n\n return value;\n };\n }\n\n\n /**\n * Computes the multiplier necessary to make x >= 1,\n * effectively eliminating miscalculations caused by\n * finite precision.\n */\n function multiplier(x) {\n var parts = x.toString().split('.');\n if (parts.length < 2) {\n return 1;\n }\n return Math.pow(10, parts[1].length);\n }\n\n /**\n * Given a variable number of arguments, returns the maximum\n * multiplier that must be used to normalize an operation involving\n * all of them.\n */\n function correctionFactor() {\n var args = Array.prototype.slice.call(arguments);\n return args.reduce(function(prev, next) {\n var mp = multiplier(prev),\n mn = multiplier(next);\n return mp > mn ? mp : mn;\n }, -Infinity);\n }\n\n /************************************\n Numbro Prototype\n ************************************/\n\n\n numbro.fn = Numbro.prototype = {\n\n clone: function() {\n return numbro(this);\n },\n\n format: function(inputString, roundingFunction) {\n return formatNumbro(this,\n inputString ? inputString : defaultFormat,\n (roundingFunction !== undefined) ? roundingFunction : Math.round\n );\n },\n\n formatCurrency: function(inputString, roundingFunction) {\n return formatCurrency(this,\n cultures[currentCulture].currency.symbol,\n inputString ? inputString : defaultCurrencyFormat,\n (roundingFunction !== undefined) ? roundingFunction : Math.round\n );\n },\n\n formatForeignCurrency: function(currencySymbol, inputString, roundingFunction) {\n return formatForeignCurrency(this,\n currencySymbol,\n inputString ? inputString : defaultCurrencyFormat,\n (roundingFunction !== undefined) ? roundingFunction : Math.round\n );\n },\n\n unformat: function(inputString) {\n if (typeof inputString === 'number') {\n return inputString;\n } else if (typeof inputString === 'string') {\n var result = unformatNumbro(this, inputString);\n\n // Any unparseable string (represented as NaN in the result) is\n // converted into undefined.\n return isNaN(result) ? undefined : result;\n } else {\n return undefined;\n }\n },\n\n binaryByteUnits: function() {\n return formatByteUnits(this._value, bytes.binary.suffixes, bytes.binary.scale).suffix;\n },\n\n byteUnits: function() {\n return formatByteUnits(this._value, bytes.general.suffixes, bytes.general.scale).suffix;\n },\n\n decimalByteUnits: function() {\n return formatByteUnits(this._value, bytes.decimal.suffixes, bytes.decimal.scale).suffix;\n },\n\n value: function() {\n return this._value;\n },\n\n valueOf: function() {\n return this._value;\n },\n\n set: function(value) {\n this._value = Number(value);\n return this;\n },\n\n add: function(value) {\n var corrFactor = correctionFactor.call(null, this._value, value);\n\n function cback(accum, curr) {\n return accum + corrFactor * curr;\n }\n this._value = [this._value, value].reduce(cback, 0) / corrFactor;\n return this;\n },\n\n subtract: function(value) {\n var corrFactor = correctionFactor.call(null, this._value, value);\n\n function cback(accum, curr) {\n return accum - corrFactor * curr;\n }\n this._value = [value].reduce(cback, this._value * corrFactor) / corrFactor;\n return this;\n },\n\n multiply: function(value) {\n function cback(accum, curr) {\n var corrFactor = correctionFactor(accum, curr),\n result = accum * corrFactor;\n result *= curr * corrFactor;\n result /= corrFactor * corrFactor;\n return result;\n }\n this._value = [this._value, value].reduce(cback, 1);\n return this;\n },\n\n divide: function(value) {\n function cback(accum, curr) {\n var corrFactor = correctionFactor(accum, curr);\n return (accum * corrFactor) / (curr * corrFactor);\n }\n this._value = [this._value, value].reduce(cback);\n return this;\n },\n\n difference: function(value) {\n return Math.abs(numbro(this._value).subtract(value).value());\n }\n\n };\n\n /************************************\n Exposing Numbro\n ************************************/\n\n if (inNodejsRuntime()) {\n //Todo: Rename the folder in 2.0.0\n numbro.loadCulturesInNode();\n }\n\n // CommonJS module is defined\n if (hasModule) {\n module.exports = numbro;\n } else {\n /*global ender:false */\n if (typeof ender === 'undefined') {\n // here, `this` means `window` in the browser, or `global` on the server\n // add `numbro` as a global object via a string identifier,\n // for Closure Compiler 'advanced' mode\n this.numbro = numbro;\n }\n\n /*global define:false */\n if (typeof define === 'function' && define.amd) {\n define([], function() {\n return numbro;\n });\n }\n }\n\n}.call(typeof window === 'undefined' ? this : window));\n","exports['cs-CZ'] = require('./cs-CZ.js');\nexports['da-DK'] = require('./da-DK.js');\nexports['de-CH'] = require('./de-CH.js');\nexports['de-DE'] = require('./de-DE.js');\nexports['en-AU'] = require('./en-AU.js');\nexports['en-GB'] = require('./en-GB.js');\nexports['en-NZ'] = require('./en-NZ.js');\nexports['en-ZA'] = require('./en-ZA.js');\nexports['es-AR'] = require('./es-AR.js');\nexports['es-ES'] = require('./es-ES.js');\nexports['et-EE'] = require('./et-EE.js');\nexports['fa-IR'] = require('./fa-IR.js');\nexports['fi-FI'] = require('./fi-FI.js');\nexports['fil-PH'] = require('./fil-PH.js');\nexports['fr-CA'] = require('./fr-CA.js');\nexports['fr-CH'] = require('./fr-CH.js');\nexports['fr-FR'] = require('./fr-FR.js');\nexports['he-IL'] = require('./he-IL.js');\nexports['hu-HU'] = require('./hu-HU.js');\nexports['it-IT'] = require('./it-IT.js');\nexports['ja-JP'] = require('./ja-JP.js');\nexports['ko-KR'] = require('./ko-KR.js');\nexports['lv-LV'] = require('./lv-LV.js');\nexports['nb-NO'] = require('./nb-NO.js');\nexports['nl-BE'] = require('./nl-BE.js');\nexports['nl-NL'] = require('./nl-NL.js');\nexports['pl-PL'] = require('./pl-PL.js');\nexports['pt-BR'] = require('./pt-BR.js');\nexports['pt-PT'] = require('./pt-PT.js');\nexports['ru-RU'] = require('./ru-RU.js');\nexports['ru-UA'] = require('./ru-UA.js');\nexports['sk-SK'] = require('./sk-SK.js');\nexports['sv-SE'] = require('./sv-SE.js');\nexports['th-TH'] = require('./th-TH.js');\nexports['tr-TR'] = require('./tr-TR.js');\nexports['uk-UA'] = require('./uk-UA.js');\nexports['zh-CN'] = require('./zh-CN.js');\nexports['zh-TW'] = require('./zh-TW.js');","/*!\n * numbro.js language configuration\n * language : Czech\n * locale: Czech Republic\n * author : Anatoli Papirovski : https://github.com/apapirovski\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'cs-CZ',\n cultureCode: 'cs-CZ',\n delimiters: {\n thousands: ' ',\n decimal: ','\n },\n abbreviations: {\n thousand: 'tis.',\n million: 'mil.',\n billion: 'b',\n trillion: 't'\n },\n ordinal: function () {\n return '.';\n },\n currency: {\n symbol: 'Kč',\n position: 'postfix'\n },\n defaults: {\n currencyFormat: ',4 a'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: ',0.00 $',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: ',0 $'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : Danish\n * locale: Denmark\n * author : Michael Storgaard : https://github.com/mstorgaard\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'da-DK',\n cultureCode: 'da-DK',\n delimiters: {\n thousands: '.',\n decimal: ','\n },\n abbreviations: {\n thousand: 'k',\n million: 'mio',\n billion: 'mia',\n trillion: 'b'\n },\n ordinal: function () {\n return '.';\n },\n currency: {\n symbol: 'kr',\n position: 'postfix'\n },\n defaults: {\n currencyFormat: ',4 a'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: ',0.00 $',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: ',0 $'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : German\n * locale: Switzerland\n * author : Michael Piefel : https://github.com/piefel (based on work from Marco Krage : https://github.com/sinky)\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'de-CH',\n cultureCode: 'de-CH',\n delimiters: {\n thousands: '\\'',\n decimal: '.'\n },\n abbreviations: {\n thousand: 'k',\n million: 'm',\n billion: 'b',\n trillion: 't'\n },\n ordinal: function () {\n return '.';\n },\n currency: {\n symbol: 'CHF',\n position: 'postfix'\n },\n defaults: {\n currencyFormat: ',4 a'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: ',0.00 $',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: ',0 $'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : German\n * locale: Germany\n * author : Marco Krage : https://github.com/sinky\n *\n * Generally useful in Germany, Austria, Luxembourg, Belgium\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'de-DE',\n cultureCode: 'de-DE',\n delimiters: {\n thousands: '.',\n decimal: ','\n },\n abbreviations: {\n thousand: 'k',\n million: 'm',\n billion: 'b',\n trillion: 't'\n },\n ordinal: function () {\n return '.';\n },\n currency: {\n symbol: '€',\n position: 'postfix',\n spaceSeparated: true\n },\n defaults: {\n currencyFormat: ',4'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: ',0.00 $',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: ',0 $'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : English\n * locale: Australia\n * author : Benedikt Huss : https://github.com/ben305\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'en-AU',\n cultureCode: 'en-AU',\n delimiters: {\n thousands: ',',\n decimal: '.'\n },\n abbreviations: {\n thousand: 'k',\n million: 'm',\n billion: 'b',\n trillion: 't'\n },\n ordinal: function (number) {\n var b = number % 10;\n return (~~ (number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n },\n currency: {\n symbol: '$',\n position: 'prefix'\n },\n defaults: {\n currencyFormat: ',4 a'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: '$ ,0.00',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: '$ ,0'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : English\n * locale: United Kingdom of Great Britain and Northern Ireland\n * author : Dan Ristic : https://github.com/dristic\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'en-GB',\n cultureCode: 'en-GB',\n delimiters: {\n thousands: ',',\n decimal: '.'\n },\n abbreviations: {\n thousand: 'k',\n million: 'm',\n billion: 'b',\n trillion: 't'\n },\n ordinal: function (number) {\n var b = number % 10;\n return (~~ (number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n },\n currency: {\n symbol: '£',\n position: 'prefix'\n },\n defaults: {\n currencyFormat: ',4 a'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: '$ ,0.00',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: '$ ,0'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : English\n * locale: New Zealand\n * author : Benedikt Huss : https://github.com/ben305\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'en-NZ',\n cultureCode: 'en-NZ',\n delimiters: {\n thousands: ',',\n decimal: '.'\n },\n abbreviations: {\n thousand: 'k',\n million: 'm',\n billion: 'b',\n trillion: 't'\n },\n ordinal: function (number) {\n var b = number % 10;\n return (~~ (number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n },\n currency: {\n symbol: '$',\n position: 'prefix'\n },\n defaults: {\n currencyFormat: ',4 a'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: '$ ,0.00',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: '$ ,0'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : English\n * locale: South Africa\n * author : Stewart Scott https://github.com/stewart42\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'en-ZA',\n cultureCode: 'en-ZA',\n delimiters: {\n thousands: ',',\n decimal: '.'\n },\n abbreviations: {\n thousand: 'k',\n million: 'm',\n billion: 'b',\n trillion: 't'\n },\n ordinal: function (number) {\n var b = number % 10;\n return (~~ (number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n },\n currency: {\n symbol: 'R',\n position: 'prefix'\n },\n defaults: {\n currencyFormat: ',4 a'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: '$ ,0.00',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: '$ ,0'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : Spanish\n * locale: Argentina\n * author : Hernan Garcia : https://github.com/hgarcia\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'es-AR',\n cultureCode: 'es-AR',\n delimiters: {\n thousands: '.',\n decimal: ','\n },\n abbreviations: {\n thousand: 'k',\n million: 'mm',\n billion: 'b',\n trillion: 't'\n },\n ordinal: function (number) {\n var b = number % 10;\n return (b === 1 || b === 3) ? 'er' :\n (b === 2) ? 'do' :\n (b === 7 || b === 0) ? 'mo' :\n (b === 8) ? 'vo' :\n (b === 9) ? 'no' : 'to';\n },\n currency: {\n symbol: '$',\n position: 'postfix'\n },\n defaults: {\n currencyFormat: ',4 a'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: ',0.00 $',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: ',0 $'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : Spanish\n * locale: Spain\n * author : Hernan Garcia : https://github.com/hgarcia\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'es-ES',\n cultureCode: 'es-ES',\n delimiters: {\n thousands: '.',\n decimal: ','\n },\n abbreviations: {\n thousand: 'k',\n million: 'mm',\n billion: 'b',\n trillion: 't'\n },\n ordinal: function (number) {\n var b = number % 10;\n return (b === 1 || b === 3) ? 'er' :\n (b === 2) ? 'do' :\n (b === 7 || b === 0) ? 'mo' :\n (b === 8) ? 'vo' :\n (b === 9) ? 'no' : 'to';\n },\n currency: {\n symbol: '€',\n position: 'postfix'\n },\n defaults: {\n currencyFormat: ',4 a'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: ',0.00 $',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: ',0 $'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : Estonian\n * locale: Estonia\n * author : Illimar Tambek : https://github.com/ragulka\n *\n * Note: in Estonian, abbreviations are always separated\n * from numbers with a space\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'et-EE',\n cultureCode: 'et-EE',\n delimiters: {\n thousands: ' ',\n decimal: ','\n },\n abbreviations: {\n thousand: ' tuh',\n million: ' mln',\n billion: ' mld',\n trillion: ' trl'\n },\n ordinal: function () {\n return '.';\n },\n currency: {\n symbol: '€',\n position: 'postfix'\n },\n defaults: {\n currencyFormat: ',4 a'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: ',0.00 $',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: ',0 $'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : Farsi\n * locale: Iran\n * author : neo13 : https://github.com/neo13\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'fa-IR',\n cultureCode: 'fa-IR',\n delimiters: {\n thousands: '،',\n decimal: '.'\n },\n abbreviations: {\n thousand: 'هزار',\n million: 'میلیون',\n billion: 'میلیارد',\n trillion: 'تریلیون'\n },\n ordinal: function () {\n return 'ام';\n },\n currency: {\n symbol: '﷼'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : Finnish\n * locale: Finland\n * author : Sami Saada : https://github.com/samitheberber\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'fi-FI',\n cultureCode: 'fi-FI',\n delimiters: {\n thousands: ' ',\n decimal: ','\n },\n abbreviations: {\n thousand: 'k',\n million: 'M',\n billion: 'G',\n trillion: 'T'\n },\n ordinal: function () {\n return '.';\n },\n currency: {\n symbol: '€',\n position: 'postfix'\n },\n defaults: {\n currencyFormat: ',4 a'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: ',0.00 $',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: ',0 $'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : Filipino (Pilipino)\n * locale: Philippines\n * author : Michael Abadilla : https://github.com/mjmaix\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'fil-PH',\n cultureCode: 'fil-PH',\n delimiters: {\n thousands: ',',\n decimal: '.'\n },\n abbreviations: {\n thousand: 'k',\n million: 'm',\n billion: 'b',\n trillion: 't'\n },\n ordinal: function (number) {\n var b = number % 10;\n return (~~ (number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n },\n currency: {\n symbol: '₱'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : French\n * locale: Canada\n * author : Léo Renaud-Allaire : https://github.com/renaudleo\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'fr-CA',\n cultureCode: 'fr-CA',\n delimiters: {\n thousands: ' ',\n decimal: ','\n },\n abbreviations: {\n thousand: 'k',\n million: 'M',\n billion: 'G',\n trillion: 'T'\n },\n ordinal : function (number) {\n return number === 1 ? 'er' : 'ème';\n },\n currency: {\n symbol: '$',\n position: 'postfix',\n spaceSeparated : true\n },\n defaults: {\n currencyFormat: ',4 a'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: '$ ,0.00',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: '$ ,0'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : French\n * locale: Switzerland\n * author : Adam Draper : https://github.com/adamwdraper\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'fr-CH',\n cultureCode: 'fr-CH',\n delimiters: {\n thousands: '\\'',\n decimal: '.'\n },\n abbreviations: {\n thousand: 'k',\n million: 'm',\n billion: 'b',\n trillion: 't'\n },\n ordinal : function (number) {\n return number === 1 ? 'er' : 'ème';\n },\n currency: {\n symbol: 'CHF',\n position: 'postfix'\n },\n defaults: {\n currencyFormat: ',4 a'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: ',0.00 $',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: ',0 $'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : French\n * locale: France\n * author : Adam Draper : https://github.com/adamwdraper\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'fr-FR',\n cultureCode: 'fr-FR',\n delimiters: {\n thousands: ' ',\n decimal: ','\n },\n abbreviations: {\n thousand: 'k',\n million: 'm',\n billion: 'b',\n trillion: 't'\n },\n ordinal : function (number) {\n return number === 1 ? 'er' : 'ème';\n },\n currency: {\n symbol: '€',\n position: 'postfix'\n },\n defaults: {\n currencyFormat: ',4 a'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: ',0.00 $',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: ',0 $'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : Hebrew\n * locale : IL\n * author : Eli Zehavi : https://github.com/eli-zehavi\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'he-IL',\n cultureCode: 'he-IL',\n delimiters: {\n thousands: ',',\n decimal: '.'\n },\n abbreviations: {\n thousand: 'אלף',\n million: 'מליון',\n billion: 'בליון',\n trillion: 'טריליון'\n },\n currency: {\n symbol: '₪',\n position: 'prefix'\n },\n defaults: {\n currencyFormat: ',4 a'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: '₪ ,0.00',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: '₪ ,0'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n\n","/*!\n * numbro.js language configuration\n * language : Hungarian\n * locale: Hungary\n * author : Peter Bakondy : https://github.com/pbakondy\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'hu-HU',\n cultureCode: 'hu-HU',\n delimiters: {\n thousands: ' ',\n decimal: ','\n },\n abbreviations: {\n thousand: 'E', // ezer\n million: 'M', // millió\n billion: 'Mrd', // milliárd\n trillion: 'T' // trillió\n },\n ordinal: function () {\n return '.';\n },\n currency: {\n symbol: ' Ft',\n position: 'postfix'\n },\n defaults: {\n currencyFormat: ',4 a'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: ',0.00 $',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: ',0 $'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : Italian\n * locale: Italy\n * author : Giacomo Trombi : http://cinquepunti.it\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'it-IT',\n cultureCode: 'it-IT',\n delimiters: {\n thousands: '.',\n decimal: ','\n },\n abbreviations: {\n thousand: 'mila',\n million: 'mil',\n billion: 'b',\n trillion: 't'\n },\n ordinal: function () {\n return 'º';\n },\n currency: {\n symbol: '€',\n position: 'postfix'\n },\n defaults: {\n currencyFormat: ',4 a'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: ',0.00 $',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: ',0 $'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : Japanese\n * locale: Japan\n * author : teppeis : https://github.com/teppeis\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'ja-JP',\n cultureCode: 'ja-JP',\n delimiters: {\n thousands: ',',\n decimal: '.'\n },\n abbreviations: {\n thousand: '千',\n million: '百万',\n billion: '十億',\n trillion: '兆'\n },\n ordinal: function () {\n return '.';\n },\n currency: {\n symbol: '¥',\n position: 'prefix'\n },\n defaults: {\n currencyFormat: ',4 a'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: '$ ,0.00',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: '$ ,0'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : Korean\n * author (numbro.js Version): Randy Wilander : https://github.com/rocketedaway\n * author (numeral.js Version) : Rich Daley : https://github.com/pedantic-git\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'ko-KR',\n cultureCode: 'ko-KR',\n delimiters: {\n thousands: ',',\n decimal: '.'\n },\n abbreviations: {\n thousand: '천',\n million: '백만',\n billion: '십억',\n trillion: '일조'\n },\n ordinal: function () {\n return '.';\n },\n currency: {\n symbol: '₩'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : Latvian\n * locale: Latvia\n * author : Lauris Bukšis-Haberkorns : https://github.com/Lafriks\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'lv-LV',\n cultureCode: 'lv-LV',\n delimiters: {\n thousands: ' ',\n decimal: ','\n },\n abbreviations: {\n thousand: ' tūkst.',\n million: ' milj.',\n billion: ' mljrd.',\n trillion: ' trilj.'\n },\n ordinal: function () {\n return '.';\n },\n currency: {\n symbol: '€',\n position: 'postfix'\n },\n defaults: {\n currencyFormat: ',4 a'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: ',0.00 $',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: ',0 $'\n }\n };\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language: Norwegian Bokmål\n * locale: Norway\n * author : Benjamin Van Ryseghem\n */\n(function() {\n 'use strict';\n\n var language = {\n langLocaleCode: 'nb-NO',\n cultureCode: 'nb-NO',\n delimiters: {\n thousands: ' ',\n decimal: ','\n },\n abbreviations: {\n thousand: 't',\n million: 'M',\n billion: 'md',\n trillion: 't'\n },\n currency: {\n symbol: 'kr',\n position: 'postfix'\n },\n defaults: {\n currencyFormat: ',4 a'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: ',0.00 $',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: ',0 $'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : Dutch\n * locale: Belgium\n * author : Dieter Luypaert : https://github.com/moeriki\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'nl-BE',\n cultureCode: 'nl-BE',\n delimiters: {\n thousands: ' ',\n decimal : ','\n },\n abbreviations: {\n thousand : 'k',\n million : 'mln',\n billion : 'mld',\n trillion : 'bln'\n },\n ordinal : function (number) {\n var remainder = number % 100;\n return (number !== 0 && remainder <= 1 || remainder === 8 || remainder >= 20) ? 'ste' : 'de';\n },\n currency: {\n symbol: '€',\n position: 'postfix'\n },\n defaults: {\n currencyFormat: ',4 a'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: ',0.00 $',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: ',0 $'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : Dutch\n * locale: Netherlands\n * author : Dave Clayton : https://github.com/davedx\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'nl-NL',\n cultureCode: 'nl-NL',\n delimiters: {\n thousands: '.',\n decimal : ','\n },\n abbreviations: {\n thousand : 'k',\n million : 'mln',\n billion : 'mrd',\n trillion : 'bln'\n },\n ordinal : function (number) {\n var remainder = number % 100;\n return (number !== 0 && remainder <= 1 || remainder === 8 || remainder >= 20) ? 'ste' : 'de';\n },\n currency: {\n symbol: '€',\n position: 'postfix'\n },\n defaults: {\n currencyFormat: ',4 a'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: ',0.00 $',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: ',0 $'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : Polish\n * locale : Poland\n * author : Dominik Bulaj : https://github.com/dominikbulaj\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'pl-PL',\n cultureCode: 'pl-PL',\n delimiters: {\n thousands: ' ',\n decimal: ','\n },\n abbreviations: {\n thousand: 'tys.',\n million: 'mln',\n billion: 'mld',\n trillion: 'bln'\n },\n ordinal: function () {\n return '.';\n },\n currency: {\n symbol: ' zł',\n position: 'postfix'\n },\n defaults: {\n currencyFormat: ',4 a'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: ',0.00 $',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: ',0 $'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : Portuguese\n * locale : Brazil\n * author : Ramiro Varandas Jr : https://github.com/ramirovjr\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'pt-BR',\n cultureCode: 'pt-BR',\n delimiters: {\n thousands: '.',\n decimal: ','\n },\n abbreviations: {\n thousand: 'mil',\n million: 'milhões',\n billion: 'b',\n trillion: 't'\n },\n ordinal: function () {\n return 'º';\n },\n currency: {\n symbol: 'R$',\n position: 'prefix'\n },\n defaults: {\n currencyFormat: ',4 a'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: ',0.00 $',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: ',0 $'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : Portuguese\n * locale : Portugal\n * author : Diogo Resende : https://github.com/dresende\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'pt-PT',\n cultureCode: 'pt-PT',\n delimiters: {\n thousands: ' ',\n decimal: ','\n },\n abbreviations: {\n thousand: 'k',\n million: 'm',\n billion: 'b',\n trillion: 't'\n },\n ordinal : function () {\n return 'º';\n },\n currency: {\n symbol: '€',\n position: 'postfix'\n },\n defaults: {\n currencyFormat: ',4 a'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: ',0.00 $',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: ',0 $'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : Russian\n * locale : Russsia\n * author : Anatoli Papirovski : https://github.com/apapirovski\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'ru-RU',\n cultureCode: 'ru-RU',\n delimiters: {\n thousands: ' ',\n decimal: ','\n },\n abbreviations: {\n thousand: 'тыс.',\n million: 'млн',\n billion: 'b',\n trillion: 't'\n },\n ordinal: function () {\n // not ideal, but since in Russian it can taken on\n // different forms (masculine, feminine, neuter)\n // this is all we can do\n return '.';\n },\n currency: {\n symbol: 'руб.',\n position: 'postfix'\n },\n defaults: {\n currencyFormat: ',4 a'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: ',0.00 $',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: ',0 $'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : Russian\n * locale : Ukraine\n * author : Anatoli Papirovski : https://github.com/apapirovski\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'ru-UA',\n cultureCode: 'ru-UA',\n delimiters: {\n thousands: ' ',\n decimal: ','\n },\n abbreviations: {\n thousand: 'тыс.',\n million: 'млн',\n billion: 'b',\n trillion: 't'\n },\n ordinal: function () {\n // not ideal, but since in Russian it can taken on\n // different forms (masculine, feminine, neuter)\n // this is all we can do\n return '.';\n },\n currency: {\n symbol: '\\u20B4',\n position: 'postfix'\n },\n defaults: {\n currencyFormat: ',4 a'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: ',0.00 $',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: ',0 $'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : Slovak\n * locale : Slovakia\n * author : Ahmed Al Hafoudh : http://www.freevision.sk\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'sk-SK',\n cultureCode: 'sk-SK',\n delimiters: {\n thousands: ' ',\n decimal: ','\n },\n abbreviations: {\n thousand: 'tis.',\n million: 'mil.',\n billion: 'b',\n trillion: 't'\n },\n ordinal: function () {\n return '.';\n },\n currency: {\n symbol: '€',\n position: 'postfix'\n },\n defaults: {\n currencyFormat: ',4 a'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: ',0.00 $',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: ',0 $'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : Swedish\n * locale : Sweden\n * author : Benjamin Van Ryseghem (benjamin.vanryseghem.com)\n */\n(function() {\n 'use strict';\n\n var language = {\n langLocaleCode: 'sv-SE',\n cultureCode: 'sv-SE',\n delimiters: {\n thousands: ' ',\n decimal: ','\n },\n abbreviations: {\n thousand: 't',\n million: 'M',\n billion: 'md',\n trillion: 'tmd'\n },\n currency: {\n symbol: 'kr',\n position: 'postfix'\n },\n defaults: {\n currencyFormat: ',4 a'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: ',0.00 $',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: ',0 $'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : Thai\n * locale : Thailand\n * author : Sathit Jittanupat : https://github.com/jojosati\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'th-TH',\n cultureCode: 'th-TH',\n delimiters: {\n thousands: ',',\n decimal: '.'\n },\n abbreviations: {\n thousand: 'พัน',\n million: 'ล้าน',\n billion: 'พันล้าน',\n trillion: 'ล้านล้าน'\n },\n ordinal: function () {\n return '.';\n },\n currency: {\n symbol: '฿',\n position: 'postfix'\n },\n defaults: {\n currencyFormat: ',4 a'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: ',0.00 $',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: ',0 $'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : Turkish\n * locale : Turkey\n * author : Ecmel Ercan : https://github.com/ecmel,\n * Erhan Gundogan : https://github.com/erhangundogan,\n * Burak Yiğit Kaya: https://github.com/BYK\n */\n(function() {\n 'use strict';\n\n var suffixes = {\n 1: '\\'inci',\n 5: '\\'inci',\n 8: '\\'inci',\n 70: '\\'inci',\n 80: '\\'inci',\n\n 2: '\\'nci',\n 7: '\\'nci',\n 20: '\\'nci',\n 50: '\\'nci',\n\n 3: '\\'üncü',\n 4: '\\'üncü',\n 100: '\\'üncü',\n\n 6: '\\'ncı',\n\n 9: '\\'uncu',\n 10: '\\'uncu',\n 30: '\\'uncu',\n\n 60: '\\'ıncı',\n 90: '\\'ıncı'\n },\n language = {\n langLocaleCode: 'tr-TR',\n cultureCode: 'tr-TR',\n delimiters: {\n thousands: '.',\n decimal: ','\n },\n abbreviations: {\n thousand: 'bin',\n million: 'milyon',\n billion: 'milyar',\n trillion: 'trilyon'\n },\n ordinal: function(number) {\n if (number === 0) { // special case for zero\n return '\\'ıncı';\n }\n\n var a = number % 10,\n b = number % 100 - a,\n c = number >= 100 ? 100 : null;\n\n return suffixes[a] || suffixes[b] || suffixes[c];\n },\n currency: {\n symbol: '\\u20BA',\n position: 'postfix'\n },\n defaults: {\n currencyFormat: ',4 a'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: ',0.00 $',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: ',0 $'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : Ukrainian\n * locale : Ukraine\n * author : Michael Piefel : https://github.com/piefel (with help from Tetyana Kuzmenko)\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'uk-UA',\n cultureCode: 'uk-UA',\n delimiters: {\n thousands: ' ',\n decimal: ','\n },\n abbreviations: {\n thousand: 'тис.',\n million: 'млн',\n billion: 'млрд',\n trillion: 'блн'\n },\n ordinal: function () {\n // not ideal, but since in Ukrainian it can taken on\n // different forms (masculine, feminine, neuter)\n // this is all we can do\n return '';\n },\n currency: {\n symbol: '\\u20B4',\n position: 'postfix'\n },\n defaults: {\n currencyFormat: ',4 a'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: ',0.00 $',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: ',0 $'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : simplified chinese\n * locale : China\n * author : badplum : https://github.com/badplum\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'zh-CN',\n cultureCode: 'zh-CN',\n delimiters: {\n thousands: ',',\n decimal: '.'\n },\n abbreviations: {\n thousand: '千',\n million: '百万',\n billion: '十亿',\n trillion: '兆'\n },\n ordinal: function () {\n return '.';\n },\n currency: {\n symbol: '¥',\n position: 'prefix'\n },\n defaults: {\n currencyFormat: ',4 a'\n },\n formats: {\n fourDigits: '4 a',\n fullWithTwoDecimals: '$ ,0.00',\n fullWithTwoDecimalsNoCurrency: ',0.00',\n fullWithNoDecimals: '$ ,0'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n","/*!\n * numbro.js language configuration\n * language : Chinese (Taiwan)\n * author (numbro.js Version): Randy Wilander : https://github.com/rocketedaway\n * author (numeral.js Version) : Rich Daley : https://github.com/pedantic-git\n */\n(function () {\n 'use strict';\n\n var language = {\n langLocaleCode: 'zh-TW',\n cultureCode: 'zh-TW',\n delimiters: {\n thousands: ',',\n decimal: '.'\n },\n abbreviations: {\n thousand: '千',\n million: '百萬',\n billion: '十億',\n trillion: '兆'\n },\n ordinal: function () {\n return '第';\n },\n currency: {\n symbol: 'NT$'\n }\n };\n\n // CommonJS\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = language;\n }\n // Browser\n if (typeof window !== 'undefined' && window.numbro && window.numbro.culture) {\n window.numbro.culture(language.cultureCode, language);\n }\n}.call(typeof window === 'undefined' ? this : window));\n"],"sourceRoot":""}