{"version":3,"sources":["webpack:///./node_modules/classnames/index.js","webpack:///./node_modules/libphonenumber-js/metadata.min.json.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/isObject.js","webpack:///./node_modules/libphonenumber-js/es6/normalizeArguments.js","webpack:///./node_modules/libphonenumber-js/es6/constants.js","webpack:///./node_modules/libphonenumber-js/es6/ParseError.js","webpack:///./node_modules/libphonenumber-js/es6/tools/semver-compare.js","webpack:///./node_modules/libphonenumber-js/es6/metadata.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/extension/createExtensionPattern.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/isViablePhoneNumber.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/extension/extractExtension.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/parseDigits.js","webpack:///./node_modules/libphonenumber-js/es6/parseIncompletePhoneNumber.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/mergeArrays.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/checkNumberLength.js","webpack:///./node_modules/libphonenumber-js/es6/isPossible.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/matchesEntirely.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/getNumberType.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/getPossibleCountriesForNumber.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/applyInternationalSeparatorStyle.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/formatNationalNumberUsingFormat.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/getIddPrefix.js","webpack:///./node_modules/libphonenumber-js/es6/format.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/RFC3966.js","webpack:///./node_modules/libphonenumber-js/es6/PhoneNumber.js","webpack:///./node_modules/libphonenumber-js/es6/isValid.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/stripIddPrefix.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/extractNationalNumber.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCode.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/getCountryByNationalNumber.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/getCountryByCallingCode.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/extractPhoneContext.js","webpack:///./node_modules/libphonenumber-js/es6/helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js","webpack:///./node_modules/libphonenumber-js/es6/parse.js","webpack:///./node_modules/libphonenumber-js/es6/parsePhoneNumberWithError_.js","webpack:///./node_modules/libphonenumber-js/es6/parsePhoneNumber_.js","webpack:///./node_modules/libphonenumber-js/es6/parsePhoneNumber.js","webpack:///./node_modules/libphonenumber-js/es6/isValidPhoneNumber.js","webpack:///./node_modules/libphonenumber-js/es6/getCountries.js","webpack:///./node_modules/react-phone-number-input/locale/en.json.js","webpack:///./node_modules/react-phone-number-input/modules/PropTypes.js","webpack:///./node_modules/input-format/modules/helpers.js","webpack:///./node_modules/input-format/modules/closeBraces.js","webpack:///./node_modules/input-format/modules/templateFormatter.js","webpack:///./node_modules/input-format/modules/format.js","webpack:///./node_modules/input-format/modules/dom.js","webpack:///./node_modules/input-format/modules/inputControl.js","webpack:///./node_modules/input-format/modules/parse.js","webpack:///./node_modules/input-format/modules/edit.js","webpack:///./node_modules/input-format/modules/react/useInput.js","webpack:///./node_modules/input-format/modules/react/Input.js","webpack:///./node_modules/libphonenumber-js/es6/AsYouTypeState.js","webpack:///./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.util.js","webpack:///./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.complete.js","webpack:///./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.PatternParser.js","webpack:///./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.PatternMatcher.js","webpack:///./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.js","webpack:///./node_modules/libphonenumber-js/es6/AsYouTypeParser.js","webpack:///./node_modules/libphonenumber-js/es6/AsYouType.js","webpack:///./node_modules/react-phone-number-input/modules/helpers/inputValuePrefix.js","webpack:///./node_modules/react-phone-number-input/modules/helpers/parsePhoneNumberCharacter.js","webpack:///./node_modules/react-phone-number-input/modules/useInputKeyDownHandler.js","webpack:///./node_modules/react-phone-number-input/modules/InputSmart.js","webpack:///./node_modules/react-phone-number-input/modules/InputBasic.js","webpack:///./node_modules/libphonenumber-js/es6/formatIncompletePhoneNumber.js","webpack:///./node_modules/country-flag-icons/modules/unicode.js","webpack:///./node_modules/react-phone-number-input/modules/CountrySelect.js","webpack:///./node_modules/react-phone-number-input/modules/Flag.js","webpack:///./node_modules/react-phone-number-input/modules/InternationalIcon.js","webpack:///./node_modules/react-phone-number-input/modules/helpers/isE164Number.js","webpack:///./node_modules/react-phone-number-input/modules/helpers/countries.js","webpack:///./node_modules/react-phone-number-input/modules/CountryIcon.js","webpack:///./node_modules/react-phone-number-input/modules/useExternalRef.js","webpack:///./node_modules/react-phone-number-input/modules/helpers/getInternationalPhoneNumberPrefix.js","webpack:///./node_modules/react-phone-number-input/modules/helpers/phoneInputHelpers.js","webpack:///./node_modules/react-phone-number-input/modules/helpers/getPhoneInputWithCountryStateUpdateFromNewProps.js","webpack:///./node_modules/react-phone-number-input/modules/PhoneInputWithCountry.js","webpack:///./node_modules/react-phone-number-input/modules/PhoneInputWithCountryDefault.js","webpack:///./node_modules/react-phone-number-input/min/index.js"],"names":["hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","appendClass","parseValue","Array","isArray","apply","toString","Object","prototype","includes","key","call","value","newClass","module","exports","default","objectConstructor","constructor","isObject","object","ownKeys","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_defineProperty","obj","defineProperty","configurable","writable","_slicedToArray","arr","_arrayWithHoles","_i","Symbol","iterator","_s","_e","_arr","_n","_d","next","done","err","_iterableToArrayLimit","o","minLen","_arrayLikeToArray","n","slice","name","from","test","_unsupportedIterableToArray","TypeError","_nonIterableRest","len","arr2","normalizeArguments","args","text","options","metadata","_Array$prototype$slic2","arg_1","arg_2","arg_3","arg_4","Error","concat","undefined","target","source","forEach","getOwnPropertyDescriptors","defineProperties","_objectSpread","defaultCountry","VALID_DIGITS","VALID_PUNCTUATION","_typeof","_defineProperties","props","descriptor","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","_wrapNativeSuper","Class","_cache","Map","fn","Function","indexOf","has","get","set","Wrapper","_construct","_getPrototypeOf","this","create","_setPrototypeOf","Parent","_isNativeReflectConstruct","Reflect","construct","a","instance","bind","sham","Proxy","Boolean","valueOf","e","p","setPrototypeOf","__proto__","getPrototypeOf","ParseError","_Error","subClass","superClass","_inherits","Derived","hasNativeReflectConstruct","Constructor","protoProps","staticProps","_super","result","Super","NewTarget","code","_this","_classCallCheck","split","b","pa","pb","na","Number","nb","isNaN","CALLING_CODE_REG_EXP","Metadata","countries","join","typeOf","validateMetadata","setVersion","_","countryCode","v1","v2","v3","nonGeographic","nonGeographical","country","getCountryMetadata","callingCode","getCountryCodesForCallingCode","countryCodes","countryCallingCodes","selectNumberingPlan","hasCountry","numberingPlan","NumberingPlan","hasCallingCode","getNumberingPlanMetadata","getCountryCodeForCallingCode","IDDPrefix","defaultIDDPrefix","nationalNumberPattern","possibleLengths","formats","nationalPrefixForParsing","nationalPrefixTransformRule","leadingDigits","hasTypes","_type","type","ext","country_phone_code_to_countries","country_calling_codes","globalMetadataObject","_getFormats","getDefaultCountryMetadataForRegion","map","Format","_getNationalPrefixFormattingRule","_nationalPrefixForParsing","nationalPrefix","_getNationalPrefixIsOptionalWhenFormatting","types","_type2","Type","format","_format","nationalPrefixFormattingRule","nationalPrefixIsOptionalWhenFormattingInNationalFormat","usesNationalPrefix","FIRST_GROUP_ONLY_PREFIX_PATTERN","getCountryCallingCode","countryCallingCode","isSupportedCountry","version","v4","maxLength","createExtensionPattern","purpose","possibleSeparatorsBetweenNumberAndExtLabel","possibleSeparatorsNumberExtLabelNoComma","VALID_PHONE_NUMBER","VALID_PHONE_NUMBER_START_REG_EXP","RegExp","VALID_PHONE_NUMBER_WITH_EXTENSION","VALID_PHONE_NUMBER_PATTERN","isViablePhoneNumber","number","EXTN_PATTERN","_createForOfIteratorHelperLoose","allowArrayLike","it","DIGITS","parseDigit","character","parseDigits","string","_step","_iterator","digit","parseIncompletePhoneNumber","parsePhoneNumberCharacter","prevParsedCharacters","emitEvent","checkNumberLength","nationalNumber","checkNumberLengthForType","type_info","possible_lengths","mobile_type","merged","element","sort","mergeArrays","actual_length","minimum_length","isPossibleNumber","matchesEntirely","regular_expression","NON_FIXED_LINE_PHONE_TYPES","getNumberType","input","phone","isNumberTypeEqualTo","pattern","getPossibleCountriesForNumber","possibleCountries","_metadata","couldNationalNumberBelongToCountry","applyInternationalSeparatorStyle","formattedNumber","replace","trim","FIRST_GROUP_PATTERN","formatNationalNumberUsingFormat","_ref","useInternationalFormat","withNationalPrefix","carrierCode","internationalFormat","SINGLE_IDD_PREFIX_REG_EXP","DEFAULT_OPTIONS","formatExtension","extension","formatNumber","addExtension","formatNationalNumber","formatRFC3966","fromCountry","iddPrefix","countryMetadata","getIddPrefix","formatIDD","formatAs","availableFormats","nationalNnumber","leadingDigitsPatterns","lastLeadingDigitsPattern","search","chooseFormatForNumber","PhoneNumber","countryOrCountryCallingCode","_getCountryAndCountry","metadataJson","getCountryAndCountryCallingCode","getMetadata","isNonGeographicCallingCode","phoneNumber","CAPTURING_DIGIT_PATTERN","stripIddPrefix","IDDPrefixPattern","matchedGroups","match","extractNationalNumberFromPossiblyIncompleteNumber","prefixPattern","prefixMatch","exec","capturedGroupsCount","hasCapturedGroups","prefixBeforeNationalNumber","possiblePositionOfTheFirstCapturedGroup","extractNationalNumber","_extractNationalNumbe","nationalNumberBefore","nationalNumberAfter","shouldHaveExtractedNationalPrefix","isPossibleIncompleteNationalNumber","extractCountryCallingCodeFromInternationalNumberWithoutPlusSign","possibleShorterNumber","possibleShorterNationalNumber","isNumberWithIddPrefix","numberWithoutIDD","_extractCountryCallin","shorterNumber","countryCallingCodeSource","_countryCallingCode","getCountryByNationalNumber","nationalPhoneNumber","getCountryByCallingCode","RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_","RFC3966_DOMAINNAME_PATTERN_","extractFormattedPhoneNumberFromPossibleRfc3966NumberUri","numberToParse","phoneNumberString","extractFormattedPhoneNumber","phoneContext","numberToExtractFrom","indexOfPhoneContext","phoneContextStart","phoneContextEnd","substring","extractPhoneContext","isPhoneContextValid","charAt","indexOfNationalNumber","indexOfRfc3966Prefix","indexOfIsdn","PHONE_NUMBER_START_PATTERN","AFTER_PHONE_NUMBER_END_PATTERN","_parseInput","extract","throwOnError","startsAt","_extractFormattedPhoneNumber","isViablePhoneNumberStart","error","withExtensionStripped","start","numberWithoutExtension","matches","extractExtension","parseInput","formattedPhoneNumber","_parsePhoneNumber","defaultCallingCode","exactCountry","parsePhoneNumber","hasSelectedNumberingPlan","__countryCallingCodeSource","valid","extended","possible","parsePhoneNumberWithError","_normalizeArguments","isValidPhoneNumber","isValid","getCountries","shape","isRequired","objectOf","count_occurences","symbol","count","closeBraces","retained_template","template","placeholder","empty_placeholder","cut_before","opening_braces","closing_braces","dangling_braces","caret","formatter","shouldCloseBraces","placeholdersCountInTemplate","characterIndexInValue","templateWithFilledInPlaceholders","index","found","possibly_last_input_character_index","isReadOnly","hasAttribute","getSelection","selectionStart","selectionEnd","end","Keys","setCaretPosition","caret_position","navigator","ANDROID_USER_AGENT_REG_EXP","userAgent","isAndroid","setSelectionRange","setTimeout","event","_parse","on_change","operation","keyCode","getOperation","preventDefault","selection","eraseSelection","formatInputText","_parse2","parse_character","context","focused_input_character_index","newValueAndCaret","edit","formatted","_excluded","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","useInput","ref","parse","defaultValue","_ref$controlled","controlled","onChange","onKeyDown","rest","internalRef","setRef","current","_onChange","_onKeyDown","defaultPrevented","commonProps","isEmptyValue","_ref$inputComponent","inputComponent","InputComponent","_ref$type","inputProps","createElement","forwardRef","propTypes","func","elementType","bool","onCut","onPaste","AsYouTypeState","onCountryChange","onCallingCodeChange","_ref2","international","missingPlus","digits","resetNationalSignificantNumber","initCountryAndCallingCode","nationalSignificantNumber","getNationalDigits","nationalSignificantNumberMatchesInput","complexPrefixBeforeNationalSignificantNumber","properties","_Object$keys","setCountry","setCallingCode","nextDigits","DIGIT_PLACEHOLDER_MATCHER","repeat","times","cutAndStripNonPairedParens","cutBeforeIndex","pop","cleared_string","_dangling_braces","stripNonPairedParens","formatCompleteNumber","state","shouldTryNationalPrefixFormattingRule","getSeparatorAfterNationalPrefix","useNationalPrefixFormattingRule","formatNationalNumberWithAndWithoutNationalPrefixFormattingRule","_ref3","formattedNationalNumber","isValidFormattedNationalNumber","PatternParser","or","instructions","parsePattern","_this$context$","branches","op","expandSingleElementArray","OPERATOR","operator","before","rightPart","startContext","getContext","endContext","oneOfSet","parseOneOfSet","ILLEGAL_CHARACTER_REGEXP","values","prevValue","charCodeAt","nextValue","String","fromCharCode","array","PatternMatcher","matchTree","allowOverflow","_match","matchedChars","overflow","characters","tree","last","characterString","partialMatch","restCharacters","JSON","stringify","_result","_step2","_iterator2","_char","LONGEST_DUMMY_PHONE_NUMBER","NATIONAL_PREFIX_SEPARATORS_PATTERN","CREATE_CHARACTER_CLASS_PATTERN","CREATE_STANDALONE_DIGIT_PATTERN","NON_ALTERING_FORMAT_REG_EXP","AsYouTypeFormatter","resetFormat","chosenFormat","nationalNumberTemplate","populatedNationalNumberTemplate","populatedNationalNumberTemplatePosition","isNANP","matchingFormats","narrowDownMatchingFormats","formattedCompleteNumber","setNationalNumberTemplate","lastIndexOf","formatNationalNumberWithNextDigits","previouslyChosenFormat","newlyChosenFormat","chooseFormat","formatNextNationalNumberDigits","_this2","leadingDigitsPatternIndex","formatSuits","formatMatches","nationalPrefixIsMandatoryWhenFormattingInNationalFormat","leadingDigitsPatternsCount","Math","min","leadingDigitsPattern","console","_this3","_loop","getFormatFormat","createTemplateForFormat","_ret","getTemplateForFormat","spacing","internationalPrefix","getInternationalPrefixBeforeCountryCallingCode","getDigitsWithoutInternationalPrefix","_ref4","strictPattern","nationalNumberDummyDigits","nationalPrefixIncludedInTemplate","numberFormat","numberFormatWithNationalPrefix","position","populateTemplateWithDigits","_ref5","VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN","VALID_FORMATTED_PHONE_NUMBER_PART","AFTER_PHONE_NUMBER_DIGITS_END_PATTERN","COMPLEX_NATIONAL_PREFIX","AsYouTypeParser","onNationalSignificantNumberChange","justLeadingPlus","_extractFormattedDigi","_extractFormattedDigi4","extractedNumber","hasPlus","_extractFormattedDigitsAndPlus","formattedDigits","extractFormattedDigitsAndPlus","_extractFormattedDigi2","startInternationalNumber","inputDigits","hasReceivedThreeLeadingDigits","appendDigits","extractIddPrefix","isWaitingForCountryCallingCode","extractCountryCallingCode","appendNationalSignificantNumberDigits","hasExtractedNationalSignificantNumber","extractNationalSignificantNumber","stateUpdate","update","couldPossiblyExtractAnotherNationalSignificantNumber","nationalDigits","setState","onExtractedNationalNumber","prevNationalSignificantNumber","_extractNationalNumbe2","nationalSignificantNumberIndex","extractAnotherNationalSignificantNumber","fixMissingPlus","extractCallingCodeAndNationalSignificantNumber","_extractCountryCallin2","newCallingCode","AsYouType","optionsOrDefaultCountry","_this$getCountryAndCa2","getCountryAndCallingCode","reset","_this$parser$input","parser","formattedOutput","determineTheCountryIfNeeded","reExtractNationalSignificantNumber","getFullNumber","getNonFormattedNumber","isInternational","getCallingCode","_getCountry","isCountryCallingCodeAmbiguous","determineTheCountry","prefix","_this$state","getNonFormattedNationalNumberWithPrefix","_this$state2","_this$state3","_callingCode","ambiguousCountries","getNumber","isPossible","getTemplate","getNonFormattedTemplate","getPrefixForFormattingValueAsPhoneNumber","inputFormat","removePrefixFromFormattedPhoneNumber","parsePhoneNumberCharacter_","ignoreRest","eventName","useInputKeyDownHandler","BACKSPACE_KEY_CODE","HTMLInputElement","LEADING_PLUS","_extends","assign","defaultMetadata","InputSmart","_ref$metadata","withCountryCallingCode","oneOf","InputBasic","Input","newValue","formatIncompletePhoneNumber","getRegionalIndicatorSymbol","letter","fromCodePoint","toUpperCase","_excluded2","CountrySelect","disabled","readOnly","onChange_","getSelectedOption","label","divider","style","DIVIDER_STYLE","arrayOf","fontSize","backgroundColor","color","CountrySelectWithIcon","className","Icon","iconComponent","_ref3$arrowComponent","getIconAspectRatio","arrowComponent","Arrow","DefaultArrowComponent","unicodeFlags","selectedOption","aspectRatio","option","isSameOptionValue","value1","value2","countryName","flags","flagUrl","title","alt","role","src","toLowerCase","_excluded3","InternationalIcon1x1","InternationalIcon3x2","xmlns","viewBox","stroke","fill","strokeWidth","strokeMiterlimit","strokeLinecap","d","x1","y1","x2","y2","validateE164Number","isE164Number","isCountrySupportedWithError","getSupportedCountries","createCountryIconComponent","FlagComponent","flagComponent","InternationalIcon","internationalIcon","CountryIcon","_aspectRatio","setRefsValue","refs","setRefValue","getInternationalPhoneNumberPrefix","getPhoneDigitsForNewCountry","phoneDigits","prevCountry","newCountry","useNationalFormat","countryCallingCodePrefix","country_calling_code","stripCountryCallingCode","newCountryPrefix","e164","asYouType","getNumberValue","partial_national_significant_number","getNationalSignificantNumberDigits","trimNumber","nationalSignificantNumberPart","overflowDigitsCount","getMaxNumberLength","getCountryForPartialE164Number","partialE164Number","latestCountrySelectedByUser","required","derived_country","getCountry","getCountryFromPossiblyIncompleteInternationalPhoneNumber","couldNumberBelongToCountry","convertInternationalPhoneDigitsToNational","formatNational","compareStrings","locales","localeCompare","intlPhoneNumberPrefix","getInitialPhoneDigits","_ref6","generateNationalNumberDigits","r","t","toPrimitive","_toPrimitive","valuesAreEqual","_callSuper","_React$PureComponent","PhoneNumberInput_","inputRef","_this$props","focusInputOnCountrySelection","newPhoneDigits","focus","hasUserSelectedACountry","_phoneDigits","_this$props2","addInternationalOption","limitMaxLength","countryCallingCodeEditable","prevPhoneDigits","currentlySelectedCountry","_onPhoneDigitsChange","countryRequired","getAnyCountry","_value","onPhoneDigitsChange","getFirstSupportedCountry","forceRerender","isFocused","_onFocus","onFocus","onBlur","_onBlur","countrySelectProps","createRef","_this$props3","_international","labels","_addInternationalOption","displayInitialValueAsLocalNumber","initialValueFormat","_this$props4","_defaultCountry","_countries","preSelectedCountry","getPreSelectedCountry","prevProps","newDefaultCountry","newReset","prevDefaultCountry","prevReset","_getInitialPhoneDigits","parameters","isNewDefaultCountrySupported","noValueHasBeenEnteredByTheUser","parsedCountry","userCountrySelectionHistoryStateUpdate","supportedCountries","getPhoneInputWithCountryStateUpdateFromNewProps","selectedCountry","prevState","_this$props5","countryOptionsOrder","useMemoCountrySelectOptions","order","optionsOnTop","optionsOnBottom","appendTo","splice","sortCountryOptions","countryNames","compareStringsLocales","_compareStrings","countrySelectOptions","unshift","ZZ","countryOptions","getSupportedCountryOptions","generator","dependencies","countrySelectOptionsMemoDependencies","areEqualArrays","countrySelectOptionsMemo","getCountrySelectOptions","_this$props6","autoComplete","numberInputProps","smartCaret","CountrySelectComponent","countrySelectComponent","ContainerComponent","containerComponent","containerComponentProps","onCountryFocus","onCountryBlur","setInputRef","PureComponent","PhoneNumberInput","defaultProps","withDefaultProps","oneOfType","any","createPhoneInput","PhoneInputDefault","_ref$labels","_arguments"],"mappings":"8EAAA;;;;;GAOC,WACA,aAEA,IAAIA,EAAS,GAAGC,eAEhB,SAASC,IAGR,IAFA,IAAIC,EAAU,GAELC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAC1C,IAAIG,EAAMF,UAAUD,GAChBG,IACHJ,EAAUK,EAAYL,EAASM,EAAWF,KAI5C,OAAOJ,EAGR,SAASM,EAAYF,GACpB,GAAmB,iBAARA,GAAmC,iBAARA,EACrC,OAAOA,EAGR,GAAmB,iBAARA,EACV,MAAO,GAGR,GAAIG,MAAMC,QAAQJ,GACjB,OAAOL,EAAWU,MAAM,KAAML,GAG/B,GAAIA,EAAIM,WAAaC,OAAOC,UAAUF,WAAaN,EAAIM,SAASA,WAAWG,SAAS,iBACnF,OAAOT,EAAIM,WAGZ,IAAIV,EAAU,GAEd,IAAK,IAAIc,KAAOV,EACXP,EAAOkB,KAAKX,EAAKU,IAAQV,EAAIU,KAChCd,EAAUK,EAAYL,EAASc,IAIjC,OAAOd,EAGR,SAASK,EAAaW,EAAOC,GAC5B,OAAKA,EAIDD,EACIA,EAAQ,IAAMC,EAGfD,EAAQC,EAPPD,EAU4BE,EAAOC,SAC3CpB,EAAWqB,QAAUrB,EACrBmB,EAAOC,QAAUpB,QAKhB,KAFwB,EAAF,WACtB,OAAOA,GACP,QAFoB,OAEpB,aAjEH,I,2ICJe,OAAC,QAAU,EAAE,sBAAwB,CAAC,EAAI,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,EAAI,CAAC,KAAK,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,KAAK,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,KAAK,KAAK,KAAK,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,KAAK,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,KAAK,KAAK,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,C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CN,GAAM,cACN,GAAM,gBACN,GAAM,eACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,aACN,GAAM,OACN,GAAM,aACN,GAAM,UACN,GAAM,mBACN,GAAM,SACN,GAAM,iBACN,GAAM,UACN,GAAM,WACN,GAAM,UACN,GAAM,WACN,GAAM,qBACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,QACN,GAAM,WACN,GAAM,UACN,GAAM,OACN,GAAM,mBACN,GAAM,iCACN,GAAM,gBACN,GAAM,SACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,UACN,GAAM,gBACN,GAAM,WACN,GAAM,QACN,GAAM,YACN,GAAM,YACN,GAAM,SACN,GAAM,SACN,GAAM,aACN,GAAM,oBACN,GAAM,SACN,GAAM,+CACN,GAAM,YACN,GAAM,OACN,GAAM,gBACN,GAAM,SACN,GAAM,YACN,GAAM,oCACN,GAAM,WACN,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,YACN,GAAM,UACN,GAAM,SACN,GAAM,cACN,GAAM,QACN,GAAM,iCACN,GAAM,OACN,GAAM,OACN,GAAM,UACN,GAAM,QACN,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,aACN,GAAM,WACN,GAAM,WACN,GAAM,UACN,GAAM,wBACN,GAAM,cACN,GAAM,cACN,GAAM,SACN,GAAM,iBACN,GAAM,aACN,GAAM,OACN,GAAM,UACN,GAAM,cACN,GAAM,gBACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,YACN,GAAM,aACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,aACN,GAAM,6BACN,GAAM,aACN,GAAM,mBACN,GAAM,kBACN,GAAM,OACN,GAAM,UACN,GAAM,WACN,GAAM,QACN,GAAM,2BACN,GAAM,aACN,GAAM,aACN,GAAM,aACN,GAAM,QACN,GAAM,YACN,GAAM,WACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,aACN,GAAM,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","file":"habitat.3.component.js","sourcesContent":["/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// This file is a workaround for a bug in web browsers' \"native\"\n// ES6 importing system which is uncapable of importing \"*.json\" files.\n// https://github.com/catamphetamine/libphonenumber-js/issues/239\nexport default {\"version\":4,\"country_calling_codes\":{\"1\":[\"US\",\"AG\",\"AI\",\"AS\",\"BB\",\"BM\",\"BS\",\"CA\",\"DM\",\"DO\",\"GD\",\"GU\",\"JM\",\"KN\",\"KY\",\"LC\",\"MP\",\"MS\",\"PR\",\"SX\",\"TC\",\"TT\",\"VC\",\"VG\",\"VI\"],\"7\":[\"RU\",\"KZ\"],\"20\":[\"EG\"],\"27\":[\"ZA\"],\"30\":[\"GR\"],\"31\":[\"NL\"],\"32\":[\"BE\"],\"33\":[\"FR\"],\"34\":[\"ES\"],\"36\":[\"HU\"],\"39\":[\"IT\",\"VA\"],\"40\":[\"RO\"],\"41\":[\"CH\"],\"43\":[\"AT\"],\"44\":[\"GB\",\"GG\",\"IM\",\"JE\"],\"45\":[\"DK\"],\"46\":[\"SE\"],\"47\":[\"NO\",\"SJ\"],\"48\":[\"PL\"],\"49\":[\"DE\"],\"51\":[\"PE\"],\"52\":[\"MX\"],\"53\":[\"CU\"],\"54\":[\"AR\"],\"55\":[\"BR\"],\"56\":[\"CL\"],\"57\":[\"CO\"],\"58\":[\"VE\"],\"60\":[\"MY\"],\"61\":[\"AU\",\"CC\",\"CX\"],\"62\":[\"ID\"],\"63\":[\"PH\"],\"64\":[\"NZ\"],\"65\":[\"SG\"],\"66\":[\"TH\"],\"81\":[\"JP\"],\"82\":[\"KR\"],\"84\":[\"VN\"],\"86\":[\"CN\"],\"90\":[\"TR\"],\"91\":[\"IN\"],\"92\":[\"PK\"],\"93\":[\"AF\"],\"94\":[\"LK\"],\"95\":[\"MM\"],\"98\":[\"IR\"],\"211\":[\"SS\"],\"212\":[\"MA\",\"EH\"],\"213\":[\"DZ\"],\"216\":[\"TN\"],\"218\":[\"LY\"],\"220\":[\"GM\"],\"221\":[\"SN\"],\"222\":[\"MR\"],\"223\":[\"ML\"],\"224\":[\"GN\"],\"225\":[\"CI\"],\"226\":[\"BF\"],\"227\":[\"NE\"],\"228\":[\"TG\"],\"229\":[\"BJ\"],\"230\":[\"MU\"],\"231\":[\"LR\"],\"232\":[\"SL\"],\"233\":[\"GH\"],\"234\":[\"NG\"],\"235\":[\"TD\"],\"236\":[\"CF\"],\"237\":[\"CM\"],\"238\":[\"CV\"],\"239\":[\"ST\"],\"240\":[\"GQ\"],\"241\":[\"GA\"],\"242\":[\"CG\"],\"243\":[\"CD\"],\"244\":[\"AO\"],\"245\":[\"GW\"],\"246\":[\"IO\"],\"247\":[\"AC\"],\"248\":[\"SC\"],\"249\":[\"SD\"],\"250\":[\"RW\"],\"251\":[\"ET\"],\"252\":[\"SO\"],\"253\":[\"DJ\"],\"254\":[\"KE\"],\"255\":[\"TZ\"],\"256\":[\"UG\"],\"257\":[\"BI\"],\"258\":[\"MZ\"],\"260\":[\"ZM\"],\"261\":[\"MG\"],\"262\":[\"RE\",\"YT\"],\"263\":[\"ZW\"],\"264\":[\"NA\"],\"265\":[\"MW\"],\"266\":[\"LS\"],\"267\":[\"BW\"],\"268\":[\"SZ\"],\"269\":[\"KM\"],\"290\":[\"SH\",\"TA\"],\"291\":[\"ER\"],\"297\":[\"AW\"],\"298\":[\"FO\"],\"299\":[\"GL\"],\"350\":[\"GI\"],\"351\":[\"PT\"],\"352\":[\"LU\"],\"353\":[\"IE\"],\"354\":[\"IS\"],\"355\":[\"AL\"],\"356\":[\"MT\"],\"357\":[\"CY\"],\"358\":[\"FI\",\"AX\"],\"359\":[\"BG\"],\"370\":[\"LT\"],\"371\":[\"LV\"],\"372\":[\"EE\"],\"373\":[\"MD\"],\"374\":[\"AM\"],\"375\":[\"BY\"],\"376\":[\"AD\"],\"377\":[\"MC\"],\"378\":[\"SM\"],\"380\":[\"UA\"],\"381\":[\"RS\"],\"382\":[\"ME\"],\"383\":[\"XK\"],\"385\":[\"HR\"],\"386\":[\"SI\"],\"387\":[\"BA\"],\"389\":[\"MK\"],\"420\":[\"CZ\"],\"421\":[\"SK\"],\"423\":[\"LI\"],\"500\":[\"FK\"],\"501\":[\"BZ\"],\"502\":[\"GT\"],\"503\":[\"SV\"],\"504\":[\"HN\"],\"505\":[\"NI\"],\"506\":[\"CR\"],\"507\":[\"PA\"],\"508\":[\"PM\"],\"509\":[\"HT\"],\"590\":[\"GP\",\"BL\",\"MF\"],\"591\":[\"BO\"],\"592\":[\"GY\"],\"593\":[\"EC\"],\"594\":[\"GF\"],\"595\":[\"PY\"],\"596\":[\"MQ\"],\"597\":[\"SR\"],\"598\":[\"UY\"],\"599\":[\"CW\",\"BQ\"],\"670\":[\"TL\"],\"672\":[\"NF\"],\"673\":[\"BN\"],\"674\":[\"NR\"],\"675\":[\"PG\"],\"676\":[\"TO\"],\"677\":[\"SB\"],\"678\":[\"VU\"],\"679\":[\"FJ\"],\"680\":[\"PW\"],\"681\":[\"WF\"],\"682\":[\"CK\"],\"683\":[\"NU\"],\"685\":[\"WS\"],\"686\":[\"KI\"],\"687\":[\"NC\"],\"688\":[\"TV\"],\"689\":[\"PF\"],\"690\":[\"TK\"],\"691\":[\"FM\"],\"692\":[\"MH\"],\"850\":[\"KP\"],\"852\":[\"HK\"],\"853\":[\"MO\"],\"855\":[\"KH\"],\"856\":[\"LA\"],\"880\":[\"BD\"],\"886\":[\"TW\"],\"960\":[\"MV\"],\"961\":[\"LB\"],\"962\":[\"JO\"],\"963\":[\"SY\"],\"964\":[\"IQ\"],\"965\":[\"KW\"],\"966\":[\"SA\"],\"967\":[\"YE\"],\"968\":[\"OM\"],\"970\":[\"PS\"],\"971\":[\"AE\"],\"972\":[\"IL\"],\"973\":[\"BH\"],\"974\":[\"QA\"],\"975\":[\"BT\"],\"976\":[\"MN\"],\"977\":[\"NP\"],\"992\":[\"TJ\"],\"993\":[\"TM\"],\"994\":[\"AZ\"],\"995\":[\"GE\"],\"996\":[\"KG\"],\"998\":[\"UZ\"]},\"countries\":{\"AC\":[\"247\",\"00\",\"(?:[01589]\\\\d|[46])\\\\d{4}\",[5,6]],\"AD\":[\"376\",\"00\",\"(?:1|6\\\\d)\\\\d{7}|[135-9]\\\\d{5}\",[6,8,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"[135-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]]],\"AE\":[\"971\",\"00\",\"(?:[4-7]\\\\d|9[0-689])\\\\d{7}|800\\\\d{2,9}|[2-4679]\\\\d{7}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{2,9})\",\"$1 $2\",[\"60|8\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[236]|[479][2-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{5})\",\"$1 $2 $3\",[\"[479]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AF\":[\"93\",\"00\",\"[2-7]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"]],\"0\"],\"AG\":[\"1\",\"011\",\"(?:268|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([457]\\\\d{6})$|1\",\"268$1\",0,\"268\"],\"AI\":[\"1\",\"011\",\"(?:264|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2457]\\\\d{6})$|1\",\"264$1\",0,\"264\"],\"AL\":[\"355\",\"00\",\"(?:700\\\\d\\\\d|900)\\\\d{3}|8\\\\d{5,7}|(?:[2-5]|6\\\\d)\\\\d{7}\",[6,7,8,9],[[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"80|9\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"4[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2358][2-5]|4\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[23578]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"]],\"0\"],\"AM\":[\"374\",\"00\",\"(?:[1-489]\\\\d|55|60|77)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]0\"],\"0 $1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2|3[12]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"1|47\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[3-9]\"],\"0$1\"]],\"0\"],\"AO\":[\"244\",\"00\",\"[29]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[29]\"]]]],\"AR\":[\"54\",\"00\",\"(?:11|[89]\\\\d\\\\d)\\\\d{8}|[2368]\\\\d{9}\",[10,11],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2-$3\",[\"2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])\",\"2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"1\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[68]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[23]\"],\"0$1\",1],[\"(\\\\d)(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9(?:2[2-469]|3[3-578])\",\"9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))\",\"9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 15-$3-$4\",[\"91\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9\"],\"0$1\",0,\"$1 $2 $3-$4\"]],\"0\",0,\"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?\",\"9$1\"],\"AS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|684|900)\\\\d{7}\",[10],0,\"1\",0,\"([267]\\\\d{6})$|1\",\"684$1\",0,\"684\"],\"AT\":[\"43\",\"00\",\"1\\\\d{3,12}|2\\\\d{6,12}|43(?:(?:0\\\\d|5[02-9])\\\\d{3,9}|2\\\\d{4,5}|[3467]\\\\d{4}|8\\\\d{4,6}|9\\\\d{4,7})|5\\\\d{4,12}|8\\\\d{7,12}|9\\\\d{8,12}|(?:[367]\\\\d|4[0-24-9])\\\\d{4,11}\",[4,5,6,7,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{3,12})\",\"$1 $2\",[\"1(?:11|[2-9])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})\",\"$1 $2\",[\"517\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"5[079]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,10})\",\"$1 $2\",[\"(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,9})\",\"$1 $2\",[\"[2-467]|5[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,7})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AU\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{7}(?:\\\\d(?:\\\\d{2})?)?|8[0-24-9]\\\\d{7})|[2-478]\\\\d{8}|1\\\\d{4,7}\",[5,6,7,8,9,10,12],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"16\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"16\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"14|4\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[2378]\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:30|[89])\"]]],\"0\",0,\"(183[12])|0\",0,0,0,[[\"(?:(?:(?:2(?:[0-26-9]\\\\d|3[0-8]|4[02-9]|5[0135-9])|7(?:[013-57-9]\\\\d|2[0-8]))\\\\d|3(?:(?:[0-3589]\\\\d|6[1-9]|7[0-35-9])\\\\d|4(?:[0-578]\\\\d|90)))\\\\d\\\\d|8(?:51(?:0(?:0[03-9]|[12479]\\\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\\\d|7[89]|9[0-4])|3\\\\d\\\\d)|(?:6[0-8]|[78]\\\\d)\\\\d{3}|9(?:[02-9]\\\\d{3}|1(?:(?:[0-58]\\\\d|6[0135-9])\\\\d|7(?:0[0-24-9]|[1-9]\\\\d)|9(?:[0-46-9]\\\\d|5[0-79])))))\\\\d{3}\",[9]],[\"4(?:79[01]|83[0-389]|94[0-4])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,[\"163\\\\d{2,6}\",[5,6,7,8,9]],[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"AW\":[\"297\",\"00\",\"(?:[25-79]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[25-9]\"]]]],\"AX\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"2\\\\d{4,9}|35\\\\d{4,5}|(?:60\\\\d\\\\d|800)\\\\d{4,6}|7\\\\d{5,11}|(?:[14]\\\\d|3[0-46-9]|50)\\\\d{4,8}\",[5,6,7,8,9,10,11,12],0,\"0\",0,0,0,0,\"18\",0,\"00\"],\"AZ\":[\"994\",\"00\",\"365\\\\d{6}|(?:[124579]\\\\d|60|88)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[28]|2|365|46\",\"1[28]|2|365[45]|46\",\"1[28]|2|365(?:4|5[02])|46\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[13-9]\"],\"0$1\"]],\"0\"],\"BA\":[\"387\",\"00\",\"6\\\\d{8}|(?:[35689]\\\\d|49|70)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[1-3]|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2-$3\",[\"[3-5]|6[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\"]],\"0\"],\"BB\":[\"1\",\"011\",\"(?:246|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"246$1\",0,\"246\"],\"BD\":[\"880\",\"00\",\"[1-469]\\\\d{9}|8[0-79]\\\\d{7,8}|[2-79]\\\\d{8}|[2-9]\\\\d{7}|[3-9]\\\\d{6}|[57-9]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1-$2\",[\"31[5-8]|[459]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1-$2\",[\"3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:[15]|28|4[14])|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,6})\",\"$1-$2\",[\"[13-9]|2[23]\"],\"0$1\"],[\"(\\\\d)(\\\\d{7,8})\",\"$1-$2\",[\"2\"],\"0$1\"]],\"0\"],\"BE\":[\"32\",\"00\",\"4\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:80|9)0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[239]|4[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[15-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4\"],\"0$1\"]],\"0\"],\"BF\":[\"226\",\"00\",\"[025-7]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[025-7]\"]]]],\"BG\":[\"359\",\"00\",\"00800\\\\d{7}|[2-7]\\\\d{6,7}|[89]\\\\d{6,8}|2\\\\d{5}\",[6,7,8,9,12],[[\"(\\\\d)(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"43[1-6]|70[1-9]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:70|8)0\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3\",[\"43[1-7]|7\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[48]|9[08]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"BH\":[\"973\",\"00\",\"[136-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[13679]|8[02-4679]\"]]]],\"BI\":[\"257\",\"00\",\"(?:[267]\\\\d|31)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2367]\"]]]],\"BJ\":[\"229\",\"00\",\"(?:01\\\\d|[24-689])\\\\d{7}\",[8,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-689]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"0\"]]]],\"BL\":[\"590\",\"00\",\"(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:2[7-9]|3[3-7]|5[12]|87)\\\\d{4}\"],[\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))|7090[0-4])\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"BM\":[\"1\",\"011\",\"(?:441|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"441$1\",0,\"441\"],\"BN\":[\"673\",\"00\",\"[2-578]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-578]\"]]]],\"BO\":[\"591\",\"00(?:1\\\\d)?\",\"8001\\\\d{5}|(?:[2-467]\\\\d|50)\\\\d{6}\",[8,9],[[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[235]|4[46]\"]],[\"(\\\\d{8})\",\"$1\",[\"[67]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\",0,\"0(1\\\\d)?\"],\"BQ\":[\"599\",\"00\",\"(?:[34]1|7\\\\d)\\\\d{5}\",[7],0,0,0,0,0,0,\"[347]\"],\"BR\":[\"55\",\"00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)\",\"(?:[1-46-9]\\\\d\\\\d|5(?:[0-46-9]\\\\d|5[0-46-9]))\\\\d{8}|[1-9]\\\\d{9}|[3589]\\\\d{8}|[34]\\\\d{7}\",[8,9,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"300|4(?:0[02]|37)\",\"4(?:02|37)0|[34]00\"]],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:[358]|90)0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1 $2-$3\",[\"[16][1-9]|[2-57-9]\"],\"($1)\"]],\"0\",0,\"(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\\\d{10,11}))?\",\"$2\"],\"BS\":[\"1\",\"011\",\"(?:242|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([3-8]\\\\d{6})$|1\",\"242$1\",0,\"242\"],\"BT\":[\"975\",\"00\",\"[17]\\\\d{7}|[2-8]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-68]|7[246]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[67]|7\"]]]],\"BW\":[\"267\",\"00\",\"(?:0800|(?:[37]|800)\\\\d)\\\\d{6}|(?:[2-6]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[24-6]|3[15-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"BY\":[\"375\",\"810\",\"(?:[12]\\\\d|33|44|902)\\\\d{7}|8(?:0[0-79]\\\\d{5,7}|[1-7]\\\\d{9})|8(?:1[0-489]|[5-79]\\\\d)\\\\d{7}|8[1-79]\\\\d{6,7}|8[0-79]\\\\d{5}|8\\\\d{5}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"800\"],\"8 $1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,4})\",\"$1 $2 $3\",[\"800\"],\"8 $1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{3})\",\"$1 $2-$3\",[\"1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])\",\"1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"1(?:[56]|7[467])|2[1-3]\"],\"8 0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-4]\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"8 $1\"]],\"8\",0,\"0|80?\",0,0,0,0,\"8~10\"],\"BZ\":[\"501\",\"00\",\"(?:0800\\\\d|[2-8])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-8]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"0\"]]]],\"CA\":[\"1\",\"011\",\"[2-9]\\\\d{9}|3\\\\d{6}\",[7,10],0,\"1\",0,0,0,0,0,[[\"(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|9(?:0[25]|42))[2-9]\\\\d{6}\",[10]],[\"\",[10]],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",[10]],[\"900[2-9]\\\\d{6}\",[10]],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|(?:5(?:2[125-9]|33|44|66|77|88)|6(?:22|33))[2-9]\\\\d{6}\",[10]],0,[\"310\\\\d{4}\",[7]],0,[\"600[2-9]\\\\d{6}\",[10]]]],\"CC\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"([59]\\\\d{7})$|0\",\"8$1\",0,0,[[\"8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\\\d|70[23]|959))\\\\d{3}\",[9]],[\"4(?:79[01]|83[0-389]|94[0-4])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"CD\":[\"243\",\"00\",\"(?:(?:[189]|5\\\\d)\\\\d|2)\\\\d{7}|[1-68]\\\\d{6}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[1-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"5\"],\"0$1\"]],\"0\"],\"CF\":[\"236\",\"00\",\"(?:[27]\\\\d{3}|8776)\\\\d{4}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[278]\"]]]],\"CG\":[\"242\",\"00\",\"222\\\\d{6}|(?:0\\\\d|80)\\\\d{7}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[02]\"]]]],\"CH\":[\"41\",\"00\",\"8\\\\d{11}|[2-9]\\\\d{8}\",[9,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8[047]|90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]|81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"8\"],\"0$1\"]],\"0\"],\"CI\":[\"225\",\"00\",\"[02]\\\\d{9}\",[10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d)(\\\\d{5})\",\"$1 $2 $3 $4\",[\"2\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"0\"]]]],\"CK\":[\"682\",\"00\",\"[2-578]\\\\d{4}\",[5],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"[2-578]\"]]]],\"CL\":[\"56\",\"(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0\",\"12300\\\\d{6}|6\\\\d{9,10}|[2-9]\\\\d{8}\",[9,10,11],[[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"219\",\"2196\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[1-36]\"],\"($1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"9[2-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"60|8\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"60\"]]]],\"CM\":[\"237\",\"00\",\"[26]\\\\d{8}|88\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"88\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[26]|88\"]]]],\"CN\":[\"86\",\"00|1(?:[12]\\\\d|79)\\\\d\\\\d00\",\"(?:(?:1[03-689]|2\\\\d)\\\\d\\\\d|6)\\\\d{8}|1\\\\d{10}|[126]\\\\d{6}(?:\\\\d(?:\\\\d{2})?)?|86\\\\d{5,6}|(?:[3-579]\\\\d|8[0-57-9])\\\\d{5,9}\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5,6})\",\"$1 $2\",[\"(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]\",\"(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]\",\"(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))[19]\",\"85[23](?:10|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:10|9[56])\",\"85[23](?:100|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:100|9[56])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:4|80)0\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|2(?:[02-57-9]|1[1-9])\",\"10|2(?:[02-57-9]|1[1-9])\",\"10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-578]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"1[3-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"[12]\"],\"0$1\",1]],\"0\",0,\"(1(?:[12]\\\\d|79)\\\\d\\\\d)|0\",0,0,0,0,\"00\"],\"CO\":[\"57\",\"00(?:4(?:[14]4|56)|[579])\",\"(?:46|60\\\\d\\\\d)\\\\d{6}|(?:1\\\\d|[39])\\\\d{9}\",[8,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"46\"]],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"6|90\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3[0-357]|91\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{7})\",\"$1-$2-$3\",[\"1\"],\"0$1\",0,\"$1 $2 $3\"]],\"0\",0,\"0([3579]|4(?:[14]4|56))?\"],\"CR\":[\"506\",\"00\",\"(?:8\\\\d|90)\\\\d{8}|(?:[24-8]\\\\d{3}|3005)\\\\d{4}\",[8,10],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[3-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[89]\"]]],0,0,\"(19(?:0[0-2468]|1[09]|20|66|77|99))\"],\"CU\":[\"53\",\"119\",\"(?:[2-7]|8\\\\d\\\\d)\\\\d{7}|[2-47]\\\\d{6}|[34]\\\\d{5}\",[6,7,8,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"2[1-4]|[34]\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{6,7})\",\"$1 $2\",[\"7\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[56]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"8\"],\"0$1\"]],\"0\"],\"CV\":[\"238\",\"0\",\"(?:[2-59]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"CW\":[\"599\",\"00\",\"(?:[34]1|60|(?:7|9\\\\d)\\\\d)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[3467]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9[4-8]\"]]],0,0,0,0,0,\"[69]\"],\"CX\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"([59]\\\\d{7})$|0\",\"8$1\",0,0,[[\"8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\\\d|7(?:0[01]|1[0-2])|958))\\\\d{3}\",[9]],[\"4(?:79[01]|83[0-389]|94[0-4])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"CY\":[\"357\",\"00\",\"(?:[279]\\\\d|[58]0)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[257-9]\"]]]],\"CZ\":[\"420\",\"00\",\"(?:[2-578]\\\\d|60)\\\\d{7}|9\\\\d{8,11}\",[9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]|9[015-7]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"96\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]]],\"DE\":[\"49\",\"00\",\"[2579]\\\\d{5,14}|49(?:[34]0|69|8\\\\d)\\\\d\\\\d?|49(?:37|49|60|7[089]|9\\\\d)\\\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\\\d{1,8}|(?:1|[368]\\\\d|4[0-8])\\\\d{3,13}|49(?:[015]\\\\d|2[13]|31|[46][1-8])\\\\d{1,9}\",[4,5,6,7,8,9,10,11,12,13,14,15],[[\"(\\\\d{2})(\\\\d{3,13})\",\"$1 $2\",[\"3[02]|40|[68]9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,12})\",\"$1 $2\",[\"2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\",\"2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2,11})\",\"$1 $2\",[\"[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]\",\"[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"138\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{2,10})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,11})\",\"$1 $2\",[\"181\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{4,10})\",\"$1 $2 $3\",[\"1(?:3|80)|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"1[67]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,12})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"185\",\"1850\",\"18500\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"18[68]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"15[1279]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"15[03568]\",\"15(?:[0568]|31)\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{8})\",\"$1 $2\",[\"18\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{7,8})\",\"$1 $2 $3\",[\"1(?:6[023]|7)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{7})\",\"$1 $2 $3\",[\"15[279]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{8})\",\"$1 $2 $3\",[\"15\"],\"0$1\"]],\"0\"],\"DJ\":[\"253\",\"00\",\"(?:2\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[27]\"]]]],\"DK\":[\"45\",\"00\",\"[2-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-9]\"]]]],\"DM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|767|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"767$1\",0,\"767\"],\"DO\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"8001|8[024]9\"],\"DZ\":[\"213\",\"00\",\"(?:[1-4]|[5-79]\\\\d|80)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-8]\"],\"0$1\"]],\"0\"],\"EC\":[\"593\",\"00\",\"1\\\\d{9,10}|(?:[2-7]|9\\\\d)\\\\d{7}\",[8,9,10,11],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[2-7]\"],\"(0$1)\",0,\"$1-$2-$3\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"EE\":[\"372\",\"00\",\"8\\\\d{9}|[4578]\\\\d{7}|(?:[3-8]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88\",\"[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88\"]],[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[45]|8(?:00|[1-49])\",\"[45]|8(?:00[1-9]|[1-49])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"EG\":[\"20\",\"00\",\"[189]\\\\d{8,9}|[24-6]\\\\d{8}|[135]\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{7,8})\",\"$1 $2\",[\"[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,7})\",\"$1 $2\",[\"1[35]|[4-6]|8[2468]|9[235-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{8})\",\"$1 $2\",[\"1\"],\"0$1\"]],\"0\"],\"EH\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],0,\"0\",0,0,0,0,\"528[89]\"],\"ER\":[\"291\",\"00\",\"[178]\\\\d{6}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[178]\"],\"0$1\"]],\"0\"],\"ES\":[\"34\",\"00\",\"[5-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]00\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-9]\"]]]],\"ET\":[\"251\",\"00\",\"(?:11|[2-579]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-579]\"],\"0$1\"]],\"0\"],\"FI\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"[1-35689]\\\\d{4}|7\\\\d{10,11}|(?:[124-7]\\\\d|3[0-46-9])\\\\d{8}|[1-9]\\\\d{5,8}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{5})\",\"$1\",[\"20[2-59]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"(?:[1-3]0|[68])0|70[07-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,8})\",\"$1 $2\",[\"[14]|2[09]|50|7[135]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,10})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d)(\\\\d{4,9})\",\"$1 $2\",[\"(?:19|[2568])[1-8]|3(?:0[1-9]|[1-9])|9\"],\"0$1\"]],\"0\",0,0,0,0,\"1[03-79]|[2-9]\",0,\"00\"],\"FJ\":[\"679\",\"0(?:0|52)\",\"45\\\\d{5}|(?:0800\\\\d|[235-9])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[235-9]|45\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]]],0,0,0,0,0,0,0,\"00\"],\"FK\":[\"500\",\"00\",\"[2-7]\\\\d{4}\",[5]],\"FM\":[\"691\",\"00\",\"(?:[39]\\\\d\\\\d|820)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[389]\"]]]],\"FO\":[\"298\",\"00\",\"[2-9]\\\\d{5}\",[6],[[\"(\\\\d{6})\",\"$1\",[\"[2-9]\"]]],0,0,\"(10(?:01|[12]0|88))\"],\"FR\":[\"33\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0 $1\"],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[1-79]\"],\"0$1\"]],\"0\"],\"GA\":[\"241\",\"00\",\"(?:[067]\\\\d|11)\\\\d{6}|[2-7]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"11|[67]\"],\"0$1\"]],0,0,\"0(11\\\\d{6}|60\\\\d{6}|61\\\\d{6}|6[256]\\\\d{6}|7[467]\\\\d{6})\",\"$1\"],\"GB\":[\"44\",\"00\",\"[1-357-9]\\\\d{9}|[18]\\\\d{8}|8\\\\d{6}\",[7,9,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"800\",\"8001\",\"80011\",\"800111\",\"8001111\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"845\",\"8454\",\"84546\",\"845464\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"1(?:38|5[23]|69|76|94)\",\"1(?:(?:38|69)7|5(?:24|39)|768|946)\",\"1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"1(?:[2-69][02-9]|[78])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[25]|7(?:0|6[02-9])\",\"[25]|7(?:0|6(?:[03-9]|2[356]))\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1389]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:1(?:1(?:3(?:[0-58]\\\\d\\\\d|73[0-35])|4(?:(?:[0-5]\\\\d|70)\\\\d|69[7-9])|(?:(?:5[0-26-9]|[78][0-49])\\\\d|6(?:[0-4]\\\\d|50))\\\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\\\d)\\\\d|1(?:[0-7]\\\\d|8[0-3]))|(?:3(?:0\\\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\\\d)\\\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\\\d{3})\\\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\\\d)|76\\\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\\\d|7[4-79])|295[5-7]|35[34]\\\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\\\d{3}\",[9,10]],[\"7(?:457[0-57-9]|700[01]|911[028])\\\\d{5}|7(?:[1-3]\\\\d\\\\d|4(?:[0-46-9]\\\\d|5[0-689])|5(?:0[0-8]|[13-9]\\\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\\\d|8[02-9]|9[0-689])|8(?:[014-9]\\\\d|[23][0-8])|9(?:[024-9]\\\\d|1[02-9]|3[0-689]))\\\\d{6}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[2-49]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]],0,\" x\"],\"GD\":[\"1\",\"011\",\"(?:473|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"473$1\",0,\"473\"],\"GE\":[\"995\",\"00\",\"(?:[3-57]\\\\d\\\\d|800)\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"32\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[57]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[348]\"],\"0$1\"]],\"0\"],\"GF\":[\"594\",\"00\",\"(?:[56]94\\\\d|7093)\\\\d{5}|(?:80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]|9[47]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[89]\"],\"0$1\"]],\"0\"],\"GG\":[\"44\",\"00\",\"(?:1481|[357-9]\\\\d{3})\\\\d{6}|8\\\\d{6}(?:\\\\d{2})?\",[7,9,10],0,\"0\",0,\"([25-9]\\\\d{5})$|0\",\"1481$1\",0,0,[[\"1481[25-9]\\\\d{5}\",[10]],[\"7(?:(?:781|839)\\\\d|911[17])\\\\d{5}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[0-3]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]]],\"GH\":[\"233\",\"00\",\"(?:[235]\\\\d{3}|800)\\\\d{5}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[235]\"],\"0$1\"]],\"0\"],\"GI\":[\"350\",\"00\",\"(?:[25]\\\\d|60)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2\"]]]],\"GL\":[\"299\",\"00\",\"(?:19|[2-689]\\\\d|70)\\\\d{4}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"19|[2-9]\"]]]],\"GM\":[\"220\",\"00\",\"[2-9]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"GN\":[\"224\",\"00\",\"722\\\\d{6}|(?:3|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"3\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[67]\"]]]],\"GP\":[\"590\",\"00\",\"(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-79]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1-9]|5[3-579]|[68][0-689]|7[08]|9\\\\d)\\\\d{4}\"],[\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))|7090[0-4])\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"GQ\":[\"240\",\"00\",\"222\\\\d{6}|(?:3\\\\d|55|[89]0)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235]\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[89]\"]]]],\"GR\":[\"30\",\"00\",\"5005000\\\\d{3}|8\\\\d{9,11}|(?:[269]\\\\d|70)\\\\d{8}\",[10,11,12],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"21|7\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2689]\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{5})\",\"$1 $2 $3\",[\"8\"]]]],\"GT\":[\"502\",\"00\",\"80\\\\d{6}|(?:1\\\\d{3}|[2-7])\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-8]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"GU\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|671|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"671$1\",0,\"671\"],\"GW\":[\"245\",\"00\",\"[49]\\\\d{8}|4\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"40\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"]]]],\"GY\":[\"592\",\"001\",\"(?:[2-8]\\\\d{3}|9008)\\\\d{3}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"HK\":[\"852\",\"00(?:30|5[09]|[126-9]?)\",\"8[0-46-9]\\\\d{6,7}|9\\\\d{4,7}|(?:[2-7]|9\\\\d{3})\\\\d{7}\",[5,6,7,8,9,11],[[\"(\\\\d{3})(\\\\d{2,5})\",\"$1 $2\",[\"900\",\"9003\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[1-4]|9(?:0[1-9]|[1-8])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]],0,0,0,0,0,0,0,\"00\"],\"HN\":[\"504\",\"00\",\"8\\\\d{10}|[237-9]\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[237-9]\"]]]],\"HR\":[\"385\",\"00\",\"(?:[24-69]\\\\d|3[0-79])\\\\d{7}|80\\\\d{5,7}|[1-79]\\\\d{7}|6\\\\d{5,6}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"6[01]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6|7[245]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-57]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"HT\":[\"509\",\"00\",\"(?:[2-489]\\\\d|55)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"HU\":[\"36\",\"00\",\"[235-7]\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"06 $1\"]],\"06\"],\"ID\":[\"62\",\"00[89]\",\"00[1-9]\\\\d{9,14}|(?:[1-36]|8\\\\d{5})\\\\d{6}|00\\\\d{9}|[1-9]\\\\d{8,10}|[2-9]\\\\d{7}\",[7,8,9,10,11,12,13,14,15,16,17],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"15\"]],[\"(\\\\d{2})(\\\\d{5,9})\",\"$1 $2\",[\"2[124]|[36]1\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,7})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,8})\",\"$1 $2\",[\"[2-79]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{3})\",\"$1-$2-$3\",[\"8[1-35-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6,8})\",\"$1 $2\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"804\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"80\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"]],\"0\"],\"IE\":[\"353\",\"00\",\"(?:1\\\\d|[2569])\\\\d{6,8}|4\\\\d{6,9}|7\\\\d{8}|8\\\\d{8,9}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"2[24-9]|47|58|6[237-9]|9[35-9]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[45]0\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2569]|4[1-69]|7[14]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"81\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"4\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"IL\":[\"972\",\"0(?:0|1[2-9])\",\"1\\\\d{6}(?:\\\\d{3,5})?|[57]\\\\d{8}|[1-489]\\\\d{7}\",[7,8,9,10,11,12],[[\"(\\\\d{4})(\\\\d{3})\",\"$1-$2\",[\"125\"]],[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"121\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[2-489]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"12\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1-$2\",[\"159\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"1[7-9]\"]],[\"(\\\\d{3})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3-$4\",[\"15\"]]],\"0\"],\"IM\":[\"44\",\"00\",\"1624\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"([25-8]\\\\d{5})$|0\",\"1624$1\",0,\"74576|(?:16|7[56])24\"],\"IN\":[\"91\",\"00\",\"(?:000800|[2-9]\\\\d\\\\d)\\\\d{7}|1\\\\d{7,12}\",[8,9,10,11,12,13],[[\"(\\\\d{8})\",\"$1\",[\"5(?:0|2[23]|3[03]|[67]1|88)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)\"],0,1],[\"(\\\\d{4})(\\\\d{4,5})\",\"$1 $2\",[\"180\",\"1800\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"140\"],0,1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"11|2[02]|33|4[04]|79[1-7]|80[2-46]\",\"11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])\",\"11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807\",\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]\",\"1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\\\d|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]))[2-7]\"],\"0$1\",1],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"[6-9]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{2,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:6|8[06])\",\"1(?:6|8[06]0)\"],0,1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"18\"],0,1]],\"0\"],\"IO\":[\"246\",\"00\",\"3\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"3\"]]]],\"IQ\":[\"964\",\"00\",\"(?:1|7\\\\d\\\\d)\\\\d{7}|[2-6]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"IR\":[\"98\",\"00\",\"[1-9]\\\\d{9}|(?:[1-8]\\\\d\\\\d|9)\\\\d{3,4}\",[4,5,6,7,10],[[\"(\\\\d{4,5})\",\"$1\",[\"96\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,5})\",\"$1 $2\",[\"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-8]\"],\"0$1\"]],\"0\"],\"IS\":[\"354\",\"00|1(?:0(?:01|[12]0)|100)\",\"(?:38\\\\d|[4-9])\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,0,\"00\"],\"IT\":[\"39\",\"00\",\"0\\\\d{5,10}|1\\\\d{8,10}|3(?:[0-8]\\\\d{7,10}|9\\\\d{7,8})|(?:43|55|70)\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?\",[6,7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"0[26]\"]],[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"0[13-57-9][0159]|8(?:03|4[17]|9[2-5])\",\"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))\"]],[\"(\\\\d{4})(\\\\d{2,6})\",\"$1 $2\",[\"0(?:[13-579][2-46-8]|8[236-8])\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"894\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[26]|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1(?:44|[679])|[378]|43\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[13-57-9][0159]|14\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{5})\",\"$1 $2 $3\",[\"0[26]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,[[\"0669[0-79]\\\\d{1,6}|0(?:1(?:[0159]\\\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\\\d\\\\d|3(?:[0159]\\\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\\\d|6[0-8])|7(?:[0159]\\\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\\\d{2,7}\",[6,7,8,9,10,11]],[\"3[2-9]\\\\d{7,8}|(?:31|43)\\\\d{8}\",[9,10]],[\"80(?:0\\\\d{3}|3)\\\\d{3}\",[6,9]],[\"(?:0878\\\\d{3}|89(?:2\\\\d|3[04]|4(?:[0-4]|[5-9]\\\\d\\\\d)|5[0-4]))\\\\d\\\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\\\d{6}\",[6,8,9,10]],[\"1(?:78\\\\d|99)\\\\d{6}\",[9,10]],[\"3[2-8]\\\\d{9,10}\",[11,12]],0,0,[\"55\\\\d{8}\",[10]],[\"84(?:[08]\\\\d{3}|[17])\\\\d{3}\",[6,9]]]],\"JE\":[\"44\",\"00\",\"1534\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"([0-24-8]\\\\d{5})$|0\",\"1534$1\",0,0,[[\"1534[0-24-8]\\\\d{5}\"],[\"7(?:(?:(?:50|82)9|937)\\\\d|7(?:00[378]|97\\\\d))\\\\d{5}\"],[\"80(?:07(?:35|81)|8901)\\\\d{4}\"],[\"(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\\\d{4}\"],[\"701511\\\\d{4}\"],0,[\"(?:3(?:0(?:07(?:35|81)|8901)|3\\\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\\\d{4})\\\\d{4}\"],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\"],[\"56\\\\d{8}\"]]],\"JM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|658|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"658|876\"],\"JO\":[\"962\",\"00\",\"(?:(?:[2689]|7\\\\d)\\\\d|32|53)\\\\d{6}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2356]|87\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"70\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"JP\":[\"81\",\"010\",\"00[1-9]\\\\d{6,14}|[25-9]\\\\d{9}|(?:00|[1-9]\\\\d\\\\d)\\\\d{6}\",[8,9,10,11,12,13,14,15,16,17],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"(?:12|57|99)0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51)|9(?:80|9[16])\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"3|4(?:2[09]|7[01])|6[1-9]\",\"3|4(?:2(?:0|9[02-69])|7(?:0[019]|1))|6[1-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[0459]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[26-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9]|9[29])|5(?:2|3(?:[045]|9[0-8])|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3(?:[045]|9(?:[0-58]|6[4-9]|7[0-35689]))|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3\",[\"[14]|[289][2-9]|5[3-9]|7[2-4679]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"800\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[25-9]\"],\"0$1\"]],\"0\",0,\"(000[259]\\\\d{6})$|(?:(?:003768)0?)|0\",\"$1\"],\"KE\":[\"254\",\"000\",\"(?:[17]\\\\d\\\\d|900)\\\\d{6}|(?:2|80)0\\\\d{6,7}|[4-6]\\\\d{6,8}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"[24-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[17]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\"],\"KG\":[\"996\",\"00\",\"8\\\\d{9}|[235-9]\\\\d{8}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3(?:1[346]|[24-79])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-79]|88\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d)(\\\\d{2,3})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"KH\":[\"855\",\"00[14-9]\",\"1\\\\d{9}|[1-9]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"KI\":[\"686\",\"00\",\"(?:[37]\\\\d|6[0-79])\\\\d{6}|(?:[2-48]\\\\d|50)\\\\d{3}\",[5,8],0,\"0\"],\"KM\":[\"269\",\"00\",\"[3478]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[3478]\"]]]],\"KN\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"869$1\",0,\"869\"],\"KP\":[\"850\",\"00|99\",\"85\\\\d{6}|(?:19\\\\d|[2-7])\\\\d{7}\",[8,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"KR\":[\"82\",\"00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))\",\"00[1-9]\\\\d{8,11}|(?:[12]|5\\\\d{3})\\\\d{7}|[13-6]\\\\d{9}|(?:[1-6]\\\\d|80)\\\\d{7}|[3-6]\\\\d{4,5}|(?:00|7)0\\\\d{8}\",[5,6,8,9,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1-$2\",[\"(?:3[1-3]|[46][1-4]|5[1-5])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"1\"]],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[36]0|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"[1346]|5[1-5]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1-$2-$3\",[\"5\"],\"0$1\"]],\"0\",0,\"0(8(?:[1-46-8]|5\\\\d\\\\d))?\"],\"KW\":[\"965\",\"00\",\"18\\\\d{5}|(?:[2569]\\\\d|41)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[169]|2(?:[235]|4[1-35-9])|52\"]],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[245]\"]]]],\"KY\":[\"1\",\"011\",\"(?:345|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"345$1\",0,\"345\"],\"KZ\":[\"7\",\"810\",\"(?:33622|8\\\\d{8})\\\\d{5}|[78]\\\\d{9}\",[10,14],0,\"8\",0,0,0,0,\"33|7\",0,\"8~10\"],\"LA\":[\"856\",\"00\",\"[23]\\\\d{9}|3\\\\d{8}|(?:[235-8]\\\\d|41)\\\\d{6}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2[13]|3[14]|[4-8]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"30[0135-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\"],\"LB\":[\"961\",\"00\",\"[27-9]\\\\d{7}|[13-9]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27-9]\"]]],\"0\"],\"LC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|758|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-8]\\\\d{6})$|1\",\"758$1\",0,\"758\"],\"LI\":[\"423\",\"00\",\"[68]\\\\d{8}|(?:[2378]\\\\d|90)\\\\d{5}\",[7,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2379]|8(?:0[09]|7)\",\"[2379]|8(?:0(?:02|9)|7)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"69\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]],\"0\",0,\"(1001)|0\"],\"LK\":[\"94\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[1-689]\"],\"0$1\"]],\"0\"],\"LR\":[\"231\",\"00\",\"(?:[245]\\\\d|33|77|88)\\\\d{7}|(?:2\\\\d|[4-6])\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4[67]|[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-578]\"],\"0$1\"]],\"0\"],\"LS\":[\"266\",\"00\",\"(?:[256]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2568]\"]]]],\"LT\":[\"370\",\"00\",\"(?:[3469]\\\\d|52|[78]0)\\\\d{6}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"52[0-7]\"],\"(0-$1)\",1],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0 $1\",1],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"37|4(?:[15]|6[1-8])\"],\"(0-$1)\",1],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[3-6]\"],\"(0-$1)\",1]],\"0\",0,\"[08]\"],\"LU\":[\"352\",\"00\",\"35[013-9]\\\\d{4,8}|6\\\\d{8}|35\\\\d{2,4}|(?:[2457-9]\\\\d|3[0-46-9])\\\\d{2,9}\",[4,5,6,7,8,9,10,11],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"20[2-689]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"80[01]|90[015]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"20\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4 $5\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,5})\",\"$1 $2 $3 $4\",[\"[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]\"]]],0,0,\"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\\\d)\"],\"LV\":[\"371\",\"00\",\"(?:[268]\\\\d|90)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[269]|8[01]\"]]]],\"LY\":[\"218\",\"00\",\"[2-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MA\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5[45]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1-$2\",[\"5(?:2[2-46-9]|3[3-9]|9)|8(?:0[89]|92)\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"8\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1-$2\",[\"[5-7]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"5(?:2(?:[0-25-79]\\\\d|3[1-578]|4[02-46-8]|8[0235-7])|3(?:[0-47]\\\\d|5[02-9]|6[02-8]|8[014-9]|9[3-9])|(?:4[067]|5[03])\\\\d)\\\\d{5}\"],[\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:[0167]\\\\d|2[0-467]|5[0-3]|8[0-5]))\\\\d{6}\"],[\"80[0-7]\\\\d{6}\"],[\"89\\\\d{7}\"],0,0,0,0,[\"(?:592(?:4[0-2]|93)|80[89]\\\\d\\\\d)\\\\d{4}\"]]],\"MC\":[\"377\",\"00\",\"(?:[3489]|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[389]\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"6\"],\"0$1\"]],\"0\"],\"MD\":[\"373\",\"00\",\"(?:[235-7]\\\\d|[89]0)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"22|3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[25-7]\"],\"0$1\"]],\"0\"],\"ME\":[\"382\",\"00\",\"(?:20|[3-79]\\\\d)\\\\d{6}|80\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MF\":[\"590\",\"00\",\"(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:0[079]|[14]3|[27][79]|3[03-7]|5[0-268]|87)\\\\d{4}\"],[\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))|7090[0-4])\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"MG\":[\"261\",\"00\",\"[23]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\",0,\"([24-9]\\\\d{6})$|0\",\"20$1\"],\"MH\":[\"692\",\"011\",\"329\\\\d{4}|(?:[256]\\\\d|45)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-6]\"]]],\"1\"],\"MK\":[\"389\",\"00\",\"[2-578]\\\\d{7}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2|34[47]|4(?:[37]7|5[47]|64)\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[347]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[58]\"],\"0$1\"]],\"0\"],\"ML\":[\"223\",\"00\",\"[24-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-9]\"]]]],\"MM\":[\"95\",\"00\",\"1\\\\d{5,7}|95\\\\d{6}|(?:[4-7]|9[0-46-9])\\\\d{6,8}|(?:2|8\\\\d)\\\\d{5,8}\",[6,7,8,9,10],[[\"(\\\\d)(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"16|2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"4(?:[2-46]|5[3-5])|5|6(?:[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-5]|(?:60|86)[23]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]|452|678|86\",\"[12]|452|6788|86\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[4-7]|8[1-35]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4,6})\",\"$1 $2 $3\",[\"9(?:2[0-4]|[35-9]|4[137-9])\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"92\"],\"0$1\"],[\"(\\\\d)(\\\\d{5})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"MN\":[\"976\",\"001\",\"[12]\\\\d{7,9}|[5-9]\\\\d{7}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[12]1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[12]2[1-3]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])\",\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"[12]\"],\"0$1\"]],\"0\"],\"MO\":[\"853\",\"00\",\"0800\\\\d{3}|(?:28|[68]\\\\d)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[268]\"]]]],\"MP\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:67|90)0\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"670$1\",0,\"670\"],\"MQ\":[\"596\",\"00\",\"(?:596\\\\d|7091)\\\\d{5}|(?:69|[89]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-79]|8(?:0[6-9]|[36])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"MR\":[\"222\",\"00\",\"(?:[2-4]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-48]\"]]]],\"MS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|664|900)\\\\d{7}\",[10],0,\"1\",0,\"([34]\\\\d{6})$|1\",\"664$1\",0,\"664\"],\"MT\":[\"356\",\"00\",\"3550\\\\d{4}|(?:[2579]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2357-9]\"]]]],\"MU\":[\"230\",\"0(?:0|[24-7]0|3[03])\",\"(?:[57]|8\\\\d\\\\d)\\\\d{7}|[2-468]\\\\d{6}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-46]|8[013]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[57]\"]],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"8\"]]],0,0,0,0,0,0,0,\"020\"],\"MV\":[\"960\",\"0(?:0|19)\",\"(?:800|9[0-57-9]\\\\d)\\\\d{7}|[34679]\\\\d{6}\",[7,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[34679]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]],0,0,0,0,0,0,0,\"00\"],\"MW\":[\"265\",\"00\",\"(?:[1289]\\\\d|31|77)\\\\d{7}|1\\\\d{6}\",[7,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[137-9]\"],\"0$1\"]],\"0\"],\"MX\":[\"52\",\"0[09]\",\"[2-9]\\\\d{9}\",[10],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"33|5[56]|81\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-9]\"]]],0,0,0,0,0,0,0,\"00\"],\"MY\":[\"60\",\"00\",\"1\\\\d{8,9}|(?:3\\\\d|[4-9])\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"[4-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1-$2 $3\",[\"1(?:[02469]|[378][1-9]|53)|8\",\"1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"3\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3-$4\",[\"1(?:[367]|80)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"15\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"MZ\":[\"258\",\"00\",\"(?:2|8\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2|8[2-79]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"NA\":[\"264\",\"00\",\"[68]\\\\d{7,8}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"87\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"NC\":[\"687\",\"00\",\"(?:050|[2-57-9]\\\\d\\\\d)\\\\d{3}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1.$2.$3\",[\"[02-57-9]\"]]]],\"NE\":[\"227\",\"00\",\"[027-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"08\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[089]|2[013]|7[0467]\"]]]],\"NF\":[\"672\",\"00\",\"[13]\\\\d{5}\",[6],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"1[0-3]\"]],[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"[13]\"]]],0,0,\"([0-258]\\\\d{4})$\",\"3$1\"],\"NG\":[\"234\",\"009\",\"38\\\\d{6}|[78]\\\\d{9,13}|(?:20|9\\\\d)\\\\d{8}\",[8,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"20[129]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})(\\\\d{5,6})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"]],\"0\"],\"NI\":[\"505\",\"00\",\"(?:1800|[25-8]\\\\d{3})\\\\d{4}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[125-8]\"]]]],\"NL\":[\"31\",\"00\",\"(?:[124-7]\\\\d\\\\d|3(?:[02-9]\\\\d|1[0-8]))\\\\d{6}|8\\\\d{6,9}|9\\\\d{6,10}|1\\\\d{4,5}\",[5,6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{4,7})\",\"$1 $2\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"66\"],\"0$1\"],[\"(\\\\d)(\\\\d{8})\",\"$1 $2\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-578]|91\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"NO\":[\"47\",\"00\",\"(?:0|[2-9]\\\\d{3})\\\\d{4}\",[5,8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]\"]]],0,0,0,0,0,\"[02-689]|7[0-8]\"],\"NP\":[\"977\",\"00\",\"(?:1\\\\d|9)\\\\d{9}|[1-9]\\\\d{7}\",[8,10,11],[[\"(\\\\d)(\\\\d{7})\",\"$1-$2\",[\"1[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1-$2\",[\"1[01]|[2-8]|9(?:[1-59]|[67][2-6])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"9\"]]],\"0\"],\"NR\":[\"674\",\"00\",\"(?:444|(?:55|8\\\\d)\\\\d|666)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-68]\"]]]],\"NU\":[\"683\",\"00\",\"(?:[4-7]|888\\\\d)\\\\d{3}\",[4,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"8\"]]]],\"NZ\":[\"64\",\"0(?:0|161)\",\"[1289]\\\\d{9}|50\\\\d{5}(?:\\\\d{2,3})?|[27-9]\\\\d{7,8}|(?:[34]\\\\d|6[0-35-9])\\\\d{6}|8\\\\d{4,6}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,8})\",\"$1 $2\",[\"8[1-79]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"50[036-8]|8|90\",\"50(?:[0367]|88)|8|90\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"24|[346]|7[2-57-9]|9[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:10|74)|[589]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1|2[028]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,5})\",\"$1 $2 $3\",[\"2(?:[169]|7[0-35-9])|7\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"00\"],\"OM\":[\"968\",\"00\",\"(?:1505|[279]\\\\d{3}|500)\\\\d{4}|800\\\\d{5,6}\",[7,8,9],[[\"(\\\\d{3})(\\\\d{4,6})\",\"$1 $2\",[\"[58]\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[179]\"]]]],\"PA\":[\"507\",\"00\",\"(?:00800|8\\\\d{3})\\\\d{6}|[68]\\\\d{7}|[1-57-9]\\\\d{6}\",[7,8,10,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[1-57-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[68]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]]],\"PE\":[\"51\",\"00|19(?:1[124]|77|90)00\",\"(?:[14-8]|9\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[4-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"]]],\"0\",0,0,0,0,0,0,\"00\",\" Anexo \"],\"PF\":[\"689\",\"00\",\"4\\\\d{5}(?:\\\\d{2})?|8\\\\d{7,8}\",[6,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4|8[7-9]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]]],\"PG\":[\"675\",\"00|140[1-3]\",\"(?:180|[78]\\\\d{3})\\\\d{4}|(?:[2-589]\\\\d|64)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"18|[2-69]|85\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[78]\"]]],0,0,0,0,0,0,0,\"00\"],\"PH\":[\"63\",\"00\",\"(?:[2-7]|9\\\\d)\\\\d{8}|2\\\\d{5}|(?:1800|8)\\\\d{7,9}\",[6,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"2\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2\",\"3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"346|4(?:27|9[35])|883\",\"3469|4(?:279|9(?:30|56))|8834\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|8[2-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{4})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"1\"]]],\"0\"],\"PK\":[\"92\",\"00\",\"122\\\\d{6}|[24-8]\\\\d{10,11}|9(?:[013-9]\\\\d{8,10}|2(?:[01]\\\\d\\\\d|2(?:[06-8]\\\\d|1[01]))\\\\d{7})|(?:[2-8]\\\\d{3}|92(?:[0-7]\\\\d|8[1-9]))\\\\d{6}|[24-9]\\\\d{8}|[89]\\\\d{7}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,7})\",\"$1 $2 $3\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{6,7})\",\"$1 $2\",[\"2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])\",\"9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{7,8})\",\"$1 $2\",[\"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"58\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[24-9]\"],\"(0$1)\"]],\"0\"],\"PL\":[\"48\",\"00\",\"(?:6|8\\\\d\\\\d)\\\\d{7}|[1-9]\\\\d{6}(?:\\\\d{2})?|[26]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{5})\",\"$1\",[\"19\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"11|20|64\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1\",\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"64\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[2-8]|[2-7]|8[1-79]|9[145]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"8\"]]]],\"PM\":[\"508\",\"00\",\"[45]\\\\d{5}|(?:708|8\\\\d\\\\d)\\\\d{6}\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[45]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"PR\":[\"1\",\"011\",\"(?:[589]\\\\d\\\\d|787)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"787|939\"],\"PS\":[\"970\",\"00\",\"[2489]2\\\\d{6}|(?:1\\\\d|5)\\\\d{8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2489]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"PT\":[\"351\",\"00\",\"1693\\\\d{5}|(?:[26-9]\\\\d|30)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2[12]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"16|[236-9]\"]]]],\"PW\":[\"680\",\"01[12]\",\"(?:[24-8]\\\\d\\\\d|345|900)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"PY\":[\"595\",\"00\",\"59\\\\d{4,6}|9\\\\d{5,10}|(?:[2-46-8]\\\\d|5[0-8])\\\\d{4,7}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"[2-9]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{4,5})\",\"$1 $2\",[\"2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"87\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"9(?:[5-79]|8[1-7])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"]]],\"0\"],\"QA\":[\"974\",\"00\",\"800\\\\d{4}|(?:2|800)\\\\d{6}|(?:0080|[3-7])\\\\d{7}\",[7,8,9,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"2[16]|8\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[3-7]\"]]]],\"RE\":[\"262\",\"00\",\"709\\\\d{6}|(?:26|[689]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[26-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"26(?:2\\\\d\\\\d|3(?:0\\\\d|1[0-6]))\\\\d{4}\"],[\"(?:69(?:2\\\\d\\\\d|3(?:[06][0-6]|1[013]|2[0-2]|3[0-39]|4\\\\d|5[0-5]|7[0-37]|8[0-8]|9[0-479]))|7092[0-3])\\\\d{4}\"],[\"80\\\\d{7}\"],[\"89[1-37-9]\\\\d{6}\"],0,0,0,0,[\"9(?:399[0-3]|479[0-5]|76(?:2[278]|3[0-37]))\\\\d{4}\"],[\"8(?:1[019]|2[0156]|84|90)\\\\d{6}\"]]],\"RO\":[\"40\",\"00\",\"(?:[236-8]\\\\d|90)\\\\d{7}|[23]\\\\d{5}\",[6,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"2[3-6]\",\"2[3-6]\\\\d9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"219|31\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[23]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[236-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\" int \"],\"RS\":[\"381\",\"00\",\"38[02-9]\\\\d{6,9}|6\\\\d{7,9}|90\\\\d{4,8}|38\\\\d{5,6}|(?:7\\\\d\\\\d|800)\\\\d{3,9}|(?:[12]\\\\d|3[0-79])\\\\d{5,10}\",[6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3,9})\",\"$1 $2\",[\"(?:2[389]|39)0|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5,10})\",\"$1 $2\",[\"[1-36]\"],\"0$1\"]],\"0\"],\"RU\":[\"7\",\"810\",\"8\\\\d{13}|[347-9]\\\\d{9}\",[10,14],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-8]|2[1-9])\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2\"],\"8 ($1)\",1],[\"(\\\\d{5})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-68]|2[1-9])\",\"7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))\",\"7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[349]|8(?:[02-7]|1[1-8])\"],\"8 ($1)\",1],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"8\"],\"8 ($1)\"]],\"8\",0,0,0,0,\"3[04-689]|[489]\",0,\"8~10\"],\"RW\":[\"250\",\"00\",\"(?:06|[27]\\\\d\\\\d|[89]00)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"]],\"0\"],\"SA\":[\"966\",\"00\",\"92\\\\d{7}|(?:[15]|8\\\\d)\\\\d{8}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\"],\"SB\":[\"677\",\"0[01]\",\"[6-9]\\\\d{6}|[1-6]\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"6[89]|7|8[4-9]|9(?:[1-8]|9[0-8])\"]]]],\"SC\":[\"248\",\"010|0[0-2]\",\"(?:[2489]\\\\d|64)\\\\d{5}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[246]|9[57]\"]]],0,0,0,0,0,0,0,\"00\"],\"SD\":[\"249\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"SE\":[\"46\",\"00\",\"(?:[26]\\\\d\\\\d|9)\\\\d{9}|[1-9]\\\\d{8}|[1-689]\\\\d{7}|[1-4689]\\\\d{6}|2\\\\d{5}\",[6,7,8,9,10,12],[[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"20\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"9(?:00|39|44|9)\"],\"0$1\",0,\"$1 $2\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3\",[\"[12][136]|3[356]|4[0246]|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d)(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{3})\",\"$1-$2 $3\",[\"9(?:00|39|44)\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"10|7\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1-$2 $3 $4\",[\"9\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4 $5\",[\"[26]\"],\"0$1\",0,\"$1 $2 $3 $4 $5\"]],\"0\"],\"SG\":[\"65\",\"0[0-3]\\\\d\",\"(?:(?:1\\\\d|8)\\\\d\\\\d|7000)\\\\d{7}|[3689]\\\\d{7}\",[8,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[369]|8(?:0[1-9]|[1-9])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"SH\":[\"290\",\"00\",\"(?:[256]\\\\d|8)\\\\d{3}\",[4,5],0,0,0,0,0,0,\"[256]\"],\"SI\":[\"386\",\"00|10(?:22|66|88|99)\",\"[1-7]\\\\d{7}|8\\\\d{4,7}|90\\\\d{4,6}\",[5,6,7,8],[[\"(\\\\d{2})(\\\\d{3,6})\",\"$1 $2\",[\"8[09]|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"59|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37][01]|4[0139]|51|6\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-57]\"],\"(0$1)\"]],\"0\",0,0,0,0,0,0,\"00\"],\"SJ\":[\"47\",\"00\",\"0\\\\d{4}|(?:[489]\\\\d|79)\\\\d{6}\",[5,8],0,0,0,0,0,0,\"79\"],\"SK\":[\"421\",\"00\",\"[2-689]\\\\d{8}|[2-59]\\\\d{6}|[2-5]\\\\d{5}\",[6,7,9],[[\"(\\\\d)(\\\\d{2})(\\\\d{3,4})\",\"$1 $2 $3\",[\"21\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-5][1-8]1\",\"[3-5][1-8]1[67]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[689]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"[3-5]\"],\"0$1\"]],\"0\"],\"SL\":[\"232\",\"00\",\"(?:[237-9]\\\\d|66)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[236-9]\"],\"(0$1)\"]],\"0\"],\"SM\":[\"378\",\"00\",\"(?:0549|[5-7]\\\\d)\\\\d{6}\",[8,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"0\"]]],0,0,\"([89]\\\\d{5})$\",\"0549$1\"],\"SN\":[\"221\",\"00\",\"(?:[378]\\\\d|93)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[379]\"]]]],\"SO\":[\"252\",\"00\",\"[346-9]\\\\d{8}|[12679]\\\\d{7}|[1-5]\\\\d{6}|[1348]\\\\d{5}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"8[125]\"]],[\"(\\\\d{6})\",\"$1\",[\"[134]\"]],[\"(\\\\d)(\\\\d{6})\",\"$1 $2\",[\"[15]|2[0-79]|3[0-46-8]|4[0-7]\"]],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"(?:2|90)4|[67]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[348]|64|79|90\"]],[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"1|28|6[0-35-9]|7[67]|9[2-9]\"]]],\"0\"],\"SR\":[\"597\",\"00\",\"(?:[2-5]|68|[78]\\\\d)\\\\d{5}\",[6,7],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"56\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1-$2\",[\"[2-5]\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[6-8]\"]]]],\"SS\":[\"211\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"ST\":[\"239\",\"00\",\"(?:22|9\\\\d)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[29]\"]]]],\"SV\":[\"503\",\"00\",\"[267]\\\\d{7}|(?:80\\\\d|900)\\\\d{4}(?:\\\\d{4})?\",[7,8,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[89]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[267]\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]]],\"SX\":[\"1\",\"011\",\"7215\\\\d{6}|(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"(5\\\\d{6})$|1\",\"721$1\",0,\"721\"],\"SY\":[\"963\",\"00\",\"[1-359]\\\\d{8}|[1-5]\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-4]|5[1-3]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[59]\"],\"0$1\",1]],\"0\"],\"SZ\":[\"268\",\"00\",\"0800\\\\d{4}|(?:[237]\\\\d|900)\\\\d{6}\",[8,9],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[0237]\"]],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"9\"]]]],\"TA\":[\"290\",\"00\",\"8\\\\d{3}\",[4],0,0,0,0,0,0,\"8\"],\"TC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|649|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-479]\\\\d{6})$|1\",\"649$1\",0,\"649\"],\"TD\":[\"235\",\"00|16\",\"(?:22|[689]\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[26-9]\"]]],0,0,0,0,0,0,0,\"00\"],\"TG\":[\"228\",\"00\",\"[279]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[279]\"]]]],\"TH\":[\"66\",\"00[1-9]\",\"(?:001800|[2-57]|[689]\\\\d)\\\\d{7}|1\\\\d{7,9}\",[8,9,10,13],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[13-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"TJ\":[\"992\",\"810\",\"[0-57-9]\\\\d{8}\",[9],[[\"(\\\\d{6})(\\\\d)(\\\\d{2})\",\"$1 $2 $3\",[\"331\",\"3317\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"44[02-479]|[34]7\"]],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[1245]|3[12])\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[0-57-9]\"]]],0,0,0,0,0,0,0,\"8~10\"],\"TK\":[\"690\",\"00\",\"[2-47]\\\\d{3,6}\",[4,5,6,7]],\"TL\":[\"670\",\"00\",\"7\\\\d{7}|(?:[2-47]\\\\d|[89]0)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-489]|70\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"7\"]]]],\"TM\":[\"993\",\"810\",\"(?:[1-6]\\\\d|71)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"12\"],\"(8 $1)\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-5]\"],\"(8 $1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[67]\"],\"8 $1\"]],\"8\",0,0,0,0,0,0,\"8~10\"],\"TN\":[\"216\",\"00\",\"[2-57-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-57-9]\"]]]],\"TO\":[\"676\",\"00\",\"(?:0800|(?:[5-8]\\\\d\\\\d|999)\\\\d)\\\\d{3}|[2-8]\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1-$2\",[\"[2-4]|50|6[09]|7[0-24-69]|8[05]\"]],[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]]]],\"TR\":[\"90\",\"00\",\"4\\\\d{6}|8\\\\d{11,12}|(?:[2-58]\\\\d\\\\d|900)\\\\d{7}\",[7,10,12,13],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"512|8[01589]|90\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5(?:[0-59]|61)\",\"5(?:[0-59]|61[06])\",\"5(?:[0-59]|61[06]1)\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24][1-8]|3[1-9]\"],\"(0$1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{6,7})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1]],\"0\"],\"TT\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-46-8]\\\\d{6})$|1\",\"868$1\",0,\"868\"],\"TV\":[\"688\",\"00\",\"(?:2|7\\\\d\\\\d|90)\\\\d{4}\",[5,6,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"TW\":[\"886\",\"0(?:0[25-79]|19)\",\"[2-689]\\\\d{8}|7\\\\d{9,10}|[2-8]\\\\d{7}|2\\\\d{6}\",[7,8,9,10,11],[[\"(\\\\d{2})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"202\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[258]0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]\",\"[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\"#\"],\"TZ\":[\"255\",\"00[056]\",\"(?:[25-8]\\\\d|41|90)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[24]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[67]\"],\"0$1\"]],\"0\"],\"UA\":[\"380\",\"00\",\"[89]\\\\d{9}|[3-9]\\\\d{8}\",[9,10],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]\",\"6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])\",\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|89|9[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"0~0\"],\"UG\":[\"256\",\"00[057]\",\"800\\\\d{6}|(?:[29]0|[347]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"202\",\"2024\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[27-9]|4(?:6[45]|[7-9])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[34]\"],\"0$1\"]],\"0\"],\"US\":[\"1\",\"011\",\"[2-9]\\\\d{9}|3\\\\d{6}\",[10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"310\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"($1) $2-$3\",[\"[2-9]\"],0,1,\"$1-$2-$3\"]],\"1\",0,0,0,0,0,[[\"(?:3052(?:0[0-8]|[1-9]\\\\d)|5056(?:[0-35-9]\\\\d|4[468]))\\\\d{4}|(?:2742|305[3-9]|472[247-9]|505[2-57-9]|983[2-47-9])\\\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-47-9]|1[02-9]|2[0135-79]|3[0-24679]|4[167]|5[0-2]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[0-247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\\\d{6}\"],[\"\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\"],0,0,0,[\"305209\\\\d{4}\"]]],\"UY\":[\"598\",\"0(?:0|1[3-9]\\\\d)\",\"0004\\\\d{2,9}|[1249]\\\\d{7}|(?:[49]\\\\d|80)\\\\d{5}\",[6,7,8,9,10,11,12,13],[[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[49]0|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[124]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3 $4\",[\"0\"]]],\"0\",0,0,0,0,0,0,\"00\",\" int. \"],\"UZ\":[\"998\",\"00\",\"(?:20|33|[5-9]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[235-9]\"]]]],\"VA\":[\"39\",\"00\",\"0\\\\d{5,10}|3[0-8]\\\\d{7,10}|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?|(?:1\\\\d|39)\\\\d{7,8}\",[6,7,8,9,10,11,12],0,0,0,0,0,0,\"06698\"],\"VC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|784|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"784$1\",0,\"784\"],\"VE\":[\"58\",\"00\",\"[68]00\\\\d{7}|(?:[24]\\\\d|[59]0)\\\\d{8}\",[10],[[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"[24-689]\"],\"0$1\"]],\"0\"],\"VG\":[\"1\",\"011\",\"(?:284|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-578]\\\\d{6})$|1\",\"284$1\",0,\"284\"],\"VI\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:34|90)0\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"340$1\",0,\"340\"],\"VN\":[\"84\",\"00\",\"[12]\\\\d{9}|[135-9]\\\\d{8}|[16]\\\\d{7}|[16-8]\\\\d{6}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"1\"],0,1],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[357-9]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[48]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\",1]],\"0\"],\"VU\":[\"678\",\"00\",\"[57-9]\\\\d{6}|(?:[238]\\\\d|48)\\\\d{3}\",[5,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[57-9]\"]]]],\"WF\":[\"681\",\"00\",\"(?:40|72|8\\\\d{4})\\\\d{4}|[89]\\\\d{5}\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[47-9]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]]],\"WS\":[\"685\",\"0\",\"(?:[2-6]|8\\\\d{5})\\\\d{4}|[78]\\\\d{6}|[68]\\\\d{5}\",[5,6,7,10],[[\"(\\\\d{5})\",\"$1\",[\"[2-5]|6[1-9]\"]],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"[68]\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"XK\":[\"383\",\"00\",\"2\\\\d{7,8}|3\\\\d{7,11}|(?:4\\\\d\\\\d|[89]00)\\\\d{5}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2|39\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7,10})\",\"$1 $2\",[\"3\"],\"0$1\"]],\"0\"],\"YE\":[\"967\",\"00\",\"(?:1|7\\\\d)\\\\d{7}|[1-7]\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-6]|7(?:[24-6]|8[0-7])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"YT\":[\"262\",\"00\",\"7093\\\\d{5}|(?:80|9\\\\d)\\\\d{7}|(?:26|63)9\\\\d{6}\",[9],0,\"0\",0,0,0,0,0,[[\"269(?:0[0-467]|15|5[0-4]|6\\\\d|[78]0)\\\\d{4}\"],[\"(?:639(?:0[0-79]|1[019]|[267]\\\\d|3[09]|40|5[05-9]|9[04-79])|7093[5-7])\\\\d{4}\"],[\"80\\\\d{7}\"],0,0,0,0,0,[\"9(?:(?:39|47)8[01]|769\\\\d)\\\\d{4}\"]]],\"ZA\":[\"27\",\"00\",\"[1-79]\\\\d{8}|8\\\\d{4,9}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"860\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"ZM\":[\"260\",\"00\",\"800\\\\d{6}|(?:21|63|[79]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[28]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[79]\"],\"0$1\"]],\"0\"],\"ZW\":[\"263\",\"00\",\"2(?:[0-57-9]\\\\d{6,8}|6[0-24-9]\\\\d{6,7})|[38]\\\\d{9}|[35-8]\\\\d{8}|[3-6]\\\\d{7}|[1-689]\\\\d{6}|[1-3569]\\\\d{5}|[1356]\\\\d{4}\",[5,6,7,8,9,10],[[\"(\\\\d{3})(\\\\d{3,5})\",\"$1 $2\",[\"2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"80\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2\",\"2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)\",\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"29[013-9]|39|54\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,5})\",\"$1 $2\",[\"(?:25|54)8\",\"258|5483\"],\"0$1\"]],\"0\"]},\"nonGeographic\":{\"800\":[\"800\",0,\"(?:00|[1-9]\\\\d)\\\\d{6}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"\\\\d\"]]],0,0,0,0,0,0,[0,0,[\"(?:00|[1-9]\\\\d)\\\\d{6}\"]]],\"808\":[\"808\",0,\"[1-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[1-9]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,0,[\"[1-9]\\\\d{7}\"]]],\"870\":[\"870\",0,\"7\\\\d{11}|[235-7]\\\\d{8}\",[9,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-7]\"]]],0,0,0,0,0,0,[0,[\"(?:[356]|774[45])\\\\d{8}|7[6-8]\\\\d{7}\"],0,0,0,0,0,0,[\"2\\\\d{8}\",[9]]]],\"878\":[\"878\",0,\"10\\\\d{10}\",[12],[[\"(\\\\d{2})(\\\\d{5})(\\\\d{5})\",\"$1 $2 $3\",[\"1\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"10\\\\d{10}\"]]],\"881\":[\"881\",0,\"6\\\\d{9}|[0-36-9]\\\\d{8}\",[9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"[0-37-9]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{5,6})\",\"$1 $2 $3\",[\"6\"]]],0,0,0,0,0,0,[0,[\"6\\\\d{9}|[0-36-9]\\\\d{8}\"]]],\"882\":[\"882\",0,\"[13]\\\\d{6}(?:\\\\d{2,5})?|[19]\\\\d{7}|(?:[25]\\\\d\\\\d|4)\\\\d{7}(?:\\\\d{2})?\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"16|342\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"49\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"1[36]|9\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"3[23]\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"16\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|23|3(?:[15]|4[57])|4|51\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"34\"]],[\"(\\\\d{2})(\\\\d{4,5})(\\\\d{5})\",\"$1 $2 $3\",[\"[1-35]\"]]],0,0,0,0,0,0,[0,[\"342\\\\d{4}|(?:337|49)\\\\d{6}|(?:3(?:2|47|7\\\\d{3})|50\\\\d{3})\\\\d{7}\",[7,8,9,10,12]],0,0,0,[\"348[57]\\\\d{7}\",[11]],0,0,[\"1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\\\d{4}|6\\\\d{5,10})|(?:345\\\\d|9[89])\\\\d{6}|(?:10|2(?:3|85\\\\d)|3(?:[15]|[69]\\\\d\\\\d)|4[15-8]|51)\\\\d{8}\"]]],\"883\":[\"883\",0,\"(?:[1-4]\\\\d|51)\\\\d{6,10}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,8})\",\"$1 $2 $3\",[\"[14]|2[24-689]|3[02-689]|51[24-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"510\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"21\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"51[13]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[235]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"(?:2(?:00\\\\d\\\\d|10)|(?:370[1-9]|51\\\\d0)\\\\d)\\\\d{7}|51(?:00\\\\d{5}|[24-9]0\\\\d{4,7})|(?:1[0-79]|2[24-689]|3[02-689]|4[0-4])0\\\\d{5,9}\"]]],\"888\":[\"888\",0,\"\\\\d{11}\",[11],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\"]],0,0,0,0,0,0,[0,0,0,0,0,0,[\"\\\\d{11}\"]]],\"979\":[\"979\",0,\"[1359]\\\\d{8}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1359]\"]]],0,0,0,0,0,0,[0,0,0,[\"[1359]\\\\d{8}\"]]]}}","var objectConstructor = {}.constructor;\nexport default function isObject(object) {\n  return object !== undefined && object !== null && object.constructor === objectConstructor;\n}\n//# sourceMappingURL=isObject.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport isObject from './helpers/isObject.js'; // Extracts the following properties from function arguments:\n// * input `text`\n// * `options` object\n// * `metadata` JSON\n\nexport default function normalizeArguments(args) {\n  var _Array$prototype$slic = Array.prototype.slice.call(args),\n      _Array$prototype$slic2 = _slicedToArray(_Array$prototype$slic, 4),\n      arg_1 = _Array$prototype$slic2[0],\n      arg_2 = _Array$prototype$slic2[1],\n      arg_3 = _Array$prototype$slic2[2],\n      arg_4 = _Array$prototype$slic2[3];\n\n  var text;\n  var options;\n  var metadata; // If the phone number is passed as a string.\n  // `parsePhoneNumber('88005553535', ...)`.\n\n  if (typeof arg_1 === 'string') {\n    text = arg_1;\n  } else throw new TypeError('A text for parsing must be a string.'); // If \"default country\" argument is being passed then move it to `options`.\n  // `parsePhoneNumber('88005553535', 'RU', [options], metadata)`.\n\n\n  if (!arg_2 || typeof arg_2 === 'string') {\n    if (arg_4) {\n      options = arg_3;\n      metadata = arg_4;\n    } else {\n      options = undefined;\n      metadata = arg_3;\n    }\n\n    if (arg_2) {\n      options = _objectSpread({\n        defaultCountry: arg_2\n      }, options);\n    }\n  } // `defaultCountry` is not passed.\n  // Example: `parsePhoneNumber('+78005553535', [options], metadata)`.\n  else if (isObject(arg_2)) {\n    if (arg_3) {\n      options = arg_2;\n      metadata = arg_3;\n    } else {\n      metadata = arg_2;\n    }\n  } else throw new Error(\"Invalid second argument: \".concat(arg_2));\n\n  return {\n    text: text,\n    options: options,\n    metadata: metadata\n  };\n}\n//# sourceMappingURL=normalizeArguments.js.map","// The minimum length of the national significant number.\nexport var MIN_LENGTH_FOR_NSN = 2; // The ITU says the maximum length should be 15,\n// but one can find longer numbers in Germany.\n\nexport var MAX_LENGTH_FOR_NSN = 17; // The maximum length of the country calling code.\n\nexport var MAX_LENGTH_COUNTRY_CODE = 3; // Digits accepted in phone numbers\n// (ascii, fullwidth, arabic-indic, and eastern arabic digits).\n\nexport var VALID_DIGITS = \"0-9\\uFF10-\\uFF19\\u0660-\\u0669\\u06F0-\\u06F9\"; // `DASHES` will be right after the opening square bracket of the \"character class\"\n\nvar DASHES = \"-\\u2010-\\u2015\\u2212\\u30FC\\uFF0D\";\nvar SLASHES = \"\\uFF0F/\";\nvar DOTS = \"\\uFF0E.\";\nexport var WHITESPACE = \" \\xA0\\xAD\\u200B\\u2060\\u3000\";\nvar BRACKETS = \"()\\uFF08\\uFF09\\uFF3B\\uFF3D\\\\[\\\\]\"; // export const OPENING_BRACKETS = '(\\uFF08\\uFF3B\\\\\\['\n\nvar TILDES = \"~\\u2053\\u223C\\uFF5E\"; // Regular expression of acceptable punctuation found in phone numbers. This\n// excludes punctuation found as a leading character only. This consists of dash\n// characters, white space characters, full stops, slashes, square brackets,\n// parentheses and tildes. Full-width variants are also present.\n\nexport var VALID_PUNCTUATION = \"\".concat(DASHES).concat(SLASHES).concat(DOTS).concat(WHITESPACE).concat(BRACKETS).concat(TILDES);\nexport var PLUS_CHARS = \"+\\uFF0B\"; // const LEADING_PLUS_CHARS_PATTERN = new RegExp('^[' + PLUS_CHARS + ']+')\n//# sourceMappingURL=constants.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n// https://stackoverflow.com/a/46971044/970769\n// \"Breaking changes in Typescript 2.1\"\n// \"Extending built-ins like Error, Array, and Map may no longer work.\"\n// \"As a recommendation, you can manually adjust the prototype immediately after any super(...) calls.\"\n// https://github.com/Microsoft/TypeScript-wiki/blob/main/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\nvar ParseError = /*#__PURE__*/function (_Error) {\n  _inherits(ParseError, _Error);\n\n  var _super = _createSuper(ParseError);\n\n  function ParseError(code) {\n    var _this;\n\n    _classCallCheck(this, ParseError);\n\n    _this = _super.call(this, code); // Set the prototype explicitly.\n    // Any subclass of FooError will have to manually set the prototype as well.\n\n    Object.setPrototypeOf(_assertThisInitialized(_this), ParseError.prototype);\n    _this.name = _this.constructor.name;\n    return _this;\n  }\n\n  return _createClass(ParseError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nexport { ParseError as default };\n//# sourceMappingURL=ParseError.js.map","// Copy-pasted from:\n// https://github.com/substack/semver-compare/blob/master/index.js\n//\n// Inlining this function because some users reported issues with\n// importing from `semver-compare` in a browser with ES6 \"native\" modules.\n//\n// Fixes `semver-compare` not being able to compare versions with alpha/beta/etc \"tags\".\n// https://github.com/catamphetamine/libphonenumber-js/issues/381\nexport default function (a, b) {\n  a = a.split('-');\n  b = b.split('-');\n  var pa = a[0].split('.');\n  var pb = b[0].split('.');\n\n  for (var i = 0; i < 3; i++) {\n    var na = Number(pa[i]);\n    var nb = Number(pb[i]);\n    if (na > nb) return 1;\n    if (nb > na) return -1;\n    if (!isNaN(na) && isNaN(nb)) return 1;\n    if (isNaN(na) && !isNaN(nb)) return -1;\n  }\n\n  if (a[1] && b[1]) {\n    return a[1] > b[1] ? 1 : a[1] < b[1] ? -1 : 0;\n  }\n\n  return !a[1] && b[1] ? 1 : a[1] && !b[1] ? -1 : 0;\n}\n//# sourceMappingURL=semver-compare.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport compare from './tools/semver-compare.js';\nimport isObject from './helpers/isObject.js'; // Added \"possibleLengths\" and renamed\n// \"country_phone_code_to_countries\" to \"country_calling_codes\".\n\nvar V2 = '1.0.18'; // Added \"idd_prefix\" and \"default_idd_prefix\".\n\nvar V3 = '1.2.0'; // Moved `001` country code to \"nonGeographic\" section of metadata.\n\nvar V4 = '1.7.35';\nvar DEFAULT_EXT_PREFIX = ' ext. ';\nvar CALLING_CODE_REG_EXP = /^\\d+$/;\n/**\r\n * See: https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md\r\n */\n\nvar Metadata = /*#__PURE__*/function () {\n  function Metadata(metadata) {\n    _classCallCheck(this, Metadata);\n\n    validateMetadata(metadata);\n    this.metadata = metadata;\n    setVersion.call(this, metadata);\n  }\n\n  _createClass(Metadata, [{\n    key: \"getCountries\",\n    value: function getCountries() {\n      return Object.keys(this.metadata.countries).filter(function (_) {\n        return _ !== '001';\n      });\n    }\n  }, {\n    key: \"getCountryMetadata\",\n    value: function getCountryMetadata(countryCode) {\n      return this.metadata.countries[countryCode];\n    }\n  }, {\n    key: \"nonGeographic\",\n    value: function nonGeographic() {\n      if (this.v1 || this.v2 || this.v3) return; // `nonGeographical` was a typo.\n      // It's present in metadata generated from `1.7.35` to `1.7.37`.\n      // The test case could be found by searching for \"nonGeographical\".\n\n      return this.metadata.nonGeographic || this.metadata.nonGeographical;\n    }\n  }, {\n    key: \"hasCountry\",\n    value: function hasCountry(country) {\n      return this.getCountryMetadata(country) !== undefined;\n    }\n  }, {\n    key: \"hasCallingCode\",\n    value: function hasCallingCode(callingCode) {\n      if (this.getCountryCodesForCallingCode(callingCode)) {\n        return true;\n      }\n\n      if (this.nonGeographic()) {\n        if (this.nonGeographic()[callingCode]) {\n          return true;\n        }\n      } else {\n        // A hacky workaround for old custom metadata (generated before V4).\n        var countryCodes = this.countryCallingCodes()[callingCode];\n\n        if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n          return true;\n        }\n      }\n    }\n  }, {\n    key: \"isNonGeographicCallingCode\",\n    value: function isNonGeographicCallingCode(callingCode) {\n      if (this.nonGeographic()) {\n        return this.nonGeographic()[callingCode] ? true : false;\n      } else {\n        return this.getCountryCodesForCallingCode(callingCode) ? false : true;\n      }\n    } // Deprecated.\n\n  }, {\n    key: \"country\",\n    value: function country(countryCode) {\n      return this.selectNumberingPlan(countryCode);\n    }\n  }, {\n    key: \"selectNumberingPlan\",\n    value: function selectNumberingPlan(countryCode, callingCode) {\n      // Supports just passing `callingCode` as the first argument.\n      if (countryCode && CALLING_CODE_REG_EXP.test(countryCode)) {\n        callingCode = countryCode;\n        countryCode = null;\n      }\n\n      if (countryCode && countryCode !== '001') {\n        if (!this.hasCountry(countryCode)) {\n          throw new Error(\"Unknown country: \".concat(countryCode));\n        }\n\n        this.numberingPlan = new NumberingPlan(this.getCountryMetadata(countryCode), this);\n      } else if (callingCode) {\n        if (!this.hasCallingCode(callingCode)) {\n          throw new Error(\"Unknown calling code: \".concat(callingCode));\n        }\n\n        this.numberingPlan = new NumberingPlan(this.getNumberingPlanMetadata(callingCode), this);\n      } else {\n        this.numberingPlan = undefined;\n      }\n\n      return this;\n    }\n  }, {\n    key: \"getCountryCodesForCallingCode\",\n    value: function getCountryCodesForCallingCode(callingCode) {\n      var countryCodes = this.countryCallingCodes()[callingCode];\n\n      if (countryCodes) {\n        // Metadata before V4 included \"non-geographic entity\" calling codes\n        // inside `country_calling_codes` (for example, `\"881\":[\"001\"]`).\n        // Now the semantics of `country_calling_codes` has changed:\n        // it's specifically for \"countries\" now.\n        // Older versions of custom metadata will simply skip parsing\n        // \"non-geographic entity\" phone numbers with new versions\n        // of this library: it's not considered a bug,\n        // because such numbers are extremely rare,\n        // and developers extremely rarely use custom metadata.\n        if (countryCodes.length === 1 && countryCodes[0].length === 3) {\n          return;\n        }\n\n        return countryCodes;\n      }\n    }\n  }, {\n    key: \"getCountryCodeForCallingCode\",\n    value: function getCountryCodeForCallingCode(callingCode) {\n      var countryCodes = this.getCountryCodesForCallingCode(callingCode);\n\n      if (countryCodes) {\n        return countryCodes[0];\n      }\n    }\n  }, {\n    key: \"getNumberingPlanMetadata\",\n    value: function getNumberingPlanMetadata(callingCode) {\n      var countryCode = this.getCountryCodeForCallingCode(callingCode);\n\n      if (countryCode) {\n        return this.getCountryMetadata(countryCode);\n      }\n\n      if (this.nonGeographic()) {\n        var metadata = this.nonGeographic()[callingCode];\n\n        if (metadata) {\n          return metadata;\n        }\n      } else {\n        // A hacky workaround for old custom metadata (generated before V4).\n        // In that metadata, there was no concept of \"non-geographic\" metadata\n        // so metadata for `001` country code was stored along with other countries.\n        // The test case can be found by searching for:\n        // \"should work around `nonGeographic` metadata not existing\".\n        var countryCodes = this.countryCallingCodes()[callingCode];\n\n        if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n          return this.metadata.countries['001'];\n        }\n      }\n    } // Deprecated.\n\n  }, {\n    key: \"countryCallingCode\",\n    value: function countryCallingCode() {\n      return this.numberingPlan.callingCode();\n    } // Deprecated.\n\n  }, {\n    key: \"IDDPrefix\",\n    value: function IDDPrefix() {\n      return this.numberingPlan.IDDPrefix();\n    } // Deprecated.\n\n  }, {\n    key: \"defaultIDDPrefix\",\n    value: function defaultIDDPrefix() {\n      return this.numberingPlan.defaultIDDPrefix();\n    } // Deprecated.\n\n  }, {\n    key: \"nationalNumberPattern\",\n    value: function nationalNumberPattern() {\n      return this.numberingPlan.nationalNumberPattern();\n    } // Deprecated.\n\n  }, {\n    key: \"possibleLengths\",\n    value: function possibleLengths() {\n      return this.numberingPlan.possibleLengths();\n    } // Deprecated.\n\n  }, {\n    key: \"formats\",\n    value: function formats() {\n      return this.numberingPlan.formats();\n    } // Deprecated.\n\n  }, {\n    key: \"nationalPrefixForParsing\",\n    value: function nationalPrefixForParsing() {\n      return this.numberingPlan.nationalPrefixForParsing();\n    } // Deprecated.\n\n  }, {\n    key: \"nationalPrefixTransformRule\",\n    value: function nationalPrefixTransformRule() {\n      return this.numberingPlan.nationalPrefixTransformRule();\n    } // Deprecated.\n\n  }, {\n    key: \"leadingDigits\",\n    value: function leadingDigits() {\n      return this.numberingPlan.leadingDigits();\n    } // Deprecated.\n\n  }, {\n    key: \"hasTypes\",\n    value: function hasTypes() {\n      return this.numberingPlan.hasTypes();\n    } // Deprecated.\n\n  }, {\n    key: \"type\",\n    value: function type(_type) {\n      return this.numberingPlan.type(_type);\n    } // Deprecated.\n\n  }, {\n    key: \"ext\",\n    value: function ext() {\n      return this.numberingPlan.ext();\n    }\n  }, {\n    key: \"countryCallingCodes\",\n    value: function countryCallingCodes() {\n      if (this.v1) return this.metadata.country_phone_code_to_countries;\n      return this.metadata.country_calling_codes;\n    } // Deprecated.\n\n  }, {\n    key: \"chooseCountryByCountryCallingCode\",\n    value: function chooseCountryByCountryCallingCode(callingCode) {\n      return this.selectNumberingPlan(callingCode);\n    }\n  }, {\n    key: \"hasSelectedNumberingPlan\",\n    value: function hasSelectedNumberingPlan() {\n      return this.numberingPlan !== undefined;\n    }\n  }]);\n\n  return Metadata;\n}();\n\nexport { Metadata as default };\n\nvar NumberingPlan = /*#__PURE__*/function () {\n  function NumberingPlan(metadata, globalMetadataObject) {\n    _classCallCheck(this, NumberingPlan);\n\n    this.globalMetadataObject = globalMetadataObject;\n    this.metadata = metadata;\n    setVersion.call(this, globalMetadataObject.metadata);\n  }\n\n  _createClass(NumberingPlan, [{\n    key: \"callingCode\",\n    value: function callingCode() {\n      return this.metadata[0];\n    } // Formatting information for regions which share\n    // a country calling code is contained by only one region\n    // for performance reasons. For example, for NANPA region\n    // (\"North American Numbering Plan Administration\",\n    //  which includes USA, Canada, Cayman Islands, Bahamas, etc)\n    // it will be contained in the metadata for `US`.\n\n  }, {\n    key: \"getDefaultCountryMetadataForRegion\",\n    value: function getDefaultCountryMetadataForRegion() {\n      return this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode());\n    } // Is always present.\n\n  }, {\n    key: \"IDDPrefix\",\n    value: function IDDPrefix() {\n      if (this.v1 || this.v2) return;\n      return this.metadata[1];\n    } // Is only present when a country supports multiple IDD prefixes.\n\n  }, {\n    key: \"defaultIDDPrefix\",\n    value: function defaultIDDPrefix() {\n      if (this.v1 || this.v2) return;\n      return this.metadata[12];\n    }\n  }, {\n    key: \"nationalNumberPattern\",\n    value: function nationalNumberPattern() {\n      if (this.v1 || this.v2) return this.metadata[1];\n      return this.metadata[2];\n    } // \"possible length\" data is always present in Google's metadata.\n\n  }, {\n    key: \"possibleLengths\",\n    value: function possibleLengths() {\n      if (this.v1) return;\n      return this.metadata[this.v2 ? 2 : 3];\n    }\n  }, {\n    key: \"_getFormats\",\n    value: function _getFormats(metadata) {\n      return metadata[this.v1 ? 2 : this.v2 ? 3 : 4];\n    } // For countries of the same region (e.g. NANPA)\n    // formats are all stored in the \"main\" country for that region.\n    // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n  }, {\n    key: \"formats\",\n    value: function formats() {\n      var _this = this;\n\n      var formats = this._getFormats(this.metadata) || this._getFormats(this.getDefaultCountryMetadataForRegion()) || [];\n      return formats.map(function (_) {\n        return new Format(_, _this);\n      });\n    }\n  }, {\n    key: \"nationalPrefix\",\n    value: function nationalPrefix() {\n      return this.metadata[this.v1 ? 3 : this.v2 ? 4 : 5];\n    }\n  }, {\n    key: \"_getNationalPrefixFormattingRule\",\n    value: function _getNationalPrefixFormattingRule(metadata) {\n      return metadata[this.v1 ? 4 : this.v2 ? 5 : 6];\n    } // For countries of the same region (e.g. NANPA)\n    // national prefix formatting rule is stored in the \"main\" country for that region.\n    // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n  }, {\n    key: \"nationalPrefixFormattingRule\",\n    value: function nationalPrefixFormattingRule() {\n      return this._getNationalPrefixFormattingRule(this.metadata) || this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion());\n    }\n  }, {\n    key: \"_nationalPrefixForParsing\",\n    value: function _nationalPrefixForParsing() {\n      return this.metadata[this.v1 ? 5 : this.v2 ? 6 : 7];\n    }\n  }, {\n    key: \"nationalPrefixForParsing\",\n    value: function nationalPrefixForParsing() {\n      // If `national_prefix_for_parsing` is not set explicitly,\n      // then infer it from `national_prefix` (if any)\n      return this._nationalPrefixForParsing() || this.nationalPrefix();\n    }\n  }, {\n    key: \"nationalPrefixTransformRule\",\n    value: function nationalPrefixTransformRule() {\n      return this.metadata[this.v1 ? 6 : this.v2 ? 7 : 8];\n    }\n  }, {\n    key: \"_getNationalPrefixIsOptionalWhenFormatting\",\n    value: function _getNationalPrefixIsOptionalWhenFormatting() {\n      return !!this.metadata[this.v1 ? 7 : this.v2 ? 8 : 9];\n    } // For countries of the same region (e.g. NANPA)\n    // \"national prefix is optional when formatting\" flag is\n    // stored in the \"main\" country for that region.\n    // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n  }, {\n    key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n    value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n      return this._getNationalPrefixIsOptionalWhenFormatting(this.metadata) || this._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion());\n    }\n  }, {\n    key: \"leadingDigits\",\n    value: function leadingDigits() {\n      return this.metadata[this.v1 ? 8 : this.v2 ? 9 : 10];\n    }\n  }, {\n    key: \"types\",\n    value: function types() {\n      return this.metadata[this.v1 ? 9 : this.v2 ? 10 : 11];\n    }\n  }, {\n    key: \"hasTypes\",\n    value: function hasTypes() {\n      // Versions 1.2.0 - 1.2.4: can be `[]`.\n\n      /* istanbul ignore next */\n      if (this.types() && this.types().length === 0) {\n        return false;\n      } // Versions <= 1.2.4: can be `undefined`.\n      // Version >= 1.2.5: can be `0`.\n\n\n      return !!this.types();\n    }\n  }, {\n    key: \"type\",\n    value: function type(_type2) {\n      if (this.hasTypes() && getType(this.types(), _type2)) {\n        return new Type(getType(this.types(), _type2), this);\n      }\n    }\n  }, {\n    key: \"ext\",\n    value: function ext() {\n      if (this.v1 || this.v2) return DEFAULT_EXT_PREFIX;\n      return this.metadata[13] || DEFAULT_EXT_PREFIX;\n    }\n  }]);\n\n  return NumberingPlan;\n}();\n\nvar Format = /*#__PURE__*/function () {\n  function Format(format, metadata) {\n    _classCallCheck(this, Format);\n\n    this._format = format;\n    this.metadata = metadata;\n  }\n\n  _createClass(Format, [{\n    key: \"pattern\",\n    value: function pattern() {\n      return this._format[0];\n    }\n  }, {\n    key: \"format\",\n    value: function format() {\n      return this._format[1];\n    }\n  }, {\n    key: \"leadingDigitsPatterns\",\n    value: function leadingDigitsPatterns() {\n      return this._format[2] || [];\n    }\n  }, {\n    key: \"nationalPrefixFormattingRule\",\n    value: function nationalPrefixFormattingRule() {\n      return this._format[3] || this.metadata.nationalPrefixFormattingRule();\n    }\n  }, {\n    key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n    value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n      return !!this._format[4] || this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n    }\n  }, {\n    key: \"nationalPrefixIsMandatoryWhenFormattingInNationalFormat\",\n    value: function nationalPrefixIsMandatoryWhenFormattingInNationalFormat() {\n      // National prefix is omitted if there's no national prefix formatting rule\n      // set for this country, or when the national prefix formatting rule\n      // contains no national prefix itself, or when this rule is set but\n      // national prefix is optional for this phone number format\n      // (and it is not enforced explicitly)\n      return this.usesNationalPrefix() && !this.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n    } // Checks whether national prefix formatting rule contains national prefix.\n\n  }, {\n    key: \"usesNationalPrefix\",\n    value: function usesNationalPrefix() {\n      return this.nationalPrefixFormattingRule() && // Check that national prefix formatting rule is not a \"dummy\" one.\n      !FIRST_GROUP_ONLY_PREFIX_PATTERN.test(this.nationalPrefixFormattingRule()) // In compressed metadata, `this.nationalPrefixFormattingRule()` is `0`\n      // when `national_prefix_formatting_rule` is not present.\n      // So, `true` or `false` are returned explicitly here, so that\n      // `0` number isn't returned.\n      ? true : false;\n    }\n  }, {\n    key: \"internationalFormat\",\n    value: function internationalFormat() {\n      return this._format[5] || this.format();\n    }\n  }]);\n\n  return Format;\n}();\n/**\r\n * A pattern that is used to determine if the national prefix formatting rule\r\n * has the first group only, i.e., does not start with the national prefix.\r\n * Note that the pattern explicitly allows for unbalanced parentheses.\r\n */\n\n\nvar FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\\(?\\$1\\)?$/;\n\nvar Type = /*#__PURE__*/function () {\n  function Type(type, metadata) {\n    _classCallCheck(this, Type);\n\n    this.type = type;\n    this.metadata = metadata;\n  }\n\n  _createClass(Type, [{\n    key: \"pattern\",\n    value: function pattern() {\n      if (this.metadata.v1) return this.type;\n      return this.type[0];\n    }\n  }, {\n    key: \"possibleLengths\",\n    value: function possibleLengths() {\n      if (this.metadata.v1) return;\n      return this.type[1] || this.metadata.possibleLengths();\n    }\n  }]);\n\n  return Type;\n}();\n\nfunction getType(types, type) {\n  switch (type) {\n    case 'FIXED_LINE':\n      return types[0];\n\n    case 'MOBILE':\n      return types[1];\n\n    case 'TOLL_FREE':\n      return types[2];\n\n    case 'PREMIUM_RATE':\n      return types[3];\n\n    case 'PERSONAL_NUMBER':\n      return types[4];\n\n    case 'VOICEMAIL':\n      return types[5];\n\n    case 'UAN':\n      return types[6];\n\n    case 'PAGER':\n      return types[7];\n\n    case 'VOIP':\n      return types[8];\n\n    case 'SHARED_COST':\n      return types[9];\n  }\n}\n\nexport function validateMetadata(metadata) {\n  if (!metadata) {\n    throw new Error('[libphonenumber-js] `metadata` argument not passed. Check your arguments.');\n  } // `country_phone_code_to_countries` was renamed to\n  // `country_calling_codes` in `1.0.18`.\n\n\n  if (!isObject(metadata) || !isObject(metadata.countries)) {\n    throw new Error(\"[libphonenumber-js] `metadata` argument was passed but it's not a valid metadata. Must be an object having `.countries` child object property. Got \".concat(isObject(metadata) ? 'an object of shape: { ' + Object.keys(metadata).join(', ') + ' }' : 'a ' + typeOf(metadata) + ': ' + metadata, \".\"));\n  }\n} // Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\nvar typeOf = function typeOf(_) {\n  return _typeof(_);\n};\n/**\r\n * Returns extension prefix for a country.\r\n * @param  {string} country\r\n * @param  {object} metadata\r\n * @return {string?}\r\n * @example\r\n * // Returns \" ext. \"\r\n * getExtPrefix(\"US\")\r\n */\n\n\nexport function getExtPrefix(country, metadata) {\n  metadata = new Metadata(metadata);\n\n  if (metadata.hasCountry(country)) {\n    return metadata.country(country).ext();\n  }\n\n  return DEFAULT_EXT_PREFIX;\n}\n/**\r\n * Returns \"country calling code\" for a country.\r\n * Throws an error if the country doesn't exist or isn't supported by this library.\r\n * @param  {string} country\r\n * @param  {object} metadata\r\n * @return {string}\r\n * @example\r\n * // Returns \"44\"\r\n * getCountryCallingCode(\"GB\")\r\n */\n\nexport function getCountryCallingCode(country, metadata) {\n  metadata = new Metadata(metadata);\n\n  if (metadata.hasCountry(country)) {\n    return metadata.country(country).countryCallingCode();\n  }\n\n  throw new Error(\"Unknown country: \".concat(country));\n}\nexport function isSupportedCountry(country, metadata) {\n  // metadata = new Metadata(metadata)\n  // return metadata.hasCountry(country)\n  return metadata.countries.hasOwnProperty(country);\n}\n\nfunction setVersion(metadata) {\n  var version = metadata.version;\n\n  if (typeof version === 'number') {\n    this.v1 = version === 1;\n    this.v2 = version === 2;\n    this.v3 = version === 3;\n    this.v4 = version === 4;\n  } else {\n    if (!version) {\n      this.v1 = true;\n    } else if (compare(version, V3) === -1) {\n      this.v2 = true;\n    } else if (compare(version, V4) === -1) {\n      this.v3 = true;\n    } else {\n      this.v4 = true;\n    }\n  }\n} // const ISO_COUNTRY_CODE = /^[A-Z]{2}$/\n// function isCountryCode(countryCode) {\n// \treturn ISO_COUNTRY_CODE.test(countryCodeOrCountryCallingCode)\n// }\n//# sourceMappingURL=metadata.js.map","import { VALID_DIGITS } from '../../constants.js'; // The RFC 3966 format for extensions.\n\nvar RFC3966_EXTN_PREFIX = ';ext=';\n/**\r\n * Helper method for constructing regular expressions for parsing. Creates\r\n * an expression that captures up to max_length digits.\r\n * @return {string} RegEx pattern to capture extension digits.\r\n */\n\nvar getExtensionDigitsPattern = function getExtensionDigitsPattern(maxLength) {\n  return \"([\".concat(VALID_DIGITS, \"]{1,\").concat(maxLength, \"})\");\n};\n/**\r\n * Helper initialiser method to create the regular-expression pattern to match\r\n * extensions.\r\n * Copy-pasted from Google's `libphonenumber`:\r\n * https://github.com/google/libphonenumber/blob/55b2646ec9393f4d3d6661b9c82ef9e258e8b829/javascript/i18n/phonenumbers/phonenumberutil.js#L759-L766\r\n * @return {string} RegEx pattern to capture extensions.\r\n */\n\n\nexport default function createExtensionPattern(purpose) {\n  // We cap the maximum length of an extension based on the ambiguity of the way\n  // the extension is prefixed. As per ITU, the officially allowed length for\n  // extensions is actually 40, but we don't support this since we haven't seen real\n  // examples and this introduces many false interpretations as the extension labels\n  // are not standardized.\n\n  /** @type {string} */\n  var extLimitAfterExplicitLabel = '20';\n  /** @type {string} */\n\n  var extLimitAfterLikelyLabel = '15';\n  /** @type {string} */\n\n  var extLimitAfterAmbiguousChar = '9';\n  /** @type {string} */\n\n  var extLimitWhenNotSure = '6';\n  /** @type {string} */\n\n  var possibleSeparatorsBetweenNumberAndExtLabel = \"[ \\xA0\\\\t,]*\"; // Optional full stop (.) or colon, followed by zero or more spaces/tabs/commas.\n\n  /** @type {string} */\n\n  var possibleCharsAfterExtLabel = \"[:\\\\.\\uFF0E]?[ \\xA0\\\\t,-]*\";\n  /** @type {string} */\n\n  var optionalExtnSuffix = \"#?\"; // Here the extension is called out in more explicit way, i.e mentioning it obvious\n  // patterns like \"ext.\".\n\n  /** @type {string} */\n\n  var explicitExtLabels = \"(?:e?xt(?:ensi(?:o\\u0301?|\\xF3))?n?|\\uFF45?\\uFF58\\uFF54\\uFF4E?|\\u0434\\u043E\\u0431|anexo)\"; // One-character symbols that can be used to indicate an extension, and less\n  // commonly used or more ambiguous extension labels.\n\n  /** @type {string} */\n\n  var ambiguousExtLabels = \"(?:[x\\uFF58#\\uFF03~\\uFF5E]|int|\\uFF49\\uFF4E\\uFF54)\"; // When extension is not separated clearly.\n\n  /** @type {string} */\n\n  var ambiguousSeparator = \"[- ]+\"; // This is the same as possibleSeparatorsBetweenNumberAndExtLabel, but not matching\n  // comma as extension label may have it.\n\n  /** @type {string} */\n\n  var possibleSeparatorsNumberExtLabelNoComma = \"[ \\xA0\\\\t]*\"; // \",,\" is commonly used for auto dialling the extension when connected. First\n  // comma is matched through possibleSeparatorsBetweenNumberAndExtLabel, so we do\n  // not repeat it here. Semi-colon works in Iphone and Android also to pop up a\n  // button with the extension number following.\n\n  /** @type {string} */\n\n  var autoDiallingAndExtLabelsFound = \"(?:,{2}|;)\";\n  /** @type {string} */\n\n  var rfcExtn = RFC3966_EXTN_PREFIX + getExtensionDigitsPattern(extLimitAfterExplicitLabel);\n  /** @type {string} */\n\n  var explicitExtn = possibleSeparatorsBetweenNumberAndExtLabel + explicitExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterExplicitLabel) + optionalExtnSuffix;\n  /** @type {string} */\n\n  var ambiguousExtn = possibleSeparatorsBetweenNumberAndExtLabel + ambiguousExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix;\n  /** @type {string} */\n\n  var americanStyleExtnWithSuffix = ambiguousSeparator + getExtensionDigitsPattern(extLimitWhenNotSure) + \"#\";\n  /** @type {string} */\n\n  var autoDiallingExtn = possibleSeparatorsNumberExtLabelNoComma + autoDiallingAndExtLabelsFound + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterLikelyLabel) + optionalExtnSuffix;\n  /** @type {string} */\n\n  var onlyCommasExtn = possibleSeparatorsNumberExtLabelNoComma + \"(?:,)+\" + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix; // The first regular expression covers RFC 3966 format, where the extension is added\n  // using \";ext=\". The second more generic where extension is mentioned with explicit\n  // labels like \"ext:\". In both the above cases we allow more numbers in extension than\n  // any other extension labels. The third one captures when single character extension\n  // labels or less commonly used labels are used. In such cases we capture fewer\n  // extension digits in order to reduce the chance of falsely interpreting two\n  // numbers beside each other as a number + extension. The fourth one covers the\n  // special case of American numbers where the extension is written with a hash\n  // at the end, such as \"- 503#\". The fifth one is exclusively for extension\n  // autodialling formats which are used when dialling and in this case we accept longer\n  // extensions. The last one is more liberal on the number of commas that acts as\n  // extension labels, so we have a strict cap on the number of digits in such extensions.\n\n  return rfcExtn + \"|\" + explicitExtn + \"|\" + ambiguousExtn + \"|\" + americanStyleExtnWithSuffix + \"|\" + autoDiallingExtn + \"|\" + onlyCommasExtn;\n}\n//# sourceMappingURL=createExtensionPattern.js.map","import { MIN_LENGTH_FOR_NSN, VALID_DIGITS, VALID_PUNCTUATION, PLUS_CHARS } from '../constants.js';\nimport createExtensionPattern from './extension/createExtensionPattern.js'; //  Regular expression of viable phone numbers. This is location independent.\n//  Checks we have at least three leading digits, and only valid punctuation,\n//  alpha characters and digits in the phone number. Does not include extension\n//  data. The symbol 'x' is allowed here as valid punctuation since it is often\n//  used as a placeholder for carrier codes, for example in Brazilian phone\n//  numbers. We also allow multiple '+' characters at the start.\n//\n//  Corresponds to the following:\n//  [digits]{minLengthNsn}|\n//  plus_sign*\n//  (([punctuation]|[star])*[digits]){3,}([punctuation]|[star]|[digits]|[alpha])*\n//\n//  The first reg-ex is to allow short numbers (two digits long) to be parsed if\n//  they are entered as \"15\" etc, but only if there is no punctuation in them.\n//  The second expression restricts the number of digits to three or more, but\n//  then allows them to be in international form, and to have alpha-characters\n//  and punctuation. We split up the two reg-exes here and combine them when\n//  creating the reg-ex VALID_PHONE_NUMBER_PATTERN itself so we can prefix it\n//  with ^ and append $ to each branch.\n//\n//  \"Note VALID_PUNCTUATION starts with a -,\n//   so must be the first in the range\" (c) Google devs.\n//  (wtf did they mean by saying that; probably nothing)\n//\n\nvar MIN_LENGTH_PHONE_NUMBER_PATTERN = '[' + VALID_DIGITS + ']{' + MIN_LENGTH_FOR_NSN + '}'; //\n// And this is the second reg-exp:\n// (see MIN_LENGTH_PHONE_NUMBER_PATTERN for a full description of this reg-exp)\n//\n\nexport var VALID_PHONE_NUMBER = '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){3,}' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']*'; // This regular expression isn't present in Google's `libphonenumber`\n// and is only used to determine whether the phone number being input\n// is too short for it to even consider it a \"valid\" number.\n// This is just a way to differentiate between a really invalid phone\n// number like \"abcde\" and a valid phone number that a user has just\n// started inputting, like \"+1\" or \"1\": both these cases would be\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\n// library can provide a more detailed error message — whether it's\n// really \"not a number\", or is it just a start of a valid phone number.\n\nvar VALID_PHONE_NUMBER_START_REG_EXP = new RegExp('^' + '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){1,2}' + '$', 'i');\nexport var VALID_PHONE_NUMBER_WITH_EXTENSION = VALID_PHONE_NUMBER + // Phone number extensions\n'(?:' + createExtensionPattern() + ')?'; // The combined regular expression for valid phone numbers:\n//\n\nvar VALID_PHONE_NUMBER_PATTERN = new RegExp( // Either a short two-digit-only phone number\n'^' + MIN_LENGTH_PHONE_NUMBER_PATTERN + '$' + '|' + // Or a longer fully parsed phone number (min 3 characters)\n'^' + VALID_PHONE_NUMBER_WITH_EXTENSION + '$', 'i'); // Checks to see if the string of characters could possibly be a phone number at\n// all. At the moment, checks to see that the string begins with at least 2\n// digits, ignoring any punctuation commonly found in phone numbers. This method\n// does not require the number to be normalized in advance - but does assume\n// that leading non-number symbols have been removed, such as by the method\n// `extract_possible_number`.\n//\n\nexport default function isViablePhoneNumber(number) {\n  return number.length >= MIN_LENGTH_FOR_NSN && VALID_PHONE_NUMBER_PATTERN.test(number);\n} // This is just a way to differentiate between a really invalid phone\n// number like \"abcde\" and a valid phone number that a user has just\n// started inputting, like \"+1\" or \"1\": both these cases would be\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\n// library can provide a more detailed error message — whether it's\n// really \"not a number\", or is it just a start of a valid phone number.\n\nexport function isViablePhoneNumberStart(number) {\n  return VALID_PHONE_NUMBER_START_REG_EXP.test(number);\n}\n//# sourceMappingURL=isViablePhoneNumber.js.map","import createExtensionPattern from './createExtensionPattern.js'; // Regexp of all known extension prefixes used by different regions followed by\n// 1 or more valid digits, for use when parsing.\n\nvar EXTN_PATTERN = new RegExp('(?:' + createExtensionPattern() + ')$', 'i'); // Strips any extension (as in, the part of the number dialled after the call is\n// connected, usually indicated with extn, ext, x or similar) from the end of\n// the number, and returns it.\n\nexport default function extractExtension(number) {\n  var start = number.search(EXTN_PATTERN);\n\n  if (start < 0) {\n    return {};\n  } // If we find a potential extension, and the number preceding this is a viable\n  // number, we assume it is an extension.\n\n\n  var numberWithoutExtension = number.slice(0, start);\n  var matches = number.match(EXTN_PATTERN);\n  var i = 1;\n\n  while (i < matches.length) {\n    if (matches[i]) {\n      return {\n        number: numberWithoutExtension,\n        ext: matches[i]\n      };\n    }\n\n    i++;\n  }\n}\n//# sourceMappingURL=extractExtension.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n// These mappings map a character (key) to a specific digit that should\n// replace it for normalization purposes. Non-European digits that\n// may be used in phone numbers are mapped to a European equivalent.\n//\n// E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n//\nexport var DIGITS = {\n  '0': '0',\n  '1': '1',\n  '2': '2',\n  '3': '3',\n  '4': '4',\n  '5': '5',\n  '6': '6',\n  '7': '7',\n  '8': '8',\n  '9': '9',\n  \"\\uFF10\": '0',\n  // Fullwidth digit 0\n  \"\\uFF11\": '1',\n  // Fullwidth digit 1\n  \"\\uFF12\": '2',\n  // Fullwidth digit 2\n  \"\\uFF13\": '3',\n  // Fullwidth digit 3\n  \"\\uFF14\": '4',\n  // Fullwidth digit 4\n  \"\\uFF15\": '5',\n  // Fullwidth digit 5\n  \"\\uFF16\": '6',\n  // Fullwidth digit 6\n  \"\\uFF17\": '7',\n  // Fullwidth digit 7\n  \"\\uFF18\": '8',\n  // Fullwidth digit 8\n  \"\\uFF19\": '9',\n  // Fullwidth digit 9\n  \"\\u0660\": '0',\n  // Arabic-indic digit 0\n  \"\\u0661\": '1',\n  // Arabic-indic digit 1\n  \"\\u0662\": '2',\n  // Arabic-indic digit 2\n  \"\\u0663\": '3',\n  // Arabic-indic digit 3\n  \"\\u0664\": '4',\n  // Arabic-indic digit 4\n  \"\\u0665\": '5',\n  // Arabic-indic digit 5\n  \"\\u0666\": '6',\n  // Arabic-indic digit 6\n  \"\\u0667\": '7',\n  // Arabic-indic digit 7\n  \"\\u0668\": '8',\n  // Arabic-indic digit 8\n  \"\\u0669\": '9',\n  // Arabic-indic digit 9\n  \"\\u06F0\": '0',\n  // Eastern-Arabic digit 0\n  \"\\u06F1\": '1',\n  // Eastern-Arabic digit 1\n  \"\\u06F2\": '2',\n  // Eastern-Arabic digit 2\n  \"\\u06F3\": '3',\n  // Eastern-Arabic digit 3\n  \"\\u06F4\": '4',\n  // Eastern-Arabic digit 4\n  \"\\u06F5\": '5',\n  // Eastern-Arabic digit 5\n  \"\\u06F6\": '6',\n  // Eastern-Arabic digit 6\n  \"\\u06F7\": '7',\n  // Eastern-Arabic digit 7\n  \"\\u06F8\": '8',\n  // Eastern-Arabic digit 8\n  \"\\u06F9\": '9' // Eastern-Arabic digit 9\n\n};\nexport function parseDigit(character) {\n  return DIGITS[character];\n}\n/**\r\n * Parses phone number digits from a string.\r\n * Drops all punctuation leaving only digits.\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param  {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * parseDigits('8 (800) 555')\r\n * // Outputs '8800555'.\r\n * ```\r\n */\n\nexport default function parseDigits(string) {\n  var result = ''; // Using `.split('')` here instead of normal `for ... of`\n  // because the importing application doesn't neccessarily include an ES6 polyfill.\n  // The `.split('')` approach discards \"exotic\" UTF-8 characters\n  // (the ones consisting of four bytes) but digits\n  // (including non-European ones) don't fall into that range\n  // so such \"exotic\" characters would be discarded anyway.\n\n  for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n    var character = _step.value;\n    var digit = parseDigit(character);\n\n    if (digit) {\n      result += digit;\n    }\n  }\n\n  return result;\n}\n//# sourceMappingURL=parseDigits.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { parseDigit } from './helpers/parseDigits.js';\n/**\r\n * Parses phone number characters from a string.\r\n * Drops all punctuation leaving only digits and the leading `+` sign (if any).\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param  {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * // Outputs '8800555'.\r\n * parseIncompletePhoneNumber('8 (800) 555')\r\n * // Outputs '+7800555'.\r\n * parseIncompletePhoneNumber('+7 800 555')\r\n * ```\r\n */\n\nexport default function parseIncompletePhoneNumber(string) {\n  var result = ''; // Using `.split('')` here instead of normal `for ... of`\n  // because the importing application doesn't neccessarily include an ES6 polyfill.\n  // The `.split('')` approach discards \"exotic\" UTF-8 characters\n  // (the ones consisting of four bytes) but digits\n  // (including non-European ones) don't fall into that range\n  // so such \"exotic\" characters would be discarded anyway.\n\n  for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n    var character = _step.value;\n    result += parsePhoneNumberCharacter(character, result) || '';\n  }\n\n  return result;\n}\n/**\r\n * Parses next character while parsing phone number digits (including a `+`)\r\n * from text: discards everything except `+` and digits, and `+` is only allowed\r\n * at the start of a phone number.\r\n * For example, is used in `react-phone-number-input` where it uses\r\n * [`input-format`](https://gitlab.com/catamphetamine/input-format).\r\n * @param  {string} character - Yet another character from raw input string.\r\n * @param  {string?} prevParsedCharacters - Previous parsed characters.\r\n * @param  {function?} emitEvent - An optional \"emit event\" function.\r\n * @return {string?} The parsed character.\r\n */\n\nexport function parsePhoneNumberCharacter(character, prevParsedCharacters, emitEvent) {\n  // Only allow a leading `+`.\n  if (character === '+') {\n    // If this `+` is not the first parsed character\n    // then discard it.\n    if (prevParsedCharacters) {\n      // `emitEvent` argument was added to this `export`ed function on Dec 26th, 2023.\n      // Any 3rd-party code that used to `import` and call this function before that\n      // won't be passing any `emitEvent` argument.\n      //\n      // The addition of the `emitEvent` argument was to fix the slightly-weird behavior\n      // of parsing an input string when the user inputs something like `\"2+7\"\n      // https://github.com/catamphetamine/react-phone-number-input/issues/437\n      //\n      // If the parser encounters an unexpected `+` in a string being parsed\n      // then it simply discards that out-of-place `+` and any following characters.\n      //\n      if (typeof emitEvent === 'function') {\n        emitEvent('end');\n      }\n\n      return;\n    }\n\n    return '+';\n  } // Allow digits.\n\n\n  return parseDigit(character);\n}\n//# sourceMappingURL=parseIncompletePhoneNumber.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\r\n * Merges two arrays.\r\n * @param  {*} a\r\n * @param  {*} b\r\n * @return {*}\r\n */\nexport default function mergeArrays(a, b) {\n  var merged = a.slice();\n\n  for (var _iterator = _createForOfIteratorHelperLoose(b), _step; !(_step = _iterator()).done;) {\n    var element = _step.value;\n\n    if (a.indexOf(element) < 0) {\n      merged.push(element);\n    }\n  }\n\n  return merged.sort(function (a, b) {\n    return a - b;\n  }); // ES6 version, requires Set polyfill.\n  // let merged = new Set(a)\n  // for (const element of b) {\n  // \tmerged.add(i)\n  // }\n  // return Array.from(merged).sort((a, b) => a - b)\n}\n//# sourceMappingURL=mergeArrays.js.map","import mergeArrays from './mergeArrays.js';\nexport default function checkNumberLength(nationalNumber, metadata) {\n  return checkNumberLengthForType(nationalNumber, undefined, metadata);\n} // Checks whether a number is possible for the country based on its length.\n// Should only be called for the \"new\" metadata which has \"possible lengths\".\n\nexport function checkNumberLengthForType(nationalNumber, type, metadata) {\n  var type_info = metadata.type(type); // There should always be \"<possiblePengths/>\" set for every type element.\n  // This is declared in the XML schema.\n  // For size efficiency, where a sub-description (e.g. fixed-line)\n  // has the same \"<possiblePengths/>\" as the \"general description\", this is missing,\n  // so we fall back to the \"general description\". Where no numbers of the type\n  // exist at all, there is one possible length (-1) which is guaranteed\n  // not to match the length of any real phone number.\n\n  var possible_lengths = type_info && type_info.possibleLengths() || metadata.possibleLengths(); // let local_lengths    = type_info && type.possibleLengthsLocal() || metadata.possibleLengthsLocal()\n  // Metadata before version `1.0.18` didn't contain `possible_lengths`.\n\n  if (!possible_lengths) {\n    return 'IS_POSSIBLE';\n  }\n\n  if (type === 'FIXED_LINE_OR_MOBILE') {\n    // No such country in metadata.\n\n    /* istanbul ignore next */\n    if (!metadata.type('FIXED_LINE')) {\n      // The rare case has been encountered where no fixedLine data is available\n      // (true for some non-geographic entities), so we just check mobile.\n      return checkNumberLengthForType(nationalNumber, 'MOBILE', metadata);\n    }\n\n    var mobile_type = metadata.type('MOBILE');\n\n    if (mobile_type) {\n      // Merge the mobile data in if there was any. \"Concat\" creates a new\n      // array, it doesn't edit possible_lengths in place, so we don't need a copy.\n      // Note that when adding the possible lengths from mobile, we have\n      // to again check they aren't empty since if they are this indicates\n      // they are the same as the general desc and should be obtained from there.\n      possible_lengths = mergeArrays(possible_lengths, mobile_type.possibleLengths()); // The current list is sorted; we need to merge in the new list and\n      // re-sort (duplicates are okay). Sorting isn't so expensive because\n      // the lists are very small.\n      // if (local_lengths) {\n      // \tlocal_lengths = mergeArrays(local_lengths, mobile_type.possibleLengthsLocal())\n      // } else {\n      // \tlocal_lengths = mobile_type.possibleLengthsLocal()\n      // }\n    }\n  } // If the type doesn't exist then return 'INVALID_LENGTH'.\n  else if (type && !type_info) {\n    return 'INVALID_LENGTH';\n  }\n\n  var actual_length = nationalNumber.length; // In `libphonenumber-js` all \"local-only\" formats are dropped for simplicity.\n  // // This is safe because there is never an overlap beween the possible lengths\n  // // and the local-only lengths; this is checked at build time.\n  // if (local_lengths && local_lengths.indexOf(nationalNumber.length) >= 0)\n  // {\n  // \treturn 'IS_POSSIBLE_LOCAL_ONLY'\n  // }\n\n  var minimum_length = possible_lengths[0];\n\n  if (minimum_length === actual_length) {\n    return 'IS_POSSIBLE';\n  }\n\n  if (minimum_length > actual_length) {\n    return 'TOO_SHORT';\n  }\n\n  if (possible_lengths[possible_lengths.length - 1] < actual_length) {\n    return 'TOO_LONG';\n  } // We skip the first element since we've already checked it.\n\n\n  return possible_lengths.indexOf(actual_length, 1) >= 0 ? 'IS_POSSIBLE' : 'INVALID_LENGTH';\n}\n//# sourceMappingURL=checkNumberLength.js.map","import Metadata from './metadata.js';\nimport checkNumberLength from './helpers/checkNumberLength.js';\n/**\r\n * Checks if a phone number is \"possible\" (basically just checks its length).\r\n *\r\n * isPossible(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * @param  {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param  {object} [options]\r\n * @param  {object} metadata\r\n * @return {string}\r\n */\n\nexport default function isPossiblePhoneNumber(input, options, metadata) {\n  /* istanbul ignore if */\n  if (options === undefined) {\n    options = {};\n  }\n\n  metadata = new Metadata(metadata);\n\n  if (options.v2) {\n    if (!input.countryCallingCode) {\n      throw new Error('Invalid phone number object passed');\n    }\n\n    metadata.selectNumberingPlan(input.countryCallingCode);\n  } else {\n    if (!input.phone) {\n      return false;\n    }\n\n    if (input.country) {\n      if (!metadata.hasCountry(input.country)) {\n        throw new Error(\"Unknown country: \".concat(input.country));\n      }\n\n      metadata.country(input.country);\n    } else {\n      if (!input.countryCallingCode) {\n        throw new Error('Invalid phone number object passed');\n      }\n\n      metadata.selectNumberingPlan(input.countryCallingCode);\n    }\n  } // Old metadata (< 1.0.18) had no \"possible length\" data.\n\n\n  if (metadata.possibleLengths()) {\n    return isPossibleNumber(input.phone || input.nationalNumber, metadata);\n  } else {\n    // There was a bug between `1.7.35` and `1.7.37` where \"possible_lengths\"\n    // were missing for \"non-geographical\" numbering plans.\n    // Just assume the number is possible in such cases:\n    // it's unlikely that anyone generated their custom metadata\n    // in that short period of time (one day).\n    // This code can be removed in some future major version update.\n    if (input.countryCallingCode && metadata.isNonGeographicCallingCode(input.countryCallingCode)) {\n      // \"Non-geographic entities\" did't have `possibleLengths`\n      // due to a bug in metadata generation process.\n      return true;\n    } else {\n      throw new Error('Missing \"possibleLengths\" in metadata. Perhaps the metadata has been generated before v1.0.18.');\n    }\n  }\n}\nexport function isPossibleNumber(nationalNumber, metadata) {\n  //, isInternational) {\n  switch (checkNumberLength(nationalNumber, metadata)) {\n    case 'IS_POSSIBLE':\n      return true;\n    // This library ignores \"local-only\" phone numbers (for simplicity).\n    // See the readme for more info on what are \"local-only\" phone numbers.\n    // case 'IS_POSSIBLE_LOCAL_ONLY':\n    // \treturn !isInternational\n\n    default:\n      return false;\n  }\n}\n//# sourceMappingURL=isPossible.js.map","/**\r\n * Checks whether the entire input sequence can be matched\r\n * against the regular expression.\r\n * @return {boolean}\r\n */\nexport default function matchesEntirely(text, regular_expression) {\n  // If assigning the `''` default value is moved to the arguments above,\n  // code coverage would decrease for some weird reason.\n  text = text || '';\n  return new RegExp('^(?:' + regular_expression + ')$').test(text);\n}\n//# sourceMappingURL=matchesEntirely.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport Metadata from '../metadata.js';\nimport matchesEntirely from './matchesEntirely.js';\nvar NON_FIXED_LINE_PHONE_TYPES = ['MOBILE', 'PREMIUM_RATE', 'TOLL_FREE', 'SHARED_COST', 'VOIP', 'PERSONAL_NUMBER', 'PAGER', 'UAN', 'VOICEMAIL']; // Finds out national phone number type (fixed line, mobile, etc)\n\nexport default function getNumberType(input, options, metadata) {\n  // If assigning the `{}` default value is moved to the arguments above,\n  // code coverage would decrease for some weird reason.\n  options = options || {}; // When `parse()` returns an empty object — `{}` —\n  // that means that the phone number is malformed,\n  // so it can't possibly be valid.\n\n  if (!input.country && !input.countryCallingCode) {\n    return;\n  }\n\n  metadata = new Metadata(metadata);\n  metadata.selectNumberingPlan(input.country, input.countryCallingCode);\n  var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // The following is copy-pasted from the original function:\n  // https://github.com/googlei18n/libphonenumber/blob/3ea547d4fbaa2d0b67588904dfa5d3f2557c27ff/javascript/i18n/phonenumbers/phonenumberutil.js#L2835\n  // Is this national number even valid for this country\n\n  if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern())) {\n    return;\n  } // Is it fixed line number\n\n\n  if (isNumberTypeEqualTo(nationalNumber, 'FIXED_LINE', metadata)) {\n    // Because duplicate regular expressions are removed\n    // to reduce metadata size, if \"mobile\" pattern is \"\"\n    // then it means it was removed due to being a duplicate of the fixed-line pattern.\n    //\n    if (metadata.type('MOBILE') && metadata.type('MOBILE').pattern() === '') {\n      return 'FIXED_LINE_OR_MOBILE';\n    } // `MOBILE` type pattern isn't included if it matched `FIXED_LINE` one.\n    // For example, for \"US\" country.\n    // Old metadata (< `1.0.18`) had a specific \"types\" data structure\n    // that happened to be `undefined` for `MOBILE` in that case.\n    // Newer metadata (>= `1.0.18`) has another data structure that is\n    // not `undefined` for `MOBILE` in that case (it's just an empty array).\n    // So this `if` is just for backwards compatibility with old metadata.\n\n\n    if (!metadata.type('MOBILE')) {\n      return 'FIXED_LINE_OR_MOBILE';\n    } // Check if the number happens to qualify as both fixed line and mobile.\n    // (no such country in the minimal metadata set)\n\n    /* istanbul ignore if */\n\n\n    if (isNumberTypeEqualTo(nationalNumber, 'MOBILE', metadata)) {\n      return 'FIXED_LINE_OR_MOBILE';\n    }\n\n    return 'FIXED_LINE';\n  }\n\n  for (var _iterator = _createForOfIteratorHelperLoose(NON_FIXED_LINE_PHONE_TYPES), _step; !(_step = _iterator()).done;) {\n    var type = _step.value;\n\n    if (isNumberTypeEqualTo(nationalNumber, type, metadata)) {\n      return type;\n    }\n  }\n}\nexport function isNumberTypeEqualTo(nationalNumber, type, metadata) {\n  type = metadata.type(type);\n\n  if (!type || !type.pattern()) {\n    return false;\n  } // Check if any possible number lengths are present;\n  // if so, we use them to avoid checking\n  // the validation pattern if they don't match.\n  // If they are absent, this means they match\n  // the general description, which we have\n  // already checked before a specific number type.\n\n\n  if (type.possibleLengths() && type.possibleLengths().indexOf(nationalNumber.length) < 0) {\n    return false;\n  }\n\n  return matchesEntirely(nationalNumber, type.pattern());\n}\n//# sourceMappingURL=getNumberType.js.map","import Metadata from '../metadata.js';\n/**\r\n * Returns a list of countries that the phone number could potentially belong to.\r\n * @param  {string} callingCode — Calling code.\r\n * @param  {string} nationalNumber — National (significant) number.\r\n * @param  {object} metadata — Metadata.\r\n * @return {string[]} A list of possible countries.\r\n */\n\nexport default function getPossibleCountriesForNumber(callingCode, nationalNumber, metadata) {\n  var _metadata = new Metadata(metadata);\n\n  var possibleCountries = _metadata.getCountryCodesForCallingCode(callingCode);\n\n  if (!possibleCountries) {\n    return [];\n  }\n\n  return possibleCountries.filter(function (country) {\n    return couldNationalNumberBelongToCountry(nationalNumber, country, metadata);\n  });\n}\n\nfunction couldNationalNumberBelongToCountry(nationalNumber, country, metadata) {\n  var _metadata = new Metadata(metadata);\n\n  _metadata.selectNumberingPlan(country);\n\n  if (_metadata.numberingPlan.possibleLengths().indexOf(nationalNumber.length) >= 0) {\n    return true;\n  }\n\n  return false;\n}\n//# sourceMappingURL=getPossibleCountriesForNumber.js.map","import { VALID_PUNCTUATION } from '../constants.js'; // Removes brackets and replaces dashes with spaces.\n//\n// E.g. \"(999) 111-22-33\" -> \"999 111 22 33\"\n//\n// For some reason Google's metadata contains `<intlFormat/>`s with brackets and dashes.\n// Meanwhile, there's no single opinion about using punctuation in international phone numbers.\n//\n// For example, Google's `<intlFormat/>` for USA is `+1 213-373-4253`.\n// And here's a quote from WikiPedia's \"North American Numbering Plan\" page:\n// https://en.wikipedia.org/wiki/North_American_Numbering_Plan\n//\n// \"The country calling code for all countries participating in the NANP is 1.\n// In international format, an NANP number should be listed as +1 301 555 01 00,\n// where 301 is an area code (Maryland).\"\n//\n// I personally prefer the international format without any punctuation.\n// For example, brackets are remnants of the old age, meaning that the\n// phone number part in brackets (so called \"area code\") can be omitted\n// if dialing within the same \"area\".\n// And hyphens were clearly introduced for splitting local numbers into memorizable groups.\n// For example, remembering \"5553535\" is difficult but \"555-35-35\" is much simpler.\n// Imagine a man taking a bus from home to work and seeing an ad with a phone number.\n// He has a couple of seconds to memorize that number until it passes by.\n// If it were spaces instead of hyphens the man wouldn't necessarily get it,\n// but with hyphens instead of spaces the grouping is more explicit.\n// I personally think that hyphens introduce visual clutter,\n// so I prefer replacing them with spaces in international numbers.\n// In the modern age all output is done on displays where spaces are clearly distinguishable\n// so hyphens can be safely replaced with spaces without losing any legibility.\n//\n\nexport default function applyInternationalSeparatorStyle(formattedNumber) {\n  return formattedNumber.replace(new RegExp(\"[\".concat(VALID_PUNCTUATION, \"]+\"), 'g'), ' ').trim();\n}\n//# sourceMappingURL=applyInternationalSeparatorStyle.js.map","import applyInternationalSeparatorStyle from './applyInternationalSeparatorStyle.js'; // This was originally set to $1 but there are some countries for which the\n// first group is not used in the national pattern (e.g. Argentina) so the $1\n// group does not match correctly. Therefore, we use `\\d`, so that the first\n// group actually used in the pattern will be matched.\n\nexport var FIRST_GROUP_PATTERN = /(\\$\\d)/;\nexport default function formatNationalNumberUsingFormat(number, format, _ref) {\n  var useInternationalFormat = _ref.useInternationalFormat,\n      withNationalPrefix = _ref.withNationalPrefix,\n      carrierCode = _ref.carrierCode,\n      metadata = _ref.metadata;\n  var formattedNumber = number.replace(new RegExp(format.pattern()), useInternationalFormat ? format.internationalFormat() : // This library doesn't use `domestic_carrier_code_formatting_rule`,\n  // because that one is only used when formatting phone numbers\n  // for dialing from a mobile phone, and this is not a dialing library.\n  // carrierCode && format.domesticCarrierCodeFormattingRule()\n  // \t// First, replace the $CC in the formatting rule with the desired carrier code.\n  // \t// Then, replace the $FG in the formatting rule with the first group\n  // \t// and the carrier code combined in the appropriate way.\n  // \t? format.format().replace(FIRST_GROUP_PATTERN, format.domesticCarrierCodeFormattingRule().replace('$CC', carrierCode))\n  // \t: (\n  // \t\twithNationalPrefix && format.nationalPrefixFormattingRule()\n  // \t\t\t? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule())\n  // \t\t\t: format.format()\n  // \t)\n  withNationalPrefix && format.nationalPrefixFormattingRule() ? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()) : format.format());\n\n  if (useInternationalFormat) {\n    return applyInternationalSeparatorStyle(formattedNumber);\n  }\n\n  return formattedNumber;\n}\n//# sourceMappingURL=formatNationalNumberUsingFormat.js.map","import Metadata from '../metadata.js';\n/**\r\n * Pattern that makes it easy to distinguish whether a region has a single\r\n * international dialing prefix or not. If a region has a single international\r\n * prefix (e.g. 011 in USA), it will be represented as a string that contains\r\n * a sequence of ASCII digits, and possibly a tilde, which signals waiting for\r\n * the tone. If there are multiple available international prefixes in a\r\n * region, they will be represented as a regex string that always contains one\r\n * or more characters that are not ASCII digits or a tilde.\r\n */\n\nvar SINGLE_IDD_PREFIX_REG_EXP = /^[\\d]+(?:[~\\u2053\\u223C\\uFF5E][\\d]+)?$/; // For regions that have multiple IDD prefixes\n// a preferred IDD prefix is returned.\n\nexport default function getIddPrefix(country, callingCode, metadata) {\n  var countryMetadata = new Metadata(metadata);\n  countryMetadata.selectNumberingPlan(country, callingCode);\n\n  if (countryMetadata.defaultIDDPrefix()) {\n    return countryMetadata.defaultIDDPrefix();\n  }\n\n  if (SINGLE_IDD_PREFIX_REG_EXP.test(countryMetadata.IDDPrefix())) {\n    return countryMetadata.IDDPrefix();\n  }\n}\n//# sourceMappingURL=getIddPrefix.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat.js';\nimport Metadata, { getCountryCallingCode } from './metadata.js';\nimport getIddPrefix from './helpers/getIddPrefix.js';\nimport { formatRFC3966 } from './helpers/RFC3966.js';\nvar DEFAULT_OPTIONS = {\n  formatExtension: function formatExtension(formattedNumber, extension, metadata) {\n    return \"\".concat(formattedNumber).concat(metadata.ext()).concat(extension);\n  }\n};\n/**\r\n * Formats a phone number.\r\n *\r\n * format(phoneNumberInstance, 'INTERNATIONAL', { ..., v2: true }, metadata)\r\n * format(phoneNumberInstance, 'NATIONAL', { ..., v2: true }, metadata)\r\n *\r\n * format({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL', { ... }, metadata)\r\n * format({ phone: '8005553535', country: 'RU' }, 'NATIONAL', undefined, metadata)\r\n *\r\n * @param  {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param  {string} format\r\n * @param  {object} [options]\r\n * @param  {object} metadata\r\n * @return {string}\r\n */\n\nexport default function formatNumber(input, format, options, metadata) {\n  // Apply default options.\n  if (options) {\n    options = _objectSpread(_objectSpread({}, DEFAULT_OPTIONS), options);\n  } else {\n    options = DEFAULT_OPTIONS;\n  }\n\n  metadata = new Metadata(metadata);\n\n  if (input.country && input.country !== '001') {\n    // Validate `input.country`.\n    if (!metadata.hasCountry(input.country)) {\n      throw new Error(\"Unknown country: \".concat(input.country));\n    }\n\n    metadata.country(input.country);\n  } else if (input.countryCallingCode) {\n    metadata.selectNumberingPlan(input.countryCallingCode);\n  } else return input.phone || '';\n\n  var countryCallingCode = metadata.countryCallingCode();\n  var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // This variable should have been declared inside `case`s\n  // but Babel has a bug and it says \"duplicate variable declaration\".\n\n  var number;\n\n  switch (format) {\n    case 'NATIONAL':\n      // Legacy argument support.\n      // (`{ country: ..., phone: '' }`)\n      if (!nationalNumber) {\n        return '';\n      }\n\n      number = formatNationalNumber(nationalNumber, input.carrierCode, 'NATIONAL', metadata, options);\n      return addExtension(number, input.ext, metadata, options.formatExtension);\n\n    case 'INTERNATIONAL':\n      // Legacy argument support.\n      // (`{ country: ..., phone: '' }`)\n      if (!nationalNumber) {\n        return \"+\".concat(countryCallingCode);\n      }\n\n      number = formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata, options);\n      number = \"+\".concat(countryCallingCode, \" \").concat(number);\n      return addExtension(number, input.ext, metadata, options.formatExtension);\n\n    case 'E.164':\n      // `E.164` doesn't define \"phone number extensions\".\n      return \"+\".concat(countryCallingCode).concat(nationalNumber);\n\n    case 'RFC3966':\n      return formatRFC3966({\n        number: \"+\".concat(countryCallingCode).concat(nationalNumber),\n        ext: input.ext\n      });\n    // For reference, here's Google's IDD formatter:\n    // https://github.com/google/libphonenumber/blob/32719cf74e68796788d1ca45abc85dcdc63ba5b9/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L1546\n    // Not saying that this IDD formatter replicates it 1:1, but it seems to work.\n    // Who would even need to format phone numbers in IDD format anyway?\n\n    case 'IDD':\n      if (!options.fromCountry) {\n        return; // throw new Error('`fromCountry` option not passed for IDD-prefixed formatting.')\n      }\n\n      var formattedNumber = formatIDD(nationalNumber, input.carrierCode, countryCallingCode, options.fromCountry, metadata);\n      return addExtension(formattedNumber, input.ext, metadata, options.formatExtension);\n\n    default:\n      throw new Error(\"Unknown \\\"format\\\" argument passed to \\\"formatNumber()\\\": \\\"\".concat(format, \"\\\"\"));\n  }\n}\n\nfunction formatNationalNumber(number, carrierCode, formatAs, metadata, options) {\n  var format = chooseFormatForNumber(metadata.formats(), number);\n\n  if (!format) {\n    return number;\n  }\n\n  return formatNationalNumberUsingFormat(number, format, {\n    useInternationalFormat: formatAs === 'INTERNATIONAL',\n    withNationalPrefix: format.nationalPrefixIsOptionalWhenFormattingInNationalFormat() && options && options.nationalPrefix === false ? false : true,\n    carrierCode: carrierCode,\n    metadata: metadata\n  });\n}\n\nexport function chooseFormatForNumber(availableFormats, nationalNnumber) {\n  for (var _iterator = _createForOfIteratorHelperLoose(availableFormats), _step; !(_step = _iterator()).done;) {\n    var format = _step.value;\n\n    // Validate leading digits.\n    // The test case for \"else path\" could be found by searching for\n    // \"format.leadingDigitsPatterns().length === 0\".\n    if (format.leadingDigitsPatterns().length > 0) {\n      // The last leading_digits_pattern is used here, as it is the most detailed\n      var lastLeadingDigitsPattern = format.leadingDigitsPatterns()[format.leadingDigitsPatterns().length - 1]; // If leading digits don't match then move on to the next phone number format\n\n      if (nationalNnumber.search(lastLeadingDigitsPattern) !== 0) {\n        continue;\n      }\n    } // Check that the national number matches the phone number format regular expression\n\n\n    if (matchesEntirely(nationalNnumber, format.pattern())) {\n      return format;\n    }\n  }\n}\n\nfunction addExtension(formattedNumber, ext, metadata, formatExtension) {\n  return ext ? formatExtension(formattedNumber, ext, metadata) : formattedNumber;\n}\n\nfunction formatIDD(nationalNumber, carrierCode, countryCallingCode, fromCountry, metadata) {\n  var fromCountryCallingCode = getCountryCallingCode(fromCountry, metadata.metadata); // When calling within the same country calling code.\n\n  if (fromCountryCallingCode === countryCallingCode) {\n    var formattedNumber = formatNationalNumber(nationalNumber, carrierCode, 'NATIONAL', metadata); // For NANPA regions, return the national format for these regions\n    // but prefix it with the country calling code.\n\n    if (countryCallingCode === '1') {\n      return countryCallingCode + ' ' + formattedNumber;\n    } // If regions share a country calling code, the country calling code need\n    // not be dialled. This also applies when dialling within a region, so this\n    // if clause covers both these cases. Technically this is the case for\n    // dialling from La Reunion to other overseas departments of France (French\n    // Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover\n    // this edge case for now and for those cases return the version including\n    // country calling code. Details here:\n    // http://www.petitfute.com/voyage/225-info-pratiques-reunion\n    //\n\n\n    return formattedNumber;\n  }\n\n  var iddPrefix = getIddPrefix(fromCountry, undefined, metadata.metadata);\n\n  if (iddPrefix) {\n    return \"\".concat(iddPrefix, \" \").concat(countryCallingCode, \" \").concat(formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata));\n  }\n}\n//# sourceMappingURL=format.js.map","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport isViablePhoneNumber from './isViablePhoneNumber.js'; // https://www.ietf.org/rfc/rfc3966.txt\n\n/**\r\n * @param  {string} text - Phone URI (RFC 3966).\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\nexport function parseRFC3966(text) {\n  var number;\n  var ext; // Replace \"tel:\" with \"tel=\" for parsing convenience.\n\n  text = text.replace(/^tel:/, 'tel=');\n\n  for (var _iterator = _createForOfIteratorHelperLoose(text.split(';')), _step; !(_step = _iterator()).done;) {\n    var part = _step.value;\n\n    var _part$split = part.split('='),\n        _part$split2 = _slicedToArray(_part$split, 2),\n        name = _part$split2[0],\n        value = _part$split2[1];\n\n    switch (name) {\n      case 'tel':\n        number = value;\n        break;\n\n      case 'ext':\n        ext = value;\n        break;\n\n      case 'phone-context':\n        // Only \"country contexts\" are supported.\n        // \"Domain contexts\" are ignored.\n        if (value[0] === '+') {\n          number = value + number;\n        }\n\n        break;\n    }\n  } // If the phone number is not viable, then abort.\n\n\n  if (!isViablePhoneNumber(number)) {\n    return {};\n  }\n\n  var result = {\n    number: number\n  };\n\n  if (ext) {\n    result.ext = ext;\n  }\n\n  return result;\n}\n/**\r\n * @param  {object} - `{ ?number, ?extension }`.\r\n * @return {string} Phone URI (RFC 3966).\r\n */\n\nexport function formatRFC3966(_ref) {\n  var number = _ref.number,\n      ext = _ref.ext;\n\n  if (!number) {\n    return '';\n  }\n\n  if (number[0] !== '+') {\n    throw new Error(\"\\\"formatRFC3966()\\\" expects \\\"number\\\" to be in E.164 format.\");\n  }\n\n  return \"tel:\".concat(number).concat(ext ? ';ext=' + ext : '');\n}\n//# sourceMappingURL=RFC3966.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport Metadata from './metadata.js';\nimport isPossibleNumber from './isPossible.js';\nimport isValidNumber from './isValid.js'; // import checkNumberLength from './helpers/checkNumberLength.js'\n\nimport getNumberType from './helpers/getNumberType.js';\nimport getPossibleCountriesForNumber from './helpers/getPossibleCountriesForNumber.js';\nimport formatNumber from './format.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\nvar PhoneNumber = /*#__PURE__*/function () {\n  /**\r\n   * @param  {string} countryOrCountryCallingCode\r\n   * @param  {string} nationalNumber\r\n   * @param  {object} metadata — Metadata JSON\r\n   * @return {PhoneNumber}\r\n   */\n  function PhoneNumber(countryOrCountryCallingCode, nationalNumber, metadata) {\n    _classCallCheck(this, PhoneNumber);\n\n    if (!countryOrCountryCallingCode) {\n      throw new TypeError('`country` or `countryCallingCode` not passed');\n    }\n\n    if (!nationalNumber) {\n      throw new TypeError('`nationalNumber` not passed');\n    }\n\n    if (!metadata) {\n      throw new TypeError('`metadata` not passed');\n    }\n\n    var _getCountryAndCountry = getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadata),\n        country = _getCountryAndCountry.country,\n        countryCallingCode = _getCountryAndCountry.countryCallingCode;\n\n    this.country = country;\n    this.countryCallingCode = countryCallingCode;\n    this.nationalNumber = nationalNumber;\n    this.number = '+' + this.countryCallingCode + this.nationalNumber; // Exclude `metadata` property output from `PhoneNumber.toString()`\n    // so that it doesn't clutter the console output of Node.js.\n    // Previously, when Node.js did `console.log(new PhoneNumber(...))`,\n    // it would output the whole internal structure of the `metadata` object.\n\n    this.getMetadata = function () {\n      return metadata;\n    };\n  }\n\n  _createClass(PhoneNumber, [{\n    key: \"setExt\",\n    value: function setExt(ext) {\n      this.ext = ext;\n    }\n  }, {\n    key: \"getPossibleCountries\",\n    value: function getPossibleCountries() {\n      if (this.country) {\n        return [this.country];\n      }\n\n      return getPossibleCountriesForNumber(this.countryCallingCode, this.nationalNumber, this.getMetadata());\n    }\n  }, {\n    key: \"isPossible\",\n    value: function isPossible() {\n      return isPossibleNumber(this, {\n        v2: true\n      }, this.getMetadata());\n    }\n  }, {\n    key: \"isValid\",\n    value: function isValid() {\n      return isValidNumber(this, {\n        v2: true\n      }, this.getMetadata());\n    }\n  }, {\n    key: \"isNonGeographic\",\n    value: function isNonGeographic() {\n      var metadata = new Metadata(this.getMetadata());\n      return metadata.isNonGeographicCallingCode(this.countryCallingCode);\n    }\n  }, {\n    key: \"isEqual\",\n    value: function isEqual(phoneNumber) {\n      return this.number === phoneNumber.number && this.ext === phoneNumber.ext;\n    } // This function was originally meant to be an equivalent for `validatePhoneNumberLength()`,\n    // but later it was found out that it doesn't include the possible `TOO_SHORT` result\n    // returned from `parsePhoneNumberWithError()` in the original `validatePhoneNumberLength()`,\n    // so eventually I simply commented out this method from the `PhoneNumber` class\n    // and just left the `validatePhoneNumberLength()` function, even though that one would require\n    // and additional step to also validate the actual country / calling code of the phone number.\n    // validateLength() {\n    // \tconst metadata = new Metadata(this.getMetadata())\n    // \tmetadata.selectNumberingPlan(this.countryCallingCode)\n    // \tconst result = checkNumberLength(this.nationalNumber, metadata)\n    // \tif (result !== 'IS_POSSIBLE') {\n    // \t\treturn result\n    // \t}\n    // }\n\n  }, {\n    key: \"getType\",\n    value: function getType() {\n      return getNumberType(this, {\n        v2: true\n      }, this.getMetadata());\n    }\n  }, {\n    key: \"format\",\n    value: function format(_format, options) {\n      return formatNumber(this, _format, options ? _objectSpread(_objectSpread({}, options), {}, {\n        v2: true\n      }) : {\n        v2: true\n      }, this.getMetadata());\n    }\n  }, {\n    key: \"formatNational\",\n    value: function formatNational(options) {\n      return this.format('NATIONAL', options);\n    }\n  }, {\n    key: \"formatInternational\",\n    value: function formatInternational(options) {\n      return this.format('INTERNATIONAL', options);\n    }\n  }, {\n    key: \"getURI\",\n    value: function getURI(options) {\n      return this.format('RFC3966', options);\n    }\n  }]);\n\n  return PhoneNumber;\n}();\n\nexport { PhoneNumber as default };\n\nvar isCountryCode = function isCountryCode(value) {\n  return /^[A-Z]{2}$/.test(value);\n};\n\nfunction getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadataJson) {\n  var country;\n  var countryCallingCode;\n  var metadata = new Metadata(metadataJson); // If country code is passed then derive `countryCallingCode` from it.\n  // Also store the country code as `.country`.\n\n  if (isCountryCode(countryOrCountryCallingCode)) {\n    country = countryOrCountryCallingCode;\n    metadata.selectNumberingPlan(country);\n    countryCallingCode = metadata.countryCallingCode();\n  } else {\n    countryCallingCode = countryOrCountryCallingCode;\n    /* istanbul ignore if */\n\n    if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n      if (metadata.isNonGeographicCallingCode(countryCallingCode)) {\n        country = '001';\n      }\n    }\n  }\n\n  return {\n    country: country,\n    countryCallingCode: countryCallingCode\n  };\n}\n//# sourceMappingURL=PhoneNumber.js.map","import Metadata from './metadata.js';\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport getNumberType from './helpers/getNumberType.js';\n/**\r\n * Checks if a given phone number is valid.\r\n *\r\n * isValid(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * If the `number` is a string, it will be parsed to an object,\r\n * but only if it contains only valid phone number characters (including punctuation).\r\n * If the `number` is an object, it is used as is.\r\n *\r\n * The optional `defaultCountry` argument is the default country.\r\n * I.e. it does not restrict to just that country,\r\n * e.g. in those cases where several countries share\r\n * the same phone numbering rules (NANPA, Britain, etc).\r\n * For example, even though the number `07624 369230`\r\n * belongs to the Isle of Man (\"IM\" country code)\r\n * calling `isValidNumber('07624369230', 'GB', metadata)`\r\n * still returns `true` because the country is not restricted to `GB`,\r\n * it's just that `GB` is the default one for the phone numbering rules.\r\n * For restricting the country see `isValidNumberForRegion()`\r\n * though restricting a country might not be a good idea.\r\n * https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\r\n *\r\n * Examples:\r\n *\r\n * ```js\r\n * isValidNumber('+78005553535', metadata)\r\n * isValidNumber('8005553535', 'RU', metadata)\r\n * isValidNumber('88005553535', 'RU', metadata)\r\n * isValidNumber({ phone: '8005553535', country: 'RU' }, metadata)\r\n * ```\r\n */\n\nexport default function isValidNumber(input, options, metadata) {\n  // If assigning the `{}` default value is moved to the arguments above,\n  // code coverage would decrease for some weird reason.\n  options = options || {};\n  metadata = new Metadata(metadata);\n  metadata.selectNumberingPlan(input.country, input.countryCallingCode); // By default, countries only have type regexps when it's required for\n  // distinguishing different countries having the same `countryCallingCode`.\n\n  if (metadata.hasTypes()) {\n    return getNumberType(input, options, metadata.metadata) !== undefined;\n  } // If there are no type regexps for this country in metadata then use\n  // `nationalNumberPattern` as a \"better than nothing\" replacement.\n\n\n  var nationalNumber = options.v2 ? input.nationalNumber : input.phone;\n  return matchesEntirely(nationalNumber, metadata.nationalNumberPattern());\n}\n//# sourceMappingURL=isValid.js.map","import Metadata from '../metadata.js';\nimport { VALID_DIGITS } from '../constants.js';\nvar CAPTURING_DIGIT_PATTERN = new RegExp('([' + VALID_DIGITS + '])');\nexport default function stripIddPrefix(number, country, callingCode, metadata) {\n  if (!country) {\n    return;\n  } // Check if the number is IDD-prefixed.\n\n\n  var countryMetadata = new Metadata(metadata);\n  countryMetadata.selectNumberingPlan(country, callingCode);\n  var IDDPrefixPattern = new RegExp(countryMetadata.IDDPrefix());\n\n  if (number.search(IDDPrefixPattern) !== 0) {\n    return;\n  } // Strip IDD prefix.\n\n\n  number = number.slice(number.match(IDDPrefixPattern)[0].length); // If there're any digits after an IDD prefix,\n  // then those digits are a country calling code.\n  // Since no country code starts with a `0`,\n  // the code below validates that the next digit (if present) is not `0`.\n\n  var matchedGroups = number.match(CAPTURING_DIGIT_PATTERN);\n\n  if (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) {\n    if (matchedGroups[1] === '0') {\n      return;\n    }\n  }\n\n  return number;\n}\n//# sourceMappingURL=stripIddPrefix.js.map","/**\r\n * Strips any national prefix (such as 0, 1) present in a\r\n * (possibly incomplete) number provided.\r\n * \"Carrier codes\" are only used  in Colombia and Brazil,\r\n * and only when dialing within those countries from a mobile phone to a fixed line number.\r\n * Sometimes it won't actually strip national prefix\r\n * and will instead prepend some digits to the `number`:\r\n * for example, when number `2345678` is passed with `VI` country selected,\r\n * it will return `{ number: \"3402345678\" }`, because `340` area code is prepended.\r\n * @param {string} number — National number digits.\r\n * @param {object} metadata — Metadata with country selected.\r\n * @return {object} `{ nationalNumber: string, nationalPrefix: string? carrierCode: string? }`. Even if a national prefix was extracted, it's not necessarily present in the returned object, so don't rely on its presence in the returned object in order to find out whether a national prefix has been extracted or not.\r\n */\nexport default function extractNationalNumberFromPossiblyIncompleteNumber(number, metadata) {\n  if (number && metadata.numberingPlan.nationalPrefixForParsing()) {\n    // See METADATA.md for the description of\n    // `national_prefix_for_parsing` and `national_prefix_transform_rule`.\n    // Attempt to parse the first digits as a national prefix.\n    var prefixPattern = new RegExp('^(?:' + metadata.numberingPlan.nationalPrefixForParsing() + ')');\n    var prefixMatch = prefixPattern.exec(number);\n\n    if (prefixMatch) {\n      var nationalNumber;\n      var carrierCode; // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n      // If a `national_prefix_for_parsing` has any \"capturing groups\"\n      // then it means that the national (significant) number is equal to\n      // those \"capturing groups\" transformed via `national_prefix_transform_rule`,\n      // and nothing could be said about the actual national prefix:\n      // what is it and was it even there.\n      // If a `national_prefix_for_parsing` doesn't have any \"capturing groups\",\n      // then everything it matches is a national prefix.\n      // To determine whether `national_prefix_for_parsing` matched any\n      // \"capturing groups\", the value of the result of calling `.exec()`\n      // is looked at, and if it has non-undefined values where there're\n      // \"capturing groups\" in the regular expression, then it means\n      // that \"capturing groups\" have been matched.\n      // It's not possible to tell whether there'll be any \"capturing gropus\"\n      // before the matching process, because a `national_prefix_for_parsing`\n      // could exhibit both behaviors.\n\n      var capturedGroupsCount = prefixMatch.length - 1;\n      var hasCapturedGroups = capturedGroupsCount > 0 && prefixMatch[capturedGroupsCount];\n\n      if (metadata.nationalPrefixTransformRule() && hasCapturedGroups) {\n        nationalNumber = number.replace(prefixPattern, metadata.nationalPrefixTransformRule()); // If there's more than one captured group,\n        // then carrier code is the second one.\n\n        if (capturedGroupsCount > 1) {\n          carrierCode = prefixMatch[1];\n        }\n      } // If there're no \"capturing groups\",\n      // or if there're \"capturing groups\" but no\n      // `national_prefix_transform_rule`,\n      // then just strip the national prefix from the number,\n      // and possibly a carrier code.\n      // Seems like there could be more.\n      else {\n        // `prefixBeforeNationalNumber` is the whole substring matched by\n        // the `national_prefix_for_parsing` regular expression.\n        // There seem to be no guarantees that it's just a national prefix.\n        // For example, if there's a carrier code, it's gonna be a\n        // part of `prefixBeforeNationalNumber` too.\n        var prefixBeforeNationalNumber = prefixMatch[0];\n        nationalNumber = number.slice(prefixBeforeNationalNumber.length); // If there's at least one captured group,\n        // then carrier code is the first one.\n\n        if (hasCapturedGroups) {\n          carrierCode = prefixMatch[1];\n        }\n      } // Tries to guess whether a national prefix was present in the input.\n      // This is not something copy-pasted from Google's library:\n      // they don't seem to have an equivalent for that.\n      // So this isn't an \"officially approved\" way of doing something like that.\n      // But since there seems no other existing method, this library uses it.\n\n\n      var nationalPrefix;\n\n      if (hasCapturedGroups) {\n        var possiblePositionOfTheFirstCapturedGroup = number.indexOf(prefixMatch[1]);\n        var possibleNationalPrefix = number.slice(0, possiblePositionOfTheFirstCapturedGroup); // Example: an Argentinian (AR) phone number `0111523456789`.\n        // `prefixMatch[0]` is `01115`, and `$1` is `11`,\n        // and the rest of the phone number is `23456789`.\n        // The national number is transformed via `9$1` to `91123456789`.\n        // National prefix `0` is detected being present at the start.\n        // if (possibleNationalPrefix.indexOf(metadata.numberingPlan.nationalPrefix()) === 0) {\n\n        if (possibleNationalPrefix === metadata.numberingPlan.nationalPrefix()) {\n          nationalPrefix = metadata.numberingPlan.nationalPrefix();\n        }\n      } else {\n        nationalPrefix = prefixMatch[0];\n      }\n\n      return {\n        nationalNumber: nationalNumber,\n        nationalPrefix: nationalPrefix,\n        carrierCode: carrierCode\n      };\n    }\n  }\n\n  return {\n    nationalNumber: number\n  };\n}\n//# sourceMappingURL=extractNationalNumberFromPossiblyIncompleteNumber.js.map","import extractNationalNumberFromPossiblyIncompleteNumber from './extractNationalNumberFromPossiblyIncompleteNumber.js';\nimport matchesEntirely from './matchesEntirely.js';\nimport checkNumberLength from './checkNumberLength.js';\n/**\r\n * Strips national prefix and carrier code from a complete phone number.\r\n * The difference from the non-\"FromCompleteNumber\" function is that\r\n * it won't extract national prefix if the resultant number is too short\r\n * to be a complete number for the selected phone numbering plan.\r\n * @param  {string} number — Complete phone number digits.\r\n * @param  {Metadata} metadata — Metadata with a phone numbering plan selected.\r\n * @return {object} `{ nationalNumber: string, carrierCode: string? }`.\r\n */\n\nexport default function extractNationalNumber(number, metadata) {\n  // Parsing national prefixes and carrier codes\n  // is only required for local phone numbers\n  // but some people don't understand that\n  // and sometimes write international phone numbers\n  // with national prefixes (or maybe even carrier codes).\n  // http://ucken.blogspot.ru/2016/03/trunk-prefixes-in-skype4b.html\n  // Google's original library forgives such mistakes\n  // and so does this library, because it has been requested:\n  // https://github.com/catamphetamine/libphonenumber-js/issues/127\n  var _extractNationalNumbe = extractNationalNumberFromPossiblyIncompleteNumber(number, metadata),\n      carrierCode = _extractNationalNumbe.carrierCode,\n      nationalNumber = _extractNationalNumbe.nationalNumber;\n\n  if (nationalNumber !== number) {\n    if (!shouldHaveExtractedNationalPrefix(number, nationalNumber, metadata)) {\n      // Don't strip the national prefix.\n      return {\n        nationalNumber: number\n      };\n    } // Check the national (significant) number length after extracting national prefix and carrier code.\n    // Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature.\n\n\n    if (metadata.possibleLengths()) {\n      // The number remaining after stripping the national prefix and carrier code\n      // should be long enough to have a possible length for the country.\n      // Otherwise, don't strip the national prefix and carrier code,\n      // since the original number could be a valid number.\n      // This check has been copy-pasted \"as is\" from Google's original library:\n      // https://github.com/google/libphonenumber/blob/876268eb1ad6cdc1b7b5bef17fc5e43052702d57/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3236-L3250\n      // It doesn't check for the \"possibility\" of the original `number`.\n      // I guess it's fine not checking that one. It works as is anyway.\n      if (!isPossibleIncompleteNationalNumber(nationalNumber, metadata)) {\n        // Don't strip the national prefix.\n        return {\n          nationalNumber: number\n        };\n      }\n    }\n  }\n\n  return {\n    nationalNumber: nationalNumber,\n    carrierCode: carrierCode\n  };\n} // In some countries, the same digit could be a national prefix\n// or a leading digit of a valid phone number.\n// For example, in Russia, national prefix is `8`,\n// and also `800 555 35 35` is a valid number\n// in which `8` is not a national prefix, but the first digit\n// of a national (significant) number.\n// Same's with Belarus:\n// `82004910060` is a valid national (significant) number,\n// but `2004910060` is not.\n// To support such cases (to prevent the code from always stripping\n// national prefix), a condition is imposed: a national prefix\n// is not extracted when the original number is \"viable\" and the\n// resultant number is not, a \"viable\" national number being the one\n// that matches `national_number_pattern`.\n\nfunction shouldHaveExtractedNationalPrefix(nationalNumberBefore, nationalNumberAfter, metadata) {\n  // The equivalent in Google's code is:\n  // https://github.com/google/libphonenumber/blob/e326fa1fc4283bb05eb35cb3c15c18f98a31af33/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L2969-L3004\n  if (matchesEntirely(nationalNumberBefore, metadata.nationalNumberPattern()) && !matchesEntirely(nationalNumberAfter, metadata.nationalNumberPattern())) {\n    return false;\n  } // This \"is possible\" national number (length) check has been commented out\n  // because it's superceded by the (effectively) same check done in the\n  // `extractNationalNumber()` function after it calls `shouldHaveExtractedNationalPrefix()`.\n  // In other words, why run the same check twice if it could only be run once.\n  // // Check the national (significant) number length after extracting national prefix and carrier code.\n  // // Fixes a minor \"weird behavior\" bug: https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/57\n  // // (Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature).\n  // if (metadata.possibleLengths()) {\n  // \tif (isPossibleIncompleteNationalNumber(nationalNumberBefore, metadata) &&\n  // \t\t!isPossibleIncompleteNationalNumber(nationalNumberAfter, metadata)) {\n  // \t\treturn false\n  // \t}\n  // }\n\n\n  return true;\n}\n\nfunction isPossibleIncompleteNationalNumber(nationalNumber, metadata) {\n  switch (checkNumberLength(nationalNumber, metadata)) {\n    case 'TOO_SHORT':\n    case 'INVALID_LENGTH':\n      // This library ignores \"local-only\" phone numbers (for simplicity).\n      // See the readme for more info on what are \"local-only\" phone numbers.\n      // case 'IS_POSSIBLE_LOCAL_ONLY':\n      return false;\n\n    default:\n      return true;\n  }\n}\n//# sourceMappingURL=extractNationalNumber.js.map","import Metadata from '../metadata.js';\nimport matchesEntirely from './matchesEntirely.js';\nimport extractNationalNumber from './extractNationalNumber.js';\nimport checkNumberLength from './checkNumberLength.js';\nimport getCountryCallingCode from '../getCountryCallingCode.js';\n/**\r\n * Sometimes some people incorrectly input international phone numbers\r\n * without the leading `+`. This function corrects such input.\r\n * @param  {string} number — Phone number digits.\r\n * @param  {string?} country\r\n * @param  {string?} callingCode\r\n * @param  {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`.\r\n */\n\nexport default function extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata) {\n  var countryCallingCode = country ? getCountryCallingCode(country, metadata) : callingCode;\n\n  if (number.indexOf(countryCallingCode) === 0) {\n    metadata = new Metadata(metadata);\n    metadata.selectNumberingPlan(country, callingCode);\n    var possibleShorterNumber = number.slice(countryCallingCode.length);\n\n    var _extractNationalNumbe = extractNationalNumber(possibleShorterNumber, metadata),\n        possibleShorterNationalNumber = _extractNationalNumbe.nationalNumber;\n\n    var _extractNationalNumbe2 = extractNationalNumber(number, metadata),\n        nationalNumber = _extractNationalNumbe2.nationalNumber; // If the number was not valid before but is valid now,\n    // or if it was too long before, we consider the number\n    // with the country calling code stripped to be a better result\n    // and keep that instead.\n    // For example, in Germany (+49), `49` is a valid area code,\n    // so if a number starts with `49`, it could be both a valid\n    // national German number or an international number without\n    // a leading `+`.\n\n\n    if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) && matchesEntirely(possibleShorterNationalNumber, metadata.nationalNumberPattern()) || checkNumberLength(nationalNumber, metadata) === 'TOO_LONG') {\n      return {\n        countryCallingCode: countryCallingCode,\n        number: possibleShorterNumber\n      };\n    }\n  }\n\n  return {\n    number: number\n  };\n}\n//# sourceMappingURL=extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js.map","import stripIddPrefix from './stripIddPrefix.js';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js';\nimport Metadata from '../metadata.js';\nimport { MAX_LENGTH_COUNTRY_CODE } from '../constants.js';\n/**\r\n * Converts a phone number digits (possibly with a `+`)\r\n * into a calling code and the rest phone number digits.\r\n * The \"rest phone number digits\" could include\r\n * a national prefix, carrier code, and national\r\n * (significant) number.\r\n * @param  {string} number — Phone number digits (possibly with a `+`).\r\n * @param  {string} [country] — Default country.\r\n * @param  {string} [callingCode] — Default calling code (some phone numbering plans are non-geographic).\r\n * @param  {object} metadata\r\n * @return {object} `{ countryCallingCodeSource: string?, countryCallingCode: string?, number: string }`\r\n * @example\r\n * // Returns `{ countryCallingCode: \"1\", number: \"2133734253\" }`.\r\n * extractCountryCallingCode('2133734253', 'US', null, metadata)\r\n * extractCountryCallingCode('2133734253', null, '1', metadata)\r\n * extractCountryCallingCode('+12133734253', null, null, metadata)\r\n * extractCountryCallingCode('+12133734253', 'RU', null, metadata)\r\n */\n\nexport default function extractCountryCallingCode(number, country, callingCode, metadata) {\n  if (!number) {\n    return {};\n  }\n\n  var isNumberWithIddPrefix; // If this is not an international phone number,\n  // then either extract an \"IDD\" prefix, or extract a\n  // country calling code from a number by autocorrecting it\n  // by prepending a leading `+` in cases when it starts\n  // with the country calling code.\n  // https://wikitravel.org/en/International_dialling_prefix\n  // https://github.com/catamphetamine/libphonenumber-js/issues/376\n\n  if (number[0] !== '+') {\n    // Convert an \"out-of-country\" dialing phone number\n    // to a proper international phone number.\n    var numberWithoutIDD = stripIddPrefix(number, country, callingCode, metadata); // If an IDD prefix was stripped then\n    // convert the number to international one\n    // for subsequent parsing.\n\n    if (numberWithoutIDD && numberWithoutIDD !== number) {\n      isNumberWithIddPrefix = true;\n      number = '+' + numberWithoutIDD;\n    } else {\n      // Check to see if the number starts with the country calling code\n      // for the default country. If so, we remove the country calling code,\n      // and do some checks on the validity of the number before and after.\n      // https://github.com/catamphetamine/libphonenumber-js/issues/376\n      if (country || callingCode) {\n        var _extractCountryCallin = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata),\n            countryCallingCode = _extractCountryCallin.countryCallingCode,\n            shorterNumber = _extractCountryCallin.number;\n\n        if (countryCallingCode) {\n          return {\n            countryCallingCodeSource: 'FROM_NUMBER_WITHOUT_PLUS_SIGN',\n            countryCallingCode: countryCallingCode,\n            number: shorterNumber\n          };\n        }\n      }\n\n      return {\n        // No need to set it to `UNSPECIFIED`. It can be just `undefined`.\n        // countryCallingCodeSource: 'UNSPECIFIED',\n        number: number\n      };\n    }\n  } // Fast abortion: country codes do not begin with a '0'\n\n\n  if (number[1] === '0') {\n    return {};\n  }\n\n  metadata = new Metadata(metadata); // The thing with country phone codes\n  // is that they are orthogonal to each other\n  // i.e. there's no such country phone code A\n  // for which country phone code B exists\n  // where B starts with A.\n  // Therefore, while scanning digits,\n  // if a valid country code is found,\n  // that means that it is the country code.\n  //\n\n  var i = 2;\n\n  while (i - 1 <= MAX_LENGTH_COUNTRY_CODE && i <= number.length) {\n    var _countryCallingCode = number.slice(1, i);\n\n    if (metadata.hasCallingCode(_countryCallingCode)) {\n      metadata.selectNumberingPlan(_countryCallingCode);\n      return {\n        countryCallingCodeSource: isNumberWithIddPrefix ? 'FROM_NUMBER_WITH_IDD' : 'FROM_NUMBER_WITH_PLUS_SIGN',\n        countryCallingCode: _countryCallingCode,\n        number: number.slice(i)\n      };\n    }\n\n    i++;\n  }\n\n  return {};\n} // The possible values for the returned `countryCallingCodeSource` are:\n//\n// Copy-pasted from:\n// https://github.com/google/libphonenumber/blob/master/resources/phonenumber.proto\n//\n// // The source from which the country_code is derived. This is not set in the\n// // general parsing method, but in the method that parses and keeps raw_input.\n// // New fields could be added upon request.\n// enum CountryCodeSource {\n//  // Default value returned if this is not set, because the phone number was\n//  // created using parse, not parseAndKeepRawInput. hasCountryCodeSource will\n//  // return false if this is the case.\n//  UNSPECIFIED = 0;\n//\n//  // The country_code is derived based on a phone number with a leading \"+\",\n//  // e.g. the French number \"+33 1 42 68 53 00\".\n//  FROM_NUMBER_WITH_PLUS_SIGN = 1;\n//\n//  // The country_code is derived based on a phone number with a leading IDD,\n//  // e.g. the French number \"011 33 1 42 68 53 00\", as it is dialled from US.\n//  FROM_NUMBER_WITH_IDD = 5;\n//\n//  // The country_code is derived based on a phone number without a leading\n//  // \"+\", e.g. the French number \"33 1 42 68 53 00\" when defaultCountry is\n//  // supplied as France.\n//  FROM_NUMBER_WITHOUT_PLUS_SIGN = 10;\n//\n//  // The country_code is derived NOT based on the phone number itself, but\n//  // from the defaultCountry parameter provided in the parsing function by the\n//  // clients. This happens mostly for numbers written in the national format\n//  // (without country code). For example, this would be set when parsing the\n//  // French number \"01 42 68 53 00\", when defaultCountry is supplied as\n//  // France.\n//  FROM_DEFAULT_COUNTRY = 20;\n// }\n//# sourceMappingURL=extractCountryCallingCode.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport Metadata from '../metadata.js';\nimport getNumberType from './getNumberType.js';\nexport default function getCountryByNationalNumber(nationalPhoneNumber, _ref) {\n  var countries = _ref.countries,\n      defaultCountry = _ref.defaultCountry,\n      metadata = _ref.metadata;\n  // Re-create `metadata` because it will be selecting a `country`.\n  metadata = new Metadata(metadata); // const matchingCountries = []\n\n  for (var _iterator = _createForOfIteratorHelperLoose(countries), _step; !(_step = _iterator()).done;) {\n    var country = _step.value;\n    metadata.country(country); // \"Leading digits\" patterns are only defined for about 20% of all countries.\n    // By definition, matching \"leading digits\" is a sufficient but not a necessary\n    // condition for a phone number to belong to a country.\n    // The point of \"leading digits\" check is that it's the fastest one to get a match.\n    // https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md#leading_digits\n    // I'd suppose that \"leading digits\" patterns are mutually exclusive for different countries\n    // because of the intended use of that feature.\n\n    if (metadata.leadingDigits()) {\n      if (nationalPhoneNumber && nationalPhoneNumber.search(metadata.leadingDigits()) === 0) {\n        return country;\n      }\n    } // Else perform full validation with all of those\n    // fixed-line/mobile/etc regular expressions.\n    else if (getNumberType({\n      phone: nationalPhoneNumber,\n      country: country\n    }, undefined, metadata.metadata)) {\n      // If both the `defaultCountry` and the \"main\" one match the phone number,\n      // don't prefer the `defaultCountry` over the \"main\" one.\n      // https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/154\n      return country; // // If the `defaultCountry` is among the `matchingCountries` then return it.\n      // if (defaultCountry) {\n      // \tif (country === defaultCountry) {\n      // \t\treturn country\n      // \t}\n      // \tmatchingCountries.push(country)\n      // } else {\n      // \treturn country\n      // }\n    }\n  } // // Return the first (\"main\") one of the `matchingCountries`.\n  // if (matchingCountries.length > 0) {\n  // \treturn matchingCountries[0]\n  // }\n\n}\n//# sourceMappingURL=getCountryByNationalNumber.js.map","import getCountryByNationalNumber from './getCountryByNationalNumber.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\nexport default function getCountryByCallingCode(callingCode, _ref) {\n  var nationalPhoneNumber = _ref.nationalNumber,\n      defaultCountry = _ref.defaultCountry,\n      metadata = _ref.metadata;\n\n  /* istanbul ignore if */\n  if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n    if (metadata.isNonGeographicCallingCode(callingCode)) {\n      return '001';\n    }\n  }\n\n  var possibleCountries = metadata.getCountryCodesForCallingCode(callingCode);\n\n  if (!possibleCountries) {\n    return;\n  } // If there's just one country corresponding to the country code,\n  // then just return it, without further phone number digits validation.\n\n\n  if (possibleCountries.length === 1) {\n    return possibleCountries[0];\n  }\n\n  return getCountryByNationalNumber(nationalPhoneNumber, {\n    countries: possibleCountries,\n    defaultCountry: defaultCountry,\n    metadata: metadata.metadata\n  });\n}\n//# sourceMappingURL=getCountryByCallingCode.js.map","// When phone numbers are written in `RFC3966` format — `\"tel:+12133734253\"` —\n// they can have their \"calling code\" part written separately in a `phone-context` parameter.\n// Example: `\"tel:12133734253;phone-context=+1\"`.\n// This function parses the full phone number from the local number and the `phone-context`\n// when the `phone-context` contains a `+` sign.\nimport { VALID_DIGITS // PLUS_CHARS\n} from '../constants.js';\nexport var PLUS_SIGN = '+';\nvar RFC3966_VISUAL_SEPARATOR_ = '[\\\\-\\\\.\\\\(\\\\)]?';\nvar RFC3966_PHONE_DIGIT_ = '(' + '[' + VALID_DIGITS + ']' + '|' + RFC3966_VISUAL_SEPARATOR_ + ')';\nvar RFC3966_GLOBAL_NUMBER_DIGITS_ = '^' + '\\\\' + PLUS_SIGN + RFC3966_PHONE_DIGIT_ + '*' + '[' + VALID_DIGITS + ']' + RFC3966_PHONE_DIGIT_ + '*' + '$';\n/**\r\n * Regular expression of valid global-number-digits for the phone-context\r\n * parameter, following the syntax defined in RFC3966.\r\n */\n\nvar RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_ = new RegExp(RFC3966_GLOBAL_NUMBER_DIGITS_, 'g'); // In this port of Google's library, we don't accept alpha characters in phone numbers.\n// const ALPHANUM_ = VALID_ALPHA_ + VALID_DIGITS\n\nvar ALPHANUM_ = VALID_DIGITS;\nvar RFC3966_DOMAINLABEL_ = '[' + ALPHANUM_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*';\nvar VALID_ALPHA_ = 'a-zA-Z';\nvar RFC3966_TOPLABEL_ = '[' + VALID_ALPHA_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*';\nvar RFC3966_DOMAINNAME_ = '^(' + RFC3966_DOMAINLABEL_ + '\\\\.)*' + RFC3966_TOPLABEL_ + '\\\\.?$';\n/**\r\n * Regular expression of valid domainname for the phone-context parameter,\r\n * following the syntax defined in RFC3966.\r\n */\n\nvar RFC3966_DOMAINNAME_PATTERN_ = new RegExp(RFC3966_DOMAINNAME_, 'g');\nexport var RFC3966_PREFIX_ = 'tel:';\nexport var RFC3966_PHONE_CONTEXT_ = ';phone-context=';\nexport var RFC3966_ISDN_SUBADDRESS_ = ';isub=';\n/**\r\n * Extracts the value of the phone-context parameter of `numberToExtractFrom`,\r\n * following the syntax defined in RFC3966.\r\n *\r\n * @param {string} numberToExtractFrom\r\n * @return {string|null} the extracted string (possibly empty), or `null` if no phone-context parameter is found.\r\n */\n\nexport default function extractPhoneContext(numberToExtractFrom) {\n  var indexOfPhoneContext = numberToExtractFrom.indexOf(RFC3966_PHONE_CONTEXT_); // If no phone-context parameter is present\n\n  if (indexOfPhoneContext < 0) {\n    return null;\n  }\n\n  var phoneContextStart = indexOfPhoneContext + RFC3966_PHONE_CONTEXT_.length; // If phone-context parameter is empty\n\n  if (phoneContextStart >= numberToExtractFrom.length) {\n    return '';\n  }\n\n  var phoneContextEnd = numberToExtractFrom.indexOf(';', phoneContextStart); // If phone-context is not the last parameter\n\n  if (phoneContextEnd >= 0) {\n    return numberToExtractFrom.substring(phoneContextStart, phoneContextEnd);\n  } else {\n    return numberToExtractFrom.substring(phoneContextStart);\n  }\n}\n/**\r\n * Returns whether the value of phoneContext follows the syntax defined in RFC3966.\r\n *\r\n * @param {string|null} phoneContext\r\n * @return {boolean}\r\n */\n\nexport function isPhoneContextValid(phoneContext) {\n  if (phoneContext === null) {\n    return true;\n  }\n\n  if (phoneContext.length === 0) {\n    return false;\n  } // Does phone-context value match pattern of global-number-digits or domainname.\n\n\n  return RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_.test(phoneContext) || RFC3966_DOMAINNAME_PATTERN_.test(phoneContext);\n}\n//# sourceMappingURL=extractPhoneContext.js.map","import extractPhoneContext, { isPhoneContextValid, PLUS_SIGN, RFC3966_PREFIX_, RFC3966_PHONE_CONTEXT_, RFC3966_ISDN_SUBADDRESS_ } from './extractPhoneContext.js';\nimport ParseError from '../ParseError.js';\n/**\r\n * @param  {string} numberToParse\r\n * @param  {string} nationalNumber\r\n * @return {}\r\n */\n\nexport default function extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(numberToParse, _ref) {\n  var extractFormattedPhoneNumber = _ref.extractFormattedPhoneNumber;\n  var phoneContext = extractPhoneContext(numberToParse);\n\n  if (!isPhoneContextValid(phoneContext)) {\n    throw new ParseError('NOT_A_NUMBER');\n  }\n\n  var phoneNumberString;\n\n  if (phoneContext === null) {\n    // Extract a possible number from the string passed in.\n    // (this strips leading characters that could not be the start of a phone number)\n    phoneNumberString = extractFormattedPhoneNumber(numberToParse) || '';\n  } else {\n    phoneNumberString = ''; // If the phone context contains a phone number prefix, we need to capture\n    // it, whereas domains will be ignored.\n\n    if (phoneContext.charAt(0) === PLUS_SIGN) {\n      phoneNumberString += phoneContext;\n    } // Now append everything between the \"tel:\" prefix and the phone-context.\n    // This should include the national number, an optional extension or\n    // isdn-subaddress component. Note we also handle the case when \"tel:\" is\n    // missing, as we have seen in some of the phone number inputs.\n    // In that case, we append everything from the beginning.\n\n\n    var indexOfRfc3966Prefix = numberToParse.indexOf(RFC3966_PREFIX_);\n    var indexOfNationalNumber; // RFC 3966 \"tel:\" prefix is preset at this stage because\n    // `isPhoneContextValid()` requires it to be present.\n\n    /* istanbul ignore else */\n\n    if (indexOfRfc3966Prefix >= 0) {\n      indexOfNationalNumber = indexOfRfc3966Prefix + RFC3966_PREFIX_.length;\n    } else {\n      indexOfNationalNumber = 0;\n    }\n\n    var indexOfPhoneContext = numberToParse.indexOf(RFC3966_PHONE_CONTEXT_);\n    phoneNumberString += numberToParse.substring(indexOfNationalNumber, indexOfPhoneContext);\n  } // Delete the isdn-subaddress and everything after it if it is present.\n  // Note extension won't appear at the same time with isdn-subaddress\n  // according to paragraph 5.3 of the RFC3966 spec.\n\n\n  var indexOfIsdn = phoneNumberString.indexOf(RFC3966_ISDN_SUBADDRESS_);\n\n  if (indexOfIsdn > 0) {\n    phoneNumberString = phoneNumberString.substring(0, indexOfIsdn);\n  } // If both phone context and isdn-subaddress are absent but other\n  // parameters are present, the parameters are left in nationalNumber.\n  // This is because we are concerned about deleting content from a potential\n  // number string when there is no strong evidence that the number is\n  // actually written in RFC3966.\n\n\n  if (phoneNumberString !== '') {\n    return phoneNumberString;\n  }\n}\n//# sourceMappingURL=extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js.map","// This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\nimport { VALID_DIGITS, PLUS_CHARS, MIN_LENGTH_FOR_NSN, MAX_LENGTH_FOR_NSN } from './constants.js';\nimport ParseError from './ParseError.js';\nimport Metadata from './metadata.js';\nimport isViablePhoneNumber, { isViablePhoneNumberStart } from './helpers/isViablePhoneNumber.js';\nimport extractExtension from './helpers/extension/extractExtension.js';\nimport parseIncompletePhoneNumber from './parseIncompletePhoneNumber.js';\nimport getCountryCallingCode from './getCountryCallingCode.js';\nimport { isPossibleNumber } from './isPossible.js'; // import { parseRFC3966 } from './helpers/RFC3966.js'\n\nimport PhoneNumber from './PhoneNumber.js';\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport extractCountryCallingCode from './helpers/extractCountryCallingCode.js';\nimport extractNationalNumber from './helpers/extractNationalNumber.js';\nimport stripIddPrefix from './helpers/stripIddPrefix.js';\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode.js';\nimport extractFormattedPhoneNumberFromPossibleRfc3966NumberUri from './helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js'; // We don't allow input strings for parsing to be longer than 250 chars.\n// This prevents malicious input from consuming CPU.\n\nvar MAX_INPUT_STRING_LENGTH = 250; // This consists of the plus symbol, digits, and arabic-indic digits.\n\nvar PHONE_NUMBER_START_PATTERN = new RegExp('[' + PLUS_CHARS + VALID_DIGITS + ']'); // Regular expression of trailing characters that we want to remove.\n// A trailing `#` is sometimes used when writing phone numbers with extensions in US.\n// Example: \"+1 (645) 123 1234-910#\" number has extension \"910\".\n\nvar AFTER_PHONE_NUMBER_END_PATTERN = new RegExp('[^' + VALID_DIGITS + '#' + ']+$');\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false; // Examples:\n//\n// ```js\n// parse('8 (800) 555-35-35', 'RU')\n// parse('8 (800) 555-35-35', 'RU', metadata)\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } })\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } }, metadata)\n// parse('+7 800 555 35 35')\n// parse('+7 800 555 35 35', metadata)\n// ```\n//\n\n/**\r\n * Parses a phone number.\r\n *\r\n * parse('123456789', { defaultCountry: 'RU', v2: true }, metadata)\r\n * parse('123456789', { defaultCountry: 'RU' }, metadata)\r\n * parse('123456789', undefined, metadata)\r\n *\r\n * @param  {string} input\r\n * @param  {object} [options]\r\n * @param  {object} metadata\r\n * @return {object|PhoneNumber?} If `options.v2: true` flag is passed, it returns a `PhoneNumber?` instance. Otherwise, returns an object of shape `{ phone: '...', country: '...' }` (or just `{}` if no phone number was parsed).\r\n */\n\nexport default function parse(text, options, metadata) {\n  // If assigning the `{}` default value is moved to the arguments above,\n  // code coverage would decrease for some weird reason.\n  options = options || {};\n  metadata = new Metadata(metadata); // Validate `defaultCountry`.\n\n  if (options.defaultCountry && !metadata.hasCountry(options.defaultCountry)) {\n    if (options.v2) {\n      throw new ParseError('INVALID_COUNTRY');\n    }\n\n    throw new Error(\"Unknown country: \".concat(options.defaultCountry));\n  } // Parse the phone number.\n\n\n  var _parseInput = parseInput(text, options.v2, options.extract),\n      formattedPhoneNumber = _parseInput.number,\n      ext = _parseInput.ext,\n      error = _parseInput.error; // If the phone number is not viable then return nothing.\n\n\n  if (!formattedPhoneNumber) {\n    if (options.v2) {\n      if (error === 'TOO_SHORT') {\n        throw new ParseError('TOO_SHORT');\n      }\n\n      throw new ParseError('NOT_A_NUMBER');\n    }\n\n    return {};\n  }\n\n  var _parsePhoneNumber = parsePhoneNumber(formattedPhoneNumber, options.defaultCountry, options.defaultCallingCode, metadata),\n      country = _parsePhoneNumber.country,\n      nationalNumber = _parsePhoneNumber.nationalNumber,\n      countryCallingCode = _parsePhoneNumber.countryCallingCode,\n      countryCallingCodeSource = _parsePhoneNumber.countryCallingCodeSource,\n      carrierCode = _parsePhoneNumber.carrierCode;\n\n  if (!metadata.hasSelectedNumberingPlan()) {\n    if (options.v2) {\n      throw new ParseError('INVALID_COUNTRY');\n    }\n\n    return {};\n  } // Validate national (significant) number length.\n\n\n  if (!nationalNumber || nationalNumber.length < MIN_LENGTH_FOR_NSN) {\n    // Won't throw here because the regexp already demands length > 1.\n\n    /* istanbul ignore if */\n    if (options.v2) {\n      throw new ParseError('TOO_SHORT');\n    } // Google's demo just throws an error in this case.\n\n\n    return {};\n  } // Validate national (significant) number length.\n  //\n  // A sidenote:\n  //\n  // They say that sometimes national (significant) numbers\n  // can be longer than `MAX_LENGTH_FOR_NSN` (e.g. in Germany).\n  // https://github.com/googlei18n/libphonenumber/blob/7e1748645552da39c4e1ba731e47969d97bdb539/resources/phonenumber.proto#L36\n  // Such numbers will just be discarded.\n  //\n\n\n  if (nationalNumber.length > MAX_LENGTH_FOR_NSN) {\n    if (options.v2) {\n      throw new ParseError('TOO_LONG');\n    } // Google's demo just throws an error in this case.\n\n\n    return {};\n  }\n\n  if (options.v2) {\n    var phoneNumber = new PhoneNumber(countryCallingCode, nationalNumber, metadata.metadata);\n\n    if (country) {\n      phoneNumber.country = country;\n    }\n\n    if (carrierCode) {\n      phoneNumber.carrierCode = carrierCode;\n    }\n\n    if (ext) {\n      phoneNumber.ext = ext;\n    }\n\n    phoneNumber.__countryCallingCodeSource = countryCallingCodeSource;\n    return phoneNumber;\n  } // Check if national phone number pattern matches the number.\n  // National number pattern is different for each country,\n  // even for those ones which are part of the \"NANPA\" group.\n\n\n  var valid = (options.extended ? metadata.hasSelectedNumberingPlan() : country) ? matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) : false;\n\n  if (!options.extended) {\n    return valid ? result(country, nationalNumber, ext) : {};\n  } // isInternational: countryCallingCode !== undefined\n\n\n  return {\n    country: country,\n    countryCallingCode: countryCallingCode,\n    carrierCode: carrierCode,\n    valid: valid,\n    possible: valid ? true : options.extended === true && metadata.possibleLengths() && isPossibleNumber(nationalNumber, metadata) ? true : false,\n    phone: nationalNumber,\n    ext: ext\n  };\n}\n/**\r\n * Extracts a formatted phone number from text.\r\n * Doesn't guarantee that the extracted phone number\r\n * is a valid phone number (for example, doesn't validate its length).\r\n * @param  {string} text\r\n * @param  {boolean} [extract] — If `false`, then will parse the entire `text` as a phone number.\r\n * @param  {boolean} [throwOnError] — By default, it won't throw if the text is too long.\r\n * @return {string}\r\n * @example\r\n * // Returns \"(213) 373-4253\".\r\n * extractFormattedPhoneNumber(\"Call (213) 373-4253 for assistance.\")\r\n */\n\nfunction _extractFormattedPhoneNumber(text, extract, throwOnError) {\n  if (!text) {\n    return;\n  }\n\n  if (text.length > MAX_INPUT_STRING_LENGTH) {\n    if (throwOnError) {\n      throw new ParseError('TOO_LONG');\n    }\n\n    return;\n  }\n\n  if (extract === false) {\n    return text;\n  } // Attempt to extract a possible number from the string passed in\n\n\n  var startsAt = text.search(PHONE_NUMBER_START_PATTERN);\n\n  if (startsAt < 0) {\n    return;\n  }\n\n  return text // Trim everything to the left of the phone number\n  .slice(startsAt) // Remove trailing non-numerical characters\n  .replace(AFTER_PHONE_NUMBER_END_PATTERN, '');\n}\n/**\r\n * @param  {string} text - Input.\r\n * @param  {boolean} v2 - Legacy API functions don't pass `v2: true` flag.\r\n * @param  {boolean} [extract] - Whether to extract a phone number from `text`, or attempt to parse the entire text as a phone number.\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\n\nfunction parseInput(text, v2, extract) {\n  // // Parse RFC 3966 phone number URI.\n  // if (text && text.indexOf('tel:') === 0) {\n  // \treturn parseRFC3966(text)\n  // }\n  // let number = extractFormattedPhoneNumber(text, extract, v2)\n  var number = extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(text, {\n    extractFormattedPhoneNumber: function extractFormattedPhoneNumber(text) {\n      return _extractFormattedPhoneNumber(text, extract, v2);\n    }\n  }); // If the phone number is not viable, then abort.\n\n  if (!number) {\n    return {};\n  }\n\n  if (!isViablePhoneNumber(number)) {\n    if (isViablePhoneNumberStart(number)) {\n      return {\n        error: 'TOO_SHORT'\n      };\n    }\n\n    return {};\n  } // Attempt to parse extension first, since it doesn't require region-specific\n  // data and we want to have the non-normalised number here.\n\n\n  var withExtensionStripped = extractExtension(number);\n\n  if (withExtensionStripped.ext) {\n    return withExtensionStripped;\n  }\n\n  return {\n    number: number\n  };\n}\n/**\r\n * Creates `parse()` result object.\r\n */\n\n\nfunction result(country, nationalNumber, ext) {\n  var result = {\n    country: country,\n    phone: nationalNumber\n  };\n\n  if (ext) {\n    result.ext = ext;\n  }\n\n  return result;\n}\n/**\r\n * Parses a viable phone number.\r\n * @param {string} formattedPhoneNumber — Example: \"(213) 373-4253\".\r\n * @param {string} [defaultCountry]\r\n * @param {string} [defaultCallingCode]\r\n * @param {Metadata} metadata\r\n * @return {object} Returns `{ country: string?, countryCallingCode: string?, nationalNumber: string? }`.\r\n */\n\n\nfunction parsePhoneNumber(formattedPhoneNumber, defaultCountry, defaultCallingCode, metadata) {\n  // Extract calling code from phone number.\n  var _extractCountryCallin = extractCountryCallingCode(parseIncompletePhoneNumber(formattedPhoneNumber), defaultCountry, defaultCallingCode, metadata.metadata),\n      countryCallingCodeSource = _extractCountryCallin.countryCallingCodeSource,\n      countryCallingCode = _extractCountryCallin.countryCallingCode,\n      number = _extractCountryCallin.number; // Choose a country by `countryCallingCode`.\n\n\n  var country;\n\n  if (countryCallingCode) {\n    metadata.selectNumberingPlan(countryCallingCode);\n  } // If `formattedPhoneNumber` is passed in \"national\" format\n  // then `number` is defined and `countryCallingCode` is `undefined`.\n  else if (number && (defaultCountry || defaultCallingCode)) {\n    metadata.selectNumberingPlan(defaultCountry, defaultCallingCode);\n\n    if (defaultCountry) {\n      country = defaultCountry;\n    } else {\n      /* istanbul ignore if */\n      if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n        if (metadata.isNonGeographicCallingCode(defaultCallingCode)) {\n          country = '001';\n        }\n      }\n    }\n\n    countryCallingCode = defaultCallingCode || getCountryCallingCode(defaultCountry, metadata.metadata);\n  } else return {};\n\n  if (!number) {\n    return {\n      countryCallingCodeSource: countryCallingCodeSource,\n      countryCallingCode: countryCallingCode\n    };\n  }\n\n  var _extractNationalNumbe = extractNationalNumber(parseIncompletePhoneNumber(number), metadata),\n      nationalNumber = _extractNationalNumbe.nationalNumber,\n      carrierCode = _extractNationalNumbe.carrierCode; // Sometimes there are several countries\n  // corresponding to the same country phone code\n  // (e.g. NANPA countries all having `1` country phone code).\n  // Therefore, to reliably determine the exact country,\n  // national (significant) number should have been parsed first.\n  //\n  // When `metadata.json` is generated, all \"ambiguous\" country phone codes\n  // get their countries populated with the full set of\n  // \"phone number type\" regular expressions.\n  //\n\n\n  var exactCountry = getCountryByCallingCode(countryCallingCode, {\n    nationalNumber: nationalNumber,\n    defaultCountry: defaultCountry,\n    metadata: metadata\n  });\n\n  if (exactCountry) {\n    country = exactCountry;\n    /* istanbul ignore if */\n\n    if (exactCountry === '001') {// Can't happen with `USE_NON_GEOGRAPHIC_COUNTRY_CODE` being `false`.\n      // If `USE_NON_GEOGRAPHIC_COUNTRY_CODE` is set to `true` for some reason,\n      // then remove the \"istanbul ignore if\".\n    } else {\n      metadata.country(country);\n    }\n  }\n\n  return {\n    country: country,\n    countryCallingCode: countryCallingCode,\n    countryCallingCodeSource: countryCallingCodeSource,\n    nationalNumber: nationalNumber,\n    carrierCode: carrierCode\n  };\n}\n//# sourceMappingURL=parse.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport parse from './parse.js';\nexport default function parsePhoneNumberWithError(text, options, metadata) {\n  return parse(text, _objectSpread(_objectSpread({}, options), {}, {\n    v2: true\n  }), metadata);\n}\n//# sourceMappingURL=parsePhoneNumberWithError_.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport parsePhoneNumberWithError from './parsePhoneNumberWithError_.js';\nimport ParseError from './ParseError.js';\nimport { isSupportedCountry } from './metadata.js';\nexport default function parsePhoneNumber(text, options, metadata) {\n  // Validate `defaultCountry`.\n  if (options && options.defaultCountry && !isSupportedCountry(options.defaultCountry, metadata)) {\n    options = _objectSpread(_objectSpread({}, options), {}, {\n      defaultCountry: undefined\n    });\n  } // Parse phone number.\n\n\n  try {\n    return parsePhoneNumberWithError(text, options, metadata);\n  } catch (error) {\n    /* istanbul ignore else */\n    if (error instanceof ParseError) {//\n    } else {\n      throw error;\n    }\n  }\n}\n//# sourceMappingURL=parsePhoneNumber_.js.map","import normalizeArguments from './normalizeArguments.js';\nimport parsePhoneNumber_ from './parsePhoneNumber_.js';\nexport default function parsePhoneNumber() {\n  var _normalizeArguments = normalizeArguments(arguments),\n      text = _normalizeArguments.text,\n      options = _normalizeArguments.options,\n      metadata = _normalizeArguments.metadata;\n\n  return parsePhoneNumber_(text, options, metadata);\n}\n//# sourceMappingURL=parsePhoneNumber.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport normalizeArguments from './normalizeArguments.js';\nimport parsePhoneNumber from './parsePhoneNumber_.js';\nexport default function isValidPhoneNumber() {\n  var _normalizeArguments = normalizeArguments(arguments),\n      text = _normalizeArguments.text,\n      options = _normalizeArguments.options,\n      metadata = _normalizeArguments.metadata;\n\n  options = _objectSpread(_objectSpread({}, options), {}, {\n    extract: false\n  });\n  var phoneNumber = parsePhoneNumber(text, options, metadata);\n  return phoneNumber && phoneNumber.isValid() || false;\n}\n//# sourceMappingURL=isValidPhoneNumber.js.map","import Metadata from './metadata.js';\nexport default function getCountries(metadata) {\n  return new Metadata(metadata).getCountries();\n}\n//# sourceMappingURL=getCountries.js.map","export default {\n  \"ext\": \"ext.\",\n  \"country\": \"Phone number country\",\n  \"phone\": \"Phone\",\n  \"AB\": \"Abkhazia\",\n  \"AC\": \"Ascension Island\",\n  \"AD\": \"Andorra\",\n  \"AE\": \"United Arab Emirates\",\n  \"AF\": \"Afghanistan\",\n  \"AG\": \"Antigua and Barbuda\",\n  \"AI\": \"Anguilla\",\n  \"AL\": \"Albania\",\n  \"AM\": \"Armenia\",\n  \"AO\": \"Angola\",\n  \"AQ\": \"Antarctica\",\n  \"AR\": \"Argentina\",\n  \"AS\": \"American Samoa\",\n  \"AT\": \"Austria\",\n  \"AU\": \"Australia\",\n  \"AW\": \"Aruba\",\n  \"AX\": \"Åland Islands\",\n  \"AZ\": \"Azerbaijan\",\n  \"BA\": \"Bosnia and Herzegovina\",\n  \"BB\": \"Barbados\",\n  \"BD\": \"Bangladesh\",\n  \"BE\": \"Belgium\",\n  \"BF\": \"Burkina Faso\",\n  \"BG\": \"Bulgaria\",\n  \"BH\": \"Bahrain\",\n  \"BI\": \"Burundi\",\n  \"BJ\": \"Benin\",\n  \"BL\": \"Saint Barthélemy\",\n  \"BM\": \"Bermuda\",\n  \"BN\": \"Brunei Darussalam\",\n  \"BO\": \"Bolivia\",\n  \"BQ\": \"Bonaire, Sint Eustatius and Saba\",\n  \"BR\": \"Brazil\",\n  \"BS\": \"Bahamas\",\n  \"BT\": \"Bhutan\",\n  \"BV\": \"Bouvet Island\",\n  \"BW\": \"Botswana\",\n  \"BY\": \"Belarus\",\n  \"BZ\": \"Belize\",\n  \"CA\": \"Canada\",\n  \"CC\": \"Cocos (Keeling) Islands\",\n  \"CD\": \"Congo, Democratic Republic of the\",\n  \"CF\": \"Central African Republic\",\n  \"CG\": \"Congo\",\n  \"CH\": \"Switzerland\",\n  \"CI\": \"Cote d'Ivoire\",\n  \"CK\": \"Cook Islands\",\n  \"CL\": \"Chile\",\n  \"CM\": \"Cameroon\",\n  \"CN\": \"China\",\n  \"CO\": \"Colombia\",\n  \"CR\": \"Costa Rica\",\n  \"CU\": \"Cuba\",\n  \"CV\": \"Cape Verde\",\n  \"CW\": \"Curaçao\",\n  \"CX\": \"Christmas Island\",\n  \"CY\": \"Cyprus\",\n  \"CZ\": \"Czech Republic\",\n  \"DE\": \"Germany\",\n  \"DJ\": \"Djibouti\",\n  \"DK\": \"Denmark\",\n  \"DM\": \"Dominica\",\n  \"DO\": \"Dominican Republic\",\n  \"DZ\": \"Algeria\",\n  \"EC\": \"Ecuador\",\n  \"EE\": \"Estonia\",\n  \"EG\": \"Egypt\",\n  \"EH\": \"Western Sahara\",\n  \"ER\": \"Eritrea\",\n  \"ES\": \"Spain\",\n  \"ET\": \"Ethiopia\",\n  \"FI\": \"Finland\",\n  \"FJ\": \"Fiji\",\n  \"FK\": \"Falkland Islands\",\n  \"FM\": \"Federated States of Micronesia\",\n  \"FO\": \"Faroe Islands\",\n  \"FR\": \"France\",\n  \"GA\": \"Gabon\",\n  \"GB\": \"United Kingdom\",\n  \"GD\": \"Grenada\",\n  \"GE\": \"Georgia\",\n  \"GF\": \"French Guiana\",\n  \"GG\": \"Guernsey\",\n  \"GH\": \"Ghana\",\n  \"GI\": \"Gibraltar\",\n  \"GL\": \"Greenland\",\n  \"GM\": \"Gambia\",\n  \"GN\": \"Guinea\",\n  \"GP\": \"Guadeloupe\",\n  \"GQ\": \"Equatorial Guinea\",\n  \"GR\": \"Greece\",\n  \"GS\": \"South Georgia and the South Sandwich Islands\",\n  \"GT\": \"Guatemala\",\n  \"GU\": \"Guam\",\n  \"GW\": \"Guinea-Bissau\",\n  \"GY\": \"Guyana\",\n  \"HK\": \"Hong Kong\",\n  \"HM\": \"Heard Island and McDonald Islands\",\n  \"HN\": \"Honduras\",\n  \"HR\": \"Croatia\",\n  \"HT\": \"Haiti\",\n  \"HU\": \"Hungary\",\n  \"ID\": \"Indonesia\",\n  \"IE\": \"Ireland\",\n  \"IL\": \"Israel\",\n  \"IM\": \"Isle of Man\",\n  \"IN\": \"India\",\n  \"IO\": \"British Indian Ocean Territory\",\n  \"IQ\": \"Iraq\",\n  \"IR\": \"Iran\",\n  \"IS\": \"Iceland\",\n  \"IT\": \"Italy\",\n  \"JE\": \"Jersey\",\n  \"JM\": \"Jamaica\",\n  \"JO\": \"Jordan\",\n  \"JP\": \"Japan\",\n  \"KE\": \"Kenya\",\n  \"KG\": \"Kyrgyzstan\",\n  \"KH\": \"Cambodia\",\n  \"KI\": \"Kiribati\",\n  \"KM\": \"Comoros\",\n  \"KN\": \"Saint Kitts and Nevis\",\n  \"KP\": \"North Korea\",\n  \"KR\": \"South Korea\",\n  \"KW\": \"Kuwait\",\n  \"KY\": \"Cayman Islands\",\n  \"KZ\": \"Kazakhstan\",\n  \"LA\": \"Laos\",\n  \"LB\": \"Lebanon\",\n  \"LC\": \"Saint Lucia\",\n  \"LI\": \"Liechtenstein\",\n  \"LK\": \"Sri Lanka\",\n  \"LR\": \"Liberia\",\n  \"LS\": \"Lesotho\",\n  \"LT\": \"Lithuania\",\n  \"LU\": \"Luxembourg\",\n  \"LV\": \"Latvia\",\n  \"LY\": \"Libya\",\n  \"MA\": \"Morocco\",\n  \"MC\": \"Monaco\",\n  \"MD\": \"Moldova\",\n  \"ME\": \"Montenegro\",\n  \"MF\": \"Saint Martin (French Part)\",\n  \"MG\": \"Madagascar\",\n  \"MH\": \"Marshall Islands\",\n  \"MK\": \"North Macedonia\",\n  \"ML\": \"Mali\",\n  \"MM\": \"Myanmar\",\n  \"MN\": \"Mongolia\",\n  \"MO\": \"Macao\",\n  \"MP\": \"Northern Mariana Islands\",\n  \"MQ\": \"Martinique\",\n  \"MR\": \"Mauritania\",\n  \"MS\": \"Montserrat\",\n  \"MT\": \"Malta\",\n  \"MU\": \"Mauritius\",\n  \"MV\": \"Maldives\",\n  \"MW\": \"Malawi\",\n  \"MX\": \"Mexico\",\n  \"MY\": \"Malaysia\",\n  \"MZ\": \"Mozambique\",\n  \"NA\": \"Namibia\",\n  \"NC\": \"New Caledonia\",\n  \"NE\": \"Niger\",\n  \"NF\": \"Norfolk Island\",\n  \"NG\": \"Nigeria\",\n  \"NI\": \"Nicaragua\",\n  \"NL\": \"Netherlands\",\n  \"NO\": \"Norway\",\n  \"NP\": \"Nepal\",\n  \"NR\": \"Nauru\",\n  \"NU\": \"Niue\",\n  \"NZ\": \"New Zealand\",\n  \"OM\": \"Oman\",\n  \"OS\": \"South Ossetia\",\n  \"PA\": \"Panama\",\n  \"PE\": \"Peru\",\n  \"PF\": \"French Polynesia\",\n  \"PG\": \"Papua New Guinea\",\n  \"PH\": \"Philippines\",\n  \"PK\": \"Pakistan\",\n  \"PL\": \"Poland\",\n  \"PM\": \"Saint Pierre and Miquelon\",\n  \"PN\": \"Pitcairn\",\n  \"PR\": \"Puerto Rico\",\n  \"PS\": \"Palestine\",\n  \"PT\": \"Portugal\",\n  \"PW\": \"Palau\",\n  \"PY\": \"Paraguay\",\n  \"QA\": \"Qatar\",\n  \"RE\": \"Reunion\",\n  \"RO\": \"Romania\",\n  \"RS\": \"Serbia\",\n  \"RU\": \"Russia\",\n  \"RW\": \"Rwanda\",\n  \"SA\": \"Saudi Arabia\",\n  \"SB\": \"Solomon Islands\",\n  \"SC\": \"Seychelles\",\n  \"SD\": \"Sudan\",\n  \"SE\": \"Sweden\",\n  \"SG\": \"Singapore\",\n  \"SH\": \"Saint Helena\",\n  \"SI\": \"Slovenia\",\n  \"SJ\": \"Svalbard and Jan Mayen\",\n  \"SK\": \"Slovakia\",\n  \"SL\": \"Sierra Leone\",\n  \"SM\": \"San Marino\",\n  \"SN\": \"Senegal\",\n  \"SO\": \"Somalia\",\n  \"SR\": \"Suriname\",\n  \"SS\": \"South Sudan\",\n  \"ST\": \"Sao Tome and Principe\",\n  \"SV\": \"El Salvador\",\n  \"SX\": \"Sint Maarten\",\n  \"SY\": \"Syria\",\n  \"SZ\": \"Swaziland\",\n  \"TA\": \"Tristan da Cunha\",\n  \"TC\": \"Turks and Caicos Islands\",\n  \"TD\": \"Chad\",\n  \"TF\": \"French Southern Territories\",\n  \"TG\": \"Togo\",\n  \"TH\": \"Thailand\",\n  \"TJ\": \"Tajikistan\",\n  \"TK\": \"Tokelau\",\n  \"TL\": \"Timor-Leste\",\n  \"TM\": \"Turkmenistan\",\n  \"TN\": \"Tunisia\",\n  \"TO\": \"Tonga\",\n  \"TR\": \"Turkey\",\n  \"TT\": \"Trinidad and Tobago\",\n  \"TV\": \"Tuvalu\",\n  \"TW\": \"Taiwan\",\n  \"TZ\": \"Tanzania\",\n  \"UA\": \"Ukraine\",\n  \"UG\": \"Uganda\",\n  \"UM\": \"United States Minor Outlying Islands\",\n  \"US\": \"United States\",\n  \"UY\": \"Uruguay\",\n  \"UZ\": \"Uzbekistan\",\n  \"VA\": \"Holy See (Vatican City State)\",\n  \"VC\": \"Saint Vincent and the Grenadines\",\n  \"VE\": \"Venezuela\",\n  \"VG\": \"Virgin Islands, British\",\n  \"VI\": \"Virgin Islands, U.S.\",\n  \"VN\": \"Vietnam\",\n  \"VU\": \"Vanuatu\",\n  \"WF\": \"Wallis and Futuna\",\n  \"WS\": \"Samoa\",\n  \"XK\": \"Kosovo\",\n  \"YE\": \"Yemen\",\n  \"YT\": \"Mayotte\",\n  \"ZA\": \"South Africa\",\n  \"ZM\": \"Zambia\",\n  \"ZW\": \"Zimbabwe\",\n  \"ZZ\": \"International\"\n}","import PropTypes from 'prop-types';\nexport var metadata = PropTypes.shape({\n  country_calling_codes: PropTypes.object.isRequired,\n  countries: PropTypes.object.isRequired\n});\nexport var labels = PropTypes.objectOf(PropTypes.string);\n//# sourceMappingURL=PropTypes.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n// Counts all occurences of a symbol in a string\nexport function count_occurences(symbol, string) {\n  var count = 0; // Using `.split('')` here instead of normal `for ... of`\n  // because the importing application doesn't neccessarily include an ES6 polyfill.\n  // The `.split('')` approach discards \"exotic\" UTF-8 characters\n  // (the ones consisting of four bytes)\n  // but template placeholder characters don't fall into that range\n  // so skipping such miscellaneous \"exotic\" characters\n  // won't matter here for just counting placeholder character occurrences.\n\n  for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n    var character = _step.value;\n\n    if (character === symbol) {\n      count++;\n    }\n  }\n\n  return count;\n}\n//# sourceMappingURL=helpers.js.map","import { count_occurences } from './helpers.js';\nexport default function closeBraces(retained_template, template) {\n  var placeholder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'x';\n  var empty_placeholder = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ' ';\n  var cut_before = retained_template.length;\n  var opening_braces = count_occurences('(', retained_template);\n  var closing_braces = count_occurences(')', retained_template);\n  var dangling_braces = opening_braces - closing_braces;\n\n  while (dangling_braces > 0 && cut_before < template.length) {\n    retained_template += template[cut_before].replace(placeholder, empty_placeholder);\n\n    if (template[cut_before] === ')') {\n      dangling_braces--;\n    }\n\n    cut_before++;\n  }\n\n  return retained_template;\n}\n//# sourceMappingURL=closeBraces.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { count_occurences } from './helpers.js';\nimport close_braces from './closeBraces.js'; // Takes a `template` where character placeholders\n// are denoted by 'x'es (e.g. 'x (xxx) xxx-xx-xx').\n//\n// Returns a function which takes `value` characters\n// and returns the `template` filled with those characters.\n// If the `template` can only be partially filled\n// then it is cut off.\n//\n// If `shouldCloseBraces` is `true`,\n// then it will also make sure all dangling braces are closed,\n// e.g. \"8 (8\" -> \"8 (8  )\" (iPhone style phone number input).\n//\n\nexport default function (template) {\n  var placeholder = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'x';\n  var shouldCloseBraces = arguments.length > 2 ? arguments[2] : undefined;\n\n  if (!template) {\n    return function (value) {\n      return {\n        text: value\n      };\n    };\n  }\n\n  var placeholdersCountInTemplate = count_occurences(placeholder, template);\n  return function (value) {\n    if (!value) {\n      return {\n        text: '',\n        template: template\n      };\n    }\n\n    var characterIndexInValue = 0;\n    var templateWithFilledInPlaceholders = ''; // Using `.split('')` here instead of normal `for ... of`\n    // because the importing application doesn't neccessarily include an ES6 polyfill.\n    // The `.split('')` approach discards \"exotic\" UTF-8 characters\n    // (the ones consisting of four bytes)\n    // but template placeholder characters don't fall into that range\n    // and appending UTF-8 characters to a string in parts still works.\n\n    for (var _iterator = _createForOfIteratorHelperLoose(template.split('')), _step; !(_step = _iterator()).done;) {\n      var character = _step.value;\n\n      if (character !== placeholder) {\n        templateWithFilledInPlaceholders += character;\n        continue;\n      }\n\n      templateWithFilledInPlaceholders += value[characterIndexInValue];\n      characterIndexInValue++; // If the last available value character has been filled in,\n      // then return the filled in template\n      // (either trim the right part or retain it,\n      //  if no more character placeholders in there)\n\n      if (characterIndexInValue === value.length) {\n        // If there are more character placeholders\n        // in the right part of the template\n        // then simply trim it.\n        if (value.length < placeholdersCountInTemplate) {\n          break;\n        }\n      }\n    }\n\n    if (shouldCloseBraces) {\n      templateWithFilledInPlaceholders = close_braces(templateWithFilledInPlaceholders, template);\n    }\n\n    return {\n      text: templateWithFilledInPlaceholders,\n      template: template\n    };\n  };\n}\n//# sourceMappingURL=templateFormatter.js.map","import template_formatter from './templateFormatter.js'; // Formats `value` value preserving `caret` at the same character.\n//\n// `{ value, caret }` attribute is the result of `parse()` function call.\n//\n// Returns `{ text, caret }` where the new `caret` is the caret position\n// inside `text` text corresponding to the original `caret` position inside `value`.\n//\n// `formatter(value)` is a function returning `{ text, template }`.\n//\n// `text` is the `value` value formatted using `template`.\n// It may either cut off the non-filled right part of the `template`\n// or it may fill the non-filled character placeholders\n// in the right part of the `template` with `spacer`\n// which is a space (' ') character by default.\n//\n// `template` is the template used to format the `value`.\n// It can be either a full-length template or a partial template.\n//\n// `formatter` can also be a string — a `template`\n// where character placeholders are denoted by 'x'es.\n// In this case `formatter` function is automatically created.\n//\n// Example:\n//\n// `value` is '880',\n// `caret` is `2` (before the first `0`)\n//\n// `formatter` is `'880' =>\n//   { text: '8 (80 )', template: 'x (xxx) xxx-xx-xx' }`\n//\n// The result is `{ text: '8 (80 )', caret: 4 }`.\n//\n\nexport default function format(value, caret, formatter) {\n  if (typeof formatter === 'string') {\n    formatter = template_formatter(formatter);\n  }\n\n  var _ref = formatter(value) || {},\n      text = _ref.text,\n      template = _ref.template;\n\n  if (text === undefined) {\n    text = value;\n  }\n\n  if (template) {\n    if (caret === undefined) {\n      caret = text.length;\n    } else {\n      var index = 0;\n      var found = false;\n      var possibly_last_input_character_index = -1;\n\n      while (index < text.length && index < template.length) {\n        // Character placeholder found\n        if (text[index] !== template[index]) {\n          if (caret === 0) {\n            found = true;\n            caret = index;\n            break;\n          }\n\n          possibly_last_input_character_index = index;\n          caret--;\n        }\n\n        index++;\n      } // If the caret was positioned after last input character,\n      // then the text caret index is just after the last input character.\n\n\n      if (!found) {\n        caret = possibly_last_input_character_index + 1;\n      }\n    }\n  }\n\n  return {\n    text: text,\n    caret: caret\n  };\n}\n//# sourceMappingURL=format.js.map","export function isReadOnly(element) {\n  return element.hasAttribute('readonly');\n} // Gets <input/> selection bounds\n\nexport function getSelection(element) {\n  // If no selection, return nothing\n  if (element.selectionStart === element.selectionEnd) {\n    return;\n  }\n\n  return {\n    start: element.selectionStart,\n    end: element.selectionEnd\n  };\n} // Key codes\n\nexport var Keys = {\n  Backspace: 8,\n  Delete: 46\n}; // Finds out the operation to be intercepted and performed\n// based on the key down event `keyCode`.\n\nexport function getOperation(event) {\n  switch (event.keyCode) {\n    case Keys.Backspace:\n      return 'Backspace';\n\n    case Keys.Delete:\n      return 'Delete';\n  }\n} // Gets <input/> caret position\n\nexport function getCaretPosition(element) {\n  return element.selectionStart;\n} // Sets <input/> caret position\n\nexport function setCaretPosition(element, caret_position) {\n  // Sanity check\n  if (caret_position === undefined) {\n    return;\n  } // Set caret position.\n  // There has been an issue with caret positioning on Android devices.\n  // https://github.com/catamphetamine/input-format/issues/2\n  // I was revisiting this issue and looked for similar issues in other libraries.\n  // For example, there's [`text-mask`](https://github.com/text-mask/text-mask) library.\n  // They've had exactly the same issue when the caret seemingly refused to be repositioned programmatically.\n  // The symptoms were the same: whenever the caret passed through a non-digit character of a mask (a whitespace, a bracket, a dash, etc), it looked as if it placed itself one character before its correct position.\n  // https://github.com/text-mask/text-mask/issues/300\n  // They seem to have found a basic fix for it: calling `input.setSelectionRange()` in a timeout rather than instantly for Android devices.\n  // https://github.com/text-mask/text-mask/pull/400/files\n  // I've implemented the same workaround here.\n\n\n  if (isAndroid()) {\n    setTimeout(function () {\n      return element.setSelectionRange(caret_position, caret_position);\n    }, 0);\n  } else {\n    element.setSelectionRange(caret_position, caret_position);\n  }\n}\n\nfunction isAndroid() {\n  // `navigator` is not defined when running mocha tests.\n  if (typeof navigator !== 'undefined') {\n    return ANDROID_USER_AGENT_REG_EXP.test(navigator.userAgent);\n  }\n}\n\nvar ANDROID_USER_AGENT_REG_EXP = /Android/i;\n//# sourceMappingURL=dom.js.map","import edit from './edit.js';\nimport parse from './parse.js';\nimport format from './format.js';\nimport { isReadOnly, getOperation, getSelection, getCaretPosition, setCaretPosition } from './dom.js'; // Deprecated.\n// I don't know why this function exists.\n\nexport function onCut(event, input, _parse, _format, on_change) {\n  if (isReadOnly(input)) {\n    return;\n  } // The actual cut hasn't happened just yet hence the timeout.\n\n\n  setTimeout(function () {\n    return formatInputText(input, _parse, _format, undefined, on_change);\n  }, 0);\n} // Deprecated.\n// I don't know why this function exists.\n\nexport function onPaste(event, input, _parse, _format, on_change) {\n  if (isReadOnly(input)) {\n    return;\n  }\n\n  var selection = getSelection(input); // If selection is made,\n  // just erase the selected text\n  // prior to pasting\n\n  if (selection) {\n    eraseSelection(input, selection);\n  }\n\n  formatInputText(input, _parse, _format, undefined, on_change);\n}\nexport function onChange(event, input, _parse, _format, on_change) {\n  formatInputText(input, _parse, _format, undefined, on_change);\n} // \"Delete\" and \"Backspace\" keys are special\n// in a way that they're not handled by the regular `onChange()` handler\n// and instead are intercepted and re-applied manually.\n// The reason is that normally hitting \"Backspace\" or \"Delete\"\n// results in erasing a character, but that character might be any character,\n// while it would be a better \"user experience\" if it erased not just any character\n// but the closest \"meaningful\" character.\n// For example, if a template is `(xxx) xxx-xxxx`,\n// and the `<input/>` value is `(111) 222-3333`,\n// then, if a user begins erasing the `3333` part via \"Backspace\"\n// and reaches the \"-\" character, then it would just erase the \"-\" character.\n// Nothing wrong with that, but it would be a better \"user experience\"\n// if hitting \"Backspace\" at that position would erase the closest \"meaningful\"\n// character, which would be the rightmost `2`.\n// So, what this `onKeyDown()` handler does is it intercepts\n// \"Backspace\" and \"Delete\" keys and re-applies those operations manually\n// following the logic described above.\n\nexport function onKeyDown(event, input, _parse, _format, on_change) {\n  if (isReadOnly(input)) {\n    return;\n  }\n\n  var operation = getOperation(event);\n\n  switch (operation) {\n    case 'Delete':\n    case 'Backspace':\n      // Intercept this operation and perform it manually.\n      event.preventDefault();\n      var selection = getSelection(input); // If a selection is made, just erase the selected text.\n\n      if (selection) {\n        eraseSelection(input, selection);\n        return formatInputText(input, _parse, _format, undefined, on_change);\n      } // Else, perform the (character erasing) operation manually.\n\n\n      return formatInputText(input, _parse, _format, operation, on_change);\n\n    default: // Will be handled normally as part of the `onChange` handler.\n\n  }\n}\n/**\r\n * Erases the selected text inside an `<input/>`.\r\n * @param  {DOMElement} input\r\n * @param  {Selection} selection\r\n */\n\nfunction eraseSelection(input, selection) {\n  var text = input.value;\n  text = text.slice(0, selection.start) + text.slice(selection.end);\n  input.value = text;\n  setCaretPosition(input, selection.start);\n}\n/**\r\n * Parses and re-formats `<input/>` textual value.\r\n * E.g. when a user enters something into the `<input/>`\r\n * that raw input must first be parsed and the re-formatted properly.\r\n * Is called either after some user input (e.g. entered a character, pasted something)\r\n * or after the user performed an `operation` (e.g. \"Backspace\", \"Delete\").\r\n * @param  {DOMElement} input\r\n * @param  {Function} parse\r\n * @param  {Function} format\r\n * @param  {string} [operation] - The operation that triggered `<input/>` textual value change. E.g. \"Backspace\", \"Delete\".\r\n * @param  {Function} onChange\r\n */\n\n\nfunction formatInputText(input, _parse, _format, operation, on_change) {\n  // Parse `<input/>` textual value.\n  // Get the `value` and `caret` position.\n  var _parse2 = parse(input.value, getCaretPosition(input), _parse),\n      value = _parse2.value,\n      caret = _parse2.caret; // If a user performed an operation (\"Backspace\", \"Delete\")\n  // then apply that operation and get the new `value` and `caret` position.\n\n\n  if (operation) {\n    var newValueAndCaret = edit(value, caret, operation);\n    value = newValueAndCaret.value;\n    caret = newValueAndCaret.caret;\n  } // Format the `value`.\n  // (and reposition the caret accordingly)\n\n\n  var formatted = format(value, caret, _format);\n  var text = formatted.text;\n  caret = formatted.caret; // Set `<input/>` textual value manually\n  // to prevent React from resetting the caret position\n  // later inside a subsequent `render()`.\n  // Doesn't work for custom `inputComponent`s for some reason.\n\n  input.value = text; // Position the caret properly.\n\n  setCaretPosition(input, caret); // If the `<input/>` textual value did change,\n  // then the parsed `value` may have changed too.\n\n  if (on_change) {\n    on_change(value);\n  }\n}\n//# sourceMappingURL=inputControl.js.map","// Parses the `text`.\n//\n// Returns `{ value, caret }` where `caret` is\n// the caret position inside `value`\n// corresponding to the `caret_position` inside `text`.\n//\n// The `text` is parsed by feeding each character sequentially to\n// `parse_character(character, value, context)` function\n// and appending the result (if it's not `undefined`) to `value`.\n//\n// `context` argument is just a utility empty object that is shared within the bounds\n// of parsing a single input string. The `_parse()` function could use that object\n// to store any kind of \"flags\" in it in order to alter its behavior based when\n// parsing next characters within the same string. Or it could completely ignore it.\n//\n// Example:\n//\n// `text` is `8 (800) 555-35-35`,\n// `caret_position` is `4` (before the first `0`).\n// `parse_character` is `(character, value) =>\n//   if (character >= '0' && character <= '9') { return character }`.\n//\n// then `parse()` outputs `{ value: '88005553535', caret: 2 }`.\n//\nexport default function parse(text, caret_position, parse_character) {\n  var context = {};\n  var value = '';\n  var focused_input_character_index = 0;\n  var index = 0;\n\n  while (index < text.length) {\n    var character = parse_character(text[index], value, context);\n\n    if (character !== undefined) {\n      value += character;\n\n      if (caret_position !== undefined) {\n        if (caret_position === index) {\n          focused_input_character_index = value.length - 1;\n        } else if (caret_position > index) {\n          focused_input_character_index = value.length;\n        }\n      }\n    }\n\n    index++;\n  } // If caret position wasn't specified\n\n\n  if (caret_position === undefined) {\n    // Then set caret position to \"after the last input character\"\n    focused_input_character_index = value.length;\n  }\n\n  var result = {\n    value: value,\n    caret: focused_input_character_index\n  };\n  return result;\n}\n//# sourceMappingURL=parse.js.map","// Edits text `value` (if `operation` is passed) and repositions the `caret` if needed.\n//\n// Example:\n//\n// value - '88005553535'\n// caret - 2 // starting from 0; is positioned before the first zero\n// operation - 'Backspace'\n//\n// Returns\n// {\n// \tvalue: '8005553535'\n// \tcaret: 1\n// }\n//\n// Currently supports just 'Delete' and 'Backspace' operations\n//\nexport default function edit(value, caret, operation) {\n  switch (operation) {\n    case 'Backspace':\n      // If there exists the previous character,\n      // then erase it and reposition the caret.\n      if (caret > 0) {\n        // Remove the previous character\n        value = value.slice(0, caret - 1) + value.slice(caret); // Position the caret where the previous (erased) character was\n\n        caret--;\n      }\n\n      break;\n\n    case 'Delete':\n      // Remove current digit (if any)\n      value = value.slice(0, caret) + value.slice(caret + 1);\n      break;\n  }\n\n  return {\n    value: value,\n    caret: caret\n  };\n}\n//# sourceMappingURL=edit.js.map","var _excluded = [\"ref\", \"parse\", \"format\", \"value\", \"defaultValue\", \"controlled\", \"onChange\", \"onKeyDown\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport { useCallback, useRef } from 'react';\nimport { onChange as onInputChange, onKeyDown as onInputKeyDown } from '../inputControl.js';\nexport default function useInput(_ref) {\n  var ref = _ref.ref,\n      parse = _ref.parse,\n      format = _ref.format,\n      value = _ref.value,\n      defaultValue = _ref.defaultValue,\n      _ref$controlled = _ref.controlled,\n      controlled = _ref$controlled === void 0 ? true : _ref$controlled,\n      onChange = _ref.onChange,\n      onKeyDown = _ref.onKeyDown,\n      rest = _objectWithoutProperties(_ref, _excluded);\n\n  // It doesn't seem to be required to alert a developer about controlled/uncontrolled misuse:\n  // if `controlled` is `true` then `defaultValue` is simply ignored.\n  //\n  // if (defaultValue && controlled) {\n  // \tconsole.error('[input-format] You\\'ve passed both `defaultValue` and `controlled: true` properties which is an invalid use case')\n  // }\n  var internalRef = useRef();\n  var setRef = useCallback(function (instance) {\n    internalRef.current = instance;\n\n    if (ref) {\n      if (typeof ref === 'function') {\n        ref(instance);\n      } else {\n        ref.current = instance;\n      }\n    }\n  }, [ref]);\n\n  var _onChange = useCallback(function (event) {\n    return onInputChange(event, internalRef.current, parse, format, onChange);\n  }, [internalRef, parse, format, onChange]);\n\n  var _onKeyDown = useCallback(function (event) {\n    if (onKeyDown) {\n      onKeyDown(event);\n    } // If `onKeyDown()` handler above has called `event.preventDefault()`\n    // then ignore this `keydown` event.\n\n\n    if (event.defaultPrevented) {\n      return;\n    }\n\n    return onInputKeyDown(event, internalRef.current, parse, format, onChange);\n  }, [internalRef, parse, format, onChange, onKeyDown]);\n\n  var commonProps = _objectSpread(_objectSpread({}, rest), {}, {\n    ref: setRef,\n    onChange: _onChange,\n    onKeyDown: _onKeyDown\n  });\n\n  if (controlled) {\n    return _objectSpread(_objectSpread({}, commonProps), {}, {\n      value: format(isEmptyValue(value) ? '' : value).text\n    });\n  }\n\n  return _objectSpread(_objectSpread({}, commonProps), {}, {\n    defaultValue: format(isEmptyValue(defaultValue) ? '' : defaultValue).text\n  });\n}\n\nfunction isEmptyValue(value) {\n  return value === undefined || value === null;\n}\n//# sourceMappingURL=useInput.js.map","var _excluded = [\"inputComponent\", \"parse\", \"format\", \"value\", \"defaultValue\", \"onChange\", \"controlled\", \"onKeyDown\", \"type\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n// This is just `./ReactInput.js` rewritten in Hooks.\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport useInput from './useInput.js'; // Usage:\n//\n// <ReactInput\n// \tvalue={this.state.phone}\n// \tonChange={phone => this.setState({ phone })}\n// \tparse={character => character}\n// \tformat={value => ({ text: value, template: 'xxxxxxxx' })}/>\n//\n\nfunction Input(_ref, ref) {\n  var _ref$inputComponent = _ref.inputComponent,\n      InputComponent = _ref$inputComponent === void 0 ? 'input' : _ref$inputComponent,\n      parse = _ref.parse,\n      format = _ref.format,\n      value = _ref.value,\n      defaultValue = _ref.defaultValue,\n      onChange = _ref.onChange,\n      controlled = _ref.controlled,\n      onKeyDown = _ref.onKeyDown,\n      _ref$type = _ref.type,\n      type = _ref$type === void 0 ? 'text' : _ref$type,\n      rest = _objectWithoutProperties(_ref, _excluded);\n\n  var inputProps = useInput(_objectSpread({\n    ref: ref,\n    parse: parse,\n    format: format,\n    value: value,\n    defaultValue: defaultValue,\n    onChange: onChange,\n    controlled: controlled,\n    onKeyDown: onKeyDown,\n    type: type\n  }, rest));\n  return /*#__PURE__*/React.createElement(InputComponent, inputProps);\n}\n\nInput = /*#__PURE__*/React.forwardRef(Input);\nInput.propTypes = {\n  // Parses a single characher of `<input/>` text.\n  parse: PropTypes.func.isRequired,\n  // Formats `value` into `<input/>` text.\n  format: PropTypes.func.isRequired,\n  // Renders `<input/>` by default.\n  inputComponent: PropTypes.elementType,\n  // `<input/>` `type` attribute.\n  type: PropTypes.string,\n  // Is parsed from <input/> text.\n  value: PropTypes.string,\n  // An initial value for an \"uncontrolled\" <input/>.\n  defaultValue: PropTypes.string,\n  // This handler is called each time `<input/>` text is changed.\n  onChange: PropTypes.func,\n  // Whether this input should be \"controlled\" or \"uncontrolled\".\n  // The default value is `true` meaning \"uncontrolled\".\n  controlled: PropTypes.bool,\n  // Passthrough\n  onKeyDown: PropTypes.func,\n  onCut: PropTypes.func,\n  onPaste: PropTypes.func\n};\nexport default Input;\n//# sourceMappingURL=Input.js.map","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n// This \"state\" object simply holds the state of the \"AsYouType\" parser:\n//\n// * `country?: string`\n// * `callingCode?: string`\n// * `digits: string`\n// * `international: boolean`\n// * `missingPlus: boolean`\n// * `IDDPrefix?: string`\n// * `carrierCode?: string`\n// * `nationalPrefix?: string`\n// * `nationalSignificantNumber?: string`\n// * `nationalSignificantNumberMatchesInput: boolean`\n// * `complexPrefixBeforeNationalSignificantNumber?: string`\n//\n// `state.country` and `state.callingCode` aren't required to be in sync.\n// For example, `state.country` could be `\"AR\"` and `state.callingCode` could be `undefined`.\n// So `state.country` and `state.callingCode` are totally independent.\n//\nvar AsYouTypeState = /*#__PURE__*/function () {\n  function AsYouTypeState(_ref) {\n    var onCountryChange = _ref.onCountryChange,\n        onCallingCodeChange = _ref.onCallingCodeChange;\n\n    _classCallCheck(this, AsYouTypeState);\n\n    this.onCountryChange = onCountryChange;\n    this.onCallingCodeChange = onCallingCodeChange;\n  }\n\n  _createClass(AsYouTypeState, [{\n    key: \"reset\",\n    value: function reset(_ref2) {\n      var country = _ref2.country,\n          callingCode = _ref2.callingCode;\n      this.international = false;\n      this.missingPlus = false;\n      this.IDDPrefix = undefined;\n      this.callingCode = undefined;\n      this.digits = '';\n      this.resetNationalSignificantNumber();\n      this.initCountryAndCallingCode(country, callingCode);\n    }\n  }, {\n    key: \"resetNationalSignificantNumber\",\n    value: function resetNationalSignificantNumber() {\n      this.nationalSignificantNumber = this.getNationalDigits();\n      this.nationalSignificantNumberMatchesInput = true;\n      this.nationalPrefix = undefined;\n      this.carrierCode = undefined;\n      this.complexPrefixBeforeNationalSignificantNumber = undefined;\n    }\n  }, {\n    key: \"update\",\n    value: function update(properties) {\n      for (var _i = 0, _Object$keys = Object.keys(properties); _i < _Object$keys.length; _i++) {\n        var key = _Object$keys[_i];\n        this[key] = properties[key];\n      }\n    }\n  }, {\n    key: \"initCountryAndCallingCode\",\n    value: function initCountryAndCallingCode(country, callingCode) {\n      this.setCountry(country);\n      this.setCallingCode(callingCode);\n    }\n  }, {\n    key: \"setCountry\",\n    value: function setCountry(country) {\n      this.country = country;\n      this.onCountryChange(country);\n    }\n  }, {\n    key: \"setCallingCode\",\n    value: function setCallingCode(callingCode) {\n      this.callingCode = callingCode;\n      this.onCallingCodeChange(callingCode, this.country);\n    }\n  }, {\n    key: \"startInternationalNumber\",\n    value: function startInternationalNumber(country, callingCode) {\n      // Prepend the `+` to parsed input.\n      this.international = true; // If a default country was set then reset it\n      // because an explicitly international phone\n      // number is being entered.\n\n      this.initCountryAndCallingCode(country, callingCode);\n    }\n  }, {\n    key: \"appendDigits\",\n    value: function appendDigits(nextDigits) {\n      this.digits += nextDigits;\n    }\n  }, {\n    key: \"appendNationalSignificantNumberDigits\",\n    value: function appendNationalSignificantNumberDigits(nextDigits) {\n      this.nationalSignificantNumber += nextDigits;\n    }\n    /**\r\n     * Returns the part of `this.digits` that corresponds to the national number.\r\n     * Basically, all digits that have been input by the user, except for the\r\n     * international prefix and the country calling code part\r\n     * (if the number is an international one).\r\n     * @return {string}\r\n     */\n\n  }, {\n    key: \"getNationalDigits\",\n    value: function getNationalDigits() {\n      if (this.international) {\n        return this.digits.slice((this.IDDPrefix ? this.IDDPrefix.length : 0) + (this.callingCode ? this.callingCode.length : 0));\n      }\n\n      return this.digits;\n    }\n  }, {\n    key: \"getDigitsWithoutInternationalPrefix\",\n    value: function getDigitsWithoutInternationalPrefix() {\n      if (this.international) {\n        if (this.IDDPrefix) {\n          return this.digits.slice(this.IDDPrefix.length);\n        }\n      }\n\n      return this.digits;\n    }\n  }]);\n\n  return AsYouTypeState;\n}();\n\nexport { AsYouTypeState as default };\n//# sourceMappingURL=AsYouTypeState.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n// Should be the same as `DIGIT_PLACEHOLDER` in `libphonenumber-metadata-generator`.\nexport var DIGIT_PLACEHOLDER = 'x'; // '\\u2008' (punctuation space)\n\nvar DIGIT_PLACEHOLDER_MATCHER = new RegExp(DIGIT_PLACEHOLDER); // Counts all occurences of a symbol in a string.\n// Unicode-unsafe (because using `.split()`).\n\nexport function countOccurences(symbol, string) {\n  var count = 0; // Using `.split('')` to iterate through a string here\n  // to avoid requiring `Symbol.iterator` polyfill.\n  // `.split('')` is generally not safe for Unicode,\n  // but in this particular case for counting brackets it is safe.\n  // for (const character of string)\n\n  for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n    var character = _step.value;\n\n    if (character === symbol) {\n      count++;\n    }\n  }\n\n  return count;\n} // Repeats a string (or a symbol) N times.\n// http://stackoverflow.com/questions/202605/repeat-string-javascript\n\nexport function repeat(string, times) {\n  if (times < 1) {\n    return '';\n  }\n\n  var result = '';\n\n  while (times > 1) {\n    if (times & 1) {\n      result += string;\n    }\n\n    times >>= 1;\n    string += string;\n  }\n\n  return result + string;\n}\nexport function cutAndStripNonPairedParens(string, cutBeforeIndex) {\n  if (string[cutBeforeIndex] === ')') {\n    cutBeforeIndex++;\n  }\n\n  return stripNonPairedParens(string.slice(0, cutBeforeIndex));\n}\nexport function closeNonPairedParens(template, cut_before) {\n  var retained_template = template.slice(0, cut_before);\n  var opening_braces = countOccurences('(', retained_template);\n  var closing_braces = countOccurences(')', retained_template);\n  var dangling_braces = opening_braces - closing_braces;\n\n  while (dangling_braces > 0 && cut_before < template.length) {\n    if (template[cut_before] === ')') {\n      dangling_braces--;\n    }\n\n    cut_before++;\n  }\n\n  return template.slice(0, cut_before);\n}\nexport function stripNonPairedParens(string) {\n  var dangling_braces = [];\n  var i = 0;\n\n  while (i < string.length) {\n    if (string[i] === '(') {\n      dangling_braces.push(i);\n    } else if (string[i] === ')') {\n      dangling_braces.pop();\n    }\n\n    i++;\n  }\n\n  var start = 0;\n  var cleared_string = '';\n  dangling_braces.push(string.length);\n\n  for (var _i = 0, _dangling_braces = dangling_braces; _i < _dangling_braces.length; _i++) {\n    var index = _dangling_braces[_i];\n    cleared_string += string.slice(start, index);\n    start = index + 1;\n  }\n\n  return cleared_string;\n}\nexport function populateTemplateWithDigits(template, position, digits) {\n  // Using `.split('')` to iterate through a string here\n  // to avoid requiring `Symbol.iterator` polyfill.\n  // `.split('')` is generally not safe for Unicode,\n  // but in this particular case for `digits` it is safe.\n  // for (const digit of digits)\n  for (var _iterator2 = _createForOfIteratorHelperLoose(digits.split('')), _step2; !(_step2 = _iterator2()).done;) {\n    var digit = _step2.value;\n\n    // If there is room for more digits in current `template`,\n    // then set the next digit in the `template`,\n    // and return the formatted digits so far.\n    // If more digits are entered than the current format could handle.\n    if (template.slice(position + 1).search(DIGIT_PLACEHOLDER_MATCHER) < 0) {\n      return;\n    }\n\n    position = template.search(DIGIT_PLACEHOLDER_MATCHER);\n    template = template.replace(DIGIT_PLACEHOLDER_MATCHER, digit);\n  }\n\n  return [template, position];\n}\n//# sourceMappingURL=AsYouTypeFormatter.util.js.map","import checkNumberLength from './helpers/checkNumberLength.js';\nimport parseDigits from './helpers/parseDigits.js';\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat.js';\nexport default function formatCompleteNumber(state, format, _ref) {\n  var metadata = _ref.metadata,\n      shouldTryNationalPrefixFormattingRule = _ref.shouldTryNationalPrefixFormattingRule,\n      getSeparatorAfterNationalPrefix = _ref.getSeparatorAfterNationalPrefix;\n  var matcher = new RegExp(\"^(?:\".concat(format.pattern(), \")$\"));\n\n  if (matcher.test(state.nationalSignificantNumber)) {\n    return formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, {\n      metadata: metadata,\n      shouldTryNationalPrefixFormattingRule: shouldTryNationalPrefixFormattingRule,\n      getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix\n    });\n  }\n}\nexport function canFormatCompleteNumber(nationalSignificantNumber, metadata) {\n  return checkNumberLength(nationalSignificantNumber, metadata) === 'IS_POSSIBLE';\n}\n\nfunction formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, _ref2) {\n  var metadata = _ref2.metadata,\n      shouldTryNationalPrefixFormattingRule = _ref2.shouldTryNationalPrefixFormattingRule,\n      getSeparatorAfterNationalPrefix = _ref2.getSeparatorAfterNationalPrefix;\n  // `format` has already been checked for `nationalPrefix` requirement.\n  var nationalSignificantNumber = state.nationalSignificantNumber,\n      international = state.international,\n      nationalPrefix = state.nationalPrefix,\n      carrierCode = state.carrierCode; // Format the number with using `national_prefix_formatting_rule`.\n  // If the resulting formatted number is a valid formatted number, then return it.\n  //\n  // Google's AsYouType formatter is different in a way that it doesn't try\n  // to format using the \"national prefix formatting rule\", and instead it\n  // simply prepends a national prefix followed by a \" \" character.\n  // This code does that too, but as a fallback.\n  // The reason is that \"national prefix formatting rule\" may use parentheses,\n  // which wouldn't be included has it used the simpler Google's way.\n  //\n\n  if (shouldTryNationalPrefixFormattingRule(format)) {\n    var formattedNumber = formatNationalNumber(state, format, {\n      useNationalPrefixFormattingRule: true,\n      getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix,\n      metadata: metadata\n    });\n\n    if (formattedNumber) {\n      return formattedNumber;\n    }\n  } // Format the number without using `national_prefix_formatting_rule`.\n\n\n  return formatNationalNumber(state, format, {\n    useNationalPrefixFormattingRule: false,\n    getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix,\n    metadata: metadata\n  });\n}\n\nfunction formatNationalNumber(state, format, _ref3) {\n  var metadata = _ref3.metadata,\n      useNationalPrefixFormattingRule = _ref3.useNationalPrefixFormattingRule,\n      getSeparatorAfterNationalPrefix = _ref3.getSeparatorAfterNationalPrefix;\n  var formattedNationalNumber = formatNationalNumberUsingFormat(state.nationalSignificantNumber, format, {\n    carrierCode: state.carrierCode,\n    useInternationalFormat: state.international,\n    withNationalPrefix: useNationalPrefixFormattingRule,\n    metadata: metadata\n  });\n\n  if (!useNationalPrefixFormattingRule) {\n    if (state.nationalPrefix) {\n      // If a national prefix was extracted, then just prepend it,\n      // followed by a \" \" character.\n      formattedNationalNumber = state.nationalPrefix + getSeparatorAfterNationalPrefix(format) + formattedNationalNumber;\n    } else if (state.complexPrefixBeforeNationalSignificantNumber) {\n      formattedNationalNumber = state.complexPrefixBeforeNationalSignificantNumber + ' ' + formattedNationalNumber;\n    }\n  }\n\n  if (isValidFormattedNationalNumber(formattedNationalNumber, state)) {\n    return formattedNationalNumber;\n  }\n} // Check that the formatted phone number contains exactly\n// the same digits that have been input by the user.\n// For example, when \"0111523456789\" is input for `AR` country,\n// the extracted `this.nationalSignificantNumber` is \"91123456789\",\n// which means that the national part of `this.digits` isn't simply equal to\n// `this.nationalPrefix` + `this.nationalSignificantNumber`.\n//\n// Also, a `format` can add extra digits to the `this.nationalSignificantNumber`\n// being formatted via `metadata[country].national_prefix_transform_rule`.\n// For example, for `VI` country, it prepends `340` to the national number,\n// and if this check hasn't been implemented, then there would be a bug\n// when `340` \"area coude\" is \"duplicated\" during input for `VI` country:\n// https://github.com/catamphetamine/libphonenumber-js/issues/318\n//\n// So, all these \"gotchas\" are filtered out.\n//\n// In the original Google's code, the comments say:\n// \"Check that we didn't remove nor add any extra digits when we matched\n// this formatting pattern. This usually happens after we entered the last\n// digit during AYTF. Eg: In case of MX, we swallow mobile token (1) when\n// formatted but AYTF should retain all the number entered and not change\n// in order to match a format (of same leading digits and length) display\n// in that way.\"\n// \"If it's the same (i.e entered number and format is same), then it's\n// safe to return this in formatted number as nothing is lost / added.\"\n// Otherwise, don't use this format.\n// https://github.com/google/libphonenumber/commit/3e7c1f04f5e7200f87fb131e6f85c6e99d60f510#diff-9149457fa9f5d608a11bb975c6ef4bc5\n// https://github.com/google/libphonenumber/commit/3ac88c7106e7dcb553bcc794b15f19185928a1c6#diff-2dcb77e833422ee304da348b905cde0b\n//\n\n\nfunction isValidFormattedNationalNumber(formattedNationalNumber, state) {\n  return parseDigits(formattedNationalNumber) === state.getNationalDigits();\n}\n//# sourceMappingURL=AsYouTypeFormatter.complete.js.map","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nvar PatternParser = /*#__PURE__*/function () {\n  function PatternParser() {\n    _classCallCheck(this, PatternParser);\n  }\n\n  _createClass(PatternParser, [{\n    key: \"parse\",\n    value: function parse(pattern) {\n      this.context = [{\n        or: true,\n        instructions: []\n      }];\n      this.parsePattern(pattern);\n\n      if (this.context.length !== 1) {\n        throw new Error('Non-finalized contexts left when pattern parse ended');\n      }\n\n      var _this$context$ = this.context[0],\n          branches = _this$context$.branches,\n          instructions = _this$context$.instructions;\n\n      if (branches) {\n        return {\n          op: '|',\n          args: branches.concat([expandSingleElementArray(instructions)])\n        };\n      }\n      /* istanbul ignore if */\n\n\n      if (instructions.length === 0) {\n        throw new Error('Pattern is required');\n      }\n\n      if (instructions.length === 1) {\n        return instructions[0];\n      }\n\n      return instructions;\n    }\n  }, {\n    key: \"startContext\",\n    value: function startContext(context) {\n      this.context.push(context);\n    }\n  }, {\n    key: \"endContext\",\n    value: function endContext() {\n      this.context.pop();\n    }\n  }, {\n    key: \"getContext\",\n    value: function getContext() {\n      return this.context[this.context.length - 1];\n    }\n  }, {\n    key: \"parsePattern\",\n    value: function parsePattern(pattern) {\n      if (!pattern) {\n        throw new Error('Pattern is required');\n      }\n\n      var match = pattern.match(OPERATOR);\n\n      if (!match) {\n        if (ILLEGAL_CHARACTER_REGEXP.test(pattern)) {\n          throw new Error(\"Illegal characters found in a pattern: \".concat(pattern));\n        }\n\n        this.getContext().instructions = this.getContext().instructions.concat(pattern.split(''));\n        return;\n      }\n\n      var operator = match[1];\n      var before = pattern.slice(0, match.index);\n      var rightPart = pattern.slice(match.index + operator.length);\n\n      switch (operator) {\n        case '(?:':\n          if (before) {\n            this.parsePattern(before);\n          }\n\n          this.startContext({\n            or: true,\n            instructions: [],\n            branches: []\n          });\n          break;\n\n        case ')':\n          if (!this.getContext().or) {\n            throw new Error('\")\" operator must be preceded by \"(?:\" operator');\n          }\n\n          if (before) {\n            this.parsePattern(before);\n          }\n\n          if (this.getContext().instructions.length === 0) {\n            throw new Error('No instructions found after \"|\" operator in an \"or\" group');\n          }\n\n          var _this$getContext = this.getContext(),\n              branches = _this$getContext.branches;\n\n          branches.push(expandSingleElementArray(this.getContext().instructions));\n          this.endContext();\n          this.getContext().instructions.push({\n            op: '|',\n            args: branches\n          });\n          break;\n\n        case '|':\n          if (!this.getContext().or) {\n            throw new Error('\"|\" operator can only be used inside \"or\" groups');\n          }\n\n          if (before) {\n            this.parsePattern(before);\n          } // The top-level is an implicit \"or\" group, if required.\n\n\n          if (!this.getContext().branches) {\n            // `branches` are not defined only for the root implicit \"or\" operator.\n\n            /* istanbul ignore else */\n            if (this.context.length === 1) {\n              this.getContext().branches = [];\n            } else {\n              throw new Error('\"branches\" not found in an \"or\" group context');\n            }\n          }\n\n          this.getContext().branches.push(expandSingleElementArray(this.getContext().instructions));\n          this.getContext().instructions = [];\n          break;\n\n        case '[':\n          if (before) {\n            this.parsePattern(before);\n          }\n\n          this.startContext({\n            oneOfSet: true\n          });\n          break;\n\n        case ']':\n          if (!this.getContext().oneOfSet) {\n            throw new Error('\"]\" operator must be preceded by \"[\" operator');\n          }\n\n          this.endContext();\n          this.getContext().instructions.push({\n            op: '[]',\n            args: parseOneOfSet(before)\n          });\n          break;\n\n        /* istanbul ignore next */\n\n        default:\n          throw new Error(\"Unknown operator: \".concat(operator));\n      }\n\n      if (rightPart) {\n        this.parsePattern(rightPart);\n      }\n    }\n  }]);\n\n  return PatternParser;\n}();\n\nexport { PatternParser as default };\n\nfunction parseOneOfSet(pattern) {\n  var values = [];\n  var i = 0;\n\n  while (i < pattern.length) {\n    if (pattern[i] === '-') {\n      if (i === 0 || i === pattern.length - 1) {\n        throw new Error(\"Couldn't parse a one-of set pattern: \".concat(pattern));\n      }\n\n      var prevValue = pattern[i - 1].charCodeAt(0) + 1;\n      var nextValue = pattern[i + 1].charCodeAt(0) - 1;\n      var value = prevValue;\n\n      while (value <= nextValue) {\n        values.push(String.fromCharCode(value));\n        value++;\n      }\n    } else {\n      values.push(pattern[i]);\n    }\n\n    i++;\n  }\n\n  return values;\n}\n\nvar ILLEGAL_CHARACTER_REGEXP = /[\\(\\)\\[\\]\\?\\:\\|]/;\nvar OPERATOR = new RegExp( // any of:\n'(' + // or operator\n'\\\\|' + // or\n'|' + // or group start\n'\\\\(\\\\?\\\\:' + // or\n'|' + // or group end\n'\\\\)' + // or\n'|' + // one-of set start\n'\\\\[' + // or\n'|' + // one-of set end\n'\\\\]' + ')');\n\nfunction expandSingleElementArray(array) {\n  if (array.length === 1) {\n    return array[0];\n  }\n\n  return array;\n}\n//# sourceMappingURL=AsYouTypeFormatter.PatternParser.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport PatternParser from './AsYouTypeFormatter.PatternParser.js';\n\nvar PatternMatcher = /*#__PURE__*/function () {\n  function PatternMatcher(pattern) {\n    _classCallCheck(this, PatternMatcher);\n\n    this.matchTree = new PatternParser().parse(pattern);\n  }\n\n  _createClass(PatternMatcher, [{\n    key: \"match\",\n    value: function match(string) {\n      var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n          allowOverflow = _ref.allowOverflow;\n\n      if (!string) {\n        throw new Error('String is required');\n      }\n\n      var result = _match(string.split(''), this.matchTree, true);\n\n      if (result && result.match) {\n        delete result.matchedChars;\n      }\n\n      if (result && result.overflow) {\n        if (!allowOverflow) {\n          return;\n        }\n      }\n\n      return result;\n    }\n  }]);\n\n  return PatternMatcher;\n}();\n/**\r\n * Matches `characters` against a pattern compiled into a `tree`.\r\n * @param  {string[]} characters\r\n * @param  {Tree} tree — A pattern compiled into a `tree`. See the `*.d.ts` file for the description of the `tree` structure.\r\n * @param  {boolean} last — Whether it's the last (rightmost) subtree on its level of the match tree.\r\n * @return {object} See the `*.d.ts` file for the description of the result object.\r\n */\n\n\nexport { PatternMatcher as default };\n\nfunction _match(characters, tree, last) {\n  // If `tree` is a string, then `tree` is a single character.\n  // That's because when a pattern is parsed, multi-character-string parts\n  // of a pattern are compiled into arrays of single characters.\n  // I still wrote this piece of code for a \"general\" hypothetical case\n  // when `tree` could be a string of several characters, even though\n  // such case is not possible with the current implementation.\n  if (typeof tree === 'string') {\n    var characterString = characters.join('');\n\n    if (tree.indexOf(characterString) === 0) {\n      // `tree` is always a single character.\n      // If `tree.indexOf(characterString) === 0`\n      // then `characters.length === tree.length`.\n\n      /* istanbul ignore else */\n      if (characters.length === tree.length) {\n        return {\n          match: true,\n          matchedChars: characters\n        };\n      } // `tree` is always a single character.\n      // If `tree.indexOf(characterString) === 0`\n      // then `characters.length === tree.length`.\n\n      /* istanbul ignore next */\n\n\n      return {\n        partialMatch: true // matchedChars: characters\n\n      };\n    }\n\n    if (characterString.indexOf(tree) === 0) {\n      if (last) {\n        // The `else` path is not possible because `tree` is always a single character.\n        // The `else` case for `characters.length > tree.length` would be\n        // `characters.length <= tree.length` which means `characters.length <= 1`.\n        // `characters` array can't be empty, so that means `characters === [tree]`,\n        // which would also mean `tree.indexOf(characterString) === 0` and that'd mean\n        // that the `if (tree.indexOf(characterString) === 0)` condition before this\n        // `if` condition would be entered, and returned from there, not reaching this code.\n\n        /* istanbul ignore else */\n        if (characters.length > tree.length) {\n          return {\n            overflow: true\n          };\n        }\n      }\n\n      return {\n        match: true,\n        matchedChars: characters.slice(0, tree.length)\n      };\n    }\n\n    return;\n  }\n\n  if (Array.isArray(tree)) {\n    var restCharacters = characters.slice();\n    var i = 0;\n\n    while (i < tree.length) {\n      var subtree = tree[i];\n\n      var result = _match(restCharacters, subtree, last && i === tree.length - 1);\n\n      if (!result) {\n        return;\n      } else if (result.overflow) {\n        return result;\n      } else if (result.match) {\n        // Continue with the next subtree with the rest of the characters.\n        restCharacters = restCharacters.slice(result.matchedChars.length);\n\n        if (restCharacters.length === 0) {\n          if (i === tree.length - 1) {\n            return {\n              match: true,\n              matchedChars: characters\n            };\n          } else {\n            return {\n              partialMatch: true // matchedChars: characters\n\n            };\n          }\n        }\n      } else {\n        /* istanbul ignore else */\n        if (result.partialMatch) {\n          return {\n            partialMatch: true // matchedChars: characters\n\n          };\n        } else {\n          throw new Error(\"Unsupported match result:\\n\".concat(JSON.stringify(result, null, 2)));\n        }\n      }\n\n      i++;\n    } // If `last` then overflow has already been checked\n    // by the last element of the `tree` array.\n\n    /* istanbul ignore if */\n\n\n    if (last) {\n      return {\n        overflow: true\n      };\n    }\n\n    return {\n      match: true,\n      matchedChars: characters.slice(0, characters.length - restCharacters.length)\n    };\n  }\n\n  switch (tree.op) {\n    case '|':\n      var partialMatch;\n\n      for (var _iterator = _createForOfIteratorHelperLoose(tree.args), _step; !(_step = _iterator()).done;) {\n        var branch = _step.value;\n\n        var _result = _match(characters, branch, last);\n\n        if (_result) {\n          if (_result.overflow) {\n            return _result;\n          } else if (_result.match) {\n            return {\n              match: true,\n              matchedChars: _result.matchedChars\n            };\n          } else {\n            /* istanbul ignore else */\n            if (_result.partialMatch) {\n              partialMatch = true;\n            } else {\n              throw new Error(\"Unsupported match result:\\n\".concat(JSON.stringify(_result, null, 2)));\n            }\n          }\n        }\n      }\n\n      if (partialMatch) {\n        return {\n          partialMatch: true // matchedChars: ...\n\n        };\n      } // Not even a partial match.\n\n\n      return;\n\n    case '[]':\n      for (var _iterator2 = _createForOfIteratorHelperLoose(tree.args), _step2; !(_step2 = _iterator2()).done;) {\n        var _char = _step2.value;\n\n        if (characters[0] === _char) {\n          if (characters.length === 1) {\n            return {\n              match: true,\n              matchedChars: characters\n            };\n          }\n\n          if (last) {\n            return {\n              overflow: true\n            };\n          }\n\n          return {\n            match: true,\n            matchedChars: [_char]\n          };\n        }\n      } // No character matches.\n\n\n      return;\n\n    /* istanbul ignore next */\n\n    default:\n      throw new Error(\"Unsupported instruction tree: \".concat(tree));\n  }\n}\n//# sourceMappingURL=AsYouTypeFormatter.PatternMatcher.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport { DIGIT_PLACEHOLDER, countOccurences, repeat, cutAndStripNonPairedParens, closeNonPairedParens, stripNonPairedParens, populateTemplateWithDigits } from './AsYouTypeFormatter.util.js';\nimport formatCompleteNumber, { canFormatCompleteNumber } from './AsYouTypeFormatter.complete.js';\nimport PatternMatcher from './AsYouTypeFormatter.PatternMatcher.js';\nimport parseDigits from './helpers/parseDigits.js';\nexport { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter.util.js';\nimport { FIRST_GROUP_PATTERN } from './helpers/formatNationalNumberUsingFormat.js';\nimport { VALID_PUNCTUATION } from './constants.js';\nimport applyInternationalSeparatorStyle from './helpers/applyInternationalSeparatorStyle.js'; // Used in phone number format template creation.\n// Could be any digit, I guess.\n\nvar DUMMY_DIGIT = '9'; // I don't know why is it exactly `15`\n\nvar LONGEST_NATIONAL_PHONE_NUMBER_LENGTH = 15; // Create a phone number consisting only of the digit 9 that matches the\n// `number_pattern` by applying the pattern to the \"longest phone number\" string.\n\nvar LONGEST_DUMMY_PHONE_NUMBER = repeat(DUMMY_DIGIT, LONGEST_NATIONAL_PHONE_NUMBER_LENGTH); // A set of characters that, if found in a national prefix formatting rules, are an indicator to\n// us that we should separate the national prefix from the number when formatting.\n\nvar NATIONAL_PREFIX_SEPARATORS_PATTERN = /[- ]/; // Deprecated: Google has removed some formatting pattern related code from their repo.\n// https://github.com/googlei18n/libphonenumber/commit/a395b4fef3caf57c4bc5f082e1152a4d2bd0ba4c\n// \"We no longer have numbers in formatting matching patterns, only \\d.\"\n// Because this library supports generating custom metadata\n// some users may still be using old metadata so the relevant\n// code seems to stay until some next major version update.\n\nvar SUPPORT_LEGACY_FORMATTING_PATTERNS = true; // A pattern that is used to match character classes in regular expressions.\n// An example of a character class is \"[1-4]\".\n\nvar CREATE_CHARACTER_CLASS_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && function () {\n  return /\\[([^\\[\\]])*\\]/g;\n}; // Any digit in a regular expression that actually denotes a digit. For\n// example, in the regular expression \"80[0-2]\\d{6,10}\", the first 2 digits\n// (8 and 0) are standalone digits, but the rest are not.\n// Two look-aheads are needed because the number following \\\\d could be a\n// two-digit number, since the phone number can be as long as 15 digits.\n\n\nvar CREATE_STANDALONE_DIGIT_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && function () {\n  return /\\d(?=[^,}][^,}])/g;\n}; // A regular expression that is used to determine if a `format` is\n// suitable to be used in the \"as you type formatter\".\n// A `format` is suitable when the resulting formatted number has\n// the same digits as the user has entered.\n//\n// In the simplest case, that would mean that the format\n// doesn't add any additional digits when formatting a number.\n// Google says that it also shouldn't add \"star\" (`*`) characters,\n// like it does in some Israeli formats.\n// Such basic format would only contain \"valid punctuation\"\n// and \"captured group\" identifiers ($1, $2, etc).\n//\n// An example of a format that adds additional digits:\n//\n// Country: `AR` (Argentina).\n// Format:\n// {\n//    \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\n//    \"leading_digits_patterns\": [\"91\"],\n//    \"national_prefix_formatting_rule\": \"0$1\",\n//    \"format\": \"$2 15-$3-$4\",\n//    \"international_format\": \"$1 $2 $3-$4\"\n// }\n//\n// In the format above, the `format` adds `15` to the digits when formatting a number.\n// A sidenote: this format actually is suitable because `national_prefix_for_parsing`\n// has previously removed `15` from a national number, so re-adding `15` in `format`\n// doesn't actually result in any extra digits added to user's input.\n// But verifying that would be a complex procedure, so the code chooses a simpler path:\n// it simply filters out all `format`s that contain anything but \"captured group\" ids.\n//\n// This regular expression is called `ELIGIBLE_FORMAT_PATTERN` in Google's\n// `libphonenumber` code.\n//\n\n\nvar NON_ALTERING_FORMAT_REG_EXP = new RegExp('[' + VALID_PUNCTUATION + ']*' + // Google developers say:\n// \"We require that the first matching group is present in the\n//  output pattern to ensure no data is lost while formatting.\"\n'\\\\$1' + '[' + VALID_PUNCTUATION + ']*' + '(\\\\$\\\\d[' + VALID_PUNCTUATION + ']*)*' + '$'); // This is the minimum length of the leading digits of a phone number\n// to guarantee the first \"leading digits pattern\" for a phone number format\n// to be preemptive.\n\nvar MIN_LEADING_DIGITS_LENGTH = 3;\n\nvar AsYouTypeFormatter = /*#__PURE__*/function () {\n  function AsYouTypeFormatter(_ref) {\n    var state = _ref.state,\n        metadata = _ref.metadata;\n\n    _classCallCheck(this, AsYouTypeFormatter);\n\n    this.metadata = metadata;\n    this.resetFormat();\n  }\n\n  _createClass(AsYouTypeFormatter, [{\n    key: \"resetFormat\",\n    value: function resetFormat() {\n      this.chosenFormat = undefined;\n      this.template = undefined;\n      this.nationalNumberTemplate = undefined;\n      this.populatedNationalNumberTemplate = undefined;\n      this.populatedNationalNumberTemplatePosition = -1;\n    }\n  }, {\n    key: \"reset\",\n    value: function reset(numberingPlan, state) {\n      this.resetFormat();\n\n      if (numberingPlan) {\n        this.isNANP = numberingPlan.callingCode() === '1';\n        this.matchingFormats = numberingPlan.formats();\n\n        if (state.nationalSignificantNumber) {\n          this.narrowDownMatchingFormats(state);\n        }\n      } else {\n        this.isNANP = undefined;\n        this.matchingFormats = [];\n      }\n    }\n    /**\r\n     * Formats an updated phone number.\r\n     * @param  {string} nextDigits — Additional phone number digits.\r\n     * @param  {object} state — `AsYouType` state.\r\n     * @return {[string]} Returns undefined if the updated phone number can't be formatted using any of the available formats.\r\n     */\n\n  }, {\n    key: \"format\",\n    value: function format(nextDigits, state) {\n      var _this = this;\n\n      // See if the phone number digits can be formatted as a complete phone number.\n      // If not, use the results from `formatNationalNumberWithNextDigits()`,\n      // which formats based on the chosen formatting pattern.\n      //\n      // Attempting to format complete phone number first is how it's done\n      // in Google's `libphonenumber`, so this library just follows it.\n      // Google's `libphonenumber` code doesn't explain in detail why does it\n      // attempt to format digits as a complete phone number\n      // instead of just going with a previoulsy (or newly) chosen `format`:\n      //\n      // \"Checks to see if there is an exact pattern match for these digits.\n      //  If so, we should use this instead of any other formatting template\n      //  whose leadingDigitsPattern also matches the input.\"\n      //\n      if (canFormatCompleteNumber(state.nationalSignificantNumber, this.metadata)) {\n        for (var _iterator = _createForOfIteratorHelperLoose(this.matchingFormats), _step; !(_step = _iterator()).done;) {\n          var format = _step.value;\n          var formattedCompleteNumber = formatCompleteNumber(state, format, {\n            metadata: this.metadata,\n            shouldTryNationalPrefixFormattingRule: function shouldTryNationalPrefixFormattingRule(format) {\n              return _this.shouldTryNationalPrefixFormattingRule(format, {\n                international: state.international,\n                nationalPrefix: state.nationalPrefix\n              });\n            },\n            getSeparatorAfterNationalPrefix: function getSeparatorAfterNationalPrefix(format) {\n              return _this.getSeparatorAfterNationalPrefix(format);\n            }\n          });\n\n          if (formattedCompleteNumber) {\n            this.resetFormat();\n            this.chosenFormat = format;\n            this.setNationalNumberTemplate(formattedCompleteNumber.replace(/\\d/g, DIGIT_PLACEHOLDER), state);\n            this.populatedNationalNumberTemplate = formattedCompleteNumber; // With a new formatting template, the matched position\n            // using the old template needs to be reset.\n\n            this.populatedNationalNumberTemplatePosition = this.template.lastIndexOf(DIGIT_PLACEHOLDER);\n            return formattedCompleteNumber;\n          }\n        }\n      } // Format the digits as a partial (incomplete) phone number\n      // using the previously chosen formatting pattern (or a newly chosen one).\n\n\n      return this.formatNationalNumberWithNextDigits(nextDigits, state);\n    } // Formats the next phone number digits.\n\n  }, {\n    key: \"formatNationalNumberWithNextDigits\",\n    value: function formatNationalNumberWithNextDigits(nextDigits, state) {\n      var previouslyChosenFormat = this.chosenFormat; // Choose a format from the list of matching ones.\n\n      var newlyChosenFormat = this.chooseFormat(state);\n\n      if (newlyChosenFormat) {\n        if (newlyChosenFormat === previouslyChosenFormat) {\n          // If it can format the next (current) digits\n          // using the previously chosen phone number format\n          // then return the updated formatted number.\n          return this.formatNextNationalNumberDigits(nextDigits);\n        } else {\n          // If a more appropriate phone number format\n          // has been chosen for these \"leading digits\",\n          // then re-format the national phone number part\n          // using the newly selected format.\n          return this.formatNextNationalNumberDigits(state.getNationalDigits());\n        }\n      }\n    }\n  }, {\n    key: \"narrowDownMatchingFormats\",\n    value: function narrowDownMatchingFormats(_ref2) {\n      var _this2 = this;\n\n      var nationalSignificantNumber = _ref2.nationalSignificantNumber,\n          nationalPrefix = _ref2.nationalPrefix,\n          international = _ref2.international;\n      var leadingDigits = nationalSignificantNumber; // \"leading digits\" pattern list starts with a\n      // \"leading digits\" pattern fitting a maximum of 3 leading digits.\n      // So, after a user inputs 3 digits of a national (significant) phone number\n      // this national (significant) number can already be formatted.\n      // The next \"leading digits\" pattern is for 4 leading digits max,\n      // and the \"leading digits\" pattern after it is for 5 leading digits max, etc.\n      // This implementation is different from Google's\n      // in that it searches for a fitting format\n      // even if the user has entered less than\n      // `MIN_LEADING_DIGITS_LENGTH` digits of a national number.\n      // Because some leading digit patterns already match for a single first digit.\n\n      var leadingDigitsPatternIndex = leadingDigits.length - MIN_LEADING_DIGITS_LENGTH;\n\n      if (leadingDigitsPatternIndex < 0) {\n        leadingDigitsPatternIndex = 0;\n      }\n\n      this.matchingFormats = this.matchingFormats.filter(function (format) {\n        return _this2.formatSuits(format, international, nationalPrefix) && _this2.formatMatches(format, leadingDigits, leadingDigitsPatternIndex);\n      }); // If there was a phone number format chosen\n      // and it no longer holds given the new leading digits then reset it.\n      // The test for this `if` condition is marked as:\n      // \"Reset a chosen format when it no longer holds given the new leading digits\".\n      // To construct a valid test case for this one can find a country\n      // in `PhoneNumberMetadata.xml` yielding one format for 3 `<leadingDigits>`\n      // and yielding another format for 4 `<leadingDigits>` (Australia in this case).\n\n      if (this.chosenFormat && this.matchingFormats.indexOf(this.chosenFormat) === -1) {\n        this.resetFormat();\n      }\n    }\n  }, {\n    key: \"formatSuits\",\n    value: function formatSuits(format, international, nationalPrefix) {\n      // When a prefix before a national (significant) number is\n      // simply a national prefix, then it's parsed as `this.nationalPrefix`.\n      // In more complex cases, a prefix before national (significant) number\n      // could include a national prefix as well as some \"capturing groups\",\n      // and in that case there's no info whether a national prefix has been parsed.\n      // If national prefix is not used when formatting a phone number\n      // using this format, but a national prefix has been entered by the user,\n      // and was extracted, then discard such phone number format.\n      // In Google's \"AsYouType\" formatter code, the equivalent would be this part:\n      // https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L175-L184\n      if (nationalPrefix && !format.usesNationalPrefix() && // !format.domesticCarrierCodeFormattingRule() &&\n      !format.nationalPrefixIsOptionalWhenFormattingInNationalFormat()) {\n        return false;\n      } // If national prefix is mandatory for this phone number format\n      // and there're no guarantees that a national prefix is present in user input\n      // then discard this phone number format as not suitable.\n      // In Google's \"AsYouType\" formatter code, the equivalent would be this part:\n      // https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L185-L193\n\n\n      if (!international && !nationalPrefix && format.nationalPrefixIsMandatoryWhenFormattingInNationalFormat()) {\n        return false;\n      }\n\n      return true;\n    }\n  }, {\n    key: \"formatMatches\",\n    value: function formatMatches(format, leadingDigits, leadingDigitsPatternIndex) {\n      var leadingDigitsPatternsCount = format.leadingDigitsPatterns().length; // If this format is not restricted to a certain\n      // leading digits pattern then it fits.\n      // The test case could be found by searching for \"leadingDigitsPatternsCount === 0\".\n\n      if (leadingDigitsPatternsCount === 0) {\n        return true;\n      } // Start narrowing down the list of possible formats based on the leading digits.\n      // (only previously matched formats take part in the narrowing down process)\n      // `leading_digits_patterns` start with 3 digits min\n      // and then go up from there one digit at a time.\n\n\n      leadingDigitsPatternIndex = Math.min(leadingDigitsPatternIndex, leadingDigitsPatternsCount - 1);\n      var leadingDigitsPattern = format.leadingDigitsPatterns()[leadingDigitsPatternIndex]; // Google imposes a requirement on the leading digits\n      // to be minimum 3 digits long in order to be eligible\n      // for checking those with a leading digits pattern.\n      //\n      // Since `leading_digits_patterns` start with 3 digits min,\n      // Google's original `libphonenumber` library only starts\n      // excluding any non-matching formats only when the\n      // national number entered so far is at least 3 digits long,\n      // otherwise format matching would give false negatives.\n      //\n      // For example, when the digits entered so far are `2`\n      // and the leading digits pattern is `21` –\n      // it's quite obvious in this case that the format could be the one\n      // but due to the absence of further digits it would give false negative.\n      //\n      // Also, `leading_digits_patterns` doesn't always correspond to a single\n      // digits count. For example, `60|8` pattern would already match `8`\n      // but the `60` part would require having at least two leading digits,\n      // so the whole pattern would require inputting two digits first in order to\n      // decide on whether it matches the input, even when the input is \"80\".\n      //\n      // This library — `libphonenumber-js` — allows filtering by `leading_digits_patterns`\n      // even when there's only 1 or 2 digits of the national (significant) number.\n      // To do that, it uses a non-strict pattern matcher written specifically for that.\n      //\n\n      if (leadingDigits.length < MIN_LEADING_DIGITS_LENGTH) {\n        // Before leading digits < 3 matching was implemented:\n        // return true\n        //\n        // After leading digits < 3 matching was implemented:\n        try {\n          return new PatternMatcher(leadingDigitsPattern).match(leadingDigits, {\n            allowOverflow: true\n          }) !== undefined;\n        } catch (error)\n        /* istanbul ignore next */\n        {\n          // There's a slight possibility that there could be some undiscovered bug\n          // in the pattern matcher code. Since the \"leading digits < 3 matching\"\n          // feature is not \"essential\" for operation, it can fall back to the old way\n          // in case of any issues rather than halting the application's execution.\n          console.error(error);\n          return true;\n        }\n      } // If at least `MIN_LEADING_DIGITS_LENGTH` digits of a national number are\n      // available then use the usual regular expression matching.\n      //\n      // The whole pattern is wrapped in round brackets (`()`) because\n      // the pattern can use \"or\" operator (`|`) at the top level of the pattern.\n      //\n\n\n      return new RegExp(\"^(\".concat(leadingDigitsPattern, \")\")).test(leadingDigits);\n    }\n  }, {\n    key: \"getFormatFormat\",\n    value: function getFormatFormat(format, international) {\n      return international ? format.internationalFormat() : format.format();\n    }\n  }, {\n    key: \"chooseFormat\",\n    value: function chooseFormat(state) {\n      var _this3 = this;\n\n      var _loop = function _loop() {\n        var format = _step2.value;\n\n        // If this format is currently being used\n        // and is still suitable, then stick to it.\n        if (_this3.chosenFormat === format) {\n          return \"break\";\n        } // Sometimes, a formatting rule inserts additional digits in a phone number,\n        // and \"as you type\" formatter can't do that: it should only use the digits\n        // that the user has input.\n        //\n        // For example, in Argentina, there's a format for mobile phone numbers:\n        //\n        // {\n        //    \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\n        //    \"leading_digits_patterns\": [\"91\"],\n        //    \"national_prefix_formatting_rule\": \"0$1\",\n        //    \"format\": \"$2 15-$3-$4\",\n        //    \"international_format\": \"$1 $2 $3-$4\"\n        // }\n        //\n        // In that format, `international_format` is used instead of `format`\n        // because `format` inserts `15` in the formatted number,\n        // and `AsYouType` formatter should only use the digits\n        // the user has actually input, without adding any extra digits.\n        // In this case, it wouldn't make a difference, because the `15`\n        // is first stripped when applying `national_prefix_for_parsing`\n        // and then re-added when using `format`, so in reality it doesn't\n        // add any new digits to the number, but to detect that, the code\n        // would have to be more complex: it would have to try formatting\n        // the digits using the format and then see if any digits have\n        // actually been added or removed, and then, every time a new digit\n        // is input, it should re-check whether the chosen format doesn't\n        // alter the digits.\n        //\n        // Google's code doesn't go that far, and so does this library:\n        // it simply requires that a `format` doesn't add any additonal\n        // digits to user's input.\n        //\n        // Also, people in general should move from inputting phone numbers\n        // in national format (possibly with national prefixes)\n        // and use international phone number format instead:\n        // it's a logical thing in the modern age of mobile phones,\n        // globalization and the internet.\n        //\n\n        /* istanbul ignore if */\n\n\n        if (!NON_ALTERING_FORMAT_REG_EXP.test(_this3.getFormatFormat(format, state.international))) {\n          return \"continue\";\n        }\n\n        if (!_this3.createTemplateForFormat(format, state)) {\n          // Remove the format if it can't generate a template.\n          _this3.matchingFormats = _this3.matchingFormats.filter(function (_) {\n            return _ !== format;\n          });\n          return \"continue\";\n        }\n\n        _this3.chosenFormat = format;\n        return \"break\";\n      };\n\n      // When there are multiple available formats, the formatter uses the first\n      // format where a formatting template could be created.\n      //\n      // For some weird reason, `istanbul` says \"else path not taken\"\n      // for the `for of` line below. Supposedly that means that\n      // the loop doesn't ever go over the last element in the list.\n      // That's true because there always is `this.chosenFormat`\n      // when `this.matchingFormats` is non-empty.\n      // And, for some weird reason, it doesn't think that the case\n      // with empty `this.matchingFormats` qualifies for a valid \"else\" path.\n      // So simply muting this `istanbul` warning.\n      // It doesn't skip the contents of the `for of` loop,\n      // it just skips the `for of` line.\n      //\n\n      /* istanbul ignore next */\n      for (var _iterator2 = _createForOfIteratorHelperLoose(this.matchingFormats.slice()), _step2; !(_step2 = _iterator2()).done;) {\n        var _ret = _loop();\n\n        if (_ret === \"break\") break;\n        if (_ret === \"continue\") continue;\n      }\n\n      if (!this.chosenFormat) {\n        // No format matches the national (significant) phone number.\n        this.resetFormat();\n      }\n\n      return this.chosenFormat;\n    }\n  }, {\n    key: \"createTemplateForFormat\",\n    value: function createTemplateForFormat(format, state) {\n      // The formatter doesn't format numbers when numberPattern contains '|', e.g.\n      // (20|3)\\d{4}. In those cases we quickly return.\n      // (Though there's no such format in current metadata)\n\n      /* istanbul ignore if */\n      if (SUPPORT_LEGACY_FORMATTING_PATTERNS && format.pattern().indexOf('|') >= 0) {\n        return;\n      } // Get formatting template for this phone number format\n\n\n      var template = this.getTemplateForFormat(format, state); // If the national number entered is too long\n      // for any phone number format, then abort.\n\n      if (template) {\n        this.setNationalNumberTemplate(template, state);\n        return true;\n      }\n    }\n  }, {\n    key: \"getSeparatorAfterNationalPrefix\",\n    value: function getSeparatorAfterNationalPrefix(format) {\n      // `US` metadata doesn't have a `national_prefix_formatting_rule`,\n      // so the `if` condition below doesn't apply to `US`,\n      // but in reality there shoudl be a separator\n      // between a national prefix and a national (significant) number.\n      // So `US` national prefix separator is a \"special\" \"hardcoded\" case.\n      if (this.isNANP) {\n        return ' ';\n      } // If a `format` has a `national_prefix_formatting_rule`\n      // and that rule has a separator after a national prefix,\n      // then it means that there should be a separator\n      // between a national prefix and a national (significant) number.\n\n\n      if (format && format.nationalPrefixFormattingRule() && NATIONAL_PREFIX_SEPARATORS_PATTERN.test(format.nationalPrefixFormattingRule())) {\n        return ' ';\n      } // At this point, there seems to be no clear evidence that\n      // there should be a separator between a national prefix\n      // and a national (significant) number. So don't insert one.\n\n\n      return '';\n    }\n  }, {\n    key: \"getInternationalPrefixBeforeCountryCallingCode\",\n    value: function getInternationalPrefixBeforeCountryCallingCode(_ref3, options) {\n      var IDDPrefix = _ref3.IDDPrefix,\n          missingPlus = _ref3.missingPlus;\n\n      if (IDDPrefix) {\n        return options && options.spacing === false ? IDDPrefix : IDDPrefix + ' ';\n      }\n\n      if (missingPlus) {\n        return '';\n      }\n\n      return '+';\n    }\n  }, {\n    key: \"getTemplate\",\n    value: function getTemplate(state) {\n      if (!this.template) {\n        return;\n      } // `this.template` holds the template for a \"complete\" phone number.\n      // The currently entered phone number is most likely not \"complete\",\n      // so trim all non-populated digits.\n\n\n      var index = -1;\n      var i = 0;\n      var internationalPrefix = state.international ? this.getInternationalPrefixBeforeCountryCallingCode(state, {\n        spacing: false\n      }) : '';\n\n      while (i < internationalPrefix.length + state.getDigitsWithoutInternationalPrefix().length) {\n        index = this.template.indexOf(DIGIT_PLACEHOLDER, index + 1);\n        i++;\n      }\n\n      return cutAndStripNonPairedParens(this.template, index + 1);\n    }\n  }, {\n    key: \"setNationalNumberTemplate\",\n    value: function setNationalNumberTemplate(template, state) {\n      this.nationalNumberTemplate = template;\n      this.populatedNationalNumberTemplate = template; // With a new formatting template, the matched position\n      // using the old template needs to be reset.\n\n      this.populatedNationalNumberTemplatePosition = -1; // For convenience, the public `.template` property\n      // contains the whole international number\n      // if the phone number being input is international:\n      // 'x' for the '+' sign, 'x'es for the country phone code,\n      // a spacebar and then the template for the formatted national number.\n\n      if (state.international) {\n        this.template = this.getInternationalPrefixBeforeCountryCallingCode(state).replace(/[\\d\\+]/g, DIGIT_PLACEHOLDER) + repeat(DIGIT_PLACEHOLDER, state.callingCode.length) + ' ' + template;\n      } else {\n        this.template = template;\n      }\n    }\n    /**\r\n     * Generates formatting template for a national phone number,\r\n     * optionally containing a national prefix, for a format.\r\n     * @param  {Format} format\r\n     * @param  {string} nationalPrefix\r\n     * @return {string}\r\n     */\n\n  }, {\n    key: \"getTemplateForFormat\",\n    value: function getTemplateForFormat(format, _ref4) {\n      var nationalSignificantNumber = _ref4.nationalSignificantNumber,\n          international = _ref4.international,\n          nationalPrefix = _ref4.nationalPrefix,\n          complexPrefixBeforeNationalSignificantNumber = _ref4.complexPrefixBeforeNationalSignificantNumber;\n      var pattern = format.pattern();\n      /* istanbul ignore else */\n\n      if (SUPPORT_LEGACY_FORMATTING_PATTERNS) {\n        pattern = pattern // Replace anything in the form of [..] with \\d\n        .replace(CREATE_CHARACTER_CLASS_PATTERN(), '\\\\d') // Replace any standalone digit (not the one in `{}`) with \\d\n        .replace(CREATE_STANDALONE_DIGIT_PATTERN(), '\\\\d');\n      } // Generate a dummy national number (consisting of `9`s)\n      // that fits this format's `pattern`.\n      //\n      // This match will always succeed,\n      // because the \"longest dummy phone number\"\n      // has enough length to accomodate any possible\n      // national phone number format pattern.\n      //\n\n\n      var digits = LONGEST_DUMMY_PHONE_NUMBER.match(pattern)[0]; // If the national number entered is too long\n      // for any phone number format, then abort.\n\n      if (nationalSignificantNumber.length > digits.length) {\n        return;\n      } // Get a formatting template which can be used to efficiently format\n      // a partial number where digits are added one by one.\n      // Below `strictPattern` is used for the\n      // regular expression (with `^` and `$`).\n      // This wasn't originally in Google's `libphonenumber`\n      // and I guess they don't really need it\n      // because they're not using \"templates\" to format phone numbers\n      // but I added `strictPattern` after encountering\n      // South Korean phone number formatting bug.\n      //\n      // Non-strict regular expression bug demonstration:\n      //\n      // this.nationalSignificantNumber : `111111111` (9 digits)\n      //\n      // pattern : (\\d{2})(\\d{3,4})(\\d{4})\n      // format : `$1 $2 $3`\n      // digits : `9999999999` (10 digits)\n      //\n      // '9999999999'.replace(new RegExp(/(\\d{2})(\\d{3,4})(\\d{4})/g), '$1 $2 $3') = \"99 9999 9999\"\n      //\n      // template : xx xxxx xxxx\n      //\n      // But the correct template in this case is `xx xxx xxxx`.\n      // The template was generated incorrectly because of the\n      // `{3,4}` variability in the `pattern`.\n      //\n      // The fix is, if `this.nationalSignificantNumber` has already sufficient length\n      // to satisfy the `pattern` completely then `this.nationalSignificantNumber`\n      // is used instead of `digits`.\n\n\n      var strictPattern = new RegExp('^' + pattern + '$');\n      var nationalNumberDummyDigits = nationalSignificantNumber.replace(/\\d/g, DUMMY_DIGIT); // If `this.nationalSignificantNumber` has already sufficient length\n      // to satisfy the `pattern` completely then use it\n      // instead of `digits`.\n\n      if (strictPattern.test(nationalNumberDummyDigits)) {\n        digits = nationalNumberDummyDigits;\n      }\n\n      var numberFormat = this.getFormatFormat(format, international);\n      var nationalPrefixIncludedInTemplate; // If a user did input a national prefix (and that's guaranteed),\n      // and if a `format` does have a national prefix formatting rule,\n      // then see if that national prefix formatting rule\n      // prepends exactly the same national prefix the user has input.\n      // If that's the case, then use the `format` with the national prefix formatting rule.\n      // Otherwise, use  the `format` without the national prefix formatting rule,\n      // and prepend a national prefix manually to it.\n\n      if (this.shouldTryNationalPrefixFormattingRule(format, {\n        international: international,\n        nationalPrefix: nationalPrefix\n      })) {\n        var numberFormatWithNationalPrefix = numberFormat.replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()); // If `national_prefix_formatting_rule` of a `format` simply prepends\n        // national prefix at the start of a national (significant) number,\n        // then such formatting can be used with `AsYouType` formatter.\n        // There seems to be no `else` case: everywhere in metadata,\n        // national prefix formatting rule is national prefix + $1,\n        // or `($1)`, in which case such format isn't even considered\n        // when the user has input a national prefix.\n\n        /* istanbul ignore else */\n\n        if (parseDigits(format.nationalPrefixFormattingRule()) === (nationalPrefix || '') + parseDigits('$1')) {\n          numberFormat = numberFormatWithNationalPrefix;\n          nationalPrefixIncludedInTemplate = true; // Replace all digits of the national prefix in the formatting template\n          // with `DIGIT_PLACEHOLDER`s.\n\n          if (nationalPrefix) {\n            var i = nationalPrefix.length;\n\n            while (i > 0) {\n              numberFormat = numberFormat.replace(/\\d/, DIGIT_PLACEHOLDER);\n              i--;\n            }\n          }\n        }\n      } // Generate formatting template for this phone number format.\n\n\n      var template = digits // Format the dummy phone number according to the format.\n      .replace(new RegExp(pattern), numberFormat) // Replace each dummy digit with a DIGIT_PLACEHOLDER.\n      .replace(new RegExp(DUMMY_DIGIT, 'g'), DIGIT_PLACEHOLDER); // If a prefix of a national (significant) number is not as simple\n      // as just a basic national prefix, then just prepend such prefix\n      // before the national (significant) number, optionally spacing\n      // the two with a whitespace.\n\n      if (!nationalPrefixIncludedInTemplate) {\n        if (complexPrefixBeforeNationalSignificantNumber) {\n          // Prepend the prefix to the template manually.\n          template = repeat(DIGIT_PLACEHOLDER, complexPrefixBeforeNationalSignificantNumber.length) + ' ' + template;\n        } else if (nationalPrefix) {\n          // Prepend national prefix to the template manually.\n          template = repeat(DIGIT_PLACEHOLDER, nationalPrefix.length) + this.getSeparatorAfterNationalPrefix(format) + template;\n        }\n      }\n\n      if (international) {\n        template = applyInternationalSeparatorStyle(template);\n      }\n\n      return template;\n    }\n  }, {\n    key: \"formatNextNationalNumberDigits\",\n    value: function formatNextNationalNumberDigits(digits) {\n      var result = populateTemplateWithDigits(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition, digits);\n\n      if (!result) {\n        // Reset the format.\n        this.resetFormat();\n        return;\n      }\n\n      this.populatedNationalNumberTemplate = result[0];\n      this.populatedNationalNumberTemplatePosition = result[1]; // Return the formatted phone number so far.\n\n      return cutAndStripNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1); // The old way which was good for `input-format` but is not so good\n      // for `react-phone-number-input`'s default input (`InputBasic`).\n      // return closeNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1)\n      // \t.replace(new RegExp(DIGIT_PLACEHOLDER, 'g'), ' ')\n    }\n  }, {\n    key: \"shouldTryNationalPrefixFormattingRule\",\n    value: function shouldTryNationalPrefixFormattingRule(format, _ref5) {\n      var international = _ref5.international,\n          nationalPrefix = _ref5.nationalPrefix;\n\n      if (format.nationalPrefixFormattingRule()) {\n        // In some countries, `national_prefix_formatting_rule` is `($1)`,\n        // so it applies even if the user hasn't input a national prefix.\n        // `format.usesNationalPrefix()` detects such cases.\n        var usesNationalPrefix = format.usesNationalPrefix();\n\n        if (usesNationalPrefix && nationalPrefix || !usesNationalPrefix && !international) {\n          return true;\n        }\n      }\n    }\n  }]);\n\n  return AsYouTypeFormatter;\n}();\n\nexport { AsYouTypeFormatter as default };\n//# sourceMappingURL=AsYouTypeFormatter.js.map","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport _extractCountryCallingCode from './helpers/extractCountryCallingCode.js';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js';\nimport extractNationalNumberFromPossiblyIncompleteNumber from './helpers/extractNationalNumberFromPossiblyIncompleteNumber.js';\nimport stripIddPrefix from './helpers/stripIddPrefix.js';\nimport parseDigits from './helpers/parseDigits.js';\nimport { VALID_DIGITS, VALID_PUNCTUATION, PLUS_CHARS } from './constants.js';\nvar VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART = '[' + VALID_PUNCTUATION + VALID_DIGITS + ']+';\nvar VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN = new RegExp('^' + VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART + '$', 'i');\nvar VALID_FORMATTED_PHONE_NUMBER_PART = '(?:' + '[' + PLUS_CHARS + ']' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']*' + '|' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']+' + ')';\nvar AFTER_PHONE_NUMBER_DIGITS_END_PATTERN = new RegExp('[^' + VALID_PUNCTUATION + VALID_DIGITS + ']+' + '.*' + '$'); // Tests whether `national_prefix_for_parsing` could match\n// different national prefixes.\n// Matches anything that's not a digit or a square bracket.\n\nvar COMPLEX_NATIONAL_PREFIX = /[^\\d\\[\\]]/;\n\nvar AsYouTypeParser = /*#__PURE__*/function () {\n  function AsYouTypeParser(_ref) {\n    var defaultCountry = _ref.defaultCountry,\n        defaultCallingCode = _ref.defaultCallingCode,\n        metadata = _ref.metadata,\n        onNationalSignificantNumberChange = _ref.onNationalSignificantNumberChange;\n\n    _classCallCheck(this, AsYouTypeParser);\n\n    this.defaultCountry = defaultCountry;\n    this.defaultCallingCode = defaultCallingCode;\n    this.metadata = metadata;\n    this.onNationalSignificantNumberChange = onNationalSignificantNumberChange;\n  }\n\n  _createClass(AsYouTypeParser, [{\n    key: \"input\",\n    value: function input(text, state) {\n      var _extractFormattedDigi = extractFormattedDigitsAndPlus(text),\n          _extractFormattedDigi2 = _slicedToArray(_extractFormattedDigi, 2),\n          formattedDigits = _extractFormattedDigi2[0],\n          hasPlus = _extractFormattedDigi2[1];\n\n      var digits = parseDigits(formattedDigits); // Checks for a special case: just a leading `+` has been entered.\n\n      var justLeadingPlus;\n\n      if (hasPlus) {\n        if (!state.digits) {\n          state.startInternationalNumber();\n\n          if (!digits) {\n            justLeadingPlus = true;\n          }\n        }\n      }\n\n      if (digits) {\n        this.inputDigits(digits, state);\n      }\n\n      return {\n        digits: digits,\n        justLeadingPlus: justLeadingPlus\n      };\n    }\n    /**\r\n     * Inputs \"next\" phone number digits.\r\n     * @param  {string} digits\r\n     * @return {string} [formattedNumber] Formatted national phone number (if it can be formatted at this stage). Returning `undefined` means \"don't format the national phone number at this stage\".\r\n     */\n\n  }, {\n    key: \"inputDigits\",\n    value: function inputDigits(nextDigits, state) {\n      var digits = state.digits;\n      var hasReceivedThreeLeadingDigits = digits.length < 3 && digits.length + nextDigits.length >= 3; // Append phone number digits.\n\n      state.appendDigits(nextDigits); // Attempt to extract IDD prefix:\n      // Some users input their phone number in international format,\n      // but in an \"out-of-country\" dialing format instead of using the leading `+`.\n      // https://github.com/catamphetamine/libphonenumber-js/issues/185\n      // Detect such numbers as soon as there're at least 3 digits.\n      // Google's library attempts to extract IDD prefix at 3 digits,\n      // so this library just copies that behavior.\n      // I guess that's because the most commot IDD prefixes are\n      // `00` (Europe) and `011` (US).\n      // There exist really long IDD prefixes too:\n      // for example, in Australia the default IDD prefix is `0011`,\n      // and it could even be as long as `14880011`.\n      // An IDD prefix is extracted here, and then every time when\n      // there's a new digit and the number couldn't be formatted.\n\n      if (hasReceivedThreeLeadingDigits) {\n        this.extractIddPrefix(state);\n      }\n\n      if (this.isWaitingForCountryCallingCode(state)) {\n        if (!this.extractCountryCallingCode(state)) {\n          return;\n        }\n      } else {\n        state.appendNationalSignificantNumberDigits(nextDigits);\n      } // If a phone number is being input in international format,\n      // then it's not valid for it to have a national prefix.\n      // Still, some people incorrectly input such numbers with a national prefix.\n      // In such cases, only attempt to strip a national prefix if the number becomes too long.\n      // (but that is done later, not here)\n\n\n      if (!state.international) {\n        if (!this.hasExtractedNationalSignificantNumber) {\n          this.extractNationalSignificantNumber(state.getNationalDigits(), function (stateUpdate) {\n            return state.update(stateUpdate);\n          });\n        }\n      }\n    }\n  }, {\n    key: \"isWaitingForCountryCallingCode\",\n    value: function isWaitingForCountryCallingCode(_ref2) {\n      var international = _ref2.international,\n          callingCode = _ref2.callingCode;\n      return international && !callingCode;\n    } // Extracts a country calling code from a number\n    // being entered in internatonal format.\n\n  }, {\n    key: \"extractCountryCallingCode\",\n    value: function extractCountryCallingCode(state) {\n      var _extractCountryCallin = _extractCountryCallingCode('+' + state.getDigitsWithoutInternationalPrefix(), this.defaultCountry, this.defaultCallingCode, this.metadata.metadata),\n          countryCallingCode = _extractCountryCallin.countryCallingCode,\n          number = _extractCountryCallin.number;\n\n      if (countryCallingCode) {\n        state.setCallingCode(countryCallingCode);\n        state.update({\n          nationalSignificantNumber: number\n        });\n        return true;\n      }\n    }\n  }, {\n    key: \"reset\",\n    value: function reset(numberingPlan) {\n      if (numberingPlan) {\n        this.hasSelectedNumberingPlan = true;\n\n        var nationalPrefixForParsing = numberingPlan._nationalPrefixForParsing();\n\n        this.couldPossiblyExtractAnotherNationalSignificantNumber = nationalPrefixForParsing && COMPLEX_NATIONAL_PREFIX.test(nationalPrefixForParsing);\n      } else {\n        this.hasSelectedNumberingPlan = undefined;\n        this.couldPossiblyExtractAnotherNationalSignificantNumber = undefined;\n      }\n    }\n    /**\r\n     * Extracts a national (significant) number from user input.\r\n     * Google's library is different in that it only applies `national_prefix_for_parsing`\r\n     * and doesn't apply `national_prefix_transform_rule` after that.\r\n     * https://github.com/google/libphonenumber/blob/a3d70b0487875475e6ad659af404943211d26456/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L539\r\n     * @return {boolean} [extracted]\r\n     */\n\n  }, {\n    key: \"extractNationalSignificantNumber\",\n    value: function extractNationalSignificantNumber(nationalDigits, setState) {\n      if (!this.hasSelectedNumberingPlan) {\n        return;\n      }\n\n      var _extractNationalNumbe = extractNationalNumberFromPossiblyIncompleteNumber(nationalDigits, this.metadata),\n          nationalPrefix = _extractNationalNumbe.nationalPrefix,\n          nationalNumber = _extractNationalNumbe.nationalNumber,\n          carrierCode = _extractNationalNumbe.carrierCode;\n\n      if (nationalNumber === nationalDigits) {\n        return;\n      }\n\n      this.onExtractedNationalNumber(nationalPrefix, carrierCode, nationalNumber, nationalDigits, setState);\n      return true;\n    }\n    /**\r\n     * In Google's code this function is called \"attempt to extract longer NDD\".\r\n     * \"Some national prefixes are a substring of others\", they say.\r\n     * @return {boolean} [result] — Returns `true` if extracting a national prefix produced different results from what they were.\r\n     */\n\n  }, {\n    key: \"extractAnotherNationalSignificantNumber\",\n    value: function extractAnotherNationalSignificantNumber(nationalDigits, prevNationalSignificantNumber, setState) {\n      if (!this.hasExtractedNationalSignificantNumber) {\n        return this.extractNationalSignificantNumber(nationalDigits, setState);\n      }\n\n      if (!this.couldPossiblyExtractAnotherNationalSignificantNumber) {\n        return;\n      }\n\n      var _extractNationalNumbe2 = extractNationalNumberFromPossiblyIncompleteNumber(nationalDigits, this.metadata),\n          nationalPrefix = _extractNationalNumbe2.nationalPrefix,\n          nationalNumber = _extractNationalNumbe2.nationalNumber,\n          carrierCode = _extractNationalNumbe2.carrierCode; // If a national prefix has been extracted previously,\n      // then it's always extracted as additional digits are added.\n      // That's assuming `extractNationalNumberFromPossiblyIncompleteNumber()`\n      // doesn't do anything different from what it currently does.\n      // So, just in case, here's this check, though it doesn't occur.\n\n      /* istanbul ignore if */\n\n\n      if (nationalNumber === prevNationalSignificantNumber) {\n        return;\n      }\n\n      this.onExtractedNationalNumber(nationalPrefix, carrierCode, nationalNumber, nationalDigits, setState);\n      return true;\n    }\n  }, {\n    key: \"onExtractedNationalNumber\",\n    value: function onExtractedNationalNumber(nationalPrefix, carrierCode, nationalSignificantNumber, nationalDigits, setState) {\n      var complexPrefixBeforeNationalSignificantNumber;\n      var nationalSignificantNumberMatchesInput; // This check also works with empty `this.nationalSignificantNumber`.\n\n      var nationalSignificantNumberIndex = nationalDigits.lastIndexOf(nationalSignificantNumber); // If the extracted national (significant) number is the\n      // last substring of the `digits`, then it means that it hasn't been altered:\n      // no digits have been removed from the national (significant) number\n      // while applying `national_prefix_transform_rule`.\n      // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n\n      if (nationalSignificantNumberIndex >= 0 && nationalSignificantNumberIndex === nationalDigits.length - nationalSignificantNumber.length) {\n        nationalSignificantNumberMatchesInput = true; // If a prefix of a national (significant) number is not as simple\n        // as just a basic national prefix, then such prefix is stored in\n        // `this.complexPrefixBeforeNationalSignificantNumber` property and will be\n        // prepended \"as is\" to the national (significant) number to produce\n        // a formatted result.\n\n        var prefixBeforeNationalNumber = nationalDigits.slice(0, nationalSignificantNumberIndex); // `prefixBeforeNationalNumber` is always non-empty,\n        // because `onExtractedNationalNumber()` isn't called\n        // when a national (significant) number hasn't been actually \"extracted\":\n        // when a national (significant) number is equal to the national part of `digits`,\n        // then `onExtractedNationalNumber()` doesn't get called.\n\n        if (prefixBeforeNationalNumber !== nationalPrefix) {\n          complexPrefixBeforeNationalSignificantNumber = prefixBeforeNationalNumber;\n        }\n      }\n\n      setState({\n        nationalPrefix: nationalPrefix,\n        carrierCode: carrierCode,\n        nationalSignificantNumber: nationalSignificantNumber,\n        nationalSignificantNumberMatchesInput: nationalSignificantNumberMatchesInput,\n        complexPrefixBeforeNationalSignificantNumber: complexPrefixBeforeNationalSignificantNumber\n      }); // `onExtractedNationalNumber()` is only called when\n      // the national (significant) number actually did change.\n\n      this.hasExtractedNationalSignificantNumber = true;\n      this.onNationalSignificantNumberChange();\n    }\n  }, {\n    key: \"reExtractNationalSignificantNumber\",\n    value: function reExtractNationalSignificantNumber(state) {\n      // Attempt to extract a national prefix.\n      //\n      // Some people incorrectly input national prefix\n      // in an international phone number.\n      // For example, some people write British phone numbers as `+44(0)...`.\n      //\n      // Also, in some rare cases, it is valid for a national prefix\n      // to be a part of an international phone number.\n      // For example, mobile phone numbers in Mexico are supposed to be\n      // dialled internationally using a `1` national prefix,\n      // so the national prefix will be part of an international number.\n      //\n      // Quote from:\n      // https://www.mexperience.com/dialing-cell-phones-in-mexico/\n      //\n      // \"Dialing a Mexican cell phone from abroad\n      // When you are calling a cell phone number in Mexico from outside Mexico,\n      // it’s necessary to dial an additional “1” after Mexico’s country code\n      // (which is “52”) and before the area code.\n      // You also ignore the 045, and simply dial the area code and the\n      // cell phone’s number.\n      //\n      // If you don’t add the “1”, you’ll receive a recorded announcement\n      // asking you to redial using it.\n      //\n      // For example, if you are calling from the USA to a cell phone\n      // in Mexico City, you would dial +52 – 1 – 55 – 1234 5678.\n      // (Note that this is different to calling a land line in Mexico City\n      // from abroad, where the number dialed would be +52 – 55 – 1234 5678)\".\n      //\n      // Google's demo output:\n      // https://libphonenumber.appspot.com/phonenumberparser?number=%2b5215512345678&country=MX\n      //\n      if (this.extractAnotherNationalSignificantNumber(state.getNationalDigits(), state.nationalSignificantNumber, function (stateUpdate) {\n        return state.update(stateUpdate);\n      })) {\n        return true;\n      } // If no format matches the phone number, then it could be\n      // \"a really long IDD\" (quote from a comment in Google's library).\n      // An IDD prefix is first extracted when the user has entered at least 3 digits,\n      // and then here — every time when there's a new digit and the number\n      // couldn't be formatted.\n      // For example, in Australia the default IDD prefix is `0011`,\n      // and it could even be as long as `14880011`.\n      //\n      // Could also check `!hasReceivedThreeLeadingDigits` here\n      // to filter out the case when this check duplicates the one\n      // already performed when there're 3 leading digits,\n      // but it's not a big deal, and in most cases there\n      // will be a suitable `format` when there're 3 leading digits.\n      //\n\n\n      if (this.extractIddPrefix(state)) {\n        this.extractCallingCodeAndNationalSignificantNumber(state);\n        return true;\n      } // Google's AsYouType formatter supports sort of an \"autocorrection\" feature\n      // when it \"autocorrects\" numbers that have been input for a country\n      // with that country's calling code.\n      // Such \"autocorrection\" feature looks weird, but different people have been requesting it:\n      // https://github.com/catamphetamine/libphonenumber-js/issues/376\n      // https://github.com/catamphetamine/libphonenumber-js/issues/375\n      // https://github.com/catamphetamine/libphonenumber-js/issues/316\n\n\n      if (this.fixMissingPlus(state)) {\n        this.extractCallingCodeAndNationalSignificantNumber(state);\n        return true;\n      }\n    }\n  }, {\n    key: \"extractIddPrefix\",\n    value: function extractIddPrefix(state) {\n      // An IDD prefix can't be present in a number written with a `+`.\n      // Also, don't re-extract an IDD prefix if has already been extracted.\n      var international = state.international,\n          IDDPrefix = state.IDDPrefix,\n          digits = state.digits,\n          nationalSignificantNumber = state.nationalSignificantNumber;\n\n      if (international || IDDPrefix) {\n        return;\n      } // Some users input their phone number in \"out-of-country\"\n      // dialing format instead of using the leading `+`.\n      // https://github.com/catamphetamine/libphonenumber-js/issues/185\n      // Detect such numbers.\n\n\n      var numberWithoutIDD = stripIddPrefix(digits, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata);\n\n      if (numberWithoutIDD !== undefined && numberWithoutIDD !== digits) {\n        // If an IDD prefix was stripped then convert the IDD-prefixed number\n        // to international number for subsequent parsing.\n        state.update({\n          IDDPrefix: digits.slice(0, digits.length - numberWithoutIDD.length)\n        });\n        this.startInternationalNumber(state, {\n          country: undefined,\n          callingCode: undefined\n        });\n        return true;\n      }\n    }\n  }, {\n    key: \"fixMissingPlus\",\n    value: function fixMissingPlus(state) {\n      if (!state.international) {\n        var _extractCountryCallin2 = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(state.digits, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata),\n            newCallingCode = _extractCountryCallin2.countryCallingCode,\n            number = _extractCountryCallin2.number;\n\n        if (newCallingCode) {\n          state.update({\n            missingPlus: true\n          });\n          this.startInternationalNumber(state, {\n            country: state.country,\n            callingCode: newCallingCode\n          });\n          return true;\n        }\n      }\n    }\n  }, {\n    key: \"startInternationalNumber\",\n    value: function startInternationalNumber(state, _ref3) {\n      var country = _ref3.country,\n          callingCode = _ref3.callingCode;\n      state.startInternationalNumber(country, callingCode); // If a national (significant) number has been extracted before, reset it.\n\n      if (state.nationalSignificantNumber) {\n        state.resetNationalSignificantNumber();\n        this.onNationalSignificantNumberChange();\n        this.hasExtractedNationalSignificantNumber = undefined;\n      }\n    }\n  }, {\n    key: \"extractCallingCodeAndNationalSignificantNumber\",\n    value: function extractCallingCodeAndNationalSignificantNumber(state) {\n      if (this.extractCountryCallingCode(state)) {\n        // `this.extractCallingCode()` is currently called when the number\n        // couldn't be formatted during the standard procedure.\n        // Normally, the national prefix would be re-extracted\n        // for an international number if such number couldn't be formatted,\n        // but since it's already not able to be formatted,\n        // there won't be yet another retry, so also extract national prefix here.\n        this.extractNationalSignificantNumber(state.getNationalDigits(), function (stateUpdate) {\n          return state.update(stateUpdate);\n        });\n      }\n    }\n  }]);\n\n  return AsYouTypeParser;\n}();\n/**\r\n * Extracts formatted phone number from text (if there's any).\r\n * @param  {string} text\r\n * @return {string} [formattedPhoneNumber]\r\n */\n\n\nexport { AsYouTypeParser as default };\n\nfunction extractFormattedPhoneNumber(text) {\n  // Attempt to extract a possible number from the string passed in.\n  var startsAt = text.search(VALID_FORMATTED_PHONE_NUMBER_PART);\n\n  if (startsAt < 0) {\n    return;\n  } // Trim everything to the left of the phone number.\n\n\n  text = text.slice(startsAt); // Trim the `+`.\n\n  var hasPlus;\n\n  if (text[0] === '+') {\n    hasPlus = true;\n    text = text.slice('+'.length);\n  } // Trim everything to the right of the phone number.\n\n\n  text = text.replace(AFTER_PHONE_NUMBER_DIGITS_END_PATTERN, ''); // Re-add the previously trimmed `+`.\n\n  if (hasPlus) {\n    text = '+' + text;\n  }\n\n  return text;\n}\n/**\r\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\r\n * @param  {string} text\r\n * @return {any[]}\r\n */\n\n\nfunction _extractFormattedDigitsAndPlus(text) {\n  // Extract a formatted phone number part from text.\n  var extractedNumber = extractFormattedPhoneNumber(text) || ''; // Trim a `+`.\n\n  if (extractedNumber[0] === '+') {\n    return [extractedNumber.slice('+'.length), true];\n  }\n\n  return [extractedNumber];\n}\n/**\r\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\r\n * @param  {string} text\r\n * @return {any[]}\r\n */\n\n\nexport function extractFormattedDigitsAndPlus(text) {\n  var _extractFormattedDigi3 = _extractFormattedDigitsAndPlus(text),\n      _extractFormattedDigi4 = _slicedToArray(_extractFormattedDigi3, 2),\n      formattedDigits = _extractFormattedDigi4[0],\n      hasPlus = _extractFormattedDigi4[1]; // If the extracted phone number part\n  // can possibly be a part of some valid phone number\n  // then parse phone number characters from a formatted phone number.\n\n\n  if (!VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN.test(formattedDigits)) {\n    formattedDigits = '';\n  }\n\n  return [formattedDigits, hasPlus];\n}\n//# sourceMappingURL=AsYouTypeParser.js.map","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport Metadata from './metadata.js';\nimport PhoneNumber from './PhoneNumber.js';\nimport AsYouTypeState from './AsYouTypeState.js';\nimport AsYouTypeFormatter, { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter.js';\nimport AsYouTypeParser, { extractFormattedDigitsAndPlus } from './AsYouTypeParser.js';\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode.js';\nimport getCountryByNationalNumber from './helpers/getCountryByNationalNumber.js';\nimport isObject from './helpers/isObject.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\nvar AsYouType = /*#__PURE__*/function () {\n  /**\r\n   * @param {(string|object)?} [optionsOrDefaultCountry] - The default country used for parsing non-international phone numbers. Can also be an `options` object.\r\n   * @param {Object} metadata\r\n   */\n  function AsYouType(optionsOrDefaultCountry, metadata) {\n    _classCallCheck(this, AsYouType);\n\n    this.metadata = new Metadata(metadata);\n\n    var _this$getCountryAndCa = this.getCountryAndCallingCode(optionsOrDefaultCountry),\n        _this$getCountryAndCa2 = _slicedToArray(_this$getCountryAndCa, 2),\n        defaultCountry = _this$getCountryAndCa2[0],\n        defaultCallingCode = _this$getCountryAndCa2[1]; // `this.defaultCountry` and `this.defaultCallingCode` aren't required to be in sync.\n    // For example, `this.defaultCountry` could be `\"AR\"` and `this.defaultCallingCode` could be `undefined`.\n    // So `this.defaultCountry` and `this.defaultCallingCode` are totally independent.\n\n\n    this.defaultCountry = defaultCountry;\n    this.defaultCallingCode = defaultCallingCode;\n    this.reset();\n  }\n\n  _createClass(AsYouType, [{\n    key: \"getCountryAndCallingCode\",\n    value: function getCountryAndCallingCode(optionsOrDefaultCountry) {\n      // Set `defaultCountry` and `defaultCallingCode` options.\n      var defaultCountry;\n      var defaultCallingCode; // Turns out `null` also has type \"object\". Weird.\n\n      if (optionsOrDefaultCountry) {\n        if (isObject(optionsOrDefaultCountry)) {\n          defaultCountry = optionsOrDefaultCountry.defaultCountry;\n          defaultCallingCode = optionsOrDefaultCountry.defaultCallingCode;\n        } else {\n          defaultCountry = optionsOrDefaultCountry;\n        }\n      }\n\n      if (defaultCountry && !this.metadata.hasCountry(defaultCountry)) {\n        defaultCountry = undefined;\n      }\n\n      if (defaultCallingCode) {\n        /* istanbul ignore if */\n        if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n          if (this.metadata.isNonGeographicCallingCode(defaultCallingCode)) {\n            defaultCountry = '001';\n          }\n        }\n      }\n\n      return [defaultCountry, defaultCallingCode];\n    }\n    /**\r\n     * Inputs \"next\" phone number characters.\r\n     * @param  {string} text\r\n     * @return {string} Formatted phone number characters that have been input so far.\r\n     */\n\n  }, {\n    key: \"input\",\n    value: function input(text) {\n      var _this$parser$input = this.parser.input(text, this.state),\n          digits = _this$parser$input.digits,\n          justLeadingPlus = _this$parser$input.justLeadingPlus;\n\n      if (justLeadingPlus) {\n        this.formattedOutput = '+';\n      } else if (digits) {\n        this.determineTheCountryIfNeeded(); // Match the available formats by the currently available leading digits.\n\n        if (this.state.nationalSignificantNumber) {\n          this.formatter.narrowDownMatchingFormats(this.state);\n        }\n\n        var formattedNationalNumber;\n\n        if (this.metadata.hasSelectedNumberingPlan()) {\n          formattedNationalNumber = this.formatter.format(digits, this.state);\n        }\n\n        if (formattedNationalNumber === undefined) {\n          // See if another national (significant) number could be re-extracted.\n          if (this.parser.reExtractNationalSignificantNumber(this.state)) {\n            this.determineTheCountryIfNeeded(); // If it could, then re-try formatting the new national (significant) number.\n\n            var nationalDigits = this.state.getNationalDigits();\n\n            if (nationalDigits) {\n              formattedNationalNumber = this.formatter.format(nationalDigits, this.state);\n            }\n          }\n        }\n\n        this.formattedOutput = formattedNationalNumber ? this.getFullNumber(formattedNationalNumber) : this.getNonFormattedNumber();\n      }\n\n      return this.formattedOutput;\n    }\n  }, {\n    key: \"reset\",\n    value: function reset() {\n      var _this = this;\n\n      this.state = new AsYouTypeState({\n        onCountryChange: function onCountryChange(country) {\n          // Before version `1.6.0`, the official `AsYouType` formatter API\n          // included the `.country` property of an `AsYouType` instance.\n          // Since that property (along with the others) have been moved to\n          // `this.state`, `this.country` property is emulated for compatibility\n          // with the old versions.\n          _this.country = country;\n        },\n        onCallingCodeChange: function onCallingCodeChange(callingCode, country) {\n          _this.metadata.selectNumberingPlan(country, callingCode);\n\n          _this.formatter.reset(_this.metadata.numberingPlan, _this.state);\n\n          _this.parser.reset(_this.metadata.numberingPlan);\n        }\n      });\n      this.formatter = new AsYouTypeFormatter({\n        state: this.state,\n        metadata: this.metadata\n      });\n      this.parser = new AsYouTypeParser({\n        defaultCountry: this.defaultCountry,\n        defaultCallingCode: this.defaultCallingCode,\n        metadata: this.metadata,\n        state: this.state,\n        onNationalSignificantNumberChange: function onNationalSignificantNumberChange() {\n          _this.determineTheCountryIfNeeded();\n\n          _this.formatter.reset(_this.metadata.numberingPlan, _this.state);\n        }\n      });\n      this.state.reset({\n        country: this.defaultCountry,\n        callingCode: this.defaultCallingCode\n      });\n      this.formattedOutput = '';\n      return this;\n    }\n    /**\r\n     * Returns `true` if the phone number is being input in international format.\r\n     * In other words, returns `true` if and only if the parsed phone number starts with a `\"+\"`.\r\n     * @return {boolean}\r\n     */\n\n  }, {\n    key: \"isInternational\",\n    value: function isInternational() {\n      return this.state.international;\n    }\n    /**\r\n     * Returns the \"calling code\" part of the phone number when it's being input\r\n     * in an international format.\r\n     * If no valid calling code has been entered so far, returns `undefined`.\r\n     * @return {string} [callingCode]\r\n     */\n\n  }, {\n    key: \"getCallingCode\",\n    value: function getCallingCode() {\n      // If the number is being input in national format and some \"default calling code\"\n      // has been passed to `AsYouType` constructor, then `this.state.callingCode`\n      // is equal to that \"default calling code\".\n      //\n      // If the number is being input in national format and no \"default calling code\"\n      // has been passed to `AsYouType` constructor, then returns `undefined`,\n      // even if a \"default country\" has been passed to `AsYouType` constructor.\n      //\n      if (this.isInternational()) {\n        return this.state.callingCode;\n      }\n    } // A legacy alias.\n\n  }, {\n    key: \"getCountryCallingCode\",\n    value: function getCountryCallingCode() {\n      return this.getCallingCode();\n    }\n    /**\r\n     * Returns a two-letter country code of the phone number.\r\n     * Returns `undefined` for \"non-geographic\" phone numbering plans.\r\n     * Returns `undefined` if no phone number has been input yet.\r\n     * @return {string} [country]\r\n     */\n\n  }, {\n    key: \"getCountry\",\n    value: function getCountry() {\n      var digits = this.state.digits; // Return `undefined` if no digits have been input yet.\n\n      if (digits) {\n        return this._getCountry();\n      }\n    }\n    /**\r\n     * Returns a two-letter country code of the phone number.\r\n     * Returns `undefined` for \"non-geographic\" phone numbering plans.\r\n     * @return {string} [country]\r\n     */\n\n  }, {\n    key: \"_getCountry\",\n    value: function _getCountry() {\n      var country = this.state.country;\n      /* istanbul ignore if */\n\n      if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n        // `AsYouType.getCountry()` returns `undefined`\n        // for \"non-geographic\" phone numbering plans.\n        if (country === '001') {\n          return;\n        }\n      }\n\n      return country;\n    }\n  }, {\n    key: \"determineTheCountryIfNeeded\",\n    value: function determineTheCountryIfNeeded() {\n      // Suppose a user enters a phone number in international format,\n      // and there're several countries corresponding to that country calling code,\n      // and a country has been derived from the number, and then\n      // a user enters one more digit and the number is no longer\n      // valid for the derived country, so the country should be re-derived\n      // on every new digit in those cases.\n      //\n      // If the phone number is being input in national format,\n      // then it could be a case when `defaultCountry` wasn't specified\n      // when creating `AsYouType` instance, and just `defaultCallingCode` was specified,\n      // and that \"calling code\" could correspond to a \"non-geographic entity\",\n      // or there could be several countries corresponding to that country calling code.\n      // In those cases, `this.country` is `undefined` and should be derived\n      // from the number. Again, if country calling code is ambiguous, then\n      // `this.country` should be re-derived with each new digit.\n      //\n      if (!this.state.country || this.isCountryCallingCodeAmbiguous()) {\n        this.determineTheCountry();\n      }\n    } // Prepends `+CountryCode ` in case of an international phone number\n\n  }, {\n    key: \"getFullNumber\",\n    value: function getFullNumber(formattedNationalNumber) {\n      var _this2 = this;\n\n      if (this.isInternational()) {\n        var prefix = function prefix(text) {\n          return _this2.formatter.getInternationalPrefixBeforeCountryCallingCode(_this2.state, {\n            spacing: text ? true : false\n          }) + text;\n        };\n\n        var callingCode = this.state.callingCode;\n\n        if (!callingCode) {\n          return prefix(\"\".concat(this.state.getDigitsWithoutInternationalPrefix()));\n        }\n\n        if (!formattedNationalNumber) {\n          return prefix(callingCode);\n        }\n\n        return prefix(\"\".concat(callingCode, \" \").concat(formattedNationalNumber));\n      }\n\n      return formattedNationalNumber;\n    }\n  }, {\n    key: \"getNonFormattedNationalNumberWithPrefix\",\n    value: function getNonFormattedNationalNumberWithPrefix() {\n      var _this$state = this.state,\n          nationalSignificantNumber = _this$state.nationalSignificantNumber,\n          complexPrefixBeforeNationalSignificantNumber = _this$state.complexPrefixBeforeNationalSignificantNumber,\n          nationalPrefix = _this$state.nationalPrefix;\n      var number = nationalSignificantNumber;\n      var prefix = complexPrefixBeforeNationalSignificantNumber || nationalPrefix;\n\n      if (prefix) {\n        number = prefix + number;\n      }\n\n      return number;\n    }\n  }, {\n    key: \"getNonFormattedNumber\",\n    value: function getNonFormattedNumber() {\n      var nationalSignificantNumberMatchesInput = this.state.nationalSignificantNumberMatchesInput;\n      return this.getFullNumber(nationalSignificantNumberMatchesInput ? this.getNonFormattedNationalNumberWithPrefix() : this.state.getNationalDigits());\n    }\n  }, {\n    key: \"getNonFormattedTemplate\",\n    value: function getNonFormattedTemplate() {\n      var number = this.getNonFormattedNumber();\n\n      if (number) {\n        return number.replace(/[\\+\\d]/g, DIGIT_PLACEHOLDER);\n      }\n    }\n  }, {\n    key: \"isCountryCallingCodeAmbiguous\",\n    value: function isCountryCallingCodeAmbiguous() {\n      var callingCode = this.state.callingCode;\n      var countryCodes = this.metadata.getCountryCodesForCallingCode(callingCode);\n      return countryCodes && countryCodes.length > 1;\n    } // Determines the country of the phone number\n    // entered so far based on the country phone code\n    // and the national phone number.\n\n  }, {\n    key: \"determineTheCountry\",\n    value: function determineTheCountry() {\n      this.state.setCountry(getCountryByCallingCode(this.isInternational() ? this.state.callingCode : this.defaultCallingCode, {\n        nationalNumber: this.state.nationalSignificantNumber,\n        defaultCountry: this.defaultCountry,\n        metadata: this.metadata\n      }));\n    }\n    /**\r\n     * Returns a E.164 phone number value for the user's input.\r\n     *\r\n     * For example, for country `\"US\"` and input `\"(222) 333-4444\"`\r\n     * it will return `\"+12223334444\"`.\r\n     *\r\n     * For international phone number input, it will also auto-correct\r\n     * some minor errors such as using a national prefix when writing\r\n     * an international phone number. For example, if the user inputs\r\n     * `\"+44 0 7400 000000\"` then it will return an auto-corrected\r\n     * `\"+447400000000\"` phone number value.\r\n     *\r\n     * Will return `undefined` if no digits have been input,\r\n     * or when inputting a phone number in national format and no\r\n     * default country or default \"country calling code\" have been set.\r\n     *\r\n     * @return {string} [value]\r\n     */\n\n  }, {\n    key: \"getNumberValue\",\n    value: function getNumberValue() {\n      var _this$state2 = this.state,\n          digits = _this$state2.digits,\n          callingCode = _this$state2.callingCode,\n          country = _this$state2.country,\n          nationalSignificantNumber = _this$state2.nationalSignificantNumber; // Will return `undefined` if no digits have been input.\n\n      if (!digits) {\n        return;\n      }\n\n      if (this.isInternational()) {\n        if (callingCode) {\n          return '+' + callingCode + nationalSignificantNumber;\n        } else {\n          return '+' + digits;\n        }\n      } else {\n        if (country || callingCode) {\n          var callingCode_ = country ? this.metadata.countryCallingCode() : callingCode;\n          return '+' + callingCode_ + nationalSignificantNumber;\n        }\n      }\n    }\n    /**\r\n     * Returns an instance of `PhoneNumber` class.\r\n     * Will return `undefined` if no national (significant) number\r\n     * digits have been entered so far, or if no `defaultCountry` has been\r\n     * set and the user enters a phone number not in international format.\r\n     */\n\n  }, {\n    key: \"getNumber\",\n    value: function getNumber() {\n      var _this$state3 = this.state,\n          nationalSignificantNumber = _this$state3.nationalSignificantNumber,\n          carrierCode = _this$state3.carrierCode,\n          callingCode = _this$state3.callingCode; // `this._getCountry()` is basically same as `this.state.country`\n      // with the only change that it return `undefined` in case of a\n      // \"non-geographic\" numbering plan instead of `\"001\"` \"internal use\" value.\n\n      var country = this._getCountry();\n\n      if (!nationalSignificantNumber) {\n        return;\n      } // `state.country` and `state.callingCode` aren't required to be in sync.\n      // For example, `country` could be `\"AR\"` and `callingCode` could be `undefined`.\n      // So `country` and `callingCode` are totally independent.\n\n\n      if (!country && !callingCode) {\n        return;\n      } // By default, if `defaultCountry` parameter was passed when\n      // creating `AsYouType` instance, `state.country` is gonna be\n      // that `defaultCountry`, which doesn't entirely conform with\n      // `parsePhoneNumber()`'s behavior where it attempts to determine\n      // the country more precisely in cases when multiple countries\n      // could correspond to the same `countryCallingCode`.\n      // https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/103#note_1417192969\n      //\n      // Because `AsYouType.getNumber()` method is supposed to be a 1:1\n      // equivalent for `parsePhoneNumber(AsYouType.getNumberValue())`,\n      // then it should also behave accordingly in cases of `country` ambiguity.\n      // That's how users of this library would expect it to behave anyway.\n      //\n\n\n      if (country) {\n        if (country === this.defaultCountry) {\n          // `state.country` and `state.callingCode` aren't required to be in sync.\n          // For example, `state.country` could be `\"AR\"` and `state.callingCode` could be `undefined`.\n          // So `state.country` and `state.callingCode` are totally independent.\n          var metadata = new Metadata(this.metadata.metadata);\n          metadata.selectNumberingPlan(country);\n\n          var _callingCode = metadata.numberingPlan.callingCode();\n\n          var ambiguousCountries = this.metadata.getCountryCodesForCallingCode(_callingCode);\n\n          if (ambiguousCountries.length > 1) {\n            var exactCountry = getCountryByNationalNumber(nationalSignificantNumber, {\n              countries: ambiguousCountries,\n              defaultCountry: this.defaultCountry,\n              metadata: this.metadata.metadata\n            });\n\n            if (exactCountry) {\n              country = exactCountry;\n            }\n          }\n        }\n      }\n\n      var phoneNumber = new PhoneNumber(country || callingCode, nationalSignificantNumber, this.metadata.metadata);\n\n      if (carrierCode) {\n        phoneNumber.carrierCode = carrierCode;\n      } // Phone number extensions are not supported by \"As You Type\" formatter.\n\n\n      return phoneNumber;\n    }\n    /**\r\n     * Returns `true` if the phone number is \"possible\".\r\n     * Is just a shortcut for `PhoneNumber.isPossible()`.\r\n     * @return {boolean}\r\n     */\n\n  }, {\n    key: \"isPossible\",\n    value: function isPossible() {\n      var phoneNumber = this.getNumber();\n\n      if (!phoneNumber) {\n        return false;\n      }\n\n      return phoneNumber.isPossible();\n    }\n    /**\r\n     * Returns `true` if the phone number is \"valid\".\r\n     * Is just a shortcut for `PhoneNumber.isValid()`.\r\n     * @return {boolean}\r\n     */\n\n  }, {\n    key: \"isValid\",\n    value: function isValid() {\n      var phoneNumber = this.getNumber();\n\n      if (!phoneNumber) {\n        return false;\n      }\n\n      return phoneNumber.isValid();\n    }\n    /**\r\n     * @deprecated\r\n     * This method is used in `react-phone-number-input/source/input-control.js`\r\n     * in versions before `3.0.16`.\r\n     */\n\n  }, {\n    key: \"getNationalNumber\",\n    value: function getNationalNumber() {\n      return this.state.nationalSignificantNumber;\n    }\n    /**\r\n     * Returns the phone number characters entered by the user.\r\n     * @return {string}\r\n     */\n\n  }, {\n    key: \"getChars\",\n    value: function getChars() {\n      return (this.state.international ? '+' : '') + this.state.digits;\n    }\n    /**\r\n     * Returns the template for the formatted phone number.\r\n     * @return {string}\r\n     */\n\n  }, {\n    key: \"getTemplate\",\n    value: function getTemplate() {\n      return this.formatter.getTemplate(this.state) || this.getNonFormattedTemplate() || '';\n    }\n  }]);\n\n  return AsYouType;\n}();\n\nexport { AsYouType as default };\n//# sourceMappingURL=AsYouType.js.map","import { getCountryCallingCode } from 'libphonenumber-js/core';\nexport function getPrefixForFormattingValueAsPhoneNumber(_ref) {\n  var inputFormat = _ref.inputFormat,\n    country = _ref.country,\n    metadata = _ref.metadata;\n  return inputFormat === 'NATIONAL_PART_OF_INTERNATIONAL' ? \"+\".concat(getCountryCallingCode(country, metadata)) : '';\n}\nexport function removePrefixFromFormattedPhoneNumber(value, prefix) {\n  if (prefix) {\n    value = value.slice(prefix.length);\n    if (value[0] === ' ') {\n      value = value.slice(1);\n    }\n  }\n  return value;\n}\n//# sourceMappingURL=inputValuePrefix.js.map","import { parsePhoneNumberCharacter } from 'libphonenumber-js/core';\n\n/**\r\n * Parses next character while parsing phone number digits (including a `+`)\r\n * from text: discards everything except `+` and digits, and `+` is only allowed\r\n * at the start of a phone number.\r\n * For example, is used in `react-phone-number-input` where it uses\r\n * [`input-format`](https://gitlab.com/catamphetamine/input-format).\r\n * @param  {string} character - Yet another character from raw input string.\r\n * @param  {string?} prevParsedCharacters - Previous parsed characters.\r\n * @param  {object?} context - An optional object that could be used by this function to set arbitrary \"flags\". The object should be shared within the parsing of the whole string.\r\n * @return {string?} The parsed character.\r\n */\nexport default function parsePhoneNumberCharacter_(character, prevParsedCharacters, context) {\n  // `context` argument was added as a third argument of `parse()` function\n  // in `input-format` package on Dec 26th, 2023. So it could potentially be\n  // `undefined` here if a 3rd-party app somehow ends up with this newer version\n  // of `react-phone-number-input` and an older version of `input-format`.\n  // Dunno how, but just in case, it could be `undefined` here and it wouldn't break.\n  // Maybe it's not required to handle `undefined` case here.\n  //\n  // The addition of the `context` argument was to fix the slightly-weird behavior\n  // of parsing an input string when the user inputs something like `\"2+7\"\n  // https://github.com/catamphetamine/react-phone-number-input/issues/437\n  //\n  // If the parser encounters an unexpected `+` in a string being parsed\n  // then it simply discards that out-of-place `+` and any following characters.\n  //\n  if (context && context.ignoreRest) {\n    return;\n  }\n  var emitEvent = function emitEvent(eventName) {\n    if (context) {\n      switch (eventName) {\n        case 'end':\n          context.ignoreRest = true;\n          break;\n      }\n    }\n  };\n  return parsePhoneNumberCharacter(character, prevParsedCharacters, emitEvent);\n}\n//# sourceMappingURL=parsePhoneNumberCharacter.js.map","import { useCallback } from 'react';\n\n// Returns a custom `onKeyDown` handler that works around a Backspace keypress edge case:\n// * `<PhoneInputWithCountrySelect international countryCallingCodeEditable={false}/>`\n// * When placing the caret before the leading plus character and pressing Backspace,\n//   it duplicates the country calling code in the `<input/>`.\n// https://github.com/catamphetamine/react-phone-number-input/issues/442\nexport default function useInputKeyDownHandler(_ref) {\n  var onKeyDown = _ref.onKeyDown,\n    inputFormat = _ref.inputFormat;\n  return useCallback(function (event) {\n    // Usability:\n    // Don't allow the user to erase a leading \"+\" character when \"international\" input mode is forced.\n    // That indicates to the user that they can't possibly enter the phone number in a non-international format.\n    if (event.keyCode === BACKSPACE_KEY_CODE && inputFormat === 'INTERNATIONAL') {\n      // It checks `event.target` here for being an `<input/>` element\n      // because \"keydown\" events may bubble from arbitrary child elements\n      // so there's no guarantee that `event.target` represents an `<input/>` element.\n      // Also, since `inputComponent` is not neceesarily an `<input/>`, this check is required too.\n      if (event.target instanceof HTMLInputElement) {\n        if (getCaretPosition(event.target) === LEADING_PLUS.length) {\n          event.preventDefault();\n          return;\n        }\n      }\n    }\n    if (onKeyDown) {\n      onKeyDown(event);\n    }\n  }, [onKeyDown, inputFormat]);\n}\n\n// Gets the caret position in an `<input/>` field.\n// The caret position starts with `0` which means \"before the first character\".\nfunction getCaretPosition(element) {\n  return element.selectionStart;\n}\nvar BACKSPACE_KEY_CODE = 8;\nvar LEADING_PLUS = '+';\n//# sourceMappingURL=useInputKeyDownHandler.js.map","var _excluded = [\"onKeyDown\", \"country\", \"inputFormat\", \"metadata\", \"international\", \"withCountryCallingCode\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport Input from 'input-format/react';\nimport { AsYouType } from 'libphonenumber-js/core';\nimport { getPrefixForFormattingValueAsPhoneNumber, removePrefixFromFormattedPhoneNumber } from './helpers/inputValuePrefix.js';\nimport parsePhoneNumberCharacter from './helpers/parsePhoneNumberCharacter.js';\nimport useInputKeyDownHandler from './useInputKeyDownHandler.js';\nexport function createInput(defaultMetadata) {\n  /**\r\n   * `InputSmart` is a \"smarter\" implementation of a `Component`\r\n   * that can be passed to `<PhoneInput/>`. It parses and formats\r\n   * the user's and maintains the caret's position in the process.\r\n   * The caret positioning is maintained using `input-format` library.\r\n   * Relies on being run in a DOM environment for calling caret positioning functions.\r\n   */\n  function InputSmart(_ref, ref) {\n    var onKeyDown = _ref.onKeyDown,\n      country = _ref.country,\n      inputFormat = _ref.inputFormat,\n      _ref$metadata = _ref.metadata,\n      metadata = _ref$metadata === void 0 ? defaultMetadata : _ref$metadata,\n      international = _ref.international,\n      withCountryCallingCode = _ref.withCountryCallingCode,\n      rest = _objectWithoutProperties(_ref, _excluded);\n    var format = useCallback(function (value) {\n      // \"As you type\" formatter.\n      var formatter = new AsYouType(country, metadata);\n      var prefix = getPrefixForFormattingValueAsPhoneNumber({\n        inputFormat: inputFormat,\n        country: country,\n        metadata: metadata\n      });\n\n      // Format the number.\n      var text = formatter.input(prefix + value);\n      var template = formatter.getTemplate();\n      if (prefix) {\n        text = removePrefixFromFormattedPhoneNumber(text, prefix);\n        // `AsYouType.getTemplate()` can be `undefined`.\n        if (template) {\n          template = removePrefixFromFormattedPhoneNumber(template, prefix);\n        }\n      }\n      return {\n        text: text,\n        template: template\n      };\n    }, [country, metadata]);\n    var _onKeyDown = useInputKeyDownHandler({\n      onKeyDown: onKeyDown,\n      inputFormat: inputFormat\n    });\n    return /*#__PURE__*/React.createElement(Input, _extends({}, rest, {\n      ref: ref,\n      parse: parsePhoneNumberCharacter,\n      format: format,\n      onKeyDown: _onKeyDown\n    }));\n  }\n  InputSmart = /*#__PURE__*/React.forwardRef(InputSmart);\n  InputSmart.propTypes = {\n    /**\r\n     * The parsed phone number.\r\n     * \"Parsed\" not in a sense of \"E.164\"\r\n     * but rather in a sense of \"having only\r\n     * digits and possibly a leading plus character\".\r\n     * Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n     */\n    value: PropTypes.string.isRequired,\n    /**\r\n     * A function of `value: string`.\r\n     * Updates the `value` property.\r\n     */\n    onChange: PropTypes.func.isRequired,\n    /**\r\n     * A function of `event: Event`.\r\n     * Handles `keydown` events.\r\n     */\n    onKeyDown: PropTypes.func,\n    /**\r\n     * A two-letter country code for formatting `value`\r\n     * as a national phone number (e.g. `(800) 555 35 35`).\r\n     * E.g. \"US\", \"RU\", etc.\r\n     * If no `country` is passed then `value`\r\n     * is formatted as an international phone number.\r\n     * (e.g. `+7 800 555 35 35`)\r\n     * This property should've been called `defaultCountry`\r\n     * because it only applies when the user inputs a phone number in a national format\r\n     * and is completely ignored when the user inputs a phone number in an international format.\r\n     */\n    country: PropTypes.string,\n    /**\r\n     * The format that the input field value is being input/output in.\r\n     */\n    inputFormat: PropTypes.oneOf(['INTERNATIONAL', 'NATIONAL_PART_OF_INTERNATIONAL', 'NATIONAL', 'INTERNATIONAL_OR_NATIONAL']).isRequired,\n    /**\r\n     * `libphonenumber-js` metadata.\r\n     */\n    metadata: PropTypes.object\n  };\n  return InputSmart;\n}\nexport default createInput();\n//# sourceMappingURL=InputSmart.js.map","var _excluded = [\"value\", \"onChange\", \"onKeyDown\", \"country\", \"inputFormat\", \"metadata\", \"inputComponent\", \"international\", \"withCountryCallingCode\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { parseIncompletePhoneNumber, formatIncompletePhoneNumber } from 'libphonenumber-js/core';\nimport { getPrefixForFormattingValueAsPhoneNumber, removePrefixFromFormattedPhoneNumber } from './helpers/inputValuePrefix.js';\nimport useInputKeyDownHandler from './useInputKeyDownHandler.js';\nexport function createInput(defaultMetadata) {\n  /**\r\n   * `InputBasic` is the most basic implementation of a `Component`\r\n   * that can be passed to `<PhoneInput/>`. It parses and formats\r\n   * the user's input but doesn't control the caret in the process:\r\n   * when erasing or inserting digits in the middle of a phone number\r\n   * the caret usually jumps to the end (this is the expected behavior).\r\n   * Why does `InputBasic` exist when there's `InputSmart`?\r\n   * One reason is working around the [Samsung Galaxy smart caret positioning bug]\r\n   * (https://github.com/catamphetamine/react-phone-number-input/issues/75).\r\n   * Another reason is that, unlike `InputSmart`, it doesn't require DOM environment.\r\n   */\n  function InputBasic(_ref, ref) {\n    var value = _ref.value,\n      onChange = _ref.onChange,\n      onKeyDown = _ref.onKeyDown,\n      country = _ref.country,\n      inputFormat = _ref.inputFormat,\n      _ref$metadata = _ref.metadata,\n      metadata = _ref$metadata === void 0 ? defaultMetadata : _ref$metadata,\n      _ref$inputComponent = _ref.inputComponent,\n      Input = _ref$inputComponent === void 0 ? 'input' : _ref$inputComponent,\n      international = _ref.international,\n      withCountryCallingCode = _ref.withCountryCallingCode,\n      rest = _objectWithoutProperties(_ref, _excluded);\n    var prefix = getPrefixForFormattingValueAsPhoneNumber({\n      inputFormat: inputFormat,\n      country: country,\n      metadata: metadata\n    });\n    var _onChange = useCallback(function (event) {\n      var newValue = parseIncompletePhoneNumber(event.target.value);\n      // By default, if a value is something like `\"(123)\"`\n      // then Backspace would only erase the rightmost brace\n      // becoming something like `\"(123\"`\n      // which would give the same `\"123\"` value\n      // which would then be formatted back to `\"(123)\"`\n      // and so a user wouldn't be able to erase the phone number.\n      //\n      // This issue is worked around with this simple hack:\n      // when \"old\" and \"new\" parsed values are the same,\n      // it checks if the \"new\" formatted value could be obtained\n      // from the \"old\" formatted value by erasing some (or no) characters at the right side.\n      // If it could then it's likely that the user has hit a Backspace key\n      // and what they really intended was to erase a rightmost digit rather than\n      // a rightmost punctuation character.\n      //\n      if (newValue === value) {\n        var newValueFormatted = format(prefix, newValue, country, metadata);\n        if (newValueFormatted.indexOf(event.target.value) === 0) {\n          // Trim the last digit (or plus sign).\n          newValue = newValue.slice(0, -1);\n        }\n      }\n      onChange(newValue);\n    }, [prefix, value, onChange, country, metadata]);\n    var _onKeyDown = useInputKeyDownHandler({\n      onKeyDown: onKeyDown,\n      inputFormat: inputFormat\n    });\n    return /*#__PURE__*/React.createElement(Input, _extends({}, rest, {\n      ref: ref,\n      value: format(prefix, value, country, metadata),\n      onChange: _onChange,\n      onKeyDown: _onKeyDown\n    }));\n  }\n  InputBasic = /*#__PURE__*/React.forwardRef(InputBasic);\n  InputBasic.propTypes = {\n    /**\r\n     * The parsed phone number.\r\n     * \"Parsed\" not in a sense of \"E.164\"\r\n     * but rather in a sense of \"having only\r\n     * digits and possibly a leading plus character\".\r\n     * Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n     */\n    value: PropTypes.string.isRequired,\n    /**\r\n     * A function of `value: string`.\r\n     * Updates the `value` property.\r\n     */\n    onChange: PropTypes.func.isRequired,\n    /**\r\n     * A function of `event: Event`.\r\n     * Handles `keydown` events.\r\n     */\n    onKeyDown: PropTypes.func,\n    /**\r\n     * A two-letter country code for formatting `value`\r\n     * as a national phone number (e.g. `(800) 555 35 35`).\r\n     * E.g. \"US\", \"RU\", etc.\r\n     * If no `country` is passed then `value`\r\n     * is formatted as an international phone number.\r\n     * (e.g. `+7 800 555 35 35`)\r\n     * This property should've been called `defaultCountry`\r\n     * because it only applies when the user inputs a phone number in a national format\r\n     * and is completely ignored when the user inputs a phone number in an international format.\r\n     */\n    country: PropTypes.string,\n    /**\r\n     * The format that the input field value is being input/output in.\r\n     */\n    inputFormat: PropTypes.oneOf(['INTERNATIONAL', 'NATIONAL_PART_OF_INTERNATIONAL', 'NATIONAL', 'INTERNATIONAL_OR_NATIONAL']).isRequired,\n    /**\r\n     * `libphonenumber-js` metadata.\r\n     */\n    metadata: PropTypes.object,\n    /**\r\n     * The `<input/>` component.\r\n     */\n    inputComponent: PropTypes.elementType\n  };\n  return InputBasic;\n}\nexport default createInput();\nfunction format(prefix, value, country, metadata) {\n  return removePrefixFromFormattedPhoneNumber(formatIncompletePhoneNumber(prefix + value, country, metadata), prefix);\n}\n//# sourceMappingURL=InputBasic.js.map","import AsYouType from './AsYouType.js';\n/**\r\n * Formats a (possibly incomplete) phone number.\r\n * The phone number can be either in E.164 format\r\n * or in a form of national number digits.\r\n * @param {string} value - A possibly incomplete phone number. Either in E.164 format or in a form of national number digits.\r\n * @param {string|object} [optionsOrDefaultCountry] - A two-letter (\"ISO 3166-1 alpha-2\") country code, or an object of shape `{ defaultCountry?: string, defaultCallingCode?: string }`.\r\n * @return {string} Formatted (possibly incomplete) phone number.\r\n */\n\nexport default function formatIncompletePhoneNumber(value, optionsOrDefaultCountry, metadata) {\n  if (!metadata) {\n    metadata = optionsOrDefaultCountry;\n    optionsOrDefaultCountry = undefined;\n  }\n\n  return new AsYouType(optionsOrDefaultCountry, metadata).input(value);\n}\n//# sourceMappingURL=formatIncompletePhoneNumber.js.map","/**\r\n * Creates Unicode flag from a two-letter ISO country code.\r\n * https://stackoverflow.com/questions/24050671/how-to-put-japan-flag-character-in-a-string\r\n * @param  {string} country — A two-letter ISO country code (case-insensitive).\r\n * @return {string}\r\n */\nexport default function getCountryFlag(country) {\n  return getRegionalIndicatorSymbol(country[0]) + getRegionalIndicatorSymbol(country[1]);\n}\n/**\r\n * Converts a letter to a Regional Indicator Symbol.\r\n * @param  {string} letter\r\n * @return {string}\r\n */\n\nfunction getRegionalIndicatorSymbol(letter) {\n  return String.fromCodePoint(0x1F1E6 - 65 + letter.toUpperCase().charCodeAt(0));\n}\n//# sourceMappingURL=unicode.js.map","var _excluded = [\"value\", \"onChange\", \"options\", \"disabled\", \"readOnly\"],\n  _excluded2 = [\"value\", \"options\", \"className\", \"iconComponent\", \"getIconAspectRatio\", \"arrowComponent\", \"unicodeFlags\"];\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport getUnicodeFlagIcon from 'country-flag-icons/unicode';\nexport default function CountrySelect(_ref) {\n  var value = _ref.value,\n    onChange = _ref.onChange,\n    options = _ref.options,\n    disabled = _ref.disabled,\n    readOnly = _ref.readOnly,\n    rest = _objectWithoutProperties(_ref, _excluded);\n  var onChange_ = useCallback(function (event) {\n    var value = event.target.value;\n    onChange(value === 'ZZ' ? undefined : value);\n  }, [onChange]);\n  var selectedOption = useMemo(function () {\n    return getSelectedOption(options, value);\n  }, [options, value]);\n\n  // \"ZZ\" means \"International\".\n  // (HTML requires each `<option/>` have some string `value`).\n  return /*#__PURE__*/React.createElement(\"select\", _extends({}, rest, {\n    disabled: disabled || readOnly,\n    readOnly: readOnly,\n    value: value || 'ZZ',\n    onChange: onChange_\n  }), options.map(function (_ref2) {\n    var value = _ref2.value,\n      label = _ref2.label,\n      divider = _ref2.divider;\n    return /*#__PURE__*/React.createElement(\"option\", {\n      key: divider ? '|' : value || 'ZZ',\n      value: divider ? '|' : value || 'ZZ',\n      disabled: divider ? true : false,\n      style: divider ? DIVIDER_STYLE : undefined\n    }, label);\n  }));\n}\nCountrySelect.propTypes = {\n  /**\r\n   * A two-letter country code.\r\n   * Example: \"US\", \"RU\", etc.\r\n   */\n  value: PropTypes.string,\n  /**\r\n   * A function of `value: string`.\r\n   * Updates the `value` property.\r\n   */\n  onChange: PropTypes.func.isRequired,\n  // `<select/>` options.\n  options: PropTypes.arrayOf(PropTypes.shape({\n    value: PropTypes.string,\n    label: PropTypes.string,\n    divider: PropTypes.bool\n  })).isRequired,\n  // `readonly` attribute doesn't work on a `<select/>`.\n  // https://github.com/catamphetamine/react-phone-number-input/issues/419#issuecomment-1764384480\n  // https://www.delftstack.com/howto/html/html-select-readonly/\n  // To work around that, if `readOnly: true` property is passed\n  // to this component, it behaves analogous to `disabled: true`.\n  disabled: PropTypes.bool,\n  readOnly: PropTypes.bool\n};\nvar DIVIDER_STYLE = {\n  fontSize: '1px',\n  backgroundColor: 'currentColor',\n  color: 'inherit'\n};\nexport function CountrySelectWithIcon(_ref3) {\n  var value = _ref3.value,\n    options = _ref3.options,\n    className = _ref3.className,\n    Icon = _ref3.iconComponent,\n    getIconAspectRatio = _ref3.getIconAspectRatio,\n    _ref3$arrowComponent = _ref3.arrowComponent,\n    Arrow = _ref3$arrowComponent === void 0 ? DefaultArrowComponent : _ref3$arrowComponent,\n    unicodeFlags = _ref3.unicodeFlags,\n    rest = _objectWithoutProperties(_ref3, _excluded2);\n  var selectedOption = useMemo(function () {\n    return getSelectedOption(options, value);\n  }, [options, value]);\n  return /*#__PURE__*/React.createElement(\"div\", {\n    className: \"PhoneInputCountry\"\n  }, /*#__PURE__*/React.createElement(CountrySelect, _extends({}, rest, {\n    value: value,\n    options: options,\n    className: classNames('PhoneInputCountrySelect', className)\n  })), selectedOption && (unicodeFlags && value ? /*#__PURE__*/React.createElement(\"div\", {\n    className: \"PhoneInputCountryIconUnicode\"\n  }, getUnicodeFlagIcon(value)) : /*#__PURE__*/React.createElement(Icon, {\n    \"aria-hidden\": true,\n    country: value,\n    label: selectedOption.label,\n    aspectRatio: unicodeFlags ? 1 : undefined\n  })), /*#__PURE__*/React.createElement(Arrow, null));\n}\nCountrySelectWithIcon.propTypes = {\n  // Country flag component.\n  iconComponent: PropTypes.elementType,\n  // Select arrow component.\n  arrowComponent: PropTypes.elementType,\n  // Set to `true` to render Unicode flag icons instead of SVG images.\n  unicodeFlags: PropTypes.bool\n};\nfunction DefaultArrowComponent() {\n  return /*#__PURE__*/React.createElement(\"div\", {\n    className: \"PhoneInputCountrySelectArrow\"\n  });\n}\nfunction getSelectedOption(options, value) {\n  for (var _iterator = _createForOfIteratorHelperLoose(options), _step; !(_step = _iterator()).done;) {\n    var option = _step.value;\n    if (!option.divider) {\n      if (isSameOptionValue(option.value, value)) {\n        return option;\n      }\n    }\n  }\n}\nfunction isSameOptionValue(value1, value2) {\n  // `undefined` is identical to `null`: both mean \"no country selected\".\n  if (value1 === undefined || value1 === null) {\n    return value2 === undefined || value2 === null;\n  }\n  return value1 === value2;\n}\n//# sourceMappingURL=CountrySelect.js.map","var _excluded = [\"country\", \"countryName\", \"flags\", \"flagUrl\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\n// Default country flag icon.\n// `<img/>` is wrapped in a `<div/>` to prevent SVGs from exploding in size in IE 11.\n// https://github.com/catamphetamine/react-phone-number-input/issues/111\nexport default function FlagComponent(_ref) {\n  var country = _ref.country,\n    countryName = _ref.countryName,\n    flags = _ref.flags,\n    flagUrl = _ref.flagUrl,\n    rest = _objectWithoutProperties(_ref, _excluded);\n  if (flags && flags[country]) {\n    return flags[country]({\n      title: countryName\n    });\n  }\n  return /*#__PURE__*/React.createElement(\"img\", _extends({}, rest, {\n    alt: countryName,\n    role: countryName ? undefined : \"presentation\",\n    src: flagUrl.replace('{XX}', country).replace('{xx}', country.toLowerCase())\n  }));\n}\nFlagComponent.propTypes = {\n  // The country to be selected by default.\n  // Two-letter country code (\"ISO 3166-1 alpha-2\").\n  country: PropTypes.string.isRequired,\n  // Will be HTML `title` attribute of the `<img/>`.\n  countryName: PropTypes.string.isRequired,\n  // Country flag icon components.\n  // By default flag icons are inserted as `<img/>`s\n  // with their `src` pointed to `country-flag-icons` gitlab pages website.\n  // There might be cases (e.g. an offline application)\n  // where having a large (3 megabyte) `<svg/>` flags\n  // bundle is more appropriate.\n  // `import flags from 'react-phone-number-input/flags'`.\n  flags: PropTypes.objectOf(PropTypes.elementType),\n  // A URL for a country flag icon.\n  // By default it points to `country-flag-icons` gitlab pages website.\n  flagUrl: PropTypes.string.isRequired\n};\n//# sourceMappingURL=Flag.js.map","var _excluded = [\"aspectRatio\"],\n  _excluded2 = [\"title\"],\n  _excluded3 = [\"title\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nexport default function InternationalIcon(_ref) {\n  var aspectRatio = _ref.aspectRatio,\n    rest = _objectWithoutProperties(_ref, _excluded);\n  if (aspectRatio === 1) {\n    return /*#__PURE__*/React.createElement(InternationalIcon1x1, rest);\n  } else {\n    return /*#__PURE__*/React.createElement(InternationalIcon3x2, rest);\n  }\n}\nInternationalIcon.propTypes = {\n  title: PropTypes.string.isRequired,\n  aspectRatio: PropTypes.number\n};\n\n// 3x2.\n// Using `<title/>` in `<svg/>`s:\n// https://developer.mozilla.org/en-US/docs/Web/SVG/Element/title\nfunction InternationalIcon3x2(_ref2) {\n  var title = _ref2.title,\n    rest = _objectWithoutProperties(_ref2, _excluded2);\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({}, rest, {\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 75 50\"\n  }), /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"g\", {\n    className: \"PhoneInputInternationalIconGlobe\",\n    stroke: \"currentColor\",\n    fill: \"none\",\n    strokeWidth: \"2\",\n    strokeMiterlimit: \"10\"\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    strokeLinecap: \"round\",\n    d: \"M47.2,36.1C48.1,36,49,36,50,36c7.4,0,14,1.7,18.5,4.3\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M68.6,9.6C64.2,12.3,57.5,14,50,14c-7.4,0-14-1.7-18.5-4.3\"\n  }), /*#__PURE__*/React.createElement(\"line\", {\n    x1: \"26\",\n    y1: \"25\",\n    x2: \"74\",\n    y2: \"25\"\n  }), /*#__PURE__*/React.createElement(\"line\", {\n    x1: \"50\",\n    y1: \"1\",\n    x2: \"50\",\n    y2: \"49\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    strokeLinecap: \"round\",\n    d: \"M46.3,48.7c1.2,0.2,2.5,0.3,3.7,0.3c13.3,0,24-10.7,24-24S63.3,1,50,1S26,11.7,26,25c0,2,0.3,3.9,0.7,5.8\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    strokeLinecap: \"round\",\n    d: \"M46.8,48.2c1,0.6,2.1,0.8,3.2,0.8c6.6,0,12-10.7,12-24S56.6,1,50,1S38,11.7,38,25c0,1.4,0.1,2.7,0.2,4c0,0.1,0,0.2,0,0.2\"\n  })), /*#__PURE__*/React.createElement(\"path\", {\n    className: \"PhoneInputInternationalIconPhone\",\n    stroke: \"none\",\n    fill: \"currentColor\",\n    d: \"M12.4,17.9c2.9-2.9,5.4-4.8,0.3-11.2S4.1,5.2,1.3,8.1C-2,11.4,1.1,23.5,13.1,35.6s24.3,15.2,27.5,11.9c2.8-2.8,7.8-6.3,1.4-11.5s-8.3-2.6-11.2,0.3c-2,2-7.2-2.2-11.7-6.7S10.4,19.9,12.4,17.9z\"\n  }));\n}\nInternationalIcon3x2.propTypes = {\n  title: PropTypes.string.isRequired\n};\n\n// 1x1.\n// Using `<title/>` in `<svg/>`s:\n// https://developer.mozilla.org/en-US/docs/Web/SVG/Element/title\nfunction InternationalIcon1x1(_ref3) {\n  var title = _ref3.title,\n    rest = _objectWithoutProperties(_ref3, _excluded3);\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({}, rest, {\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 50 50\"\n  }), /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"g\", {\n    className: \"PhoneInputInternationalIconGlobe\",\n    stroke: \"currentColor\",\n    fill: \"none\",\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\"\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M8.45,13A21.44,21.44,0,1,1,37.08,41.56\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M19.36,35.47a36.9,36.9,0,0,1-2.28-13.24C17.08,10.39,21.88.85,27.8.85s10.72,9.54,10.72,21.38c0,6.48-1.44,12.28-3.71,16.21\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M17.41,33.4A39,39,0,0,1,27.8,32.06c6.62,0,12.55,1.5,16.48,3.86\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M44.29,8.53c-3.93,2.37-9.86,3.88-16.49,3.88S15.25,10.9,11.31,8.54\"\n  }), /*#__PURE__*/React.createElement(\"line\", {\n    x1: \"27.8\",\n    y1: \"0.85\",\n    x2: \"27.8\",\n    y2: \"34.61\"\n  }), /*#__PURE__*/React.createElement(\"line\", {\n    x1: \"15.2\",\n    y1: \"22.23\",\n    x2: \"49.15\",\n    y2: \"22.23\"\n  })), /*#__PURE__*/React.createElement(\"path\", {\n    className: \"PhoneInputInternationalIconPhone\",\n    stroke: \"transparent\",\n    fill: \"currentColor\",\n    d: \"M9.42,26.64c2.22-2.22,4.15-3.59.22-8.49S3.08,17,.93,19.17c-2.49,2.48-.13,11.74,9,20.89s18.41,11.5,20.89,9c2.15-2.15,5.91-4.77,1-8.71s-6.27-2-8.49.22c-1.55,1.55-5.48-1.69-8.86-5.08S7.87,28.19,9.42,26.64Z\"\n  }));\n}\nInternationalIcon1x1.propTypes = {\n  title: PropTypes.string.isRequired\n};\n//# sourceMappingURL=InternationalIcon.js.map","// Tells if `value: string` is an `E.164` phone number.\n//\n// Returns a boolean.\n//\n// It doesn't validate that the minimum national (significant) number length\n// is at least 2 characters.\n//\nexport default function isE164Number(value) {\n  if (value.length < 2) {\n    return false;\n  }\n  if (value[0] !== '+') {\n    return false;\n  }\n  var i = 1;\n  while (i < value.length) {\n    var character = value.charCodeAt(i);\n    if (character >= 48 && character <= 57) {\n      // Is a digit.\n    } else {\n      return false;\n    }\n    i++;\n  }\n  return true;\n}\nexport function validateE164Number(value) {\n  if (!isE164Number(value)) {\n    console.error('[react-phone-number-input] Expected the initial `value` to be a E.164 phone number. Got', value);\n  }\n}\n//# sourceMappingURL=isE164Number.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\n// Ignores weird istanbul error: \"else path not taken\".\nimport { isSupportedCountry } from 'libphonenumber-js/core';\nexport { getCountries } from 'libphonenumber-js/core';\n\n/**\r\n * Sorts country `<select/>` options.\r\n * Can move some country `<select/>` options\r\n * to the top of the list, for example.\r\n * @param  {object[]} countryOptions — Country `<select/>` options.\r\n * @param  {string[]} [countryOptionsOrder] — Country `<select/>` options order. Example: `[\"US\", \"CA\", \"AU\", \"|\", \"...\"]`.\r\n * @return {object[]}\r\n */\nexport function sortCountryOptions(options, order) {\n  if (!order) {\n    return options;\n  }\n  var optionsOnTop = [];\n  var optionsOnBottom = [];\n  var appendTo = optionsOnTop;\n  var _loop = function _loop() {\n    var element = _step.value;\n    if (element === '|') {\n      appendTo.push({\n        divider: true\n      });\n    } else if (element === '...' || element === '…') {\n      appendTo = optionsOnBottom;\n    } else {\n      var countryCode;\n      if (element === '🌐') {\n        countryCode = undefined;\n      } else {\n        countryCode = element;\n      }\n      // Find the position of the option.\n      var index = options.indexOf(options.filter(function (option) {\n        return option.value === countryCode;\n      })[0]);\n      // Get the option.\n      var option = options[index];\n      // Remove the option from its default position.\n      options.splice(index, 1);\n      // Add the option on top.\n      appendTo.push(option);\n    }\n  };\n  for (var _iterator = _createForOfIteratorHelperLoose(order), _step; !(_step = _iterator()).done;) {\n    _loop();\n  }\n  return optionsOnTop.concat(options).concat(optionsOnBottom);\n}\nexport function getSupportedCountryOptions(countryOptions, metadata) {\n  if (countryOptions) {\n    countryOptions = countryOptions.filter(function (option) {\n      switch (option) {\n        case '🌐':\n        case '|':\n        case '...':\n        case '…':\n          return true;\n        default:\n          return isCountrySupportedWithError(option, metadata);\n      }\n    });\n    if (countryOptions.length > 0) {\n      return countryOptions;\n    }\n  }\n}\nexport function isCountrySupportedWithError(country, metadata) {\n  if (isSupportedCountry(country, metadata)) {\n    return true;\n  } else {\n    console.error(\"Country not found: \".concat(country));\n    return false;\n  }\n}\nexport function getSupportedCountries(countries, metadata) {\n  if (countries) {\n    countries = countries.filter(function (country) {\n      return isCountrySupportedWithError(country, metadata);\n    });\n    if (countries.length === 0) {\n      countries = undefined;\n    }\n  }\n  return countries;\n}\n//# sourceMappingURL=countries.js.map","var _excluded = [\"country\", \"label\", \"aspectRatio\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport DefaultInternationalIcon from './InternationalIcon.js';\nimport Flag from './Flag.js';\nexport function createCountryIconComponent(_ref) {\n  var flags = _ref.flags,\n    flagUrl = _ref.flagUrl,\n    FlagComponent = _ref.flagComponent,\n    InternationalIcon = _ref.internationalIcon;\n  function CountryIcon(_ref2) {\n    var country = _ref2.country,\n      label = _ref2.label,\n      aspectRatio = _ref2.aspectRatio,\n      rest = _objectWithoutProperties(_ref2, _excluded);\n    // `aspectRatio` is currently a hack for the default \"International\" icon\n    // to render it as a square when Unicode flag icons are used.\n    // So `aspectRatio` property is only used with the default \"International\" icon.\n    var _aspectRatio = InternationalIcon === DefaultInternationalIcon ? aspectRatio : undefined;\n    return /*#__PURE__*/React.createElement(\"div\", _extends({}, rest, {\n      className: classNames('PhoneInputCountryIcon', {\n        'PhoneInputCountryIcon--square': _aspectRatio === 1,\n        'PhoneInputCountryIcon--border': country\n      })\n    }), country ? /*#__PURE__*/React.createElement(FlagComponent, {\n      country: country,\n      countryName: label,\n      flags: flags,\n      flagUrl: flagUrl,\n      className: \"PhoneInputCountryIconImg\"\n    }) : /*#__PURE__*/React.createElement(InternationalIcon, {\n      title: label,\n      aspectRatio: _aspectRatio,\n      className: \"PhoneInputCountryIconImg\"\n    }));\n  }\n  CountryIcon.propTypes = {\n    country: PropTypes.string,\n    label: PropTypes.string.isRequired,\n    aspectRatio: PropTypes.number\n  };\n  return CountryIcon;\n}\nexport default createCountryIconComponent({\n  // Must be equal to `defaultProps.flagUrl` in `./PhoneInputWithCountry.js`.\n  flagUrl: 'https://purecatamphetamine.github.io/country-flag-icons/3x2/{XX}.svg',\n  flagComponent: Flag,\n  internationalIcon: DefaultInternationalIcon\n});\n//# sourceMappingURL=CountryIcon.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { useRef, useCallback } from 'react';\n\n/**\r\n * This hook creates an internal copy of a `ref`\r\n * and returns a new `ref`-alike setter function\r\n * that updates both `ref` and the internal copy of it.\r\n * That `ref`-alike setter function could then be passed\r\n * to child elements instead of the original `ref`.\r\n *\r\n * The internal copy of the `ref` can then be used to\r\n * call instance methods like `.focus()`, etc.\r\n *\r\n * One may ask: why create a copy of `ref` for \"internal\" use\r\n * when the code could use the original `ref` for that.\r\n * The answer is: the code would have to dance around the original `ref` anyway\r\n * to figure out whether it exists and to find out the internal implementation of it\r\n * in order to read its value correctly. This hook encapsulates all that \"boilerplate\" code.\r\n * The returned copy of the `ref` is guaranteed to exist and functions as a proper ref \"object\".\r\n * The returned `ref`-alike setter function must be used instead of the original `ref`\r\n * when passing it to child elements.\r\n *\r\n * @param  {(object|function)} [externalRef] — The original `ref` that may have any internal implementation and might not even exist.\r\n * @return {any[]} Returns an array of two elements: a copy of the `ref` for \"internal\" use and a `ref`-alike setter function that should be used in-place of the original `ref` when passing it to child elements.\r\n */\nexport default function useExternalRef(externalRef) {\n  // Create a copy of the original `ref` (which might not exist).\n  // Both refs will point to the same value.\n  var refCopy = useRef();\n\n  // Updates both `ref`s with the same `value`.\n  var refSetter = useCallback(function (value) {\n    setRefsValue([externalRef, refCopy], value);\n  }, [externalRef, refCopy]);\n  return [refCopy, refSetter];\n}\n\n// Sets the same `value` of all `ref`s.\n// Some of the `ref`s may not exist in which case they'll be skipped.\nexport function setRefsValue(refs, value) {\n  for (var _iterator = _createForOfIteratorHelperLoose(refs), _step; !(_step = _iterator()).done;) {\n    var ref = _step.value;\n    if (ref) {\n      setRefValue(ref, value);\n    }\n  }\n}\n\n// Sets the value of a `ref`.\n// Before React Hooks were introduced, `ref`s used to be functions.\n// After React Hooks were introduces, `ref`s became objects with `.current` property.\n// This function sets a `ref`'s value regardless of its internal implementation,\n// so it supports both types of `ref`s.\nfunction setRefValue(ref, value) {\n  if (typeof ref === 'function') {\n    ref(value);\n  } else {\n    ref.current = value;\n  }\n}\n//# sourceMappingURL=useExternalRef.js.map","import { getCountryCallingCode, Metadata } from 'libphonenumber-js/core';\nvar ONLY_DIGITS_REGEXP = /^\\d+$/;\nexport default function getInternationalPhoneNumberPrefix(country, metadata) {\n  // Standard international phone number prefix: \"+\" and \"country calling code\".\n  var prefix = '+' + getCountryCallingCode(country, metadata);\n\n  // \"Leading digits\" can't be used to rule out any countries.\n  // So the \"pre-fill with leading digits on country selection\" feature had to be reverted.\n  // https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/10#note_1231042367\n  // // Get \"leading digits\" for a phone number of the country.\n  // // If there're \"leading digits\" then they can be part of the prefix too.\n  // // https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/10\n  // metadata = new Metadata(metadata)\n  // metadata.selectNumberingPlan(country)\n  // // \"Leading digits\" patterns are only defined for about 20% of all countries.\n  // // By definition, matching \"leading digits\" is a sufficient but not a necessary\n  // // condition for a phone number to belong to a country.\n  // // The point of \"leading digits\" check is that it's the fastest one to get a match.\n  // // https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md#leading_digits\n  // const leadingDigits = metadata.numberingPlan.leadingDigits()\n  // if (leadingDigits && ONLY_DIGITS_REGEXP.test(leadingDigits)) {\n  // \tprefix += leadingDigits\n  // }\n\n  return prefix;\n}\n//# sourceMappingURL=getInternationalPhoneNumberPrefix.js.map","import parsePhoneNumber_, { getCountryCallingCode, AsYouType, Metadata } from 'libphonenumber-js/core';\nimport getInternationalPhoneNumberPrefix from './getInternationalPhoneNumberPrefix.js';\n\n/**\r\n * Decides which country should be pre-selected\r\n * when the phone number input component is first mounted.\r\n * @param  {object?} phoneNumber - An instance of `PhoneNumber` class.\r\n * @param  {string?} country - Pre-defined country (two-letter code).\r\n * @param  {string[]?} countries - A list of countries available.\r\n * @param  {object} metadata - `libphonenumber-js` metadata\r\n * @return {string?}\r\n */\nexport function getPreSelectedCountry(_ref) {\n  var value = _ref.value,\n    phoneNumber = _ref.phoneNumber,\n    defaultCountry = _ref.defaultCountry,\n    getAnyCountry = _ref.getAnyCountry,\n    countries = _ref.countries,\n    required = _ref.required,\n    metadata = _ref.metadata;\n  var country;\n\n  // If can get country from E.164 phone number\n  // then it overrides the `country` passed (or not passed).\n  if (phoneNumber && phoneNumber.country) {\n    // `country` will be left `undefined` in case of non-detection.\n    country = phoneNumber.country;\n  } else if (defaultCountry) {\n    if (!value || couldNumberBelongToCountry(value, defaultCountry, metadata)) {\n      country = defaultCountry;\n    }\n  }\n\n  // Only pre-select a country if it's in the available `countries` list.\n  if (countries && countries.indexOf(country) < 0) {\n    country = undefined;\n  }\n\n  // If there will be no \"International\" option\n  // then some `country` must be selected.\n  // It will still be the wrong country though.\n  // But still country `<select/>` can't be left in a broken state.\n  if (!country && required && countries && countries.length > 0) {\n    country = getAnyCountry();\n    // noCountryMatchesTheNumber = true\n  }\n  return country;\n}\n\n/**\r\n * Generates a sorted list of country `<select/>` options.\r\n * @param  {string[]} countries - A list of two-letter (\"ISO 3166-1 alpha-2\") country codes.\r\n * @param  {object} labels - Custom country labels. E.g. `{ RU: 'Россия', US: 'США', ... }`.\r\n * @param  {boolean} addInternationalOption - Whether should include \"International\" option at the top of the list.\r\n * @return {object[]} A list of objects having shape `{ value : string, label : string }`.\r\n */\nexport function getCountrySelectOptions(_ref2) {\n  var countries = _ref2.countries,\n    countryNames = _ref2.countryNames,\n    addInternationalOption = _ref2.addInternationalOption,\n    compareStringsLocales = _ref2.compareStringsLocales,\n    _compareStrings = _ref2.compareStrings;\n  // Default country name comparator uses `String.localeCompare()`.\n  if (!_compareStrings) {\n    _compareStrings = compareStrings;\n  }\n\n  // Generates a `<Select/>` option for each country.\n  var countrySelectOptions = countries.map(function (country) {\n    return {\n      value: country,\n      // All `locale` country names included in this library\n      // include all countries (this is checked at build time).\n      // The only case when a country name might be missing\n      // is when a developer supplies their own `labels` property.\n      // To guard against such cases, a missing country name\n      // is substituted by country code.\n      label: countryNames[country] || country\n    };\n  });\n\n  // Sort the list of countries alphabetically.\n  countrySelectOptions.sort(function (a, b) {\n    return _compareStrings(a.label, b.label, compareStringsLocales);\n  });\n\n  // Add the \"International\" option to the country list (if suitable)\n  if (addInternationalOption) {\n    countrySelectOptions.unshift({\n      label: countryNames.ZZ\n    });\n  }\n  return countrySelectOptions;\n}\n\n/**\r\n * Parses a E.164 phone number to an instance of `PhoneNumber` class.\r\n * @param {string?} value = E.164 phone number.\r\n * @param  {object} metadata - `libphonenumber-js` metadata\r\n * @return {object} Object having shape `{ country: string?, countryCallingCode: string, number: string }`. `PhoneNumber`: https://gitlab.com/catamphetamine/libphonenumber-js#phonenumber.\r\n * @example\r\n * parsePhoneNumber('+78005553535')\r\n */\nexport function parsePhoneNumber(value, metadata) {\n  return parsePhoneNumber_(value || '', metadata);\n}\n\n/**\r\n * Generates national number digits for a parsed phone.\r\n * May prepend national prefix.\r\n * The phone number must be a complete and valid phone number.\r\n * @param  {object} phoneNumber - An instance of `PhoneNumber` class.\r\n * @param  {object} metadata - `libphonenumber-js` metadata\r\n * @return {string}\r\n * @example\r\n * getNationalNumberDigits({ country: 'RU', phone: '8005553535' })\r\n * // returns '88005553535'\r\n */\nexport function generateNationalNumberDigits(phoneNumber) {\n  return phoneNumber.formatNational().replace(/\\D/g, '');\n}\n\n/**\r\n * Migrates parsed `<input/>` `value` for the newly selected `country`.\r\n * @param {string?} phoneDigits - Phone number digits (and `+`) parsed from phone number `<input/>` (it's not the same as the `value` property).\r\n * @param {string?} prevCountry - Previously selected country.\r\n * @param {string?} newCountry - Newly selected country. Can't be same as previously selected country.\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @param {boolean} useNationalFormat - whether should attempt to convert from international to national number for the new country.\r\n * @return {string?}\r\n */\nexport function getPhoneDigitsForNewCountry(phoneDigits, _ref3) {\n  var prevCountry = _ref3.prevCountry,\n    newCountry = _ref3.newCountry,\n    metadata = _ref3.metadata,\n    useNationalFormat = _ref3.useNationalFormat;\n  if (prevCountry === newCountry) {\n    return phoneDigits;\n  }\n\n  // If `parsed_input` is empty\n  // then no need to migrate anything.\n  if (!phoneDigits) {\n    if (useNationalFormat) {\n      return '';\n    } else {\n      if (newCountry) {\n        // If `phoneDigits` is empty then set `phoneDigits` to\n        // `+{getCountryCallingCode(newCountry)}`.\n        return getInternationalPhoneNumberPrefix(newCountry, metadata);\n      }\n      return '';\n    }\n  }\n\n  // If switching to some country.\n  // (from \"International\" or another country)\n  // If switching from \"International\" then `phoneDigits` starts with a `+`.\n  // Otherwise it may or may not start with a `+`.\n  if (newCountry) {\n    // If the phone number was entered in international format\n    // then migrate it to the newly selected country.\n    // The phone number may be incomplete.\n    // The phone number entered not necessarily starts with\n    // the previously selected country phone prefix.\n    if (phoneDigits[0] === '+') {\n      // If the international phone number is for the new country\n      // then convert it to local if required.\n      if (useNationalFormat) {\n        // // If a phone number is being input in international form\n        // // and the country can already be derived from it,\n        // // and if it is the new country, then format as a national number.\n        // const derived_country = getCountryFromPossiblyIncompleteInternationalPhoneNumber(phoneDigits, metadata)\n        // if (derived_country === newCountry) {\n        // \treturn stripCountryCallingCode(phoneDigits, derived_country, metadata)\n        // }\n\n        // Actually, the two countries don't necessarily need to match:\n        // the condition could be looser here, because several countries\n        // might share the same international phone number format\n        // (for example, \"NANPA\" countries like US, Canada, etc).\n        // The looser condition would be just \"same nternational phone number format\"\n        // which would mean \"same country calling code\" in the context of `libphonenumber-js`.\n        if (phoneDigits.indexOf('+' + getCountryCallingCode(newCountry, metadata)) === 0) {\n          return stripCountryCallingCode(phoneDigits, newCountry, metadata);\n        }\n\n        // Simply discard the previously entered international phone number,\n        // because otherwise any \"smart\" transformation like getting the\n        // \"national (significant) number\" part and then prepending the\n        // newly selected country's \"country calling code\" to it\n        // would just be confusing for a user without being actually useful.\n        return '';\n\n        // // Simply strip the leading `+` character\n        // // therefore simply converting all digits into a \"local\" phone number.\n        // // https://github.com/catamphetamine/react-phone-number-input/issues/287\n        // return phoneDigits.slice(1)\n      }\n      if (prevCountry) {\n        var newCountryPrefix = getInternationalPhoneNumberPrefix(newCountry, metadata);\n        if (phoneDigits.indexOf(newCountryPrefix) === 0) {\n          return phoneDigits;\n        } else {\n          return newCountryPrefix;\n        }\n      } else {\n        var defaultValue = getInternationalPhoneNumberPrefix(newCountry, metadata);\n        // If `phoneDigits`'s country calling code part is the same\n        // as for the new `country`, then leave `phoneDigits` as is.\n        if (phoneDigits.indexOf(defaultValue) === 0) {\n          return phoneDigits;\n        }\n        // If `phoneDigits`'s country calling code part is not the same\n        // as for the new `country`, then set `phoneDigits` to\n        // `+{getCountryCallingCode(newCountry)}`.\n        return defaultValue;\n      }\n\n      // // If the international phone number already contains\n      // // any country calling code then trim the country calling code part.\n      // // (that could also be the newly selected country phone code prefix as well)\n      // // `phoneDigits` doesn't neccessarily belong to `prevCountry`.\n      // // (e.g. if a user enters an international number\n      // //  not belonging to any of the reduced `countries` list).\n      // phoneDigits = stripCountryCallingCode(phoneDigits, prevCountry, metadata)\n\n      // // Prepend country calling code prefix\n      // // for the newly selected country.\n      // return e164(phoneDigits, newCountry, metadata) || `+${getCountryCallingCode(newCountry, metadata)}`\n    }\n  }\n  // If switching to \"International\" from a country.\n  else {\n    // If the phone number was entered in national format.\n    if (phoneDigits[0] !== '+') {\n      // Format the national phone number as an international one.\n      // The phone number entered not necessarily even starts with\n      // the previously selected country phone prefix.\n      // Even if the phone number belongs to whole another country\n      // it will still be parsed into some national phone number.\n      //\n      // Ignore the now-uncovered `|| ''` code branch:\n      // previously `e164()` function could return an empty string\n      // even when `phoneDigits` were not empty.\n      // Now it always returns some `value` when there're any `phoneDigits`.\n      // Still, didn't remove the `|| ''` code branch just in case\n      // that logic changes somehow in some future, so there're no\n      // possible bugs related to that.\n      //\n      // (ignore the `|| ''` code branch)\n      /* istanbul ignore next */\n      return e164(phoneDigits, prevCountry, metadata) || '';\n    }\n  }\n  return phoneDigits;\n}\n\n/**\r\n * Converts phone number digits to a (possibly incomplete) E.164 phone number.\r\n * @param  {string?} number - A possibly incomplete phone number digits string. Can be a possibly incomplete E.164 phone number.\r\n * @param  {string?} country\r\n * @param  {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string?}\r\n */\nexport function e164(number, country, metadata) {\n  if (!number) {\n    return;\n  }\n  // If the phone number is being input in international format.\n  if (number[0] === '+') {\n    // If it's just the `+` sign then return nothing.\n    if (number === '+') {\n      return;\n    }\n    // Return a E.164 phone number.\n    //\n    // Could return `number` \"as is\" here, but there's a possibility\n    // that some user might incorrectly input an international number\n    // with a \"national prefix\". Such numbers aren't considered valid,\n    // but `libphonenumber-js` is \"forgiving\" when it comes to parsing\n    // user's input, and this input component follows that behavior.\n    //\n    var asYouType = new AsYouType(country, metadata);\n    asYouType.input(number);\n    // This function would return `undefined` only when `number` is `\"+\"`,\n    // but at this point it is known that `number` is not `\"+\"`.\n    return asYouType.getNumberValue();\n  }\n  // For non-international phone numbers\n  // an accompanying country code is required.\n  // The situation when `country` is `undefined`\n  // and a non-international phone number is passed\n  // to this function shouldn't happen.\n  if (!country) {\n    return;\n  }\n  var partial_national_significant_number = getNationalSignificantNumberDigits(number, country, metadata);\n  //\n  // Even if no \"national (significant) number\" digits have been input,\n  // still return a non-`undefined` value.\n  // https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/113\n  //\n  // For example, if the user has selected country `US` and entered `\"1\"`\n  // then that `\"1\"` is just a \"national prefix\" and no \"national (significant) number\"\n  // digits have been input yet. Still, return `\"+1\"` as `value` in such cases,\n  // because otherwise the app would think that the input is empty and mark it as such\n  // while in reality it isn't empty, which might be thought of as a \"bug\", or just\n  // a \"weird\" behavior.\n  //\n  // if (partial_national_significant_number) {\n  return \"+\".concat(getCountryCallingCode(country, metadata)).concat(partial_national_significant_number || '');\n  // }\n}\n\n/**\r\n * Trims phone number digits if they exceed the maximum possible length\r\n * for a national (significant) number for the country.\r\n * @param  {string} number - A possibly incomplete phone number digits string. Can be a possibly incomplete E.164 phone number.\r\n * @param  {string} country\r\n * @param  {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string} Can be empty.\r\n */\nexport function trimNumber(number, country, metadata) {\n  var nationalSignificantNumberPart = getNationalSignificantNumberDigits(number, country, metadata);\n  if (nationalSignificantNumberPart) {\n    var overflowDigitsCount = nationalSignificantNumberPart.length - getMaxNumberLength(country, metadata);\n    if (overflowDigitsCount > 0) {\n      return number.slice(0, number.length - overflowDigitsCount);\n    }\n  }\n  return number;\n}\nfunction getMaxNumberLength(country, metadata) {\n  // Get \"possible lengths\" for a phone number of the country.\n  metadata = new Metadata(metadata);\n  metadata.selectNumberingPlan(country);\n  // Return the last \"possible length\".\n  return metadata.numberingPlan.possibleLengths()[metadata.numberingPlan.possibleLengths().length - 1];\n}\n\n// If the phone number being input is an international one\n// then tries to derive the country from the phone number.\n// (regardless of whether there's any country currently selected)\n/**\r\n * @param {string} partialE164Number - A possibly incomplete E.164 phone number.\r\n * @param {string?} country - Currently selected country.\r\n * @param {string[]?} countries - A list of available countries. If not passed then \"all countries\" are assumed.\r\n * @param {string?} defaultCountry — Default country.\r\n * @param {string?} latestCountrySelectedByUser — The latest country that has been manually selected by the user.\r\n * @param {boolean?} required — Whether \"International\" option could be selected, meaning \"no country is selected\".\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string?}\r\n */\nexport function getCountryForPartialE164Number(partialE164Number, _ref4) {\n  var country = _ref4.country,\n    countries = _ref4.countries,\n    defaultCountry = _ref4.defaultCountry,\n    latestCountrySelectedByUser = _ref4.latestCountrySelectedByUser,\n    required = _ref4.required,\n    metadata = _ref4.metadata;\n  // `partialE164Number` is supposed to be an E.164 phone number.\n\n  // `partialE164Number` is supposed to be non-empty when calling this function\n  // so it doesn't check for `if (!partialE164Number)`.\n\n  if (partialE164Number === '+') {\n    // Don't change the currently selected country yet.\n    return country;\n  }\n  var derived_country = getCountryFromPossiblyIncompleteInternationalPhoneNumber(partialE164Number, metadata);\n\n  // If a phone number is being input in international form\n  // and the country can already be derived from it,\n  // then select that country.\n  if (derived_country) {\n    if (!countries || countries.indexOf(derived_country) >= 0) {\n      return derived_country;\n    } else {\n      return undefined;\n    }\n  }\n  // Otherwise, if the phone number doesn't correspond to any particular country.\n  // If some country was previously selected.\n  else if (country) {\n    // If the international phone number entered could still correspond to the previously selected country\n    // and also to some other country or countries corresponding to the same calling code\n    // then it should reset the currently selected country to reflect the ambiguity.\n    if (couldNumberBelongToCountry(partialE164Number, country, metadata)) {\n      // Reset the country either to the latest one that was manually selected by the user\n      // or to the default country or just reset the country selection.\n      if (latestCountrySelectedByUser && couldNumberBelongToCountry(partialE164Number, latestCountrySelectedByUser, metadata)) {\n        return latestCountrySelectedByUser;\n      } else if (defaultCountry && couldNumberBelongToCountry(partialE164Number, defaultCountry, metadata)) {\n        return defaultCountry;\n      } else {\n        if (!required) {\n          // Just reset the currently selected country.\n          return undefined;\n        }\n      }\n    } else {\n      // If \"International\" country option has not been disabled\n      // and the international phone number entered doesn't necessarily correspond to\n      // the currently selected country and it could not possibly correspond to it\n      // then reset the currently selected country.\n      if (!required) {\n        return undefined;\n      }\n    }\n  }\n\n  // Don't change the currently selected country.\n  return country;\n}\n\n/**\r\n * Parses `<input/>` value. Derives `country` from `input`. Derives an E.164 `value`.\r\n * @param  {string?} phoneDigits — Parsed `<input/>` value. Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n * @param  {string?} prevPhoneDigits — Previous parsed `<input/>` value. Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n * @param  {string?} country - Currently selected country.\r\n * @param  {string?} defaultCountry - Default country.\r\n * @param  {string?} latestCountrySelectedByUser - The latest country that has been manually selected by the user.\r\n * @param  {boolean} countryRequired - Is selecting some country required.\r\n * @param  {function} getAnyCountry - Can be used to get any country when selecting some country required.\r\n * @param  {string[]?} countries - A list of available countries. If not passed then \"all countries\" are assumed.\r\n * @param  {boolean} international - Set to `true` to force international phone number format (leading `+`). Set to `false` to force \"national\" phone number format. Is `undefined` by default.\r\n * @param  {boolean} limitMaxLength — Whether to enable limiting phone number max length.\r\n * @param  {object} metadata - `libphonenumber-js` metadata.\r\n * @return {object} An object of shape `{ phoneDigits, country, value }`. `phoneDigits` returned here are a \"normalized\" version of the original `phoneDigits`. The returned `phoneDigits` shouldn't be used anywhere except for passing it as `prevPhoneDigits` parameter to this same function on next input change event.\r\n */\nexport function onPhoneDigitsChange(phoneDigits, _ref5) {\n  var prevPhoneDigits = _ref5.prevPhoneDigits,\n    country = _ref5.country,\n    defaultCountry = _ref5.defaultCountry,\n    latestCountrySelectedByUser = _ref5.latestCountrySelectedByUser,\n    countryRequired = _ref5.countryRequired,\n    getAnyCountry = _ref5.getAnyCountry,\n    countries = _ref5.countries,\n    international = _ref5.international,\n    limitMaxLength = _ref5.limitMaxLength,\n    countryCallingCodeEditable = _ref5.countryCallingCodeEditable,\n    metadata = _ref5.metadata;\n  // When the input is in `international` and `countryCallingCodeEditable={false}` mode,\n  // the `country` should not change. If the user attempted to overwrite the country callling code part,\n  // the component should reset it back to the correct country calling code for the `country`.\n  if (international && countryCallingCodeEditable === false) {\n    if (country) {\n      // For international phone numbers written with non-editable country calling code,\n      // the `<input/>` value must always start with that non-editable country calling code.\n      var prefix = getInternationalPhoneNumberPrefix(country, metadata);\n      // If the input value doesn't start with the non-editable country calling code,\n      // it should be fixed.\n      if (phoneDigits.indexOf(prefix) !== 0) {\n        var _value;\n        // If a phone number input is declared as\n        // `international: true` and `countryCallingCodeEditable: false`,\n        // then the value of the `<input/>` is gonna be non-empty at all times,\n        // even before the user has started to input any digits in the input field,\n        // because the country calling code is always there by design.\n        //\n        // The fact that the input value is always non-empty results in a side effect:\n        // whenever a user tabs into such input field, its value gets automatically selected.\n        // If at that moment in time the user starts typing in the national digits of the phone number,\n        // the selected `<input/>` value gets automatically replaced by those typed-in digits\n        // so the value changes from `+xxx` to `y`, because inputting anything while having\n        // the `<input/>` value selected results in erasing that `<input/>` value.\n        //\n        // This component handles such cases by restoring the `<input/>` value to what\n        // it should be in such cases: `+xxxy`.\n        // https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/43\n        //\n        var hasStartedTypingInNationalNumberDigitsHavingInputValueSelected = phoneDigits && phoneDigits[0] !== '+';\n        if (hasStartedTypingInNationalNumberDigitsHavingInputValueSelected) {\n          // Fix the input value to what it should be: `y` → `+xxxy`.\n          phoneDigits = prefix + phoneDigits;\n          _value = e164(phoneDigits, country, metadata);\n        } else {\n          // In other cases, simply reset the `<input/>` value, because there're only two\n          // possible cases:\n          // * The user has selected the `<input/>` value and then hit Delete/Backspace to erase it.\n          // * The user has pasted an international phone number for another country calling code,\n          //   which is considered a non-valid value.\n          phoneDigits = prefix;\n        }\n        return {\n          phoneDigits: phoneDigits,\n          value: _value,\n          country: country\n        };\n      }\n    }\n  }\n\n  // If `international` property is `false`, then it means\n  // \"enforce national-only format during input\",\n  // so, if that's the case, then remove all `+` characters,\n  // but only if some country is currently selected.\n  // (not if \"International\" country is selected).\n  if (international === false && country && phoneDigits && phoneDigits[0] === '+') {\n    phoneDigits = convertInternationalPhoneDigitsToNational(phoneDigits, country, metadata);\n  }\n\n  // Trim the input to not exceed the maximum possible number length.\n  if (phoneDigits && country && limitMaxLength) {\n    phoneDigits = trimNumber(phoneDigits, country, metadata);\n  }\n\n  // If this `onChange()` event was triggered\n  // as a result of selecting \"International\" country,\n  // then force-prepend a `+` sign if the phone number\n  // `<input/>` value isn't in international format.\n  // Also, force-prepend a `+` sign if international\n  // phone number input format is set.\n  if (phoneDigits && phoneDigits[0] !== '+' && (!country || international)) {\n    phoneDigits = '+' + phoneDigits;\n  }\n\n  // If the previously entered phone number\n  // has been entered in international format\n  // and the user decides to erase it,\n  // then also reset the `country`\n  // because it was most likely automatically selected\n  // while the user was typing in the phone number\n  // in international format.\n  // This fixes the issue when a user is presented\n  // with a phone number input with no country selected\n  // and then types in their local phone number\n  // then discovers that the input's messed up\n  // (a `+` has been prepended at the start of their input\n  //  and a random country has been selected),\n  // decides to undo it all by erasing everything\n  // and then types in their local phone number again\n  // resulting in a seemingly correct phone number\n  // but in reality that phone number has incorrect country.\n  // https://github.com/catamphetamine/react-phone-number-input/issues/273\n  if (!phoneDigits && prevPhoneDigits && prevPhoneDigits[0] === '+') {\n    if (international) {\n      country = undefined;\n    } else {\n      country = defaultCountry;\n    }\n  }\n  // Also resets such \"randomly\" selected country\n  // as soon as the user erases the number\n  // digit-by-digit up to the leading `+` sign.\n  if (phoneDigits === '+' && prevPhoneDigits && prevPhoneDigits[0] === '+' && prevPhoneDigits.length > '+'.length) {\n    country = undefined;\n  }\n\n  // Generate the new `value` property.\n  var value;\n  if (phoneDigits) {\n    if (phoneDigits[0] === '+') {\n      if (phoneDigits === '+') {\n        value = undefined;\n      } else if (country && getInternationalPhoneNumberPrefix(country, metadata).indexOf(phoneDigits) === 0) {\n        // Selected a `country` and started inputting an\n        // international phone number for this country\n        // but hasn't input any \"national (significant) number\" digits yet.\n        // In that case, assume `value` be `undefined`.\n        //\n        // For example, if selected `country` `\"US\"`\n        // and started inputting phone number `\"+1\"`\n        // then `value` `undefined` will be returned from this function.\n        //\n        value = undefined;\n      } else {\n        value = e164(phoneDigits, country, metadata);\n      }\n    } else {\n      value = e164(phoneDigits, country, metadata);\n    }\n  }\n\n  // Derive the country from the phone number.\n  // (regardless of whether there's any country currently selected,\n  //  because there could be several countries corresponding to one country calling code)\n  if (value) {\n    country = getCountryForPartialE164Number(value, {\n      country: country,\n      countries: countries,\n      defaultCountry: defaultCountry,\n      latestCountrySelectedByUser: latestCountrySelectedByUser,\n      // `countryRequired` flag is not passed here.\n      // Instead, it's explicitly checked a bit later in the code.\n      required: false,\n      metadata: metadata\n    });\n    // If `international` property is `false`, then it means\n    // \"enforce national-only format during input\",\n    // so, if that's the case, then remove all `+` characters,\n    // but only if some country is currently selected.\n    // (not if \"International\" country is selected).\n    if (international === false && country && phoneDigits && phoneDigits[0] === '+') {\n      phoneDigits = convertInternationalPhoneDigitsToNational(phoneDigits, country, metadata);\n      // Re-calculate `value` because `phoneDigits` has changed.\n      value = e164(phoneDigits, country, metadata);\n    }\n  }\n  if (!country && countryRequired) {\n    country = defaultCountry || getAnyCountry();\n  }\n  return {\n    // `phoneDigits` returned here are a \"normalized\" version of the original `phoneDigits`.\n    // The returned `phoneDigits` shouldn't be used anywhere except for passing it as\n    // `prevPhoneDigits` parameter to this same function on next input change event.\n    phoneDigits: phoneDigits,\n    country: country,\n    value: value\n  };\n}\nfunction convertInternationalPhoneDigitsToNational(input, country, metadata) {\n  // Handle the case when a user might have pasted\n  // a phone number in international format.\n  if (input.indexOf(getInternationalPhoneNumberPrefix(country, metadata)) === 0) {\n    // Create \"as you type\" formatter.\n    var formatter = new AsYouType(country, metadata);\n    // Input partial national phone number.\n    formatter.input(input);\n    // Return the parsed partial national phone number.\n    var phoneNumber = formatter.getNumber();\n    if (phoneNumber) {\n      // Transform the number to a national one,\n      // and remove all non-digits.\n      return phoneNumber.formatNational().replace(/\\D/g, '');\n    } else {\n      return '';\n    }\n  } else {\n    // Just remove the `+` sign.\n    return input.replace(/\\D/g, '');\n  }\n}\n\n/**\r\n * Determines the country for a given (possibly incomplete) E.164 phone number.\r\n * @param  {string} number - A possibly incomplete E.164 phone number.\r\n * @param  {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string?}\r\n */\nexport function getCountryFromPossiblyIncompleteInternationalPhoneNumber(number, metadata) {\n  var formatter = new AsYouType(null, metadata);\n  formatter.input(number);\n  // // `001` is a special \"non-geograpical entity\" code\n  // // in Google's `libphonenumber` library.\n  // if (formatter.getCountry() === '001') {\n  // \treturn\n  // }\n  return formatter.getCountry();\n}\n\n/**\r\n * Compares two strings.\r\n * A helper for `Array.sort()`.\r\n * @param {string} a — First string.\r\n * @param {string} b — Second string.\r\n * @param {(string[]|string)} [locales] — The `locales` argument of `String.localeCompare`.\r\n */\nexport function compareStrings(a, b, locales) {\n  // Use `String.localeCompare` if it's available.\n  // https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare\n  // Which means everyone except IE <= 10 and Safari <= 10.\n  // `localeCompare()` is available in latest Node.js versions.\n  /* istanbul ignore else */\n  if (String.prototype.localeCompare) {\n    return a.localeCompare(b, locales);\n  }\n  /* istanbul ignore next */\n  return a < b ? -1 : a > b ? 1 : 0;\n}\n\n/**\r\n * Strips `+${countryCallingCode}` prefix from an E.164 phone number.\r\n * @param {string} number - (possibly incomplete) E.164 phone number.\r\n * @param {string?} country - A possible country for this phone number.\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string}\r\n */\nexport function stripCountryCallingCode(number, country, metadata) {\n  // Just an optimization, so that it\n  // doesn't have to iterate through all country calling codes.\n  if (country) {\n    var countryCallingCodePrefix = '+' + getCountryCallingCode(country, metadata);\n\n    // If `country` fits the actual `number`.\n    if (number.length < countryCallingCodePrefix.length) {\n      if (countryCallingCodePrefix.indexOf(number) === 0) {\n        return '';\n      }\n    } else {\n      if (number.indexOf(countryCallingCodePrefix) === 0) {\n        return number.slice(countryCallingCodePrefix.length);\n      }\n    }\n  }\n\n  // If `country` doesn't fit the actual `number`.\n  // Try all available country calling codes.\n  for (var _i = 0, _Object$keys = Object.keys(metadata.country_calling_codes); _i < _Object$keys.length; _i++) {\n    var country_calling_code = _Object$keys[_i];\n    if (number.indexOf(country_calling_code) === '+'.length) {\n      return number.slice('+'.length + country_calling_code.length);\n    }\n  }\n  return '';\n}\n\n/**\r\n * Parses a partially entered national phone number digits\r\n * (or a partially entered E.164 international phone number)\r\n * and returns the national significant number part.\r\n * National significant number returned doesn't come with a national prefix.\r\n * @param {string} number - National number digits. Or possibly incomplete E.164 phone number.\r\n * @param {string?} country\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string} [result]\r\n */\nexport function getNationalSignificantNumberDigits(number, country, metadata) {\n  // Create \"as you type\" formatter.\n  var formatter = new AsYouType(country, metadata);\n  // Input partial national phone number.\n  formatter.input(number);\n  // Return the parsed partial national phone number.\n  var phoneNumber = formatter.getNumber();\n  return phoneNumber && phoneNumber.nationalNumber;\n}\n\n/**\r\n * Checks if a partially entered E.164 phone number could belong to a country.\r\n * @param  {string} number\r\n * @param  {string} country\r\n * @return {boolean}\r\n */\nexport function couldNumberBelongToCountry(number, country, metadata) {\n  var intlPhoneNumberPrefix = getInternationalPhoneNumberPrefix(country, metadata);\n  var i = 0;\n  while (i < number.length && i < intlPhoneNumberPrefix.length) {\n    if (number[i] !== intlPhoneNumberPrefix[i]) {\n      return false;\n    }\n    i++;\n  }\n  return true;\n}\n\n/**\r\n * Gets initial \"phone digits\" (including `+`, if using international format).\r\n * @return {string} [phoneDigits] Returns `undefined` if there should be no initial \"phone digits\".\r\n */\nexport function getInitialPhoneDigits(_ref6) {\n  var value = _ref6.value,\n    phoneNumber = _ref6.phoneNumber,\n    defaultCountry = _ref6.defaultCountry,\n    international = _ref6.international,\n    useNationalFormat = _ref6.useNationalFormat,\n    metadata = _ref6.metadata;\n  // If the `value` (E.164 phone number)\n  // belongs to the currently selected country\n  // and `useNationalFormat` is `true`\n  // then convert `value` (E.164 phone number)\n  // to a local phone number digits.\n  // E.g. '+78005553535' -> '88005553535'.\n  if ((international === false || useNationalFormat) && phoneNumber && phoneNumber.country) {\n    return generateNationalNumberDigits(phoneNumber);\n  }\n  // If `international` property is `true`,\n  // meaning \"enforce international phone number format\",\n  // then always show country calling code in the input field.\n  if (!value && international && defaultCountry) {\n    return getInternationalPhoneNumberPrefix(defaultCountry, metadata);\n  }\n  return value;\n}\n\n// function doesIncompletePhoneNumberCorrespondToASingleCountry(value, metadata) {\n// \t// Create \"as you type\" formatter.\n// \tconst formatter = new AsYouType(undefined, metadata)\n// \t// Input partial national phone number.\n// \tformatter.input(value)\n// \t// Return the parsed partial national phone number.\n// \tconst phoneNumber = formatter.getNumber()\n// \tif (phoneNumber) {\n// \t\treturn phoneNumber.getPossibleCountries().length === 1\n// \t} else {\n// \t\treturn false\n// \t}\n// }\n//# sourceMappingURL=phoneInputHelpers.js.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { getInitialPhoneDigits, getCountryForPartialE164Number, parsePhoneNumber, couldNumberBelongToCountry } from './phoneInputHelpers.js';\nimport { validateE164Number } from './isE164Number.js';\nimport getInternationalPhoneNumberPrefix from './getInternationalPhoneNumberPrefix.js';\nimport { isCountrySupportedWithError, getSupportedCountries } from './countries.js';\nexport default function getPhoneInputWithCountryStateUpdateFromNewProps(props, prevProps, state) {\n  var metadata = props.metadata,\n    countries = props.countries,\n    newDefaultCountry = props.defaultCountry,\n    newValue = props.value,\n    newReset = props.reset,\n    international = props.international,\n    displayInitialValueAsLocalNumber = props.displayInitialValueAsLocalNumber,\n    initialValueFormat = props.initialValueFormat;\n  var prevDefaultCountry = prevProps.defaultCountry,\n    prevValue = prevProps.value,\n    prevReset = prevProps.reset;\n  var country = state.country,\n    value = state.value,\n    hasUserSelectedACountry = state.hasUserSelectedACountry,\n    latestCountrySelectedByUser = state.latestCountrySelectedByUser;\n  var _getInitialPhoneDigits = function _getInitialPhoneDigits(parameters) {\n    return getInitialPhoneDigits(_objectSpread(_objectSpread({}, parameters), {}, {\n      international: international,\n      useNationalFormat: displayInitialValueAsLocalNumber || initialValueFormat === 'national',\n      metadata: metadata\n    }));\n  };\n\n  // Some users requested a way to reset the component\n  // (both number `<input/>` and country `<select/>`).\n  // Whenever `reset` property changes both number `<input/>`\n  // and country `<select/>` are reset.\n  // It's not implemented as some instance `.reset()` method\n  // because `ref` is forwarded to `<input/>`.\n  // It's also not replaced with just resetting `country` on\n  // external `value` reset, because a user could select a country\n  // and then not input any `value`, and so the selected country\n  // would be \"stuck\", if not using this `reset` property.\n  // https://github.com/catamphetamine/react-phone-number-input/issues/300\n  if (newReset !== prevReset) {\n    return {\n      phoneDigits: _getInitialPhoneDigits({\n        value: undefined,\n        defaultCountry: newDefaultCountry\n      }),\n      value: undefined,\n      country: newDefaultCountry,\n      latestCountrySelectedByUser: undefined,\n      hasUserSelectedACountry: undefined\n    };\n  }\n\n  // `value` is the value currently shown in the component:\n  // it's stored in the component's `state`, and it's not the `value` property.\n  // `prevValue` is \"previous `value` property\".\n  // `newValue` is \"new `value` property\".\n\n  // If the default country changed\n  // (e.g. in case of ajax GeoIP detection after page loaded)\n  // then select it, but only if the user hasn't already manually\n  // selected a country, and no phone number has been manually entered so far.\n  // Because if the user has already started inputting a phone number\n  // then they're okay with no country being selected at all (\"International\")\n  // and they don't want to be disturbed, don't want their input to be screwed, etc.\n  if (newDefaultCountry !== prevDefaultCountry) {\n    var isNewDefaultCountrySupported = !newDefaultCountry || isCountrySupportedWithError(newDefaultCountry, metadata);\n    var noValueHasBeenEnteredByTheUser =\n    // By default, \"no value has been entered\" means `value` is `undefined`.\n    !value ||\n    // When `international` is `true`, and some country has been pre-selected,\n    // then the `<input/>` contains a pre-filled value of `+${countryCallingCode}${leadingDigits}`,\n    // so in case of `international` being `true`, \"the user hasn't entered anything\" situation\n    // doesn't just mean `value` is `undefined`, but could also mean `value` is `+${countryCallingCode}`.\n    international && value === _getInitialPhoneDigits({\n      value: undefined,\n      defaultCountry: prevDefaultCountry\n    });\n    // Only update the `defaultCountry` property if no phone number\n    // has been entered by the user or pre-set by the application.\n    var noValueHasBeenEntered = !newValue && noValueHasBeenEnteredByTheUser;\n    if (!hasUserSelectedACountry && isNewDefaultCountrySupported && noValueHasBeenEntered) {\n      return {\n        country: newDefaultCountry,\n        // If `phoneDigits` is empty, then automatically select the new `country`\n        // and set `phoneDigits` to `+{getCountryCallingCode(newCountry)}`.\n        // The code assumes that \"no phone number has been entered by the user\",\n        // and no `value` property has been passed, so the `phoneNumber` parameter\n        // of `_getInitialPhoneDigits({ value, phoneNumber, ... })` is `undefined`.\n        phoneDigits: _getInitialPhoneDigits({\n          value: undefined,\n          defaultCountry: newDefaultCountry\n        }),\n        // `value` is `undefined` and it stays so.\n        value: undefined\n      };\n    }\n  }\n\n  // If a new `value` is set externally.\n  // (e.g. as a result of an ajax API request\n  //  to get user's phone after page loaded)\n  // The first part — `newValue !== prevValue` —\n  // is basically `props.value !== prevProps.value`\n  // so it means \"if value property was changed externally\".\n  // The second part — `newValue !== value` —\n  // is for ignoring the `getDerivedStateFromProps()` call\n  // which happens in `this.onChange()` right after `this.setState()`.\n  // If this `getDerivedStateFromProps()` call isn't ignored\n  // then the country flag would reset on each input.\n  if (!valuesAreEqual(newValue, prevValue) && !valuesAreEqual(newValue, value)) {\n    var phoneNumber;\n    var parsedCountry;\n    if (newValue) {\n      // Validate that the newly-supplied `value` is in `E.164` format.\n      // Because sometimes people attempt to supply a `value` like \"+1 (879) 490-8676\".\n      // https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/231#note_2016334796\n      if (newValue) {\n        validateE164Number(newValue);\n      }\n      phoneNumber = parsePhoneNumber(newValue, metadata);\n      var supportedCountries = getSupportedCountries(countries, metadata);\n      if (phoneNumber && phoneNumber.country) {\n        // Ignore `else` because all countries are supported in metadata.\n        /* istanbul ignore next */\n        if (!supportedCountries || supportedCountries.indexOf(phoneNumber.country) >= 0) {\n          parsedCountry = phoneNumber.country;\n        }\n      } else {\n        parsedCountry = getCountryForPartialE164Number(newValue, {\n          country: undefined,\n          countries: supportedCountries,\n          metadata: metadata\n        });\n\n        // In cases when multiple countries correspond to the same country calling code,\n        // the phone number digits of `newValue` have to be matched against country-specific\n        // regular expressions in order to determine the exact country.\n        // Sometimes, that algorithm can't decide for sure which country does the phone number belong to,\n        // for example when the digits of `newValue` don't match any of those regular expressions.\n        // and the country of the phone number couldn't be determined.\n        // In those cases, people prefer the component to show the flag of the `defaultCountry`\n        // if the phone number could potentially belong to that `defaultCountry`.\n        // At least that's how the component behaves when a user pastes an international\n        // phone number into the input field: for example, when `defaultCountry` is `\"US\"`\n        // and the user pastes value \"+1 555 555 5555\" into the input field, it keep showing \"US\" flag.\n        // So when setting new `value` property externally, the component should behave the same way:\n        // it should select the `defaultCountry` when the new `value` could potentially belong\n        // to that country in cases when the exact country can't be determined.\n        // https://github.com/catamphetamine/react-phone-number-input/issues/413#issuecomment-1536219404\n        if (!parsedCountry) {\n          if (newDefaultCountry) {\n            if (newValue.indexOf(getInternationalPhoneNumberPrefix(newDefaultCountry, metadata)) === 0) {\n              parsedCountry = newDefaultCountry;\n            }\n          }\n        }\n      }\n    }\n    var userCountrySelectionHistoryStateUpdate;\n    if (newValue) {\n      // If the latest country that has been manually selected by the user\n      // no longer corresponds to the new value then reset it.\n      if (latestCountrySelectedByUser) {\n        var couldNewValueCorrespondToLatestCountrySelectedByUser = parsedCountry ? latestCountrySelectedByUser === parsedCountry : couldNumberBelongToCountry(newValue, latestCountrySelectedByUser, metadata);\n        if (couldNewValueCorrespondToLatestCountrySelectedByUser) {\n          if (!parsedCountry) {\n            parsedCountry = latestCountrySelectedByUser;\n          }\n        } else {\n          userCountrySelectionHistoryStateUpdate = {\n            latestCountrySelectedByUser: undefined\n          };\n        }\n      }\n    } else {\n      // When the `value` property is being reset \"externally\",\n      // reset any tracking of the country that the user has previously selected.\n      userCountrySelectionHistoryStateUpdate = {\n        latestCountrySelectedByUser: undefined,\n        hasUserSelectedACountry: undefined\n      };\n    }\n    return _objectSpread(_objectSpread({}, userCountrySelectionHistoryStateUpdate), {}, {\n      phoneDigits: _getInitialPhoneDigits({\n        phoneNumber: phoneNumber,\n        value: newValue,\n        defaultCountry: newDefaultCountry\n      }),\n      value: newValue,\n      country: newValue ? parsedCountry : newDefaultCountry\n    });\n  }\n\n  // `defaultCountry` didn't change.\n  // `value` didn't change.\n  // `phoneDigits` didn't change, because `value` didn't change.\n  //\n  // So no need to update state.\n}\nexport function valuesAreEqual(value1, value2) {\n  // If `value` has been set to `null` externally then convert it to `undefined`.\n  //\n  // For example, `react-hook-form` sets `value` to `null` when the user clears the input.\n  // https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/164\n  // In that case, without this conversion of `null` to `undefined`, it would reset\n  // the selected country to `defaultCountry` because in that case `newValue !== value`\n  // because `null !== undefined`.\n  //\n  // Historically, empty `value` is encoded as `undefined`.\n  // Perhaps empty `value` would be better encoded as `null` instead.\n  // But because that would be a potentially breaking change for some people,\n  // it's left as is for the current \"major\" version of this library.\n  //\n  if (value1 === null) {\n    value1 = undefined;\n  }\n  if (value2 === null) {\n    value2 = undefined;\n  }\n  return value1 === value2;\n}\n//# sourceMappingURL=getPhoneInputWithCountryStateUpdateFromNewProps.js.map","var _excluded = [\"name\", \"disabled\", \"readOnly\", \"autoComplete\", \"style\", \"className\", \"inputRef\", \"inputComponent\", \"numberInputProps\", \"smartCaret\", \"countrySelectComponent\", \"countrySelectProps\", \"containerComponent\", \"containerComponentProps\", \"defaultCountry\", \"countries\", \"countryOptionsOrder\", \"labels\", \"flags\", \"flagComponent\", \"flagUrl\", \"addInternationalOption\", \"internationalIcon\", \"displayInitialValueAsLocalNumber\", \"initialValueFormat\", \"onCountryChange\", \"limitMaxLength\", \"countryCallingCodeEditable\", \"focusInputOnCountrySelection\", \"reset\", \"metadata\", \"international\", \"locales\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport InputSmart from './InputSmart.js';\nimport InputBasic from './InputBasic.js';\nimport { CountrySelectWithIcon as CountrySelect } from './CountrySelect.js';\nimport Flag from './Flag.js';\nimport InternationalIcon from './InternationalIcon.js';\nimport { validateE164Number } from './helpers/isE164Number.js';\nimport { sortCountryOptions, isCountrySupportedWithError, getSupportedCountries, getSupportedCountryOptions, getCountries } from './helpers/countries.js';\nimport { createCountryIconComponent } from './CountryIcon.js';\nimport { setRefsValue } from './useExternalRef.js';\nimport { metadata as metadataPropType, labels as labelsPropType } from './PropTypes.js';\nimport { getPreSelectedCountry, getCountrySelectOptions as _getCountrySelectOptions, couldNumberBelongToCountry, parsePhoneNumber, generateNationalNumberDigits, getPhoneDigitsForNewCountry, getInitialPhoneDigits, onPhoneDigitsChange, e164 } from './helpers/phoneInputHelpers.js';\nimport getPhoneInputWithCountryStateUpdateFromNewProps from './helpers/getPhoneInputWithCountryStateUpdateFromNewProps.js';\nvar PhoneNumberInput_ = /*#__PURE__*/function (_React$PureComponent) {\n  function PhoneNumberInput_(props) {\n    var _this;\n    _classCallCheck(this, PhoneNumberInput_);\n    _this = _callSuper(this, PhoneNumberInput_, [props]);\n    // This function mimicks `refSetter` function returned from `useExternalRef()` hook\n    // because this class-like React component can't use the `useExternalRef()` hook.\n    _defineProperty(_this, \"setInputRef\", function (instance) {\n      setRefsValue([_this.props.inputRef, _this.inputRef], instance);\n    });\n    // A shorthand for not passing `metadata` as a second argument.\n    _defineProperty(_this, \"isCountrySupportedWithError\", function (country) {\n      var metadata = _this.props.metadata;\n      return isCountrySupportedWithError(country, metadata);\n    });\n    // Country `<select/>` `onChange` handler.\n    _defineProperty(_this, \"onCountryChange\", function (newCountry) {\n      var _this$props = _this.props,\n        international = _this$props.international,\n        metadata = _this$props.metadata,\n        onChange = _this$props.onChange,\n        focusInputOnCountrySelection = _this$props.focusInputOnCountrySelection;\n      var _this$state = _this.state,\n        prevPhoneDigits = _this$state.phoneDigits,\n        prevCountry = _this$state.country;\n\n      // After the new `country` has been selected,\n      // if the phone number `<input/>` holds any digits\n      // then migrate those digits for the new `country`.\n      var newPhoneDigits = getPhoneDigitsForNewCountry(prevPhoneDigits, {\n        prevCountry: prevCountry,\n        newCountry: newCountry,\n        metadata: metadata,\n        // Convert the phone number to \"national\" format\n        // when the user changes the selected country by hand.\n        useNationalFormat: !international\n      });\n      var newValue = e164(newPhoneDigits, newCountry, metadata);\n\n      // Focus phone number `<input/>` upon country selection.\n      if (focusInputOnCountrySelection) {\n        _this.inputRef.current.focus();\n      }\n\n      // If the user has already manually selected a country\n      // then don't override that already selected country\n      // if the `defaultCountry` property changes.\n      // That's what `hasUserSelectedACountry` flag is for.\n\n      _this.setState({\n        country: newCountry,\n        latestCountrySelectedByUser: newCountry,\n        hasUserSelectedACountry: true,\n        phoneDigits: newPhoneDigits,\n        value: newValue\n      }, function () {\n        // Update the new `value` property.\n        // Doing it after the `state` has been updated\n        // because `onChange()` will trigger `getDerivedStateFromProps()`\n        // with the new `value` which will be compared to `state.value` there.\n        onChange(newValue);\n      });\n    });\n    /**\r\n     * `<input/>` `onChange()` handler.\r\n     * Updates `value` property accordingly (so that they are kept in sync).\r\n     * @param {string?} input — Either a parsed phone number or an empty string. Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n     */\n    _defineProperty(_this, \"onChange\", function (_phoneDigits) {\n      var _this$props2 = _this.props,\n        defaultCountry = _this$props2.defaultCountry,\n        onChange = _this$props2.onChange,\n        addInternationalOption = _this$props2.addInternationalOption,\n        international = _this$props2.international,\n        limitMaxLength = _this$props2.limitMaxLength,\n        countryCallingCodeEditable = _this$props2.countryCallingCodeEditable,\n        metadata = _this$props2.metadata;\n      var _this$state2 = _this.state,\n        countries = _this$state2.countries,\n        prevPhoneDigits = _this$state2.phoneDigits,\n        currentlySelectedCountry = _this$state2.country,\n        latestCountrySelectedByUser = _this$state2.latestCountrySelectedByUser;\n      var _onPhoneDigitsChange = onPhoneDigitsChange(_phoneDigits, {\n          prevPhoneDigits: prevPhoneDigits,\n          country: currentlySelectedCountry,\n          countryRequired: !addInternationalOption,\n          defaultCountry: defaultCountry,\n          latestCountrySelectedByUser: latestCountrySelectedByUser,\n          getAnyCountry: function getAnyCountry() {\n            return _this.getFirstSupportedCountry({\n              countries: countries\n            });\n          },\n          countries: countries,\n          international: international,\n          limitMaxLength: limitMaxLength,\n          countryCallingCodeEditable: countryCallingCodeEditable,\n          metadata: metadata\n        }),\n        phoneDigits = _onPhoneDigitsChange.phoneDigits,\n        country = _onPhoneDigitsChange.country,\n        value = _onPhoneDigitsChange.value;\n      var stateUpdate = {\n        phoneDigits: phoneDigits,\n        value: value,\n        country: country\n      };\n\n      // Reset `latestCountrySelectedByUser` if it no longer fits the `value`.\n      if (latestCountrySelectedByUser && value && !couldNumberBelongToCountry(value, latestCountrySelectedByUser, metadata)) {\n        stateUpdate.latestCountrySelectedByUser = undefined;\n      }\n      if (countryCallingCodeEditable === false) {\n        // If it simply did `setState({ phoneDigits: intlPrefix })` here,\n        // then it would have no effect when erasing an inital international prefix\n        // via Backspace, because `phoneDigits` in `state` wouldn't change\n        // as a result, because it was `prefix` and it became `prefix`,\n        // so the component wouldn't rerender, and the user would be able\n        // to erase the country calling code part, and that part is\n        // assumed to be non-eraseable. That's why the component is\n        // forcefully rerendered here.\n        // https://github.com/catamphetamine/react-phone-number-input/issues/367#issuecomment-721703501\n        if (!value && phoneDigits === _this.state.phoneDigits) {\n          // Force a re-render of the `<input/>` in order to reset its value.\n          stateUpdate.forceRerender = {};\n        }\n      }\n      _this.setState(stateUpdate,\n      // Update the new `value` property.\n      // Doing it after the `state` has been updated\n      // because `onChange()` will trigger `getDerivedStateFromProps()`\n      // with the new `value` which will be compared to `state.value` there.\n      function () {\n        return onChange(value);\n      });\n    });\n    // Toggles the `--focus` CSS class.\n    _defineProperty(_this, \"_onFocus\", function () {\n      return _this.setState({\n        isFocused: true\n      });\n    });\n    // Toggles the `--focus` CSS class.\n    _defineProperty(_this, \"_onBlur\", function () {\n      return _this.setState({\n        isFocused: false\n      });\n    });\n    _defineProperty(_this, \"onFocus\", function (event) {\n      _this._onFocus();\n      var onFocus = _this.props.onFocus;\n      if (onFocus) {\n        onFocus(event);\n      }\n    });\n    _defineProperty(_this, \"onBlur\", function (event) {\n      var onBlur = _this.props.onBlur;\n      _this._onBlur();\n      if (onBlur) {\n        onBlur(event);\n      }\n    });\n    _defineProperty(_this, \"onCountryFocus\", function (event) {\n      _this._onFocus();\n      // this.setState({ countrySelectFocused: true })\n      var countrySelectProps = _this.props.countrySelectProps;\n      if (countrySelectProps) {\n        var onFocus = countrySelectProps.onFocus;\n        if (onFocus) {\n          onFocus(event);\n        }\n      }\n    });\n    _defineProperty(_this, \"onCountryBlur\", function (event) {\n      _this._onBlur();\n      // this.setState({ countrySelectFocused: false })\n      var countrySelectProps = _this.props.countrySelectProps;\n      if (countrySelectProps) {\n        var onBlur = countrySelectProps.onBlur;\n        if (onBlur) {\n          onBlur(event);\n        }\n      }\n    });\n    _this.inputRef = /*#__PURE__*/React.createRef();\n    var _this$props3 = _this.props,\n      _value = _this$props3.value,\n      labels = _this$props3.labels,\n      _international = _this$props3.international,\n      _addInternationalOption = _this$props3.addInternationalOption,\n      displayInitialValueAsLocalNumber = _this$props3.displayInitialValueAsLocalNumber,\n      initialValueFormat = _this$props3.initialValueFormat,\n      _metadata = _this$props3.metadata;\n    var _this$props4 = _this.props,\n      _defaultCountry = _this$props4.defaultCountry,\n      _countries = _this$props4.countries;\n\n    // Validate `defaultCountry`.\n    if (_defaultCountry) {\n      if (!_this.isCountrySupportedWithError(_defaultCountry)) {\n        _defaultCountry = undefined;\n      }\n    }\n\n    // Validate that the initially-supplied `value` is in `E.164` format.\n    // Because sometimes people attempt to supply a `value` like \"+1 (879) 490-8676\".\n    // https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/231#note_2016334796\n    if (_value) {\n      validateE164Number(_value);\n    }\n\n    // Validate `countries`.\n    _countries = getSupportedCountries(_countries, _metadata);\n    var phoneNumber = parsePhoneNumber(_value, _metadata);\n    _this.CountryIcon = createCountryIconComponent(_this.props);\n    var preSelectedCountry = getPreSelectedCountry({\n      value: _value,\n      phoneNumber: phoneNumber,\n      defaultCountry: _defaultCountry,\n      required: !_addInternationalOption,\n      countries: _countries || getCountries(_metadata),\n      getAnyCountry: function getAnyCountry() {\n        return _this.getFirstSupportedCountry({\n          countries: _countries\n        });\n      },\n      metadata: _metadata\n    });\n    _this.state = {\n      // Workaround for `this.props` inside `getDerivedStateFromProps()`.\n      props: _this.props,\n      // The country selected.\n      country: preSelectedCountry,\n      // `countries` are stored in `this.state` because they're filtered.\n      // For example, a developer might theoretically pass some unsupported\n      // countries as part of the `countries` property, and because of that\n      // the component uses `this.state.countries` (which are filtered)\n      // instead of `this.props.countries`\n      // (which could potentially contain unsupported countries).\n      countries: _countries,\n      // `phoneDigits` state property holds non-formatted user's input.\n      // The reason is that there's no way of finding out\n      // in which form should `value` be displayed: international or national.\n      // E.g. if `value` is `+78005553535` then it could be input\n      // by a user both as `8 (800) 555-35-35` and `+7 800 555 35 35`.\n      // Hence storing just `value` is not sufficient for correct formatting.\n      // E.g. if a user entered `8 (800) 555-35-35`\n      // then value is `+78005553535` and `phoneDigits` are `88005553535`\n      // and if a user entered `+7 800 555 35 35`\n      // then value is `+78005553535` and `phoneDigits` are `+78005553535`.\n      phoneDigits: getInitialPhoneDigits({\n        value: _value,\n        phoneNumber: phoneNumber,\n        defaultCountry: _defaultCountry,\n        international: _international,\n        useNationalFormat: displayInitialValueAsLocalNumber || initialValueFormat === 'national',\n        metadata: _metadata\n      }),\n      // `value` property is duplicated in state.\n      // The reason is that `getDerivedStateFromProps()`\n      // needs this `value` to compare to the new `value` property\n      // to find out if `phoneDigits` needs updating:\n      // If the `value` property was changed externally\n      // then it won't be equal to `state.value`\n      // in which case `phoneDigits` and `country` should be updated.\n      value: _value\n    };\n    return _this;\n  }\n  _inherits(PhoneNumberInput_, _React$PureComponent);\n  return _createClass(PhoneNumberInput_, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      var onCountryChange = this.props.onCountryChange;\n      var defaultCountry = this.props.defaultCountry;\n      var selectedCountry = this.state.country;\n      if (onCountryChange) {\n        if (defaultCountry) {\n          if (!this.isCountrySupportedWithError(defaultCountry)) {\n            defaultCountry = undefined;\n          }\n        }\n        if (selectedCountry !== defaultCountry) {\n          onCountryChange(selectedCountry);\n        }\n      }\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps, prevState) {\n      var onCountryChange = this.props.onCountryChange;\n      var country = this.state.country;\n      // Call `onCountryChange` when user selects another country.\n      if (onCountryChange && country !== prevState.country) {\n        onCountryChange(country);\n      }\n    }\n  }, {\n    key: \"getCountrySelectOptions\",\n    value: function getCountrySelectOptions(_ref) {\n      var countries = _ref.countries;\n      var _this$props5 = this.props,\n        international = _this$props5.international,\n        countryCallingCodeEditable = _this$props5.countryCallingCodeEditable,\n        countryOptionsOrder = _this$props5.countryOptionsOrder,\n        addInternationalOption = _this$props5.addInternationalOption,\n        labels = _this$props5.labels,\n        locales = _this$props5.locales,\n        metadata = _this$props5.metadata;\n      return this.useMemoCountrySelectOptions(function () {\n        return sortCountryOptions(_getCountrySelectOptions({\n          countries: countries || getCountries(metadata),\n          countryNames: labels,\n          addInternationalOption: international && countryCallingCodeEditable === false ? false : addInternationalOption,\n          compareStringsLocales: locales\n          // compareStrings\n        }), getSupportedCountryOptions(countryOptionsOrder, metadata));\n      }, [countries, countryOptionsOrder, addInternationalOption, labels, metadata]);\n    }\n  }, {\n    key: \"useMemoCountrySelectOptions\",\n    value: function useMemoCountrySelectOptions(generator, dependencies) {\n      if (!this.countrySelectOptionsMemoDependencies || !areEqualArrays(dependencies, this.countrySelectOptionsMemoDependencies)) {\n        this.countrySelectOptionsMemo = generator();\n        this.countrySelectOptionsMemoDependencies = dependencies;\n      }\n      return this.countrySelectOptionsMemo;\n    }\n  }, {\n    key: \"getFirstSupportedCountry\",\n    value: function getFirstSupportedCountry(_ref2) {\n      var countries = _ref2.countries;\n      var countryOptions = this.getCountrySelectOptions({\n        countries: countries\n      });\n      return countryOptions[0].value;\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props6 = this.props,\n        name = _this$props6.name,\n        disabled = _this$props6.disabled,\n        readOnly = _this$props6.readOnly,\n        autoComplete = _this$props6.autoComplete,\n        style = _this$props6.style,\n        className = _this$props6.className,\n        inputRef = _this$props6.inputRef,\n        inputComponent = _this$props6.inputComponent,\n        numberInputProps = _this$props6.numberInputProps,\n        smartCaret = _this$props6.smartCaret,\n        CountrySelectComponent = _this$props6.countrySelectComponent,\n        countrySelectProps = _this$props6.countrySelectProps,\n        ContainerComponent = _this$props6.containerComponent,\n        containerComponentProps = _this$props6.containerComponentProps,\n        defaultCountry = _this$props6.defaultCountry,\n        countriesProperty = _this$props6.countries,\n        countryOptionsOrder = _this$props6.countryOptionsOrder,\n        labels = _this$props6.labels,\n        flags = _this$props6.flags,\n        flagComponent = _this$props6.flagComponent,\n        flagUrl = _this$props6.flagUrl,\n        addInternationalOption = _this$props6.addInternationalOption,\n        internationalIcon = _this$props6.internationalIcon,\n        displayInitialValueAsLocalNumber = _this$props6.displayInitialValueAsLocalNumber,\n        initialValueFormat = _this$props6.initialValueFormat,\n        onCountryChange = _this$props6.onCountryChange,\n        limitMaxLength = _this$props6.limitMaxLength,\n        countryCallingCodeEditable = _this$props6.countryCallingCodeEditable,\n        focusInputOnCountrySelection = _this$props6.focusInputOnCountrySelection,\n        reset = _this$props6.reset,\n        metadata = _this$props6.metadata,\n        international = _this$props6.international,\n        locales = _this$props6.locales,\n        rest = _objectWithoutProperties(_this$props6, _excluded);\n      var _this$state3 = this.state,\n        country = _this$state3.country,\n        countries = _this$state3.countries,\n        phoneDigits = _this$state3.phoneDigits,\n        isFocused = _this$state3.isFocused;\n      var InputComponent = smartCaret ? InputSmart : InputBasic;\n      var countrySelectOptions = this.getCountrySelectOptions({\n        countries: countries\n      });\n      return /*#__PURE__*/React.createElement(ContainerComponent, _extends({\n        style: style,\n        className: classNames(className, 'PhoneInput', {\n          'PhoneInput--focus': isFocused,\n          'PhoneInput--disabled': disabled,\n          'PhoneInput--readOnly': readOnly\n        })\n      }, containerComponentProps), /*#__PURE__*/React.createElement(CountrySelectComponent, _extends({\n        name: name ? \"\".concat(name, \"Country\") : undefined,\n        \"aria-label\": labels.country\n      }, countrySelectProps, {\n        value: country,\n        options: countrySelectOptions,\n        onChange: this.onCountryChange,\n        onFocus: this.onCountryFocus,\n        onBlur: this.onCountryBlur,\n        disabled: disabled || countrySelectProps && countrySelectProps.disabled,\n        readOnly: readOnly || countrySelectProps && countrySelectProps.readOnly,\n        iconComponent: this.CountryIcon\n      })), /*#__PURE__*/React.createElement(InputComponent, _extends({\n        ref: this.setInputRef,\n        type: \"tel\",\n        autoComplete: autoComplete\n      }, numberInputProps, rest, {\n        inputFormat: international === true ? 'INTERNATIONAL' : international === false ? 'NATIONAL' : 'INTERNATIONAL_OR_NATIONAL',\n        international: international ? true : undefined,\n        withCountryCallingCode: international ? true : undefined,\n        name: name,\n        metadata: metadata,\n        country: country,\n        value: phoneDigits || '',\n        onChange: this.onChange,\n        onFocus: this.onFocus,\n        onBlur: this.onBlur,\n        disabled: disabled,\n        readOnly: readOnly,\n        inputComponent: inputComponent,\n        className: classNames('PhoneInputInput', numberInputProps && numberInputProps.className, rest.className)\n      })));\n    }\n  }], [{\n    key: \"getDerivedStateFromProps\",\n    value:\n    // `state` holds previous props as `props`, and also:\n    // * `country` — The currently selected country, e.g. `\"RU\"`.\n    // * `value` — The currently entered phone number (E.164), e.g. `+78005553535`.\n    // * `phoneDigits` — The parsed `<input/>` value, e.g. `8005553535`.\n    // (and a couple of other less significant properties)\n    function getDerivedStateFromProps(props, state) {\n      return _objectSpread({\n        // Emulate `prevProps` via `state.props`.\n        props: props\n      }, getPhoneInputWithCountryStateUpdateFromNewProps(props, state.props, state));\n    }\n  }]);\n}(React.PureComponent); // This wrapper is only to `.forwardRef()` to the `<input/>`.\nvar PhoneNumberInput = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  return /*#__PURE__*/React.createElement(PhoneNumberInput_, _extends({}, withDefaultProps(props), {\n    inputRef: ref\n  }));\n});\nPhoneNumberInput.propTypes = {\n  /**\r\n   * Phone number in `E.164` format.\r\n   *\r\n   * Example:\r\n   *\r\n   * `\"+12223333333\"`\r\n   *\r\n   * Any \"falsy\" value like `undefined`, `null` or an empty string `\"\"` is treated like \"empty\".\r\n   */\n  value: PropTypes.string,\n  /**\r\n   * A function of `value: string?`.\r\n   *\r\n   * Updates the `value` property as the user inputs a phone number.\r\n   *\r\n   * If the user erases the input value, the argument is `undefined`.\r\n   */\n  onChange: PropTypes.func.isRequired,\n  /**\r\n   * Toggles the `--focus` CSS class.\r\n   * @ignore\r\n   */\n  onFocus: PropTypes.func,\n  /**\r\n   * `onBlur` is usually passed by `redux-form`.\r\n   * @ignore\r\n   */\n  onBlur: PropTypes.func,\n  /**\r\n   * Set to `true` to mark both the phone number `<input/>`\r\n   * and the country `<select/>` as `disabled`.\r\n   */\n  disabled: PropTypes.bool,\n  /**\r\n   * Set to `true` to mark both the phone number `<input/>`\r\n   * and the country `<select/>` as `readonly`.\r\n   */\n  readOnly: PropTypes.bool,\n  /**\r\n   * Sets `autoComplete` property for phone number `<input/>`.\r\n   *\r\n   * Web browser's \"autocomplete\" feature\r\n   * remembers the phone number being input\r\n   * and can also autofill the `<input/>`\r\n   * with previously remembered phone numbers.\r\n   *\r\n   * https://developers.google.com\r\n   * /web/updates/2015/06/checkout-faster-with-autofill\r\n   *\r\n   * For example, can be used to turn it off:\r\n   *\r\n   * \"So when should you use `autocomplete=\"off\"`?\r\n   *  One example is when you've implemented your own version\r\n   *  of autocomplete for search. Another example is any form field\r\n   *  where users will input and submit different kinds of information\r\n   *  where it would not be useful to have the browser remember\r\n   *  what was submitted previously\".\r\n   */\n  // (is `\"tel\"` by default)\n  autoComplete: PropTypes.string,\n  /**\r\n   * Set to `\"national\"` to show the initial `value` in\r\n   * \"national\" format rather than \"international\".\r\n   *\r\n   * For example, if `initialValueFormat` is `\"national\"`\r\n   * and the initial `value=\"+12133734253\"` is passed\r\n   * then the `<input/>` value will be `\"(213) 373-4253\"`.\r\n   *\r\n   * By default, `initialValueFormat` is `undefined`,\r\n   * meaning that if the initial `value=\"+12133734253\"` is passed\r\n   * then the `<input/>` value will be `\"+1 213 373 4253\"`.\r\n   *\r\n   * The reason for such default behaviour is that\r\n   * the newer generation grows up when there are no stationary phones\r\n   * and therefore everyone inputs phone numbers in international format\r\n   * in their smartphones so people gradually get more accustomed to\r\n   * writing phone numbers in international format rather than in local format.\r\n   * Future people won't be using \"national\" format, only \"international\".\r\n   */\n  // (is `undefined` by default)\n  initialValueFormat: PropTypes.oneOf(['national']),\n  // `displayInitialValueAsLocalNumber` property has been\n  // superceded by `initialValueFormat` property.\n  displayInitialValueAsLocalNumber: PropTypes.bool,\n  /**\r\n   * The country to be selected by default.\r\n   * For example, can be set after a GeoIP lookup.\r\n   *\r\n   * Example: `\"US\"`.\r\n   */\n  // A two-letter country code (\"ISO 3166-1 alpha-2\").\n  defaultCountry: PropTypes.string,\n  /**\r\n   * If specified, only these countries will be available for selection.\r\n   *\r\n   * Example:\r\n   *\r\n   * `[\"RU\", \"UA\", \"KZ\"]`\r\n   */\n  countries: PropTypes.arrayOf(PropTypes.string),\n  /**\r\n   * Custom country `<select/>` option names.\r\n   * Also some labels like \"ext\" and country `<select/>` `aria-label`.\r\n   *\r\n   * Example:\r\n   *\r\n   * `{ \"ZZ\": \"Международный\", RU: \"Россия\", US: \"США\", ... }`\r\n   *\r\n   * See the `locales` directory for examples.\r\n   */\n  labels: labelsPropType,\n  /**\r\n   * Country `<select/>` options are sorted by their labels.\r\n   * The default sorting function uses `a.localeCompare(b, locales)`,\r\n   * and, if that's not available, falls back to simple `a > b` / `a < b`.\r\n   * Some languages, like Chinese, support multiple sorting variants\r\n   * (called \"collations\"), and the user might prefer one or another.\r\n   * Also, sometimes the Operating System language is not always\r\n   * the preferred language for a person using a website or an application,\r\n   * so there should be a way to specify custom locale.\r\n   * This `locales` property mimicks the `locales` argument of `Intl` constructors,\r\n   * and can be either a Unicode BCP 47 locale identifier or an array of such locale identifiers.\r\n   * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument\r\n   */\n  locales: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n  /*\r\n   * Custom country `<select/>` options sorting function.\r\n   * The default one uses `a.localeCompare(b)`, and,\r\n   * if that's not available, falls back to simple `a > b`/`a < b`.\r\n   * There have been requests to add custom sorter for cases\r\n   * like Chinese language and \"pinyin\" (non-default) sorting order.\r\n   * https://stackoverflow.com/questions/22907288/chinese-sorting-by-pinyin-in-javascript-with-localecompare\r\n  compareStrings: PropTypes.func,\r\n   */\n\n  /**\r\n   * A URL template of a country flag, where\r\n   * \"{XX}\" is a two-letter country code in upper case,\r\n   * or where \"{xx}\" is a two-letter country code in lower case.\r\n   * By default it points to `country-flag-icons` gitlab pages website.\r\n   * I imagine someone might want to download those country flag icons\r\n   * and host them on their own servers instead\r\n   * (all flags are available in the `country-flag-icons` library).\r\n   * There's a catch though: new countries may be added in future,\r\n   * so when hosting country flag icons on your own server\r\n   * one should check the `CHANGELOG.md` every time before updating this library,\r\n   * otherwise there's a possibility that some new country flag would be missing.\r\n   */\n  flagUrl: PropTypes.string,\n  /**\r\n   * Custom country flag icon components.\r\n   * These flags will be used instead of the default ones.\r\n   * The the \"Flags\" section of the readme for more info.\r\n   *\r\n   * The shape is an object where keys are country codes\r\n   * and values are flag icon components.\r\n   * Flag icon components receive the same properties\r\n   * as `flagComponent` (see below).\r\n   *\r\n   * Example:\r\n   *\r\n   * `{ \"RU\": (props) => <img src=\"...\"/> }`\r\n   *\r\n   * Example:\r\n   *\r\n   * `import flags from 'country-flag-icons/react/3x2'`\r\n   *\r\n   * `import PhoneInput from 'react-phone-number-input'`\r\n   *\r\n   * `<PhoneInput flags={flags} .../>`\r\n   */\n  flags: PropTypes.objectOf(PropTypes.elementType),\n  /**\r\n   * Country flag icon component.\r\n   *\r\n   * Takes properties:\r\n   *\r\n   * * `country: string` — The country code.\r\n   * * `countryName: string` — The country name.\r\n   * * `flagUrl: string` — The `flagUrl` property (see above).\r\n   * * `flags: object` — The `flags` property (see above).\r\n   */\n  flagComponent: PropTypes.elementType,\n  /**\r\n   * Set to `false` to remove the \"International\" option from country `<select/>`.\r\n   */\n  addInternationalOption: PropTypes.bool,\n  /**\r\n   * \"International\" icon component.\r\n   * Should have the same aspect ratio.\r\n   *\r\n   * Receives properties:\r\n   *\r\n   * * `title: string` — \"International\" country option label.\r\n   */\n  internationalIcon: PropTypes.elementType,\n  /**\r\n   * Can be used to place some countries on top of the list of country `<select/>` options.\r\n   *\r\n   * * `\"XX\"` — inserts an option for \"XX\" country.\r\n   * * `\"🌐\"` — inserts \"International\" option.\r\n   * * `\"|\"` — inserts a separator.\r\n   * * `\"...\"` — inserts options for the rest of the countries (can be omitted, in which case it will be automatically added at the end).\r\n   *\r\n   * Example:\r\n   *\r\n   * `[\"US\", \"CA\", \"AU\", \"|\", \"...\"]`\r\n   */\n  countryOptionsOrder: PropTypes.arrayOf(PropTypes.string),\n  /**\r\n   * `<Phone/>` component CSS style object.\r\n   */\n  style: PropTypes.object,\n  /**\r\n   * `<Phone/>` component CSS class.\r\n   */\n  className: PropTypes.string,\n  /**\r\n   * Country `<select/>` component.\r\n   *\r\n   * Receives properties:\r\n   *\r\n   * * `name: string?` — HTML `name` attribute.\r\n   * * `value: string?` — The currently selected country code.\r\n   * * `onChange(value: string?)` — Updates the `value`.\r\n   * * `onFocus()` — Is used to toggle the `--focus` CSS class.\r\n   * * `onBlur()` — Is used to toggle the `--focus` CSS class.\r\n   * * `options: object[]` — The list of all selectable countries (including \"International\") each being an object of shape `{ value: string?, label: string }`.\r\n   * * `iconComponent: PropTypes.elementType` — React component that renders a country icon: `<Icon country={value}/>`. If `country` is `undefined` then it renders an \"International\" icon.\r\n   * * `disabled: boolean?` — HTML `disabled` attribute.\r\n   * * `readOnly: boolean?` — HTML `readOnly` attribute.\r\n   * * `tabIndex: (number|string)?` — HTML `tabIndex` attribute.\r\n   * * `className: string` — CSS class name.\r\n   */\n  countrySelectComponent: PropTypes.elementType,\n  /**\r\n   * Country `<select/>` component props.\r\n   * Along with the usual DOM properties such as `aria-label` and `tabIndex`,\r\n   * some custom properties are supported, such as `arrowComponent` and `unicodeFlags`.\r\n   */\n  countrySelectProps: PropTypes.object,\n  /**\r\n   * Phone number `<input/>` component.\r\n   *\r\n   * Receives properties:\r\n   *\r\n   * * `value: string` — The formatted `value`.\r\n   * * `onChange(event: Event)` — Updates the formatted `value` from `event.target.value`.\r\n   * * `onFocus()` — Is used to toggle the `--focus` CSS class.\r\n   * * `onBlur()` — Is used to toggle the `--focus` CSS class.\r\n   * * Other properties like `type=\"tel\"` or `autoComplete=\"tel\"` that should be passed through to the DOM `<input/>`.\r\n   *\r\n   * Must also either use `React.forwardRef()` to \"forward\" `ref` to the `<input/>` or implement `.focus()` method.\r\n   */\n  inputComponent: PropTypes.elementType,\n  /**\r\n   * Phone number `<input/>` component props.\r\n   */\n  numberInputProps: PropTypes.object,\n  /**\r\n   * Wrapping `<div/>` component.\r\n   *\r\n   * Receives properties:\r\n   *\r\n   * * `style: object` — A component CSS style object.\r\n   * * `className: string` — Classes to attach to the component, typically changes when component focuses or blurs.\r\n   */\n  containerComponent: PropTypes.elementType,\n  /**\r\n   * Wrapping `<div/>` component props.\r\n   */\n  containerComponentProps: PropTypes.object,\n  /**\r\n   * When the user attempts to insert a digit somewhere in the middle of a phone number,\r\n   * the caret position is moved right before the next available digit skipping\r\n   * any punctuation in between. This is called \"smart\" caret positioning.\r\n   * Another case would be the phone number format changing as a result of\r\n   * the user inserting the digit somewhere in the middle, which would require\r\n   * re-positioning the caret because all digit positions have changed.\r\n   * This \"smart\" caret positioning feature can be turned off by passing\r\n   * `smartCaret={false}` property: use it in case of any possible issues\r\n   * with caret position during phone number input.\r\n   */\n  // Is `true` by default.\n  smartCaret: PropTypes.bool,\n  /**\r\n   * Set to `true` to force \"international\" phone number format.\r\n   * Set to `false` to force \"national\" phone number format.\r\n   * By default it's `undefined` meaning that it doesn't enforce any phone number format:\r\n   * the user can input their phone number in either \"national\" or \"international\" format.\r\n   */\n  international: PropTypes.bool,\n  /**\r\n   * If set to `true`, the phone number input will get trimmed\r\n   * if it exceeds the maximum length for the country.\r\n   */\n  limitMaxLength: PropTypes.bool,\n  /**\r\n   * If set to `false`, and `international` is `true`, then\r\n   * users won't be able to erase the \"country calling part\"\r\n   * of a phone number in the `<input/>`.\r\n   */\n  countryCallingCodeEditable: PropTypes.bool,\n  /**\r\n   * `libphonenumber-js` metadata.\r\n   *\r\n   * Can be used to pass custom `libphonenumber-js` metadata\r\n   * to reduce the overall bundle size for those who compile \"custom\" metadata.\r\n   */\n  metadata: metadataPropType,\n  /**\r\n   * Is called every time the selected country changes:\r\n   * either programmatically or when user selects it manually from the list.\r\n   */\n  // People have been asking for a way to get the selected country.\n  // @see  https://github.com/catamphetamine/react-phone-number-input/issues/128\n  // For some it's just a \"business requirement\".\n  // I guess it's about gathering as much info on the user as a website can\n  // without introducing any addional fields that would complicate the form\n  // therefore reducing \"conversion\" (that's a marketing term).\n  // Assuming that the phone number's country is the user's country\n  // is not 100% correct but in most cases I guess it's valid.\n  onCountryChange: PropTypes.func,\n  /**\r\n   * If set to `false`, will not focus the `<input/>` component\r\n   * when the user selects a country from the list of countries.\r\n   * This can be used to conform to the Web Content Accessibility Guidelines (WCAG).\r\n   * Quote:\r\n   * \"On input: Changing the setting of any user interface component\r\n   *  does not automatically cause a change of context unless the user\r\n   *  has been advised of the behaviour before using the component.\"\r\n   */\n  focusInputOnCountrySelection: PropTypes.bool\n};\nvar defaultProps = {\n  /**\r\n   * Remember (and autofill) the value as a phone number.\r\n   */\n  autoComplete: 'tel',\n  /**\r\n   * Country `<select/>` component.\r\n   */\n  countrySelectComponent: CountrySelect,\n  /**\r\n   * Flag icon component.\r\n   */\n  flagComponent: Flag,\n  /**\r\n   * By default, uses icons from `country-flag-icons` gitlab pages website.\r\n   */\n  // Must be equal to `flagUrl` in `./CountryIcon.js`.\n  flagUrl: 'https://purecatamphetamine.github.io/country-flag-icons/3x2/{XX}.svg',\n  /**\r\n   * Default \"International\" country `<select/>` option icon.\r\n   */\n  internationalIcon: InternationalIcon,\n  /**\r\n   * Phone number `<input/>` component.\r\n   */\n  inputComponent: 'input',\n  /**\r\n   * Wrapping `<div/>` component.\r\n   */\n  containerComponent: 'div',\n  /**\r\n   * Some users requested a way to reset the component:\r\n   * both number `<input/>` and country `<select/>`.\r\n   * Whenever `reset` property changes both number `<input/>`\r\n   * and country `<select/>` are reset.\r\n   * It's not implemented as some instance `.reset()` method\r\n   * because `ref` is forwarded to `<input/>`.\r\n   * It's also not replaced with just resetting `country` on\r\n   * external `value` reset, because a user could select a country\r\n   * and then not input any `value`, and so the selected country\r\n   * would be \"stuck\", if not using this `reset` property.\r\n   */\n  // https://github.com/catamphetamine/react-phone-number-input/issues/300\n  reset: PropTypes.any,\n  /**\r\n   *\r\n   */\n\n  /**\r\n   * Set to `false` to use \"basic\" caret instead of the \"smart\" one.\r\n   */\n  smartCaret: true,\n  /**\r\n   * Whether to add the \"International\" option\r\n   * to the list of countries.\r\n   */\n  addInternationalOption: true,\n  /**\r\n   * If set to `false`, and `international` is `true`, then\r\n   * users won't be able to erase the \"country calling part\"\r\n   * of a phone number in the `<input/>`.\r\n   */\n  countryCallingCodeEditable: true,\n  /**\r\n   * If set to `false`, will not focus the `<input/>` component\r\n   * when the user selects a country from the list of countries.\r\n   * This can be used to conform to the Web Content Accessibility Guidelines (WCAG).\r\n   * Quote:\r\n   * \"On input: Changing the setting of any user interface component\r\n   *  does not automatically cause a change of context unless the user\r\n   *  has been advised of the behaviour before using the component.\"\r\n   */\n  focusInputOnCountrySelection: true\n};\nfunction withDefaultProps(props) {\n  props = _objectSpread({}, props);\n  for (var key in defaultProps) {\n    if (props[key] === undefined) {\n      props[key] = defaultProps[key];\n    }\n  }\n  return props;\n}\nexport default PhoneNumberInput;\nfunction areEqualArrays(a, b) {\n  if (a.length !== b.length) {\n    return false;\n  }\n  var i = 0;\n  while (i < a.length) {\n    if (a[i] !== b[i]) {\n      return false;\n    }\n    i++;\n  }\n  return true;\n}\n//# sourceMappingURL=PhoneInputWithCountry.js.map","var _excluded = [\"metadata\", \"labels\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport defaultLabels from '../locale/en.json.js';\nimport { metadata as metadataPropType, labels as labelsPropType } from './PropTypes.js';\nimport PhoneInput from './PhoneInputWithCountry.js';\nexport function createPhoneInput(defaultMetadata) {\n  var PhoneInputDefault = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n    var _ref$metadata = _ref.metadata,\n      metadata = _ref$metadata === void 0 ? defaultMetadata : _ref$metadata,\n      _ref$labels = _ref.labels,\n      labels = _ref$labels === void 0 ? defaultLabels : _ref$labels,\n      rest = _objectWithoutProperties(_ref, _excluded);\n    return /*#__PURE__*/React.createElement(PhoneInput, _extends({}, rest, {\n      ref: ref,\n      metadata: metadata,\n      labels: labels\n    }));\n  });\n  PhoneInputDefault.propTypes = {\n    metadata: metadataPropType,\n    labels: labelsPropType\n  };\n  return PhoneInputDefault;\n}\nexport default createPhoneInput();\n//# sourceMappingURL=PhoneInputWithCountryDefault.js.map","import metadata from 'libphonenumber-js/min/metadata'\r\n\r\nimport {\r\n\tparsePhoneNumber as _parsePhoneNumber,\r\n\tformatPhoneNumber as _formatPhoneNumber,\r\n\tformatPhoneNumberIntl as _formatPhoneNumberIntl,\r\n\tisValidPhoneNumber as _isValidPhoneNumber,\r\n\tisPossiblePhoneNumber as _isPossiblePhoneNumber,\r\n\tgetCountries as _getCountries,\r\n\tgetCountryCallingCode as _getCountryCallingCode,\r\n\tisSupportedCountry as _isSupportedCountry\r\n} from '../core/index.js'\r\n\r\nimport { createPhoneInput } from '../modules/PhoneInputWithCountryDefault.js'\r\n\r\nfunction call(func, _arguments) {\r\n\tvar args = Array.prototype.slice.call(_arguments)\r\n\targs.push(metadata)\r\n\treturn func.apply(this, args)\r\n}\r\n\r\nexport default createPhoneInput(metadata)\r\n\r\nexport function parsePhoneNumber() {\r\n\treturn call(_parsePhoneNumber, arguments)\r\n}\r\n\r\nexport function formatPhoneNumber() {\r\n\treturn call(_formatPhoneNumber, arguments)\r\n}\r\n\r\nexport function formatPhoneNumberIntl() {\r\n\treturn call(_formatPhoneNumberIntl, arguments)\r\n}\r\n\r\nexport function isValidPhoneNumber() {\r\n\treturn call(_isValidPhoneNumber, arguments)\r\n}\r\n\r\nexport function isPossiblePhoneNumber() {\r\n\treturn call(_isPossiblePhoneNumber, arguments)\r\n}\r\n\r\nexport function getCountries() {\r\n\treturn call(_getCountries, arguments)\r\n}\r\n\r\nexport function getCountryCallingCode() {\r\n\treturn call(_getCountryCallingCode, arguments)\r\n}\r\n\r\nexport function isSupportedCountry() {\r\n\treturn call(_isSupportedCountry, arguments)\r\n}"],"sourceRoot":""}