@bagelink/vue 0.0.943 → 0.0.947

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/dist/components/AddressSaerch.vue.d.ts +7 -0
  2. package/dist/components/AddressSaerch.vue.d.ts.map +1 -0
  3. package/dist/components/ComboBox.vue.d.ts +3 -3
  4. package/dist/components/Comments.vue.d.ts +2 -2
  5. package/dist/components/ContactSubmissions.vue.d.ts +2 -2
  6. package/dist/components/DropDown.vue.d.ts +186 -17
  7. package/dist/components/DropDown.vue.d.ts.map +1 -1
  8. package/dist/components/FormSchema.vue.d.ts +4 -5
  9. package/dist/components/LangText.vue.d.ts +2 -2
  10. package/dist/components/ModalBglForm.vue.d.ts +20 -21
  11. package/dist/components/PersonPreview.vue.d.ts +4 -5
  12. package/dist/components/PersonPreviewFormkit.vue.d.ts +3 -4
  13. package/dist/components/Popover.vue.d.ts +10 -0
  14. package/dist/components/Popover.vue.d.ts.map +1 -0
  15. package/dist/components/RTXEditor.vue.d.ts +3 -3
  16. package/dist/components/TabbedLayout.vue.d.ts +4 -5
  17. package/dist/components/TableSchema.vue.d.ts +11 -2
  18. package/dist/components/TableSchema.vue.d.ts.map +1 -1
  19. package/dist/components/charts/BarChart.vue.d.ts +2 -2
  20. package/dist/components/form/BglField.vue.d.ts +6 -2
  21. package/dist/components/form/BglField.vue.d.ts.map +1 -1
  22. package/dist/components/form/BglMultiStepForm.vue.d.ts +21 -3
  23. package/dist/components/form/BglMultiStepForm.vue.d.ts.map +1 -1
  24. package/dist/components/form/ItemRef.vue.d.ts +3 -5
  25. package/dist/components/form/ItemRef.vue.d.ts.map +1 -1
  26. package/dist/components/form/MaterialIcon.vue.d.ts +3 -4
  27. package/dist/components/form/PlainInputField.vue.d.ts +3 -3
  28. package/dist/components/form/inputs/CurrencyInput.vue.d.ts +3 -3
  29. package/dist/components/form/inputs/DatetimeInput.vue.d.ts +3 -3
  30. package/dist/components/form/inputs/DurationInput.vue.d.ts +3 -3
  31. package/dist/components/form/inputs/DynamicLinkField.vue.d.ts +3 -3
  32. package/dist/components/form/inputs/EmailInput.vue.d.ts +3 -3
  33. package/dist/components/form/inputs/FileUpload.vue.d.ts +2 -2
  34. package/dist/components/form/inputs/FileUpload.vue.d.ts.map +1 -1
  35. package/dist/components/form/inputs/FloatInput.vue.d.ts +3 -3
  36. package/dist/components/form/inputs/IntInput.vue.d.ts +3 -3
  37. package/dist/components/form/inputs/LinkField.vue.d.ts +3 -3
  38. package/dist/components/form/inputs/Password.vue.d.ts +3 -3
  39. package/dist/components/form/inputs/PlainText.vue.d.ts +3 -3
  40. package/dist/components/form/inputs/RadioGroup.vue.d.ts +6 -2
  41. package/dist/components/form/inputs/RadioGroup.vue.d.ts.map +1 -1
  42. package/dist/components/form/inputs/ReadOnlyInput.vue.d.ts +2 -2
  43. package/dist/components/form/inputs/RichTextEditor.vue.d.ts +3 -3
  44. package/dist/components/form/inputs/SelectField.vue.d.ts +8 -6
  45. package/dist/components/form/inputs/SelectField.vue.d.ts.map +1 -1
  46. package/dist/components/form/inputs/SelectInput.vue.d.ts +50 -2
  47. package/dist/components/form/inputs/SelectInput.vue.d.ts.map +1 -1
  48. package/dist/components/form/inputs/SignaturePad.vue.d.ts.map +1 -1
  49. package/dist/components/form/inputs/TextArea.vue.d.ts +3 -3
  50. package/dist/components/formkit/AddressArray.vue.d.ts +2 -2
  51. package/dist/components/formkit/BankDetailsArray.vue.d.ts +2 -2
  52. package/dist/components/formkit/ContactArrayFormKit.vue.d.ts +2 -2
  53. package/dist/components/formkit/FileUploader.vue.d.ts +2 -2
  54. package/dist/components/formkit/MiscFields.vue.d.ts +2 -2
  55. package/dist/components/formkit/Toggle.vue.d.ts +2 -2
  56. package/dist/components/sortable/Animation.d.ts +43 -0
  57. package/dist/components/sortable/Animation.d.ts.map +1 -0
  58. package/dist/components/sortable/BrowserInfo.d.ts +7 -0
  59. package/dist/components/sortable/BrowserInfo.d.ts.map +1 -0
  60. package/dist/components/sortable/EventDispatcher.d.ts +13 -0
  61. package/dist/components/sortable/EventDispatcher.d.ts.map +1 -0
  62. package/dist/components/sortable/PluginManager.d.ts +27 -0
  63. package/dist/components/sortable/PluginManager.d.ts.map +1 -0
  64. package/dist/components/sortable/Sortable.d.ts +81 -0
  65. package/dist/components/sortable/Sortable.d.ts.map +1 -0
  66. package/dist/components/sortable/index.d.ts +5 -0
  67. package/dist/components/sortable/index.d.ts.map +1 -0
  68. package/dist/components/sortable/utils.d.ts +49 -0
  69. package/dist/components/sortable/utils.d.ts.map +1 -0
  70. package/dist/components/whatsapp/form/MsgTemplate.vue.d.ts +3 -4
  71. package/dist/components/whatsapp/form/TextVariableExamples.vue.d.ts +2 -2
  72. package/dist/composables/drag-n-drop/useDraggable.d.ts +2 -0
  73. package/dist/composables/drag-n-drop/useDraggable.d.ts.map +1 -0
  74. package/dist/index.cjs +1439 -1523
  75. package/dist/index.mjs +1439 -1523
  76. package/dist/plugins/drag-n-drop/draggable.d.ts +4 -0
  77. package/dist/plugins/drag-n-drop/draggable.d.ts.map +1 -0
  78. package/dist/plugins/drag-n-drop/droppable.d.ts +4 -0
  79. package/dist/plugins/drag-n-drop/droppable.d.ts.map +1 -0
  80. package/dist/plugins/drag-n-drop/index.d.ts +5 -0
  81. package/dist/plugins/drag-n-drop/index.d.ts.map +1 -0
  82. package/dist/plugins/drag-n-drop/useDraggable.d.ts +8 -0
  83. package/dist/plugins/drag-n-drop/useDraggable.d.ts.map +1 -0
  84. package/dist/plugins/drag-n-drop/useDroppable.d.ts +7 -0
  85. package/dist/plugins/drag-n-drop/useDroppable.d.ts.map +1 -0
  86. package/dist/style.css +181 -180
  87. package/dist/types/materialIcon.d.ts +2 -0
  88. package/dist/types/materialIcon.d.ts.map +1 -0
  89. package/dist/utils/BagelFormUtils.d.ts +30 -2
  90. package/dist/utils/BagelFormUtils.d.ts.map +1 -1
  91. package/dist/utils/objects.d.ts +0 -1
  92. package/package.json +1 -1
  93. package/src/components/form/inputs/FileUpload.vue +13 -10
  94. package/src/components/form/inputs/SignaturePad.vue +0 -10
  95. package/src/styles/inputs.css +149 -144
  96. package/dist/components/Accordion.d.ts +0 -12
  97. package/dist/components/Accordion.d.ts.map +0 -1
  98. package/dist/components/AccordionItem.d.ts +0 -34
  99. package/dist/components/AccordionItem.d.ts.map +0 -1
  100. package/dist/components/Alert.d.ts +0 -34
  101. package/dist/components/Alert.d.ts.map +0 -1
  102. package/dist/components/Avatar.d.ts +0 -36
  103. package/dist/components/Avatar.d.ts.map +0 -1
  104. package/dist/components/Badge.d.ts +0 -22
  105. package/dist/components/Badge.d.ts.map +0 -1
  106. package/dist/components/BglVideo.d.ts +0 -20
  107. package/dist/components/BglVideo.d.ts.map +0 -1
  108. package/dist/components/Btn.d.ts +0 -99
  109. package/dist/components/Btn.d.ts.map +0 -1
  110. package/dist/components/Card.d.ts +0 -39
  111. package/dist/components/Card.d.ts.map +0 -1
  112. package/dist/components/Carousel.d.ts +0 -74
  113. package/dist/components/Carousel.d.ts.map +0 -1
  114. package/dist/components/DataPreview.d.ts +0 -42
  115. package/dist/components/DataPreview.d.ts.map +0 -1
  116. package/dist/components/Drop.vue.d.ts +0 -34
  117. package/dist/components/Drop.vue.d.ts.map +0 -1
  118. package/dist/components/FileUploader.vue.d.ts +0 -60
  119. package/dist/components/FileUploader.vue.d.ts.map +0 -1
  120. package/dist/components/Flag.d.ts +0 -20
  121. package/dist/components/Flag.d.ts.map +0 -1
  122. package/dist/components/ListItem.d.ts +0 -34
  123. package/dist/components/ListItem.d.ts.map +0 -1
  124. package/dist/components/ListView.d.ts +0 -13
  125. package/dist/components/ListView.d.ts.map +0 -1
  126. package/dist/components/MapEmbed.d.ts +0 -3
  127. package/dist/components/MapEmbed.d.ts.map +0 -1
  128. package/dist/components/MaterialIcon.d.ts +0 -26
  129. package/dist/components/MaterialIcon.d.ts.map +0 -1
  130. package/dist/components/Modal.d.ts +0 -46
  131. package/dist/components/Modal.d.ts.map +0 -1
  132. package/dist/components/ModalConfirm.d.ts +0 -24
  133. package/dist/components/ModalConfirm.d.ts.map +0 -1
  134. package/dist/components/ModalForm.d.ts +0 -78
  135. package/dist/components/ModalForm.d.ts.map +0 -1
  136. package/dist/components/NavBar.d.ts +0 -64
  137. package/dist/components/NavBar.d.ts.map +0 -1
  138. package/dist/components/PageTitle.d.ts +0 -24
  139. package/dist/components/PageTitle.d.ts.map +0 -1
  140. package/dist/components/RouterWrapper.d.ts +0 -3
  141. package/dist/components/RouterWrapper.d.ts.map +0 -1
  142. package/dist/components/TableSchema.d.ts +0 -35
  143. package/dist/components/TableSchema.d.ts.map +0 -1
  144. package/dist/components/Title.d.ts +0 -42
  145. package/dist/components/Title.d.ts.map +0 -1
  146. package/dist/components/TopBar.d.ts +0 -12
  147. package/dist/components/TopBar.d.ts.map +0 -1
  148. package/dist/components/dashboard/Lineart.d.ts +0 -20
  149. package/dist/components/dashboard/Lineart.d.ts.map +0 -1
  150. package/dist/components/form/BglField.d.ts +0 -25
  151. package/dist/components/form/BglField.d.ts.map +0 -1
  152. package/dist/components/form/BglForm.d.ts +0 -75
  153. package/dist/components/form/BglForm.d.ts.map +0 -1
  154. package/dist/components/form/inputs/CheckInput.d.ts +0 -56
  155. package/dist/components/form/inputs/CheckInput.d.ts.map +0 -1
  156. package/dist/components/form/inputs/Checkbox.d.ts +0 -16
  157. package/dist/components/form/inputs/Checkbox.d.ts.map +0 -1
  158. package/dist/components/form/inputs/ColorPicker.d.ts +0 -48
  159. package/dist/components/form/inputs/ColorPicker.d.ts.map +0 -1
  160. package/dist/components/form/inputs/DateInput.d.ts +0 -64
  161. package/dist/components/form/inputs/DateInput.d.ts.map +0 -1
  162. package/dist/components/form/inputs/DatePicker.d.ts +0 -33
  163. package/dist/components/form/inputs/DatePicker.d.ts.map +0 -1
  164. package/dist/components/form/inputs/FileUpload.d.ts +0 -108
  165. package/dist/components/form/inputs/FileUpload.d.ts.map +0 -1
  166. package/dist/components/form/inputs/JSONInput.d.ts +0 -53
  167. package/dist/components/form/inputs/JSONInput.d.ts.map +0 -1
  168. package/dist/components/form/inputs/RadioGroup.d.ts +0 -42
  169. package/dist/components/form/inputs/RadioGroup.d.ts.map +0 -1
  170. package/dist/components/form/inputs/RadioPillsInput.d.ts +0 -48
  171. package/dist/components/form/inputs/RadioPillsInput.d.ts.map +0 -1
  172. package/dist/components/form/inputs/RichText.d.ts +0 -20
  173. package/dist/components/form/inputs/RichText.d.ts.map +0 -1
  174. package/dist/components/form/inputs/RichText2/Toolbar.d.ts +0 -22
  175. package/dist/components/form/inputs/RichText2/Toolbar.d.ts.map +0 -1
  176. package/dist/components/form/inputs/RichText2/index.d.ts +0 -24
  177. package/dist/components/form/inputs/RichText2/index.d.ts.map +0 -1
  178. package/dist/components/form/inputs/SelectInput.d.ts +0 -55
  179. package/dist/components/form/inputs/SelectInput.d.ts.map +0 -1
  180. package/dist/components/form/inputs/SignaturePad.d.ts +0 -72
  181. package/dist/components/form/inputs/SignaturePad.d.ts.map +0 -1
  182. package/dist/components/form/inputs/TableField.d.ts +0 -45
  183. package/dist/components/form/inputs/TableField.d.ts.map +0 -1
  184. package/dist/components/form/inputs/TelInput.d.ts +0 -241
  185. package/dist/components/form/inputs/TelInput.d.ts.map +0 -1
  186. package/dist/components/form/inputs/TextInput.d.ts +0 -90
  187. package/dist/components/form/inputs/TextInput.d.ts.map +0 -1
  188. package/dist/components/form/inputs/ToggleInput.d.ts +0 -58
  189. package/dist/components/form/inputs/ToggleInput.d.ts.map +0 -1
  190. package/dist/components/layout/BottomMenu.d.ts +0 -27
  191. package/dist/components/layout/BottomMenu.d.ts.map +0 -1
  192. package/dist/components/layout/Layout.d.ts +0 -58
  193. package/dist/components/layout/Layout.d.ts.map +0 -1
  194. package/dist/components/layout/SidebarMenu.d.ts +0 -38
  195. package/dist/components/layout/SidebarMenu.d.ts.map +0 -1
  196. package/dist/components/layout/TabbedLayout.d.ts +0 -42
  197. package/dist/components/layout/TabbedLayout.d.ts.map +0 -1
  198. package/dist/components/layout/Tabs.d.ts +0 -31
  199. package/dist/components/layout/Tabs.d.ts.map +0 -1
  200. package/dist/components/layout/TabsBody.d.ts +0 -23
  201. package/dist/components/layout/TabsBody.d.ts.map +0 -1
  202. package/dist/components/layout/TabsNav.d.ts +0 -35
  203. package/dist/components/layout/TabsNav.d.ts.map +0 -1
  204. package/dist/vue.css +0 -13814
package/dist/index.mjs CHANGED
@@ -7553,9 +7553,10 @@ async function convertValueToCoords(state2, options) {
7553
7553
  crossAxis: 0,
7554
7554
  alignmentAxis: null
7555
7555
  } : {
7556
- mainAxis: rawValue.mainAxis || 0,
7557
- crossAxis: rawValue.crossAxis || 0,
7558
- alignmentAxis: rawValue.alignmentAxis
7556
+ mainAxis: 0,
7557
+ crossAxis: 0,
7558
+ alignmentAxis: null,
7559
+ ...rawValue
7559
7560
  };
7560
7561
  if (alignment && typeof alignmentAxis === "number") {
7561
7562
  crossAxis = alignment === "end" ? alignmentAxis * -1 : alignmentAxis;
@@ -7660,11 +7661,7 @@ const shift$1 = function(options) {
7660
7661
  ...limitedCoords,
7661
7662
  data: {
7662
7663
  x: limitedCoords.x - x2,
7663
- y: limitedCoords.y - y2,
7664
- enabled: {
7665
- [mainAxis]: checkMainAxis,
7666
- [crossAxis]: checkCrossAxis
7667
- }
7664
+ y: limitedCoords.y - y2
7668
7665
  }
7669
7666
  };
7670
7667
  }
@@ -7678,7 +7675,6 @@ const size = function(options) {
7678
7675
  name: "size",
7679
7676
  options,
7680
7677
  async fn(state2) {
7681
- var _state$middlewareData, _state$middlewareData2;
7682
7678
  const {
7683
7679
  placement,
7684
7680
  rects,
@@ -7714,11 +7710,10 @@ const size = function(options) {
7714
7710
  const noShift = !state2.middlewareData.shift;
7715
7711
  let availableHeight = overflowAvailableHeight;
7716
7712
  let availableWidth = overflowAvailableWidth;
7717
- if ((_state$middlewareData = state2.middlewareData.shift) != null && _state$middlewareData.enabled.x) {
7718
- availableWidth = maximumClippingWidth;
7719
- }
7720
- if ((_state$middlewareData2 = state2.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {
7721
- availableHeight = maximumClippingHeight;
7713
+ if (isYAxis) {
7714
+ availableWidth = alignment || noShift ? min$1(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;
7715
+ } else {
7716
+ availableHeight = alignment || noShift ? min$1(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;
7722
7717
  }
7723
7718
  if (noShift && !alignment) {
7724
7719
  const xMin = max$1(overflow.left, 0);
@@ -18654,39 +18649,46 @@ const _sfc_main$E = /* @__PURE__ */ defineComponent({
18654
18649
  }
18655
18650
  });
18656
18651
  const _hoisted_1$v = { class: "bagel-input" };
18657
- const _hoisted_2$l = { class: "ellipsis-1 word-break-all h-20 m-0" };
18658
- const _hoisted_3$h = {
18652
+ const _hoisted_2$l = {
18659
18653
  key: 0,
18660
- class: "txt-gray txt-12"
18654
+ placeholder: "required",
18655
+ type: "text",
18656
+ required: "",
18657
+ class: "pixel"
18661
18658
  };
18659
+ const _hoisted_3$h = { class: "ellipsis-1 word-break-all h-20 m-0" };
18662
18660
  const _hoisted_4$b = {
18661
+ key: 0,
18662
+ class: "txt-gray txt-12"
18663
+ };
18664
+ const _hoisted_5$a = {
18663
18665
  key: 0,
18664
18666
  class: "bgl-multi-preview"
18665
18667
  };
18666
- const _hoisted_5$a = ["src"];
18667
- const _hoisted_6$8 = { class: "m-0" };
18668
- const _hoisted_7$5 = ["width", "src"];
18669
- const _hoisted_8$3 = { class: "no-margin multi-preview-txt" };
18670
- const _hoisted_9$2 = {
18668
+ const _hoisted_6$8 = ["src"];
18669
+ const _hoisted_7$5 = { class: "m-0" };
18670
+ const _hoisted_8$3 = ["width", "src"];
18671
+ const _hoisted_9$2 = { class: "no-margin multi-preview-txt" };
18672
+ const _hoisted_10$2 = {
18671
18673
  key: 0,
18672
18674
  class: "progress"
18673
18675
  };
18674
- const _hoisted_10$2 = {
18676
+ const _hoisted_11$1 = {
18675
18677
  key: 1,
18676
18678
  class: "bgl-single-preview"
18677
18679
  };
18678
- const _hoisted_11$1 = {
18680
+ const _hoisted_12$1 = {
18679
18681
  key: 0,
18680
18682
  class: "h-100"
18681
18683
  };
18682
- const _hoisted_12$1 = ["src"];
18683
- const _hoisted_13$1 = { class: "position-start m-05 flex opacity-7" };
18684
- const _hoisted_14$1 = {
18684
+ const _hoisted_13$1 = ["src"];
18685
+ const _hoisted_14$1 = { class: "position-start m-05 flex opacity-7" };
18686
+ const _hoisted_15$1 = {
18685
18687
  key: 0,
18686
18688
  class: "progress"
18687
18689
  };
18688
- const _hoisted_15$1 = ["src"];
18689
- const _hoisted_16 = { class: "p-1 flex column hover fileUploadPlaceHolder justify-content-center mb-05" };
18690
+ const _hoisted_16 = ["src"];
18691
+ const _hoisted_17 = { class: "p-1 flex column hover fileUploadPlaceHolder justify-content-center mb-05" };
18690
18692
  const _sfc_main$D = /* @__PURE__ */ defineComponent({
18691
18693
  __name: "FileUpload",
18692
18694
  props: {
@@ -18701,7 +18703,8 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
18701
18703
  fill: { type: Boolean },
18702
18704
  oval: { type: Boolean },
18703
18705
  theme: {},
18704
- accept: {}
18706
+ accept: {},
18707
+ required: { type: Boolean }
18705
18708
  },
18706
18709
  emits: ["update:modelValue", "addFileStart"],
18707
18710
  setup(__props, { emit: __emit }) {
@@ -18753,13 +18756,14 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
18753
18756
  { immediate: true }
18754
18757
  );
18755
18758
  const theme = props2.theme || "dropzone";
18756
- watch(() => props2.modelValue, () => {
18757
- const newModelValue = props2.modelValue || [];
18758
- const currentValue = [file_bindkeys.value].flat();
18759
- const newValue = [newModelValue].flat();
18760
- const isSame = currentValue.every((id) => newValue.includes(id)) && newValue.every((id) => currentValue.includes(id)) && currentValue.length === newValue.length;
18759
+ function compareLists(a2, b2) {
18760
+ return [a2].flat().every((id) => [b2].flat().includes(id)) && [b2].flat().every((id) => [a2].flat().includes(id));
18761
+ }
18762
+ watch(() => props2.modelValue, (newVal = []) => {
18763
+ console.log(newVal);
18764
+ const isSame = compareLists(file_bindkeys.value, newVal);
18761
18765
  if (!isSame) {
18762
- file_bindkeys.value = newModelValue;
18766
+ file_bindkeys.value = newVal;
18763
18767
  for (const fle of storageFiles.value) {
18764
18768
  const index2 = [file_bindkeys.value].flat().findIndex((key) => fle[bindKey2] === key);
18765
18769
  if (index2 === -1) storageFiles.value.splice(index2, 1);
@@ -18773,7 +18777,7 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
18773
18777
  } else {
18774
18778
  idValue = storageFiles.value[0][bindKey2] || "";
18775
18779
  }
18776
- const isSame = [idValue].flat().every((id) => [file_bindkeys.value].flat().includes(id)) && [file_bindkeys.value].flat().every((id) => [idValue].flat().includes(id));
18780
+ const isSame = compareLists(file_bindkeys.value, idValue);
18777
18781
  if (!isSame) {
18778
18782
  file_bindkeys.value = idValue;
18779
18783
  emit2("update:modelValue", file_bindkeys.value);
@@ -18849,8 +18853,9 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
18849
18853
  const _directive_tooltip = resolveDirective("tooltip");
18850
18854
  return openBlock(), createElementBlock("div", _hoisted_1$v, [
18851
18855
  createElementVNode("label", null, toDisplayString(_ctx.label), 1),
18856
+ _ctx.required ? (openBlock(), createElementBlock("input", _hoisted_2$l)) : createCommentVNode("", true),
18852
18857
  unref(theme) === "basic" ? (openBlock(), createBlock(unref(_sfc_main$R), {
18853
- key: 0,
18858
+ key: 1,
18854
18859
  outline: "",
18855
18860
  class: "flex p-05 gap-1",
18856
18861
  onDragover: dragover,
@@ -18873,7 +18878,7 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
18873
18878
  key: file.id,
18874
18879
  class: "txt-gray txt-12 flex"
18875
18880
  }, [
18876
- createElementVNode("p", _hoisted_2$l, toDisplayString(file.name), 1),
18881
+ createElementVNode("p", _hoisted_3$h, toDisplayString(file.name), 1),
18877
18882
  createVNode(unref(Btn), {
18878
18883
  thin: "",
18879
18884
  flat: "",
@@ -18883,11 +18888,11 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
18883
18888
  }, null, 8, ["onClick"])
18884
18889
  ]);
18885
18890
  }), 128)),
18886
- !storageFiles.value.length && !fileQueue.value.length ? (openBlock(), createElementBlock("span", _hoisted_3$h, " No file selected ")) : createCommentVNode("", true)
18891
+ !storageFiles.value.length && !fileQueue.value.length ? (openBlock(), createElementBlock("span", _hoisted_4$b, " No file selected ")) : createCommentVNode("", true)
18887
18892
  ]),
18888
18893
  _: 1
18889
18894
  })) : (openBlock(), createElementBlock("div", {
18890
- key: 1,
18895
+ key: 2,
18891
18896
  class: normalizeClass(["fileUploadWrap", {
18892
18897
  "fileDropZone": !storageFiles.value.length && !fileQueue.value.length,
18893
18898
  "dragover": unref(isDragOver),
@@ -18903,7 +18908,7 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
18903
18908
  files: storageFiles.value,
18904
18909
  fileQueue: fileQueue.value
18905
18910
  }, () => [
18906
- _ctx.multiple ? (openBlock(), createElementBlock("div", _hoisted_4$b, [
18911
+ _ctx.multiple ? (openBlock(), createElementBlock("div", _hoisted_5$a, [
18907
18912
  (openBlock(true), createElementBlock(Fragment$1, null, renderList(storageFiles.value, (file) => {
18908
18913
  return withDirectives((openBlock(), createElementBlock("div", {
18909
18914
  key: file.id,
@@ -18914,12 +18919,12 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
18914
18919
  class: "multi-preview",
18915
18920
  src: file.url,
18916
18921
  alt: ""
18917
- }, null, 8, _hoisted_5$a)) : (openBlock(), createBlock(unref(_sfc_main$c), {
18922
+ }, null, 8, _hoisted_6$8)) : (openBlock(), createBlock(unref(_sfc_main$c), {
18918
18923
  key: 1,
18919
18924
  icon: "draft",
18920
18925
  class: "multi-preview"
18921
18926
  })),
18922
- createElementVNode("p", _hoisted_6$8, toDisplayString(file.name), 1),
18927
+ createElementVNode("p", _hoisted_7$5, toDisplayString(file.name), 1),
18923
18928
  createVNode(unref(Btn), {
18924
18929
  thin: "",
18925
18930
  flat: "",
@@ -18943,18 +18948,18 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
18943
18948
  class: "multi-preview",
18944
18949
  src: fileToUrl(fileQ.file),
18945
18950
  alt: ""
18946
- }, null, 8, _hoisted_7$5)) : createCommentVNode("", true)
18951
+ }, null, 8, _hoisted_8$3)) : createCommentVNode("", true)
18947
18952
  ], 64)) : (openBlock(), createBlock(unref(_sfc_main$c), {
18948
18953
  key: 1,
18949
18954
  icon: "draft",
18950
18955
  class: "multi-preview"
18951
18956
  })),
18952
- createElementVNode("p", _hoisted_8$3, toDisplayString(fileQ.name), 1),
18957
+ createElementVNode("p", _hoisted_9$2, toDisplayString(fileQ.name), 1),
18953
18958
  createElementVNode("div", {
18954
18959
  class: normalizeClass(["pie", { complete: fileQ.progress === 100 }]),
18955
18960
  style: normalizeStyle([`--p:${fileQ.progress}`, { "--b": "2px" }])
18956
18961
  }, [
18957
- fileQ.progress < 100 ? (openBlock(), createElementBlock("span", _hoisted_9$2, toDisplayString(`${fileQ.progress.toFixed(0)}`), 1)) : createCommentVNode("", true),
18962
+ fileQ.progress < 100 ? (openBlock(), createElementBlock("span", _hoisted_10$2, toDisplayString(`${fileQ.progress.toFixed(0)}`), 1)) : createCommentVNode("", true),
18958
18963
  createVNode(unref(_sfc_main$c), {
18959
18964
  class: "success",
18960
18965
  icon: "check"
@@ -18963,21 +18968,21 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
18963
18968
  ]);
18964
18969
  }), 128))
18965
18970
  ])) : createCommentVNode("", true),
18966
- !_ctx.multiple && (storageFiles.value.length > 0 || fileQueue.value.length > 0) ? (openBlock(), createElementBlock("div", _hoisted_10$2, [
18971
+ !_ctx.multiple && (storageFiles.value.length > 0 || fileQueue.value.length > 0) ? (openBlock(), createElementBlock("div", _hoisted_11$1, [
18967
18972
  (openBlock(true), createElementBlock(Fragment$1, null, renderList(storageFiles.value, (file) => {
18968
18973
  return openBlock(), createElementBlock("div", {
18969
18974
  key: file.id,
18970
18975
  class: normalizeClass(["single-image-item-preview", { "bgl_fill-image": _ctx.fill }])
18971
18976
  }, [
18972
- isImage(file.extension || file.url) ? (openBlock(), createElementBlock("div", _hoisted_11$1, [
18977
+ isImage(file.extension || file.url) ? (openBlock(), createElementBlock("div", _hoisted_12$1, [
18973
18978
  withDirectives(createElementVNode("img", {
18974
18979
  class: "single-preview",
18975
18980
  src: file.url,
18976
18981
  alt: ""
18977
- }, null, 8, _hoisted_12$1), [
18982
+ }, null, 8, _hoisted_13$1), [
18978
18983
  [_directive_lightbox, { src: file.url, download: true }]
18979
18984
  ]),
18980
- createElementVNode("div", _hoisted_13$1, [
18985
+ createElementVNode("div", _hoisted_14$1, [
18981
18986
  withDirectives(createVNode(unref(Btn), {
18982
18987
  color: "gray",
18983
18988
  thin: "",
@@ -19027,7 +19032,7 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
19027
19032
  class: normalizeClass(["pie", { complete: fileQ.progress === 100 }]),
19028
19033
  style: normalizeStyle([`--p:${fileQ.progress}`, { "--b": "2px" }])
19029
19034
  }, [
19030
- fileQ.progress < 100 ? (openBlock(), createElementBlock("span", _hoisted_14$1, toDisplayString(`${fileQ.progress.toFixed(0)}`), 1)) : createCommentVNode("", true),
19035
+ fileQ.progress < 100 ? (openBlock(), createElementBlock("span", _hoisted_15$1, toDisplayString(`${fileQ.progress.toFixed(0)}`), 1)) : createCommentVNode("", true),
19031
19036
  createVNode(unref(_sfc_main$c), {
19032
19037
  class: "success",
19033
19038
  icon: "check"
@@ -19038,7 +19043,7 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
19038
19043
  class: "single-preview",
19039
19044
  src: fileToUrl(fileQ.file),
19040
19045
  alt: ""
19041
- }, null, 8, _hoisted_15$1)) : createCommentVNode("", true)
19046
+ }, null, 8, _hoisted_16)) : createCommentVNode("", true)
19042
19047
  ], 2);
19043
19048
  }), 128))
19044
19049
  ])) : createCommentVNode("", true)
@@ -19049,7 +19054,7 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
19049
19054
  fileQueue: fileQueue.value,
19050
19055
  browse
19051
19056
  }, () => [
19052
- createElementVNode("p", _hoisted_16, [
19057
+ createElementVNode("p", _hoisted_17, [
19053
19058
  createVNode(unref(_sfc_main$c), { icon: "upload_2" }),
19054
19059
  _cache[2] || (_cache[2] = createTextVNode(" Drop files here or click to upload "))
19055
19060
  ])
@@ -19059,7 +19064,7 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
19059
19064
  };
19060
19065
  }
19061
19066
  });
19062
- const $el = /* @__PURE__ */ _export_sfc(_sfc_main$D, [["__scopeId", "data-v-6ce2a678"]]);
19067
+ const $el = /* @__PURE__ */ _export_sfc(_sfc_main$D, [["__scopeId", "data-v-d2c7e04e"]]);
19063
19068
  const _hoisted_1$u = ["title"];
19064
19069
  const _hoisted_2$k = { key: 0 };
19065
19070
  const _hoisted_3$g = ["value", "placeholder"];
@@ -20640,12 +20645,6 @@ let Node$2 = class Node2 {
20640
20645
  this.content = content || Fragment.empty;
20641
20646
  }
20642
20647
  /**
20643
- The array of this node's child nodes.
20644
- */
20645
- get children() {
20646
- return this.content.content;
20647
- }
20648
- /**
20649
20648
  The size of this node, as defined by the integer-based [indexing
20650
20649
  scheme](/docs/guide/#doc.indexing). For text nodes, this is the
20651
20650
  amount of characters. For other leaf nodes, it is one. For
@@ -21332,7 +21331,7 @@ function resolveName(stream, name) {
21332
21331
  let result2 = [];
21333
21332
  for (let typeName in types) {
21334
21333
  let type4 = types[typeName];
21335
- if (type4.isInGroup(name))
21334
+ if (type4.groups.indexOf(name) > -1)
21336
21335
  result2.push(type4);
21337
21336
  }
21338
21337
  if (result2.length == 0)
@@ -21570,13 +21569,6 @@ let NodeType$1 = class NodeType2 {
21570
21569
  return this.isLeaf || !!this.spec.atom;
21571
21570
  }
21572
21571
  /**
21573
- Return true when this node type is part of the given
21574
- [group](https://prosemirror.net/docs/ref/#model.NodeSpec.group).
21575
- */
21576
- isInGroup(group) {
21577
- return this.groups.indexOf(group) > -1;
21578
- }
21579
- /**
21580
21572
  The node type's [whitespace](https://prosemirror.net/docs/ref/#model.NodeSpec.whitespace) option.
21581
21573
  */
21582
21574
  get whitespace() {
@@ -22332,7 +22324,6 @@ class ParseContext {
22332
22324
  contentDOM = rule.contentElement;
22333
22325
  this.findAround(dom, contentDOM, true);
22334
22326
  this.addAll(contentDOM, marks);
22335
- this.findAround(dom, contentDOM, false);
22336
22327
  }
22337
22328
  if (sync && this.sync(startIn))
22338
22329
  this.open--;
@@ -22508,7 +22499,7 @@ class ParseContext {
22508
22499
  return false;
22509
22500
  } else {
22510
22501
  let next = depth > 0 || depth == 0 && useRoot ? this.nodes[depth].type : option2 && depth >= minDepth ? option2.node(depth - minDepth).type : null;
22511
- if (!next || next.name != part && !next.isInGroup(part))
22502
+ if (!next || next.name != part && next.groups.indexOf(part) == -1)
22512
22503
  return false;
22513
22504
  depth--;
22514
22505
  }
@@ -23768,24 +23759,8 @@ function canJoin(doc2, pos) {
23768
23759
  let $pos = doc2.resolve(pos), index2 = $pos.index();
23769
23760
  return joinable($pos.nodeBefore, $pos.nodeAfter) && $pos.parent.canReplace(index2, index2 + 1);
23770
23761
  }
23771
- function canAppendWithSubstitutedLinebreaks(a2, b2) {
23772
- if (!b2.content.size)
23773
- a2.type.compatibleContent(b2.type);
23774
- let match2 = a2.contentMatchAt(a2.childCount);
23775
- let { linebreakReplacement } = a2.type.schema;
23776
- for (let i2 = 0; i2 < b2.childCount; i2++) {
23777
- let child = b2.child(i2);
23778
- let type3 = child.type == linebreakReplacement ? a2.type.schema.nodes.text : child.type;
23779
- match2 = match2.matchType(type3);
23780
- if (!match2)
23781
- return false;
23782
- if (!a2.type.allowsMarks(child.marks))
23783
- return false;
23784
- }
23785
- return match2.validEnd;
23786
- }
23787
23762
  function joinable(a2, b2) {
23788
- return !!(a2 && b2 && !a2.isLeaf && canAppendWithSubstitutedLinebreaks(a2, b2));
23763
+ return !!(a2 && b2 && !a2.isLeaf && a2.canAppend(b2));
23789
23764
  }
23790
23765
  function joinPoint(doc2, pos, dir = -1) {
23791
23766
  let $pos = doc2.resolve(pos);
@@ -23810,31 +23785,8 @@ function joinPoint(doc2, pos, dir = -1) {
23810
23785
  }
23811
23786
  }
23812
23787
  function join(tr2, pos, depth) {
23813
- let convertNewlines = null;
23814
- let { linebreakReplacement } = tr2.doc.type.schema;
23815
- let $before = tr2.doc.resolve(pos - depth), beforeType = $before.node().type;
23816
- if (linebreakReplacement && beforeType.inlineContent) {
23817
- let pre = beforeType.whitespace == "pre";
23818
- let supportLinebreak = !!beforeType.contentMatch.matchType(linebreakReplacement);
23819
- if (pre && !supportLinebreak)
23820
- convertNewlines = false;
23821
- else if (!pre && supportLinebreak)
23822
- convertNewlines = true;
23823
- }
23824
- let mapFrom = tr2.steps.length;
23825
- if (convertNewlines === false) {
23826
- let $after = tr2.doc.resolve(pos + depth);
23827
- replaceLinebreaks(tr2, $after.node(), $after.before(), mapFrom);
23828
- }
23829
- if (beforeType.inlineContent)
23830
- clearIncompatible(tr2, pos + depth - 1, beforeType, $before.node().contentMatchAt($before.index()), convertNewlines == null);
23831
- let mapping = tr2.mapping.slice(mapFrom), start2 = mapping.map(pos - depth);
23832
- tr2.step(new ReplaceStep(start2, mapping.map(pos + depth, -1), Slice.empty, true));
23833
- if (convertNewlines === true) {
23834
- let $full = tr2.doc.resolve(start2);
23835
- replaceNewlines(tr2, $full.node(), $full.before(), tr2.steps.length);
23836
- }
23837
- return tr2;
23788
+ let step = new ReplaceStep(pos - depth, pos + depth, Slice.empty, true);
23789
+ tr2.step(step);
23838
23790
  }
23839
23791
  function insertPoint(doc2, pos, nodeType) {
23840
23792
  let $pos = doc2.resolve(pos);
@@ -24230,7 +24182,7 @@ function deleteRange$1(tr2, from2, to2) {
24230
24182
  return tr2.delete($from.before(depth), $to.after(depth));
24231
24183
  }
24232
24184
  for (let d2 = 1; d2 <= $from.depth && d2 <= $to.depth; d2++) {
24233
- if (from2 - $from.start(d2) == $from.depth - d2 && to2 > $from.end(d2) && $to.end(d2) - to2 != $to.depth - d2 && $from.start(d2 - 1) == $to.start(d2 - 1) && $from.node(d2 - 1).canReplace($from.index(d2 - 1), $to.index(d2 - 1)))
24185
+ if (from2 - $from.start(d2) == $from.depth - d2 && to2 > $from.end(d2) && $to.end(d2) - to2 != $to.depth - d2)
24234
24186
  return tr2.delete($from.before(d2), to2);
24235
24187
  }
24236
24188
  tr2.delete(from2, to2);
@@ -26384,18 +26336,17 @@ class ViewDesc {
26384
26336
  // custom things with the selection. Note that this falls apart when
26385
26337
  // a selection starts in such a node and ends in another, in which
26386
26338
  // case we just use whatever domFromPos produces as a best effort.
26387
- setSelection(anchor, head, view, force = false) {
26339
+ setSelection(anchor, head, root2, force = false) {
26388
26340
  let from2 = Math.min(anchor, head), to2 = Math.max(anchor, head);
26389
26341
  for (let i2 = 0, offset2 = 0; i2 < this.children.length; i2++) {
26390
26342
  let child = this.children[i2], end2 = offset2 + child.size;
26391
26343
  if (from2 > offset2 && to2 < end2)
26392
- return child.setSelection(anchor - offset2 - child.border, head - offset2 - child.border, view, force);
26344
+ return child.setSelection(anchor - offset2 - child.border, head - offset2 - child.border, root2, force);
26393
26345
  offset2 = end2;
26394
26346
  }
26395
26347
  let anchorDOM = this.domFromPos(anchor, anchor ? -1 : 1);
26396
26348
  let headDOM = head == anchor ? anchorDOM : this.domFromPos(head, head ? -1 : 1);
26397
- let domSel = view.root.getSelection();
26398
- let selRange = view.domSelectionRange();
26349
+ let domSel = root2.getSelection();
26399
26350
  let brKludge = false;
26400
26351
  if ((gecko || safari) && anchor == head) {
26401
26352
  let { node, offset: offset2 } = anchorDOM;
@@ -26418,12 +26369,12 @@ class ViewDesc {
26418
26369
  brKludge = prev && (prev.nodeName == "BR" || prev.contentEditable == "false");
26419
26370
  }
26420
26371
  }
26421
- if (gecko && selRange.focusNode && selRange.focusNode != headDOM.node && selRange.focusNode.nodeType == 1) {
26422
- let after = selRange.focusNode.childNodes[selRange.focusOffset];
26372
+ if (gecko && domSel.focusNode && domSel.focusNode != headDOM.node && domSel.focusNode.nodeType == 1) {
26373
+ let after = domSel.focusNode.childNodes[domSel.focusOffset];
26423
26374
  if (after && after.contentEditable == "false")
26424
26375
  force = true;
26425
26376
  }
26426
- if (!(force || brKludge && safari) && isEquivalentPosition(anchorDOM.node, anchorDOM.offset, selRange.anchorNode, selRange.anchorOffset) && isEquivalentPosition(headDOM.node, headDOM.offset, selRange.focusNode, selRange.focusOffset))
26377
+ if (!(force || brKludge && safari) && isEquivalentPosition(anchorDOM.node, anchorDOM.offset, domSel.anchorNode, domSel.anchorOffset) && isEquivalentPosition(headDOM.node, headDOM.offset, domSel.focusNode, domSel.focusOffset))
26427
26378
  return;
26428
26379
  let domSelExtended = false;
26429
26380
  if ((domSel.extend || anchor == head) && !brKludge) {
@@ -26564,17 +26515,16 @@ class CompositionViewDesc extends ViewDesc {
26564
26515
  }
26565
26516
  }
26566
26517
  class MarkViewDesc extends ViewDesc {
26567
- constructor(parent, mark, dom, contentDOM, spec) {
26518
+ constructor(parent, mark, dom, contentDOM) {
26568
26519
  super(parent, [], dom, contentDOM);
26569
26520
  this.mark = mark;
26570
- this.spec = spec;
26571
26521
  }
26572
26522
  static create(parent, mark, inline, view) {
26573
26523
  let custom2 = view.nodeViews[mark.type.name];
26574
26524
  let spec = custom2 && custom2(mark, view, inline);
26575
26525
  if (!spec || !spec.dom)
26576
26526
  spec = DOMSerializer.renderSpec(document, mark.type.spec.toDOM(mark, inline), null, mark.attrs);
26577
- return new MarkViewDesc(parent, mark, spec.dom, spec.contentDOM || spec.dom, spec);
26527
+ return new MarkViewDesc(parent, mark, spec.dom, spec.contentDOM || spec.dom);
26578
26528
  }
26579
26529
  parseRule() {
26580
26530
  if (this.dirty & NODE_DIRTY || this.mark.type.spec.reparseInView)
@@ -26607,14 +26557,6 @@ class MarkViewDesc extends ViewDesc {
26607
26557
  copy2.children = nodes;
26608
26558
  return copy2;
26609
26559
  }
26610
- ignoreMutation(mutation) {
26611
- return this.spec.ignoreMutation ? this.spec.ignoreMutation(mutation) : super.ignoreMutation(mutation);
26612
- }
26613
- destroy() {
26614
- if (this.spec.destroy)
26615
- this.spec.destroy();
26616
- super.destroy();
26617
- }
26618
26560
  }
26619
26561
  class NodeViewDesc extends ViewDesc {
26620
26562
  constructor(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, view, pos) {
@@ -26906,7 +26848,7 @@ class CustomNodeViewDesc extends NodeViewDesc {
26906
26848
  update(node, outerDeco, innerDeco, view) {
26907
26849
  if (this.dirty == NODE_DIRTY)
26908
26850
  return false;
26909
- if (this.spec.update && (this.node.type == node.type || this.spec.multiType)) {
26851
+ if (this.spec.update) {
26910
26852
  let result2 = this.spec.update(node, outerDeco, innerDeco);
26911
26853
  if (result2)
26912
26854
  this.updateInner(node, outerDeco, innerDeco, view);
@@ -26923,8 +26865,8 @@ class CustomNodeViewDesc extends NodeViewDesc {
26923
26865
  deselectNode() {
26924
26866
  this.spec.deselectNode ? this.spec.deselectNode() : super.deselectNode();
26925
26867
  }
26926
- setSelection(anchor, head, view, force) {
26927
- this.spec.setSelection ? this.spec.setSelection(anchor, head, view.root) : super.setSelection(anchor, head, view, force);
26868
+ setSelection(anchor, head, root2, force) {
26869
+ this.spec.setSelection ? this.spec.setSelection(anchor, head, root2) : super.setSelection(anchor, head, root2, force);
26928
26870
  }
26929
26871
  destroy() {
26930
26872
  if (this.spec.destroy)
@@ -27511,7 +27453,7 @@ function selectionToDOM(view, force = false) {
27511
27453
  if (!sel.empty && !sel.$from.parent.inlineContent)
27512
27454
  resetEditableTo = temporarilyEditableNear(view, sel.to);
27513
27455
  }
27514
- view.docView.setSelection(anchor, head, view, force);
27456
+ view.docView.setSelection(anchor, head, view.root, force);
27515
27457
  if (brokenSelectBetweenUneditable) {
27516
27458
  if (resetEditableFrom)
27517
27459
  resetEditable(resetEditableFrom);
@@ -28147,14 +28089,11 @@ let _detachedDoc = null;
28147
28089
  function detachedDoc() {
28148
28090
  return _detachedDoc || (_detachedDoc = document.implementation.createHTMLDocument("title"));
28149
28091
  }
28150
- let _policy = null;
28151
28092
  function maybeWrapTrusted(html) {
28152
28093
  let trustedTypes = window.trustedTypes;
28153
28094
  if (!trustedTypes)
28154
28095
  return html;
28155
- if (!_policy)
28156
- _policy = trustedTypes.createPolicy("ProseMirrorClipboard", { createHTML: (s2) => s2 });
28157
- return _policy.createHTML(html);
28096
+ return trustedTypes.createPolicy("detachedDocument", { createHTML: (s2) => s2 }).createHTML(html);
28158
28097
  }
28159
28098
  function readHTML(html) {
28160
28099
  let metas = /^(\s*<meta [^>]*>)*/.exec(html);
@@ -28286,7 +28225,9 @@ editHandlers.keydown = (view, _event) => {
28286
28225
  view.input.lastKeyCodeTime = Date.now();
28287
28226
  if (android && chrome && event.keyCode == 13)
28288
28227
  return;
28289
- if (event.keyCode != 229)
28228
+ if (view.domObserver.selectionChanged(view.domSelectionRange()))
28229
+ view.domObserver.flush();
28230
+ else if (event.keyCode != 229)
28290
28231
  view.domObserver.forceFlush();
28291
28232
  if (ios && event.keyCode == 13 && !event.ctrlKey && !event.altKey && !event.metaKey) {
28292
28233
  let now = Date.now();
@@ -29664,6 +29605,9 @@ class DOMObserver {
29664
29605
  this.queue.push(mut);
29665
29606
  return this.queue;
29666
29607
  }
29608
+ selectionChanged(sel) {
29609
+ return !this.suppressingSelectionUpdates && !this.currentSelection.eq(sel) && hasFocusAndSelection(this.view) && !this.ignoreSelectionChange(sel);
29610
+ }
29667
29611
  flush() {
29668
29612
  let { view } = this;
29669
29613
  if (!view.docView || this.flushingSoon > -1)
@@ -29671,8 +29615,7 @@ class DOMObserver {
29671
29615
  let mutations = this.pendingRecords();
29672
29616
  if (mutations.length)
29673
29617
  this.queue = [];
29674
- let sel = view.domSelectionRange();
29675
- let newSel = !this.suppressingSelectionUpdates && !this.currentSelection.eq(sel) && hasFocusAndSelection(view) && !this.ignoreSelectionChange(sel);
29618
+ let sel = view.domSelectionRange(), newSel = this.selectionChanged(sel);
29676
29619
  let from2 = -1, to2 = -1, typeOver = false, added = [];
29677
29620
  if (view.editable) {
29678
29621
  for (let i2 = 0; i2 < mutations.length; i2++) {
@@ -31112,7 +31055,7 @@ function joinMaybeClear(state2, $pos, dispatch) {
31112
31055
  if (!$pos.parent.canReplace(index2, index2 + 1) || !(after.isTextblock || canJoin(state2.doc, $pos.pos)))
31113
31056
  return false;
31114
31057
  if (dispatch)
31115
- dispatch(state2.tr.join($pos.pos).scrollIntoView());
31058
+ dispatch(state2.tr.clearIncompatible($pos.pos, before.type, before.contentMatchAt(before.childCount)).join($pos.pos).scrollIntoView());
31116
31059
  return true;
31117
31060
  }
31118
31061
  function deleteBarrier(state2, $cut, dispatch, dir) {
@@ -31128,9 +31071,9 @@ function deleteBarrier(state2, $cut, dispatch, dir) {
31128
31071
  wrap2 = Fragment.from(conn[i2].create(null, wrap2));
31129
31072
  wrap2 = Fragment.from(before.copy(wrap2));
31130
31073
  let tr2 = state2.tr.step(new ReplaceAroundStep($cut.pos - 1, end2, $cut.pos, end2, new Slice(wrap2, 1, 0), conn.length, true));
31131
- let $joinAt = tr2.doc.resolve(end2 + 2 * conn.length);
31132
- if ($joinAt.nodeAfter && $joinAt.nodeAfter.type == before.type && canJoin(tr2.doc, $joinAt.pos))
31133
- tr2.join($joinAt.pos);
31074
+ let joinAt = end2 + 2 * conn.length;
31075
+ if (canJoin(tr2.doc, joinAt))
31076
+ tr2.join(joinAt);
31134
31077
  dispatch(tr2.scrollIntoView());
31135
31078
  }
31136
31079
  return true;
@@ -31495,13 +31438,6 @@ class EventEmitter {
31495
31438
  }
31496
31439
  return this;
31497
31440
  }
31498
- once(event, fn3) {
31499
- const onceFn = (...args) => {
31500
- this.off(event, onceFn);
31501
- fn3.apply(this, args);
31502
- };
31503
- return this.on(event, onceFn);
31504
- }
31505
31441
  removeAllListeners() {
31506
31442
  this.callbacks = {};
31507
31443
  }
@@ -31749,7 +31685,6 @@ function getSchemaByResolvedExtensions(extensions, editor) {
31749
31685
  draggable: callOrReturn(getExtensionField(extension, "draggable", context)),
31750
31686
  code: callOrReturn(getExtensionField(extension, "code", context)),
31751
31687
  whitespace: callOrReturn(getExtensionField(extension, "whitespace", context)),
31752
- linebreakReplacement: callOrReturn(getExtensionField(extension, "linebreakReplacement", context)),
31753
31688
  defining: callOrReturn(getExtensionField(extension, "defining", context)),
31754
31689
  isolating: callOrReturn(getExtensionField(extension, "isolating", context)),
31755
31690
  attrs: Object.fromEntries(extensionAttributes.map((extensionAttribute) => {
@@ -31832,13 +31767,6 @@ function isExtensionRulesEnabled(extension, enabled) {
31832
31767
  }
31833
31768
  return enabled;
31834
31769
  }
31835
- function getHTMLFromFragment(fragment, schema) {
31836
- const documentFragment = DOMSerializer.fromSchema(schema).serializeFragment(fragment);
31837
- const temporaryDocument = document.implementation.createHTMLDocument();
31838
- const container = temporaryDocument.createElement("div");
31839
- container.appendChild(documentFragment);
31840
- return container.innerHTML;
31841
- }
31842
31770
  const getTextContentFromNodes = ($from, maxMatch = 500) => {
31843
31771
  let textBefore = "";
31844
31772
  const sliceEndPos = $from.parentOffset;
@@ -31949,7 +31877,7 @@ function inputRulesPlugin(props2) {
31949
31877
  init() {
31950
31878
  return null;
31951
31879
  },
31952
- apply(tr2, prev, state2) {
31880
+ apply(tr2, prev) {
31953
31881
  const stored = tr2.getMeta(plugin);
31954
31882
  if (stored) {
31955
31883
  return stored;
@@ -31958,13 +31886,7 @@ function inputRulesPlugin(props2) {
31958
31886
  const isSimulatedInput = !!simulatedInputMeta;
31959
31887
  if (isSimulatedInput) {
31960
31888
  setTimeout(() => {
31961
- let { text } = simulatedInputMeta;
31962
- if (typeof text === "string") {
31963
- text = text;
31964
- } else {
31965
- text = getHTMLFromFragment(Fragment.from(text), state2.schema);
31966
- }
31967
- const { from: from2 } = simulatedInputMeta;
31889
+ const { from: from2, text } = simulatedInputMeta;
31968
31890
  const to2 = from2 + text.length;
31969
31891
  run$1({
31970
31892
  editor,
@@ -32033,109 +31955,6 @@ function inputRulesPlugin(props2) {
32033
31955
  });
32034
31956
  return plugin;
32035
31957
  }
32036
- function getType$1(value) {
32037
- return Object.prototype.toString.call(value).slice(8, -1);
32038
- }
32039
- function isPlainObject$1(value) {
32040
- if (getType$1(value) !== "Object") {
32041
- return false;
32042
- }
32043
- return value.constructor === Object && Object.getPrototypeOf(value) === Object.prototype;
32044
- }
32045
- function mergeDeep(target, source) {
32046
- const output = { ...target };
32047
- if (isPlainObject$1(target) && isPlainObject$1(source)) {
32048
- Object.keys(source).forEach((key) => {
32049
- if (isPlainObject$1(source[key]) && isPlainObject$1(target[key])) {
32050
- output[key] = mergeDeep(target[key], source[key]);
32051
- } else {
32052
- output[key] = source[key];
32053
- }
32054
- });
32055
- }
32056
- return output;
32057
- }
32058
- class Mark {
32059
- constructor(config = {}) {
32060
- this.type = "mark";
32061
- this.name = "mark";
32062
- this.parent = null;
32063
- this.child = null;
32064
- this.config = {
32065
- name: this.name,
32066
- defaultOptions: {}
32067
- };
32068
- this.config = {
32069
- ...this.config,
32070
- ...config
32071
- };
32072
- this.name = this.config.name;
32073
- if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {
32074
- console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${this.name}".`);
32075
- }
32076
- this.options = this.config.defaultOptions;
32077
- if (this.config.addOptions) {
32078
- this.options = callOrReturn(getExtensionField(this, "addOptions", {
32079
- name: this.name
32080
- }));
32081
- }
32082
- this.storage = callOrReturn(getExtensionField(this, "addStorage", {
32083
- name: this.name,
32084
- options: this.options
32085
- })) || {};
32086
- }
32087
- static create(config = {}) {
32088
- return new Mark(config);
32089
- }
32090
- configure(options = {}) {
32091
- const extension = this.extend({
32092
- ...this.config,
32093
- addOptions: () => {
32094
- return mergeDeep(this.options, options);
32095
- }
32096
- });
32097
- extension.name = this.name;
32098
- extension.parent = this.parent;
32099
- return extension;
32100
- }
32101
- extend(extendedConfig = {}) {
32102
- const extension = new Mark(extendedConfig);
32103
- extension.parent = this;
32104
- this.child = extension;
32105
- extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name;
32106
- if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {
32107
- console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${extension.name}".`);
32108
- }
32109
- extension.options = callOrReturn(getExtensionField(extension, "addOptions", {
32110
- name: extension.name
32111
- }));
32112
- extension.storage = callOrReturn(getExtensionField(extension, "addStorage", {
32113
- name: extension.name,
32114
- options: extension.options
32115
- }));
32116
- return extension;
32117
- }
32118
- static handleExit({ editor, mark }) {
32119
- const { tr: tr2 } = editor.state;
32120
- const currentPos = editor.state.selection.$from;
32121
- const isAtEnd = currentPos.pos === currentPos.end();
32122
- if (isAtEnd) {
32123
- const currentMarks = currentPos.marks();
32124
- const isInMark = !!currentMarks.find((m2) => (m2 === null || m2 === void 0 ? void 0 : m2.type.name) === mark.name);
32125
- if (!isInMark) {
32126
- return false;
32127
- }
32128
- const removeMark2 = currentMarks.find((m2) => (m2 === null || m2 === void 0 ? void 0 : m2.type.name) === mark.name);
32129
- if (removeMark2) {
32130
- tr2.removeStoredMark(removeMark2);
32131
- }
32132
- tr2.insertText(" ", currentPos.pos);
32133
- editor.view.dispatch(tr2);
32134
- return true;
32135
- }
32136
- return false;
32137
- }
32138
- }
32139
31958
  function isNumber$1(value) {
32140
31959
  return typeof value === "number";
32141
31960
  }
@@ -32222,12 +32041,7 @@ function pasteRulesPlugin(props2) {
32222
32041
  let isPastedFromProseMirror = false;
32223
32042
  let isDroppedFromProseMirror = false;
32224
32043
  let pasteEvent = typeof ClipboardEvent !== "undefined" ? new ClipboardEvent("paste") : null;
32225
- let dropEvent;
32226
- try {
32227
- dropEvent = typeof DragEvent !== "undefined" ? new DragEvent("drop") : null;
32228
- } catch (e) {
32229
- dropEvent = null;
32230
- }
32044
+ let dropEvent = typeof DragEvent !== "undefined" ? new DragEvent("drop") : null;
32231
32045
  const processEvent = ({ state: state2, from: from2, to: to2, rule, pasteEvt }) => {
32232
32046
  const tr2 = state2.tr;
32233
32047
  const chainableState = createChainableState({
@@ -32246,11 +32060,7 @@ function pasteRulesPlugin(props2) {
32246
32060
  if (!handler || !tr2.steps.length) {
32247
32061
  return;
32248
32062
  }
32249
- try {
32250
- dropEvent = typeof DragEvent !== "undefined" ? new DragEvent("drop") : null;
32251
- } catch (e) {
32252
- dropEvent = null;
32253
- }
32063
+ dropEvent = typeof DragEvent !== "undefined" ? new DragEvent("drop") : null;
32254
32064
  pasteEvent = typeof ClipboardEvent !== "undefined" ? new ClipboardEvent("paste") : null;
32255
32065
  return tr2;
32256
32066
  };
@@ -32295,13 +32105,7 @@ function pasteRulesPlugin(props2) {
32295
32105
  return;
32296
32106
  }
32297
32107
  if (isSimulatedPaste) {
32298
- let { text } = simulatedPasteMeta;
32299
- if (typeof text === "string") {
32300
- text = text;
32301
- } else {
32302
- text = getHTMLFromFragment(Fragment.from(text), state2.schema);
32303
- }
32304
- const { from: from3 } = simulatedPasteMeta;
32108
+ const { from: from3, text } = simulatedPasteMeta;
32305
32109
  const to3 = from3 + text.length;
32306
32110
  const pasteEvt = createClipboardPasteEvent(text);
32307
32111
  return processEvent({
@@ -32575,6 +32379,28 @@ class ExtensionManager {
32575
32379
  });
32576
32380
  }
32577
32381
  }
32382
+ function getType$1(value) {
32383
+ return Object.prototype.toString.call(value).slice(8, -1);
32384
+ }
32385
+ function isPlainObject$1(value) {
32386
+ if (getType$1(value) !== "Object") {
32387
+ return false;
32388
+ }
32389
+ return value.constructor === Object && Object.getPrototypeOf(value) === Object.prototype;
32390
+ }
32391
+ function mergeDeep(target, source) {
32392
+ const output = { ...target };
32393
+ if (isPlainObject$1(target) && isPlainObject$1(source)) {
32394
+ Object.keys(source).forEach((key) => {
32395
+ if (isPlainObject$1(source[key]) && isPlainObject$1(target[key])) {
32396
+ output[key] = mergeDeep(target[key], source[key]);
32397
+ } else {
32398
+ output[key] = source[key];
32399
+ }
32400
+ });
32401
+ }
32402
+ return output;
32403
+ }
32578
32404
  class Extension {
32579
32405
  constructor(config = {}) {
32580
32406
  this.type = "extension";
@@ -32825,29 +32651,23 @@ function objectIncludes(object1, object2, options = { strict: true }) {
32825
32651
  }
32826
32652
  function findMarkInSet(marks, type3, attributes = {}) {
32827
32653
  return marks.find((item) => {
32828
- return item.type === type3 && objectIncludes(
32829
- // Only check equality for the attributes that are provided
32830
- Object.fromEntries(Object.keys(attributes).map((k2) => [k2, item.attrs[k2]])),
32831
- attributes
32832
- );
32654
+ return item.type === type3 && objectIncludes(item.attrs, attributes);
32833
32655
  });
32834
32656
  }
32835
32657
  function isMarkInSet(marks, type3, attributes = {}) {
32836
32658
  return !!findMarkInSet(marks, type3, attributes);
32837
32659
  }
32838
- function getMarkRange($pos, type3, attributes) {
32839
- var _a2;
32660
+ function getMarkRange($pos, type3, attributes = {}) {
32840
32661
  if (!$pos || !type3) {
32841
32662
  return;
32842
32663
  }
32843
32664
  let start2 = $pos.parent.childAfter($pos.parentOffset);
32844
- if (!start2.node || !start2.node.marks.some((mark2) => mark2.type === type3)) {
32665
+ if ($pos.parentOffset === start2.offset && start2.offset !== 0) {
32845
32666
  start2 = $pos.parent.childBefore($pos.parentOffset);
32846
32667
  }
32847
- if (!start2.node || !start2.node.marks.some((mark2) => mark2.type === type3)) {
32668
+ if (!start2.node) {
32848
32669
  return;
32849
32670
  }
32850
- attributes = attributes || ((_a2 = start2.node.marks[0]) === null || _a2 === void 0 ? void 0 : _a2.attrs);
32851
32671
  const mark = findMarkInSet([...start2.node.marks], type3, attributes);
32852
32672
  if (!mark) {
32853
32673
  return;
@@ -32856,7 +32676,8 @@ function getMarkRange($pos, type3, attributes) {
32856
32676
  let startPos = $pos.start() + start2.offset;
32857
32677
  let endIndex = startIndex + 1;
32858
32678
  let endPos = startPos + start2.node.nodeSize;
32859
- while (startIndex > 0 && isMarkInSet([...$pos.parent.child(startIndex - 1).marks], type3, attributes)) {
32679
+ findMarkInSet([...start2.node.marks], type3, attributes);
32680
+ while (startIndex > 0 && mark.isInSet($pos.parent.child(startIndex - 1).marks)) {
32860
32681
  startIndex -= 1;
32861
32682
  startPos -= $pos.parent.child(startIndex).nodeSize;
32862
32683
  }
@@ -32997,9 +32818,6 @@ function elementFromString(value) {
32997
32818
  return removeWhitespaces(html);
32998
32819
  }
32999
32820
  function createNodeFromContent(content, schema, options) {
33000
- if (content instanceof Node$2 || content instanceof Fragment) {
33001
- return content;
33002
- }
33003
32821
  options = {
33004
32822
  slice: true,
33005
32823
  parseOptions: {},
@@ -33094,7 +32912,7 @@ const insertContentAt = (position, value, options) => ({ tr: tr2, dispatch, edit
33094
32912
  var _a2;
33095
32913
  if (dispatch) {
33096
32914
  options = {
33097
- parseOptions: editor.options.parseOptions,
32915
+ parseOptions: {},
33098
32916
  updateSelection: true,
33099
32917
  applyInputRules: false,
33100
32918
  applyPasteRules: false,
@@ -33114,9 +32932,7 @@ const insertContentAt = (position, value, options) => ({ tr: tr2, dispatch, edit
33114
32932
  editor,
33115
32933
  error: e,
33116
32934
  disableCollaboration: () => {
33117
- if (editor.storage.collaboration) {
33118
- editor.storage.collaboration.isDisabled = true;
33119
- }
32935
+ console.error("[tiptap error]: Unable to disable collaboration at this point in time");
33120
32936
  }
33121
32937
  });
33122
32938
  return false;
@@ -33142,14 +32958,6 @@ const insertContentAt = (position, value, options) => ({ tr: tr2, dispatch, edit
33142
32958
  if (isOnlyTextContent) {
33143
32959
  if (Array.isArray(value)) {
33144
32960
  newContent = value.map((v2) => v2.text || "").join("");
33145
- } else if (value instanceof Fragment) {
33146
- let text = "";
33147
- value.forEach((node) => {
33148
- if (node.text) {
33149
- text += node.text;
33150
- }
33151
- });
33152
- newContent = text;
33153
32961
  } else if (typeof value === "object" && !!value && !!value.text) {
33154
32962
  newContent = value.text;
33155
32963
  } else {
@@ -33485,6 +33293,13 @@ function findParentNodeClosestToPos($pos, predicate) {
33485
33293
  function findParentNode(predicate) {
33486
33294
  return (selection) => findParentNodeClosestToPos(selection.$from, predicate);
33487
33295
  }
33296
+ function getHTMLFromFragment(fragment, schema) {
33297
+ const documentFragment = DOMSerializer.fromSchema(schema).serializeFragment(fragment);
33298
+ const temporaryDocument = document.implementation.createHTMLDocument();
33299
+ const container = temporaryDocument.createElement("div");
33300
+ container.appendChild(documentFragment);
33301
+ return container.innerHTML;
33302
+ }
33488
33303
  function getText(node, options) {
33489
33304
  const range2 = {
33490
33305
  from: 0,
@@ -33770,22 +33585,18 @@ const setMeta = (key, value) => ({ tr: tr2 }) => {
33770
33585
  };
33771
33586
  const setNode = (typeOrName, attributes = {}) => ({ state: state2, dispatch, chain }) => {
33772
33587
  const type3 = getNodeType(typeOrName, state2.schema);
33773
- let attributesToCopy;
33774
- if (state2.selection.$anchor.sameParent(state2.selection.$head)) {
33775
- attributesToCopy = state2.selection.$anchor.parent.attrs;
33776
- }
33777
33588
  if (!type3.isTextblock) {
33778
33589
  console.warn('[tiptap warn]: Currently "setNode()" only supports text block nodes.');
33779
33590
  return false;
33780
33591
  }
33781
33592
  return chain().command(({ commands: commands2 }) => {
33782
- const canSetBlock = setBlockType(type3, { ...attributesToCopy, ...attributes })(state2);
33593
+ const canSetBlock = setBlockType(type3, attributes)(state2);
33783
33594
  if (canSetBlock) {
33784
33595
  return true;
33785
33596
  }
33786
33597
  return commands2.clearNodes();
33787
33598
  }).command(({ state: updatedState }) => {
33788
- return setBlockType(type3, { ...attributesToCopy, ...attributes })(updatedState, dispatch);
33599
+ return setBlockType(type3, attributes)(updatedState, dispatch);
33789
33600
  }).run();
33790
33601
  };
33791
33602
  const setNodeSelection = (position) => ({ tr: tr2, dispatch }) => {
@@ -34144,59 +33955,18 @@ const updateAttributes = (typeOrName, attributes = {}) => ({ tr: tr2, state: sta
34144
33955
  tr2.selection.ranges.forEach((range2) => {
34145
33956
  const from2 = range2.$from.pos;
34146
33957
  const to2 = range2.$to.pos;
34147
- let lastPos;
34148
- let lastNode;
34149
- let trimmedFrom;
34150
- let trimmedTo;
34151
- if (tr2.selection.empty) {
34152
- state2.doc.nodesBetween(from2, to2, (node, pos) => {
34153
- if (nodeType && nodeType === node.type) {
34154
- trimmedFrom = Math.max(pos, from2);
34155
- trimmedTo = Math.min(pos + node.nodeSize, to2);
34156
- lastPos = pos;
34157
- lastNode = node;
34158
- }
34159
- });
34160
- } else {
34161
- state2.doc.nodesBetween(from2, to2, (node, pos) => {
34162
- if (pos < from2 && nodeType && nodeType === node.type) {
34163
- trimmedFrom = Math.max(pos, from2);
34164
- trimmedTo = Math.min(pos + node.nodeSize, to2);
34165
- lastPos = pos;
34166
- lastNode = node;
34167
- }
34168
- if (pos >= from2 && pos <= to2) {
34169
- if (nodeType && nodeType === node.type) {
34170
- tr2.setNodeMarkup(pos, void 0, {
34171
- ...node.attrs,
34172
- ...attributes
34173
- });
34174
- }
34175
- if (markType && node.marks.length) {
34176
- node.marks.forEach((mark) => {
34177
- if (markType === mark.type) {
34178
- const trimmedFrom2 = Math.max(pos, from2);
34179
- const trimmedTo2 = Math.min(pos + node.nodeSize, to2);
34180
- tr2.addMark(trimmedFrom2, trimmedTo2, markType.create({
34181
- ...mark.attrs,
34182
- ...attributes
34183
- }));
34184
- }
34185
- });
34186
- }
34187
- }
34188
- });
34189
- }
34190
- if (lastNode) {
34191
- if (lastPos !== void 0) {
34192
- tr2.setNodeMarkup(lastPos, void 0, {
34193
- ...lastNode.attrs,
33958
+ state2.doc.nodesBetween(from2, to2, (node, pos) => {
33959
+ if (nodeType && nodeType === node.type) {
33960
+ tr2.setNodeMarkup(pos, void 0, {
33961
+ ...node.attrs,
34194
33962
  ...attributes
34195
33963
  });
34196
33964
  }
34197
- if (markType && lastNode.marks.length) {
34198
- lastNode.marks.forEach((mark) => {
33965
+ if (markType && node.marks.length) {
33966
+ node.marks.forEach((mark) => {
34199
33967
  if (markType === mark.type) {
33968
+ const trimmedFrom = Math.max(pos, from2);
33969
+ const trimmedTo = Math.min(pos + node.nodeSize, to2);
34200
33970
  tr2.addMark(trimmedFrom, trimmedTo, markType.create({
34201
33971
  ...mark.attrs,
34202
33972
  ...attributes
@@ -34204,7 +33974,7 @@ const updateAttributes = (typeOrName, attributes = {}) => ({ tr: tr2, state: sta
34204
33974
  }
34205
33975
  });
34206
33976
  }
34207
- }
33977
+ });
34208
33978
  });
34209
33979
  }
34210
33980
  return true;
@@ -34286,26 +34056,6 @@ const Commands = Extension.create({
34286
34056
  };
34287
34057
  }
34288
34058
  });
34289
- const Drop = Extension.create({
34290
- name: "drop",
34291
- addProseMirrorPlugins() {
34292
- return [
34293
- new Plugin({
34294
- key: new PluginKey("tiptapDrop"),
34295
- props: {
34296
- handleDrop: (_2, e, slice4, moved2) => {
34297
- this.editor.emit("drop", {
34298
- editor: this.editor,
34299
- event: e,
34300
- slice: slice4,
34301
- moved: moved2
34302
- });
34303
- }
34304
- }
34305
- })
34306
- ];
34307
- }
34308
- });
34309
34059
  const Editable = Extension.create({
34310
34060
  name: "editable",
34311
34061
  addProseMirrorPlugins() {
@@ -34455,25 +34205,6 @@ const Keymap = Extension.create({
34455
34205
  ];
34456
34206
  }
34457
34207
  });
34458
- const Paste = Extension.create({
34459
- name: "paste",
34460
- addProseMirrorPlugins() {
34461
- return [
34462
- new Plugin({
34463
- key: new PluginKey("tiptapPaste"),
34464
- props: {
34465
- handlePaste: (_view, e, slice4) => {
34466
- this.editor.emit("paste", {
34467
- editor: this.editor,
34468
- event: e,
34469
- slice: slice4
34470
- });
34471
- }
34472
- }
34473
- })
34474
- ];
34475
- }
34476
- });
34477
34208
  const Tabindex = Extension.create({
34478
34209
  name: "tabindex",
34479
34210
  addProseMirrorPlugins() {
@@ -34581,8 +34312,7 @@ class NodePos {
34581
34312
  const children2 = [];
34582
34313
  this.node.content.forEach((node, offset2) => {
34583
34314
  const isBlock = node.isBlock && !node.isTextblock;
34584
- const isNonTextAtom = node.isAtom && !node.isText;
34585
- const targetPos = this.pos + offset2 + (isNonTextAtom ? 0 : 1);
34315
+ const targetPos = this.pos + offset2 + 1;
34586
34316
  const $pos = this.resolvedPos.doc.resolve(targetPos);
34587
34317
  if (!isBlock && $pos.depth <= this.depth) {
34588
34318
  return;
@@ -34651,14 +34381,30 @@ class NodePos {
34651
34381
  return nodes;
34652
34382
  }
34653
34383
  setAttribute(attributes) {
34654
- const { tr: tr2 } = this.editor.state;
34655
- tr2.setNodeMarkup(this.from, void 0, {
34656
- ...this.node.attrs,
34657
- ...attributes
34658
- });
34659
- this.editor.view.dispatch(tr2);
34384
+ const oldSelection = this.editor.state.selection;
34385
+ this.editor.chain().setTextSelection(this.from).updateAttributes(this.node.type.name, attributes).setTextSelection(oldSelection.from).run();
34660
34386
  }
34661
34387
  }
34388
+ const DropPlugin = (onDrop) => {
34389
+ return new Plugin({
34390
+ key: new PluginKey("tiptapDrop"),
34391
+ props: {
34392
+ handleDrop: (_2, e, slice4, moved2) => {
34393
+ onDrop(e, slice4, moved2);
34394
+ }
34395
+ }
34396
+ });
34397
+ };
34398
+ const PastePlugin = (onPaste) => {
34399
+ return new Plugin({
34400
+ key: new PluginKey("tiptapPaste"),
34401
+ props: {
34402
+ handlePaste: (_view, e, slice4) => {
34403
+ onPaste(e, slice4);
34404
+ }
34405
+ }
34406
+ });
34407
+ };
34662
34408
  const style = `.ProseMirror {
34663
34409
  position: relative;
34664
34410
  }
@@ -34801,8 +34547,12 @@ let Editor$1 = class Editor2 extends EventEmitter {
34801
34547
  this.on("focus", this.options.onFocus);
34802
34548
  this.on("blur", this.options.onBlur);
34803
34549
  this.on("destroy", this.options.onDestroy);
34804
- this.on("drop", ({ event, slice: slice4, moved: moved2 }) => this.options.onDrop(event, slice4, moved2));
34805
- this.on("paste", ({ event, slice: slice4 }) => this.options.onPaste(event, slice4));
34550
+ if (this.options.onPaste) {
34551
+ this.registerPlugin(PastePlugin(this.options.onPaste));
34552
+ }
34553
+ if (this.options.onDrop) {
34554
+ this.registerPlugin(DropPlugin(this.options.onDrop));
34555
+ }
34806
34556
  window.setTimeout(() => {
34807
34557
  if (this.isDestroyed) {
34808
34558
  return;
@@ -34899,24 +34649,17 @@ let Editor$1 = class Editor2 extends EventEmitter {
34899
34649
  /**
34900
34650
  * Unregister a ProseMirror plugin.
34901
34651
  *
34902
- * @param nameOrPluginKeyToRemove The plugins name
34652
+ * @param nameOrPluginKey The plugins name
34903
34653
  * @returns The new editor state or undefined if the editor is destroyed
34904
34654
  */
34905
- unregisterPlugin(nameOrPluginKeyToRemove) {
34655
+ unregisterPlugin(nameOrPluginKey) {
34906
34656
  if (this.isDestroyed) {
34907
34657
  return void 0;
34908
34658
  }
34909
- const prevPlugins = this.state.plugins;
34910
- let plugins2 = prevPlugins;
34911
- [].concat(nameOrPluginKeyToRemove).forEach((nameOrPluginKey) => {
34912
- const name = typeof nameOrPluginKey === "string" ? `${nameOrPluginKey}$` : nameOrPluginKey.key;
34913
- plugins2 = prevPlugins.filter((plugin) => !plugin.key.startsWith(name));
34914
- });
34915
- if (prevPlugins.length === plugins2.length) {
34916
- return void 0;
34917
- }
34659
+ const name = typeof nameOrPluginKey === "string" ? `${nameOrPluginKey}$` : nameOrPluginKey.key;
34918
34660
  const state2 = this.state.reconfigure({
34919
- plugins: plugins2
34661
+ // @ts-ignore
34662
+ plugins: this.state.plugins.filter((plugin) => !plugin.key.startsWith(name))
34920
34663
  });
34921
34664
  this.view.updateState(state2);
34922
34665
  return state2;
@@ -34934,9 +34677,7 @@ let Editor$1 = class Editor2 extends EventEmitter {
34934
34677
  Commands,
34935
34678
  FocusEvents,
34936
34679
  Keymap,
34937
- Tabindex,
34938
- Drop,
34939
- Paste
34680
+ Tabindex
34940
34681
  ].filter((ext) => {
34941
34682
  if (typeof this.options.enableCoreExtensions === "object") {
34942
34683
  return this.options.enableCoreExtensions[ext.name] !== false;
@@ -34966,7 +34707,6 @@ let Editor$1 = class Editor2 extends EventEmitter {
34966
34707
  * Creates a ProseMirror view.
34967
34708
  */
34968
34709
  createView() {
34969
- var _a2;
34970
34710
  let doc2;
34971
34711
  try {
34972
34712
  doc2 = createDocument(this.options.content, this.schema, this.options.parseOptions, { errorOnInvalidContent: this.options.enableContentCheck });
@@ -34978,9 +34718,6 @@ let Editor$1 = class Editor2 extends EventEmitter {
34978
34718
  editor: this,
34979
34719
  error: e,
34980
34720
  disableCollaboration: () => {
34981
- if (this.storage.collaboration) {
34982
- this.storage.collaboration.isDisabled = true;
34983
- }
34984
34721
  this.options.extensions = this.options.extensions.filter((extension) => extension.name !== "collaboration");
34985
34722
  this.createExtensionManager();
34986
34723
  }
@@ -34990,11 +34727,6 @@ let Editor$1 = class Editor2 extends EventEmitter {
34990
34727
  const selection = resolveFocusPosition(doc2, this.options.autofocus);
34991
34728
  this.view = new EditorView(this.options.element, {
34992
34729
  ...this.options.editorProps,
34993
- attributes: {
34994
- // add `role="textbox"` to the editor element
34995
- role: "textbox",
34996
- ...(_a2 = this.options.editorProps) === null || _a2 === void 0 ? void 0 : _a2.attributes
34997
- },
34998
34730
  dispatchTransaction: this.dispatchTransaction.bind(this),
34999
34731
  state: EditorState.create({
35000
34732
  doc: doc2,
@@ -35294,6 +35026,87 @@ function wrappingInputRule(config) {
35294
35026
  }
35295
35027
  });
35296
35028
  }
35029
+ class Mark {
35030
+ constructor(config = {}) {
35031
+ this.type = "mark";
35032
+ this.name = "mark";
35033
+ this.parent = null;
35034
+ this.child = null;
35035
+ this.config = {
35036
+ name: this.name,
35037
+ defaultOptions: {}
35038
+ };
35039
+ this.config = {
35040
+ ...this.config,
35041
+ ...config
35042
+ };
35043
+ this.name = this.config.name;
35044
+ if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {
35045
+ console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${this.name}".`);
35046
+ }
35047
+ this.options = this.config.defaultOptions;
35048
+ if (this.config.addOptions) {
35049
+ this.options = callOrReturn(getExtensionField(this, "addOptions", {
35050
+ name: this.name
35051
+ }));
35052
+ }
35053
+ this.storage = callOrReturn(getExtensionField(this, "addStorage", {
35054
+ name: this.name,
35055
+ options: this.options
35056
+ })) || {};
35057
+ }
35058
+ static create(config = {}) {
35059
+ return new Mark(config);
35060
+ }
35061
+ configure(options = {}) {
35062
+ const extension = this.extend({
35063
+ ...this.config,
35064
+ addOptions: () => {
35065
+ return mergeDeep(this.options, options);
35066
+ }
35067
+ });
35068
+ extension.name = this.name;
35069
+ extension.parent = this.parent;
35070
+ return extension;
35071
+ }
35072
+ extend(extendedConfig = {}) {
35073
+ const extension = new Mark(extendedConfig);
35074
+ extension.parent = this;
35075
+ this.child = extension;
35076
+ extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name;
35077
+ if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {
35078
+ console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${extension.name}".`);
35079
+ }
35080
+ extension.options = callOrReturn(getExtensionField(extension, "addOptions", {
35081
+ name: extension.name
35082
+ }));
35083
+ extension.storage = callOrReturn(getExtensionField(extension, "addStorage", {
35084
+ name: extension.name,
35085
+ options: extension.options
35086
+ }));
35087
+ return extension;
35088
+ }
35089
+ static handleExit({ editor, mark }) {
35090
+ const { tr: tr2 } = editor.state;
35091
+ const currentPos = editor.state.selection.$from;
35092
+ const isAtEnd = currentPos.pos === currentPos.end();
35093
+ if (isAtEnd) {
35094
+ const currentMarks = currentPos.marks();
35095
+ const isInMark = !!currentMarks.find((m2) => (m2 === null || m2 === void 0 ? void 0 : m2.type.name) === mark.name);
35096
+ if (!isInMark) {
35097
+ return false;
35098
+ }
35099
+ const removeMark2 = currentMarks.find((m2) => (m2 === null || m2 === void 0 ? void 0 : m2.type.name) === mark.name);
35100
+ if (removeMark2) {
35101
+ tr2.removeStoredMark(removeMark2);
35102
+ }
35103
+ tr2.insertText(" ", currentPos.pos);
35104
+ editor.view.dispatch(tr2);
35105
+ return true;
35106
+ }
35107
+ return false;
35108
+ }
35109
+ }
35297
35110
  let Node$1 = class Node3 {
35298
35111
  constructor(config = {}) {
35299
35112
  this.type = "node";
@@ -36123,7 +35936,7 @@ function drawCellSelection(state2) {
36123
35936
  return DecorationSet.create(state2.doc, cells);
36124
35937
  }
36125
35938
  function isCellBoundarySelection({ $from, $to }) {
36126
- if ($from.pos == $to.pos || $from.pos < $to.pos - 6)
35939
+ if ($from.pos == $to.pos || $from.pos < $from.pos - 6)
36127
35940
  return false;
36128
35941
  let afterFrom = $from.pos;
36129
35942
  let beforeTo = $to.pos;
@@ -36286,800 +36099,233 @@ function fixTable(state2, table, tablePos, tr2) {
36286
36099
  }
36287
36100
  return tr2.setMeta(fixTablesKey, { fixTables: true });
36288
36101
  }
36289
- function selectedRect(state2) {
36290
- const sel = state2.selection;
36291
- const $pos = selectionCell(state2);
36292
- const table = $pos.node(-1);
36293
- const tableStart = $pos.start(-1);
36294
- const map4 = TableMap.get(table);
36295
- const rect = sel instanceof CellSelection ? map4.rectBetween(
36296
- sel.$anchorCell.pos - tableStart,
36297
- sel.$headCell.pos - tableStart
36298
- ) : map4.findCell($pos.pos - tableStart);
36299
- return { ...rect, tableStart, map: map4, table };
36300
- }
36301
- function addColumn(tr2, { map: map4, tableStart, table }, col) {
36302
- let refColumn = col > 0 ? -1 : 0;
36303
- if (columnIsHeader(map4, table, col + refColumn)) {
36304
- refColumn = col == 0 || col == map4.width ? null : 0;
36102
+ function pastedCells(slice4) {
36103
+ if (!slice4.size)
36104
+ return null;
36105
+ let { content, openStart, openEnd } = slice4;
36106
+ while (content.childCount == 1 && (openStart > 0 && openEnd > 0 || content.child(0).type.spec.tableRole == "table")) {
36107
+ openStart--;
36108
+ openEnd--;
36109
+ content = content.child(0).content;
36305
36110
  }
36306
- for (let row = 0; row < map4.height; row++) {
36307
- const index2 = row * map4.width + col;
36308
- if (col > 0 && col < map4.width && map4.map[index2 - 1] == map4.map[index2]) {
36309
- const pos = map4.map[index2];
36310
- const cell = table.nodeAt(pos);
36311
- tr2.setNodeMarkup(
36312
- tr2.mapping.map(tableStart + pos),
36313
- null,
36314
- addColSpan(cell.attrs, col - map4.colCount(pos))
36315
- );
36316
- row += cell.attrs.rowspan - 1;
36317
- } else {
36318
- const type3 = refColumn == null ? tableNodeTypes(table.type.schema).cell : table.nodeAt(map4.map[index2 + refColumn]).type;
36319
- const pos = map4.positionAt(row, col, table);
36320
- tr2.insert(tr2.mapping.map(tableStart + pos), type3.createAndFill());
36111
+ const first2 = content.child(0);
36112
+ const role = first2.type.spec.tableRole;
36113
+ const schema = first2.type.schema, rows = [];
36114
+ if (role == "row") {
36115
+ for (let i2 = 0; i2 < content.childCount; i2++) {
36116
+ let cells = content.child(i2).content;
36117
+ const left2 = i2 ? 0 : Math.max(0, openStart - 1);
36118
+ const right2 = i2 < content.childCount - 1 ? 0 : Math.max(0, openEnd - 1);
36119
+ if (left2 || right2)
36120
+ cells = fitSlice(
36121
+ tableNodeTypes(schema).row,
36122
+ new Slice(cells, left2, right2)
36123
+ ).content;
36124
+ rows.push(cells);
36321
36125
  }
36126
+ } else if (role == "cell" || role == "header_cell") {
36127
+ rows.push(
36128
+ openStart || openEnd ? fitSlice(
36129
+ tableNodeTypes(schema).row,
36130
+ new Slice(content, openStart, openEnd)
36131
+ ).content : content
36132
+ );
36133
+ } else {
36134
+ return null;
36322
36135
  }
36323
- return tr2;
36136
+ return ensureRectangular(schema, rows);
36324
36137
  }
36325
- function addColumnBefore(state2, dispatch) {
36326
- if (!isInTable(state2))
36327
- return false;
36328
- if (dispatch) {
36329
- const rect = selectedRect(state2);
36330
- dispatch(addColumn(state2.tr, rect, rect.left));
36138
+ function ensureRectangular(schema, rows) {
36139
+ const widths = [];
36140
+ for (let i2 = 0; i2 < rows.length; i2++) {
36141
+ const row = rows[i2];
36142
+ for (let j2 = row.childCount - 1; j2 >= 0; j2--) {
36143
+ const { rowspan, colspan } = row.child(j2).attrs;
36144
+ for (let r2 = i2; r2 < i2 + rowspan; r2++)
36145
+ widths[r2] = (widths[r2] || 0) + colspan;
36146
+ }
36331
36147
  }
36332
- return true;
36333
- }
36334
- function addColumnAfter(state2, dispatch) {
36335
- if (!isInTable(state2))
36336
- return false;
36337
- if (dispatch) {
36338
- const rect = selectedRect(state2);
36339
- dispatch(addColumn(state2.tr, rect, rect.right));
36148
+ let width = 0;
36149
+ for (let r2 = 0; r2 < widths.length; r2++)
36150
+ width = Math.max(width, widths[r2]);
36151
+ for (let r2 = 0; r2 < widths.length; r2++) {
36152
+ if (r2 >= rows.length)
36153
+ rows.push(Fragment.empty);
36154
+ if (widths[r2] < width) {
36155
+ const empty2 = tableNodeTypes(schema).cell.createAndFill();
36156
+ const cells = [];
36157
+ for (let i2 = widths[r2]; i2 < width; i2++) {
36158
+ cells.push(empty2);
36159
+ }
36160
+ rows[r2] = rows[r2].append(Fragment.from(cells));
36161
+ }
36340
36162
  }
36341
- return true;
36163
+ return { height: rows.length, width, rows };
36342
36164
  }
36343
- function removeColumn(tr2, { map: map4, table, tableStart }, col) {
36344
- const mapStart = tr2.mapping.maps.length;
36345
- for (let row = 0; row < map4.height; ) {
36346
- const index2 = row * map4.width + col;
36347
- const pos = map4.map[index2];
36348
- const cell = table.nodeAt(pos);
36349
- const attrs = cell.attrs;
36350
- if (col > 0 && map4.map[index2 - 1] == pos || col < map4.width - 1 && map4.map[index2 + 1] == pos) {
36351
- tr2.setNodeMarkup(
36352
- tr2.mapping.slice(mapStart).map(tableStart + pos),
36353
- null,
36354
- removeColSpan(attrs, col - map4.colCount(pos))
36355
- );
36356
- } else {
36357
- const start2 = tr2.mapping.slice(mapStart).map(tableStart + pos);
36358
- tr2.delete(start2, start2 + cell.nodeSize);
36165
+ function fitSlice(nodeType, slice4) {
36166
+ const node = nodeType.createAndFill();
36167
+ const tr2 = new Transform(node).replace(0, node.content.size, slice4);
36168
+ return tr2.doc;
36169
+ }
36170
+ function clipCells({ width, height, rows }, newWidth, newHeight) {
36171
+ if (width != newWidth) {
36172
+ const added = [];
36173
+ const newRows = [];
36174
+ for (let row = 0; row < rows.length; row++) {
36175
+ const frag = rows[row], cells = [];
36176
+ for (let col = added[row] || 0, i2 = 0; col < newWidth; i2++) {
36177
+ let cell = frag.child(i2 % frag.childCount);
36178
+ if (col + cell.attrs.colspan > newWidth)
36179
+ cell = cell.type.createChecked(
36180
+ removeColSpan(
36181
+ cell.attrs,
36182
+ cell.attrs.colspan,
36183
+ col + cell.attrs.colspan - newWidth
36184
+ ),
36185
+ cell.content
36186
+ );
36187
+ cells.push(cell);
36188
+ col += cell.attrs.colspan;
36189
+ for (let j2 = 1; j2 < cell.attrs.rowspan; j2++)
36190
+ added[row + j2] = (added[row + j2] || 0) + cell.attrs.colspan;
36191
+ }
36192
+ newRows.push(Fragment.from(cells));
36359
36193
  }
36360
- row += attrs.rowspan;
36194
+ rows = newRows;
36195
+ width = newWidth;
36361
36196
  }
36362
- }
36363
- function deleteColumn(state2, dispatch) {
36364
- if (!isInTable(state2))
36365
- return false;
36366
- if (dispatch) {
36367
- const rect = selectedRect(state2);
36368
- const tr2 = state2.tr;
36369
- if (rect.left == 0 && rect.right == rect.map.width)
36370
- return false;
36371
- for (let i2 = rect.right - 1; ; i2--) {
36372
- removeColumn(tr2, rect, i2);
36373
- if (i2 == rect.left)
36374
- break;
36375
- const table = rect.tableStart ? tr2.doc.nodeAt(rect.tableStart - 1) : tr2.doc;
36376
- if (!table) {
36377
- throw RangeError("No table found");
36197
+ if (height != newHeight) {
36198
+ const newRows = [];
36199
+ for (let row = 0, i2 = 0; row < newHeight; row++, i2++) {
36200
+ const cells = [], source = rows[i2 % height];
36201
+ for (let j2 = 0; j2 < source.childCount; j2++) {
36202
+ let cell = source.child(j2);
36203
+ if (row + cell.attrs.rowspan > newHeight)
36204
+ cell = cell.type.create(
36205
+ {
36206
+ ...cell.attrs,
36207
+ rowspan: Math.max(1, newHeight - cell.attrs.rowspan)
36208
+ },
36209
+ cell.content
36210
+ );
36211
+ cells.push(cell);
36378
36212
  }
36379
- rect.table = table;
36380
- rect.map = TableMap.get(table);
36213
+ newRows.push(Fragment.from(cells));
36381
36214
  }
36382
- dispatch(tr2);
36215
+ rows = newRows;
36216
+ height = newHeight;
36383
36217
  }
36384
- return true;
36385
- }
36386
- function rowIsHeader(map4, table, row) {
36387
- var _a2;
36388
- const headerCell = tableNodeTypes(table.type.schema).header_cell;
36389
- for (let col = 0; col < map4.width; col++)
36390
- if (((_a2 = table.nodeAt(map4.map[col + row * map4.width])) == null ? void 0 : _a2.type) != headerCell)
36391
- return false;
36392
- return true;
36218
+ return { width, height, rows };
36393
36219
  }
36394
- function addRow(tr2, { map: map4, tableStart, table }, row) {
36395
- var _a2;
36396
- let rowPos = tableStart;
36397
- for (let i2 = 0; i2 < row; i2++)
36398
- rowPos += table.child(i2).nodeSize;
36399
- const cells = [];
36400
- let refRow = row > 0 ? -1 : 0;
36401
- if (rowIsHeader(map4, table, row + refRow))
36402
- refRow = row == 0 || row == map4.height ? null : 0;
36403
- for (let col = 0, index2 = map4.width * row; col < map4.width; col++, index2++) {
36404
- if (row > 0 && row < map4.height && map4.map[index2] == map4.map[index2 - map4.width]) {
36405
- const pos = map4.map[index2];
36406
- const attrs = table.nodeAt(pos).attrs;
36407
- tr2.setNodeMarkup(tableStart + pos, null, {
36408
- ...attrs,
36409
- rowspan: attrs.rowspan + 1
36410
- });
36411
- col += attrs.colspan - 1;
36412
- } else {
36413
- const type3 = refRow == null ? tableNodeTypes(table.type.schema).cell : (_a2 = table.nodeAt(map4.map[index2 + refRow * map4.width])) == null ? void 0 : _a2.type;
36414
- const node = type3 == null ? void 0 : type3.createAndFill();
36415
- if (node)
36416
- cells.push(node);
36220
+ function growTable(tr2, map4, table, start2, width, height, mapFrom) {
36221
+ const schema = tr2.doc.type.schema;
36222
+ const types = tableNodeTypes(schema);
36223
+ let empty2;
36224
+ let emptyHead;
36225
+ if (width > map4.width) {
36226
+ for (let row = 0, rowEnd = 0; row < map4.height; row++) {
36227
+ const rowNode = table.child(row);
36228
+ rowEnd += rowNode.nodeSize;
36229
+ const cells = [];
36230
+ let add2;
36231
+ if (rowNode.lastChild == null || rowNode.lastChild.type == types.cell)
36232
+ add2 = empty2 || (empty2 = types.cell.createAndFill());
36233
+ else
36234
+ add2 = emptyHead || (emptyHead = types.header_cell.createAndFill());
36235
+ for (let i2 = map4.width; i2 < width; i2++)
36236
+ cells.push(add2);
36237
+ tr2.insert(tr2.mapping.slice(mapFrom).map(rowEnd - 1 + start2), cells);
36417
36238
  }
36418
36239
  }
36419
- tr2.insert(rowPos, tableNodeTypes(table.type.schema).row.create(null, cells));
36420
- return tr2;
36421
- }
36422
- function addRowBefore(state2, dispatch) {
36423
- if (!isInTable(state2))
36424
- return false;
36425
- if (dispatch) {
36426
- const rect = selectedRect(state2);
36427
- dispatch(addRow(state2.tr, rect, rect.top));
36240
+ if (height > map4.height) {
36241
+ const cells = [];
36242
+ for (let i2 = 0, start22 = (map4.height - 1) * map4.width; i2 < Math.max(map4.width, width); i2++) {
36243
+ const header = i2 >= map4.width ? false : table.nodeAt(map4.map[start22 + i2]).type == types.header_cell;
36244
+ cells.push(
36245
+ header ? emptyHead || (emptyHead = types.header_cell.createAndFill()) : empty2 || (empty2 = types.cell.createAndFill())
36246
+ );
36247
+ }
36248
+ const emptyRow = types.row.create(null, Fragment.from(cells)), rows = [];
36249
+ for (let i2 = map4.height; i2 < height; i2++)
36250
+ rows.push(emptyRow);
36251
+ tr2.insert(tr2.mapping.slice(mapFrom).map(start2 + table.nodeSize - 2), rows);
36428
36252
  }
36429
- return true;
36253
+ return !!(empty2 || emptyHead);
36430
36254
  }
36431
- function addRowAfter(state2, dispatch) {
36432
- if (!isInTable(state2))
36255
+ function isolateHorizontal(tr2, map4, table, start2, left2, right2, top2, mapFrom) {
36256
+ if (top2 == 0 || top2 == map4.height)
36433
36257
  return false;
36434
- if (dispatch) {
36435
- const rect = selectedRect(state2);
36436
- dispatch(addRow(state2.tr, rect, rect.bottom));
36437
- }
36438
- return true;
36439
- }
36440
- function removeRow(tr2, { map: map4, table, tableStart }, row) {
36441
- let rowPos = 0;
36442
- for (let i2 = 0; i2 < row; i2++)
36443
- rowPos += table.child(i2).nodeSize;
36444
- const nextRow = rowPos + table.child(row).nodeSize;
36445
- const mapFrom = tr2.mapping.maps.length;
36446
- tr2.delete(rowPos + tableStart, nextRow + tableStart);
36447
- const seen = /* @__PURE__ */ new Set();
36448
- for (let col = 0, index2 = row * map4.width; col < map4.width; col++, index2++) {
36449
- const pos = map4.map[index2];
36450
- if (seen.has(pos))
36451
- continue;
36452
- seen.add(pos);
36453
- if (row > 0 && pos == map4.map[index2 - map4.width]) {
36454
- const attrs = table.nodeAt(pos).attrs;
36455
- tr2.setNodeMarkup(tr2.mapping.slice(mapFrom).map(pos + tableStart), null, {
36456
- ...attrs,
36457
- rowspan: attrs.rowspan - 1
36458
- });
36459
- col += attrs.colspan - 1;
36460
- } else if (row < map4.height && pos == map4.map[index2 + map4.width]) {
36258
+ let found2 = false;
36259
+ for (let col = left2; col < right2; col++) {
36260
+ const index2 = top2 * map4.width + col, pos = map4.map[index2];
36261
+ if (map4.map[index2 - map4.width] == pos) {
36262
+ found2 = true;
36461
36263
  const cell = table.nodeAt(pos);
36462
- const attrs = cell.attrs;
36463
- const copy2 = cell.type.create(
36464
- { ...attrs, rowspan: cell.attrs.rowspan - 1 },
36465
- cell.content
36264
+ const { top: cellTop, left: cellLeft } = map4.findCell(pos);
36265
+ tr2.setNodeMarkup(tr2.mapping.slice(mapFrom).map(pos + start2), null, {
36266
+ ...cell.attrs,
36267
+ rowspan: top2 - cellTop
36268
+ });
36269
+ tr2.insert(
36270
+ tr2.mapping.slice(mapFrom).map(map4.positionAt(top2, cellLeft, table)),
36271
+ cell.type.createAndFill({
36272
+ ...cell.attrs,
36273
+ rowspan: cellTop + cell.attrs.rowspan - top2
36274
+ })
36466
36275
  );
36467
- const newPos = map4.positionAt(row + 1, col, table);
36468
- tr2.insert(tr2.mapping.slice(mapFrom).map(tableStart + newPos), copy2);
36469
- col += attrs.colspan - 1;
36276
+ col += cell.attrs.colspan - 1;
36470
36277
  }
36471
36278
  }
36279
+ return found2;
36472
36280
  }
36473
- function deleteRow(state2, dispatch) {
36474
- if (!isInTable(state2))
36281
+ function isolateVertical(tr2, map4, table, start2, top2, bottom2, left2, mapFrom) {
36282
+ if (left2 == 0 || left2 == map4.width)
36475
36283
  return false;
36476
- if (dispatch) {
36477
- const rect = selectedRect(state2), tr2 = state2.tr;
36478
- if (rect.top == 0 && rect.bottom == rect.map.height)
36479
- return false;
36480
- for (let i2 = rect.bottom - 1; ; i2--) {
36481
- removeRow(tr2, rect, i2);
36482
- if (i2 == rect.top)
36483
- break;
36484
- const table = rect.tableStart ? tr2.doc.nodeAt(rect.tableStart - 1) : tr2.doc;
36485
- if (!table) {
36486
- throw RangeError("No table found");
36487
- }
36488
- rect.table = table;
36489
- rect.map = TableMap.get(rect.table);
36284
+ let found2 = false;
36285
+ for (let row = top2; row < bottom2; row++) {
36286
+ const index2 = row * map4.width + left2, pos = map4.map[index2];
36287
+ if (map4.map[index2 - 1] == pos) {
36288
+ found2 = true;
36289
+ const cell = table.nodeAt(pos);
36290
+ const cellLeft = map4.colCount(pos);
36291
+ const updatePos = tr2.mapping.slice(mapFrom).map(pos + start2);
36292
+ tr2.setNodeMarkup(
36293
+ updatePos,
36294
+ null,
36295
+ removeColSpan(
36296
+ cell.attrs,
36297
+ left2 - cellLeft,
36298
+ cell.attrs.colspan - (left2 - cellLeft)
36299
+ )
36300
+ );
36301
+ tr2.insert(
36302
+ updatePos + cell.nodeSize,
36303
+ cell.type.createAndFill(
36304
+ removeColSpan(cell.attrs, 0, left2 - cellLeft)
36305
+ )
36306
+ );
36307
+ row += cell.attrs.rowspan - 1;
36490
36308
  }
36491
- dispatch(tr2);
36492
36309
  }
36493
- return true;
36494
- }
36495
- function isEmpty(cell) {
36496
- const c2 = cell.content;
36497
- return c2.childCount == 1 && c2.child(0).isTextblock && c2.child(0).childCount == 0;
36310
+ return found2;
36498
36311
  }
36499
- function cellsOverlapRectangle({ width, height, map: map4 }, rect) {
36500
- let indexTop = rect.top * width + rect.left, indexLeft = indexTop;
36501
- let indexBottom = (rect.bottom - 1) * width + rect.left, indexRight = indexTop + (rect.right - rect.left - 1);
36502
- for (let i2 = rect.top; i2 < rect.bottom; i2++) {
36503
- if (rect.left > 0 && map4[indexLeft] == map4[indexLeft - 1] || rect.right < width && map4[indexRight] == map4[indexRight + 1])
36504
- return true;
36505
- indexLeft += width;
36506
- indexRight += width;
36312
+ function insertCells(state2, dispatch, tableStart, rect, cells) {
36313
+ let table = tableStart ? state2.doc.nodeAt(tableStart - 1) : state2.doc;
36314
+ if (!table) {
36315
+ throw new Error("No table found");
36507
36316
  }
36508
- for (let i2 = rect.left; i2 < rect.right; i2++) {
36509
- if (rect.top > 0 && map4[indexTop] == map4[indexTop - width] || rect.bottom < height && map4[indexBottom] == map4[indexBottom + width])
36510
- return true;
36511
- indexTop++;
36512
- indexBottom++;
36513
- }
36514
- return false;
36515
- }
36516
- function mergeCells(state2, dispatch) {
36517
- const sel = state2.selection;
36518
- if (!(sel instanceof CellSelection) || sel.$anchorCell.pos == sel.$headCell.pos)
36519
- return false;
36520
- const rect = selectedRect(state2), { map: map4 } = rect;
36521
- if (cellsOverlapRectangle(map4, rect))
36522
- return false;
36523
- if (dispatch) {
36524
- const tr2 = state2.tr;
36525
- const seen = {};
36526
- let content = Fragment.empty;
36527
- let mergedPos;
36528
- let mergedCell;
36529
- for (let row = rect.top; row < rect.bottom; row++) {
36530
- for (let col = rect.left; col < rect.right; col++) {
36531
- const cellPos = map4.map[row * map4.width + col];
36532
- const cell = rect.table.nodeAt(cellPos);
36533
- if (seen[cellPos] || !cell)
36534
- continue;
36535
- seen[cellPos] = true;
36536
- if (mergedPos == null) {
36537
- mergedPos = cellPos;
36538
- mergedCell = cell;
36539
- } else {
36540
- if (!isEmpty(cell))
36541
- content = content.append(cell.content);
36542
- const mapped = tr2.mapping.map(cellPos + rect.tableStart);
36543
- tr2.delete(mapped, mapped + cell.nodeSize);
36544
- }
36545
- }
36546
- }
36547
- if (mergedPos == null || mergedCell == null) {
36548
- return true;
36549
- }
36550
- tr2.setNodeMarkup(mergedPos + rect.tableStart, null, {
36551
- ...addColSpan(
36552
- mergedCell.attrs,
36553
- mergedCell.attrs.colspan,
36554
- rect.right - rect.left - mergedCell.attrs.colspan
36555
- ),
36556
- rowspan: rect.bottom - rect.top
36557
- });
36558
- if (content.size) {
36559
- const end2 = mergedPos + 1 + mergedCell.content.size;
36560
- const start2 = isEmpty(mergedCell) ? mergedPos + 1 : end2;
36561
- tr2.replaceWith(start2 + rect.tableStart, end2 + rect.tableStart, content);
36562
- }
36563
- tr2.setSelection(
36564
- new CellSelection(tr2.doc.resolve(mergedPos + rect.tableStart))
36565
- );
36566
- dispatch(tr2);
36567
- }
36568
- return true;
36569
- }
36570
- function splitCell(state2, dispatch) {
36571
- const nodeTypes = tableNodeTypes(state2.schema);
36572
- return splitCellWithType(({ node }) => {
36573
- return nodeTypes[node.type.spec.tableRole];
36574
- })(state2, dispatch);
36575
- }
36576
- function splitCellWithType(getCellType) {
36577
- return (state2, dispatch) => {
36578
- var _a2;
36579
- const sel = state2.selection;
36580
- let cellNode;
36581
- let cellPos;
36582
- if (!(sel instanceof CellSelection)) {
36583
- cellNode = cellWrapping(sel.$from);
36584
- if (!cellNode)
36585
- return false;
36586
- cellPos = (_a2 = cellAround(sel.$from)) == null ? void 0 : _a2.pos;
36587
- } else {
36588
- if (sel.$anchorCell.pos != sel.$headCell.pos)
36589
- return false;
36590
- cellNode = sel.$anchorCell.nodeAfter;
36591
- cellPos = sel.$anchorCell.pos;
36592
- }
36593
- if (cellNode == null || cellPos == null) {
36594
- return false;
36595
- }
36596
- if (cellNode.attrs.colspan == 1 && cellNode.attrs.rowspan == 1) {
36597
- return false;
36598
- }
36599
- if (dispatch) {
36600
- let baseAttrs = cellNode.attrs;
36601
- const attrs = [];
36602
- const colwidth = baseAttrs.colwidth;
36603
- if (baseAttrs.rowspan > 1)
36604
- baseAttrs = { ...baseAttrs, rowspan: 1 };
36605
- if (baseAttrs.colspan > 1)
36606
- baseAttrs = { ...baseAttrs, colspan: 1 };
36607
- const rect = selectedRect(state2), tr2 = state2.tr;
36608
- for (let i2 = 0; i2 < rect.right - rect.left; i2++)
36609
- attrs.push(
36610
- colwidth ? {
36611
- ...baseAttrs,
36612
- colwidth: colwidth && colwidth[i2] ? [colwidth[i2]] : null
36613
- } : baseAttrs
36614
- );
36615
- let lastCell;
36616
- for (let row = rect.top; row < rect.bottom; row++) {
36617
- let pos = rect.map.positionAt(row, rect.left, rect.table);
36618
- if (row == rect.top)
36619
- pos += cellNode.nodeSize;
36620
- for (let col = rect.left, i2 = 0; col < rect.right; col++, i2++) {
36621
- if (col == rect.left && row == rect.top)
36622
- continue;
36623
- tr2.insert(
36624
- lastCell = tr2.mapping.map(pos + rect.tableStart, 1),
36625
- getCellType({ node: cellNode, row, col }).createAndFill(attrs[i2])
36626
- );
36627
- }
36628
- }
36629
- tr2.setNodeMarkup(
36630
- cellPos,
36631
- getCellType({ node: cellNode, row: rect.top, col: rect.left }),
36632
- attrs[0]
36633
- );
36634
- if (sel instanceof CellSelection)
36635
- tr2.setSelection(
36636
- new CellSelection(
36637
- tr2.doc.resolve(sel.$anchorCell.pos),
36638
- lastCell ? tr2.doc.resolve(lastCell) : void 0
36639
- )
36640
- );
36641
- dispatch(tr2);
36642
- }
36643
- return true;
36644
- };
36645
- }
36646
- function setCellAttr(name, value) {
36647
- return function(state2, dispatch) {
36648
- if (!isInTable(state2))
36649
- return false;
36650
- const $cell = selectionCell(state2);
36651
- if ($cell.nodeAfter.attrs[name] === value)
36652
- return false;
36653
- if (dispatch) {
36654
- const tr2 = state2.tr;
36655
- if (state2.selection instanceof CellSelection)
36656
- state2.selection.forEachCell((node, pos) => {
36657
- if (node.attrs[name] !== value)
36658
- tr2.setNodeMarkup(pos, null, {
36659
- ...node.attrs,
36660
- [name]: value
36661
- });
36662
- });
36663
- else
36664
- tr2.setNodeMarkup($cell.pos, null, {
36665
- ...$cell.nodeAfter.attrs,
36666
- [name]: value
36667
- });
36668
- dispatch(tr2);
36669
- }
36670
- return true;
36671
- };
36672
- }
36673
- function deprecated_toggleHeader(type3) {
36674
- return function(state2, dispatch) {
36675
- if (!isInTable(state2))
36676
- return false;
36677
- if (dispatch) {
36678
- const types = tableNodeTypes(state2.schema);
36679
- const rect = selectedRect(state2), tr2 = state2.tr;
36680
- const cells = rect.map.cellsInRect(
36681
- type3 == "column" ? {
36682
- left: rect.left,
36683
- top: 0,
36684
- right: rect.right,
36685
- bottom: rect.map.height
36686
- } : type3 == "row" ? {
36687
- left: 0,
36688
- top: rect.top,
36689
- right: rect.map.width,
36690
- bottom: rect.bottom
36691
- } : rect
36692
- );
36693
- const nodes = cells.map((pos) => rect.table.nodeAt(pos));
36694
- for (let i2 = 0; i2 < cells.length; i2++)
36695
- if (nodes[i2].type == types.header_cell)
36696
- tr2.setNodeMarkup(
36697
- rect.tableStart + cells[i2],
36698
- types.cell,
36699
- nodes[i2].attrs
36700
- );
36701
- if (tr2.steps.length == 0)
36702
- for (let i2 = 0; i2 < cells.length; i2++)
36703
- tr2.setNodeMarkup(
36704
- rect.tableStart + cells[i2],
36705
- types.header_cell,
36706
- nodes[i2].attrs
36707
- );
36708
- dispatch(tr2);
36709
- }
36710
- return true;
36711
- };
36712
- }
36713
- function isHeaderEnabledByType(type3, rect, types) {
36714
- const cellPositions = rect.map.cellsInRect({
36715
- left: 0,
36716
- top: 0,
36717
- right: type3 == "row" ? rect.map.width : 1,
36718
- bottom: type3 == "column" ? rect.map.height : 1
36719
- });
36720
- for (let i2 = 0; i2 < cellPositions.length; i2++) {
36721
- const cell = rect.table.nodeAt(cellPositions[i2]);
36722
- if (cell && cell.type !== types.header_cell) {
36723
- return false;
36724
- }
36725
- }
36726
- return true;
36727
- }
36728
- function toggleHeader(type3, options) {
36729
- options = options || { useDeprecatedLogic: false };
36730
- if (options.useDeprecatedLogic)
36731
- return deprecated_toggleHeader(type3);
36732
- return function(state2, dispatch) {
36733
- if (!isInTable(state2))
36734
- return false;
36735
- if (dispatch) {
36736
- const types = tableNodeTypes(state2.schema);
36737
- const rect = selectedRect(state2), tr2 = state2.tr;
36738
- const isHeaderRowEnabled = isHeaderEnabledByType("row", rect, types);
36739
- const isHeaderColumnEnabled = isHeaderEnabledByType(
36740
- "column",
36741
- rect,
36742
- types
36743
- );
36744
- const isHeaderEnabled = type3 === "column" ? isHeaderRowEnabled : type3 === "row" ? isHeaderColumnEnabled : false;
36745
- const selectionStartsAt = isHeaderEnabled ? 1 : 0;
36746
- const cellsRect = type3 == "column" ? {
36747
- left: 0,
36748
- top: selectionStartsAt,
36749
- right: 1,
36750
- bottom: rect.map.height
36751
- } : type3 == "row" ? {
36752
- left: selectionStartsAt,
36753
- top: 0,
36754
- right: rect.map.width,
36755
- bottom: 1
36756
- } : rect;
36757
- const newType = type3 == "column" ? isHeaderColumnEnabled ? types.cell : types.header_cell : type3 == "row" ? isHeaderRowEnabled ? types.cell : types.header_cell : types.cell;
36758
- rect.map.cellsInRect(cellsRect).forEach((relativeCellPos) => {
36759
- const cellPos = relativeCellPos + rect.tableStart;
36760
- const cell = tr2.doc.nodeAt(cellPos);
36761
- if (cell) {
36762
- tr2.setNodeMarkup(cellPos, newType, cell.attrs);
36763
- }
36764
- });
36765
- dispatch(tr2);
36766
- }
36767
- return true;
36768
- };
36769
- }
36770
- toggleHeader("row", {
36771
- useDeprecatedLogic: true
36772
- });
36773
- toggleHeader("column", {
36774
- useDeprecatedLogic: true
36775
- });
36776
- var toggleHeaderCell = toggleHeader("cell", {
36777
- useDeprecatedLogic: true
36778
- });
36779
- function findNextCell($cell, dir) {
36780
- if (dir < 0) {
36781
- const before = $cell.nodeBefore;
36782
- if (before)
36783
- return $cell.pos - before.nodeSize;
36784
- for (let row = $cell.index(-1) - 1, rowEnd = $cell.before(); row >= 0; row--) {
36785
- const rowNode = $cell.node(-1).child(row);
36786
- const lastChild2 = rowNode.lastChild;
36787
- if (lastChild2) {
36788
- return rowEnd - 1 - lastChild2.nodeSize;
36789
- }
36790
- rowEnd -= rowNode.nodeSize;
36791
- }
36792
- } else {
36793
- if ($cell.index() < $cell.parent.childCount - 1) {
36794
- return $cell.pos + $cell.nodeAfter.nodeSize;
36795
- }
36796
- const table = $cell.node(-1);
36797
- for (let row = $cell.indexAfter(-1), rowStart = $cell.after(); row < table.childCount; row++) {
36798
- const rowNode = table.child(row);
36799
- if (rowNode.childCount)
36800
- return rowStart + 1;
36801
- rowStart += rowNode.nodeSize;
36802
- }
36803
- }
36804
- return null;
36805
- }
36806
- function goToNextCell(direction) {
36807
- return function(state2, dispatch) {
36808
- if (!isInTable(state2))
36809
- return false;
36810
- const cell = findNextCell(selectionCell(state2), direction);
36811
- if (cell == null)
36812
- return false;
36813
- if (dispatch) {
36814
- const $cell = state2.doc.resolve(cell);
36815
- dispatch(
36816
- state2.tr.setSelection(TextSelection.between($cell, moveCellForward($cell))).scrollIntoView()
36817
- );
36818
- }
36819
- return true;
36820
- };
36821
- }
36822
- function deleteTable(state2, dispatch) {
36823
- const $pos = state2.selection.$anchor;
36824
- for (let d2 = $pos.depth; d2 > 0; d2--) {
36825
- const node = $pos.node(d2);
36826
- if (node.type.spec.tableRole == "table") {
36827
- if (dispatch)
36828
- dispatch(
36829
- state2.tr.delete($pos.before(d2), $pos.after(d2)).scrollIntoView()
36830
- );
36831
- return true;
36832
- }
36833
- }
36834
- return false;
36835
- }
36836
- function deleteCellSelection(state2, dispatch) {
36837
- const sel = state2.selection;
36838
- if (!(sel instanceof CellSelection))
36839
- return false;
36840
- if (dispatch) {
36841
- const tr2 = state2.tr;
36842
- const baseContent = tableNodeTypes(state2.schema).cell.createAndFill().content;
36843
- sel.forEachCell((cell, pos) => {
36844
- if (!cell.content.eq(baseContent))
36845
- tr2.replace(
36846
- tr2.mapping.map(pos + 1),
36847
- tr2.mapping.map(pos + cell.nodeSize - 1),
36848
- new Slice(baseContent, 0, 0)
36849
- );
36850
- });
36851
- if (tr2.docChanged)
36852
- dispatch(tr2);
36853
- }
36854
- return true;
36855
- }
36856
- function pastedCells(slice4) {
36857
- if (!slice4.size)
36858
- return null;
36859
- let { content, openStart, openEnd } = slice4;
36860
- while (content.childCount == 1 && (openStart > 0 && openEnd > 0 || content.child(0).type.spec.tableRole == "table")) {
36861
- openStart--;
36862
- openEnd--;
36863
- content = content.child(0).content;
36864
- }
36865
- const first2 = content.child(0);
36866
- const role = first2.type.spec.tableRole;
36867
- const schema = first2.type.schema, rows = [];
36868
- if (role == "row") {
36869
- for (let i2 = 0; i2 < content.childCount; i2++) {
36870
- let cells = content.child(i2).content;
36871
- const left2 = i2 ? 0 : Math.max(0, openStart - 1);
36872
- const right2 = i2 < content.childCount - 1 ? 0 : Math.max(0, openEnd - 1);
36873
- if (left2 || right2)
36874
- cells = fitSlice(
36875
- tableNodeTypes(schema).row,
36876
- new Slice(cells, left2, right2)
36877
- ).content;
36878
- rows.push(cells);
36879
- }
36880
- } else if (role == "cell" || role == "header_cell") {
36881
- rows.push(
36882
- openStart || openEnd ? fitSlice(
36883
- tableNodeTypes(schema).row,
36884
- new Slice(content, openStart, openEnd)
36885
- ).content : content
36886
- );
36887
- } else {
36888
- return null;
36889
- }
36890
- return ensureRectangular(schema, rows);
36891
- }
36892
- function ensureRectangular(schema, rows) {
36893
- const widths = [];
36894
- for (let i2 = 0; i2 < rows.length; i2++) {
36895
- const row = rows[i2];
36896
- for (let j2 = row.childCount - 1; j2 >= 0; j2--) {
36897
- const { rowspan, colspan } = row.child(j2).attrs;
36898
- for (let r2 = i2; r2 < i2 + rowspan; r2++)
36899
- widths[r2] = (widths[r2] || 0) + colspan;
36900
- }
36901
- }
36902
- let width = 0;
36903
- for (let r2 = 0; r2 < widths.length; r2++)
36904
- width = Math.max(width, widths[r2]);
36905
- for (let r2 = 0; r2 < widths.length; r2++) {
36906
- if (r2 >= rows.length)
36907
- rows.push(Fragment.empty);
36908
- if (widths[r2] < width) {
36909
- const empty2 = tableNodeTypes(schema).cell.createAndFill();
36910
- const cells = [];
36911
- for (let i2 = widths[r2]; i2 < width; i2++) {
36912
- cells.push(empty2);
36913
- }
36914
- rows[r2] = rows[r2].append(Fragment.from(cells));
36915
- }
36916
- }
36917
- return { height: rows.length, width, rows };
36918
- }
36919
- function fitSlice(nodeType, slice4) {
36920
- const node = nodeType.createAndFill();
36921
- const tr2 = new Transform(node).replace(0, node.content.size, slice4);
36922
- return tr2.doc;
36923
- }
36924
- function clipCells({ width, height, rows }, newWidth, newHeight) {
36925
- if (width != newWidth) {
36926
- const added = [];
36927
- const newRows = [];
36928
- for (let row = 0; row < rows.length; row++) {
36929
- const frag = rows[row], cells = [];
36930
- for (let col = added[row] || 0, i2 = 0; col < newWidth; i2++) {
36931
- let cell = frag.child(i2 % frag.childCount);
36932
- if (col + cell.attrs.colspan > newWidth)
36933
- cell = cell.type.createChecked(
36934
- removeColSpan(
36935
- cell.attrs,
36936
- cell.attrs.colspan,
36937
- col + cell.attrs.colspan - newWidth
36938
- ),
36939
- cell.content
36940
- );
36941
- cells.push(cell);
36942
- col += cell.attrs.colspan;
36943
- for (let j2 = 1; j2 < cell.attrs.rowspan; j2++)
36944
- added[row + j2] = (added[row + j2] || 0) + cell.attrs.colspan;
36945
- }
36946
- newRows.push(Fragment.from(cells));
36947
- }
36948
- rows = newRows;
36949
- width = newWidth;
36950
- }
36951
- if (height != newHeight) {
36952
- const newRows = [];
36953
- for (let row = 0, i2 = 0; row < newHeight; row++, i2++) {
36954
- const cells = [], source = rows[i2 % height];
36955
- for (let j2 = 0; j2 < source.childCount; j2++) {
36956
- let cell = source.child(j2);
36957
- if (row + cell.attrs.rowspan > newHeight)
36958
- cell = cell.type.create(
36959
- {
36960
- ...cell.attrs,
36961
- rowspan: Math.max(1, newHeight - cell.attrs.rowspan)
36962
- },
36963
- cell.content
36964
- );
36965
- cells.push(cell);
36966
- }
36967
- newRows.push(Fragment.from(cells));
36968
- }
36969
- rows = newRows;
36970
- height = newHeight;
36971
- }
36972
- return { width, height, rows };
36973
- }
36974
- function growTable(tr2, map4, table, start2, width, height, mapFrom) {
36975
- const schema = tr2.doc.type.schema;
36976
- const types = tableNodeTypes(schema);
36977
- let empty2;
36978
- let emptyHead;
36979
- if (width > map4.width) {
36980
- for (let row = 0, rowEnd = 0; row < map4.height; row++) {
36981
- const rowNode = table.child(row);
36982
- rowEnd += rowNode.nodeSize;
36983
- const cells = [];
36984
- let add2;
36985
- if (rowNode.lastChild == null || rowNode.lastChild.type == types.cell)
36986
- add2 = empty2 || (empty2 = types.cell.createAndFill());
36987
- else
36988
- add2 = emptyHead || (emptyHead = types.header_cell.createAndFill());
36989
- for (let i2 = map4.width; i2 < width; i2++)
36990
- cells.push(add2);
36991
- tr2.insert(tr2.mapping.slice(mapFrom).map(rowEnd - 1 + start2), cells);
36992
- }
36993
- }
36994
- if (height > map4.height) {
36995
- const cells = [];
36996
- for (let i2 = 0, start22 = (map4.height - 1) * map4.width; i2 < Math.max(map4.width, width); i2++) {
36997
- const header = i2 >= map4.width ? false : table.nodeAt(map4.map[start22 + i2]).type == types.header_cell;
36998
- cells.push(
36999
- header ? emptyHead || (emptyHead = types.header_cell.createAndFill()) : empty2 || (empty2 = types.cell.createAndFill())
37000
- );
37001
- }
37002
- const emptyRow = types.row.create(null, Fragment.from(cells)), rows = [];
37003
- for (let i2 = map4.height; i2 < height; i2++)
37004
- rows.push(emptyRow);
37005
- tr2.insert(tr2.mapping.slice(mapFrom).map(start2 + table.nodeSize - 2), rows);
37006
- }
37007
- return !!(empty2 || emptyHead);
37008
- }
37009
- function isolateHorizontal(tr2, map4, table, start2, left2, right2, top2, mapFrom) {
37010
- if (top2 == 0 || top2 == map4.height)
37011
- return false;
37012
- let found2 = false;
37013
- for (let col = left2; col < right2; col++) {
37014
- const index2 = top2 * map4.width + col, pos = map4.map[index2];
37015
- if (map4.map[index2 - map4.width] == pos) {
37016
- found2 = true;
37017
- const cell = table.nodeAt(pos);
37018
- const { top: cellTop, left: cellLeft } = map4.findCell(pos);
37019
- tr2.setNodeMarkup(tr2.mapping.slice(mapFrom).map(pos + start2), null, {
37020
- ...cell.attrs,
37021
- rowspan: top2 - cellTop
37022
- });
37023
- tr2.insert(
37024
- tr2.mapping.slice(mapFrom).map(map4.positionAt(top2, cellLeft, table)),
37025
- cell.type.createAndFill({
37026
- ...cell.attrs,
37027
- rowspan: cellTop + cell.attrs.rowspan - top2
37028
- })
37029
- );
37030
- col += cell.attrs.colspan - 1;
37031
- }
37032
- }
37033
- return found2;
37034
- }
37035
- function isolateVertical(tr2, map4, table, start2, top2, bottom2, left2, mapFrom) {
37036
- if (left2 == 0 || left2 == map4.width)
37037
- return false;
37038
- let found2 = false;
37039
- for (let row = top2; row < bottom2; row++) {
37040
- const index2 = row * map4.width + left2, pos = map4.map[index2];
37041
- if (map4.map[index2 - 1] == pos) {
37042
- found2 = true;
37043
- const cell = table.nodeAt(pos);
37044
- const cellLeft = map4.colCount(pos);
37045
- const updatePos = tr2.mapping.slice(mapFrom).map(pos + start2);
37046
- tr2.setNodeMarkup(
37047
- updatePos,
37048
- null,
37049
- removeColSpan(
37050
- cell.attrs,
37051
- left2 - cellLeft,
37052
- cell.attrs.colspan - (left2 - cellLeft)
37053
- )
37054
- );
37055
- tr2.insert(
37056
- updatePos + cell.nodeSize,
37057
- cell.type.createAndFill(
37058
- removeColSpan(cell.attrs, 0, left2 - cellLeft)
37059
- )
37060
- );
37061
- row += cell.attrs.rowspan - 1;
37062
- }
37063
- }
37064
- return found2;
37065
- }
37066
- function insertCells(state2, dispatch, tableStart, rect, cells) {
37067
- let table = tableStart ? state2.doc.nodeAt(tableStart - 1) : state2.doc;
37068
- if (!table) {
37069
- throw new Error("No table found");
37070
- }
37071
- let map4 = TableMap.get(table);
37072
- const { top: top2, left: left2 } = rect;
37073
- const right2 = left2 + cells.width, bottom2 = top2 + cells.height;
37074
- const tr2 = state2.tr;
37075
- let mapFrom = 0;
37076
- function recomp() {
37077
- table = tableStart ? tr2.doc.nodeAt(tableStart - 1) : tr2.doc;
37078
- if (!table) {
37079
- throw new Error("No table found");
37080
- }
37081
- map4 = TableMap.get(table);
37082
- mapFrom = tr2.mapping.maps.length;
36317
+ let map4 = TableMap.get(table);
36318
+ const { top: top2, left: left2 } = rect;
36319
+ const right2 = left2 + cells.width, bottom2 = top2 + cells.height;
36320
+ const tr2 = state2.tr;
36321
+ let mapFrom = 0;
36322
+ function recomp() {
36323
+ table = tableStart ? tr2.doc.nodeAt(tableStart - 1) : tr2.doc;
36324
+ if (!table) {
36325
+ throw new Error("No table found");
36326
+ }
36327
+ map4 = TableMap.get(table);
36328
+ mapFrom = tr2.mapping.maps.length;
37083
36329
  }
37084
36330
  if (growTable(tr2, map4, table, tableStart, right2, bottom2, mapFrom))
37085
36331
  recomp();
@@ -37190,6 +36436,26 @@ function shiftArrow(axis2, dir) {
37190
36436
  );
37191
36437
  };
37192
36438
  }
36439
+ function deleteCellSelection(state2, dispatch) {
36440
+ const sel = state2.selection;
36441
+ if (!(sel instanceof CellSelection))
36442
+ return false;
36443
+ if (dispatch) {
36444
+ const tr2 = state2.tr;
36445
+ const baseContent = tableNodeTypes(state2.schema).cell.createAndFill().content;
36446
+ sel.forEachCell((cell, pos) => {
36447
+ if (!cell.content.eq(baseContent))
36448
+ tr2.replace(
36449
+ tr2.mapping.map(pos + 1),
36450
+ tr2.mapping.map(pos + cell.nodeSize - 1),
36451
+ new Slice(baseContent, 0, 0)
36452
+ );
36453
+ });
36454
+ if (tr2.docChanged)
36455
+ dispatch(tr2);
36456
+ }
36457
+ return true;
36458
+ }
37193
36459
  function handleTripleClick(view, pos) {
37194
36460
  const doc2 = view.state.doc, $cell = cellAround(doc2.resolve(pos));
37195
36461
  if (!$cell)
@@ -37328,37 +36594,28 @@ function cellUnderMouse(view, event) {
37328
36594
  return mousePos ? cellAround(view.state.doc.resolve(mousePos.pos)) : null;
37329
36595
  }
37330
36596
  var TableView$1 = class TableView2 {
37331
- constructor(node, defaultCellMinWidth) {
36597
+ constructor(node, cellMinWidth) {
37332
36598
  this.node = node;
37333
- this.defaultCellMinWidth = defaultCellMinWidth;
36599
+ this.cellMinWidth = cellMinWidth;
37334
36600
  this.dom = document.createElement("div");
37335
36601
  this.dom.className = "tableWrapper";
37336
36602
  this.table = this.dom.appendChild(document.createElement("table"));
37337
- this.table.style.setProperty(
37338
- "--default-cell-min-width",
37339
- `${defaultCellMinWidth}px`
37340
- );
37341
36603
  this.colgroup = this.table.appendChild(document.createElement("colgroup"));
37342
- updateColumnsOnResize(node, this.colgroup, this.table, defaultCellMinWidth);
36604
+ updateColumnsOnResize(node, this.colgroup, this.table, cellMinWidth);
37343
36605
  this.contentDOM = this.table.appendChild(document.createElement("tbody"));
37344
36606
  }
37345
36607
  update(node) {
37346
36608
  if (node.type != this.node.type)
37347
36609
  return false;
37348
36610
  this.node = node;
37349
- updateColumnsOnResize(
37350
- node,
37351
- this.colgroup,
37352
- this.table,
37353
- this.defaultCellMinWidth
37354
- );
36611
+ updateColumnsOnResize(node, this.colgroup, this.table, this.cellMinWidth);
37355
36612
  return true;
37356
36613
  }
37357
36614
  ignoreMutation(record) {
37358
36615
  return record.type == "attributes" && (record.target == this.table || this.colgroup.contains(record.target));
37359
36616
  }
37360
36617
  };
37361
- function updateColumnsOnResize(node, colgroup, table, defaultCellMinWidth, overrideCol, overrideValue) {
36618
+ function updateColumnsOnResize(node, colgroup, table, cellMinWidth, overrideCol, overrideValue) {
37362
36619
  var _a2;
37363
36620
  let totalWidth = 0;
37364
36621
  let fixedWidth = true;
@@ -37371,17 +36628,14 @@ function updateColumnsOnResize(node, colgroup, table, defaultCellMinWidth, overr
37371
36628
  for (let j2 = 0; j2 < colspan; j2++, col++) {
37372
36629
  const hasWidth = overrideCol == col ? overrideValue : colwidth && colwidth[j2];
37373
36630
  const cssWidth = hasWidth ? hasWidth + "px" : "";
37374
- totalWidth += hasWidth || defaultCellMinWidth;
36631
+ totalWidth += hasWidth || cellMinWidth;
37375
36632
  if (!hasWidth)
37376
36633
  fixedWidth = false;
37377
36634
  if (!nextDOM) {
37378
- const col2 = document.createElement("col");
37379
- col2.style.width = cssWidth;
37380
- colgroup.appendChild(col2);
36635
+ colgroup.appendChild(document.createElement("col")).style.width = cssWidth;
37381
36636
  } else {
37382
- if (nextDOM.style.width != cssWidth) {
36637
+ if (nextDOM.style.width != cssWidth)
37383
36638
  nextDOM.style.width = cssWidth;
37384
- }
37385
36639
  nextDOM = nextDOM.nextSibling;
37386
36640
  }
37387
36641
  }
@@ -37405,7 +36659,6 @@ var columnResizingPluginKey = new PluginKey(
37405
36659
  function columnResizing({
37406
36660
  handleWidth = 5,
37407
36661
  cellMinWidth = 25,
37408
- defaultCellMinWidth = 100,
37409
36662
  View = TableView$1,
37410
36663
  lastColumnResizable = true
37411
36664
  } = {}) {
@@ -37418,7 +36671,7 @@ function columnResizing({
37418
36671
  const tableName = tableNodeTypes(state2.schema).table.name;
37419
36672
  if (View && nodeViews) {
37420
36673
  nodeViews[tableName] = (node, view) => {
37421
- return new View(node, defaultCellMinWidth, view);
36674
+ return new View(node, cellMinWidth, view);
37422
36675
  };
37423
36676
  }
37424
36677
  return new ResizeState(-1, false);
@@ -37434,13 +36687,19 @@ function columnResizing({
37434
36687
  },
37435
36688
  handleDOMEvents: {
37436
36689
  mousemove: (view, event) => {
37437
- handleMouseMove(view, event, handleWidth, lastColumnResizable);
36690
+ handleMouseMove(
36691
+ view,
36692
+ event,
36693
+ handleWidth,
36694
+ cellMinWidth,
36695
+ lastColumnResizable
36696
+ );
37438
36697
  },
37439
36698
  mouseleave: (view) => {
37440
36699
  handleMouseLeave(view);
37441
36700
  },
37442
36701
  mousedown: (view, event) => {
37443
- handleMouseDown2(view, event, cellMinWidth, defaultCellMinWidth);
36702
+ handleMouseDown2(view, event, cellMinWidth);
37444
36703
  }
37445
36704
  },
37446
36705
  decorations: (state2) => {
@@ -37476,7 +36735,7 @@ var ResizeState = class _ResizeState {
37476
36735
  return state2;
37477
36736
  }
37478
36737
  };
37479
- function handleMouseMove(view, event, handleWidth, lastColumnResizable) {
36738
+ function handleMouseMove(view, event, handleWidth, cellMinWidth, lastColumnResizable) {
37480
36739
  const pluginState = columnResizingPluginKey.getState(view.state);
37481
36740
  if (!pluginState)
37482
36741
  return;
@@ -37501,194 +36760,718 @@ function handleMouseMove(view, event, handleWidth, lastColumnResizable) {
37501
36760
  return;
37502
36761
  }
37503
36762
  }
37504
- updateHandle(view, cell);
36763
+ updateHandle(view, cell);
36764
+ }
36765
+ }
36766
+ }
36767
+ function handleMouseLeave(view) {
36768
+ const pluginState = columnResizingPluginKey.getState(view.state);
36769
+ if (pluginState && pluginState.activeHandle > -1 && !pluginState.dragging)
36770
+ updateHandle(view, -1);
36771
+ }
36772
+ function handleMouseDown2(view, event, cellMinWidth) {
36773
+ var _a2;
36774
+ const win = (_a2 = view.dom.ownerDocument.defaultView) != null ? _a2 : window;
36775
+ const pluginState = columnResizingPluginKey.getState(view.state);
36776
+ if (!pluginState || pluginState.activeHandle == -1 || pluginState.dragging)
36777
+ return false;
36778
+ const cell = view.state.doc.nodeAt(pluginState.activeHandle);
36779
+ const width = currentColWidth(view, pluginState.activeHandle, cell.attrs);
36780
+ view.dispatch(
36781
+ view.state.tr.setMeta(columnResizingPluginKey, {
36782
+ setDragging: { startX: event.clientX, startWidth: width }
36783
+ })
36784
+ );
36785
+ function finish(event2) {
36786
+ win.removeEventListener("mouseup", finish);
36787
+ win.removeEventListener("mousemove", move);
36788
+ const pluginState2 = columnResizingPluginKey.getState(view.state);
36789
+ if (pluginState2 == null ? void 0 : pluginState2.dragging) {
36790
+ updateColumnWidth(
36791
+ view,
36792
+ pluginState2.activeHandle,
36793
+ draggedWidth(pluginState2.dragging, event2, cellMinWidth)
36794
+ );
36795
+ view.dispatch(
36796
+ view.state.tr.setMeta(columnResizingPluginKey, { setDragging: null })
36797
+ );
36798
+ }
36799
+ }
36800
+ function move(event2) {
36801
+ if (!event2.which)
36802
+ return finish(event2);
36803
+ const pluginState2 = columnResizingPluginKey.getState(view.state);
36804
+ if (!pluginState2)
36805
+ return;
36806
+ if (pluginState2.dragging) {
36807
+ const dragged = draggedWidth(pluginState2.dragging, event2, cellMinWidth);
36808
+ displayColumnWidth(view, pluginState2.activeHandle, dragged, cellMinWidth);
36809
+ }
36810
+ }
36811
+ win.addEventListener("mouseup", finish);
36812
+ win.addEventListener("mousemove", move);
36813
+ event.preventDefault();
36814
+ return true;
36815
+ }
36816
+ function currentColWidth(view, cellPos, { colspan, colwidth }) {
36817
+ const width = colwidth && colwidth[colwidth.length - 1];
36818
+ if (width)
36819
+ return width;
36820
+ const dom = view.domAtPos(cellPos);
36821
+ const node = dom.node.childNodes[dom.offset];
36822
+ let domWidth = node.offsetWidth, parts = colspan;
36823
+ if (colwidth) {
36824
+ for (let i2 = 0; i2 < colspan; i2++)
36825
+ if (colwidth[i2]) {
36826
+ domWidth -= colwidth[i2];
36827
+ parts--;
36828
+ }
36829
+ }
36830
+ return domWidth / parts;
36831
+ }
36832
+ function domCellAround(target) {
36833
+ while (target && target.nodeName != "TD" && target.nodeName != "TH")
36834
+ target = target.classList && target.classList.contains("ProseMirror") ? null : target.parentNode;
36835
+ return target;
36836
+ }
36837
+ function edgeCell(view, event, side, handleWidth) {
36838
+ const offset2 = side == "right" ? -handleWidth : handleWidth;
36839
+ const found2 = view.posAtCoords({
36840
+ left: event.clientX + offset2,
36841
+ top: event.clientY
36842
+ });
36843
+ if (!found2)
36844
+ return -1;
36845
+ const { pos } = found2;
36846
+ const $cell = cellAround(view.state.doc.resolve(pos));
36847
+ if (!$cell)
36848
+ return -1;
36849
+ if (side == "right")
36850
+ return $cell.pos;
36851
+ const map4 = TableMap.get($cell.node(-1)), start2 = $cell.start(-1);
36852
+ const index2 = map4.map.indexOf($cell.pos - start2);
36853
+ return index2 % map4.width == 0 ? -1 : start2 + map4.map[index2 - 1];
36854
+ }
36855
+ function draggedWidth(dragging, event, cellMinWidth) {
36856
+ const offset2 = event.clientX - dragging.startX;
36857
+ return Math.max(cellMinWidth, dragging.startWidth + offset2);
36858
+ }
36859
+ function updateHandle(view, value) {
36860
+ view.dispatch(
36861
+ view.state.tr.setMeta(columnResizingPluginKey, { setHandle: value })
36862
+ );
36863
+ }
36864
+ function updateColumnWidth(view, cell, width) {
36865
+ const $cell = view.state.doc.resolve(cell);
36866
+ const table = $cell.node(-1), map4 = TableMap.get(table), start2 = $cell.start(-1);
36867
+ const col = map4.colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
36868
+ const tr2 = view.state.tr;
36869
+ for (let row = 0; row < map4.height; row++) {
36870
+ const mapIndex = row * map4.width + col;
36871
+ if (row && map4.map[mapIndex] == map4.map[mapIndex - map4.width])
36872
+ continue;
36873
+ const pos = map4.map[mapIndex];
36874
+ const attrs = table.nodeAt(pos).attrs;
36875
+ const index2 = attrs.colspan == 1 ? 0 : col - map4.colCount(pos);
36876
+ if (attrs.colwidth && attrs.colwidth[index2] == width)
36877
+ continue;
36878
+ const colwidth = attrs.colwidth ? attrs.colwidth.slice() : zeroes(attrs.colspan);
36879
+ colwidth[index2] = width;
36880
+ tr2.setNodeMarkup(start2 + pos, null, { ...attrs, colwidth });
36881
+ }
36882
+ if (tr2.docChanged)
36883
+ view.dispatch(tr2);
36884
+ }
36885
+ function displayColumnWidth(view, cell, width, cellMinWidth) {
36886
+ const $cell = view.state.doc.resolve(cell);
36887
+ const table = $cell.node(-1), start2 = $cell.start(-1);
36888
+ const col = TableMap.get(table).colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
36889
+ let dom = view.domAtPos($cell.start(-1)).node;
36890
+ while (dom && dom.nodeName != "TABLE") {
36891
+ dom = dom.parentNode;
36892
+ }
36893
+ if (!dom)
36894
+ return;
36895
+ updateColumnsOnResize(
36896
+ table,
36897
+ dom.firstChild,
36898
+ dom,
36899
+ cellMinWidth,
36900
+ col,
36901
+ width
36902
+ );
36903
+ }
36904
+ function zeroes(n2) {
36905
+ return Array(n2).fill(0);
36906
+ }
36907
+ function handleDecorations(state2, cell) {
36908
+ const decorations = [];
36909
+ const $cell = state2.doc.resolve(cell);
36910
+ const table = $cell.node(-1);
36911
+ if (!table) {
36912
+ return DecorationSet.empty;
36913
+ }
36914
+ const map4 = TableMap.get(table);
36915
+ const start2 = $cell.start(-1);
36916
+ const col = map4.colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
36917
+ for (let row = 0; row < map4.height; row++) {
36918
+ const index2 = col + row * map4.width;
36919
+ if ((col == map4.width - 1 || map4.map[index2] != map4.map[index2 + 1]) && (row == 0 || map4.map[index2] != map4.map[index2 - map4.width])) {
36920
+ const cellPos = map4.map[index2];
36921
+ const pos = start2 + cellPos + table.nodeAt(cellPos).nodeSize - 1;
36922
+ const dom = document.createElement("div");
36923
+ dom.className = "column-resize-handle";
36924
+ decorations.push(Decoration.widget(pos, dom));
36925
+ }
36926
+ }
36927
+ return DecorationSet.create(state2.doc, decorations);
36928
+ }
36929
+ function selectedRect(state2) {
36930
+ const sel = state2.selection;
36931
+ const $pos = selectionCell(state2);
36932
+ const table = $pos.node(-1);
36933
+ const tableStart = $pos.start(-1);
36934
+ const map4 = TableMap.get(table);
36935
+ const rect = sel instanceof CellSelection ? map4.rectBetween(
36936
+ sel.$anchorCell.pos - tableStart,
36937
+ sel.$headCell.pos - tableStart
36938
+ ) : map4.findCell($pos.pos - tableStart);
36939
+ return { ...rect, tableStart, map: map4, table };
36940
+ }
36941
+ function addColumn(tr2, { map: map4, tableStart, table }, col) {
36942
+ let refColumn = col > 0 ? -1 : 0;
36943
+ if (columnIsHeader(map4, table, col + refColumn)) {
36944
+ refColumn = col == 0 || col == map4.width ? null : 0;
36945
+ }
36946
+ for (let row = 0; row < map4.height; row++) {
36947
+ const index2 = row * map4.width + col;
36948
+ if (col > 0 && col < map4.width && map4.map[index2 - 1] == map4.map[index2]) {
36949
+ const pos = map4.map[index2];
36950
+ const cell = table.nodeAt(pos);
36951
+ tr2.setNodeMarkup(
36952
+ tr2.mapping.map(tableStart + pos),
36953
+ null,
36954
+ addColSpan(cell.attrs, col - map4.colCount(pos))
36955
+ );
36956
+ row += cell.attrs.rowspan - 1;
36957
+ } else {
36958
+ const type3 = refColumn == null ? tableNodeTypes(table.type.schema).cell : table.nodeAt(map4.map[index2 + refColumn]).type;
36959
+ const pos = map4.positionAt(row, col, table);
36960
+ tr2.insert(tr2.mapping.map(tableStart + pos), type3.createAndFill());
36961
+ }
36962
+ }
36963
+ return tr2;
36964
+ }
36965
+ function addColumnBefore(state2, dispatch) {
36966
+ if (!isInTable(state2))
36967
+ return false;
36968
+ if (dispatch) {
36969
+ const rect = selectedRect(state2);
36970
+ dispatch(addColumn(state2.tr, rect, rect.left));
36971
+ }
36972
+ return true;
36973
+ }
36974
+ function addColumnAfter(state2, dispatch) {
36975
+ if (!isInTable(state2))
36976
+ return false;
36977
+ if (dispatch) {
36978
+ const rect = selectedRect(state2);
36979
+ dispatch(addColumn(state2.tr, rect, rect.right));
36980
+ }
36981
+ return true;
36982
+ }
36983
+ function removeColumn(tr2, { map: map4, table, tableStart }, col) {
36984
+ const mapStart = tr2.mapping.maps.length;
36985
+ for (let row = 0; row < map4.height; ) {
36986
+ const index2 = row * map4.width + col;
36987
+ const pos = map4.map[index2];
36988
+ const cell = table.nodeAt(pos);
36989
+ const attrs = cell.attrs;
36990
+ if (col > 0 && map4.map[index2 - 1] == pos || col < map4.width - 1 && map4.map[index2 + 1] == pos) {
36991
+ tr2.setNodeMarkup(
36992
+ tr2.mapping.slice(mapStart).map(tableStart + pos),
36993
+ null,
36994
+ removeColSpan(attrs, col - map4.colCount(pos))
36995
+ );
36996
+ } else {
36997
+ const start2 = tr2.mapping.slice(mapStart).map(tableStart + pos);
36998
+ tr2.delete(start2, start2 + cell.nodeSize);
36999
+ }
37000
+ row += attrs.rowspan;
37001
+ }
37002
+ }
37003
+ function deleteColumn(state2, dispatch) {
37004
+ if (!isInTable(state2))
37005
+ return false;
37006
+ if (dispatch) {
37007
+ const rect = selectedRect(state2);
37008
+ const tr2 = state2.tr;
37009
+ if (rect.left == 0 && rect.right == rect.map.width)
37010
+ return false;
37011
+ for (let i2 = rect.right - 1; ; i2--) {
37012
+ removeColumn(tr2, rect, i2);
37013
+ if (i2 == rect.left)
37014
+ break;
37015
+ const table = rect.tableStart ? tr2.doc.nodeAt(rect.tableStart - 1) : tr2.doc;
37016
+ if (!table) {
37017
+ throw RangeError("No table found");
37018
+ }
37019
+ rect.table = table;
37020
+ rect.map = TableMap.get(table);
37021
+ }
37022
+ dispatch(tr2);
37023
+ }
37024
+ return true;
37025
+ }
37026
+ function rowIsHeader(map4, table, row) {
37027
+ var _a2;
37028
+ const headerCell = tableNodeTypes(table.type.schema).header_cell;
37029
+ for (let col = 0; col < map4.width; col++)
37030
+ if (((_a2 = table.nodeAt(map4.map[col + row * map4.width])) == null ? void 0 : _a2.type) != headerCell)
37031
+ return false;
37032
+ return true;
37033
+ }
37034
+ function addRow(tr2, { map: map4, tableStart, table }, row) {
37035
+ var _a2;
37036
+ let rowPos = tableStart;
37037
+ for (let i2 = 0; i2 < row; i2++)
37038
+ rowPos += table.child(i2).nodeSize;
37039
+ const cells = [];
37040
+ let refRow = row > 0 ? -1 : 0;
37041
+ if (rowIsHeader(map4, table, row + refRow))
37042
+ refRow = row == 0 || row == map4.height ? null : 0;
37043
+ for (let col = 0, index2 = map4.width * row; col < map4.width; col++, index2++) {
37044
+ if (row > 0 && row < map4.height && map4.map[index2] == map4.map[index2 - map4.width]) {
37045
+ const pos = map4.map[index2];
37046
+ const attrs = table.nodeAt(pos).attrs;
37047
+ tr2.setNodeMarkup(tableStart + pos, null, {
37048
+ ...attrs,
37049
+ rowspan: attrs.rowspan + 1
37050
+ });
37051
+ col += attrs.colspan - 1;
37052
+ } else {
37053
+ const type3 = refRow == null ? tableNodeTypes(table.type.schema).cell : (_a2 = table.nodeAt(map4.map[index2 + refRow * map4.width])) == null ? void 0 : _a2.type;
37054
+ const node = type3 == null ? void 0 : type3.createAndFill();
37055
+ if (node)
37056
+ cells.push(node);
37057
+ }
37058
+ }
37059
+ tr2.insert(rowPos, tableNodeTypes(table.type.schema).row.create(null, cells));
37060
+ return tr2;
37061
+ }
37062
+ function addRowBefore(state2, dispatch) {
37063
+ if (!isInTable(state2))
37064
+ return false;
37065
+ if (dispatch) {
37066
+ const rect = selectedRect(state2);
37067
+ dispatch(addRow(state2.tr, rect, rect.top));
37068
+ }
37069
+ return true;
37070
+ }
37071
+ function addRowAfter(state2, dispatch) {
37072
+ if (!isInTable(state2))
37073
+ return false;
37074
+ if (dispatch) {
37075
+ const rect = selectedRect(state2);
37076
+ dispatch(addRow(state2.tr, rect, rect.bottom));
37077
+ }
37078
+ return true;
37079
+ }
37080
+ function removeRow(tr2, { map: map4, table, tableStart }, row) {
37081
+ let rowPos = 0;
37082
+ for (let i2 = 0; i2 < row; i2++)
37083
+ rowPos += table.child(i2).nodeSize;
37084
+ const nextRow = rowPos + table.child(row).nodeSize;
37085
+ const mapFrom = tr2.mapping.maps.length;
37086
+ tr2.delete(rowPos + tableStart, nextRow + tableStart);
37087
+ const seen = /* @__PURE__ */ new Set();
37088
+ for (let col = 0, index2 = row * map4.width; col < map4.width; col++, index2++) {
37089
+ const pos = map4.map[index2];
37090
+ if (seen.has(pos))
37091
+ continue;
37092
+ seen.add(pos);
37093
+ if (row > 0 && pos == map4.map[index2 - map4.width]) {
37094
+ const attrs = table.nodeAt(pos).attrs;
37095
+ tr2.setNodeMarkup(tr2.mapping.slice(mapFrom).map(pos + tableStart), null, {
37096
+ ...attrs,
37097
+ rowspan: attrs.rowspan - 1
37098
+ });
37099
+ col += attrs.colspan - 1;
37100
+ } else if (row < map4.height && pos == map4.map[index2 + map4.width]) {
37101
+ const cell = table.nodeAt(pos);
37102
+ const attrs = cell.attrs;
37103
+ const copy2 = cell.type.create(
37104
+ { ...attrs, rowspan: cell.attrs.rowspan - 1 },
37105
+ cell.content
37106
+ );
37107
+ const newPos = map4.positionAt(row + 1, col, table);
37108
+ tr2.insert(tr2.mapping.slice(mapFrom).map(tableStart + newPos), copy2);
37109
+ col += attrs.colspan - 1;
37110
+ }
37111
+ }
37112
+ }
37113
+ function deleteRow(state2, dispatch) {
37114
+ if (!isInTable(state2))
37115
+ return false;
37116
+ if (dispatch) {
37117
+ const rect = selectedRect(state2), tr2 = state2.tr;
37118
+ if (rect.top == 0 && rect.bottom == rect.map.height)
37119
+ return false;
37120
+ for (let i2 = rect.bottom - 1; ; i2--) {
37121
+ removeRow(tr2, rect, i2);
37122
+ if (i2 == rect.top)
37123
+ break;
37124
+ const table = rect.tableStart ? tr2.doc.nodeAt(rect.tableStart - 1) : tr2.doc;
37125
+ if (!table) {
37126
+ throw RangeError("No table found");
37127
+ }
37128
+ rect.table = table;
37129
+ rect.map = TableMap.get(rect.table);
37130
+ }
37131
+ dispatch(tr2);
37132
+ }
37133
+ return true;
37134
+ }
37135
+ function isEmpty(cell) {
37136
+ const c2 = cell.content;
37137
+ return c2.childCount == 1 && c2.child(0).isTextblock && c2.child(0).childCount == 0;
37138
+ }
37139
+ function cellsOverlapRectangle({ width, height, map: map4 }, rect) {
37140
+ let indexTop = rect.top * width + rect.left, indexLeft = indexTop;
37141
+ let indexBottom = (rect.bottom - 1) * width + rect.left, indexRight = indexTop + (rect.right - rect.left - 1);
37142
+ for (let i2 = rect.top; i2 < rect.bottom; i2++) {
37143
+ if (rect.left > 0 && map4[indexLeft] == map4[indexLeft - 1] || rect.right < width && map4[indexRight] == map4[indexRight + 1])
37144
+ return true;
37145
+ indexLeft += width;
37146
+ indexRight += width;
37147
+ }
37148
+ for (let i2 = rect.left; i2 < rect.right; i2++) {
37149
+ if (rect.top > 0 && map4[indexTop] == map4[indexTop - width] || rect.bottom < height && map4[indexBottom] == map4[indexBottom + width])
37150
+ return true;
37151
+ indexTop++;
37152
+ indexBottom++;
37153
+ }
37154
+ return false;
37155
+ }
37156
+ function mergeCells(state2, dispatch) {
37157
+ const sel = state2.selection;
37158
+ if (!(sel instanceof CellSelection) || sel.$anchorCell.pos == sel.$headCell.pos)
37159
+ return false;
37160
+ const rect = selectedRect(state2), { map: map4 } = rect;
37161
+ if (cellsOverlapRectangle(map4, rect))
37162
+ return false;
37163
+ if (dispatch) {
37164
+ const tr2 = state2.tr;
37165
+ const seen = {};
37166
+ let content = Fragment.empty;
37167
+ let mergedPos;
37168
+ let mergedCell;
37169
+ for (let row = rect.top; row < rect.bottom; row++) {
37170
+ for (let col = rect.left; col < rect.right; col++) {
37171
+ const cellPos = map4.map[row * map4.width + col];
37172
+ const cell = rect.table.nodeAt(cellPos);
37173
+ if (seen[cellPos] || !cell)
37174
+ continue;
37175
+ seen[cellPos] = true;
37176
+ if (mergedPos == null) {
37177
+ mergedPos = cellPos;
37178
+ mergedCell = cell;
37179
+ } else {
37180
+ if (!isEmpty(cell))
37181
+ content = content.append(cell.content);
37182
+ const mapped = tr2.mapping.map(cellPos + rect.tableStart);
37183
+ tr2.delete(mapped, mapped + cell.nodeSize);
37184
+ }
37185
+ }
37186
+ }
37187
+ if (mergedPos == null || mergedCell == null) {
37188
+ return true;
37189
+ }
37190
+ tr2.setNodeMarkup(mergedPos + rect.tableStart, null, {
37191
+ ...addColSpan(
37192
+ mergedCell.attrs,
37193
+ mergedCell.attrs.colspan,
37194
+ rect.right - rect.left - mergedCell.attrs.colspan
37195
+ ),
37196
+ rowspan: rect.bottom - rect.top
37197
+ });
37198
+ if (content.size) {
37199
+ const end2 = mergedPos + 1 + mergedCell.content.size;
37200
+ const start2 = isEmpty(mergedCell) ? mergedPos + 1 : end2;
37201
+ tr2.replaceWith(start2 + rect.tableStart, end2 + rect.tableStart, content);
37202
+ }
37203
+ tr2.setSelection(
37204
+ new CellSelection(tr2.doc.resolve(mergedPos + rect.tableStart))
37205
+ );
37206
+ dispatch(tr2);
37207
+ }
37208
+ return true;
37209
+ }
37210
+ function splitCell(state2, dispatch) {
37211
+ const nodeTypes = tableNodeTypes(state2.schema);
37212
+ return splitCellWithType(({ node }) => {
37213
+ return nodeTypes[node.type.spec.tableRole];
37214
+ })(state2, dispatch);
37215
+ }
37216
+ function splitCellWithType(getCellType) {
37217
+ return (state2, dispatch) => {
37218
+ var _a2;
37219
+ const sel = state2.selection;
37220
+ let cellNode;
37221
+ let cellPos;
37222
+ if (!(sel instanceof CellSelection)) {
37223
+ cellNode = cellWrapping(sel.$from);
37224
+ if (!cellNode)
37225
+ return false;
37226
+ cellPos = (_a2 = cellAround(sel.$from)) == null ? void 0 : _a2.pos;
37227
+ } else {
37228
+ if (sel.$anchorCell.pos != sel.$headCell.pos)
37229
+ return false;
37230
+ cellNode = sel.$anchorCell.nodeAfter;
37231
+ cellPos = sel.$anchorCell.pos;
37232
+ }
37233
+ if (cellNode == null || cellPos == null) {
37234
+ return false;
37235
+ }
37236
+ if (cellNode.attrs.colspan == 1 && cellNode.attrs.rowspan == 1) {
37237
+ return false;
37238
+ }
37239
+ if (dispatch) {
37240
+ let baseAttrs = cellNode.attrs;
37241
+ const attrs = [];
37242
+ const colwidth = baseAttrs.colwidth;
37243
+ if (baseAttrs.rowspan > 1)
37244
+ baseAttrs = { ...baseAttrs, rowspan: 1 };
37245
+ if (baseAttrs.colspan > 1)
37246
+ baseAttrs = { ...baseAttrs, colspan: 1 };
37247
+ const rect = selectedRect(state2), tr2 = state2.tr;
37248
+ for (let i2 = 0; i2 < rect.right - rect.left; i2++)
37249
+ attrs.push(
37250
+ colwidth ? {
37251
+ ...baseAttrs,
37252
+ colwidth: colwidth && colwidth[i2] ? [colwidth[i2]] : null
37253
+ } : baseAttrs
37254
+ );
37255
+ let lastCell;
37256
+ for (let row = rect.top; row < rect.bottom; row++) {
37257
+ let pos = rect.map.positionAt(row, rect.left, rect.table);
37258
+ if (row == rect.top)
37259
+ pos += cellNode.nodeSize;
37260
+ for (let col = rect.left, i2 = 0; col < rect.right; col++, i2++) {
37261
+ if (col == rect.left && row == rect.top)
37262
+ continue;
37263
+ tr2.insert(
37264
+ lastCell = tr2.mapping.map(pos + rect.tableStart, 1),
37265
+ getCellType({ node: cellNode, row, col }).createAndFill(attrs[i2])
37266
+ );
37267
+ }
37268
+ }
37269
+ tr2.setNodeMarkup(
37270
+ cellPos,
37271
+ getCellType({ node: cellNode, row: rect.top, col: rect.left }),
37272
+ attrs[0]
37273
+ );
37274
+ if (sel instanceof CellSelection)
37275
+ tr2.setSelection(
37276
+ new CellSelection(
37277
+ tr2.doc.resolve(sel.$anchorCell.pos),
37278
+ lastCell ? tr2.doc.resolve(lastCell) : void 0
37279
+ )
37280
+ );
37281
+ dispatch(tr2);
37505
37282
  }
37506
- }
37283
+ return true;
37284
+ };
37507
37285
  }
37508
- function handleMouseLeave(view) {
37509
- const pluginState = columnResizingPluginKey.getState(view.state);
37510
- if (pluginState && pluginState.activeHandle > -1 && !pluginState.dragging)
37511
- updateHandle(view, -1);
37286
+ function setCellAttr(name, value) {
37287
+ return function(state2, dispatch) {
37288
+ if (!isInTable(state2))
37289
+ return false;
37290
+ const $cell = selectionCell(state2);
37291
+ if ($cell.nodeAfter.attrs[name] === value)
37292
+ return false;
37293
+ if (dispatch) {
37294
+ const tr2 = state2.tr;
37295
+ if (state2.selection instanceof CellSelection)
37296
+ state2.selection.forEachCell((node, pos) => {
37297
+ if (node.attrs[name] !== value)
37298
+ tr2.setNodeMarkup(pos, null, {
37299
+ ...node.attrs,
37300
+ [name]: value
37301
+ });
37302
+ });
37303
+ else
37304
+ tr2.setNodeMarkup($cell.pos, null, {
37305
+ ...$cell.nodeAfter.attrs,
37306
+ [name]: value
37307
+ });
37308
+ dispatch(tr2);
37309
+ }
37310
+ return true;
37311
+ };
37512
37312
  }
37513
- function handleMouseDown2(view, event, cellMinWidth, defaultCellMinWidth) {
37514
- var _a2;
37515
- const win = (_a2 = view.dom.ownerDocument.defaultView) != null ? _a2 : window;
37516
- const pluginState = columnResizingPluginKey.getState(view.state);
37517
- if (!pluginState || pluginState.activeHandle == -1 || pluginState.dragging)
37518
- return false;
37519
- const cell = view.state.doc.nodeAt(pluginState.activeHandle);
37520
- const width = currentColWidth(view, pluginState.activeHandle, cell.attrs);
37521
- view.dispatch(
37522
- view.state.tr.setMeta(columnResizingPluginKey, {
37523
- setDragging: { startX: event.clientX, startWidth: width }
37524
- })
37525
- );
37526
- function finish(event2) {
37527
- win.removeEventListener("mouseup", finish);
37528
- win.removeEventListener("mousemove", move);
37529
- const pluginState2 = columnResizingPluginKey.getState(view.state);
37530
- if (pluginState2 == null ? void 0 : pluginState2.dragging) {
37531
- updateColumnWidth(
37532
- view,
37533
- pluginState2.activeHandle,
37534
- draggedWidth(pluginState2.dragging, event2, cellMinWidth)
37535
- );
37536
- view.dispatch(
37537
- view.state.tr.setMeta(columnResizingPluginKey, { setDragging: null })
37313
+ function deprecated_toggleHeader(type3) {
37314
+ return function(state2, dispatch) {
37315
+ if (!isInTable(state2))
37316
+ return false;
37317
+ if (dispatch) {
37318
+ const types = tableNodeTypes(state2.schema);
37319
+ const rect = selectedRect(state2), tr2 = state2.tr;
37320
+ const cells = rect.map.cellsInRect(
37321
+ type3 == "column" ? {
37322
+ left: rect.left,
37323
+ top: 0,
37324
+ right: rect.right,
37325
+ bottom: rect.map.height
37326
+ } : type3 == "row" ? {
37327
+ left: 0,
37328
+ top: rect.top,
37329
+ right: rect.map.width,
37330
+ bottom: rect.bottom
37331
+ } : rect
37538
37332
  );
37333
+ const nodes = cells.map((pos) => rect.table.nodeAt(pos));
37334
+ for (let i2 = 0; i2 < cells.length; i2++)
37335
+ if (nodes[i2].type == types.header_cell)
37336
+ tr2.setNodeMarkup(
37337
+ rect.tableStart + cells[i2],
37338
+ types.cell,
37339
+ nodes[i2].attrs
37340
+ );
37341
+ if (tr2.steps.length == 0)
37342
+ for (let i2 = 0; i2 < cells.length; i2++)
37343
+ tr2.setNodeMarkup(
37344
+ rect.tableStart + cells[i2],
37345
+ types.header_cell,
37346
+ nodes[i2].attrs
37347
+ );
37348
+ dispatch(tr2);
37539
37349
  }
37540
- }
37541
- function move(event2) {
37542
- if (!event2.which)
37543
- return finish(event2);
37544
- const pluginState2 = columnResizingPluginKey.getState(view.state);
37545
- if (!pluginState2)
37546
- return;
37547
- if (pluginState2.dragging) {
37548
- const dragged = draggedWidth(pluginState2.dragging, event2, cellMinWidth);
37549
- displayColumnWidth(
37550
- view,
37551
- pluginState2.activeHandle,
37552
- dragged,
37553
- defaultCellMinWidth
37554
- );
37350
+ return true;
37351
+ };
37352
+ }
37353
+ function isHeaderEnabledByType(type3, rect, types) {
37354
+ const cellPositions = rect.map.cellsInRect({
37355
+ left: 0,
37356
+ top: 0,
37357
+ right: type3 == "row" ? rect.map.width : 1,
37358
+ bottom: type3 == "column" ? rect.map.height : 1
37359
+ });
37360
+ for (let i2 = 0; i2 < cellPositions.length; i2++) {
37361
+ const cell = rect.table.nodeAt(cellPositions[i2]);
37362
+ if (cell && cell.type !== types.header_cell) {
37363
+ return false;
37555
37364
  }
37556
37365
  }
37557
- displayColumnWidth(
37558
- view,
37559
- pluginState.activeHandle,
37560
- width,
37561
- defaultCellMinWidth
37562
- );
37563
- win.addEventListener("mouseup", finish);
37564
- win.addEventListener("mousemove", move);
37565
- event.preventDefault();
37566
37366
  return true;
37567
37367
  }
37568
- function currentColWidth(view, cellPos, { colspan, colwidth }) {
37569
- const width = colwidth && colwidth[colwidth.length - 1];
37570
- if (width)
37571
- return width;
37572
- const dom = view.domAtPos(cellPos);
37573
- const node = dom.node.childNodes[dom.offset];
37574
- let domWidth = node.offsetWidth, parts = colspan;
37575
- if (colwidth) {
37576
- for (let i2 = 0; i2 < colspan; i2++)
37577
- if (colwidth[i2]) {
37578
- domWidth -= colwidth[i2];
37579
- parts--;
37580
- }
37581
- }
37582
- return domWidth / parts;
37583
- }
37584
- function domCellAround(target) {
37585
- while (target && target.nodeName != "TD" && target.nodeName != "TH")
37586
- target = target.classList && target.classList.contains("ProseMirror") ? null : target.parentNode;
37587
- return target;
37588
- }
37589
- function edgeCell(view, event, side, handleWidth) {
37590
- const offset2 = side == "right" ? -handleWidth : handleWidth;
37591
- const found2 = view.posAtCoords({
37592
- left: event.clientX + offset2,
37593
- top: event.clientY
37594
- });
37595
- if (!found2)
37596
- return -1;
37597
- const { pos } = found2;
37598
- const $cell = cellAround(view.state.doc.resolve(pos));
37599
- if (!$cell)
37600
- return -1;
37601
- if (side == "right")
37602
- return $cell.pos;
37603
- const map4 = TableMap.get($cell.node(-1)), start2 = $cell.start(-1);
37604
- const index2 = map4.map.indexOf($cell.pos - start2);
37605
- return index2 % map4.width == 0 ? -1 : start2 + map4.map[index2 - 1];
37606
- }
37607
- function draggedWidth(dragging, event, resizeMinWidth) {
37608
- const offset2 = event.clientX - dragging.startX;
37609
- return Math.max(resizeMinWidth, dragging.startWidth + offset2);
37610
- }
37611
- function updateHandle(view, value) {
37612
- view.dispatch(
37613
- view.state.tr.setMeta(columnResizingPluginKey, { setHandle: value })
37614
- );
37615
- }
37616
- function updateColumnWidth(view, cell, width) {
37617
- const $cell = view.state.doc.resolve(cell);
37618
- const table = $cell.node(-1), map4 = TableMap.get(table), start2 = $cell.start(-1);
37619
- const col = map4.colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
37620
- const tr2 = view.state.tr;
37621
- for (let row = 0; row < map4.height; row++) {
37622
- const mapIndex = row * map4.width + col;
37623
- if (row && map4.map[mapIndex] == map4.map[mapIndex - map4.width])
37624
- continue;
37625
- const pos = map4.map[mapIndex];
37626
- const attrs = table.nodeAt(pos).attrs;
37627
- const index2 = attrs.colspan == 1 ? 0 : col - map4.colCount(pos);
37628
- if (attrs.colwidth && attrs.colwidth[index2] == width)
37629
- continue;
37630
- const colwidth = attrs.colwidth ? attrs.colwidth.slice() : zeroes(attrs.colspan);
37631
- colwidth[index2] = width;
37632
- tr2.setNodeMarkup(start2 + pos, null, { ...attrs, colwidth });
37633
- }
37634
- if (tr2.docChanged)
37635
- view.dispatch(tr2);
37368
+ function toggleHeader(type3, options) {
37369
+ options = options || { useDeprecatedLogic: false };
37370
+ if (options.useDeprecatedLogic)
37371
+ return deprecated_toggleHeader(type3);
37372
+ return function(state2, dispatch) {
37373
+ if (!isInTable(state2))
37374
+ return false;
37375
+ if (dispatch) {
37376
+ const types = tableNodeTypes(state2.schema);
37377
+ const rect = selectedRect(state2), tr2 = state2.tr;
37378
+ const isHeaderRowEnabled = isHeaderEnabledByType("row", rect, types);
37379
+ const isHeaderColumnEnabled = isHeaderEnabledByType(
37380
+ "column",
37381
+ rect,
37382
+ types
37383
+ );
37384
+ const isHeaderEnabled = type3 === "column" ? isHeaderRowEnabled : type3 === "row" ? isHeaderColumnEnabled : false;
37385
+ const selectionStartsAt = isHeaderEnabled ? 1 : 0;
37386
+ const cellsRect = type3 == "column" ? {
37387
+ left: 0,
37388
+ top: selectionStartsAt,
37389
+ right: 1,
37390
+ bottom: rect.map.height
37391
+ } : type3 == "row" ? {
37392
+ left: selectionStartsAt,
37393
+ top: 0,
37394
+ right: rect.map.width,
37395
+ bottom: 1
37396
+ } : rect;
37397
+ const newType = type3 == "column" ? isHeaderColumnEnabled ? types.cell : types.header_cell : type3 == "row" ? isHeaderRowEnabled ? types.cell : types.header_cell : types.cell;
37398
+ rect.map.cellsInRect(cellsRect).forEach((relativeCellPos) => {
37399
+ const cellPos = relativeCellPos + rect.tableStart;
37400
+ const cell = tr2.doc.nodeAt(cellPos);
37401
+ if (cell) {
37402
+ tr2.setNodeMarkup(cellPos, newType, cell.attrs);
37403
+ }
37404
+ });
37405
+ dispatch(tr2);
37406
+ }
37407
+ return true;
37408
+ };
37636
37409
  }
37637
- function displayColumnWidth(view, cell, width, defaultCellMinWidth) {
37638
- const $cell = view.state.doc.resolve(cell);
37639
- const table = $cell.node(-1), start2 = $cell.start(-1);
37640
- const col = TableMap.get(table).colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
37641
- let dom = view.domAtPos($cell.start(-1)).node;
37642
- while (dom && dom.nodeName != "TABLE") {
37643
- dom = dom.parentNode;
37410
+ toggleHeader("row", {
37411
+ useDeprecatedLogic: true
37412
+ });
37413
+ toggleHeader("column", {
37414
+ useDeprecatedLogic: true
37415
+ });
37416
+ var toggleHeaderCell = toggleHeader("cell", {
37417
+ useDeprecatedLogic: true
37418
+ });
37419
+ function findNextCell($cell, dir) {
37420
+ if (dir < 0) {
37421
+ const before = $cell.nodeBefore;
37422
+ if (before)
37423
+ return $cell.pos - before.nodeSize;
37424
+ for (let row = $cell.index(-1) - 1, rowEnd = $cell.before(); row >= 0; row--) {
37425
+ const rowNode = $cell.node(-1).child(row);
37426
+ const lastChild2 = rowNode.lastChild;
37427
+ if (lastChild2) {
37428
+ return rowEnd - 1 - lastChild2.nodeSize;
37429
+ }
37430
+ rowEnd -= rowNode.nodeSize;
37431
+ }
37432
+ } else {
37433
+ if ($cell.index() < $cell.parent.childCount - 1) {
37434
+ return $cell.pos + $cell.nodeAfter.nodeSize;
37435
+ }
37436
+ const table = $cell.node(-1);
37437
+ for (let row = $cell.indexAfter(-1), rowStart = $cell.after(); row < table.childCount; row++) {
37438
+ const rowNode = table.child(row);
37439
+ if (rowNode.childCount)
37440
+ return rowStart + 1;
37441
+ rowStart += rowNode.nodeSize;
37442
+ }
37644
37443
  }
37645
- if (!dom)
37646
- return;
37647
- updateColumnsOnResize(
37648
- table,
37649
- dom.firstChild,
37650
- dom,
37651
- defaultCellMinWidth,
37652
- col,
37653
- width
37654
- );
37444
+ return null;
37655
37445
  }
37656
- function zeroes(n2) {
37657
- return Array(n2).fill(0);
37446
+ function goToNextCell(direction) {
37447
+ return function(state2, dispatch) {
37448
+ if (!isInTable(state2))
37449
+ return false;
37450
+ const cell = findNextCell(selectionCell(state2), direction);
37451
+ if (cell == null)
37452
+ return false;
37453
+ if (dispatch) {
37454
+ const $cell = state2.doc.resolve(cell);
37455
+ dispatch(
37456
+ state2.tr.setSelection(TextSelection.between($cell, moveCellForward($cell))).scrollIntoView()
37457
+ );
37458
+ }
37459
+ return true;
37460
+ };
37658
37461
  }
37659
- function handleDecorations(state2, cell) {
37660
- var _a2;
37661
- const decorations = [];
37662
- const $cell = state2.doc.resolve(cell);
37663
- const table = $cell.node(-1);
37664
- if (!table) {
37665
- return DecorationSet.empty;
37666
- }
37667
- const map4 = TableMap.get(table);
37668
- const start2 = $cell.start(-1);
37669
- const col = map4.colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
37670
- for (let row = 0; row < map4.height; row++) {
37671
- const index2 = col + row * map4.width;
37672
- if ((col == map4.width - 1 || map4.map[index2] != map4.map[index2 + 1]) && (row == 0 || map4.map[index2] != map4.map[index2 - map4.width])) {
37673
- const cellPos = map4.map[index2];
37674
- const pos = start2 + cellPos + table.nodeAt(cellPos).nodeSize - 1;
37675
- const dom = document.createElement("div");
37676
- dom.className = "column-resize-handle";
37677
- if ((_a2 = columnResizingPluginKey.getState(state2)) == null ? void 0 : _a2.dragging) {
37678
- decorations.push(
37679
- Decoration.node(
37680
- start2 + cellPos,
37681
- start2 + cellPos + table.nodeAt(cellPos).nodeSize,
37682
- {
37683
- class: "column-resize-dragging"
37684
- }
37685
- )
37462
+ function deleteTable(state2, dispatch) {
37463
+ const $pos = state2.selection.$anchor;
37464
+ for (let d2 = $pos.depth; d2 > 0; d2--) {
37465
+ const node = $pos.node(d2);
37466
+ if (node.type.spec.tableRole == "table") {
37467
+ if (dispatch)
37468
+ dispatch(
37469
+ state2.tr.delete($pos.before(d2), $pos.after(d2)).scrollIntoView()
37686
37470
  );
37687
- }
37688
- decorations.push(Decoration.widget(pos, dom));
37471
+ return true;
37689
37472
  }
37690
37473
  }
37691
- return DecorationSet.create(state2.doc, decorations);
37474
+ return false;
37692
37475
  }
37693
37476
  function tableEditing({
37694
37477
  allowTableNodeSelection = false
@@ -37733,46 +37516,33 @@ function tableEditing({
37733
37516
  }
37734
37517
  });
37735
37518
  }
37736
- function getColStyleDeclaration(minWidth, width) {
37737
- if (width) {
37738
- return ["width", `${Math.max(width, minWidth)}px`];
37739
- }
37740
- return ["min-width", `${minWidth}px`];
37741
- }
37742
37519
  function updateColumns(node, colgroup, table, cellMinWidth, overrideCol, overrideValue) {
37743
- var _a2;
37744
37520
  let totalWidth = 0;
37745
37521
  let fixedWidth = true;
37746
37522
  let nextDOM = colgroup.firstChild;
37747
37523
  const row = node.firstChild;
37748
- if (row !== null) {
37749
- for (let i2 = 0, col = 0; i2 < row.childCount; i2 += 1) {
37750
- const { colspan, colwidth } = row.child(i2).attrs;
37751
- for (let j2 = 0; j2 < colspan; j2 += 1, col += 1) {
37752
- const hasWidth = overrideCol === col ? overrideValue : colwidth && colwidth[j2];
37753
- const cssWidth = hasWidth ? `${hasWidth}px` : "";
37754
- totalWidth += hasWidth || cellMinWidth;
37755
- if (!hasWidth) {
37756
- fixedWidth = false;
37757
- }
37758
- if (!nextDOM) {
37759
- const colElement = document.createElement("col");
37760
- const [propertyKey, propertyValue] = getColStyleDeclaration(cellMinWidth, hasWidth);
37761
- colElement.style.setProperty(propertyKey, propertyValue);
37762
- colgroup.appendChild(colElement);
37763
- } else {
37764
- if (nextDOM.style.width !== cssWidth) {
37765
- const [propertyKey, propertyValue] = getColStyleDeclaration(cellMinWidth, hasWidth);
37766
- nextDOM.style.setProperty(propertyKey, propertyValue);
37767
- }
37768
- nextDOM = nextDOM.nextSibling;
37524
+ for (let i2 = 0, col = 0; i2 < row.childCount; i2 += 1) {
37525
+ const { colspan, colwidth } = row.child(i2).attrs;
37526
+ for (let j2 = 0; j2 < colspan; j2 += 1, col += 1) {
37527
+ const hasWidth = overrideCol === col ? overrideValue : colwidth && colwidth[j2];
37528
+ const cssWidth = hasWidth ? `${hasWidth}px` : "";
37529
+ totalWidth += hasWidth || cellMinWidth;
37530
+ if (!hasWidth) {
37531
+ fixedWidth = false;
37532
+ }
37533
+ if (!nextDOM) {
37534
+ colgroup.appendChild(document.createElement("col")).style.width = cssWidth;
37535
+ } else {
37536
+ if (nextDOM.style.width !== cssWidth) {
37537
+ nextDOM.style.width = cssWidth;
37769
37538
  }
37539
+ nextDOM = nextDOM.nextSibling;
37770
37540
  }
37771
37541
  }
37772
37542
  }
37773
37543
  while (nextDOM) {
37774
37544
  const after = nextDOM.nextSibling;
37775
- (_a2 = nextDOM.parentNode) === null || _a2 === void 0 ? void 0 : _a2.removeChild(nextDOM);
37545
+ nextDOM.parentNode.removeChild(nextDOM);
37776
37546
  nextDOM = after;
37777
37547
  }
37778
37548
  if (fixedWidth) {
@@ -37818,15 +37588,12 @@ function createColGroup(node, cellMinWidth, overrideCol, overrideValue) {
37818
37588
  const { colspan, colwidth } = row.child(i2).attrs;
37819
37589
  for (let j2 = 0; j2 < colspan; j2 += 1, col += 1) {
37820
37590
  const hasWidth = overrideCol === col ? overrideValue : colwidth && colwidth[j2];
37591
+ const cssWidth = hasWidth ? `${hasWidth}px` : "";
37821
37592
  totalWidth += hasWidth || cellMinWidth;
37822
37593
  if (!hasWidth) {
37823
37594
  fixedWidth = false;
37824
37595
  }
37825
- const [property, value] = getColStyleDeclaration(cellMinWidth, hasWidth);
37826
- cols.push([
37827
- "col",
37828
- { style: `${property}: ${value}` }
37829
- ]);
37596
+ cols.push(["col", cssWidth ? { style: `width: ${cssWidth}` } : {}]);
37830
37597
  }
37831
37598
  }
37832
37599
  const tableWidth = fixedWidth ? `${totalWidth}px` : "";
@@ -38035,7 +37802,6 @@ const Table = Node$1.create({
38035
37802
  columnResizing({
38036
37803
  handleWidth: this.options.handleWidth,
38037
37804
  cellMinWidth: this.options.cellMinWidth,
38038
- defaultCellMinWidth: this.options.cellMinWidth,
38039
37805
  View: this.options.View,
38040
37806
  lastColumnResizable: this.options.lastColumnResizable
38041
37807
  })
@@ -38076,7 +37842,7 @@ const TableCell = Node$1.create({
38076
37842
  default: null,
38077
37843
  parseHTML: (element) => {
38078
37844
  const colwidth = element.getAttribute("colwidth");
38079
- const value = colwidth ? colwidth.split(",").map((width) => parseInt(width, 10)) : null;
37845
+ const value = colwidth ? [parseInt(colwidth, 10)] : null;
38080
37846
  return value;
38081
37847
  }
38082
37848
  }
@@ -38113,7 +37879,7 @@ const TableHeader = Node$1.create({
38113
37879
  default: null,
38114
37880
  parseHTML: (element) => {
38115
37881
  const colwidth = element.getAttribute("colwidth");
38116
- const value = colwidth ? colwidth.split(",").map((width) => parseInt(width, 10)) : null;
37882
+ const value = colwidth ? [parseInt(colwidth, 10)] : null;
38117
37883
  return value;
38118
37884
  }
38119
37885
  }
@@ -38430,10 +38196,6 @@ const Bold = Mark.create({
38430
38196
  tag: "b",
38431
38197
  getAttrs: (node) => node.style.fontWeight !== "normal" && null
38432
38198
  },
38433
- {
38434
- style: "font-weight=400",
38435
- clearMark: (mark) => mark.type.name === this.name
38436
- },
38437
38199
  {
38438
38200
  style: "font-weight",
38439
38201
  getAttrs: (value) => /^(bold(er)?|[5-9]\d{2,})$/.test(value) && null
@@ -38487,8 +38249,73 @@ const Bold = Mark.create({
38487
38249
  ];
38488
38250
  }
38489
38251
  });
38490
- const ListItemName$1 = "listItem";
38491
- const TextStyleName$1 = "textStyle";
38252
+ const ListItem$2 = Node$1.create({
38253
+ name: "listItem",
38254
+ addOptions() {
38255
+ return {
38256
+ HTMLAttributes: {},
38257
+ bulletListTypeName: "bulletList",
38258
+ orderedListTypeName: "orderedList"
38259
+ };
38260
+ },
38261
+ content: "paragraph block*",
38262
+ defining: true,
38263
+ parseHTML() {
38264
+ return [
38265
+ {
38266
+ tag: "li"
38267
+ }
38268
+ ];
38269
+ },
38270
+ renderHTML({ HTMLAttributes }) {
38271
+ return ["li", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
38272
+ },
38273
+ addKeyboardShortcuts() {
38274
+ return {
38275
+ Enter: () => this.editor.commands.splitListItem(this.name),
38276
+ Tab: () => this.editor.commands.sinkListItem(this.name),
38277
+ "Shift-Tab": () => this.editor.commands.liftListItem(this.name)
38278
+ };
38279
+ }
38280
+ });
38281
+ const TextStyle$1 = Mark.create({
38282
+ name: "textStyle",
38283
+ priority: 101,
38284
+ addOptions() {
38285
+ return {
38286
+ HTMLAttributes: {}
38287
+ };
38288
+ },
38289
+ parseHTML() {
38290
+ return [
38291
+ {
38292
+ tag: "span",
38293
+ getAttrs: (element) => {
38294
+ const hasStyles = element.hasAttribute("style");
38295
+ if (!hasStyles) {
38296
+ return false;
38297
+ }
38298
+ return {};
38299
+ }
38300
+ }
38301
+ ];
38302
+ },
38303
+ renderHTML({ HTMLAttributes }) {
38304
+ return ["span", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
38305
+ },
38306
+ addCommands() {
38307
+ return {
38308
+ removeEmptyTextStyle: () => ({ state: state2, commands: commands2 }) => {
38309
+ const attributes = getMarkAttributes(state2, this.type);
38310
+ const hasStyles = Object.entries(attributes).some(([, value]) => !!value);
38311
+ if (hasStyles) {
38312
+ return true;
38313
+ }
38314
+ return commands2.unsetMark(this.name);
38315
+ }
38316
+ };
38317
+ }
38318
+ });
38492
38319
  const inputRegex$3 = /^\s*([-+*])\s$/;
38493
38320
  const BulletList = Node$1.create({
38494
38321
  name: "bulletList",
@@ -38516,7 +38343,7 @@ const BulletList = Node$1.create({
38516
38343
  return {
38517
38344
  toggleBulletList: () => ({ commands: commands2, chain }) => {
38518
38345
  if (this.options.keepAttributes) {
38519
- return chain().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(ListItemName$1, this.editor.getAttributes(TextStyleName$1)).run();
38346
+ return chain().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(ListItem$2.name, this.editor.getAttributes(TextStyle$1.name)).run();
38520
38347
  }
38521
38348
  return commands2.toggleList(this.name, this.options.itemTypeName, this.options.keepMarks);
38522
38349
  }
@@ -38539,7 +38366,7 @@ const BulletList = Node$1.create({
38539
38366
  keepMarks: this.options.keepMarks,
38540
38367
  keepAttributes: this.options.keepAttributes,
38541
38368
  getAttributes: () => {
38542
- return this.editor.getAttributes(TextStyleName$1);
38369
+ return this.editor.getAttributes(TextStyle$1.name);
38543
38370
  },
38544
38371
  editor: this.editor
38545
38372
  });
@@ -38549,8 +38376,8 @@ const BulletList = Node$1.create({
38549
38376
  ];
38550
38377
  }
38551
38378
  });
38552
- const inputRegex$2 = new RegExp("(?<!`)`([^`]+)`(?!`)");
38553
- const pasteRegex$1 = new RegExp("(?<!`)`([^`]+)`(?!`)", "g");
38379
+ const inputRegex$2 = /(?:^|\s)(`(?!\s+`)((?:[^`]+))`(?!\s+`))$/;
38380
+ const pasteRegex$1 = /(?:^|\s)(`(?!\s+`)((?:[^`]+))`(?!\s+`))/g;
38554
38381
  const Code = Mark.create({
38555
38382
  name: "code",
38556
38383
  addOptions() {
@@ -39177,7 +39004,6 @@ const HardBreak = Node$1.create({
39177
39004
  inline: true,
39178
39005
  group: "inline",
39179
39006
  selectable: false,
39180
- linebreakReplacement: true,
39181
39007
  parseHTML() {
39182
39008
  return [
39183
39009
  { tag: "br" }
@@ -39939,10 +39765,6 @@ const Italic = Mark.create({
39939
39765
  tag: "i",
39940
39766
  getAttrs: (node) => node.style.fontStyle !== "normal" && null
39941
39767
  },
39942
- {
39943
- style: "font-style=normal",
39944
- clearMark: (mark) => mark.type.name === this.name
39945
- },
39946
39768
  {
39947
39769
  style: "font-style=italic"
39948
39770
  }
@@ -39995,6 +39817,35 @@ const Italic = Mark.create({
39995
39817
  ];
39996
39818
  }
39997
39819
  });
39820
+ const ListItem$1 = Node$1.create({
39821
+ name: "listItem",
39822
+ addOptions() {
39823
+ return {
39824
+ HTMLAttributes: {},
39825
+ bulletListTypeName: "bulletList",
39826
+ orderedListTypeName: "orderedList"
39827
+ };
39828
+ },
39829
+ content: "paragraph block*",
39830
+ defining: true,
39831
+ parseHTML() {
39832
+ return [
39833
+ {
39834
+ tag: "li"
39835
+ }
39836
+ ];
39837
+ },
39838
+ renderHTML({ HTMLAttributes }) {
39839
+ return ["li", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
39840
+ },
39841
+ addKeyboardShortcuts() {
39842
+ return {
39843
+ Enter: () => this.editor.commands.splitListItem(this.name),
39844
+ Tab: () => this.editor.commands.sinkListItem(this.name),
39845
+ "Shift-Tab": () => this.editor.commands.liftListItem(this.name)
39846
+ };
39847
+ }
39848
+ });
39998
39849
  const ListItem = Node$1.create({
39999
39850
  name: "listItem",
40000
39851
  addOptions() {
@@ -40024,8 +39875,44 @@ const ListItem = Node$1.create({
40024
39875
  };
40025
39876
  }
40026
39877
  });
40027
- const ListItemName = "listItem";
40028
- const TextStyleName = "textStyle";
39878
+ const TextStyle = Mark.create({
39879
+ name: "textStyle",
39880
+ priority: 101,
39881
+ addOptions() {
39882
+ return {
39883
+ HTMLAttributes: {}
39884
+ };
39885
+ },
39886
+ parseHTML() {
39887
+ return [
39888
+ {
39889
+ tag: "span",
39890
+ getAttrs: (element) => {
39891
+ const hasStyles = element.hasAttribute("style");
39892
+ if (!hasStyles) {
39893
+ return false;
39894
+ }
39895
+ return {};
39896
+ }
39897
+ }
39898
+ ];
39899
+ },
39900
+ renderHTML({ HTMLAttributes }) {
39901
+ return ["span", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
39902
+ },
39903
+ addCommands() {
39904
+ return {
39905
+ removeEmptyTextStyle: () => ({ state: state2, commands: commands2 }) => {
39906
+ const attributes = getMarkAttributes(state2, this.type);
39907
+ const hasStyles = Object.entries(attributes).some(([, value]) => !!value);
39908
+ if (hasStyles) {
39909
+ return true;
39910
+ }
39911
+ return commands2.unsetMark(this.name);
39912
+ }
39913
+ };
39914
+ }
39915
+ });
40029
39916
  const inputRegex$1 = /^(\d+)\.\s$/;
40030
39917
  const OrderedList = Node$1.create({
40031
39918
  name: "orderedList",
@@ -40070,7 +39957,7 @@ const OrderedList = Node$1.create({
40070
39957
  return {
40071
39958
  toggleOrderedList: () => ({ commands: commands2, chain }) => {
40072
39959
  if (this.options.keepAttributes) {
40073
- return chain().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(ListItemName, this.editor.getAttributes(TextStyleName)).run();
39960
+ return chain().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(ListItem.name, this.editor.getAttributes(TextStyle.name)).run();
40074
39961
  }
40075
39962
  return commands2.toggleList(this.name, this.options.itemTypeName, this.options.keepMarks);
40076
39963
  }
@@ -40094,7 +39981,7 @@ const OrderedList = Node$1.create({
40094
39981
  type: this.type,
40095
39982
  keepMarks: this.options.keepMarks,
40096
39983
  keepAttributes: this.options.keepAttributes,
40097
- getAttributes: (match2) => ({ start: +match2[1], ...this.editor.getAttributes(TextStyleName) }),
39984
+ getAttributes: (match2) => ({ start: +match2[1], ...this.editor.getAttributes(TextStyle.name) }),
40098
39985
  joinPredicate: (match2, node) => node.childCount + node.attrs.start === +match2[1],
40099
39986
  editor: this.editor
40100
39987
  });
@@ -40249,7 +40136,7 @@ const StarterKit = Extension.create({
40249
40136
  extensions.push(Italic.configure((_o = this.options) === null || _o === void 0 ? void 0 : _o.italic));
40250
40137
  }
40251
40138
  if (this.options.listItem !== false) {
40252
- extensions.push(ListItem.configure((_p = this.options) === null || _p === void 0 ? void 0 : _p.listItem));
40139
+ extensions.push(ListItem$1.configure((_p = this.options) === null || _p === void 0 ? void 0 : _p.listItem));
40253
40140
  }
40254
40141
  if (this.options.orderedList !== false) {
40255
40142
  extensions.push(OrderedList.configure((_q = this.options) === null || _q === void 0 ? void 0 : _q.orderedList));
@@ -42924,9 +42811,6 @@ class BubbleMenuView {
42924
42811
  if ((event === null || event === void 0 ? void 0 : event.relatedTarget) && ((_a2 = this.element.parentNode) === null || _a2 === void 0 ? void 0 : _a2.contains(event.relatedTarget))) {
42925
42812
  return;
42926
42813
  }
42927
- if ((event === null || event === void 0 ? void 0 : event.relatedTarget) === this.editor.view.dom) {
42928
- return;
42929
- }
42930
42814
  this.hide();
42931
42815
  };
42932
42816
  this.tippyBlurHandler = (event) => {
@@ -42959,7 +42843,6 @@ class BubbleMenuView {
42959
42843
  const to2 = Math.max(...ranges.map((range2) => range2.$to.pos));
42960
42844
  const shouldShow2 = (_a2 = this.shouldShow) === null || _a2 === void 0 ? void 0 : _a2.call(this, {
42961
42845
  editor: this.editor,
42962
- element: this.element,
42963
42846
  view: view2,
42964
42847
  state: state2,
42965
42848
  oldState,
@@ -42974,14 +42857,12 @@ class BubbleMenuView {
42974
42857
  getReferenceClientRect: ((_c = this.tippyOptions) === null || _c === void 0 ? void 0 : _c.getReferenceClientRect) || (() => {
42975
42858
  if (isNodeSelection(state2.selection)) {
42976
42859
  let node = view2.nodeDOM(from2);
42860
+ const nodeViewWrapper = node.dataset.nodeViewWrapper ? node : node.querySelector("[data-node-view-wrapper]");
42861
+ if (nodeViewWrapper) {
42862
+ node = nodeViewWrapper.firstChild;
42863
+ }
42977
42864
  if (node) {
42978
- const nodeViewWrapper = node.dataset.nodeViewWrapper ? node : node.querySelector("[data-node-view-wrapper]");
42979
- if (nodeViewWrapper) {
42980
- node = nodeViewWrapper.firstChild;
42981
- }
42982
- if (node) {
42983
- return node.getBoundingClientRect();
42984
- }
42865
+ return node.getBoundingClientRect();
42985
42866
  }
42986
42867
  }
42987
42868
  return posToDOMRect(view2, from2, to2);
@@ -43116,9 +42997,6 @@ class FloatingMenuView {
43116
42997
  if ((event === null || event === void 0 ? void 0 : event.relatedTarget) && ((_a2 = this.element.parentNode) === null || _a2 === void 0 ? void 0 : _a2.contains(event.relatedTarget))) {
43117
42998
  return;
43118
42999
  }
43119
- if ((event === null || event === void 0 ? void 0 : event.relatedTarget) === this.editor.view.dom) {
43120
- return;
43121
- }
43122
43000
  this.hide();
43123
43001
  };
43124
43002
  this.tippyBlurHandler = (event) => {
@@ -43379,8 +43257,21 @@ const EditorContent = defineComponent({
43379
43257
  if (!editor) {
43380
43258
  return;
43381
43259
  }
43260
+ if (!editor.isDestroyed) {
43261
+ editor.view.setProps({
43262
+ nodeViews: {}
43263
+ });
43264
+ }
43382
43265
  editor.contentComponent = null;
43383
43266
  editor.appContext = null;
43267
+ if (!editor.options.element.firstChild) {
43268
+ return;
43269
+ }
43270
+ const newElement = document.createElement("div");
43271
+ newElement.append(...editor.options.element.childNodes);
43272
+ editor.setOptions({
43273
+ element: newElement
43274
+ });
43384
43275
  });
43385
43276
  return { rootEl: rootEl2 };
43386
43277
  },
@@ -44508,7 +44399,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
44508
44399
  });
44509
44400
  const SelectInput = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-982f5078"]]);
44510
44401
  /*!
44511
- * Signature Pad v5.0.4 | https://github.com/szimek/signature_pad
44402
+ * Signature Pad v5.0.3 | https://github.com/szimek/signature_pad
44512
44403
  * (c) 2024 Szymon Nowak | Released under the MIT license
44513
44404
  */
44514
44405
  class Point {
@@ -44592,7 +44483,7 @@ class SignatureEventTarget {
44592
44483
  constructor() {
44593
44484
  try {
44594
44485
  this._et = new EventTarget();
44595
- } catch (_a2) {
44486
+ } catch (error) {
44596
44487
  this._et = document;
44597
44488
  }
44598
44489
  }
@@ -44706,16 +44597,13 @@ class SignaturePad extends SignatureEventTarget {
44706
44597
  this._strokeEnd(this._touchEventToSignatureEvent(event));
44707
44598
  };
44708
44599
  this._handlePointerDown = (event) => {
44709
- if (!event.isPrimary || !this._isLeftButtonPressed(event) || this._drawingStroke) {
44600
+ if (!this._isLeftButtonPressed(event) || this._drawingStroke) {
44710
44601
  return;
44711
44602
  }
44712
44603
  event.preventDefault();
44713
44604
  this._strokeBegin(this._pointerEventToSignatureEvent(event));
44714
44605
  };
44715
44606
  this._handlePointerMove = (event) => {
44716
- if (!event.isPrimary) {
44717
- return;
44718
- }
44719
44607
  if (!this._isLeftButtonPressed(event, true) || !this._drawingStroke) {
44720
44608
  this._strokeEnd(this._pointerEventToSignatureEvent(event), false);
44721
44609
  return;
@@ -44724,7 +44612,7 @@ class SignaturePad extends SignatureEventTarget {
44724
44612
  this._strokeMoveUpdate(this._pointerEventToSignatureEvent(event));
44725
44613
  };
44726
44614
  this._handlePointerUp = (event) => {
44727
- if (!event.isPrimary || this._isLeftButtonPressed(event)) {
44615
+ if (this._isLeftButtonPressed(event)) {
44728
44616
  return;
44729
44617
  }
44730
44618
  event.preventDefault();
@@ -48502,11 +48390,6 @@ function buildURL(url, params, options) {
48502
48390
  return url;
48503
48391
  }
48504
48392
  const _encode = options && options.encode || encode;
48505
- if (utils$1.isFunction(options)) {
48506
- options = {
48507
- serialize: options
48508
- };
48509
- }
48510
48393
  const serializeFn = options && options.serialize;
48511
48394
  let serializedParams;
48512
48395
  if (serializeFn) {
@@ -48693,7 +48576,7 @@ function stringifySafely(rawValue, parser, encoder) {
48693
48576
  }
48694
48577
  }
48695
48578
  }
48696
- return (0, JSON.stringify)(rawValue);
48579
+ return (encoder || JSON.stringify)(rawValue);
48697
48580
  }
48698
48581
  const defaults = {
48699
48582
  transitional: transitionalDefaults,
@@ -49186,13 +49069,45 @@ const progressEventDecorator = (total, throttled) => {
49186
49069
  }), throttled[1]];
49187
49070
  };
49188
49071
  const asyncDecorator = (fn3) => (...args) => utils$1.asap(() => fn3(...args));
49189
- const isURLSameOrigin = platform.hasStandardBrowserEnv ? /* @__PURE__ */ ((origin2, isMSIE) => (url) => {
49190
- url = new URL(url, platform.origin);
49191
- return origin2.protocol === url.protocol && origin2.host === url.host && (isMSIE || origin2.port === url.port);
49192
- })(
49193
- new URL(platform.origin),
49194
- platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)
49195
- ) : () => true;
49072
+ const isURLSameOrigin = platform.hasStandardBrowserEnv ? (
49073
+ // Standard browser envs have full support of the APIs needed to test
49074
+ // whether the request URL is of the same origin as current location.
49075
+ function standardBrowserEnv() {
49076
+ const msie = platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent);
49077
+ const urlParsingNode = document.createElement("a");
49078
+ let originURL;
49079
+ function resolveURL(url) {
49080
+ let href = url;
49081
+ if (msie) {
49082
+ urlParsingNode.setAttribute("href", href);
49083
+ href = urlParsingNode.href;
49084
+ }
49085
+ urlParsingNode.setAttribute("href", href);
49086
+ return {
49087
+ href: urlParsingNode.href,
49088
+ protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, "") : "",
49089
+ host: urlParsingNode.host,
49090
+ search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, "") : "",
49091
+ hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, "") : "",
49092
+ hostname: urlParsingNode.hostname,
49093
+ port: urlParsingNode.port,
49094
+ pathname: urlParsingNode.pathname.charAt(0) === "/" ? urlParsingNode.pathname : "/" + urlParsingNode.pathname
49095
+ };
49096
+ }
49097
+ originURL = resolveURL(window.location.href);
49098
+ return function isURLSameOrigin2(requestURL) {
49099
+ const parsed = utils$1.isString(requestURL) ? resolveURL(requestURL) : requestURL;
49100
+ return parsed.protocol === originURL.protocol && parsed.host === originURL.host;
49101
+ };
49102
+ }()
49103
+ ) : (
49104
+ // Non standard browser envs (web workers, react-native) lack needed support.
49105
+ /* @__PURE__ */ function nonStandardBrowserEnv() {
49106
+ return function isURLSameOrigin2() {
49107
+ return true;
49108
+ };
49109
+ }()
49110
+ );
49196
49111
  const cookies = platform.hasStandardBrowserEnv ? (
49197
49112
  // Standard browser envs support document.cookie
49198
49113
  {
@@ -49240,7 +49155,7 @@ const headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing }
49240
49155
  function mergeConfig(config1, config2) {
49241
49156
  config2 = config2 || {};
49242
49157
  const config = {};
49243
- function getMergedValue(target, source, prop3, caseless) {
49158
+ function getMergedValue(target, source, caseless) {
49244
49159
  if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) {
49245
49160
  return utils$1.merge.call({ caseless }, target, source);
49246
49161
  } else if (utils$1.isPlainObject(source)) {
@@ -49250,11 +49165,11 @@ function mergeConfig(config1, config2) {
49250
49165
  }
49251
49166
  return source;
49252
49167
  }
49253
- function mergeDeepProperties(a2, b2, prop3, caseless) {
49168
+ function mergeDeepProperties(a2, b2, caseless) {
49254
49169
  if (!utils$1.isUndefined(b2)) {
49255
- return getMergedValue(a2, b2, prop3, caseless);
49170
+ return getMergedValue(a2, b2, caseless);
49256
49171
  } else if (!utils$1.isUndefined(a2)) {
49257
- return getMergedValue(void 0, a2, prop3, caseless);
49172
+ return getMergedValue(void 0, a2, caseless);
49258
49173
  }
49259
49174
  }
49260
49175
  function valueFromConfig2(a2, b2) {
@@ -49305,7 +49220,7 @@ function mergeConfig(config1, config2) {
49305
49220
  socketPath: defaultToConfig2,
49306
49221
  responseEncoding: defaultToConfig2,
49307
49222
  validateStatus: mergeDirectKeys,
49308
- headers: (a2, b2, prop3) => mergeDeepProperties(headersToObject(a2), headersToObject(b2), prop3, true)
49223
+ headers: (a2, b2) => mergeDeepProperties(headersToObject(a2), headersToObject(b2), true)
49309
49224
  };
49310
49225
  utils$1.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop3) {
49311
49226
  const merge2 = mergeMap[prop3] || mergeDeepProperties;
@@ -49505,7 +49420,7 @@ const composeSignals = (signals, timeout) => {
49505
49420
  };
49506
49421
  const streamChunk = function* (chunk, chunkSize) {
49507
49422
  let len = chunk.byteLength;
49508
- if (len < chunkSize) {
49423
+ if (!chunkSize || len < chunkSize) {
49509
49424
  yield chunk;
49510
49425
  return;
49511
49426
  }
@@ -49835,7 +49750,7 @@ function dispatchRequest(config) {
49835
49750
  return Promise.reject(reason);
49836
49751
  });
49837
49752
  }
49838
- const VERSION = "1.7.9";
49753
+ const VERSION = "1.7.7";
49839
49754
  const validators$1 = {};
49840
49755
  ["object", "boolean", "number", "function", "string", "symbol"].forEach((type3, i2) => {
49841
49756
  validators$1[type3] = function validator2(thing) {
@@ -49866,12 +49781,6 @@ validators$1.transitional = function transitional(validator2, version2, message2
49866
49781
  return validator2 ? validator2(value, opt, opts) : true;
49867
49782
  };
49868
49783
  };
49869
- validators$1.spelling = function spelling(correctSpelling) {
49870
- return (value, opt) => {
49871
- console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);
49872
- return true;
49873
- };
49874
- };
49875
49784
  function assertOptions(options, schema, allowUnknown) {
49876
49785
  if (typeof options !== "object") {
49877
49786
  throw new AxiosError("options must be an object", AxiosError.ERR_BAD_OPTION_VALUE);
@@ -49920,8 +49829,8 @@ class Axios {
49920
49829
  return await this._request(configOrUrl, config);
49921
49830
  } catch (err) {
49922
49831
  if (err instanceof Error) {
49923
- let dummy = {};
49924
- Error.captureStackTrace ? Error.captureStackTrace(dummy) : dummy = new Error();
49832
+ let dummy;
49833
+ Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : dummy = new Error();
49925
49834
  const stack2 = dummy.stack ? dummy.stack.replace(/^.+\n/, "") : "";
49926
49835
  try {
49927
49836
  if (!err.stack) {
@@ -49963,10 +49872,6 @@ class Axios {
49963
49872
  }, true);
49964
49873
  }
49965
49874
  }
49966
- validator.assertOptions(config, {
49967
- baseUrl: validators.spelling("baseURL"),
49968
- withXsrfToken: validators.spelling("withXSRFToken")
49969
- }, true);
49970
49875
  config.method = (config.method || this.defaults.method || "get").toLowerCase();
49971
49876
  let contextHeaders = headers && utils$1.merge(
49972
49877
  headers.common,
@@ -50263,7 +50168,7 @@ axios$1.formToJSON = (thing) => formDataToJSON(utils$1.isHTMLForm(thing) ? new F
50263
50168
  axios$1.getAdapter = adapters.getAdapter;
50264
50169
  axios$1.HttpStatusCode = HttpStatusCode;
50265
50170
  axios$1.default = axios$1;
50266
- const metadata = { "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(?:00|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}|[257-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", ["[36]|4(?:2[09]|7[01])", "[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))"], "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", ["[257-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-4]|5[01]|8[0-3]))\\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]|77|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])|7302[0-4]\\d)\\d{4}|(?:305[3-9]|472[24]|505[2-57-9]|7306|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[1247]|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-79]\\d|88)\\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}"]]] } };
50171
+ const metadata = { "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", "[24-689]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24-689]"]]]], "BL": ["590", "00", "590\\d{6}|(?: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))\\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-8]\\d|90)\\d{8}|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])|90[25])[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(?:00|2[125-9]|33|44|66|77|88)|622)[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])", "60\\d{8}|(?:1\\d|[39])\\d{9}", [10, 11], [["(\\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", ["(?:1[49]|[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{6}|(?:80|9\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[56]|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{6}|(?:69|80|9\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[569]"], "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))\\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}|[257-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", ["[36]|4(?:2[09]|7[01])", "[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))"], "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", ["[257-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-4]|5[01]|8[0-3]))\\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{6}|(?: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))\\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", ["[45]|6(?:0[23]|[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-6]"], "0$1"], ["(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[12]"], "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{6}|(?:69|80|9\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[569]"], "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|80\\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", "(?:26|[689]\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2689]"], "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]))\\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]|77|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-39]\\d{8}|[1-5]\\d{7}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[1-5]"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "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])|7302[0-4]\\d)\\d{4}|(?:305[3-9]|472[24]|505[2-57-9]|7306|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[013569]|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[1247]|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-79]\\d|88)\\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)\\d{4}|8\\d{5}(?:\\d{3})?", [6, 9], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["[478]"]], ["(\\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", "(?: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])\\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}|[35-7]\\d{8}", [9, 12], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[35-7]"]]], 0, 0, 0, 0, 0, 0, [0, ["(?:[356]|774[45])\\d{8}|7[6-8]\\d{7}"]]], "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}"]]] } };
50267
50172
  function withMetadataArgument(func, _arguments) {
50268
50173
  var args = Array.prototype.slice.call(_arguments);
50269
50174
  args.push(metadata);
@@ -51876,8 +51781,9 @@ function _arrayLikeToArray$1(arr, len) {
51876
51781
  return arr2;
51877
51782
  }
51878
51783
  function getCountryByNationalNumber(nationalPhoneNumber, _ref) {
51879
- var countries = _ref.countries, metadata2 = _ref.metadata;
51784
+ var countries = _ref.countries, defaultCountry = _ref.defaultCountry, metadata2 = _ref.metadata;
51880
51785
  metadata2 = new Metadata(metadata2);
51786
+ var matchingCountries = [];
51881
51787
  for (var _iterator = _createForOfIteratorHelperLoose(countries), _step; !(_step = _iterator()).done; ) {
51882
51788
  var country = _step.value;
51883
51789
  metadata2.country(country);
@@ -51889,9 +51795,19 @@ function getCountryByNationalNumber(nationalPhoneNumber, _ref) {
51889
51795
  phone: nationalPhoneNumber,
51890
51796
  country
51891
51797
  }, void 0, metadata2.metadata)) {
51892
- return country;
51798
+ if (defaultCountry) {
51799
+ if (country === defaultCountry) {
51800
+ return country;
51801
+ }
51802
+ matchingCountries.push(country);
51803
+ } else {
51804
+ return country;
51805
+ }
51893
51806
  }
51894
51807
  }
51808
+ if (matchingCountries.length > 0) {
51809
+ return matchingCountries[0];
51810
+ }
51895
51811
  }
51896
51812
  function getCountryByCallingCode(callingCode, _ref) {
51897
51813
  var nationalPhoneNumber = _ref.nationalNumber, defaultCountry = _ref.defaultCountry, metadata2 = _ref.metadata;